{"openapi":"3.1.0","info":{"title":"Pysae Public API v4","version":"3.1.0"},"paths":{"/nav-data-processor-api/v4/login-scoped":{"post":{"tags":["auth","ndp"],"summary":"Login scopped email/password for automation","description":"**This endpoint allows to get a session_id if email/password match a known user.**\n\n- `session_id` is returned and is set as a cookie\n- You have to access to protected endpoints with your `session_id` in the \"Authorization\" header as a \"Bearer\" token or as a cookie\n- A driver session will be open if the user give a `device_id`\n\n**For automation purpose only**","operationId":"postLoginScopedNdp","parameters":[{"name":"scopes","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"},"description":"A list of scopes for the session (used for automation)","title":"Scopes"},"description":"A list of scopes for the session (used for automation)"},{"name":"expire","in":"query","required":true,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"string","format":"date"}],"description":"Your expire date (used with scopes)","title":"Expire"},"description":"Your expire date (used with scopes)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_postLoginScopedNdp"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseSchema"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WrongLogin"}}},"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp","x-public":true}},"/api/v4/login-scoped":{"post":{"tags":["auth"],"summary":"Login scopped email/password for automation","description":"**This endpoint allows to get a session_id if email/password match a known user.**\n\n- `session_id` is returned and is set as a cookie\n- You have to access to protected endpoints with your `session_id` in the \"Authorization\" header as a \"Bearer\" token or as a cookie\n- A driver session will be open if the user give a `device_id`\n\n**For automation purpose only**","operationId":"postLoginScoped","parameters":[{"name":"scopes","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"},"description":"A list of scopes for the session (used for automation)","title":"Scopes"},"description":"A list of scopes for the session (used for automation)"},{"name":"expire","in":"query","required":true,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"string","format":"date"}],"description":"Your expire date (used with scopes)","title":"Expire"},"description":"Your expire date (used with scopes)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_postLoginScoped"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseSchema"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WrongLogin"}}},"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/login":{"post":{"tags":["auth"],"summary":"Login email/password","description":"**This endpoint allows to get a session_id if email/password match a known user.**\n\n- `session_id` is returned and is set as a cookie\n- You have to access to protected endpoints with your `session_id` in the \"Authorization\" header as a \"Bearer\" token or as a cookie\n- A driver session will be open if the user give a `device_id`","operationId":"postLogin","parameters":[{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The id of the device you want to connect into.","title":"Device Id"},"description":"The id of the device you want to connect into."},{"name":"scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"A list of scopes for the session (used for automation only)","title":"Scopes"},"description":"A list of scopes for the session (used for automation only)"},{"name":"expire","in":"query","required":false,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"string","format":"date"},{"type":"null"}],"description":"Your expire date (used with scopes for automation only)","title":"Expire"},"description":"Your expire date (used with scopes for automation only)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_postLogin"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseSchema"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WrongLogin"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Auth0LoginRequired"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/logout":{"get":{"tags":["auth"],"summary":"Log out of your session","description":"**This endpoint allows to log out of your session.**","operationId":"getLogout","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/auth/provider":{"get":{"tags":["auth"],"summary":"Get auth provider for a group","description":"**Returns which authentication provider to use for a given group.**","operationId":"getAuthProvider","parameters":[{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Group ID to check","title":"Group Id"},"description":"Group ID to check"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthProviderSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/danger-zones":{"get":{"tags":["danger_zones"],"summary":"Find Danger Zones","description":"**This endpoint allows you to get all danger zones from a group.**\n\nFeature needed: danger_zones\n\nRole needed: reader, operator, driver, external_reader","operationId":"getDangerZones","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DangerZoneSchema"},"title":"Response Getdangerzones"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__1"}],"title":"Response 403 Getdangerzones"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/ratings":{"get":{"tags":["drivers"],"summary":"Get all group ratings.","operationId":"getRatings","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"group_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__ratings__router__GroupBy"},{"type":"null"}],"title":"Group By"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RatingSchema"}},{"type":"array","items":{"$ref":"#/components/schemas/RatingByDriverVersionSchema"}},{"type":"array","items":{"$ref":"#/components/schemas/RatingByGroupSchema"}}],"title":"Response Getratings"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/agencies":{"get":{"summary":"Find gtfs agency","description":"**This endpoint allows to get the list of agencies for a specific gtfs_id.**\n\n- `\n- g\n- t\n- f\n- s\n- _\n- i\n- d\n- `\n-  \n- c\n- a\n- n\n-  \n- h\n- a\n- v\n- e\n-  \n- a\n-  \n- v\n- a\n- l\n- u\n- e\n-  \n- o\n- f\n-  \n- \"\n- p\n- u\n- b\n- \"\n-  \n- t\n- o\n-  \n- g\n- e\n- t\n-  \n- c\n- u\n- r\n- r\n- e\n- n\n- t\n- l\n- y\n-  \n- p\n- u\n- b\n- l\n- i\n- s\n- h\n- e\n- d\n-  \n- g\n- t\n- f\n- s\n- .","operationId":"getGtfsAgencies","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgencyGTFSSchema"},"title":"Response Getgtfsagencies"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/agencies/{agency_id}":{"get":{"summary":"Get gtfs agency","description":"**This endpoint allows to get an agency for a specific gtfs_id and agency_id.**\n\n`gtfs_id` can have a value of pub to get currently published gtfs.","operationId":"getGtfsAgency","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"agency_id","in":"path","required":true,"schema":{"type":"string","title":"Agency Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgencyGTFSSchema"},{"type":"null"}],"title":"Response Getgtfsagency"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsAgencyNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/urgency":{"get":{"tags":["urgency"],"summary":"Find Urgencies","description":"**This endpoint allows you to get all urgencies created.**\n\nFeature needed: urgency\n\nRole needed: operator, driver","operationId":"getUrgency","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"]},{"type":"null"}],"title":"Group Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"]},{"type":"null"}],"title":"Device Id"}},{"name":"gtfs_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-pysae-api-batch-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Batch-Id"}},{"name":"x-pysae-api-request-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Request-Id"}},{"name":"x-pysae-api-lazy-loading-router","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Lazy-Loading-Router"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UrgencySchema"},"title":"Response Geturgency"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__2"},{"$ref":"#/components/schemas/InvalidTeam"}],"title":"Response 403 Geturgency"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/shape-dist-traveled/{task_id}":{"get":{"summary":"Get Compute Status","description":"**This endpoint allows to get a status of compute task.**\n\nRole needed: operator","operationId":"getGtfsShapeDistTraveled","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Task Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"}],"title":"Response 403 Getgtfsshapedisttraveled"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskNotFound"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskFailed"}}},"description":"Internal Server Error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/export/vehicle-exploitation":{"get":{"tags":["vehicle-exploitation"],"summary":"Returns a CSV file with vehicle exploitation data (PCS-CNT format)","description":"**Export vehicle exploitation data including trip details, stop times, GPS coordinates and per-door passenger counts in PCS-CNT format.**\n\n\n\n<h2>Example : </h2>\n\n| **fileId** | **unitId** | **drivingMode** | **stopId** | **arrivalTime** | **departureTime** | **SAEvalidity** | **journey** | **journeyType** | **line** | **trip** | **tripDirection** | **vehicleService** | **stationOrigin** | **stationDestination** | **station** | **stationCode** | **stationIndex** | **stationType** | **GPSvalidity** | **latitude** | **longitude** | **PORTE_01_validity** | **PORTE_01_adults_in** | **PORTE_01_adults_out** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 2600 | 1510 | inService | 1 | 2025-06-15T09:27:17+02:00 | 2025-06-15T09:30:03+02:00 | OK | 96213 | commercial | N83 | 2 | outward | 01 | John Doe | Grand Parc L'atol' | Pont des Planches | 2499 | 2 | intermediate | OK | 45,771335 | 4,908506 | OK | 0 | 0 |","operationId":"getExportVehicleExploitation","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"fileId;unitId;drivingMode;stopId;arrivalTime;departureTime;SAEvalidity;journey;journeyType;line;trip;tripDirection;vehicleService;stationOrigin;stationDestination;station;stationCode;stationIndex;stationType;GPSvalidity;latitude;longitude;PORTE_01_validity;PORTE_01_adults_in;PORTE_01_adults_out\n2600;1510;inService;1;2025-06-15T09:27:17+02:00;2025-06-15T09:30:03+02:00;OK;96213;commercial;N83;2;outward;01;John Doe;Grand Parc L'atol';Pont des Planches;2499;2;intermediate;OK;45,771335;4,908506;OK;0;0"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/routes":{"get":{"summary":"Get the list of routes for the given gtfs id","description":"**This endpoint allows to get the list of routes for a specific gtfs_id.**\n\n- Publicly available endpoint.\n- `gtfs_id` can have a value of pub to get currently published gtfs.","operationId":"getGtfsRoutes","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RouteGTFSSchema"},"title":"Response Getgtfsroutes"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/routes/{route_id}":{"get":{"summary":"Get the info of the route identified by route_id","description":"**This endpoint allows to get the info of the route identified by route_id.**\n\n- Publicly available endpoint.\n- `gtfs_id` can have a value of pub to get currently published gtfs.","operationId":"getGtfsRoute","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"route_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the route to get","title":"Route Id"},"description":"The id of the route to get"},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteGTFSSchema"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsRouteNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/generate-shapes/{task_id}":{"get":{"summary":"Get Generate Shapes Status","description":"**This endpoint allows to get the status of a generate-shapes task.**\n\nRole needed: operator","operationId":"getGtfsGenerateShape","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Task Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateShapesTaskSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"}],"title":"Response 403 Getgtfsgenerateshape"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskNotFound"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskFailed"}}},"description":"Internal Server Error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/stats/trip-km":{"get":{"tags":["trip-km","stats"],"summary":"Get Trip Km Stats","description":"**This endpoint allows to get trip km stats.**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getStatTripKm","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"group_by","in":"query","required":true,"schema":{"$ref":"#/components/schemas/pysae__api__trip_km__schemas__GroupBy"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RCKRouteStat"}},{"type":"array","items":{"$ref":"#/components/schemas/RCKDayStat"}}],"title":"Response Getstattripkm"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getstattripkm"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/export/trip-km":{"get":{"tags":["trip-km","stats"],"summary":"Export Trip Km Stats","description":"**This endpoint allows to export trip km stats.**\n\n# Rapport d’Export des Kilomètres Commerciaux\n\nCe rapport permet de suivre et d’analyser les distances commerciales théoriques et réelles pour chaque trajet. Il compare les kilomètres prévus et parcourus.\n\n| **Champ**                        | **Champ requis** | **Champ du GTFS** | **Identifiant Pysae** | **Description** |\n|----------------------------------|------------------|------------------|-----------------------|-----------------|\n| `gtfs_id`                        | Oui              | Non              | Oui                   | Identifiant du fichier GTFS |\n| `block_id`                       | Non              | Oui              | Non                   | Identifiant du bloc de trajets |\n| `date`                           | Oui              | Non              | Non                   | Date de début du trajet au format GTFS (ex. `20220101`) |\n| `gtfs_name`                      | Oui              | Non              | Non                   | Nom donné par l'utilisateur |\n| `route_id`                       | Oui              | Oui              | Non                   | Identifiant de la ligne |\n| `route_long_name`                | Non              | Oui              | Non                   | Nom complet de la ligne |\n| `route_short_name`               | Non              | Oui              | Non                   | Nom court de la ligne |\n| `theoretical_departure_time`     | Oui              | Non              | Non                   | Heure théorique de départ du trajet |\n| `theoretical_commercial_km`      | Oui              | Non              | Non                   | Distance commerciale théorique prévue pour le trajet (en kilomètres) |\n| `trip_id`                        | Oui              | Oui              | Non                   | Identifiant du trajet spécifique |\n| `trip_headsign`                  | Non              | Oui              | Non                   | Destination du trajet |\n| `trip_short_name`                | Non              | Oui              | Non                   | Nom court du trajet |\n| `recorded_commercial_km`         | Oui              | Non              | Non                   | Distance commerciale réelle parcourue pendant le trajet |\n| `unreliable_km`                  | Non              | Non              | Non                   | Distance incertaine ou non fiable |\n| `reliable_km`                    | Oui              | Non              | Non                   | Distance fiable confirmée |\n| `week`                           | Oui              | Non              | Non                   | Numéro de la semaine de la date du trajet |\n| `deviated_km`                    | Non              | Non              | Non                   | Écart signé (en kilomètres) apporté par la déviation de tracé active sur la course, figé à la clôture de la course. `0.0` = pas de déviation de tracé ; positif = rallongement, négatif = raccourcissement ; vide = non mesuré (tracé non résolu, course antérieure à l'introduction du champ, ou course planifiée non roulée) |\n| `theoretical_commercial_km_with_deviation` | Non    | Non              | Non                   | `theoretical_commercial_km + deviated_km` (en kilomètres) : distance théorique corrigée de la déviation. Vide quand `deviated_km` n'est pas mesuré |\n\n> **Asymétrie à connaître pour la réconciliation** : `theoretical_commercial_km` est calculé sur **toutes les courses planifiées** de la période, alors que `deviated_km` n'est mesuré que sur les **courses ayant un enregistrement de kilomètres réalisés** (courses effectivement roulées). Un écart entre le total théorique et la somme des déviations n'est donc pas un bug. Par ailleurs, `deviated_km` est figé à la clôture de la course : éditer ou supprimer une déviation après coup ne modifie pas les valeurs déjà enregistrées. Enfin, quand plusieurs appareils ont roulé la même course le même jour, chaque ligne d'export porte le delta complet de la déviation.\n\n\n<h2>Example : </h2>\n\n| **gtfs_id** | **block_id** | **date** | **gtfs_name** | **route_id** | **route_long_name** | **route_short_name** | **theoretical_departure_time** | **theoretical_commercial_km** | **trip_id** | **trip_headsign** | **trip_short_name** | **recorded_commercial_km** | **unreliable_km** | **reliable_km** | **week** | **deviated_km** | **theoretical_commercial_km_with_deviation** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 123456 | block_A | 20250113 | Ligne Express A | route_100 | Centre-Ville ↔ Gare | CV-GR | 2025-01-13 07:00:00+01:00 | 15.2 | trip_a1 | Gare Centrale | A1 | 15.0 | 0.2 | 14.8 | 3 | 2.0 | 17.2 |\n| 654321 | — | 20250114 | Navette B | route_200 | — | NB | 2025-01-14 07:30:00+01:00 | 7.8 | trip_b2 | Campus Nord | B2 | 7.5 | 0.0 | 7.5 | 3 | — | — |\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getExportTripKm","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"gtfs_id;block_id;date;gtfs_name;route_id;route_long_name;route_short_name;theoretical_departure_time;theoretical_commercial_km;trip_id;trip_headsign;trip_short_name;recorded_commercial_km;unreliable_km;reliable_km;week;deviated_km;theoretical_commercial_km_with_deviation\n123456;block_A;20250113;Ligne Express A;route_100;Centre-Ville ↔ Gare;CV-GR;2025-01-13 07:00:00+01:00;15.2;trip_a1;Gare Centrale;A1;15.0;0.2;14.8;3;2.0;17.2\n654321;;20250114;Navette B;route_200;;NB;2025-01-14 07:30:00+01:00;7.8;trip_b2;Campus Nord;B2;7.5;0.0;7.5;3;;"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getexporttripkm"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/drivers":{"get":{"tags":["drivers"],"summary":"Return the drivers for the given group_id.","description":"**This endpoint allows you to returns the drivers for a given group.**\n\nDrivers filtered by the team of a user.\n\nRole needed: technical, reader, external_reader, limited_reader, driver, operator","operationId":"getDrivers","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"const":"null","type":"string"},{"type":"null"}],"default":false,"title":"Archived"}},{"name":"driver_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The driver code to filter on.","title":"Driver Code"},"description":"The driver code to filter on."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/DriverOpSchema"},{"$ref":"#/components/schemas/pysae__api__drivers__schemas__DriverSchema"}]},"title":"Response Getdrivers"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__5"}],"title":"Response 403 Getdrivers"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/drivers/{driver_id}":{"get":{"tags":["drivers"],"summary":"Return the driver for the given driver_id.","description":"**This endpoint allows you to returns the driver for a given driver_id**\n\nRole needed: reader, external_reader, operator, driver, limited_reader","operationId":"getDriver","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"driver_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Driver Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__drivers__schemas__DriverSchema"},{"$ref":"#/components/schemas/DriverOpSchema"}],"title":"Response Getdriver"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/DriverNotFound"}],"title":"Response 404 Getdriver"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__6"}],"title":"Response 403 Getdriver"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/export/drivers":{"get":{"tags":["drivers","stats"],"summary":"Returns a csv file with all drivers","description":"**This endpoint allows you to export all drivers**\n\n# Export des Conducteurs\n\nCe rapport permet d’exporter la liste des conducteurs.\n\n| **Champ**        | **Champ requis** | **Identifiant Pysae** | **Description** |\n|------------------|------------------|-----------------------|----------------------------------|\n| `id`            | Oui              | Oui                   | Identifiant unique du conducteur |\n| `driver_name`   | Oui              | Non                   | Nom complet du conducteur |\n| `staff_number`  | Oui              | Non                   | Numéro de matricule du conducteur |\n| `teams`         | Non              | Non                   | Liste des équipes associées au conducteur |\n| `comment`       | Non              | Non                   | Commentaire sur la disponibilité ou l'affectation du conducteur |\n| `archived`      | Oui              | Non                   | Indique si le conducteur est archivé |\n| `code`          | Non              | Non                   | Code interne associé au conducteur |\n\n\n<h2>Example : </h2>\n\n| **id** | **driver_name** | **staff_number** | **teams** | **comment** | **archived** | **code** |\n|:--|:--|:--|:--|:--|:--|:--|\n| 6400b14955c2d0b2d7058a09 | John Smith | smith01 | team-1 | Monday and tuesday only | False | 7656 |\n| 6400b14955c2d0b2d83b7a1b | Jean Dupont | dupont01 | team-1 | — | True | 8321 |\n\nRole needed: reader, external_reader, operator, driver, limited_reader","operationId":"getExportDrivers","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean","description":"Query for archived ressources"},{"type":"null"}],"title":"Archived"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"id;driver_name;staff_number;teams;comment;archived;code\n6400b14955c2d0b2d7058a09;John Smith;smith01;team-1;Monday and tuesday only;False;7656\n6400b14955c2d0b2d83b7a1b;Jean Dupont;dupont01;team-1;;True;8321"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"}],"title":"Response 403 Getexportdrivers"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/drivers/{driver_id}/ratings":{"get":{"tags":["drivers"],"summary":"Get a rating left by a specific driver.","description":"Role needed: driver","operationId":"getDriverRatings","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"driver_id","in":"path","required":true,"schema":{"type":"string","title":"Driver Id"}},{"name":"driver_version","in":"query","required":true,"schema":{"type":"string","title":"Driver Version"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RatingSchema"},{"type":"null"}],"title":"Response Getdriverratings"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getdriverratings"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/devices/{device_id}/history":{"get":{"tags":["history"],"summary":"Get the reconstructed state of a device at a given point in time","description":"**This endpoint reconstructs the full state of a device at a given timestamp by combining the latest history snapshot with replayed history events.**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getDeviceHistory","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"at","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Timestamp UNIX (seconds) of the target instant. Inclusive upper bound. Mutually exclusive with `before_id`.","title":"At"},"description":"Timestamp UNIX (seconds) of the target instant. Inclusive upper bound. Mutually exclusive with `before_id`."},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"description":"`_id` of a `HistoryEvent` used as a strict upper bound. Mutually exclusive with `at`.","title":"Before Id"},"description":"`_id` of a `HistoryEvent` used as a strict upper bound. Mutually exclusive with `at`."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryDeviceAtSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getdevicehistory"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/vehicles":{"get":{"tags":["vehicles"],"summary":"Return the vehicles for the given group_id filtered by status.","description":"**This endpoint allows to get the vehicles for the given group_id filtered by status.**\n\nVehicles filtered by the team of a user and by status.\n\nRole needed: technical, reader, external_reader, limited_reader, driver, operator, admin","operationId":"getVehicles","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"statuses","in":"query","required":false,"schema":{"anyOf":[{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/VehicleStatus"}},{"type":"null"}],"title":"Statuses"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/pysae__api__vehicles__schemas__VehicleSchema"},"title":"Response Getvehicles"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__5"}],"title":"Response 403 Getvehicles"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/vehicles/public":{"get":{"tags":["vehicles"],"summary":"Return all vehicles for the given group_id without role restriction.","description":"**This endpoint allows to get vehicles for the given group_id without role restriction, filtered by status.**","operationId":"getVehiclePublic","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"statuses","in":"query","required":false,"schema":{"anyOf":[{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/VehicleStatus"}},{"type":"null"}],"title":"Statuses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VehiclePublicSchema"},"title":"Response Getvehiclepublic"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/vehicles/{vehicle_id}":{"get":{"tags":["vehicles"],"summary":"Return the vehicle for the given vehicle_id.","description":"**This endpoint allows to get the vehicle for the given vehicle_id.**\n\nVehicles filtered by the team of a user.\n\nRole needed: reader, admin, external_reader, operator, driver, limited_reader","operationId":"getVehicle","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the vehicle you want to get","title":"Vehicle Id"},"description":"The id of the vehicle you want to get"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/pysae__api__vehicles__schemas__VehicleSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"}],"title":"Response 403 Getvehicle"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/export/vehicles":{"get":{"tags":["vehicles","stats"],"summary":"Returns a csv file with all vehicles filtered by status","description":"**This endpoint allows to export a csv file with all vehicles filtered by status.**\n\n# Export des Véhicules\n\nCe rapport permet d’exporter une liste des véhicules\n\n| **Champ**         | **Champ requis** | **Identifiant Pysae** | **Description** |\n|-------------------|------------------|-----------------------|----------------------------------|\n| `id`             | Oui              | Oui                   | Identifiant unique du véhicule |\n| `fleet_number`   | Oui              | Non                   | Numéro de flotte du véhicule |\n| `license_plate`  | Oui              | Non                   | Plaque d’immatriculation du véhicule |\n| `teams`          | Non              | Oui                   | Liste des équipes associées au véhicule |\n| `comment`        | Non              | Non                   | Commentaire libre sur l’état ou l’utilisation du véhicule |\n| `archived`       | Oui              | Non                   | Indique si le véhicule est archivé |\n| `capacity`       | Non              | Non                   | Capacité maximale de passagers |\n\n\n<h2>Example : </h2>\n\n| **id** | **fleet_number** | **license_plate** | **teams** | **comment** | **status** | **capacity** |\n|:--|:--|:--|:--|:--|:--|:--|\n| 67ac7168782c60a04ba486d4 | 839 | XY-999-YX | — | Good condition | active | — |\n\nRole needed: reader, admin, external_reader, operator, driver, limited_reader","operationId":"getExportVehicles","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"statuses","in":"query","required":false,"schema":{"anyOf":[{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/VehicleStatus"}},{"type":"null"}],"title":"Statuses"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"id;fleet_number;license_plate;teams;comment;status;capacity\n67ac7168782c60a04ba486d4;839;XY-999-YX;;Good condition;active;"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"}],"title":"Response 403 Getexportvehicles"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/vehicle-amount":{"get":{"tags":["vehicles","stats"],"summary":"Number of registered vehicle for a group","description":"**Get the number of vehicle registered for a group.**","operationId":"getVehicleAmount","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleAmountSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/users/me":{"get":{"tags":["users"],"summary":"Get current group user.","description":"**This endpoint allows to get the current group user.**","operationId":"getUserMe","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoUser"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/shapes":{"get":{"summary":"Find gtfs shapes","description":"**This endpoint allows to get the list of shapes for a specific gtfs_id.**","operationId":"getGtfsShapes","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeGTFSSchema"},"title":"Response Getgtfsshapes"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/duties":{"get":{"tags":["duties"],"summary":"Get list of duties.","description":"**This endpoint allows you to get a list of duties**\n\nRole needed: technical, external_reader, reader, operator, limited_reader","operationId":"getDuties","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"anonymized","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True to get anonymized data, else all","title":"Anonymized"},"description":"True to get anonymized data, else all"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Limit the number of results","default":0,"title":"Limit"},"description":"Limit the number of results"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DutySorting"},{"type":"null"}],"description":"\n                 Sort the duties by the given criteria.\n                  Expects a criteria of the form `field:order` where\n                  field is the `field` to sort by, and `order` either\n                  `asc` or `desc`. For the time being, the only supported\n                  `field` is `check_in`","title":"Sort"},"description":"\n                 Sort the duties by the given criteria.\n                  Expects a criteria of the form `field:order` where\n                  field is the `field` to sort by, and `order` either\n                  `asc` or `desc`. For the time being, the only supported\n                  `field` is `check_in`"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{4}\\d{2}\\d{2}$"},{"type":"null"}],"description":"Filter on a start date, in GTFS format.","examples":["20180224"],"title":"Start Date"},"description":"Filter on a start date, in GTFS format."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DutySchemaV3"},"title":"Response Getduties"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getduties"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/duties/search-comments":{"get":{"tags":["duties"],"summary":"Get comments of duties filtered by start_date","description":"**This endpoint allows you to get comments of duties filtered by start_date**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getDutySearchComments","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"start_date","in":"query","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The start date of the duty you want to retrieve datas from.","title":"Start Date"},"description":"The start date of the duty you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CommentRetrieveSchema"},"title":"Response Getdutysearchcomments"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__10"}],"title":"Response 403 Getdutysearchcomments"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/duties/{duty_id}/comments":{"get":{"tags":["duties"],"summary":"Get comments of duties filtered by duty_id","description":"**This endpoint allows you to get comments of duties filtered by duty_id**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getDutyComments","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"duty_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the duty you want to retrieve datas from.","examples":["670f84254c28ffdaae0f462d"],"title":"Duty Id"},"description":"The id of the duty you want to retrieve datas from."},{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CommentRetrieveSchema"},"title":"Response Getdutycomments"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__11"}],"title":"Response 403 Getdutycomments"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DutyNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/duties/{duty_id}":{"get":{"tags":["duties"],"summary":"Get a specific duty.","description":"**This endpoint allows you to get a specific duty**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getDuty","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"duty_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the duty you want to retrieve datas from.","examples":["670f84254c28ffdaae0f462d"],"title":"Duty Id"},"description":"The id of the duty you want to retrieve datas from."},{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DutySchemaV3"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__11"}],"title":"Response 403 Getduty"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DutyNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/stats/vehicles-used":{"get":{"tags":["duties","stats"],"summary":"Number of unique vehicles used per day","description":"**Get the number of vehicles used per day for a group.**\n\nRole needed: technical, external_reader, reader, operator, limited_reader","operationId":"getStatVehiclesUsed","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"]},{"type":"null"}],"title":"Group Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","examples":["20201122"],"title":"Start Date"},"description":"The first date to include"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","examples":["20201122"],"title":"End Date"},"description":"The last date to include"},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"]},{"type":"null"}],"title":"Device Id"}},{"name":"gtfs_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-pysae-api-batch-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Batch-Id"}},{"name":"x-pysae-api-request-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Request-Id"}},{"name":"x-pysae-api-lazy-loading-router","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Lazy-Loading-Router"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsedVehicleCountSchema"},"title":"Response Getstatvehiclesused"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getstatvehiclesused"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/api-keys":{"get":{"tags":["api-keys"],"summary":"Get all declared API keys","description":"**This endpoint allows you to get all declared API Keys.**\n\nAPI Keys can be used to access the api from an external application.\n\nRole needed: admin","operationId":"getApiKeys","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeySchema"},"title":"Response Getapikeys"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__12"}],"title":"Response 403 Getapikeys"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true},"post":{"tags":["api-keys"],"summary":"Create a new API Key","description":"**This endpoint allows to create a new API Key.**\n\nRole needed: admin","operationId":"postApiKeys","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__12"}],"title":"Response 403 Postapikeys"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/api-keys/{api_key_id}":{"get":{"tags":["api-keys"],"summary":"Get a declared API key","description":"**This endpoint allows you to get a declared API Key.**\n\nAPI Keys can be used to access the api from an external application.\n\nRole needed: admin","operationId":"getApiKey","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Api Key Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/ApiKeyNotFound"}],"title":"Response 404 Getapikey"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"}],"title":"Response 403 Getapikey"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true},"delete":{"tags":["api-keys"],"summary":"Delete an existing API Key","description":"**This endpoint allows to delete an existing API Key.**\n\nRole needed: admin","operationId":"deleteApiKey","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Api Key Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/ApiKeyNotFound"}],"title":"Response 404 Deleteapikey"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"}],"title":"Response 403 Deleteapikey"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/api-keys":{"post":{"tags":["api-keys"],"summary":"Create a multi-group or superuser API Key","description":"**This endpoint allows to create an API Key spanning several groups.**\n\nA role-based key grants its role on every listed group; a superuser key grants admin access to all groups. Creating a multi-group key requires the admin role on each targeted group; a superuser key requires being superuser.","operationId":"postGlobalApiKeys","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyGlobalCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/NoUser"},{"$ref":"#/components/schemas/InvalidRole"}],"title":"Response 403 Postglobalapikeys"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-unique-id.segments":["global"],"x-api-version":4,"x-path-prefix":"/api","x-public":true},"get":{"tags":["api-keys"],"summary":"Get all superuser API keys","description":"**This endpoint allows a superuser to list all superuser API keys.**","operationId":"getGlobalApiKeys","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeySchema"},"title":"Response Getglobalapikeys"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-unique-id.segments":["global"],"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/api-keys/{api_key_id}":{"delete":{"tags":["api-keys"],"summary":"Delete a superuser API Key","description":"**This endpoint allows a superuser to delete a superuser API key.**","operationId":"deleteGlobalApiKey","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Api Key Id"}},{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-unique-id.segments":["global"],"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/planning":{"get":{"tags":["planning"],"summary":"Get plannings.","description":"**This endpoint is used to get plannings.**\n\nRole needed: reader, operator, driver","operationId":"getPlanning","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","examples":["20201122"],"title":"Date"}},{"name":"driver_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The id of the driver you want to retrieve datas from","title":"Driver Id"},"description":"The id of the driver you want to retrieve datas from"},{"name":"vehicle_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The id of the vehicle you want to retrieve datas from","title":"Vehicle Id"},"description":"The id of the vehicle you want to retrieve datas from"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlanningSchema"},"title":"Response Getplanning"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__14"}],"title":"Response 403 Getplanning"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true},"put":{"tags":["planning"],"summary":"Create or replace plannings.","description":"An assignment attach a `trip_id` and a `date` to at least         a vehicle or a driver. `vehicle_id` and `driver_id` are the         most efficient way to provide assignments.         When unknown, they can be replaced by `license_plate` and `staff_number`         If redundant data is sent, such as both `license_plate`         and `vehicle_id`, these fields must match or an error is raised.\n\nRole needed: admin","operationId":"putPlanning","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ImportFormat","default":"json"}},{"name":"filename","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsertedPlanningSchema"},"title":"Response Putplanning"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__12"}],"title":"Response 403 Putplanning"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/teams":{"get":{"tags":["teams"],"summary":"Get all group teams","description":"**This endpoint allows you to get nonarchived teams.**\n\nRole needed: admin","operationId":"getTeams","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"include_archived","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Archived"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Team"},"title":"Response Getteams"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__12"}],"title":"Response 403 Getteams"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/voip/callbacks":{"get":{"tags":["voip"],"summary":"List VoIP callbacks for the group","description":"**List every COMMAND_REQUEST callback received from Instavox.**\n\nFeature needed: voip\n\nRole needed: reader, operator, technical, admin","operationId":"getVoipCallbacks","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"is_resolved","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by resolution status","title":"Is Resolved"},"description":"Filter by resolution status"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VoipCallbackSchema"},"title":"Response Getvoipcallbacks"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__15"}],"title":"Response 403 Getvoipcallbacks"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/voip/callbacks/{callback_id}":{"get":{"tags":["voip"],"summary":"Fetch a VoIP callback by Mongo id","description":"**Return the persisted state of a single COMMAND_REQUEST callback.**\n\nFeature needed: voip\n\nRole needed: reader, operator, technical, admin","operationId":"getVoipCallback","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"callback_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Mongo identifier of the callback (24-char hex)","title":"Callback Id"},"description":"Mongo identifier of the callback (24-char hex)"},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipCallbackSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__16"}],"title":"Response 403 Getvoipcallback"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/VoipCallbackNotFound"}],"title":"Response 404 Getvoipcallback"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/export/trips":{"get":{"tags":["trips","stats"],"summary":"Exports recorded trips for a date as a csv","description":"**Exports recorded trips for a date as a csv**\n\nRole needed: reader, operator, admin","operationId":"getExportTrips","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"date","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"The date you want to get the trips for","title":"Date"},"description":"The date you want to get the trips for"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__17"}],"title":"Response 403 Getexporttrips"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/trips":{"get":{"tags":["trips"],"summary":"Returns a list of trips for a date","description":"**This endpoint allows to get a list of trips for a date.**\n\nRole needed: technical, reader, external_reader, limited_reader, operator, admin","operationId":"getTrips","deprecated":true,"security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"date","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"The date you want to get the trips for","title":"Date"},"description":"The date you want to get the trips for"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__trips__v4__schemas__TripSchema"},{"$ref":"#/components/schemas/ScheduledTripSchema"}]},"title":"Response Gettrips"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gettrips"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/trips/{trip_id}":{"get":{"tags":["trips"],"summary":"Returns a trip for a date","description":"**This endpoint allows to get a trip for a date.**\n\nRole needed: technical, reader, external_reader, limited_reader, operator, admin","operationId":"getTrip","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"trip_id","in":"path","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"merge","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Merge"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Gettrip"},"example":{"id":"","arrival_time":"","departure_time":"","service_date":"","formatted_name":"","route":{"id":"","color":"","long_name":"","short_name":"","text_color":""},"first_stop":{"id":"","name":"","stop_sequence":0},"last_stop":{"id":"","name":"","stop_sequence":0},"temporality":"","passenger_count":{"boardings":"","alightings":"","loading":""},"tk":"","vk":"","percent_km":"","off_itinerary_km":"","recorded_commercial_km":"","unreliable_km":"","reliable_km":"","delay":[],"gtfs":[{"id":"","name":"","publication_date":""}],"vehicles":[],"drivers":[],"devices":[],"trips":[],"updates":{},"service":{"recorded_stops":"","planned_stops":""},"problems":{},"status":""}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Gettrip"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/TripNotFound"}],"title":"Response 404 Gettrip"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}":{"get":{"tags":["gtfs"],"summary":"Returns compressed GTFS files by GTFS id.","description":"**This endpoint allows to get the GTFS file for a specific gtfs_id.**\n\nCompression ZIP .txt files.","operationId":"getGtfs","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response zip","content":{"application/zip":{"schema":{"type":"zip"},"example":""}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getgtfs"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs":{"get":{"tags":["gtfs"],"summary":"Get all GTFS files for a group.","description":"**This endpoint allows to get the list of GTFS files for a specific group.**\n\nPublicly available endpoint.","operationId":"getGtfsList","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by archived files","title":"Archived"},"description":"Filter by archived files"},{"name":"gtfs_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GtfsFileSchema"},"title":"Response Getgtfslist"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/validate":{"get":{"tags":["gtfs"],"summary":"Returns compressed GTFS files by GTFS id.","description":"**Compression ZIP .txt files. No credentials needed.**","operationId":"getGtfsValidate","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Gtfs Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsFileSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getgtfsvalidate"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/nav-data-processor-api/v4/groups/{group_id}/messages":{"get":{"tags":["messages","ndp"],"summary":"Get all messages by group.","description":"**This endpoint allows to get all messages of a group.**\n\nBy default messages are filtered by team_id of the user (if the user has a team_id) and by archived=false status.\n\nRole needed: reader, operator, driver, external_reader","operationId":"getMessagesNdp","deprecated":true,"security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"delivered","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Delivered"}},{"name":"archived","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Archived"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageSchemaDeprecated"},"title":"Response Getmessagesndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__1"}],"title":"Response 403 Getmessagesndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp","x-public":true},"post":{"tags":["messages","ndp"],"summary":"Post a new message","description":"**This endpoint allows to create a new message.**\n\n- To create a message at least one recipient or team_id in teams list should be present.\n- If teams is present all device_ids that belong to at least one of the given team_ids will become the recipients.\n\nRole needed: operator, driver","operationId":"postMessagesNdp","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreateSchema"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreatedSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__19"}],"title":"Response 403 Postmessagesndp"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp","x-public":true}},"/api/v4/groups/{group_id}/messages":{"get":{"tags":["messages"],"summary":"Get all messages by group.","description":"**This endpoint allows to get all messages of a group.**\n\nBy default messages are filtered by team_id of the user (if the user has a team_id) and by archived=false status. Use the 'after_id' parameter to retrieve messages created after a given message id.\n\nRole needed: reader, operator, driver, external_reader","operationId":"getMessages","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"After Id"}},{"name":"delivered","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Delivered"}},{"name":"archived","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Archived"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageSchemaDeprecated"},"title":"Response Getmessages"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__1"}],"title":"Response 403 Getmessages"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true},"post":{"tags":["messages"],"summary":"Post a new message","description":"**This endpoint allows to create a new message.**\n\n- To create a message at least one recipient or team_id in teams list should be present.\n- If teams is present all device_ids that belong to at least one of the given team_ids will become the recipients.\n\nRole needed: operator, driver","operationId":"postMessages","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreateSchema"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreatedSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__19"}],"title":"Response 403 Postmessages"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/nav-data-processor-api/v4/groups/{group_id}/messages/{message_id}":{"get":{"tags":["messages","ndp"],"summary":"Get one message by id.","description":"**This endpoint allows to get one message by id.**\n\nRole needed: reader, operator, driver, external_reader","operationId":"getMessageNdp","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSchemaDeprecated"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__20"}],"title":"Response 403 Getmessagendp"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp","x-public":true}},"/api/v4/groups/{group_id}/messages/{message_id}":{"get":{"tags":["messages"],"summary":"Get one message by id.","description":"**This endpoint allows to get one message by id.**\n\nRole needed: reader, operator, driver, external_reader","operationId":"getMessage","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSchemaDeprecated"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__20"}],"title":"Response 403 Getmessage"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true},"patch":{"tags":["messages"],"summary":"Archive one message.","description":"**This endpoint allows to archive one message.**\n\nRole needed: operator","operationId":"patchMessage","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the message you want to retrieve.","title":"Message Id"},"description":"The id of the message you want to retrieve."},{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageArchiveSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__21"}],"title":"Response 403 Patchmessage"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/messages-archive":{"post":{"tags":["messages"],"summary":"Archive messages by id","description":"**This endpoint allows to archive a message by id.\nIf there is not the same amount of id given and modified at the end, it may be because the id does not exist or because you don't have the right to update them**\n\nRole needed: operator","operationId":"postMessagesArchive","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageBulkArchiveSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageBulkArchiveResultSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__22"}],"title":"Response 403 Postmessagesarchive"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/nav-data-processor-api/v4/groups/{group_id}/messages/{message_id}/recipients/{recipient_address}":{"patch":{"tags":["messages","ndp"],"summary":"Set read or delivered status.","description":"**This endpoint allows to set read or delivered status of a message.**\n\nRole needed: operator, driver","operationId":"patchMessageRecipientNdp","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the message you want to retrieve.","title":"Message Id"},"description":"The id of the message you want to retrieve."},{"name":"recipient_address","in":"path","required":true,"schema":{"type":"string","description":"The address of the recipient.","title":"Recipient Address"},"description":"The address of the recipient."},{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageUpdateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__23"}],"title":"Response 403 Patchmessagerecipientndp"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp","x-public":true}},"/api/v4/groups/{group_id}/messages/{message_id}/recipients/{recipient_address}":{"patch":{"tags":["messages"],"summary":"Set read or delivered status.","description":"**This endpoint allows to set read or delivered status of a message.**\n\nRole needed: operator, driver","operationId":"patchMessageRecipient","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the message you want to retrieve.","title":"Message Id"},"description":"The id of the message you want to retrieve."},{"name":"recipient_address","in":"path","required":true,"schema":{"type":"string","description":"The address of the recipient.","title":"Recipient Address"},"description":"The address of the recipient."},{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageUpdateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__23"}],"title":"Response 403 Patchmessagerecipient"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/export/messages":{"get":{"tags":["messages","stats"],"summary":"Returns a csv file with all messages","description":"**This endpoint allows you to export all messages**\n\n\n\n<h2>Example : </h2>\n\n| **id** | **sender_client** | **sender_device_id** | **sender_trip_gtfs_id** | **sender_trip_formatted_trip_name** | **sender_trip_trip_id** | **sender_trip_start_date** | **sender_user_id** | **sender_coordinates** | **recipient_addresses** | **recipient_read_amount** | **recipient_read_percent** | **recipient_delivered_amount** | **recipient_delivered_percent** | **subject** | **teams** | **archived** | **priority** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 686287ec510edb0ea1c361ac | op | — | — | — | — | — | user.operator@pysae.com, | — | device_id:A1mSIGH4nuvd, | 100.0 | 7656 | 1 | 100.0 | Bouchon sur la roccade | — | False | — |\n| 686287d983374481681d64f4 | driver | 012345abcdef | 6862647c6989da786e4325df | 14:52 vers COLLIGNON | 801 | 3734541-2025_E-Mult_LaM-L-Ma-Me-01 | 20250630 | — | 48.853410, 2.3488000 | op | 100.0 | 8321 | 1 | 100.0 | Départ d'incendie | — | False | high |\n\nRole needed: reader, operator, driver, external_reader","operationId":"getExportMessages","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Get both if not set","title":"Archived"},"description":"Get both if not set"},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},{"name":"sender_client","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Client"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"id;sender_client;sender_device_id;sender_trip_gtfs_id;sender_trip_formatted_trip_name;sender_trip_trip_id;sender_trip_start_date;sender_user_id;sender_coordinates;recipient_addresses;recipient_read_amount;recipient_read_percent;recipient_delivered_amount;recipient_delivered_percent;subject;teams;archived;priority\n686287ec510edb0ea1c361ac;op;;;;;;user.operator@pysae.com,;;device_id:A1mSIGH4nuvd,;100.0;7656;1;100.0;Bouchon sur la roccade;;False;\n686287d983374481681d64f4;driver;012345abcdef;6862647c6989da786e4325df;14:52 vers COLLIGNON | 801;3734541-2025_E-Mult_LaM-L-Ma-Me-01;20250630;;48.853410, 2.3488000;op;100.0;8321;1;100.0;Départ d'incendie;;False;high"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__1"}],"title":"Response 403 Getexportmessages"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/stats/trip-tracking":{"get":{"tags":["trip-tracking","stats"],"summary":"Return the number of scheduled trips compared to the number of tracked trips grouped by day or by route.","description":"**This endpoint returns the number of scheduled trips compared to the number of tracked trips grouped by day or by route.**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getStatTripTracking","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"group_by","in":"query","required":true,"schema":{"$ref":"#/components/schemas/pysae__api__trip_tracking__router__GroupBy"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/TripTrackingRoute"}},{"type":"array","items":{"$ref":"#/components/schemas/TripTrackingDay"}}],"title":"Response Getstattriptracking"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getstattriptracking"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/export/trip-tracking":{"get":{"tags":["trip-tracking","stats"],"summary":"Return a csv file with tracking status of all scheduled trips.","description":"**This endpoint returns a csv file with tracking status of all scheduled trips.**\n\nPour chaque course planifiée sur le GTFS, une ligne dans le fichier CSV.\n\n# Description des champs\n\n| nom                 | requis | issu du GTFS | identifiant Pysae | commentaires                                                                  |\n| ------------------- | ------ | ------------ | ----------------- | ----------------------------------------------------------------------------- |\n| gtfs_id             | oui    | non          | oui               |                                                                               |\n| gtfs_name           | oui    | non          | non               | nom donné par l'utilisateur                                                   |\n| departure_time      | oui    | oui          | non               | heure de départ planifiée au format ISO                                       |\n| trip_id             | oui    | oui          | non               |                                                                               |\n| trip_formatted_name | oui    | non          | non               | nom du trajet selon le format configuré par l'utilisateur                     |\n| route_id            | oui    | oui          | non               |                                                                               |\n| route_long_name     | non    | oui          | non               | requis si `route_short_name` absent                                           |\n| route_short_name    | non    | oui          | non               | requis si `route_long_name` absent                                            |\n| agency_id           | oui    | oui          | non               |                                                                               |\n| is_tracked          | oui    | non          | non               | est considérée suivie une course qui a été commencée par au moins un appareil |\n| trip_teams          | non    | non          | non               | équipes associées à la course dans le GTFS                                    |\n| device_team         | non    | non          | non               | équipe de l'appareil qui a pris la course                                     |\n\n\n<h2>Example : </h2>\n\n| **gtfs_id** | **gtfs_name** | **departure_time** | **trip_id** | **trip_formatted_name** | **route_id** | **route_long_name** | **route_short_name** | **agency_id** | **is_tracked** | **trip_teams** | **device_team** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 123456 | Ligne 42 - Matin | 2025-05-13T08:00:00 | trip_001 | Gare → Centre | route_42 | Longue Ligne 42 | — | agency_1 | True | team-a | team-a |\n| 789012 | Ligne 15 - Soir | 2025-05-13T18:30:00 | trip_002 | Université → Stade | route_15 | — | 15S | agency_1 | False | — | team-b |\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getExportTripTracking","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"gtfs_id;gtfs_name;departure_time;trip_id;trip_formatted_name;route_id;route_long_name;route_short_name;agency_id;is_tracked;trip_teams;device_team\n123456;Ligne 42 - Matin;2025-05-13T08:00:00;trip_001;Gare → Centre;route_42;Longue Ligne 42;;agency_1;True;team-a;team-a\n789012;Ligne 15 - Soir;2025-05-13T18:30:00;trip_002;Université → Stade;route_15;;15S;agency_1;False;;team-b"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getexporttriptracking"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/calendar_dates":{"get":{"summary":"Get the list of calendar dates for the given gtfs id","description":"**This endpoint allows to get the list of calendar dates for the given gtfs id**\n\nPublicly available endpoint","operationId":"getGtfsCalendarDates","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CalendarDateGTFSSchema"},"title":"Response Getgtfscalendardates"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/calendar_dates/{service_id}":{"get":{"summary":"Get calendar dates for the given service id","description":"**This endpoint allows to get the calendar dates for the given service id**\n\nPublicly available endpoint","operationId":"getGtfsCalendarDate","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string","description":"The service id to get the calendar dates for","title":"Service Id"},"description":"The service id to get the calendar dates for"},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CalendarDateGTFSSchema"},"title":"Response Getgtfscalendardate"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/roles":{"get":{"tags":["roles"],"summary":"Get current role.","description":"**This endpoint allows you to get the role of the current user in a group.**\n\n- Get role of current user in a group.\n- If it is an admin, get all roles of all user of the group.","operationId":"getRoles","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleSchema"},"title":"Response Getroles"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/rail/departures":{"get":{"tags":["rail"],"summary":"Get the rail departure board of one of your stops.","description":"**Return the trains leaving the rail stations attached to this stop, theoretical times enriched with realtime.**\n\n- Requires the `rail_data` feature.\n- Without `from` and `to`, the window covers the next hour — what a departure board displays.\n- Sorted by increasing theoretical departure time, the time the window filters on, so the order stays stable as the estimates move.\n- `estimated_departure`, `delay_seconds`, `status` and `disruptions` come from the realtime feeds. When no realtime is available the board is still served, on its theoretical times alone, with `status: scheduled`.\n- Every mode calling at the station is returned, including `Car TER` replacement coaches — read `route_type` to tell them apart.\n- A stop attached to no rail station answers `200` with an empty list, not an error.\n\nFeature needed: rail_data","operationId":"getRailDepartures","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"stop_id","in":"query","required":true,"schema":{"type":"string","description":"Identifier of the stop in your network's GTFS (`stops.txt`). The board covers every rail station this stop is attached to.","title":"Stop Id"},"description":"Identifier of the stop in your network's GTFS (`stops.txt`). The board covers every rail station this stop is attached to."},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"null"}],"description":"Start of the window, included. Absolute instant — ISO 8601 or an epoch in seconds. Defaults to now, or to `to` minus 1 h when only `to` is given.","title":"From"},"description":"Start of the window, included. Absolute instant — ISO 8601 or an epoch in seconds. Defaults to now, or to `to` minus 1 h when only `to` is given."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"null"}],"description":"End of the window, included. Absolute instant — ISO 8601 or an epoch in seconds. Defaults to `from` plus 1 h. The window may not exceed 24 h.","title":"To"},"description":"End of the window, included. Absolute instant — ISO 8601 or an epoch in seconds. Defaults to `from` plus 1 h. The window may not exceed 24 h."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RailDepartureSchema"},"title":"Response Getraildepartures"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRailDeparturesWindow"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/trip-events":{"get":{"tags":["trip_events"],"summary":"Returns trip events","description":"**This endpoint allows to get trip events.**\n\nProvides filters\n\nRole needed: reader, admin, external_reader, operator, driver, limited_reader","operationId":"getTripEvents","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The id of the device you want to retrieve datas from.","title":"Device Id"},"description":"The id of the device you want to retrieve datas from."},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The type of the event you want to retrieve datas from.","title":"Event Type"},"description":"The type of the event you want to retrieve datas from."},{"name":"trip_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The id of the trip you want to retrieve datas from.","title":"Trip Id"},"description":"The id of the trip you want to retrieve datas from."},{"name":"trip_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The date of the trip you want to retrieve datas from.","title":"Trip Date"},"description":"The date of the trip you want to retrieve datas from."},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The date from you want to retrieve datas from.","title":"Date From"},"description":"The date from you want to retrieve datas from."},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The date to you want to retrieve datas from (included).","title":"Date To"},"description":"The date to you want to retrieve datas from (included)."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TripEventSchema"},"title":"Response Gettripevents"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"}],"title":"Response 403 Gettripevents"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/notifications/sms_count":{"get":{"tags":["notifications"],"summary":"Get notification count for a group","description":"**This endpoint allows you to get notification count for a group**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getNotificationSmsCount","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"]},{"type":"null"}],"title":"Group Id"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},{"type":"null"}],"description":"Period in YYYY-MM format","title":"Period"},"description":"Period in YYYY-MM format"},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"]},{"type":"null"}],"title":"Device Id"}},{"name":"gtfs_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-pysae-api-batch-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Batch-Id"}},{"name":"x-pysae-api-request-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Request-Id"}},{"name":"x-pysae-api-lazy-loading-router","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pysae-Api-Lazy-Loading-Router"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmsCountResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getnotificationsmscount"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/trip-details-feed":{"get":{"tags":["trips"],"summary":"Endpoint to get detailed feed for a specific trip","description":"**This endpoint allows to get a detailed feed for a specific trip.**\n\nRole needed: reader, admin, external_reader, operator, limited_reader","operationId":"getTripDetailsFeed","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"trip_id","in":"query","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","examples":["20201122"],"title":"Start Date"}},{"name":"gtfs_id","in":"query","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Gtfs Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/StopTimesFeedSchema"},{"$ref":"#/components/schemas/MessageDetailsSchema"},{"$ref":"#/components/schemas/UpdatesSchema"},{"$ref":"#/components/schemas/PassengerCountDetailsSchema"},{"$ref":"#/components/schemas/TripTakingSchema"}]},"title":"Response Gettripdetailsfeed"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Gettripdetailsfeed"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/stops":{"get":{"summary":"Find stops","description":"**This endpoint allows to get the list of stops for a specific gtfs_id.**\n\n Publicly available endpoint.","operationId":"getGtfsStops","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StopGTFSSchema"},"title":"Response Getgtfsstops"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/stops/{stop_id}":{"get":{"summary":"Get a stop","description":"**This endpoint allows to get the stops for a specific stop_id.**\n\nPublicly available endpoint.","operationId":"getGtfsStop","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"stop_id","in":"path","required":true,"schema":{"type":"string","description":"The stop id to get","title":"Stop Id"},"description":"The stop id to get"},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopGTFSSchema"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsStopNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/alerts":{"get":{"tags":["alerts"],"summary":"Return the alerts for the given group_id.","description":"**This endpoint allows to get all alerts for the given group_id.**","operationId":"getAlerts","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertSchema"},"title":"Response Getalerts"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/alerts/{alert_id}":{"get":{"tags":["alerts"],"summary":"Return the alert with the given alert_id.","description":"**This endpoint allows to get an alert from the given alert_id.**","operationId":"getAlert","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/export/alerts":{"get":{"tags":["alerts","stats"],"summary":"Return the alerts for the given group_id.","description":"**This endpoint allows to get all alerts for the given group_id.**\n\n# Export des Alertes\n\nCe rapport permet d’exporter la liste des alertes actives ou passées.\n\n| **Champ**            | **Champ requis** | **Champ du GTFS** | **Identifiant Pysae** | **Description** |\n|----------------------|------------------|-------------------|-----------------------|----------------------------------|\n| `active`           | Oui              | Non               | Non                   | Indique si l’alerte est active |\n| `header_text`      | Oui              | Oui               | Non                   | Titre ou sujet de l’alerte |\n| `description_text` | Oui              | Non               | Non                   | Description détaillée de l’alerte |\n| `description_raw`  | Oui              | Oui               | Non                   | Description brute de l’alerte |\n| `start_date`       | Oui              | Non               | Non                   | Date et heure de début de l’alerte (format `2024-03-04T00:00:00+00:00`) |\n| `end_date`         | Oui              | Non               | Non                   | Date et heure de fin de l’alerte (format `2024-03-04T00:00:00+00:00`) |\n| `cause`           | Oui              | Oui               | Non                   | Raison de l’alerte (ex. `MAINTENANCE`) |\n| `effect`          | Oui              | Oui               | Non                   | Effet de l’alerte sur le service (ex. `OTHER_EFFECT`) |\n| `url`             | Non              | Oui               | Non                   | Lien vers une page web détaillant l’alerte. |\n| `stop_id`         | Non              | Oui               | Non                   | Identifiant de l’arrêt affecté |\n| `route_id`        | Non              | Oui               | Non                   | Identifiant de la ligne concernée |\n\n\n<h2>Example : </h2>\n\n| **active** | **header_text** | **description_text** | **description_raw** | **start_date** | **end_date** | **cause** | **effect** | **url** | **stop_id** | **route_id** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| True | Problem | <p>Unavoidable problem at stop</p> | Unavoidable problem at stop | 2024-03-04T00:00:00+00:00 | 2024-03-05T23:59:00+00:00 | MAINTENANCE | OTHER_EFFECT | http://www.transporter.com/unavoidable-problem-1 | the-stop-id-1 | the-route-id-1 |\n| False | Discomfort | <p>Light disconfort</p> | Light discomfort | 2024-03-04T00:00:00+00:00 | 2024-03-05T23:59:00+00:00 | MAINTENANCE | OTHER_EFFECT | http://www.transporter.com/light-lack-of-comfort | the-stop-id-3 | the-route-id-2 |","operationId":"getExportAlerts","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"active;header_text;description_text;description_raw;start_date;end_date;cause;effect;url;stop_id;route_id\nTrue;Problem;<p>Unavoidable problem at stop</p>;Unavoidable problem at stop;2024-03-04T00:00:00+00:00;2024-03-05T23:59:00+00:00;MAINTENANCE;OTHER_EFFECT;http://www.transporter.com/unavoidable-problem-1;the-stop-id-1;the-route-id-1\nFalse;Discomfort;<p>Light disconfort</p>;Light discomfort;2024-03-04T00:00:00+00:00;2024-03-05T23:59:00+00:00;MAINTENANCE;OTHER_EFFECT;http://www.transporter.com/light-lack-of-comfort;the-stop-id-3;the-route-id-2"}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/devices/online":{"get":{"tags":["devices"],"summary":"Get all devices that are online","description":"**This endpoint allows you to get all devices that are online.**\n\nDevices are considered online if device.ts > now - 120 seconds.","operationId":"getDeviceOnline","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"route_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Route Id"}},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Device Id"}},{"name":"trip_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Trip Id"}},{"name":"block_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Block Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceOnlineV4Schema"},"title":"Response Getdeviceonline"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/devices/online/count":{"get":{"tags":["devices"],"summary":"Count all devices that are online combined by route_id","description":"**This endpoint allows you to count all devices that are online combined by route_id.**\n\nDevices are considered online if device.ts > now - 120 seconds","operationId":"getDeviceOnlineCount","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"route_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"The id(s) of the route(s) you want to focus on.","title":"Route Id"},"description":"The id(s) of the route(s) you want to focus on."},{"name":"trip_pending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Set to filter devices on given value for trip_pending.","title":"Trip Pending"},"description":"Set to filter devices on given value for trip_pending."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceCountSchema"},"title":"Response Getdeviceonlinecount"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/devices":{"get":{"tags":["devices"],"summary":"Get all devices","description":"**This endpoint allows you to get all devices**\n\n- Devices filtered by the team of a user.\n- If the user has no team, all devices of the given group are shown.\n- Returned fields depend on current user.","operationId":"getDevices","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/DeviceAllSchema"}},{"type":"array","items":{"$ref":"#/components/schemas/DevicePublicSchema"}}],"title":"Response Getdevices"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/devices/{device_id}":{"get":{"tags":["devices"],"summary":"Return the device for the given device_id.","description":"**This endpoint allows you to return the device for the given device_id.**\n\nReturned fields depend on current user.","operationId":"getDevice","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"device_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceAllSchema"},{"$ref":"#/components/schemas/DevicePublicSchema"}],"title":"Response Getdevice"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/DeviceNotFound"}],"title":"Response 404 Getdevice"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/stats/daily_devices":{"get":{"tags":["devices","stats"],"summary":"Get daily devices count.","description":"**This endpoint allows you to get daily devices count.**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getStatDailyDevices","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"from","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"The start date of the period","title":"From"},"description":"The start date of the period"},{"name":"to","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"The end date of the period","title":"To"},"description":"The end date of the period"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DailyDevicesSchema"},"title":"Response Getstatdailydevices"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getstatdailydevices"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/calendars":{"get":{"summary":"Get the list of calendars for the given gtfs id","description":"**This endpoint allows to get the list of calendars for a specific gtfs_id.**\n\nPublicly available endpoint","operationId":"getGtfsCalendars","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CalendarGTFSSchema"},"title":"Response Getgtfscalendars"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/calendars/{service_id}":{"get":{"summary":"Get the info of the calendar identified by service_id","description":"**This endpoint allows to get the info of the calendar identified by service_id.**","operationId":"getGtfsCalendar","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the calendar you want to focus on","title":"Service Id"},"description":"The id of the calendar you want to focus on"},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CalendarGTFSSchema"},{"type":"null"}],"title":"Response Getgtfscalendar"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsCalendarNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/siri/capabilities":{"get":{"tags":["siri"],"summary":"SIRI services available for a group","description":"**Returns the absolute URLs of the SIRI services exposed by the gtfsrt-to-siri converter for the given group.**","operationId":"getSiriCapabilities","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiriCapabilities"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/siri":{"get":{"tags":["siri"],"summary":"SIRI-VM text preview","description":"**Returns a Vehicle Monitoring SIRI XML preview for the given group by proxying the gtfsrt-to-siri converter.**","operationId":"getSiri","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/stop_times":{"get":{"tags":["stop_times"],"summary":"Find stop times","description":"**This endpoint allows you to get the stop times for a group.**","operationId":"getStopTimes","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"stop_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Id(s) of the stop(s) you want to focus on","title":"Stop Id"},"description":"Id(s) of the stop(s) you want to focus on"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StopTimeSchema"},"title":"Response Getstoptimes"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/rail-stations":{"get":{"tags":["rail"],"summary":"List the SNCF passenger stations.","description":"**Search the global rail-station referential by name or by proximity.**\n\n- Open data, no authentication and no group: the same referential for everyone.\n- `q` matches a substring of the name, accent- and case-insensitively.\n- `near` orders by increasing distance and returns `distance_meters`.\n\nThe referential mirrors the SNCF `gares-de-voyageurs` dataset (2782 stations). It is reloaded manually when SNCF revises the dataset, so it holds no real-time information.\n\n`radius` only applies together with `near`; on its own it is ignored.","operationId":"getRailStations","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search terms matched as a substring of the station name. Accents, case and separators are ignored, so `saint germain` matches `Saint-Germain-en-Laye`.","title":"Q"},"description":"Search terms matched as a substring of the station name. Accents, case and separators are ignored, so `saint germain` matches `Saint-Germain-en-Laye`."},{"name":"radius","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"description":"Search radius around `near`, in metres.","default":10000,"title":"Radius"},"description":"Search radius around `near`, in metres."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"description":"1-based page index.","default":1,"title":"Page"},"description":"1-based page index."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Amount of items per page.","default":50,"title":"Page Size"},"description":"Amount of items per page."},{"name":"near","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^-?\\d+(?:\\.\\d+)?,-?\\d+(?:\\.\\d+)?$"},{"type":"null"}],"description":"Reference point as `<latitude>,<longitude>` in WGS 84 decimal degrees (e.g. `46.809737,1.699536`). Orders the results by increasing distance and restricts them to `radius`.","examples":["46.809737,1.699536"],"title":"Near"},"description":"Reference point as `<latitude>,<longitude>` in WGS 84 decimal degrees (e.g. `46.809737,1.699536`). Orders the results by increasing distance and restricts them to `radius`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RailStationPageSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRailStationNear"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/rail-stations/{uic}":{"get":{"tags":["rail"],"summary":"Get one SNCF passenger station by UIC code.","description":"**Return the station carrying this UIC code.**\n\nA station can be known by several UIC codes; any of them resolves to the same station.","operationId":"getRailStation","parameters":[{"name":"uic","in":"path","required":true,"schema":{"type":"string","description":"UIC code of the station, e.g. `87597005`.","title":"Uic"},"description":"UIC code of the station, e.g. `87597005`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RailStationSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RailStationNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/voip/devices":{"get":{"tags":["voip"],"summary":"List all known VoIP devices.","description":"**List every VoIP device that has connected to the customer account, including devices currently offline.**\n\nFeature needed: voip\n\nRole needed: reader, operator, technical, admin","operationId":"getVoipDevices","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VoipDeviceStatusSchema"},{"type":"null"}],"description":"Filter devices by their last known status","title":"Status"},"description":"Filter devices by their last known status"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VoipDeviceSchema"},"title":"Response Getvoipdevices"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/VoipGroupSettingsNotFound"}],"title":"Response 404 Getvoipdevices"}}},"description":"Not Found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipProviderUnavailable"}}},"description":"Service Unavailable"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"}],"title":"Response 403 Getvoipdevices"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/stats/passenger-counts":{"get":{"tags":["passenger-counts","stats"],"summary":"Returns passenger counts grouped by day or route for a range of date","description":"**This endpoint allows you to get passenger counts grouped by day or route for a range of date.**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getStatPassengerCounts","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"group_by","in":"query","required":true,"schema":{"$ref":"#/components/schemas/pysae__api__passenger_counts__router__GroupBy"}},{"name":"start_date","in":"query","required":false,"schema":{"type":"string","pattern":"\\d{8}$","default":"20260818","title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string","pattern":"\\d{8}$","default":"20260818","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PassengerCountSchemaByDay"},{"$ref":"#/components/schemas/PassengerCountSchemaByRoute"}]},"title":"Response Getstatpassengercounts"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getstatpassengercounts"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/export/passenger-counts":{"get":{"tags":["passenger-counts","stats"],"summary":"Returns a csv file with passenger counts for each trip in date range","description":"**This endpoint allows you to get a csv file with passenger counts for each trip in date range.**\n\n# Rapport du Comptage de Passagers\n\nCe rapport permet de suivre le nombre de passagers montés et descendus à chaque arrêt, en associant ces données aux trajets, véhicules et conducteurs.\n\n| **Champ**                | **Champ requis** | **Champ du GTFS** | **Identifiant Pysae** | **Description** |\n|--------------------------|------------------|-------------------|-----------------------|----------------------------------|\n| `agency_id`             | Non              | Oui               | Non                   | Identifiant de l'agence |\n| `alighting`             | Oui              | Non               | Non                   | Nombre de passagers descendus à l'arrêt |\n| `block_id`              | Non              | Oui               | Non                   | Identifiant du bloc |\n| `boarding`              | Oui              | Non               | Non                   | Nombre de passagers montés à l'arrêt |\n| `day_of_week`           | Oui              | Non               | Non                   | Jour de la semaine du trajet |\n| `device_id`             | Non              | Non               | Oui                   | Identifiant de l’appareil utilisé pour l’enregistrement |\n| `driver`               | Non              | Non               | Non                   | Nom du conducteur suivi de son matricule entre parenthèses |\n| `group_id`             | Oui              | Non               | Oui                   | Identifiant du groupe |\n| `gtfs_id`              | Oui              | Non               | Oui                   | Identifiant du fichier GTFS |\n| `location_type`        | Non              | Oui               | Non                   | Type d’emplacement |\n| `route_id`            | Non               | Oui               | Non                   | Identifiant de la ligne |\n| `route_long_name`      | Non               | Oui               | Non                   | Nom complet de la ligne |\n| `route_short_name`     | Non               | Oui               | Non                   | Nom court de la ligne |\n| `server_ts`           | Non               | Non               | Non                   | Horodatage serveur de l’événement |\n| `start_date`          | Oui               | Non               | Non                   | Date de début du trajet |\n| `stop_code`          | Non                | Oui               | Non                   | Code de l'arrêt |\n| `stop_id`            | Oui               | Oui               | Non                   | Identifiant de l'arrêt |\n| `stop_lat`          | Non                | Oui               | Non                   | Latitude de l'arrêt |\n| `stop_lon`          | Non                | Oui               | Non                   | Longitude de l'arrêt |\n| `stop_name`         | Non                | Oui               | Non                   | Nom de l'arrêt |\n| `stop_sequence`     | Oui               | Oui               | Non                   | Ordre de passage de l'arrêt dans l’itinéraire |\n| `teams`            | Non                | Oui               | Non                   | Équipes associées au trajet |\n| `total_boarding`   | Oui               | Non               | Non                   | Nombre total de passagers montés à l'arrêt |\n| `trip_formatted_name` | Non             | Non               | Non                   | Nom formaté du trajet selon la configuration utilisateur |\n| `trip_headsign`    | Non                | Oui               | Non                   | Destination affichée du trajet |\n| `trip_id`         | Oui                 | Oui               | Non                   | Identifiant du trajet |\n| `trip_short_name` | Non                 | Oui               | Non                   | Nom court du trajet |\n| `vehicle`        | Non                 | Non               | Non                   | Plaque d'immatriculation suivie du numéro de parc entre parenthèses |\n\n\n<h2>Example : </h2>\n\n| **group_id** | **gtfs_id** | **start_date** | **day_of_week** | **device_id** | **teams** | **trip_id** | **trip_short_name** | **trip_headsign** | **trip_formatted_name** | **block_id** | **route_id** | **route_long_name** | **route_short_name** | **agency_id** | **stop_id** | **stop_sequence** | **is_temporary_stop** | **stop_name** | **stop_code** | **stop_lat** | **stop_lon** | **driver** | **vehicle** | **location_type** | **boarding** | **alighting** | **total_boarding** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| My group | 6787cdef78c8d88c81fdbae3 | 2025-02-03 00:00:00+00:00 | monday | 284de389eb291bce | my-team | trip-id-1 | Trip1 | Start  > End | 10:10 [Route1 / block-1] > Start > End | Block-id-1 | Route-id-1 | Trip 1 : Start > End | Route 1 | 1 | Stop-id-2 | 2 | False | The Stop 2 ! | 2222222 | 0.0 | 0.0 | Driver 1 | Vehicle 1 | 0 | 2 | 0 | 2 |\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getExportPassengerCounts","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","title":"End Date"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"group_id;gtfs_id;start_date;day_of_week;device_id;teams;trip_id;trip_short_name;trip_headsign;trip_formatted_name;block_id;route_id;route_long_name;route_short_name;agency_id;stop_id;stop_sequence;is_temporary_stop;stop_name;stop_code;stop_lat;stop_lon;driver;vehicle;location_type;boarding;alighting;total_boarding\nMy group;6787cdef78c8d88c81fdbae3;2025-02-03 00:00:00+00:00;monday;284de389eb291bce;my-team;trip-id-1;Trip1;Start  > End;10:10 [Route1 / block-1] > Start > End;Block-id-1;Route-id-1;Trip 1 : Start > End;Route 1;1;Stop-id-2;2;False;The Stop 2 !;2222222;0.0;0.0;Driver 1;Vehicle 1;0;2;0;2"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Getexportpassengercounts"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/trips":{"get":{"summary":"Get trips by GTFS","description":"**This endpoint allows to get the list of trips for a specific gtfs_id.**","operationId":"getGtfsTrips","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TripGTFSSchema"},"title":"Response Getgtfstrips"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/trips/{trip_id}":{"get":{"summary":"Get GTFS trip by id","description":"**This endpoint allows to get the list of trips for a specific gtfs_id.**","operationId":"getGtfsTrip","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"trip_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the trip you want to retrieve","title":"Trip Id"},"description":"The id of the trip you want to retrieve"},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripGTFSSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsTripNotFound"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/depots":{"get":{"tags":["depot"],"summary":"Find Depots","description":"**This endpoint allows you to get all depots from a group.**\n\nRole needed: reader, external_reader, operator, driver, limited_reader","operationId":"getDepots","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DepotSchema"},"title":"Response Getdepots"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"}],"title":"Response 403 Getdepots"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/stats/punctuality":{"get":{"tags":["punctuality","stats"],"summary":"Get punctuality report in csv file.","description":"**This endpoint allows you to get punctuality stats for a group.**\n\nRole needed: reader, operator, limited_reader","operationId":"getStatPunctuality","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"from","in":"query","required":true,"schema":{"type":"integer","description":"The start timestamp","title":"From"},"description":"The start timestamp"},{"name":"to","in":"query","required":true,"schema":{"type":"integer","description":"The end timestamp","title":"To"},"description":"The end timestamp"},{"name":"group_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__punctuality__router__GroupBy"},{"type":"null"}],"description":"Aggregation level. Omit to get a single entry aggregated over the whole period (feeds the punctuality donut).","title":"Group By"},"description":"Aggregation level. Omit to get a single entry aggregated over the whole period (feeds the punctuality donut)."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RoutePunctualitySchema"}},{"type":"array","items":{"$ref":"#/components/schemas/DayPunctualitySchema"}},{"type":"array","items":{"$ref":"#/components/schemas/PunctualitySchema"}}],"title":"Response Getstatpunctuality"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"}],"title":"Response 403 Getstatpunctuality"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/export/punctuality":{"get":{"tags":["punctuality","stats"],"summary":"Get punctuality report in csv file.","description":"**This endpoint allows you to get punctuality report in csv file.**\n\n# Rapport de Ponctualité\n\nCe rapport analyse la ponctualité des trajets en comparant les horaires théoriques et enregistrés à chaque arrêt. Chaque ligne du rapport correspond à un arrêt et un événement (arrivée, départ, etc.). Il inclut les informations sur les trajets, les conducteurs, les véhicules, ainsi que les écarts de temps.\n\n| **Champ**                | **Champ requis** | **Champ du GTFS** | **Identifiant Pysae** | **Description** |\n|--------------------------|------------------|-------------------|-----------------------|----------------------------------|\n| `id`                     | Oui              | Non               | Oui                   |       |\n| `gtfs_id`                | Oui              | Non               | Oui                   | Identifiant du fichier GTFS.      |\n| `trip_id`                | Oui              | Oui               | Non                   | Identifiant du trajet.       |\n| `trip_formatted_name`    | Oui              | Non               | Non                   | Nom du trajet selon le format configuré par l'utilisateur. |\n| `route_id`               | Oui              | Oui               | Non                   | Identifiant de la ligne.       |\n| `route_long_name`        | Non              | Oui               | Non                   | Nom de la ligne.                   |\n| `block_id`               | Non              | Oui               | Non                   | Identifiant du bloc.                   |\n| `driver_id`              | Non              | Non               | Oui                   | Identifiant du conducteur. |\n| `driver`                 | Non              | Non               | Non                   | Nom du conducteur suivi de son matricule entre parenthèses. |\n| `vehicle_id`             | Non              | Non               | Oui                   | Identifiant du véhicule. |\n| `vehicle`                | Non              | Non               | Non                   | Plaque d'immatriculation suivie du numéro de parc entre parenthèses. |\n| `start_date`             | Oui              | Non               | Non                   | Date de début du trajet (format `20220101`). |\n| `stop_id`                | Oui              | Oui               | Non                   | Identifiant de l'arrêt. |\n| `stop_name`              | Oui              | Oui               | Non                   | Nom de l'arrêt. |\n| `stop_sequence`          | Oui              | Oui               | Non                   | Ordre de passage de l'arrêt. |\n| `event`                  | Oui              | Oui               | Non                   | Type d'événement. |\n| `distance`               | Oui              | Non               | Non                   | Distance en mètres entre les arrêts. |\n| `device_id`              | Oui              | Non               | Oui                   | Identifiant d'appareil.        |\n| `device_name`            | Non              | Non               | Non                   | Nom d'appareil. |\n| `delay`                  | Oui              | Non               | Non                   | Retard en secondes.            |\n| `recorded_departure`     | Oui              | Non               | Non                   | Heure de départ enregistrée (format `31/12/2021 23:58:07`). |\n| `theoretical_departure`  | Oui              | Non               | Non                   | Heure de départ théorique prévue (format `31/12/2021 23:58:07`). |\n| `teams`                  | Non              | Oui               | Non                   | Équipes associées à la course dans le GTFS. |\n\n\n<h2>Example : </h2>\n\n| **id** | **gtfs_id** | **trip_id** | **trip_formatted_name** | **route_id** | **route_long_name** | **block_id** | **driver_id** | **driver** | **vehicle_id** | **vehicle** | **start_date** | **stop_id** | **stop_name** | **stop_sequence** | **event** | **distance** | **device_id** | **device_name** | **delay** | **recorded_departure** | **theoretical_departure** | **teams** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 67aa9421f9128fdab39e8c52 | 67923fa10e4810940efd5a9f | Trip-id-1 | 10:10 Start – End | Route-id-1 | The route 1 | Block-id-1 | 67ab7232160716991f4df61f | Jean Dupont | 67ab7258160716991f4df620 | Vehicle 1 | 20250211 | Stop-id-1 | Stop 1 | 1 | arrival | 0.0 | af318f5918ac2e40 | Device 1 | -315 | 11/02/25 10:10 | 11/02/25 10:10 | Team 1 |\n\nRole needed: reader, operator, limited_reader","operationId":"getExportPunctuality","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"The start date","title":"Start Date"},"description":"The start date"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"The end date","title":"End Date"},"description":"The end date"},{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The event type","title":"Event"},"description":"The event type"},{"name":"stop_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"The stop id","title":"Stop Id"},"description":"The stop id"},{"name":"gtfs_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The gtfs id","title":"Gtfs Id"},"description":"The gtfs id"},{"name":"driver_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The driver id","title":"Driver Id"},"description":"The driver id"},{"name":"route_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The route id","title":"Route Id"},"description":"The route id"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/csv":{"schema":{"type":"string"},"example":"id;gtfs_id;trip_id;trip_formatted_name;route_id;route_long_name;block_id;driver_id;driver;vehicle_id;vehicle;start_date;stop_id;stop_name;stop_sequence;event;distance;device_id;device_name;delay;recorded_departure;theoretical_departure;teams\n67aa9421f9128fdab39e8c52;67923fa10e4810940efd5a9f;Trip-id-1;10:10 Start – End;Route-id-1;The route 1;Block-id-1;67ab7232160716991f4df61f;Jean Dupont;67ab7258160716991f4df620;Vehicle 1;20250211;Stop-id-1;Stop 1;1;arrival;0.0;af318f5918ac2e40;Device 1;-315;11/02/25 10:10;11/02/25 10:10;Team 1"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"}],"title":"Response 403 Getexportpunctuality"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-datahub":true,"x-api-version":4,"x-path-prefix":"/api","x-deployment":"stats","x-public":true}},"/api/v4/groups/{group_id}/history/events/count":{"get":{"tags":["history"],"summary":"Get count of history events","description":"**This endpoint is used to get count of history events**\n\nReturn CountSchema type data with count value\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getHistoryEventCount","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"trip_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id of the trip you want to focus on","title":"Trip Id"},"description":"Id of the trip you want to focus on"},{"name":"min_lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum longitude","title":"Min Lng"},"description":"Minimum longitude"},{"name":"max_lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum longitude (included)","title":"Max Lng"},"description":"Maximum longitude (included)"},{"name":"min_lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum latitude","title":"Min Lat"},"description":"Minimum latitude"},{"name":"max_lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum latitude (included)","title":"Max Lat"},"description":"Maximum latitude (included)"},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"From timestamp","title":"From"},"description":"From timestamp"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"To timestamp (not included), ignored if `after_id` set","title":"To"},"description":"To timestamp (not included), ignored if `after_id` set"},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"description":"Count events generated after given id","title":"After Id"},"description":"Count events generated after given id"},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"description":"Count events generated before given id","title":"Before Id"},"description":"Count events generated before given id"},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id of the device you want to focus on","title":"Device Id"},"description":"Id of the device you want to focus on"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Gethistoryeventcount"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/history/events":{"get":{"tags":["history"],"summary":"Get all device history events for a group","description":"**This endpoint is used to get all history events**\n\nCan be filtered by device_id, trip_id, from_ts, to_ts and users teams.\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getHistoryEvents","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id of the device you want to focus on","title":"Device Id"},"description":"Id of the device you want to focus on"},{"name":"trip_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id of the trip you want to focus on","title":"Trip Id"},"description":"Id of the trip you want to focus on"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":50000,"title":"Page Size"}},{"name":"min_lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum longitude","title":"Min Lng"},"description":"Minimum longitude"},{"name":"max_lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum longitude (included)","title":"Max Lng"},"description":"Maximum longitude (included)"},{"name":"min_lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum latitude","title":"Min Lat"},"description":"Minimum latitude"},{"name":"max_lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum latitude (included)","title":"Max Lat"},"description":"Maximum latitude (included)"},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"From timestamp","title":"From"},"description":"From timestamp"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"To timestamp (excluded)","title":"To"},"description":"To timestamp (excluded)"},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"description":"Retrieve events generated after given id","title":"After Id"},"description":"Retrieve events generated after given id"},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"description":"Retrieve events generated before given id","title":"Before Id"},"description":"Retrieve events generated before given id"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEventSchema"},"title":"Response Gethistoryevents"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Gethistoryevents"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/history/stop_times":{"get":{"tags":["history"],"summary":"Get all history stop times","description":"**This endpoint is used to get all history stop times**\n\nRole needed: technical, external_reader, reader, operator, limited_reader","operationId":"getHistoryStopTimes","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date of the stop times","title":"Start Date"},"description":"Start date of the stop times"},{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event type to filter on","title":"Event"},"description":"Event type to filter on"},{"name":"include_last_stop_arrival","in":"query","required":false,"schema":{"type":"boolean","description":"Adds arrival stop time of the last stop to departure stop times.","default":false,"title":"Include Last Stop Arrival"},"description":"Adds arrival stop time of the last stop to departure stop times."},{"name":"stop_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"It is possible to filter by multiple stop ids","title":"Stop Id"},"description":"It is possible to filter by multiple stop ids"},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"From timestamp","title":"From"},"description":"From timestamp"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"To timestamp (excluded)","title":"To"},"description":"To timestamp (excluded)"},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"description":"Retrieve events generated after given id","title":"After Id"},"description":"Retrieve events generated after given id"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoryStopTimesSchema"},"title":"Response Gethistorystoptimes"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gethistorystoptimes"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/history/vk":{"get":{"tags":["history"],"summary":"Get all history vehicle kms for a group","description":"**This endpoint is used to get all history vehicle kms**\n\nCan be filtered by from_date, to_date and users teams.\n\nThese are **vehicle** kilometres, not commercial ones: the endpoint dumps the whole `vehicle_kms` collection over the period, without filtering on the trip. Records with a null `trip_id` are therefore included — dead-heading, dead mileage, and kilometres driven in on-demand service. For the commercial kilometres alone, use the trip-km report (`/groups/{group_id}/stats/trip-km`), which reads the per-trip `recorded_commercial_km` accumulator instead.\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getHistoryVk","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoryVKSchema"},"title":"Response Gethistoryvk"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Gethistoryvk"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/history/gtfs":{"get":{"tags":["history"],"summary":"Get all gtfs publications for a group","description":"**This endpoint is used to get all gtfs publications**\n\nCan be filtered by from_ts and to_ts.\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getHistoryGtfsList","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"From timestamp","title":"From"},"description":"From timestamp"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"To timestamp (included)","title":"To"},"description":"To timestamp (included)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoryGTFSSchema"},"title":"Response Gethistorygtfslist"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__10"}],"title":"Response 403 Gethistorygtfslist"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/history/gtfs-active":{"get":{"tags":["history"],"summary":"Get all active gtfs for a group in given period","description":"**This endpoint is used to get all active gtfs in given period**\n\nRole needed: reader, operator, limited_reader, external_reader","operationId":"getHistoryGtfsActive","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"null"}],"description":"From timestamp (included)","title":"From"},"description":"From timestamp (included)"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]},{"type":"null"}],"description":"To timestamp (included)","title":"To"},"description":"To timestamp (included)"},{"name":"include_scheduled","in":"query","required":false,"schema":{"type":"boolean","description":"Include scheduled GTFS publications","default":false,"title":"Include Scheduled"},"description":"Include scheduled GTFS publications"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoryGTFSSchema"},"title":"Response Gethistorygtfsactive"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"}],"title":"Response 403 Gethistorygtfsactive"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/gtfs-rt":{"get":{"tags":["gtfs-rt"],"summary":"Get the full GTFS-RT feed","description":"**This endpoint returns the full GTFS-RT feed for the specified group.**\n\nThe full documentation can be found on the [GTFS website](https://gtfs.org/resources/gtfs-realtime/)","operationId":"getGtfsRt","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/Format","description":"Use `binary` for production, `plaintext` is a json document for debugging purpose","default":"binary"},"description":"Use `binary` for production, `plaintext` is a json document for debugging purpose"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Getgtfsrt"}},"application/octet-stream":{"schema":{"type":"binary"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"gtfsrt","x-public":true}},"/api/v4/groups/{group_id}/gtfs-rt/{feed_type}":{"get":{"tags":["gtfs-rt"],"summary":"Get a specific GTFS-RT feed","description":"**This endpoint returns a specific GTFS-RT feed for the specified group.**\n\nThe full documentation can be found on the [GTFS website](https://gtfs.org/resources/gtfs-realtime/)","operationId":"getGtfsRtFeed","parameters":[{"name":"feed_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/FeedType"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/Format","description":"Use `binary` for production, `plaintext` is a json document for debugging purpose","default":"binary"},"description":"Use `binary` for production, `plaintext` is a json document for debugging purpose"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Getgtfsrtfeed"}},"application/octet-stream":{"schema":{"type":"binary"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"gtfsrt","x-public":true}},"/api/v4/groups/{group_id}/blocks/{block_id}/vehicle_movements":{"get":{"tags":["vehicle_movements"],"summary":"List non-commercial vehicle movements (HLP) of a block on a given day","operationId":"getBlockVehicleMovements","parameters":[{"name":"block_id","in":"path","required":true,"schema":{"type":"string","title":"Block Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"date","in":"query","required":true,"schema":{"type":"string","examples":["20201122"],"title":"Date"},"description":"Operational day (GTFS-style date). Accepts ISO `YYYY-MM-DD` or Hastus-style `YYYYMMDD`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VehicleMovementSchema"},"title":"Response Getblockvehiclemovements"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/vehicle_movements":{"get":{"tags":["vehicle_movements"],"summary":"List every non-commercial vehicle movement (HLP) of the group for a day","operationId":"getVehicleMovements","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."},{"name":"date","in":"query","required":true,"schema":{"type":"string","examples":["20201122"],"title":"Date"},"description":"Operational day (GTFS-style date). Accepts ISO `YYYY-MM-DD` or Hastus-style `YYYYMMDD`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VehicleMovementSchema"},"title":"Response Getvehiclemovements"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/vehicle_movements/any":{"get":{"tags":["vehicle_movements"],"summary":"Whether the group has any non-commercial vehicle movement (HLP)","operationId":"getVehicleMovementAny","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleMovementExistenceSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/vehicle_movements/{vehicle_movement_id}":{"get":{"tags":["vehicle_movements"],"summary":"Get a single vehicle movement (HLP) by id","operationId":"getVehicleMovement","parameters":[{"name":"vehicle_movement_id","in":"path","required":true,"schema":{"type":"string","title":"Vehicle Movement Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleMovementSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}},"/api/v4/groups/{group_id}/rail/station-links":{"get":{"tags":["rail"],"summary":"List the stop-to-station links of the group.","description":"**Return every stop of the network attached to a rail station.**\n\n- Requires the `rail_data` feature.\n- `is_orphan` flags the links whose stop is absent from the currently published GTFS.\n\nFeature needed: rail_data","operationId":"getRailStationLinks","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the group you want to retrieve datas from.","examples":["global-transport-100","blue_bus_moov","serviceMobility"],"title":"Group Id"},"description":"The id of the group you want to retrieve datas from."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RailStationLinkSchema"},"title":"Response Getrailstationlinks"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-public":true}}},"components":{"schemas":{"AgencyGTFSSchema":{"properties":{"agency_id":{"type":"string","title":"Agency Id"},"agency_name":{"type":"string","title":"Agency Name"},"agency_url":{"type":"string","title":"Agency Url"},"agency_timezone":{"type":"string","title":"Agency Timezone"},"agency_lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Lang"},"agency_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Phone"},"agency_fare_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Fare Url"}},"additionalProperties":true,"type":"object","required":["agency_id","agency_name","agency_url","agency_timezone"],"title":"AgencyGTFSSchema"},"AlertCause":{"type":"integer","enum":[1,2,3,4,5,6,7,8,9,10,11,12],"title":"AlertCause","description":"GTFS-realtime ``Alert.Cause`` values (see ``gtfs_realtime_pb2``).","x-enum-varnames":["UNKNOWN_CAUSE","OTHER_CAUSE","TECHNICAL_PROBLEM","STRIKE","DEMONSTRATION","ACCIDENT","HOLIDAY","WEATHER","MAINTENANCE","CONSTRUCTION","POLICE_ACTIVITY","MEDICAL_EMERGENCY"]},"AlertEffect":{"type":"integer","enum":[1,2,3,4,5,6,7,8,9],"title":"AlertEffect","description":"GTFS-realtime ``Alert.Effect`` values (see ``gtfs_realtime_pb2``).","x-enum-varnames":["NO_SERVICE","REDUCED_SERVICE","SIGNIFICANT_DELAYS","DETOUR","ADDITIONAL_SERVICE","MODIFIED_SERVICE","OTHER_EFFECT","UNKNOWN_EFFECT","STOP_MOVED"]},"AlertNotFound":{"properties":{"code":{"type":"string","const":"ALERT_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The alert has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/AlertNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"AlertNotFound"},"AlertNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"alert_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Alert Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","alert_id"],"title":"AlertNotFoundPayload"},"AlertSchema":{"properties":{"header_text":{"type":"string","title":"Header Text"},"active":{"type":"boolean","title":"Active","default":true},"description_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Text"},"cause":{"anyOf":[{"$ref":"#/components/schemas/AlertCause"},{"type":"null"}]},"effect":{"anyOf":[{"$ref":"#/components/schemas/AlertEffect"},{"type":"null"}]},"active_date_times":{"anyOf":[{"items":{"$ref":"#/components/schemas/TimeRange"},"type":"array"},{"type":"null"}],"title":"Active Date Times"},"informed_entity":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntitySelector"},"type":"array"},{"type":"null"}],"title":"Informed Entity"},"description_raw":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Raw"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"push":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Push"},"draft":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Draft"},"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["header_text","_id","id"],"title":"AlertSchema"},"ApiKeyCreateSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"role":{"anyOf":[{"$ref":"#/components/schemas/RoleTypeValue"},{"type":"null"}]},"expire":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expire"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"one_time":{"type":"boolean","title":"One Time","default":false}},"type":"object","title":"ApiKeyCreateSchema"},"ApiKeyGlobalCreateSchema":{"properties":{"group_ids":{"items":{"type":"string"},"type":"array","title":"Group Ids","default":[]},"superuser":{"type":"boolean","title":"Superuser","default":false},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"role":{"anyOf":[{"$ref":"#/components/schemas/RoleTypeValue"},{"type":"null"}]},"expire":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expire"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"one_time":{"type":"boolean","title":"One Time","default":false}},"type":"object","title":"ApiKeyGlobalCreateSchema"},"ApiKeyNotFound":{"properties":{"code":{"type":"string","const":"API_KEY_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The api key has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/ApiKeyNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"ApiKeyNotFound"},"ApiKeyNotFoundPayload":{"properties":{"api_key_id":{"type":"string","title":"Api Key Id"}},"type":"object","required":["api_key_id"],"title":"ApiKeyNotFoundPayload"},"ApiKeySchema":{"properties":{"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"value":{"type":"string","title":"Value"},"group_ids":{"items":{"type":"string"},"type":"array","title":"Group Ids","default":[]},"superuser":{"type":"boolean","title":"Superuser","default":false},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"role":{"anyOf":[{"$ref":"#/components/schemas/RoleTypeValue"},{"type":"null"}]},"expire":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expire"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"one_time":{"type":"boolean","title":"One Time","default":false}},"type":"object","required":["_id","value"],"title":"ApiKeySchema"},"Auth0LoginRequired":{"properties":{"code":{"type":"string","const":"AUTH0_LOGIN_REQUIRED","title":"Code"},"details":{"type":"string","const":"This group is forced onto Auth0; legacy login is disabled. Authenticate through the Auth0 provider instead.","title":"Details"},"payload":{"$ref":"#/components/schemas/Auth0LoginRequiredPayload"}},"type":"object","required":["code","details","payload"],"title":"Auth0LoginRequired"},"Auth0LoginRequiredPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"domain":{"type":"string","title":"Domain"}},"type":"object","required":["group_id","domain"],"title":"Auth0LoginRequiredPayload"},"Auth0ProviderConfig":{"properties":{"domain":{"type":"string","title":"Domain"},"connection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection"}},"type":"object","required":["domain"],"title":"Auth0ProviderConfig"},"AuthProviderSchema":{"properties":{"provider":{"type":"string","enum":["auth0","legacy"],"title":"Provider"},"auth0":{"anyOf":[{"$ref":"#/components/schemas/Auth0ProviderConfig"},{"type":"null"}]}},"type":"object","required":["provider"],"title":"AuthProviderSchema"},"Body_postLogin":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"Body_postLogin"},"Body_postLoginScoped":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"Body_postLoginScoped"},"Body_postLoginScopedNdp":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"Body_postLoginScopedNdp"},"CalendarDateGTFSSchema":{"properties":{"service_id":{"type":"string","title":"Service Id"},"date":{"type":"string","title":"Date"},"exception_type":{"type":"integer","title":"Exception Type"}},"type":"object","required":["service_id","date","exception_type"],"title":"CalendarDateGTFSSchema"},"CalendarGTFSSchema":{"properties":{"service_id":{"type":"string","title":"Service Id"},"monday":{"type":"integer","title":"Monday"},"tuesday":{"type":"integer","title":"Tuesday"},"wednesday":{"type":"integer","title":"Wednesday"},"thursday":{"type":"integer","title":"Thursday"},"friday":{"type":"integer","title":"Friday"},"saturday":{"type":"integer","title":"Saturday"},"sunday":{"type":"integer","title":"Sunday"},"start_date":{"type":"string","title":"Start Date"},"end_date":{"type":"string","title":"End Date"}},"type":"object","required":["service_id","monday","tuesday","wednesday","thursday","friday","saturday","sunday","start_date","end_date"],"title":"CalendarGTFSSchema"},"Client":{"type":"string","enum":["driver","op"],"title":"Client"},"CommentRetrieveSchema":{"properties":{"_id":{"type":"string","title":"Id"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"}},"type":"object","required":["_id"],"title":"CommentRetrieveSchema"},"ComputeTaskFailed":{"properties":{"code":{"type":"string","const":"COMPUTE_TASK_FAILED","title":"Code"},"details":{"type":"string","const":"The task has vailed","title":"Details"},"payload":{"$ref":"#/components/schemas/ComputeTaskFailedPayload"}},"type":"object","required":["code","details","payload"],"title":"ComputeTaskFailed"},"ComputeTaskFailedPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"task_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Task Id","examples":["670f84254c28ffdaae0f462d"]},"details":{"title":"Details"}},"type":"object","required":["group_id","task_id","details"],"title":"ComputeTaskFailedPayload"},"ComputeTaskNotFound":{"properties":{"code":{"type":"string","const":"COMPUTE_TASK_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The task has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/ComputeTaskNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"ComputeTaskNotFound"},"ComputeTaskNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"task_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Task Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","task_id"],"title":"ComputeTaskNotFoundPayload"},"Coordinates":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"CountSchema":{"properties":{"count":{"type":"integer","minimum":0.0,"title":"Count"}},"type":"object","required":["count"],"title":"CountSchema"},"DailyDevicesSchema":{"properties":{"date":{"type":"string","title":"Date"},"devices":{"type":"integer","title":"Devices"}},"type":"object","required":["date","devices"],"title":"DailyDevicesSchema"},"DangerZoneLocationSchema":{"properties":{"latitude":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Latitude"},"longitude":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Longitude"}},"type":"object","required":["latitude","longitude"],"title":"DangerZoneLocationSchema"},"DangerZoneSchema":{"properties":{"name":{"type":"string","title":"Name"},"message":{"type":"string","title":"Message"},"location":{"$ref":"#/components/schemas/DangerZoneLocationSchema"},"radius":{"type":"integer","exclusiveMinimum":0.0,"title":"Radius"},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["name","message","location","radius","id"],"title":"DangerZoneSchema"},"DayPunctualitySchema":{"properties":{"on_time":{"type":"integer","title":"On Time"},"too_early":{"type":"integer","title":"Too Early"},"too_late":{"type":"integer","title":"Too Late"},"on_time_percentage":{"type":"number","title":"On Time Percentage"},"too_early_percentage":{"type":"number","title":"Too Early Percentage"},"too_late_percentage":{"type":"number","title":"Too Late Percentage"},"total_count":{"type":"integer","title":"Total Count"},"start_date":{"type":"string","title":"Start Date"}},"type":"object","required":["on_time","too_early","too_late","on_time_percentage","too_early_percentage","too_late_percentage","total_count","start_date"],"title":"DayPunctualitySchema"},"DeadRunTripFilter":{"properties":{"trip_id":{"type":"null","title":"Trip Id"}},"type":"object","title":"DeadRunTripFilter"},"Delay":{"properties":{"stop_sequence":{"type":"number","title":"Stop Sequence"},"delay":{"type":"integer","title":"Delay"}},"type":"object","required":["stop_sequence","delay"],"title":"Delay"},"DepotCoordinatesSchema":{"properties":{"latitude":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Latitude"},"longitude":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Longitude"}},"type":"object","required":["latitude","longitude"],"title":"DepotCoordinatesSchema"},"DepotSchema":{"properties":{"name":{"type":"string","title":"Name"},"location":{"$ref":"#/components/schemas/DepotCoordinatesSchema"},"radius":{"type":"integer","exclusiveMinimum":0.0,"title":"Radius"},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["name","location","radius","id"],"title":"DepotSchema"},"DeviceAllSchema":{"properties":{"source_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Vehicle Id","description":"Identifiant du véhicule fournissant la position de cet appareil.Ce champs est défini uniquement pour les positions fournies par un équipement externe comme le routeur embarqué"},"source_equipment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Equipment Id","description":"Identifiant de l'équipement fournissant la position de cet appareil.Ce champs est défini uniquement pour les positions fournies par un équipement externe comme le routeur embarqué"},"device_id":{"type":"string","title":"Device Id"},"app_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAppStatus"},{"type":"null"}]},"app_version_states":{"anyOf":[{"$ref":"#/components/schemas/VersionStates"},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived"},"assigned_driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Driver Id"},"assigned_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Vehicle Id"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing"},"claimed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Claimed At"},"current_activity_log_assignation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Activity Log Assignation"},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File"},"current_status":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__devices__models__DeviceStatus"},{"type":"null"}]},"current_stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Stop Id"},"current_stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Current Stop Sequence"},"debug_shape_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Debug Shape Score"},"debug_trace_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Debug Trace Length"},"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay"},"device_imei":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Imei"},"drive_mode":{"anyOf":[{"$ref":"#/components/schemas/DeviceDriveMode"},{"type":"null"}]},"event_app":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event App"},"gps_ppm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gps Ppm","default":0},"last_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Id"},"latlng":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Latlng"},"latlng_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latlng Accuracy"},"network_status":{"$ref":"#/components/schemas/DeviceNetworkStatus","default":"online"},"no_gps":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"No Gps"},"off_itinerary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Off Itinerary"},"position":{"anyOf":[{"$ref":"#/components/schemas/DevicePosition"},{"type":"null"}]},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled"},"simulation_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Simulation Mode"},"skipped_last_position":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skipped Last Position"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","default":[]},"time_to_next_stop":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Time To Next Stop"},"time_to_next_stop_fixed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time To Next Stop Fixed"},"trip":{"anyOf":[{"$ref":"#/components/schemas/GtfsOptDatedTrip"},{"type":"null"}]},"trip_filter":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"$ref":"#/components/schemas/DeadRunTripFilter"},{"type":"null"}],"title":"Trip Filter"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id"},"trip_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trip Pending"},"trip_pending_distance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trip Pending Distance"},"trip_schedule_relationship":{"anyOf":[{"$ref":"#/components/schemas/DeviceTripScheduleRelationship"},{"type":"null"}]},"ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts"},"ts_system":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts System"},"v":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"V"},"vehicle_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Load"},"voip":{"anyOf":[{"$ref":"#/components/schemas/DeviceVoipSchema"},{"type":"null"}]},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"device_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Model"},"device_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Os"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id"},"installer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Installer"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"last_vehicle_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Vehicle Associated"},"last_driver_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Driver Associated"},"energy_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Energy Level"},"odometer":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Odometer"},"engine_state":{"anyOf":[{"$ref":"#/components/schemas/EngineState"},{"type":"null"}]},"source_equipment_type":{"anyOf":[{"$ref":"#/components/schemas/EquipmentType"},{"type":"null"}]}},"type":"object","required":["device_id"],"title":"DeviceAllSchema"},"DeviceAppStatus":{"type":"string","enum":["pause","resume"],"title":"DeviceAppStatus"},"DeviceCoordinates":{"properties":{"accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"}},"type":"object","title":"DeviceCoordinates"},"DeviceCoordinatesSchema":{"properties":{"accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy"},"latitude":{"type":"number","title":"Latitude"},"longitude":{"type":"number","title":"Longitude"}},"type":"object","required":["latitude","longitude"],"title":"DeviceCoordinatesSchema"},"DeviceCountSchema":{"properties":{"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"DeviceCountSchema"},"DeviceDriveMode":{"type":"string","enum":["trip","sequence","on_demand"],"title":"DeviceDriveMode"},"DeviceNetworkStatus":{"type":"string","enum":["online","offline"],"title":"DeviceNetworkStatus"},"DeviceNotFound":{"properties":{"code":{"type":"string","const":"DEVICE_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The device has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/DeviceNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"DeviceNotFound"},"DeviceNotFoundPayload":{"properties":{"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"device_id":{"type":"string","title":"Device Id"}},"type":"object","required":["group_id","device_id"],"title":"DeviceNotFoundPayload"},"DeviceOnlineV4Schema":{"properties":{"device_id":{"type":"string","title":"Device Id","description":"identifiant de l'appareil"},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.routes._id` de la course en cours"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id","description":"référence vers `gtfs.<gtfs_id>.trips._id` de la course"},"start_date":{"anyOf":[{"type":"string","maxLength":8,"minLength":8,"pattern":"^\\d*$"},{"type":"null"}],"title":"Start Date","description":"(pendant une course) date de service GTFS de la course en cours, au format `YYYYMMDD`. Un même `trip_id` existe pour chaque date de service : ce champ identifie l'occurrence réelle, notamment pour les courses après minuit (`departure_time > 24:00`)."},"latlng":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Latlng","description":"dernières coordonnées GPS de l'appareil,au format `[latitude, longitude]`"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing","description":"orientation géographique de l'appareil"},"current_status":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__devices__models__DeviceStatus"},{"type":"null"}],"description":"(pendant une course) indique le statut par rapport à l'arrêt indiqué par `current_stop_sequence`"},"current_stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Current Stop Sequence","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.trips.stop_times.stop_sequence` du prochain arrêt(arrêt courant quand le bus est à l'arrêt). Une valeur fractionnaire désigne un arrêt temporaire (AD_HOC)."},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled","description":"distance parcourue sur le tracé"},"trip_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trip Pending","description":"indique que l'appareil est en acheminement"},"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay","description":"(pendant une course) valeur d'avance (si négatif) ou de retard de l'appareil par rapport au théorique"},"vehicle_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Load","description":"charge du véhicule"},"energy_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Energy Level","description":"niveau d'énergie en %"},"engine_state":{"anyOf":[{"$ref":"#/components/schemas/EngineState"},{"type":"null"}],"description":"état du moteur (driving / idle / stopped)"},"source_equipment_type":{"anyOf":[{"$ref":"#/components/schemas/EquipmentType"},{"type":"null"}],"description":"type d'équipement source"},"load_percentage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Load Percentage","description":"pourcentage de charge du véhicule"},"last_vehicle_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Vehicle Associated","description":"Dernier vehicule associé à l'appareil durant une course"}},"additionalProperties":false,"type":"object","required":["device_id"],"title":"DeviceOnlineV4Schema"},"DevicePosition":{"properties":{"coords":{"$ref":"#/components/schemas/DeviceCoordinates"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["coords","timestamp"],"title":"DevicePosition"},"DevicePublicSchema":{"properties":{"source_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Vehicle Id","description":"Identifiant du véhicule fournissant la position de cet appareil.Ce champs est défini uniquement pour les positions fournies par un équipement externe comme le routeur embarqué"},"source_equipment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Equipment Id","description":"Identifiant de l'équipement fournissant la position de cet appareil.Ce champs est défini uniquement pour les positions fournies par un équipement externe comme le routeur embarqué"},"device_id":{"type":"string","title":"Device Id"},"app_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAppStatus"},{"type":"null"}]},"app_version_states":{"anyOf":[{"$ref":"#/components/schemas/VersionStates"},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived"},"assigned_driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Driver Id"},"assigned_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Vehicle Id"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing"},"claimed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Claimed At"},"current_activity_log_assignation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Activity Log Assignation"},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File"},"current_status":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__devices__models__DeviceStatus"},{"type":"null"}]},"current_stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Stop Id"},"current_stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Current Stop Sequence"},"debug_shape_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Debug Shape Score"},"debug_trace_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Debug Trace Length"},"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay"},"device_imei":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Imei"},"drive_mode":{"anyOf":[{"$ref":"#/components/schemas/DeviceDriveMode"},{"type":"null"}]},"event_app":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event App"},"gps_ppm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gps Ppm","default":0},"last_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Id"},"latlng":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Latlng"},"latlng_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latlng Accuracy"},"network_status":{"$ref":"#/components/schemas/DeviceNetworkStatus","default":"online"},"no_gps":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"No Gps"},"off_itinerary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Off Itinerary"},"position":{"anyOf":[{"$ref":"#/components/schemas/DevicePosition"},{"type":"null"}]},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled"},"simulation_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Simulation Mode"},"skipped_last_position":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skipped Last Position"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","default":[]},"time_to_next_stop":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Time To Next Stop"},"time_to_next_stop_fixed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time To Next Stop Fixed"},"trip":{"anyOf":[{"$ref":"#/components/schemas/GtfsOptDatedTrip"},{"type":"null"}]},"trip_filter":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"$ref":"#/components/schemas/DeadRunTripFilter"},{"type":"null"}],"title":"Trip Filter"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id"},"trip_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trip Pending"},"trip_pending_distance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trip Pending Distance"},"trip_schedule_relationship":{"anyOf":[{"$ref":"#/components/schemas/DeviceTripScheduleRelationship"},{"type":"null"}]},"ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts"},"ts_system":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts System"},"v":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"V"},"vehicle_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Load"},"voip":{"anyOf":[{"$ref":"#/components/schemas/DeviceVoipSchema"},{"type":"null"}]}},"type":"object","required":["device_id"],"title":"DevicePublicSchema"},"DeviceSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamSchema"},{"type":"null"}]},"status":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__trips__v4__schemas__DeviceStatus"},{"type":"null"}]},"frequency":{"anyOf":[{"$ref":"#/components/schemas/FrequencySchema"},{"type":"null"}]}},"type":"object","required":["id"],"title":"DeviceSchema"},"DeviceTrigger":{"properties":{"type":{"$ref":"#/components/schemas/TriggerType"},"time":{"$ref":"#/components/schemas/TriggerTime"}},"type":"object","required":["type","time"],"title":"DeviceTrigger"},"DeviceTripScheduleRelationship":{"type":"string","enum":["","CANCELLED"],"title":"DeviceTripScheduleRelationship"},"DeviceUpdateInfo":{"properties":{"client_app":{"anyOf":[{"$ref":"#/components/schemas/DeviceUpdateInfoClientApp"},{"type":"null"}]}},"type":"object","title":"DeviceUpdateInfo"},"DeviceUpdateInfoClientApp":{"type":"string","enum":["op","driver"],"title":"DeviceUpdateInfoClientApp"},"DeviceVoipData":{"properties":{"provider":{"type":"string","title":"Provider","description":"fournisseur VoIP (ex: instavox)"},"id":{"type":"string","title":"Id","description":"identifiant de l'appareil VoIP"}},"type":"object","required":["provider","id"],"title":"DeviceVoipData"},"DeviceVoipSchema":{"properties":{"provider":{"type":"string","title":"Provider","description":"VoIP provider (e.g. instavox)"},"id":{"type":"string","title":"Id","description":"VoIP device ID"}},"type":"object","required":["provider","id"],"title":"DeviceVoipSchema"},"Driver":{"properties":{"id":{"type":"string","title":"Id"},"driver_name":{"type":"string","title":"Driver Name"},"staff_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staff Number"}},"type":"object","required":["id","driver_name"],"title":"Driver"},"DriverNotFound":{"properties":{"code":{"type":"string","const":"DRIVER_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The driver has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/DriverNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"DriverNotFound"},"DriverNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"driver_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Driver Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","driver_id"],"title":"DriverNotFoundPayload"},"DriverOpSchema":{"properties":{"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"driver_name":{"type":"string","title":"Driver Name"},"staff_number":{"type":"string","title":"Staff Number","default":""},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"comment":{"type":"string","title":"Comment"},"archived":{"type":"boolean","title":"Archived"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"anonymised_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Anonymised At"}},"type":"object","required":["_id","id","driver_name","comment","archived"],"title":"DriverOpSchema"},"Duty":{"properties":{"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"device_id":{"type":"string","title":"Device Id"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},"type":"object","required":["device_id"],"title":"Duty"},"DutyCheckInSchema":{"properties":{"ts":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Ts","description":"timestamp of the start of the duty in EPOCH format (seconds)"},"checklist":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Checklist"}},"type":"object","required":["ts"],"title":"DutyCheckInSchema"},"DutyCheckOutSchema":{"properties":{"ts":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Ts","description":"timestamp of the end of the duty in EPOCH format (seconds)"},"checklist":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Checklist"},"driver_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Code"},"check_empty":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Empty"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"}},"type":"object","required":["ts"],"title":"DutyCheckOutSchema"},"DutyNotFound":{"properties":{"code":{"type":"string","const":"DUTY_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The duty has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/DutyNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"DutyNotFound"},"DutyNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"duty_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Duty Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","duty_id"],"title":"DutyNotFoundPayload"},"DutySchemaV3":{"properties":{"id":{"type":"string","title":"Id"},"_id":{"type":"string","title":"Id"},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"device_id":{"type":"string","title":"Device Id"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"check_in":{"$ref":"#/components/schemas/DutyCheckInSchema"},"checkout":{"anyOf":[{"$ref":"#/components/schemas/DutyCheckOutSchema"},{"type":"null"}]},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"anonymized":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Anonymized"},"trips":{"items":{"$ref":"#/components/schemas/Trip"},"type":"array","title":"Trips","default":[]},"dead_mileage":{"type":"number","title":"Dead Mileage","default":0.0},"disconnected":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disconnected"}},"type":"object","required":["id","_id","device_id","check_in"],"title":"DutySchemaV3"},"DutySorting":{"type":"string","enum":["check_in:asc","check_in:desc"],"title":"DutySorting"},"EnergyType":{"type":"string","enum":["electric","diesel","cng","hybrid","hydrogen","petrol","other"],"title":"EnergyType"},"EngineState":{"type":"string","enum":["driving","idle","stopped"],"title":"EngineState"},"EntitySelector":{"properties":{"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"}},"type":"object","title":"EntitySelector"},"EquipmentType":{"type":"string","enum":["telematic","router"],"title":"EquipmentType"},"EventType":{"type":"string","enum":["delay","routing_start","routing_end","incoming_at","departing_from","away_from","trip_start","trip_end","driver_change","arriving_at"],"title":"EventType"},"FeedType":{"type":"string","enum":["trip-update","vehicle-position","alert"],"title":"FeedType"},"FileSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"publication_date":{"type":"integer","title":"Publication Date"}},"type":"object","required":["id","name","publication_date"],"title":"FileSchema"},"ForbiddenDifferentTeam":{"properties":{"code":{"type":"string","const":"FORBIDDEN_DIFFERENT_TEAM","title":"Code"},"details":{"type":"string","const":"Your teams are incompatible","title":"Details"},"payload":{"$ref":"#/components/schemas/ForbiddenDifferentTeamPayload"}},"type":"object","required":["code","details","payload"],"title":"ForbiddenDifferentTeam"},"ForbiddenDifferentTeamPayload":{"properties":{"source":{"$ref":"#/components/schemas/ForbiddenDifferentTeamSource"}},"type":"object","required":["source"],"title":"ForbiddenDifferentTeamPayload"},"ForbiddenDifferentTeamSource":{"type":"string","enum":["not_part_of_resource","not_part_of_target"],"title":"ForbiddenDifferentTeamSource"},"Format":{"type":"string","enum":["binary","plaintext"],"title":"Format"},"FrequencySchema":{"properties":{"delta_next_passage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta Next Passage"},"delta_previous_passage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta Previous Passage"}},"type":"object","title":"FrequencySchema"},"GenerateShapesTaskSchema":{"properties":{"status":{"type":"string","title":"Status"},"nb_shapes_created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nb Shapes Created"},"nb_trips_updated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nb Trips Updated"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["status"],"title":"GenerateShapesTaskSchema"},"GeometrySchema":{"properties":{"coordinates":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Coordinates"},"type":{"type":"string","title":"Type","default":"LineString"}},"type":"object","required":["coordinates"],"title":"GeometrySchema"},"GroupNotFound":{"properties":{"code":{"type":"string","const":"GROUP_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The group has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GroupNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GroupNotFound"},"GroupNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"GroupNotFoundPayload"},"GtfsAgencyNotFound":{"properties":{"code":{"type":"string","const":"GTFS_AGENCY_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The gtfs agency has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GtfsAgencyNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GtfsAgencyNotFound"},"GtfsAgencyNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]},"agency_id":{"type":"string","title":"Agency Id"}},"type":"object","required":["group_id","gtfs_id","agency_id"],"title":"GtfsAgencyNotFoundPayload"},"GtfsCalendarNotFound":{"properties":{"code":{"type":"string","const":"GTFS_CALENDAR_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The gtfs calendar has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GtfsCalendarNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GtfsCalendarNotFound"},"GtfsCalendarNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]},"service_id":{"type":"string","title":"Service Id"}},"type":"object","required":["group_id","gtfs_id","service_id"],"title":"GtfsCalendarNotFoundPayload"},"GtfsFileSchema":{"properties":{"_id":{"type":"string","title":"Id"},"mod_user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mod User"},"mod_time":{"type":"string","format":"date-time","title":"Mod Time"},"archived":{"anyOf":[{"type":"integer","examples":[1606003200]},{"type":"null"}],"title":"Archived"},"scheduled":{"anyOf":[{"type":"integer","examples":[1606003200]},{"type":"null"}],"title":"Scheduled"},"published":{"anyOf":[{"type":"integer","examples":[1606003200]},{"type":"null"}],"title":"Published"},"name":{"type":"string","title":"Name"},"validation_status":{"$ref":"#/components/schemas/ValidationStatus","default":"to_validate"},"validation":{"anyOf":[{"$ref":"#/components/schemas/Response"},{"type":"null"}]},"blocked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Blocked","deprecated":true}},"type":"object","required":["_id","mod_time","name"],"title":"GtfsFileSchema"},"GtfsNotFound":{"properties":{"code":{"type":"string","const":"GTFS_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The gtfs file has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GtfsNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GtfsNotFound"},"GtfsNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","gtfs_id"],"title":"GtfsNotFoundPayload"},"GtfsOptDatedTrip":{"properties":{"trip_id":{"type":"string","title":"Trip Id","description":"référence vers `gtfs.<gtfs_id>.trips._id` de la course"},"start_date":{"type":"string","maxLength":8,"minLength":8,"pattern":"^\\d*$","title":"Start Date","description":"date de début théorique de la course, au format GTFS"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id","description":"référence vers `gtfs.id` de la course"}},"type":"object","required":["trip_id","start_date"],"title":"GtfsOptDatedTrip"},"GtfsRouteNotFound":{"properties":{"code":{"type":"string","const":"GTFS_ROUTE_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The gtfs route has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GtfsRouteNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GtfsRouteNotFound"},"GtfsRouteNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]},"route_id":{"type":"string","title":"Route Id"}},"type":"object","required":["group_id","gtfs_id","route_id"],"title":"GtfsRouteNotFoundPayload"},"GtfsStopNotFound":{"properties":{"code":{"type":"string","const":"GTFS_STOP_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The gtfs stop has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GtfsStopNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GtfsStopNotFound"},"GtfsStopNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]},"stop_id":{"type":"string","title":"Stop Id"}},"type":"object","required":["group_id","gtfs_id","stop_id"],"title":"GtfsStopNotFoundPayload"},"GtfsTripNotFound":{"properties":{"code":{"type":"string","const":"GTFS_TRIP_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The gtfs trip has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/GtfsTripNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"GtfsTripNotFound"},"GtfsTripNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]},"trip_id":{"type":"string","title":"Trip Id"}},"type":"object","required":["group_id","gtfs_id","trip_id"],"title":"GtfsTripNotFoundPayload"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryDeviceAtSchema":{"properties":{"trip_filter":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"$ref":"#/components/schemas/DeadRunTripFilter"},{"type":"null"}],"title":"Trip Filter","description":"(pendant une course)"},"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay","description":"(pendant une course) valeur d’avance (si négatif) ou de retard de l’appareil par rapport au théorique"},"off_itinerary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Off Itinerary","description":"indique si l'appareil est en dehors de l'itinéraire prévu"},"trip_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trip Pending","description":"indique que l’appareil est en acheminement"},"trip_pending_distance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trip Pending Distance","description":"distance restante à parcourir en acheminement avant d’arriver au 1er arrêt"},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled","description":"distance parcourue sur le tracé"},"debug_shape_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Debug Shape Score","description":"valeur de debug, score du segment sélectionné par le calcul de projection de l’appareil sur le tracé"},"debug_trace_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Debug Trace Length","description":"valeur de debug, nombre d’élément dans la tracede l’appareil utilisés pour le calcul de projection"},"trip":{"anyOf":[{"$ref":"#/components/schemas/GtfsOptDatedTrip"},{"type":"null"}],"description":"(pendant une course) informations sur la course en cours"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id","description":"référence vers `gtfs.<gtfs_id>.trips._id` de la course *(Deprecated → `trip.trip_id`)*"},"current_status":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__devices__models__DeviceStatus"},{"type":"null"}],"description":"(pendant une course) indique le statut par rapport à l’arrêt indiqué par `current_stop_sequence`"},"current_stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Stop Id","description":"champ utilisé pour forcer le prochain arrêt lors d’une relève conducteur entre 2 appareils sur une course en mode sans tracé. *(Deprecated)*"},"current_stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Current Stop Sequence","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.trips.stop_times.stop_sequence` du prochain arrêt(arrêt courant quand le bus est à l’arrêt). Une valeur fractionnaire désigne un arrêt temporaire (AD_HOC)."},"latlng":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Latlng","description":"dernières coordonnées GPS de l’appareil,au format `[latitude, longitude]`"},"latlng_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latlng Accuracy","description":"précision des dernières coordonnées GPS"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","description":"(pendant une course) vitesse en m/s"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing","description":"orientation géographique de l’appareil"},"device_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Model","description":"marque et/ou modèle de l’appareil"},"device_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Os","description":"système d’exploitation et version de l’appareil"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version","description":"version installé de l’application"},"gps_ppm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gps Ppm","description":"nombre de coordonnées remontées par le GPS par minutes","default":0},"app_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAppStatus"},{"type":"null"}],"description":"indique le statut de l’application. *(deprecated → déplacé dans `event_app`, à supprimer ?)*"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived","description":"indique que l’appareil est archivé"},"assigned_driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Driver Id","description":"référence vers `pysae.drivers._id` du conducteur affecté forcé pour cet appareil"},"assigned_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Vehicle Id","description":"référence vers `pysae.vehicle._id` du véhicule affecté forcé pour cet appareil"},"claimed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Claimed At","description":"when the device has been claimed by a phone, thus making a session"},"current_activity_log_assignation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Activity Log Assignation","description":"référence vers `history.duties.<gtfs_id>._id` de la prise de service en cours"},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"référence vers `gtfs.files._id` du GTFS chargé sur l’appareil *(Deprecated → déplacé vers `gtfs_id`)*"},"device_imei":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Imei","description":"IMEI du téléphone *(Deprecated)*"},"drive_mode":{"anyOf":[{"$ref":"#/components/schemas/DeviceDriveMode"},{"type":"null"}],"description":"mode de prise de course. Valeurs possibles : `sequence` pour le mode service séquentiel, `trip` pour le mode course"},"event_app":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event App","description":"indique certains actions du conducteur sur l’application (sélection d’une course, affichage de la carte, forcer le départ de la course, fin de course, etc.)"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id","description":"Gtfs which the device base its trips"},"last_vehicle_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Vehicle Associated","description":"Dernier vehicule associé à l'appareil durant une course"},"last_driver_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Driver Associated","description":"Dernier conducteur associé à l'appareil durant une course"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"nom de l’appareil"},"network_status":{"$ref":"#/components/schemas/DeviceNetworkStatus","description":"indique si l’appareil est connecté à internet ou non *(devrait toujours être `online` dans cette collection)*","default":"online"},"no_gps":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"No Gps","description":"indique si le GPS transmet bien de nouvelles coordonnées ou non"},"position":{"anyOf":[{"$ref":"#/components/schemas/DevicePosition"},{"type":"null"}],"description":"Inutilisé. Objet cloné depuis la remonté du GPS de l’appareil. Voir https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPosition"},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.routes._id` de la course en cours"},"simulation_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Simulation Mode","description":"indique que l’appareil est en mode simulation"},"stop_id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Stop Id","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.stops._id` de l’arrêt indiqué par `current_stop_sequence`"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"référence vers `state.groups.teams.team_id` de l’équipe de l’appareil"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","description":"référence vers `state.groups.teams.team_id` des équipes de l’appareil","default":[]},"time_to_next_stop":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Time To Next Stop","description":"(en acheminement) temps estimé avant d’arriver à l’arrêt, en secondes"},"time_to_next_stop_fixed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time To Next Stop Fixed","description":"*(Deprecated)*"},"trip_schedule_relationship":{"anyOf":[{"$ref":"#/components/schemas/DeviceTripScheduleRelationship"},{"type":"null"}],"description":"indique que la course est annulée."},"ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts","description":"timestamp de dernière mise à jour de l’appareil"},"ts_system":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts System","description":"technical true timestamp for a device simulating"},"v":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"V","description":"`1` *(Deprecated, les appareils qui n’avaient pas ce champs utilisaient un calcul de progression fait par l’API et pas par Driver)*"},"vehicle_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Load","description":"charge du véhicule"},"load_percentage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Load Percentage"},"_id":{"type":"string","title":"Id","description":"identifiant généré par l’appareil"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"}},"type":"object","required":["_id"],"title":"HistoryDeviceAtSchema","description":"Reconstructed Device state returned by ``GET /devices/{device_id}/history``.\n\nMirrors :class:`DeviceSchema` — Device.last_snapshot has been removed\nalong with the legacy hourly snapshot bookkeeping in history_event."},"HistoryEventSchema":{"properties":{"source_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Vehicle Id","description":"Identifiant du véhicule fournissant la position de cet appareil.Ce champs est défini uniquement pour les positions fournies par un équipement externe comme le routeur embarqué"},"source_equipment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Equipment Id","description":"Identifiant de l'équipement fournissant la position de cet appareil.Ce champs est défini uniquement pour les positions fournies par un équipement externe comme le routeur embarqué"},"source_equipment_type":{"anyOf":[{"$ref":"#/components/schemas/EquipmentType"},{"type":"null"}],"description":"Type d'équipement fournissant les données de cet appareil. TELEMATIC pour un boîtier télématique (ex: MCF), ROUTER pour un routeur embarqué (ex: ICN)."},"trip_filter":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"$ref":"#/components/schemas/DeadRunTripFilter"},{"type":"null"}],"title":"Trip Filter","description":"(pendant une course)"},"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay","description":"(pendant une course) valeur d’avance (si négatif) ou de retard de l’appareil par rapport au théorique"},"off_itinerary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Off Itinerary","description":"indique si l'appareil est en dehors de l'itinéraire prévu"},"trip_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trip Pending","description":"indique que l’appareil est en acheminement"},"trip_pending_distance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trip Pending Distance","description":"distance restante à parcourir en acheminement avant d’arriver au 1er arrêt"},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled","description":"distance parcourue sur le tracé"},"debug_shape_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Debug Shape Score","description":"valeur de debug, score du segment sélectionné par le calcul de projection de l’appareil sur le tracé"},"debug_trace_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Debug Trace Length","description":"valeur de debug, nombre d’élément dans la tracede l’appareil utilisés pour le calcul de projection"},"trip":{"anyOf":[{"$ref":"#/components/schemas/GtfsOptDatedTrip"},{"type":"null"}],"description":"(pendant une course) informations sur la course en cours"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id","description":"référence vers `gtfs.<gtfs_id>.trips._id` de la course *(Deprecated → `trip.trip_id`)*"},"trip_team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Team Id","description":"référence vers `state.groups.teams.team_id` de l'équipe de la course"},"current_status":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__devices__models__DeviceStatus"},{"type":"null"}],"description":"(pendant une course) indique le statut par rapport à l’arrêt indiqué par `current_stop_sequence`"},"current_stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Stop Id","description":"champ utilisé pour forcer le prochain arrêt lors d’une relève conducteur entre 2 appareils sur une course en mode sans tracé. *(Deprecated)*"},"current_stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Current Stop Sequence","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.trips.stop_times.stop_sequence` du prochain arrêt(arrêt courant quand le bus est à l’arrêt). Une valeur fractionnaire désigne un arrêt temporaire (AD_HOC)."},"current_trip_trigger":{"anyOf":[{"$ref":"#/components/schemas/DeviceTrigger"},{"type":"null"}]},"latlng":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Latlng","description":"dernières coordonnées GPS de l’appareil,au format `[latitude, longitude]`"},"latlng_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latlng Accuracy","description":"précision des dernières coordonnées GPS"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","description":"(pendant une course) vitesse en m/s"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing","description":"orientation géographique de l’appareil"},"device_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Model","description":"marque et/ou modèle de l’appareil"},"device_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Os","description":"système d’exploitation et version de l’appareil"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version","description":"version installée de l’application"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id","description":"Gtfs which the device base its trips"},"gps_ppm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gps Ppm","description":"nombre de coordonnées remontées par le GPS par minutes","default":0},"app_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAppStatus"},{"type":"null"}],"description":"indique le statut de l’application. *(deprecated → déplacé dans `event_app`, à supprimer ?)*"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived","description":"indique que l’appareil est archivé"},"assigned_driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Driver Id","description":"référence vers `pysae.drivers._id` du conducteur affecté forcé pour cet appareil"},"assigned_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Vehicle Id","description":"référence vers `pysae.vehicle._id` du véhicule affecté forcé pour cet appareil"},"claimed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Claimed At","description":"when the device has been claimed by a phone, thus making a session"},"current_activity_log_assignation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Activity Log Assignation","description":"référence vers `history.duties.<gtfs_id>._id` de la prise de service en cours"},"current_on_demand_route":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Current On Demand Route","description":"référence vers `on_demand_routes._id` de la ligne à la demande servie, si `drive_mode=on_demand`"},"device_imei":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Imei","description":"IMEI du téléphone *(Deprecated)*"},"drive_mode":{"anyOf":[{"$ref":"#/components/schemas/DeviceDriveMode"},{"type":"null"}],"description":"mode de prise de course. Valeurs possibles : `sequence` pour le mode service séquentiel, `trip` pour le mode course"},"event_app":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event App","description":"indique certains actions du conducteur sur l’application (sélection d’une course, affichage de la carte, forcer le départ de la course, fin de course, etc.)"},"installer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Installer","description":"`ps` (indiquait que l’application a été installéeà partir du PlayStore ou autre) *(Deprecated)*"},"last_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Id","description":"référence vers `history.messages.<group_id>._id`du dernier message récupéré sur cet appareil"},"last_vehicle_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Vehicle Associated","description":"Dernier vehicule associé à l'appareil durant une course"},"last_driver_associated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Driver Associated","description":"Dernier conducteur associé à l'appareil durant une course"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"nom de l’appareil"},"network_status":{"$ref":"#/components/schemas/DeviceNetworkStatus","description":"indique si l’appareil est connecté à internet ou non *(devrait toujours être `online` dans cette collection)*","default":"online"},"no_gps":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"No Gps","description":"indique si le GPS transmet bien de nouvelles coordonnées ou non"},"position":{"anyOf":[{"$ref":"#/components/schemas/DevicePosition"},{"type":"null"}],"description":"Inutilisé. Objet cloné depuis la remonté du GPS de l’appareil. Voir https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPosition"},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.routes._id` de la course en cours"},"shape_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape Id"},"simulation_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Simulation Mode","description":"indique que l’appareil est en mode simulation"},"skipped_last_position":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skipped Last Position","description":"(pendant une course) indique que la dernière position GPS a été ignorée par le calcul de progression"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id","description":"(pendant une course) référence vers `gtfs.<gtfs_id>.stops._id` de l’arrêt indiqué par `current_stop_sequence`"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"référence vers `state.groups.teams.team_id` de l’équipe de l’appareil"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","description":"référence vers `state.groups.teams.team_id` des équipes de l’appareil","default":[]},"time_to_next_stop":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Time To Next Stop","description":"(en acheminement) temps estimé avant d’arriver à l’arrêt, en secondes"},"time_to_next_stop_fixed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time To Next Stop Fixed","description":"*(Deprecated)*"},"trip_schedule_relationship":{"anyOf":[{"$ref":"#/components/schemas/DeviceTripScheduleRelationship"},{"type":"null"}],"description":"indique que la course est annulée."},"ts":{"type":"number","title":"Ts"},"ts_system":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts System","description":"technical true timestamp for a device simulating"},"update_info":{"anyOf":[{"$ref":"#/components/schemas/DeviceUpdateInfo"},{"type":"null"}],"description":"indique d’où vient la demande de relève conducteur *(Deprecated)*"},"v":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"V","description":"`1` *(Deprecated, les appareils qui n’avaient pas ce champs utilisaient un calcul de progression fait par l’API et pas par Driver)*"},"energy_level":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Energy Level","description":"Niveau d'énergie du véhicule (carburant ou batterie), en pourcentage (0-100)."},"odometer":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Odometer","description":"Compteur kilométrique du véhicule, en kilomètres."},"engine_state":{"anyOf":[{"$ref":"#/components/schemas/EngineState"},{"type":"null"}],"description":"État du moteur (driving / stopped) remonté par l'équipement télématique."},"vehicle_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Load","description":"charge du véhicule"},"load_percentage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Load Percentage"},"voip":{"anyOf":[{"$ref":"#/components/schemas/DeviceVoipData"},{"type":"null"}],"description":"appareil VoIP associé à ce device"},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"device_id":{"type":"string","title":"Device Id"},"packet_lag":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Packet Lag"},"type":{"anyOf":[{"$ref":"#/components/schemas/HistoryEventType"},{"type":"null"}]}},"type":"object","required":["ts","id","device_id"],"title":"HistoryEventSchema"},"HistoryEventType":{"type":"string","enum":["position","trip","trip_details","trip_filter","vehicle_load","passenger_count","vehicle_data","duty_check_in","duty_check_out","on_demand_service_start","on_demand_service_end","on_demand_stop_arrival","on_demand_stop_departure","on_demand_passenger_count"],"title":"HistoryEventType"},"HistoryGTFSSchema":{"properties":{"_id":{"type":"integer","title":"Id"},"current_file":{"type":"string","title":"Current File"},"type":{"$ref":"#/components/schemas/PublicationTypeSchema"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"planned_ts":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Planned Ts"},"planned_setup_ts":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Planned Setup Ts"}},"type":"object","required":["_id","current_file","type"],"title":"HistoryGTFSSchema"},"HistoryStopTimesSchema":{"properties":{"id":{"type":"string","title":"Id"},"gtfs_id":{"type":"string","title":"Gtfs Id"},"trip_id":{"type":"string","title":"Trip Id"},"start_date":{"type":"string","title":"Start Date"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"event":{"type":"string","title":"Event"},"device_id":{"type":"string","title":"Device Id"},"delay":{"type":"integer","title":"Delay"},"ts":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Ts"},"last_stop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Last Stop"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"delta_previous_passage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta Previous Passage"},"delta_next_passage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta Next Passage"},"_id":{"type":"string","title":"Id"}},"type":"object","required":["id","gtfs_id","trip_id","start_date","stop_sequence","event","device_id","delay","ts","_id"],"title":"HistoryStopTimesSchema"},"HistoryVKSchema":{"properties":{"date":{"type":"string","title":"Date"},"gtfs_id":{"type":"string","title":"Gtfs Id"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id"},"device_id":{"type":"string","title":"Device Id"},"vk":{"type":"number","title":"Vk"},"start_ts":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Start Ts"},"end_ts":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"End Ts"},"start_latlng":{"items":{"type":"number"},"type":"array","title":"Start Latlng"},"end_latlng":{"items":{"type":"number"},"type":"array","title":"End Latlng"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"vk_no_status":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vk No Status"}},"type":"object","required":["date","gtfs_id","device_id","vk","start_ts","end_ts","start_latlng","end_latlng"],"title":"HistoryVKSchema"},"ImportFormat":{"type":"string","enum":["json","gescar","okapi"],"title":"ImportFormat"},"Incident":{"properties":{"incident_label":{"type":"string","title":"Incident Label"},"ticket":{"$ref":"#/components/schemas/Ticket"}},"type":"object","required":["incident_label","ticket"],"title":"Incident"},"InfoTypes":{"type":"string","enum":["stop_time_update","delay","comment","schedule_relationship","incident","stop_info"],"title":"InfoTypes"},"InsertedPlanningSchema":{"properties":{"date":{"type":"string","title":"Date","examples":["20201122"]},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"block_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Label"},"hastus_duty_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hastus Duty Identifier"},"trip_id":{"type":"string","title":"Trip Id"},"missing_trip":{"type":"boolean","title":"Missing Trip","default":false}},"type":"object","required":["date","trip_id"],"title":"InsertedPlanningSchema"},"Interval":{"properties":{"start_date":{"type":"string","title":"Start Date"},"end_date":{"type":"string","title":"End Date"}},"type":"object","required":["start_date","end_date"],"title":"Interval"},"InvalidGTFSId":{"properties":{"code":{"type":"string","const":"INVALID_GTFS_ID","title":"Code"},"details":{"type":"string","const":"The gtfs id is not valid","title":"Details"},"payload":{"$ref":"#/components/schemas/InvalidGTFSIdPayload"}},"type":"object","required":["code","details","payload"],"title":"InvalidGTFSId"},"InvalidGTFSIdPayload":{"properties":{},"type":"object","title":"InvalidGTFSIdPayload"},"InvalidRailDeparturesWindow":{"properties":{"code":{"type":"string","const":"INVALID_RAIL_DEPARTURES_WINDOW","title":"Code"},"details":{"type":"string","const":"`to` must not precede `from`, and the window must not exceed 24 hours","title":"Details"},"payload":{"$ref":"#/components/schemas/InvalidRailDeparturesWindowPayload"}},"type":"object","required":["code","details","payload"],"title":"InvalidRailDeparturesWindow"},"InvalidRailDeparturesWindowPayload":{"properties":{"window_from":{"type":"string","title":"Window From"},"window_to":{"type":"string","title":"Window To"}},"type":"object","required":["window_from","window_to"],"title":"InvalidRailDeparturesWindowPayload"},"InvalidRailStationNear":{"properties":{"code":{"type":"string","const":"INVALID_RAIL_STATION_NEAR","title":"Code"},"details":{"type":"string","const":"`near` must be `<latitude>,<longitude>` in WGS 84 decimal degrees, with the latitude within [-90, 90] and the longitude within [-180, 180]","title":"Details"},"payload":{"$ref":"#/components/schemas/InvalidRailStationNearPayload"}},"type":"object","required":["code","details","payload"],"title":"InvalidRailStationNear"},"InvalidRailStationNearPayload":{"properties":{"near":{"type":"string","title":"Near"}},"type":"object","required":["near"],"title":"InvalidRailStationNearPayload"},"InvalidRole":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/InvalidRolePayload"}},"type":"object","required":["code","details","payload"],"title":"InvalidRole"},"InvalidRolePayload":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Role Needed"}},"type":"object","required":["role_given","role_needed"],"title":"InvalidRolePayload"},"InvalidTeam":{"properties":{"code":{"type":"string","const":"INVALID_TEAM","title":"Code"},"details":{"type":"string","const":"You do not have the required team","title":"Details"},"payload":{"$ref":"#/components/schemas/InvalidTeamPayload"}},"type":"object","required":["code","details","payload"],"title":"InvalidTeam"},"InvalidTeamPayload":{"properties":{"missing_team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Missing Team Id"}},"type":"object","title":"InvalidTeamPayload"},"Issue":{"properties":{"severity":{"$ref":"#/components/schemas/Severity"},"issue_type":{"$ref":"#/components/schemas/IssueType"},"object_id":{"type":"string","title":"Object Id"},"object_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Type"},"object_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Name"},"related_objects":{"items":{"$ref":"#/components/schemas/RelatedObject"},"type":"array","title":"Related Objects","default":[]},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"},"related_file":{"anyOf":[{"$ref":"#/components/schemas/RelatedFile"},{"type":"null"}]},"geojson":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Geojson"}},"type":"object","required":["severity","issue_type","object_id"],"title":"Issue","description":"Represents an issue."},"IssueType":{"type":"string","enum":["UnusedStop","Slow","ExcessiveSpeed","NegativeTravelTime","CloseStops","NullDuration","InvalidReference","InvalidArchive","MissingName","MissingId","MissingCoordinates","InvalidCoordinates","InvalidRouteType","MissingUrl","InvalidUrl","InvalidTimezone","DuplicateStops","MissingPrice","InvalidCurrency","InvalidTransfers","InvalidTransferDuration","MissingLanguage","InvalidLanguage","DuplicateObjectId","UnloadableModel","MissingMandatoryFile","ExtraFile","ImpossibleToInterpolateStopTimes","InvalidStopLocationTypeInTrip","InvalidStopParent","IdNotAscii","InvalidShapeId","UnusedShapeId","DuplicateStopSequence","SubFolder","ValidationDisabled","TripsWithoutShapes","TripsWithoutDistances"],"title":"IssueType","description":"Represents the different types of issue."},"LoginResponseSchema":{"properties":{"session_id":{"type":"string","title":"Session Id"},"expires_days":{"type":"integer","title":"Expires Days"}},"type":"object","required":["session_id","expires_days"],"title":"LoginResponseSchema"},"MessageArchiveSchema":{"properties":{"archived":{"type":"boolean","title":"Archived"}},"additionalProperties":false,"type":"object","required":["archived"],"title":"MessageArchiveSchema"},"MessageBulkArchiveResultSchema":{"properties":{"id_amount":{"type":"integer","title":"Id Amount"},"modified_amount":{"type":"integer","title":"Modified Amount"}},"type":"object","required":["id_amount","modified_amount"],"title":"MessageBulkArchiveResultSchema"},"MessageBulkArchiveSchema":{"properties":{"archive":{"type":"boolean","title":"Archive"},"ids":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},"type":"array","uniqueItems":true,"title":"Ids"}},"type":"object","required":["archive","ids"],"title":"MessageBulkArchiveSchema"},"MessageCreateSchema":{"properties":{"sender":{"$ref":"#/components/schemas/SenderCreateSchema"},"recipients":{"items":{"$ref":"#/components/schemas/RecipientCreateSchema"},"type":"array","title":"Recipients"},"urgent":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Urgent"},"subject":{"type":"string","title":"Subject"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","default":[]},"archived":{"type":"boolean","title":"Archived","default":false},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"}},"additionalProperties":false,"type":"object","required":["sender","recipients","subject"],"title":"MessageCreateSchema"},"MessageCreatedSchema":{"properties":{"_id":{"type":"string","title":"Id"}},"type":"object","required":["_id"],"title":"MessageCreatedSchema"},"MessageDetailsSchema":{"properties":{"id":{"type":"string","title":"Id"},"sender":{"$ref":"#/components/schemas/SenderDeprecated"},"recipients":{"items":{"$ref":"#/components/schemas/RecipientDeprecated"},"type":"array","title":"Recipients"},"subject":{"type":"string","title":"Subject"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","default":[]},"archived":{"type":"boolean","title":"Archived"},"urgent":{"type":"boolean","title":"Urgent"},"date":{"type":"string","format":"date-time","title":"Date"},"feed_type":{"type":"string","title":"Feed Type","default":"message"}},"additionalProperties":false,"type":"object","required":["id","sender","recipients","subject","archived","urgent","date"],"title":"MessageDetailsSchema"},"MessageNotFound":{"properties":{"code":{"type":"string","const":"MESSAGE_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The message has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/MessageNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"MessageNotFound"},"MessageNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"message_id":{"type":"string","title":"Message Id"}},"type":"object","required":["group_id","message_id"],"title":"MessageNotFoundPayload"},"MessageSchemaDeprecated":{"properties":{"_id":{"type":"string","title":"Id"},"id":{"type":"string","title":"Id"},"sender":{"$ref":"#/components/schemas/SenderDeprecated"},"recipients":{"items":{"$ref":"#/components/schemas/RecipientDeprecated"},"type":"array","title":"Recipients"},"subject":{"type":"string","title":"Subject"},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","default":[]},"archived":{"type":"boolean","title":"Archived","default":false},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"urgent":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Urgent"}},"type":"object","required":["_id","id","sender","recipients","subject"],"title":"MessageSchemaDeprecated"},"MessageUpdateSchema":{"properties":{"read":{"anyOf":[{"type":"number"},{"type":"boolean"},{"type":"null"}],"title":"Read"},"delivered":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delivered"}},"additionalProperties":false,"type":"object","title":"MessageUpdateSchema"},"Metadata":{"properties":{"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"},"networks":{"items":{"type":"string"},"type":"array","title":"Networks"},"networks_start_end_dates":{"anyOf":[{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/Interval"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Networks Start End Dates"},"modes":{"items":{"type":"string"},"type":"array","title":"Modes"},"issues_count":{"additionalProperties":{"type":"integer"},"propertyNames":{"$ref":"#/components/schemas/IssueType"},"type":"object","title":"Issues Count"},"has_fares":{"type":"boolean","title":"Has Fares"},"has_shapes":{"type":"boolean","title":"Has Shapes"},"has_pathways":{"type":"boolean","title":"Has Pathways"},"some_stops_need_phone_agency":{"type":"boolean","title":"Some Stops Need Phone Agency"},"some_stops_need_phone_driver":{"type":"boolean","title":"Some Stops Need Phone Driver"},"validator_version":{"type":"string","title":"Validator Version"},"stops_count":{"type":"integer","title":"Stops Count"},"stats":{"$ref":"#/components/schemas/Stats"}},"type":"object","required":["networks","modes","issues_count","has_fares","has_shapes","has_pathways","some_stops_need_phone_agency","some_stops_need_phone_driver","validator_version","stops_count","stats"],"title":"Metadata"},"NoRole":{"properties":{"code":{"type":"string","const":"NO_ROLE","title":"Code"},"details":{"type":"string","const":"You do not have any role in the requested group","title":"Details"},"payload":{"$ref":"#/components/schemas/NoRolePayload"}},"type":"object","required":["code","details","payload"],"title":"NoRole"},"NoRolePayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},"type":"object","required":["group_id"],"title":"NoRolePayload"},"NoUser":{"properties":{"code":{"type":"string","const":"NO_USER","title":"Code"},"details":{"type":"string","const":"You are not authenticate with an user","title":"Details"},"payload":{"$ref":"#/components/schemas/NoUserPayload"}},"type":"object","required":["code","details","payload"],"title":"NoUser"},"NoUserPayload":{"properties":{},"type":"object","title":"NoUserPayload"},"PCSchema":{"properties":{"boardings":{"type":"integer","title":"Boardings","default":0},"alightings":{"type":"integer","title":"Alightings","default":0},"loading":{"type":"integer","title":"Loading","default":0}},"type":"object","title":"PCSchema"},"PassengerCountDetailsSchema":{"properties":{"agency_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Id"},"alighting":{"type":"integer","title":"Alighting","default":0},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"boarding":{"type":"integer","title":"Boarding","default":0},"day_of_week":{"type":"string","title":"Day Of Week"},"device_id":{"type":"string","title":"Device Id"},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"gtfs_id":{"type":"string","title":"Gtfs Id"},"location_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Type"},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"route_long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Long Name"},"route_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Short Name"},"start_date":{"type":"string","format":"date-time","title":"Start Date"},"stop_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Code"},"stop_id":{"type":"string","title":"Stop Id"},"stop_lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Stop Lat"},"stop_lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Stop Lon"},"stop_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Name"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"total_boarding":{"type":"integer","title":"Total Boarding","default":0},"trip_formatted_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Formatted Name"},"trip_headsign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Headsign"},"trip_id":{"type":"string","title":"Trip Id"},"trip_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Short Name"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"custom_boarding":{"additionalProperties":{"type":"integer"},"type":"object","title":"Custom Boarding"},"ts":{"type":"integer","title":"Ts"},"date":{"type":"string","format":"date-time","title":"Date"},"feed_type":{"type":"string","title":"Feed Type","default":"passenger-count"}},"type":"object","required":["day_of_week","device_id","gtfs_id","start_date","stop_id","stop_sequence","trip_id","custom_boarding","ts","date"],"title":"PassengerCountDetailsSchema"},"PassengerCountSchemaByDay":{"properties":{"total_boarding":{"type":"integer","title":"Total Boarding","default":0},"boarding":{"type":"integer","title":"Boarding","default":0},"alighting":{"type":"integer","title":"Alighting","default":0},"custom_boarding":{"additionalProperties":{"type":"integer"},"type":"object","title":"Custom Boarding","default":{}},"drivers":{"items":{"$ref":"#/components/schemas/Driver"},"type":"array","title":"Drivers","default":[]},"vehicles":{"items":{"$ref":"#/components/schemas/Vehicle"},"type":"array","title":"Vehicles","default":[]},"date":{"type":"string","title":"Date"}},"type":"object","required":["date"],"title":"PassengerCountSchemaByDay"},"PassengerCountSchemaByRoute":{"properties":{"total_boarding":{"type":"integer","title":"Total Boarding","default":0},"boarding":{"type":"integer","title":"Boarding","default":0},"alighting":{"type":"integer","title":"Alighting","default":0},"custom_boarding":{"additionalProperties":{"type":"integer"},"type":"object","title":"Custom Boarding","default":{}},"drivers":{"items":{"$ref":"#/components/schemas/Driver"},"type":"array","title":"Drivers","default":[]},"vehicles":{"items":{"$ref":"#/components/schemas/Vehicle"},"type":"array","title":"Vehicles","default":[]},"route_id":{"type":"string","title":"Route Id"},"route_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Short Name"},"route_long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Long Name"}},"type":"object","required":["route_id","route_short_name","route_long_name"],"title":"PassengerCountSchemaByRoute"},"PlanningSchema":{"properties":{"date":{"type":"string","title":"Date","examples":["20201122"]},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"block_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Label"},"hastus_duty_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hastus Duty Identifier"},"trip_id":{"type":"string","title":"Trip Id"}},"type":"object","required":["date","trip_id"],"title":"PlanningSchema"},"Problems":{"properties":{"distance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Distance"},"kilometers":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Kilometers"},"time":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Time"}},"type":"object","title":"Problems"},"PublicationTypeSchema":{"type":"string","enum":["instant","planned"],"title":"PublicationTypeSchema"},"PunctualitySchema":{"properties":{"on_time":{"type":"integer","title":"On Time"},"too_early":{"type":"integer","title":"Too Early"},"too_late":{"type":"integer","title":"Too Late"},"on_time_percentage":{"type":"number","title":"On Time Percentage"},"too_early_percentage":{"type":"number","title":"Too Early Percentage"},"too_late_percentage":{"type":"number","title":"Too Late Percentage"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["on_time","too_early","too_late","on_time_percentage","too_early_percentage","too_late_percentage","total_count"],"title":"PunctualitySchema"},"RCKDayStat":{"properties":{"recorded_commercial_km":{"type":"number","title":"Recorded Commercial Km"},"theoretical_commercial_km":{"type":"number","title":"Theoretical Commercial Km"},"unreliable_km":{"type":"number","title":"Unreliable Km"},"deviated_km":{"type":"number","title":"Deviated Km"},"date":{"type":"string","title":"Date"},"reliable_km":{"type":"number","title":"Reliable Km","readOnly":true},"percent_of_theoretical_km_recorded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Percent Of Theoretical Km Recorded","readOnly":true},"theoretical_commercial_km_with_deviation":{"type":"number","title":"Theoretical Commercial Km With Deviation","readOnly":true}},"type":"object","required":["date","reliable_km","percent_of_theoretical_km_recorded","theoretical_commercial_km_with_deviation"],"title":"RCKDayStat"},"RCKRouteStat":{"properties":{"recorded_commercial_km":{"type":"number","title":"Recorded Commercial Km"},"theoretical_commercial_km":{"type":"number","title":"Theoretical Commercial Km"},"unreliable_km":{"type":"number","title":"Unreliable Km"},"deviated_km":{"type":"number","title":"Deviated Km"},"route_id":{"type":"string","title":"Route Id"},"route_short_name":{"type":"string","title":"Route Short Name","default":""},"route_long_name":{"type":"string","title":"Route Long Name","default":""},"reliable_km":{"type":"number","title":"Reliable Km","readOnly":true},"percent_of_theoretical_km_recorded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Percent Of Theoretical Km Recorded","readOnly":true},"theoretical_commercial_km_with_deviation":{"type":"number","title":"Theoretical Commercial Km With Deviation","readOnly":true}},"type":"object","required":["route_id","reliable_km","percent_of_theoretical_km_recorded","theoretical_commercial_km_with_deviation"],"title":"RCKRouteStat"},"RailDepartureSchema":{"properties":{"trip_id":{"type":"string","title":"Trip Id","description":"Identifier of the train's trip in its source GTFS."},"service_date":{"type":"string","title":"Service Date","description":"Service day the departure belongs to, `YYYYMMDD`. Not the calendar day of `scheduled_departure`: a train leaving at 00:40 belongs to the previous service day.","examples":["20260817"]},"uic":{"type":"string","title":"Uic","description":"UIC code of the station the train departs from.","examples":["87597005"]},"station_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Name","description":"Name of the station, as its source GTFS spells it."},"stop_id":{"type":"string","title":"Stop Id","description":"Identifier of the rail stop the train calls at, in the source GTFS — never a stop of your own network."},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform","description":"Platform (`voie`), from the GTFS `platform_code` of the stop. Optional by design: the SNCF national feed does not publish it, so expect `null` on baseline data."},"scheduled_departure":{"type":"string","format":"date-time","title":"Scheduled Departure","description":"Theoretical departure time. Always present — this is what the board is sorted and filtered on."},"scheduled_arrival":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled Arrival","description":"Theoretical arrival time at the station, when timed."},"estimated_departure":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Estimated Departure","description":"Departure time as the realtime feed estimates it. `null` when no realtime covers this train — the theoretical time then stands alone."},"delay_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay Seconds","description":"Signed difference between the estimated and the theoretical departure, in seconds. Negative when the train runs early."},"status":{"$ref":"#/components/schemas/RailDepartureStatus","description":"`scheduled` means no realtime is available for this train, not that it is on time. `on_time`, `delayed` and `early` are realtime verdicts; `canceled` is a cancelled trip, `skipped` a train no longer calling at this station, `added` a train absent from the timetable."},"route_id":{"type":"string","title":"Route Id","description":"Identifier of the route in its source GTFS."},"route_type":{"type":"integer","title":"Route Type","description":"GTFS `route_type` of the route. Every mode calling at the station is returned, road replacement coaches (`Car TER`, `route_type` 3) included — filter client-side if you only want trains.","examples":[2]},"route_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Short Name","description":"Short name of the route, e.g. `TER`."},"route_long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Long Name","description":"Long name of the route."},"route_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Color","description":"Route colour, hexadecimal without `#`."},"route_text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Text Color","description":"Route text colour, hexadecimal without `#`."},"trip_headsign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Headsign","description":"Headsign of the trip, as the GTFS carries it."},"trip_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Short Name","description":"Short name of the trip — the train number, in practice.","examples":["864122"]},"direction_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Direction Id","description":"GTFS `direction_id` of the trip."},"destination":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Destination","description":"What to display as the train's destination: the stop headsign, else the trip headsign, else the name of the trip's last stop."},"disruptions":{"items":{"$ref":"#/components/schemas/RailDisruptionSchema"},"type":"array","title":"Disruptions","description":"Realtime alerts covering this train, its route, its station or its whole network, and active at the departure time. Empty when no realtime is available.","default":[]},"source_id":{"type":"string","title":"Source Id","description":"Which rail source the row was consolidated from: the SNCF baseline, or your own source when it publishes the same `(trip_id, service_date, uic)` call and therefore replaces it."}},"type":"object","required":["trip_id","service_date","uic","stop_id","scheduled_departure","status","route_id","route_type","source_id"],"title":"RailDepartureSchema"},"RailDepartureStatus":{"type":"string","enum":["scheduled","on_time","early","delayed","canceled","skipped","added"],"title":"RailDepartureStatus","description":"What the realtime says about one scheduled call.\n\n``SCHEDULED`` is the absence of realtime, not a realtime verdict: the\nboard falls back to it whenever no entity covers the trip."},"RailDisruptionSchema":{"properties":{"entity_id":{"type":"string","title":"Entity Id","description":"Identifier of the alert in the realtime feed it comes from. Stable across polls, so a client can keep an alert it already displayed from flashing again."},"cause":{"$ref":"#/components/schemas/RailRtAlertCause","description":"`Alert.Cause` of the GTFS-realtime specification."},"effect":{"$ref":"#/components/schemas/RailRtAlertEffect","description":"`Alert.Effect` of the GTFS-realtime specification."},"header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header","description":"Short title of the disruption, in French when the feed publishes a French translation."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Full text of the disruption, same language choice."}},"type":"object","required":["entity_id","cause","effect"],"title":"RailDisruptionSchema"},"RailLinkIngestionStatus":{"type":"string","enum":["pending","ready","not_found"],"title":"RailLinkIngestionStatus","description":"Where the station's data stands in the global rail store.\n\n``pending`` — the targeted ingestion of the UIC was requested and has\nnot landed yet; ``ready`` — the store serves the station's departures;\n``not_found`` — the store was refreshed but no trip of the current\nnational GTFS serves this station."},"RailRtAlertCause":{"type":"string","enum":["UNKNOWN_CAUSE","OTHER_CAUSE","TECHNICAL_PROBLEM","STRIKE","DEMONSTRATION","ACCIDENT","HOLIDAY","WEATHER","MAINTENANCE","CONSTRUCTION","POLICE_ACTIVITY","MEDICAL_EMERGENCY"],"title":"RailRtAlertCause","description":"``Alert.Cause`` of the GTFS-RT spec."},"RailRtAlertEffect":{"type":"string","enum":["NO_SERVICE","REDUCED_SERVICE","SIGNIFICANT_DELAYS","DETOUR","ADDITIONAL_SERVICE","MODIFIED_SERVICE","OTHER_EFFECT","UNKNOWN_EFFECT","STOP_MOVED"],"title":"RailRtAlertEffect","description":"``Alert.Effect`` of the GTFS-RT spec."},"RailStationLinkSchema":{"properties":{"stop_id":{"type":"string","title":"Stop Id","description":"Identifier of the stop in your network's GTFS."},"uic":{"type":"string","title":"Uic","description":"UIC code of the rail station the stop is attached to."},"stop_name":{"type":"string","title":"Stop Name","description":"Display name of the stop, as snapshotted on the link."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"When the link was first created."},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"User who first created the link, when known."},"is_orphan":{"type":"boolean","title":"Is Orphan","description":"`true` when the stop is absent from the currently published GTFS of the group — including when the group has no published GTFS. The link is kept either way; the flag lets you surface it."},"ingestion_status":{"$ref":"#/components/schemas/RailLinkIngestionStatus","description":"Where the station's rail data stands. `pending`: the station is being ingested, its departure board is not queryable yet. `ready`: departures are queryable. `not_found`: no trip of the current national GTFS serves this station."}},"type":"object","required":["stop_id","uic","stop_name","created_at","is_orphan","ingestion_status"],"title":"RailStationLinkSchema"},"RailStationNotFound":{"properties":{"code":{"type":"string","const":"RAIL_STATION_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"No rail station carries this UIC code","title":"Details"},"payload":{"$ref":"#/components/schemas/RailStationNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"RailStationNotFound"},"RailStationNotFoundPayload":{"properties":{"uic":{"type":"string","title":"Uic"}},"type":"object","required":["uic"],"title":"RailStationNotFoundPayload"},"RailStationPageSchema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RailStationSchema"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Total amount of stations matching the filters, across all pages."},"page":{"type":"integer","title":"Page","description":"1-based index of the returned page."},"page_size":{"type":"integer","title":"Page Size","description":"Amount of items per page."}},"type":"object","required":["items","total","page","page_size"],"title":"RailStationPageSchema"},"RailStationSchema":{"properties":{"uic":{"items":{"type":"string"},"type":"array","title":"Uic","description":"Every UIC code the station is known by. A large station is reachable by several (Paris Gare du Nord carries three); each code identifies exactly one station."},"name":{"type":"string","title":"Name","description":"Station name, as SNCF publishes it."},"short_label":{"type":"string","title":"Short Label","description":"Three-letter SNCF code (`CTX`, `PNO`, …)."},"segments_drg":{"items":{"type":"string"},"type":"array","title":"Segments Drg","description":"DRG frequentation segments (`A` busiest to `C`). The source gives one per UIC code, so a station with several codes can carry several segments."},"lat":{"type":"number","title":"Lat","description":"Latitude, WGS 84 decimal degrees."},"lon":{"type":"number","title":"Lon","description":"Longitude, WGS 84 decimal degrees."},"insee_code":{"type":"string","title":"Insee Code","description":"INSEE code of the commune the station sits in."},"source_ref":{"type":"string","title":"Source Ref","description":"Identifier of the record in the SNCF `gares-de-voyageurs` dataset, for tracing a station back to its source."},"distance_meters":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance Meters","description":"Distance from the `near` point, in metres. Only present when `near` was passed."}},"type":"object","required":["uic","name","short_label","segments_drg","lat","lon","insee_code","source_ref"],"title":"RailStationSchema"},"RatingByDriverVersionSchema":{"properties":{"driver_version":{"type":"string","title":"Driver Version"},"avrage_rating":{"type":"number","title":"Avrage Rating"}},"type":"object","required":["driver_version","avrage_rating"],"title":"RatingByDriverVersionSchema"},"RatingByGroupSchema":{"properties":{"group_id":{"type":"string","title":"Group Id"},"average_rating":{"type":"number","title":"Average Rating"}},"type":"object","required":["group_id","average_rating"],"title":"RatingByGroupSchema"},"RatingSchema":{"properties":{"driver_version":{"type":"string","title":"Driver Version"},"rating":{"type":"integer","title":"Rating"},"comment":{"type":"string","title":"Comment"},"driver_id":{"type":"string","title":"Driver Id"},"ts":{"type":"string","format":"date-time","title":"Ts"},"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["driver_version","rating","comment","driver_id","group_id"],"title":"RatingSchema"},"RecipientCreateSchema":{"properties":{"address":{"type":"string","title":"Address"},"read":{"type":"boolean","title":"Read","default":false},"delivered":{"type":"boolean","title":"Delivered","default":false}},"type":"object","required":["address"],"title":"RecipientCreateSchema"},"RecipientDeprecated":{"properties":{"address":{"type":"string","title":"Address"},"read":{"anyOf":[{"type":"boolean"},{"type":"number"}],"title":"Read"},"delivered":{"anyOf":[{"type":"boolean"},{"type":"number"},{"type":"integer"}],"title":"Delivered"}},"type":"object","required":["address","read","delivered"],"title":"RecipientDeprecated"},"RelatedFile":{"properties":{"file_name":{"type":"string","title":"File Name"},"line":{"anyOf":[{"$ref":"#/components/schemas/RelatedLine"},{"type":"null"}]}},"type":"object","required":["file_name"],"title":"RelatedFile","description":"Represent a file that is causing an issue"},"RelatedLine":{"properties":{"line_number":{"type":"integer","title":"Line Number"},"headers":{"items":{"type":"string"},"type":"array","title":"Headers"},"values":{"items":{"type":"string"},"type":"array","title":"Values"}},"type":"object","required":["line_number","headers","values"],"title":"RelatedLine","description":"Represent a line that is causing an issue"},"RelatedObject":{"properties":{"id":{"type":"string","title":"Id"},"object_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["id"],"title":"RelatedObject","description":"Represents an object related to another object that is causing an issue."},"Response":{"properties":{"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"validations":{"additionalProperties":{"items":{"$ref":"#/components/schemas/Issue"},"type":"array"},"propertyNames":{"$ref":"#/components/schemas/IssueType"},"type":"object","title":"Validations"}},"type":"object","required":["validations"],"title":"Response","description":"Holds the issues and metadata about the GTFS."},"RoleSchema":{"properties":{"_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"role":{"$ref":"#/components/schemas/RoleType"},"teams":{"items":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"array","title":"Teams","default":[]}},"type":"object","required":["role"],"title":"RoleSchema"},"RoleType":{"type":"string","enum":["admin","driver","external_reader","operator","vehicle","reader","limited_reader","technical"],"title":"RoleType"},"RoleTypeValue":{"type":"string","enum":["admin","operator","driver","vehicle","reader","technical","limited_reader","external_reader"],"title":"RoleTypeValue"},"RouteGTFSSchema":{"properties":{"agency_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Id"},"route_color":{"anyOf":[{"type":"string","pattern":"[A-Fa-f0-9]{6}"},{"type":"null"}],"title":"Route Color"},"route_desc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Desc"},"route_id":{"type":"string","title":"Route Id"},"route_long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Long Name"},"route_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Short Name"},"route_sort_order":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Route Sort Order"},"route_text_color":{"anyOf":[{"type":"string","pattern":"[A-Fa-f0-9]{6}"},{"type":"null"}],"title":"Route Text Color"},"route_type":{"type":"string","title":"Route Type"},"route_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Url"}},"type":"object","required":["route_id","route_type"],"title":"RouteGTFSSchema"},"RoutePunctualitySchema":{"properties":{"on_time":{"type":"integer","title":"On Time"},"too_early":{"type":"integer","title":"Too Early"},"too_late":{"type":"integer","title":"Too Late"},"on_time_percentage":{"type":"number","title":"On Time Percentage"},"too_early_percentage":{"type":"number","title":"Too Early Percentage"},"too_late_percentage":{"type":"number","title":"Too Late Percentage"},"total_count":{"type":"integer","title":"Total Count"},"route_id":{"type":"string","title":"Route Id"},"route_long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Long Name"},"route_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Short Name"}},"type":"object","required":["on_time","too_early","too_late","on_time_percentage","too_early_percentage","too_late_percentage","total_count","route_id"],"title":"RoutePunctualitySchema"},"RouteSchema":{"properties":{"id":{"type":"string","title":"Id"},"color":{"anyOf":[{"type":"string","examples":["01af9c","Ab8C62"]},{"type":"null"}],"title":"Color"},"long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Long Name"},"short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Name"},"text_color":{"anyOf":[{"type":"string","examples":["01af9c","Ab8C62"]},{"type":"null"}],"title":"Text Color"}},"type":"object","required":["id"],"title":"RouteSchema"},"ScheduledTripSchema":{"properties":{"id":{"type":"string","title":"Id"},"arrival_time":{"type":"number","title":"Arrival Time"},"departure_time":{"type":"number","title":"Departure Time"},"service_date":{"type":"string","title":"Service Date","examples":["20201122"]},"formatted_name":{"type":"string","title":"Formatted Name"},"route":{"$ref":"#/components/schemas/RouteSchema"},"first_stop":{"$ref":"#/components/schemas/TripStopSchema"},"last_stop":{"$ref":"#/components/schemas/TripStopSchema"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"headsign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headsign"},"tk":{"type":"number","title":"Tk"},"gtfs":{"items":{"$ref":"#/components/schemas/FileSchema"},"type":"array","title":"Gtfs"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamSchema"},{"type":"null"}]},"teams":{"anyOf":[{"items":{"$ref":"#/components/schemas/TeamSchema"},"type":"array"},{"type":"null"}],"title":"Teams"},"updates":{"$ref":"#/components/schemas/UpdateSchema"},"service":{"$ref":"#/components/schemas/Service"},"status":{"$ref":"#/components/schemas/TripStatus","default":"scheduled"},"temporality":{"$ref":"#/components/schemas/Temporality","default":"future"}},"type":"object","required":["id","arrival_time","departure_time","service_date","formatted_name","route","first_stop","last_stop"],"title":"ScheduledTripSchema"},"SenderCreateSchema":{"properties":{"client":{"$ref":"#/components/schemas/Client"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"trip":{"anyOf":[{"$ref":"#/components/schemas/TripDeprecated"},{"type":"null"}]},"coordinates":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Coordinates","description":"Coordonnées au format Latitude/Longitude"}},"type":"object","required":["client"],"title":"SenderCreateSchema"},"SenderDeprecated":{"properties":{"client":{"type":"string","title":"Client"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"trip":{"anyOf":[{"$ref":"#/components/schemas/TripDeprecated"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"coordinates":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Coordinates","description":"Coordonnées au format Latitude/Longitude"}},"type":"object","required":["client"],"title":"SenderDeprecated"},"SequenceModeTripFilter":{"properties":{"block_id":{"type":"string","title":"Block Id","description":"Si `drive_mode=sequence`, référence vers `gtfs<gtfs_id>.trips.block_id` du service sélectionné"}},"type":"object","required":["block_id"],"title":"SequenceModeTripFilter"},"Service":{"properties":{"recorded_stops":{"type":"integer","title":"Recorded Stops","default":0},"planned_stops":{"type":"integer","title":"Planned Stops","default":0}},"type":"object","title":"Service"},"Severity":{"type":"string","enum":["Fatal","Error","Warning","Information"],"title":"Severity","description":"Represents the severity of an Issue."},"ShapeGTFSSchema":{"properties":{"geometry":{"$ref":"#/components/schemas/GeometrySchema"},"routes":{"items":{"type":"string"},"type":"array","title":"Routes"},"shape_id":{"type":"string","title":"Shape Id"},"source":{"$ref":"#/components/schemas/Source","default":"generated"}},"type":"object","required":["geometry","routes","shape_id"],"title":"ShapeGTFSSchema"},"SiriCapabilities":{"properties":{"groupId":{"type":"string","title":"Groupid"},"services":{"items":{"$ref":"#/components/schemas/SiriServiceCapability"},"type":"array","title":"Services"},"subscribeUrl":{"type":"string","title":"Subscribeurl","description":"Absolute URL of the unified subscription endpoint."}},"type":"object","required":["groupId","services","subscribeUrl"],"title":"SiriCapabilities","description":"JSON capabilities document for a group's SIRI feed."},"SiriServiceCapability":{"properties":{"code":{"type":"string","title":"Code","description":"Lower-case SIRI service code: vm, et, sm, gm, sx, pt, ct."},"label":{"type":"string","title":"Label","description":"Human-readable label, e.g. 'Vehicle Monitoring'."},"url":{"type":"string","title":"Url","description":"Absolute URL of the request/response endpoint."},"supportsSubscription":{"type":"boolean","title":"Supportssubscription","description":"True when this service supports the SIRI subscription flow."}},"type":"object","required":["code","label","url","supportsSubscription"],"title":"SiriServiceCapability","description":"One SIRI service exposed by the gtfsrt-to-siri converter for a group."},"SmsCountResponse":{"properties":{"count":{"type":"integer","title":"Count"},"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["count","limit"],"title":"SmsCountResponse"},"Source":{"type":"string","enum":["generated","unknown","com.pysae.editor"],"title":"Source"},"Stats":{"properties":{"stops_count":{"type":"integer","title":"Stops Count"},"stop_areas_count":{"type":"integer","title":"Stop Areas Count"},"stop_points_count":{"type":"integer","title":"Stop Points Count"},"stops_with_wheelchair_info_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stops With Wheelchair Info Count"},"routes_count":{"type":"integer","title":"Routes Count"},"routes_with_custom_color_count":{"type":"integer","title":"Routes With Custom Color Count"},"routes_with_short_name_count":{"type":"integer","title":"Routes With Short Name Count"},"routes_with_long_name_count":{"type":"integer","title":"Routes With Long Name Count"},"trips_count":{"type":"integer","title":"Trips Count"},"trips_with_bike_info_count":{"type":"integer","title":"Trips With Bike Info Count"},"trips_with_wheelchair_info_count":{"type":"integer","title":"Trips With Wheelchair Info Count"},"trips_with_shape_count":{"type":"integer","title":"Trips With Shape Count"},"trips_with_trip_headsign_count":{"type":"integer","title":"Trips With Trip Headsign Count"},"transfers_count":{"type":"integer","title":"Transfers Count"},"fares_attribute_count":{"type":"integer","title":"Fares Attribute Count"},"fares_rules_count":{"type":"integer","title":"Fares Rules Count"}},"type":"object","required":["stops_count","stop_areas_count","stop_points_count","routes_count","routes_with_custom_color_count","routes_with_short_name_count","routes_with_long_name_count","trips_count","trips_with_bike_info_count","trips_with_wheelchair_info_count","trips_with_shape_count","trips_with_trip_headsign_count","transfers_count","fares_attribute_count","fares_rules_count"],"title":"Stats"},"StopCloseAreaSchema":{"properties":{"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"stop_id":{"type":"string","title":"Stop Id"},"stop_radius":{"type":"integer","title":"Stop Radius"}},"type":"object","required":["stop_sequence","stop_id","stop_radius"],"title":"StopCloseAreaSchema"},"StopDetectionSchema":{"properties":{"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"stop_id":{"type":"string","title":"Stop Id"},"detection_radius":{"type":"integer","title":"Detection Radius"}},"type":"object","required":["stop_sequence","stop_id","detection_radius"],"title":"StopDetectionSchema"},"StopGTFSLocationType":{"type":"integer","enum":[0,1],"title":"StopGTFSLocationType"},"StopGTFSSchema":{"properties":{"stop_id":{"type":"string","title":"Stop Id"},"location_type":{"anyOf":[{"$ref":"#/components/schemas/StopGTFSLocationType"},{"type":"null"}]},"parent_station":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Station"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"stop_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Code"},"stop_desc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Desc"},"stop_lat":{"type":"number","title":"Stop Lat"},"stop_lon":{"type":"number","title":"Stop Lon"},"stop_name":{"type":"string","title":"Stop Name"},"stop_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Timezone"},"stop_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Url"},"wheelchair_boarding":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wheelchair Boarding"},"zone_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone Id"}},"type":"object","required":["stop_id","stop_lat","stop_lon","stop_name"],"title":"StopGTFSSchema"},"StopInfo":{"properties":{"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"information":{"type":"string","title":"Information"},"stop_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Name"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"}},"type":"object","required":["stop_sequence","information"],"title":"StopInfo"},"StopInfoSchema":{"properties":{"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"information":{"type":"string","title":"Information"}},"type":"object","required":["stop_sequence","information"],"title":"StopInfoSchema"},"StopTimeGTFSNestedSchema":{"properties":{"stop_sequence":{"type":"integer","title":"Stop Sequence"},"stop_id":{"type":"string","title":"Stop Id"},"arrival_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Arrival Time"},"departure_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Departure Time"},"stop_headsign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Headsign"},"pickup_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pickup Type"},"drop_off_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Drop Off Type"},"continuous_pickup":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Continuous Pickup"},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled"},"timepoint":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timepoint"}},"type":"object","required":["stop_sequence","stop_id"],"title":"StopTimeGTFSNestedSchema"},"StopTimeSchema":{"properties":{"gtfs_id":{"type":"string","title":"Gtfs Id"},"trip_id":{"type":"string","title":"Trip Id"},"stop_id":{"type":"string","title":"Stop Id"},"departure_time":{"type":"integer","title":"Departure Time"},"departure_ts":{"type":"integer","title":"Departure Ts"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"route_id":{"type":"string","title":"Route Id"},"trip_headsign":{"type":"string","title":"Trip Headsign"},"shape_id":{"type":"string","title":"Shape Id"},"start_date":{"type":"string","title":"Start Date"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"pickup_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pickup Type"},"first_stop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"First Stop"},"last_stop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Last Stop"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"estimated_stop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Estimated Stop"},"current_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Status"},"trip_delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trip Delay"},"estimated_departure_ts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Departure Ts"},"eta":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Eta"},"arrival_ts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Arrival Ts"},"recorded_departure_ts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recorded Departure Ts"},"recorded_arrival_ts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recorded Arrival Ts"}},"type":"object","required":["gtfs_id","trip_id","stop_id","departure_time","departure_ts","stop_sequence","route_id","trip_headsign","shape_id","start_date"],"title":"StopTimeSchema"},"StopTimeUpdate":{"properties":{"stop_sequence":{"type":"integer","title":"Stop Sequence"},"schedule_relationship":{"type":"string","title":"Schedule Relationship"},"stop_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Name"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"}},"type":"object","required":["stop_sequence","schedule_relationship"],"title":"StopTimeUpdate"},"StopTimesFeedSchema":{"properties":{"id":{"type":"string","title":"Id"},"gtfs_id":{"type":"string","title":"Gtfs Id"},"trip_id":{"type":"string","title":"Trip Id"},"start_date":{"type":"string","title":"Start Date"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"event":{"type":"string","title":"Event"},"device_id":{"type":"string","title":"Device Id"},"delay":{"type":"integer","title":"Delay"},"ts":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Ts"},"last_stop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Last Stop"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"delta_previous_passage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta Previous Passage"},"delta_next_passage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delta Next Passage"},"date":{"type":"string","format":"date-time","title":"Date"},"feed_type":{"type":"string","title":"Feed Type","default":"stop-times"},"duty":{"anyOf":[{"$ref":"#/components/schemas/Duty"},{"type":"null"}]}},"type":"object","required":["id","gtfs_id","trip_id","start_date","stop_sequence","event","device_id","delay","ts","date"],"title":"StopTimesFeedSchema"},"TaskSchema":{"properties":{"status":{"type":"string","title":"Status"},"nb_trips_updated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nb Trips Updated"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["status"],"title":"TaskSchema"},"Team":{"properties":{"team_id":{"type":"string","title":"Team Id"},"color":{"type":"string","title":"Color","default":"#00000"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"team_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Number"},"archived":{"type":"boolean","title":"Archived","default":false}},"type":"object","required":["team_id"],"title":"Team"},"TeamSchema":{"properties":{"id":{"type":"string","title":"Id"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"type":"object","required":["id"],"title":"TeamSchema"},"Temporality":{"type":"string","enum":["passed","current","future"],"title":"Temporality"},"TemporaryStop":{"properties":{"arrival_time":{"type":"integer","title":"Arrival Time"},"departure_time":{"type":"integer","title":"Departure Time"},"stop_lat":{"type":"number","title":"Stop Lat"},"stop_lon":{"type":"number","title":"Stop Lon"},"stop_id":{"type":"string","title":"Stop Id"},"stop_name":{"type":"string","title":"Stop Name"},"stop_sequence":{"type":"number","title":"Stop Sequence"},"type":{"$ref":"#/components/schemas/TemporaryStopType"}},"type":"object","required":["arrival_time","departure_time","stop_lat","stop_lon","stop_id","stop_name","stop_sequence","type"],"title":"TemporaryStop"},"TemporaryStopType":{"type":"string","enum":["SHIFT","AD_HOC","REUSE"],"title":"TemporaryStopType"},"Ticket":{"properties":{"domain":{"type":"string","title":"Domain"},"id":{"type":"integer","title":"Id"},"type":{"type":"string","title":"Type","default":"zendesk"}},"type":"object","required":["domain","id"],"title":"Ticket"},"TimeRange":{"properties":{"start_date":{"type":"string","title":"Start Date"},"end_date":{"type":"string","title":"End Date"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"daysOfWeek":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Daysofweek"}},"type":"object","required":["start_date","end_date","start_time","end_time"],"title":"TimeRange"},"TriggerTime":{"type":"string","enum":["start","end"],"title":"TriggerTime"},"TriggerType":{"type":"string","enum":["manual","auto"],"title":"TriggerType"},"Trip":{"properties":{"id":{"type":"string","title":"Id"},"start_date":{"type":"string","title":"Start Date"},"formatted_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formatted Name"}},"type":"object","required":["id","start_date"],"title":"Trip"},"TripDeprecated":{"properties":{"gtfs_id":{"type":"string","title":"Gtfs Id"},"formatted_trip_name":{"type":"string","title":"Formatted Trip Name"},"trip_id":{"type":"string","title":"Trip Id"},"start_date":{"type":"string","title":"Start Date"}},"type":"object","required":["gtfs_id","formatted_trip_name","trip_id","start_date"],"title":"TripDeprecated"},"TripEventSchema":{"properties":{"event_type":{"$ref":"#/components/schemas/EventType"},"plan_id":{"type":"string","title":"Plan Id"},"trip_id":{"type":"string","title":"Trip Id"},"trip_date":{"type":"string","title":"Trip Date"},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"date":{"type":"string","format":"date-time","title":"Date"},"content":{"anyOf":[{"$ref":"#/components/schemas/StopCloseAreaSchema"},{"$ref":"#/components/schemas/StopDetectionSchema"},{"type":"null"}],"title":"Content"},"device_id":{"type":"string","title":"Device Id"},"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["event_type","plan_id","trip_id","trip_date","device_id","_id"],"title":"TripEventSchema"},"TripGTFSSchema":{"properties":{"route_id":{"type":"string","title":"Route Id"},"service_id":{"type":"string","title":"Service Id"},"trip_id":{"type":"string","title":"Trip Id"},"trip_headsign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Headsign"},"trip_short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Short Name"},"direction_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Direction Id"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"shape_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape Id"},"wheelchair_accessible":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wheelchair Accessible"},"bikes_allowed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bikes Allowed"},"ext_pis_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ext Pis Code","description":"Additional field for Pysae"},"stop_times":{"items":{"$ref":"#/components/schemas/StopTimeGTFSNestedSchema"},"type":"array","title":"Stop Times","description":"Additional field for Pysae"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Additional field for Pysae"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams","description":"Additional field for Pysae"}},"type":"object","required":["route_id","service_id","trip_id","stop_times"],"title":"TripGTFSSchema"},"TripModeTripFilter":{"properties":{"trip_id":{"type":"string","title":"Trip Id","description":"Si `drive_mode=trip`, référence vers `gtfs.<gtfs_id>.trips._id` de la course"},"start_date":{"anyOf":[{"type":"string","maxLength":8,"minLength":8,"pattern":"^\\d*$"},{"type":"null"}],"title":"Start Date","description":"date de début théorique de la course, au format GTFS"}},"type":"object","required":["trip_id"],"title":"TripModeTripFilter"},"TripNotFound":{"properties":{"code":{"type":"string","const":"TRIP_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The trip has not been found","title":"Details"},"payload":{"$ref":"#/components/schemas/TripNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"TripNotFound"},"TripNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","format":"date"}],"title":"Date"},"trip_id":{"type":"string","title":"Trip Id"}},"type":"object","required":["group_id","gtfs_id","date","trip_id"],"title":"TripNotFoundPayload"},"TripStatus":{"type":"string","enum":["no data","ok","problem","routing","scheduled","tracked","untracked"],"title":"TripStatus"},"TripStopSchema":{"properties":{"id":{"type":"string","title":"Id"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Sequence"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["id"],"title":"TripStopSchema"},"TripTakingSchema":{"properties":{"device_id":{"type":"string","title":"Device Id"},"date":{"type":"string","format":"date-time","title":"Date"},"trigger_time":{"$ref":"#/components/schemas/TriggerTime"},"trigger_type":{"$ref":"#/components/schemas/TriggerType"}},"type":"object","required":["device_id","date","trigger_time","trigger_type"],"title":"TripTakingSchema"},"TripTrackingDay":{"properties":{"scheduled":{"type":"integer","title":"Scheduled","default":0},"tracked":{"type":"integer","title":"Tracked"},"vehicles":{"items":{"$ref":"#/components/schemas/Vehicle"},"type":"array","title":"Vehicles","default":[]},"start_date":{"type":"string","title":"Start Date"},"percent_tracked":{"type":"integer","title":"Percent Tracked","readOnly":true}},"type":"object","required":["tracked","start_date","percent_tracked"],"title":"TripTrackingDay"},"TripTrackingRoute":{"properties":{"scheduled":{"type":"integer","title":"Scheduled","default":0},"tracked":{"type":"integer","title":"Tracked"},"vehicles":{"items":{"$ref":"#/components/schemas/Vehicle"},"type":"array","title":"Vehicles","default":[]},"gtfs_id":{"type":"string","title":"Gtfs Id"},"gtfs_name":{"type":"string","title":"Gtfs Name"},"route_id":{"type":"string","title":"Route Id"},"route_short_name":{"type":"string","title":"Route Short Name"},"route_long_name":{"type":"string","title":"Route Long Name"},"percent_tracked":{"type":"integer","title":"Percent Tracked","readOnly":true}},"type":"object","required":["tracked","gtfs_id","gtfs_name","route_id","route_short_name","route_long_name","percent_tracked"],"title":"TripTrackingRoute"},"Unauthenticated":{"properties":{"code":{"type":"string","const":"UNAUTHENTICATED","title":"Code"},"details":{"type":"string","const":"You did not provide a session id","title":"Details"},"payload":{"$ref":"#/components/schemas/UnauthenticatedPayload"}},"type":"object","required":["code","details","payload"],"title":"Unauthenticated"},"UnauthenticatedPayload":{"properties":{},"type":"object","title":"UnauthenticatedPayload"},"UpdateSchema":{"properties":{"deviated_shape_km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Deviated Shape Km","description":"Length in km of the deviated shape."},"nominal_shape_km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nominal Shape Km","description":"Length in km of the reference GTFS shape, as resolved when the deviation was created."},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay"},"is_canceled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Canceled"},"stop_infos":{"anyOf":[{"items":{"$ref":"#/components/schemas/StopInfoSchema"},"type":"array"},{"type":"null"}],"title":"Stop Infos"},"skipped_stop_time_seqs":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Skipped Stop Time Seqs"},"temporary_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/TemporaryStop"},"type":"array"},{"type":"null"}],"title":"Temporary Stops"},"shape":{"anyOf":[{"items":{"$ref":"#/components/schemas/Coordinates"},"type":"array"},{"type":"null"}],"title":"Shape"},"delays":{"anyOf":[{"items":{"$ref":"#/components/schemas/Delay"},"type":"array"},{"type":"null"}],"title":"Delays"},"km_delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Km Delta","description":"Signed km difference deviated - nominal (+ = longer).","readOnly":true}},"type":"object","required":["km_delta"],"title":"UpdateSchema"},"UpdatesSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"trip_id":{"type":"string","title":"Trip Id"},"start_date":{"type":"string","title":"Start Date"},"info_type":{"$ref":"#/components/schemas/InfoTypes"},"content":{"anyOf":[{"type":"integer"},{"type":"string"},{"items":{"$ref":"#/components/schemas/StopTimeUpdate"},"type":"array"},{"items":{"$ref":"#/components/schemas/StopInfo"},"type":"array"},{"items":{"$ref":"#/components/schemas/Incident"},"type":"array"}],"title":"Content"},"source":{"type":"string","title":"Source"},"date":{"type":"string","format":"date-time","title":"Date"},"feed_type":{"type":"string","title":"Feed Type","default":"trip-update"}},"type":"object","required":["trip_id","start_date","info_type","content","source","date"],"title":"UpdatesSchema"},"UrgencyAcknowledgmentSchema":{"properties":{"time":{"type":"string","format":"date-time","title":"Time"},"user_id":{"type":"string","title":"User Id"}},"type":"object","required":["time","user_id"],"title":"UrgencyAcknowledgmentSchema"},"UrgencyResolutionSchema":{"properties":{"time":{"type":"string","format":"date-time","title":"Time"},"user_id":{"type":"string","title":"User Id"},"is_false_alert":{"type":"boolean","title":"Is False Alert","default":false},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["time","user_id"],"title":"UrgencyResolutionSchema"},"UrgencySchema":{"properties":{"device_id":{"type":"string","title":"Device Id"},"device_position":{"$ref":"#/components/schemas/DeviceCoordinatesSchema"},"device_time":{"type":"string","format":"date-time","title":"Device Time"},"trip":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__urgency__schemas__TripSchema"},{"type":"null"}]},"driver_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Driver Id"},"vehicle_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Vehicle Id"},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"api_time":{"type":"integer","title":"Api Time","examples":[1606003200]},"acknowledgment":{"anyOf":[{"$ref":"#/components/schemas/UrgencyAcknowledgmentSchema"},{"type":"null"}]},"resolution":{"anyOf":[{"$ref":"#/components/schemas/UrgencyResolutionSchema"},{"type":"null"}]}},"type":"object","required":["device_id","device_position","device_time","id","api_time"],"title":"UrgencySchema"},"UsedVehicleCountSchema":{"properties":{"date":{"type":"string","title":"Date","examples":["20201122"]},"total_unique_vehicles":{"type":"integer","title":"Total Unique Vehicles"},"subscription_quota":{"type":"integer","title":"Subscription Quota"},"exceeded_limit":{"type":"boolean","title":"Exceeded Limit","readOnly":true}},"type":"object","required":["date","total_unique_vehicles","subscription_quota","exceeded_limit"],"title":"UsedVehicleCountSchema"},"UserSchema":{"properties":{"id":{"type":"string","title":"Id"},"_id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"superuser":{"type":"boolean","title":"Superuser"},"email":{"type":"string","title":"Email"},"date_added":{"type":"integer","title":"Date Added"},"roles":{"additionalProperties":{"type":"string"},"type":"object","title":"Roles","default":{}}},"type":"object","required":["id","_id","superuser","email","date_added"],"title":"UserSchema"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationStatus":{"type":"string","enum":["to_validate","validated","to_fix"],"title":"ValidationStatus"},"Vehicle":{"properties":{"id":{"type":"string","title":"Id"},"fleet_number":{"type":"string","title":"Fleet Number"},"license_plate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Plate"}},"type":"object","required":["id","fleet_number"],"title":"Vehicle"},"VehicleAmountSchema":{"properties":{"in_activity":{"type":"integer","title":"In Activity"},"archived":{"type":"integer","title":"Archived"},"immobilized":{"type":"integer","title":"Immobilized"}},"type":"object","required":["in_activity","archived","immobilized"],"title":"VehicleAmountSchema"},"VehicleEquipment":{"properties":{"equipment_id":{"type":"string","title":"Equipment Id"},"equipment_type":{"$ref":"#/components/schemas/EquipmentType"}},"type":"object","required":["equipment_id","equipment_type"],"title":"VehicleEquipment"},"VehicleMovementEndpointKind":{"type":"string","enum":["depot","stop","relief_point","arbitrary_point"],"title":"VehicleMovementEndpointKind"},"VehicleMovementEndpointSchema":{"properties":{"kind":{"$ref":"#/components/schemas/VehicleMovementEndpointKind"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref"},"coords":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Coords"}},"type":"object","required":["kind"],"title":"VehicleMovementEndpointSchema"},"VehicleMovementExistenceSchema":{"properties":{"has_any":{"type":"boolean","title":"Has Any"}},"type":"object","required":["has_any"],"title":"VehicleMovementExistenceSchema","description":"Whether the group holds any vehicle movement (HLP), across all dates.\n\nLets the UI tell \"this group never got HLP\" (show the onboarding block)\napart from \"no HLP on the selected day\" (show an empty grid)."},"VehicleMovementSchema":{"properties":{"id":{"type":"string","title":"Id"},"type":{"$ref":"#/components/schemas/VehicleMovementType"},"block_id":{"type":"string","title":"Block Id"},"block_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Label"},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id"},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id"},"start_date":{"type":"string","title":"Start Date","examples":["20201122"]},"scheduled_start":{"type":"string","format":"date-time","title":"Scheduled Start"},"scheduled_end":{"type":"string","format":"date-time","title":"Scheduled End"},"from":{"$ref":"#/components/schemas/VehicleMovementEndpointSchema"},"to":{"$ref":"#/components/schemas/VehicleMovementEndpointSchema"},"distance_m":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Distance M"},"shape":{"anyOf":[{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Shape"},"hastus_duty_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hastus Duty Identifier"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","type","block_id","start_date","scheduled_start","scheduled_end","from","to","created_at"],"title":"VehicleMovementSchema","description":"API response schema for a vehicle_movement.\n\nMirrors the domain model with the ``from`` alias preserved in the JSON\npayload (``from`` is a Python keyword so the field is named ``from_``)."},"VehicleMovementType":{"type":"string","enum":["pull_out","pull_in","deadhead","depot_transfer","refueling","relief_positioning"],"title":"VehicleMovementType"},"VehiclePublicSchema":{"properties":{"_id":{"type":"string","title":"Id"},"id":{"type":"string","title":"Id"},"capacity":{"anyOf":[{"type":"integer","maximum":999.0,"minimum":0.0},{"type":"null"}],"title":"Capacity"}},"additionalProperties":false,"type":"object","required":["_id","id"],"title":"VehiclePublicSchema"},"VehicleStatus":{"type":"string","enum":["active","archived","immobilized"],"title":"VehicleStatus"},"VehicleType":{"type":"string","enum":["bus","car","minibus","other"],"title":"VehicleType"},"VersionStates":{"type":"string","enum":["UP_TO_DATE","DEPRECATED","TO_UPDATE","BLOCKED"],"title":"VersionStates"},"VoipCallbackNotFound":{"properties":{"code":{"type":"string","const":"VOIP_CALLBACK_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"No VoIP callback with this id was found for the group","title":"Details"},"payload":{"$ref":"#/components/schemas/VoipCallbackNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"VoipCallbackNotFound"},"VoipCallbackNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"callback_id":{"type":"string","title":"Callback Id"}},"type":"object","required":["group_id","callback_id"],"title":"VoipCallbackNotFoundPayload"},"VoipCallbackSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Mongo identifier of the callback (URL-safe 24-char hex)"},"instavox_id":{"type":"string","title":"Instavox Id","description":"Original Instavox COMMAND_REQUEST id (used for dedupe)"},"sender_device_id":{"type":"string","title":"Sender Device Id","description":"Originating Instavox device id"},"sender_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender User Id","description":"Optional Instavox user id"},"type":{"$ref":"#/components/schemas/VoipCommandRequestType","description":"Command request type (1 = call alert, 2 = radio check)"},"received_at":{"type":"string","format":"date-time","title":"Received At","description":"UTC timestamp recorded when the request was received"},"is_resolved":{"type":"boolean","title":"Is Resolved","description":"Whether the operator has acknowledged the request","default":false},"instavox_device_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instavox Device Label","description":"Instavox device label at reception"},"pysae_device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pysae Device Id","description":"Pysae device_id paired with the sender Instavox device at reception"},"pysae_device_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pysae Device Label","description":"Pysae device display label at reception"},"vehicle_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Label","description":"Vehicle label resolved at reception via assigned_vehicle_id"},"driver_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Name","description":"Driver label resolved at reception via assigned_driver_id"}},"type":"object","required":["id","instavox_id","sender_device_id","type","received_at"],"title":"VoipCallbackSchema"},"VoipCommandRequestType":{"type":"integer","enum":[1,2],"title":"VoipCommandRequestType"},"VoipDeviceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"The id of the VoIP device"},"device_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Description","description":"Manufacturer-provided device description string (Instavox DataexDevice.DeviceDescription)."},"device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Name","description":"Human-readable user name attached to the VoIP endpoint (Instavox DataexDevice.UserName)."},"provider":{"$ref":"#/components/schemas/VoipProviderSchema","description":"The provider of the VoIP device"},"status":{"$ref":"#/components/schemas/VoipDeviceStatusSchema","description":"Last known status of the VoIP device"},"first_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Seen At","description":"UTC timestamp of the first time the device was seen"},"last_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen At","description":"UTC timestamp of the most recent event for the device"},"assigned_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Vehicle Id","description":"Identifier of the Pysae vehicle currently assigned to the device this VoIP endpoint is paired with, when known."}},"type":"object","required":["id","provider","status"],"title":"VoipDeviceSchema"},"VoipDeviceStatusSchema":{"type":"string","enum":["online","offline"],"title":"VoipDeviceStatusSchema"},"VoipGroupSettingsNotFound":{"properties":{"code":{"type":"string","const":"VOIP_GROUP_SETTINGS_NOT_FOUND","title":"Code"},"details":{"type":"string","const":"The group has no voip settings","title":"Details"},"payload":{"$ref":"#/components/schemas/VoipGroupSettingsNotFoundPayload"}},"type":"object","required":["code","details","payload"],"title":"VoipGroupSettingsNotFound"},"VoipGroupSettingsNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"VoipGroupSettingsNotFoundPayload"},"VoipProviderSchema":{"type":"string","enum":["instavox"],"title":"VoipProviderSchema"},"VoipProviderUnavailable":{"properties":{"code":{"type":"string","const":"VOIP_PROVIDER_UNAVAILABLE","title":"Code"},"details":{"type":"string","const":"The VoIP provider did not respond in time","title":"Details"},"payload":{"$ref":"#/components/schemas/VoipProviderUnavailablePayload"}},"type":"object","required":["code","details","payload"],"title":"VoipProviderUnavailable"},"VoipProviderUnavailablePayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"VoipProviderUnavailablePayload"},"WrongLogin":{"properties":{"code":{"type":"string","const":"WRONG_LOGIN","title":"Code"},"details":{"type":"string","const":"Your credentials are not recognized","title":"Details"},"payload":{"$ref":"#/components/schemas/WrongLoginPayload"}},"type":"object","required":["code","details","payload"],"title":"WrongLogin"},"WrongLoginPayload":{"properties":{},"type":"object","title":"WrongLoginPayload"},"pysae__api__devices__models__DeviceStatus":{"type":"string","enum":["IN_TRANSIT_TO","INCOMING_AT","STOPPED_AT"],"title":"DeviceStatus"},"pysae__api__drivers__schemas__DriverSchema":{"properties":{"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"driver_name":{"type":"string","title":"Driver Name"},"staff_number":{"type":"string","title":"Staff Number","default":""},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"comment":{"type":"string","title":"Comment"},"archived":{"type":"boolean","title":"Archived"}},"type":"object","required":["_id","id","driver_name","comment","archived"],"title":"DriverSchema"},"pysae__api__passenger_counts__router__GroupBy":{"type":"string","enum":["day","route"],"title":"GroupBy"},"pysae__api__punctuality__router__GroupBy":{"type":"string","enum":["day","route"],"title":"GroupBy"},"pysae__api__ratings__router__GroupBy":{"type":"string","enum":["group_id","driver_version"],"title":"GroupBy"},"pysae__api__trip_km__schemas__GroupBy":{"type":"string","enum":["day","route"],"title":"GroupBy"},"pysae__api__trip_tracking__router__GroupBy":{"type":"string","enum":["day","route"],"title":"GroupBy"},"pysae__api__trips__v4__schemas__DeviceStatus":{"type":"string","enum":["online","offline"],"title":"DeviceStatus"},"pysae__api__trips__v4__schemas__DriverSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"staff_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staff Number"}},"type":"object","required":["id"],"title":"DriverSchema"},"pysae__api__trips__v4__schemas__TripSchema":{"properties":{"id":{"type":"string","title":"Id"},"arrival_time":{"type":"number","title":"Arrival Time"},"departure_time":{"type":"number","title":"Departure Time"},"service_date":{"type":"string","title":"Service Date","examples":["20201122"]},"formatted_name":{"type":"string","title":"Formatted Name"},"route":{"$ref":"#/components/schemas/RouteSchema"},"first_stop":{"$ref":"#/components/schemas/TripStopSchema"},"last_stop":{"$ref":"#/components/schemas/TripStopSchema"},"temporality":{"$ref":"#/components/schemas/Temporality"},"passenger_count":{"anyOf":[{"$ref":"#/components/schemas/PCSchema"},{"type":"null"}]},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"headsign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headsign"},"end":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End"},"start":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"departure_stored":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Departure Stored"},"arrival_stored":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Arrival Stored"},"off_itinerary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Off Itinerary"},"tk":{"type":"number","title":"Tk"},"vk":{"type":"number","title":"Vk"},"percent_km":{"type":"integer","title":"Percent Km"},"off_itinerary_km":{"type":"number","title":"Off Itinerary Km"},"recorded_commercial_km":{"type":"number","title":"Recorded Commercial Km"},"unreliable_km":{"type":"number","title":"Unreliable Km"},"reliable_km":{"type":"number","title":"Reliable Km"},"delay":{"items":{"type":"integer"},"type":"array","title":"Delay"},"gtfs":{"items":{"$ref":"#/components/schemas/FileSchema"},"type":"array","title":"Gtfs"},"vehicles":{"items":{"$ref":"#/components/schemas/pysae__api__trips__v4__schemas__VehicleSchema"},"type":"array","title":"Vehicles"},"drivers":{"items":{"$ref":"#/components/schemas/pysae__api__trips__v4__schemas__DriverSchema"},"type":"array","title":"Drivers"},"devices":{"items":{"$ref":"#/components/schemas/DeviceSchema"},"type":"array","title":"Devices"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamSchema"},{"type":"null"}]},"teams":{"anyOf":[{"items":{"$ref":"#/components/schemas/TeamSchema"},"type":"array"},{"type":"null"}],"title":"Teams"},"trips":{"items":{"$ref":"#/components/schemas/pysae__api__trips__v4__schemas__TripSchema"},"type":"array","title":"Trips"},"updates":{"$ref":"#/components/schemas/UpdateSchema"},"service":{"$ref":"#/components/schemas/Service"},"problems":{"$ref":"#/components/schemas/Problems"},"status":{"$ref":"#/components/schemas/TripStatus","default":"no data"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed"}},"type":"object","required":["id","arrival_time","departure_time","service_date","formatted_name","route","first_stop","last_stop","temporality"],"title":"TripSchema"},"pysae__api__trips__v4__schemas__VehicleSchema":{"properties":{"id":{"type":"string","title":"Id"},"fleet_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fleet Number"},"license_plate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Plate"}},"type":"object","required":["id"],"title":"VehicleSchema"},"pysae__api__urgency__schemas__TripSchema":{"properties":{"id":{"type":"string","title":"Id"},"gtfs_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Gtfs Id","examples":["670f84254c28ffdaae0f462d"]},"start_date":{"type":"string","title":"Start Date","examples":["20201122"]}},"type":"object","required":["id","gtfs_id","start_date"],"title":"TripSchema"},"pysae__api__vehicles__schemas__VehicleSchema":{"properties":{"license_plate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Plate"},"fleet_number":{"type":"string","title":"Fleet Number"},"status":{"$ref":"#/components/schemas/VehicleStatus","default":"active"},"modified_at":{"type":"string","format":"date-time","title":"Modified At"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams"},"energy_type":{"anyOf":[{"$ref":"#/components/schemas/EnergyType"},{"type":"null"}]},"vehicle_type":{"anyOf":[{"$ref":"#/components/schemas/VehicleType"},{"type":"null"}]},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"capacity":{"anyOf":[{"type":"integer","maximum":999.0,"minimum":0.0},{"type":"null"}],"title":"Capacity"},"equipment":{"items":{"$ref":"#/components/schemas/VehicleEquipment"},"type":"array","title":"Equipment","default":[]},"_id":{"type":"string","title":"Id"},"id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]}},"additionalProperties":false,"type":"object","required":["fleet_number","_id","id"],"title":"VehicleSchema"},"pysae__common__http__base__RoleDependencyPayload__1":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","external_reader","driver","operator","admin"],"title":"Role Needed","default":["reader","external_reader","driver","operator","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__10":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","operator","driver","admin"],"title":"Role Needed","default":["reader","operator","driver","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__11":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","operator","technical","admin"],"title":"Role Needed","default":["reader","operator","technical","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__12":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","operator","admin"],"title":"Role Needed","default":["reader","operator","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__13":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","operator","limited_reader","admin"],"title":"Role Needed","default":["reader","operator","limited_reader","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__2":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["operator","driver","admin"],"title":"Role Needed","default":["operator","driver","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__3":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["operator","admin"],"title":"Role Needed","default":["operator","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__4":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","external_reader","limited_reader","operator","admin"],"title":"Role Needed","default":["reader","external_reader","limited_reader","operator","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__5":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["technical","reader","external_reader","limited_reader","driver","operator","admin"],"title":"Role Needed","default":["technical","reader","external_reader","limited_reader","driver","operator","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__6":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["reader","external_reader","limited_reader","driver","operator","admin"],"title":"Role Needed","default":["reader","external_reader","limited_reader","driver","operator","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__7":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["driver","admin"],"title":"Role Needed","default":["driver","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__8":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["technical","external_reader","reader","operator","limited_reader","admin"],"title":"Role Needed","default":["technical","external_reader","reader","operator","limited_reader","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependencyPayload__9":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given"},"role_needed":{"type":"array","const":["admin"],"title":"Role Needed","default":["admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload"},"pysae__common__http__base__RoleDependency__1":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__1"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__10":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__11":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__12":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__13":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__14":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__10"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__15":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__11"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__16":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__11"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__17":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__12"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__18":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__8"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__19":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__2":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__20":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__1"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__21":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__22":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__23":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__24":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__6"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__25":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__11"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__26":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__13"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__3":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__4":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__5":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__5"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__6":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__6"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__7":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__6"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__8":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__7"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"},"pysae__common__http__base__RoleDependency__9":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code"},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details"},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__8"}},"type":"object","required":["code","details","payload"],"title":"RoleDependency"}},"securitySchemes":{"SessionCookie":{"type":"apiKey","description":"Cookie: session_id=<session_id>","in":"cookie","name":"session_id"},"SessionBearerToken":{"type":"http","description":"Authorization: Bearer <session_id>","scheme":"bearer"},"OpenIDConnect":{"type":"openIdConnect","description":"Authorization: Bearer <jwt>","openIdConnectUrl":"https://dev-ebbcamyiet1cvkvr.eu.auth0.com/.well-known/openid-configuration"},"ApiKey":{"type":"http","description":"Authorization: Api-Key <api_key>","scheme":"bearer"}}},"servers":[{"url":"https://api.pysae.com","description":"prod"}]}