{"openapi":"3.1.0","info":{"title":"Pysae Internal API v4","version":"3.1.0"},"paths":{"/nav-data-processor-api/v4/groups/{group_id}/depots":{"get":{"tags":["depot","ndp"],"summary":"Find Depots","description":"**This endpoint allows you to get all depots from a group.**\n\nRole needed: reader, limited_reader, driver, external_reader, operator","operationId":"getDepotsNdp","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 Getdepotsndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__1"}],"title":"Response 403 Getdepotsndp"}}},"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"}},"/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, limited_reader, driver, external_reader, operator","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__1"}],"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},"post":{"tags":["depot"],"summary":"Create Depot","description":"**This endpoint allows you to create a depot for a group.**\n\nRole needed: operator","operationId":"postDepots","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepotCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdepots"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/depots/{depot_id}":{"put":{"tags":["depot"],"summary":"Update Depot","description":"**This endpoint allows you to put depot for a group.**\n\nRole needed: operator","operationId":"putDepot","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"depot_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the targeted depot.","examples":["670f84254c28ffdaae0f462d"],"title":"Depot Id"},"description":"The id of the targeted depot."},{"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/DepotCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__2"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdepot"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepotNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["depot"],"summary":"Delete Depot","description":"**This endpoint allows to delete an depot with its id.**\n\nRole needed: operator","operationId":"deleteDepot","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"depot_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the targeted depot.","examples":["670f84254c28ffdaae0f462d"],"title":"Depot Id"},"description":"The id of the targeted depot."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__2"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedepot"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepotNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getteams"}}},"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":["teams"],"summary":"Add a team to a group","description":"**This endpoint allows you to add a team to a group.**\n\nRole needed: admin","operationId":"postTeams","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/TeamCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Team"},"title":"Response Postteams"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamNameAlreadyTaken"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__5"},{"$ref":"#/components/schemas/NoUser"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postteams"}}},"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"}},"/api/v4/groups/{group_id}/teams/{team_id}":{"patch":{"tags":["teams"],"summary":"Update or archive a team of a group","description":"**This endpoint allows you to update or archive a team of a group.**\n\nRole needed: admin","operationId":"patchTeam","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","description":"Id of the team to update","title":"Team Id"},"description":"Id of the team to update"},{"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/TeamUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/Team"}},{"type":"null"}],"title":"Response Patchteam"}}}},"409":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TeamInUse"},{"$ref":"#/components/schemas/TeamNameAlreadyTaken"}],"title":"Response 409 Patchteam"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__6"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchteam"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TeamNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Patchteam"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/archival-configuration":{"get":{"tags":["archival_configuration"],"summary":"Return the group archival configuration.","description":"**This endpoint allows you to return the group archival configuration.**\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"getArchivalConfiguration","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":{"$ref":"#/components/schemas/ArchivalConfigurationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getarchivalconfiguration"}}},"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"},"delete":{"tags":["archival_configuration"],"summary":"Delete the group archival configuration.","description":"**This endpoint allows you to delete the group archival configuration.**\n\nRole needed: operator","operationId":"deleteArchivalConfiguration","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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletearchivalconfiguration"}}},"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"},"post":{"tags":["archival_configuration"],"summary":"Set the group archival configuration.","description":"**This endpoint allows you to set the group archival configuration.**\n\nRole needed: operator","operationId":"postArchivalConfiguration","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/ArchivalConfigurationSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postarchivalconfiguration"}}},"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"}},"/api/v4/groups/{group_id}/on-demand-services":{"get":{"tags":["on-demand-routes"],"summary":"List the on-demand service runs of a date","description":"**This endpoint allows you to list the on-demand services actually run on one date, with their passengers and their recorded passages.**\n\nOne entry per service run — a device on a route, from the start to the end — sorted by `started_at` descending. A device that ran two services on the same route the same day yields two entries. `ended_at` is null while a service runs, and stays null on a service the driver never ended, exactly as a duty without a checkout stays open. A date with no run comes back as an empty list, not an error, and so does an unknown `route_id`. `km` is always null for now: the kilometres are attributed per day and per route, not per run.\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: reader, operator","operationId":"getOnDemandServices","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":"service_date","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"Service date of the runs, in the group timezone","title":"Service Date"},"description":"Service date of the runs, in the group timezone"},{"name":"route_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Scope the runs to one on-demand route. Omit to return those of every route of the group.","title":"Route Id"},"description":"Scope the runs to one on-demand route. Omit to return those of every route of the group."},{"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/OnDemandServiceSchema"},"title":"Response Getondemandservices"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getondemandservices"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/version-driver-check":{"get":{"tags":["version-driver-check","ndp"],"summary":"Check whether the calling Driver app version is allowed.","description":"**Returns 200 if the Driver version is allowed by global semver specs and group min_driver_version. Returns 426 (Upgrade Required) otherwise, with a JSON payload `{code: DRIVER_VERSION_BLOCKED, payload: {reason, driver_version, min_version}}` where reason is `global_policy` or `group_min_version`. The same check on a WebSocket upgrade closes the connection with the application-defined close code 4426 (RFC 6455 4xxx range) and a reason `DRIVER_VERSION_BLOCKED:<reason>`. Designed to be called once at app boot by Driver V6+ to short-circuit obsolete clients before they hit any other endpoint.**","operationId":"getVersionDriverCheckNdp","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":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}}],"responses":{"204":{"description":"Successful Response"},"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"}},"/api/v4/groups/{group_id}/drivers/anonymise":{"post":{"tags":["Anonymisation"],"summary":"Anonymise archived drivers past the group's retention period","description":"**Anonymise drivers of the group whose archived flag is true and whose last activity is older than the group's retention_period (months).**","operationId":"postDriverAnonymise","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/AnonymisationRequestSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonymisationResultSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getapikeys"}}},"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":["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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postapikeys"}}},"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}/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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__10"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getapikey"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiKeyNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getapikey"}}},"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},"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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__10"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteapikey"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiKeyNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteapikey"}}},"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/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"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyNotFound"}}},"description":"Not Found"},"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/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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gethistoryeventcount"}}},"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/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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gethistoryevents"}}},"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/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: limited_reader, technical, external_reader, reader, operator","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__11"},{"$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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gethistoryvk"}}},"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/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: limited_reader, external_reader, reader, operator","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/pysae__common__http__base__RoleDependency__12"},{"$ref":"#/components/schemas/NoRole"}],"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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gethistorygtfsactive"}}},"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/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}},"/nav-data-processor-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":"getUserMeNdp","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"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoUser"}}},"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"}},"/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"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoUser"}}},"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/users/me":{"get":{"tags":["users"],"summary":"Get current user.","description":"**This endpoint allows to get the current user.**","operationId":"getGlobalUserMeNdp","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":{"$ref":"#/components/schemas/UserSchema"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-unique-id.segments":["global"],"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/api/v4/users/me":{"get":{"tags":["users"],"summary":"Get current user.","description":"**This endpoint allows to get the current user.**","operationId":"getGlobalUserMe","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":{"$ref":"#/components/schemas/UserSchema"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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"},"put":{"tags":["users"],"summary":"Update current user.","description":"**This endpoint allows to update the current user.**\n\nCan only update name.","operationId":"putGlobalUserMe","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/UserRestrictedUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoUser"}}},"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"}},"/api/v4/users":{"get":{"tags":["users"],"summary":"Return the users with their roles for each group_id.","description":"**This endpoint allows to get all users.**","operationId":"getUsers","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/UserSchema"},"title":"Response Getusers"}}}},"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"},"post":{"tags":["users"],"summary":"Create new user.","description":"**This endpoint allows to create a new user.**","operationId":"postUsers","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/UserCreateSchema"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateSchema"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEmailAlreadyTaken"}}},"description":"Conflict"},"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"}},"/api/v4/users/{user_id}":{"put":{"tags":["users"],"summary":"Update user.","description":"**This endpoint allows to update a user.**","operationId":"putUser","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the user you want to update.","title":"User Id"},"description":"The id of the user you want to update."},{"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/UserUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFound"}}},"description":"Not Found"},"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"},"delete":{"tags":["users"],"summary":"Delete user.","description":"**This endpoint allows to delete a user.**","operationId":"deleteUser","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the user you want to delete.","title":"User Id"},"description":"The id of the user you want to delete."},{"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"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFound"}}},"description":"Not Found"},"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"}},"/api/v4/config/driver/versions":{"get":{"tags":["config"],"summary":"Get the document for each versions states based on semver","description":"**This endpoint allows you to query the latest document in pysae.config_device_semver**","operationId":"getConfigDriverVersions","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":{"anyOf":[{"$ref":"#/components/schemas/ConfigSchema"},{"type":"null"}],"title":"Response Getconfigdriverversions"}}}},"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"},"put":{"tags":["config"],"summary":"Modify requires versions for driver","description":"**This endpoint allows you to modify the semver version in deprecated and/or to_update for the most recent document in pysae.config_device_semver**","operationId":"putConfigDriverVersions","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":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_putConfigDriverVersions"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigSchema"}}}},"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"}},"/api/v4/config/environment":{"get":{"tags":["config"],"summary":"Get environment configuration","description":"**This endpoint allows you to get environment configuration**","operationId":"getConfigEnvironment","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentConfigSchema"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/duties":{"post":{"tags":["duties"],"summary":"Create a duty checked in","description":"<h1><b>This endpoint is deprecated, use <code>/nav-data-processor-api/v5/groups/{group_id}/devices/{device_id}/duties</code> instead.</b></h1>\n\n**This endpoint allows you to create a duty checked in**\n\nRole needed: driver","operationId":"postDeviceDutiesNdp","deprecated":true,"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":"device_id","in":"path","required":true,"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":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DutyDeviceCreateSchemaV4"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DutyId"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdevicedutiesndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postdevicedutiesndp"}}},"description":"Not Found"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Conflict"},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/duties/{duty_id}/checkout":{"post":{"tags":["duties"],"summary":"Checkout a duty.","description":"**This endpoint allows you to checkout from a duty.**\n\nRole needed: driver","operationId":"postDeviceDutyCheckoutNdp","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":"Id of the duty to checkout from.","examples":["670f84254c28ffdaae0f462d"],"title":"Duty Id"},"description":"Id of the duty to checkout from."},{"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":"device_id","in":"path","required":true,"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":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DutyCheckOutSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdevicedutycheckoutndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Not Found"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/gtfs/{gtfs_id}/trips":{"get":{"tags":["gtfs"],"summary":"Get trips by GTFS","description":"**This endpoint allows to get the list of trips for a specific gtfs_id.**","operationId":"getGtfsTripsNdp","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 Getgtfstripsndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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},"put":{"summary":"Create or replace one or multiple trips","description":"**This endpoint allows to create or replace one or multiple trip for a specific gtfs_id.**\n\nRole needed: operator","operationId":"putGtfsTrips","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":"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":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TripGTFSSchema"},"title":"Trips"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TripGTFSSchema"},"title":"Response Putgtfstrips"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__14"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfstrips"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TeamNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putgtfstrips"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsTripNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api","x-public":true},"put":{"summary":"Create or replace trip","description":"**This endpoint allows to create or replace a trip for a specific gtfs_id.**\n\nRole needed: operator","operationId":"putGtfsTrip","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":"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","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripGTFSSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripGTFSSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__14"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfstrip"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TeamNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putgtfstrip"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete a trip","description":"**This endpoint allows to delete a trip.**\n\nRole needed: operator","operationId":"deleteGtfsTrip","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 to delete","title":"Trip Id"},"description":"The id of the trip to delete"},{"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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__15"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfstrip"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsTripNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/planning/cadencity":{"put":{"tags":["planning","cadencity"],"summary":"Import a Cadencity planning export.","description":"Receive a Cadencity planning export and inject it into the group's         plannings. Cadencity pushes to this endpoint (authenticated as a         technical account). Only dates with at least one resolved line are         replaced; a date whose every line is unresolved keeps its existing         planning. Lines whose `staff_number` is unknown are skipped and lines         whose `license_plate` is unknown are imported without the vehicle;         both are reported in the response. When         `CADENCITY_MAX_SKIPPED_STAFF_RATIO` is set and the share of unresolved         staff exceeds it, the import is refused with 422         `CADENCITY_TOO_MANY_UNRESOLVED_STAFF` before any write.\n\nRole needed: technical, admin","operationId":"putPlanningCadencity","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadencityPlanningExportSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadencityImportResponse"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__16"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putplanningcadencity"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyUnresolvedStaff"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getnotificationsmscount"}}},"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}/devices/{device_id}/location":{"get":{"tags":["location"],"summary":"Get Location","description":"**This endpoint allows you to get the location of a device.**\n\nRole needed: driver","operationId":"getDeviceLocationNdp","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":"device_id","in":"path","required":true,"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":{"anyOf":[{"$ref":"#/components/schemas/LocationSchema"},{"type":"null"}],"title":"Response Getdevicelocationndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getdevicelocationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicelocationndp"}}},"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"},"put":{"tags":["location"],"summary":"Update Location","description":"**This endpoint allows you to update the location of a device.**\n\nRole needed: driver","operationId":"putDeviceLocationNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationUpdateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdevicelocationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicelocationndp"}}},"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"},"delete":{"tags":["location"],"summary":"Delete Location","description":"**This endpoint allows you to delete the location of a device.**\n\nRole needed: driver","operationId":"deleteDeviceLocationNdp","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":"device_id","in":"path","required":true,"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":{"anyOf":[{"$ref":"#/components/schemas/LocationSchema"},{"type":"null"}],"title":"Response Deletedevicelocationndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedevicelocationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedevicelocationndp"}}},"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"}},"/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: limited_reader, technical, external_reader, reader, operator","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__11"},{"$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: limited_reader, external_reader, reader, operator","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/pysae__common__http__base__RoleDependency__12"},{"$ref":"#/components/schemas/NoRole"}],"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: limited_reader, external_reader, reader, operator","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/pysae__common__http__base__RoleDependency__17"},{"$ref":"#/components/schemas/NoRole"}],"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: limited_reader, external_reader, reader, operator","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/pysae__common__http__base__RoleDependency__17"},{"$ref":"#/components/schemas/NoRole"}],"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/duties/alert-notification-long-duties":{"post":{"tags":["duties"],"summary":"Alert on long-running duties without checkout","description":"**Send SMS alerts for duties exceeding configured threshold**\n\nCalled by Prefect scheduler to send SMS alerts for duties that have been active (checked-in without checkout) for too long. The threshold is configurable per group via the message_notifications integration. Only duties with message_alert_sent=None will be alerted.","operationId":"postDutyAlertNotificationLongDuties","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group 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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-scopes":"duties.alert-notification-long-duties","x-api-version":4,"x-path-prefix":"/api"}},"/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: limited_reader, technical, external_reader, reader, operator","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__11"},{"$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}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/trip-filter":{"get":{"tags":["trip-filter"],"summary":"Get Trip Filter","description":"**This endpoint allows you to get the trip filter of a device.**\n\nRole needed: driver, operator","operationId":"getDeviceTripFilterNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"type":"null"}],"title":"Response Getdevicetripfilterndp"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicetripfilterndp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Getdevicetripfilterndp"}}},"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"},"put":{"tags":["trip-filter"],"summary":"Update Trip Filter","description":"**This endpoint allows you to update the trip filter of a device.**\n\nRole needed: driver, operator","operationId":"putDeviceTripFilterNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"}],"title":"Trip Filter"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"}],"title":"Response Putdevicetripfilterndp"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicetripfilterndp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Putdevicetripfilterndp"}}},"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"},"delete":{"tags":["trip-filter"],"summary":"Delete Trip Filter","description":"**This endpoint allows you to delete the trip filter of a device.**\n\nRole needed: driver, operator","operationId":"deleteDeviceTripFilterNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"type":"null"}],"title":"Response Deletedevicetripfilterndp"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedevicetripfilterndp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Deletedevicetripfilterndp"}}},"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"}},"/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: admin, reader, operator","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/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"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: limited_reader, technical, external_reader, admin, operator, reader","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__11"},{"$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: limited_reader, technical, external_reader, admin, operator, reader","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":""}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TripNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Gettrip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__19"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Gettrip"}}},"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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getdevicehistory"}}},"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}/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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getstattriptracking"}}},"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}/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: limited_reader, external_reader, reader, operator","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"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getexporttriptracking"}}},"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}/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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getstattripkm"}}},"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}/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: limited_reader, external_reader, reader, operator","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;;"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getexporttripkm"}}},"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}/config/distance-thresholds":{"get":{"tags":["config"],"summary":"Get configuration of the distance-thresholds","description":"Role needed: operator","operationId":"getConfigDistanceThresholds","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":{"$ref":"#/components/schemas/DistanceThresholdsConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigdistancethresholds"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the distance-thresholds","description":"Role needed: operator","operationId":"patchConfigDistanceThresholds","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/DistanceThresholdsConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistanceThresholdsConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchconfigdistancethresholds"}}},"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"}},"/api/v4/groups/{group_id}/config/driver-app":{"get":{"tags":["config"],"summary":"Get configuration of the driver-app","description":"Role needed: operator","operationId":"getConfigDriverApp","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":{"$ref":"#/components/schemas/DriverAppConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigdriverapp"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the driver-app","description":"Role needed: operator","operationId":"patchConfigDriverApp","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/DriverAppConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverAppConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchconfigdriverapp"}}},"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"}},"/api/v4/groups/{group_id}/config/info-app":{"get":{"tags":["config"],"summary":"Get configuration of the info-app","description":"Role needed: operator","operationId":"getConfigInfoApp","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":{"$ref":"#/components/schemas/InfoAppConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfiginfoapp"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the info-app","description":"Role needed: operator","operationId":"patchConfigInfoApp","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/InfoAppConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoAppConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchconfiginfoapp"}}},"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"}},"/api/v4/groups/{group_id}/config/reports":{"get":{"tags":["config"],"summary":"Get configuration of the reports","description":"Role needed: operator","operationId":"getConfigReports","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":{"$ref":"#/components/schemas/ReportsConfigSchema-Output"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigreports"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the reports","description":"Role needed: operator","operationId":"patchConfigReports","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/ReportsConfigSchema-Input"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportsConfigSchema-Output"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchconfigreports"}}},"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"}},"/api/v4/groups/{group_id}/config/root":{"get":{"tags":["config"],"summary":"Get configuration of the root","description":"Role needed: operator","operationId":"getConfigRoot","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":{"$ref":"#/components/schemas/RootConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigroot"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the root","description":"Role needed: operator","operationId":"patchConfigRoot","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/RootConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RootConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchconfigroot"}}},"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"}},"/api/v4/groups/{group_id}/config/routes":{"get":{"tags":["config"],"summary":"Get configuration of the routes","description":"Role needed: operator","operationId":"getConfigRoutes","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":{"$ref":"#/components/schemas/RoutesConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigroutes"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the routes","description":"Role needed: operator","operationId":"patchConfigRoutes","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/RoutesConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutesConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__20"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Patchconfigroutes"}}},"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"}},"/api/v4/groups/{group_id}/config/trips":{"get":{"tags":["config"],"summary":"Get configuration of the trips","description":"Role needed: operator","operationId":"getConfigTrips","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":{"$ref":"#/components/schemas/TripsConfigSchema-Output"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigtrips"}}},"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"},"patch":{"tags":["config"],"summary":"Update configuration of the trips","description":"Role needed: operator","operationId":"patchConfigTrips","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/TripsConfigSchema-Input"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripsConfigSchema-Output"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchconfigtrips"}}},"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"}},"/api/v4/groups/{group_id}/config/features":{"get":{"tags":["config"],"summary":"Get the features a group has access to","operationId":"getConfigFeatures","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/Feature"},"title":"Response Getconfigfeatures"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the feature a group has access to","description":"**This endpoint allows to configure which locked (payed) features has access to.**","operationId":"putConfigFeatures","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/Feature"},"title":"Features"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/config/memory-use-limit":{"get":{"tags":["config"],"summary":"Get the group memory use limit","operationId":"getConfigMemoryUseLimit","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":{"$ref":"#/components/schemas/LimitSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the group memory use limit","description":"**This endpoint allows to configure group's memory use limit.**","operationId":"putConfigMemoryUseLimit","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/config/user-limit":{"get":{"tags":["config"],"summary":"Get the user limit of a whole group","operationId":"getConfigUserLimit","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":{"$ref":"#/components/schemas/UserLimitConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the user limit of a whole group","description":"**This endpoint allows to configure the user limit for the whole group**","operationId":"putConfigUserLimit","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLimitSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/config/notification-settings":{"get":{"tags":["config"],"summary":"Get the group notification settings","operationId":"getConfigNotificationSettings","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":{"$ref":"#/components/schemas/MessageNotificationsConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the group notification settings","description":"**This endpoint allows to configure group's notification settings.**","operationId":"putConfigNotificationSettings","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotificationsConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/config/gtfs-rt":{"get":{"tags":["config"],"summary":"Get the public GTFS-RT feed activation state","description":"**Returns the client-controlled toggle state (`active`) only — NOT the feature availability. `active` and availability (`Feature.GTFS_RT` in the group features) are orthogonal: read availability from the group features list. The feed is publicly served only when both are true.**\n\nRole needed: operator","operationId":"getConfigGtfsRt","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":{"$ref":"#/components/schemas/GtfsRtConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfiggtfsrt"}}},"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"},"put":{"tags":["config"],"summary":"Enable or disable the public GTFS-RT feed","description":"**Self-service toggle for the public GTFS-RT feed. Requires the GTFS-RT feature to be available (unlocked by Pysae) — returns 403 otherwise.**\n\nRole needed: operator","operationId":"putConfigGtfsRt","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/GtfsRtConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsRtConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__21"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Putconfiggtfsrt"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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"}},"/api/v4/groups/{group_id}/config/display-info":{"get":{"tags":["config"],"summary":"Get the public 'display-info' display activation state","description":"**Returns the client-controlled toggle state (`active`) only — NOT the feature availability, which is read from the group features list. The display is publicly served only when both are true.**\n\nRole needed: operator","operationId":"getConfigDisplayInfo","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":{"$ref":"#/components/schemas/DisplayConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigdisplayinfo"}}},"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"},"put":{"tags":["config"],"summary":"Enable or disable the public 'display-info' display","description":"**Self-service toggle for the public display. Requires the corresponding feature to be available (unlocked by Pysae) — returns 403 otherwise.**\n\nRole needed: operator","operationId":"putConfigDisplayInfo","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/DisplayConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisplayConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__21"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Putconfigdisplayinfo"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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"}},"/api/v4/groups/{group_id}/config/display-screen":{"get":{"tags":["config"],"summary":"Get the public 'display-screen' display activation state","description":"**Returns the client-controlled toggle state (`active`) only — NOT the feature availability, which is read from the group features list. The display is publicly served only when both are true.**\n\nRole needed: operator","operationId":"getConfigDisplayScreen","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":{"$ref":"#/components/schemas/DisplayConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getconfigdisplayscreen"}}},"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"},"put":{"tags":["config"],"summary":"Enable or disable the public 'display-screen' display","description":"**Self-service toggle for the public display. Requires the corresponding feature to be available (unlocked by Pysae) — returns 403 otherwise.**\n\nRole needed: operator","operationId":"putConfigDisplayScreen","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/DisplayConfigSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisplayConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__21"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Putconfigdisplayscreen"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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"}},"/api/v4/groups/{group_id}/config/min-driver-version":{"get":{"tags":["config"],"summary":"Get the minimum driver version for a group","operationId":"getConfigMinDriverVersion","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/MinDriverVersionSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the minimum driver version for a group","description":"**This endpoint allows admins to set the minimum driver app version. Devices below this version will be blocked (HTTP 426).**","operationId":"putConfigMinDriverVersion","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MinDriverVersionSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MinDriverVersionSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/config/device-limit":{"get":{"tags":["config"],"summary":"Get the group device limit","operationId":"getConfigDeviceLimit","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":{"$ref":"#/components/schemas/DeviceLimitSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the group device limit","description":"**This endpoint allows to configure group's device limit.**","operationId":"putConfigDeviceLimit","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceLimitSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/config/equipped-vehicles":{"get":{"tags":["config"],"summary":"Get the group equipped vehicles number","operationId":"getConfigEquippedVehicles","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":{"$ref":"#/components/schemas/EquippedVehiclesConfigSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"put":{"tags":["config"],"summary":"Configure the group equipped vehicles number","description":"**This endpoint allows to configure group's equipped vehicles number.**","operationId":"putConfigEquippedVehicles","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquippedVehiclesSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/ratings":{"post":{"tags":["drivers"],"summary":"Create a rating for a specific driver_version.","description":"Role needed: driver","operationId":"postRatings","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__22"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postratings"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"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/ratings":{"get":{"tags":["drivers"],"summary":"Get all ratings.","operationId":"getGlobalRatings","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__api__ratings__router__GroupBy"},{"type":"null"}],"title":"Group By"}},{"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":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RatingSchema"}},{"type":"array","items":{"$ref":"#/components/schemas/RatingByDriverVersionSchema"}},{"type":"array","items":{"$ref":"#/components/schemas/RatingByGroupSchema"}}],"title":"Response Getglobalratings"}}}},"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"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/delete-invalid-ref":{"patch":{"summary":"Delete invalids id references for a given gtfs resource.","description":"**This endpoint allows to delete invalid references for a given gtfs resource.**\n\nReceive a gtfs resource and delete all invalid references.\n\nRole needed: operator","operationId":"patchGtfsDeleteInvalidRef","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"name":"gtfs-resource","in":"query","required":true,"schema":{"$ref":"#/components/schemas/GtfsResourceSchema"}},{"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/DeleteInvalidRefSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchgtfsdeleteinvalidref"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/integrations":{"get":{"tags":["integration","ndp"],"summary":"Get all group integrations","description":"**This endpoint allows you to get all group integrations.**\n\nRole needed: driver, admin","operationId":"getIntegrationsNdp","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":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationType"},{"type":"null"}],"title":"Type"}},{"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":{"$ref":"#/components/schemas/IntegrationSchema"},"title":"Response Getintegrationsndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__23"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationsndp"}}},"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"}},"/api/v4/groups/{group_id}/integrations":{"get":{"tags":["integration"],"summary":"Get all group integrations","description":"**This endpoint allows you to get all group integrations.**\n\nRole needed: driver, admin","operationId":"getIntegrations","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":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationType"},{"type":"null"}],"title":"Type"}},{"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":{"$ref":"#/components/schemas/IntegrationSchema"},"title":"Response Getintegrations"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__23"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrations"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/integrations/{integration}":{"get":{"tags":["integration","ndp"],"summary":"Get one group integration by id.","description":"**This endpoint allows you to get one group integration by id.**\n\nRole needed: driver, admin","operationId":"getIntegrationNdp","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":"integration","in":"path","required":true,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"title":"Integration"}},{"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/IntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationndp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationndp"}}},"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"}},"/api/v4/groups/{group_id}/integrations/{integration}":{"get":{"tags":["integration"],"summary":"Get one group integration by id.","description":"**This endpoint allows you to get one group integration by id.**\n\nRole needed: driver, admin","operationId":"getIntegration","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":"integration","in":"path","required":true,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"title":"Integration"}},{"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/IntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegration"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegration"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete group integration.","description":"**This endpoint allows you to delete a group integration.**\n\nRole needed: admin","operationId":"deleteIntegration","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"integration","in":"path","required":true,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"title":"Integration"}},{"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":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegration"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegration"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/{integration_id}":{"put":{"tags":["integration"],"summary":"Create or replace group integration.","description":"**This endpoint allows you to create or replace a group integration.**\n\nRole needed: admin","operationId":"putIntegration","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"title":"Integration 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":"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/Integration","description":"integration data","examples":[{"enabled":true,"ip_address":"192.168.1.3","port":33334}]}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegration"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegration"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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: technical, admin, operator, reader","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/pysae__common__http__base__RoleDependency__27"},{"$ref":"#/components/schemas/NoRole"}],"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},"post":{"tags":["voip"],"summary":"Record a new VoIP callback","description":"**Persist a COMMAND_REQUEST callback. The Instavox id is used for dedupe — a second POST with the same instavox_id is a silent no-op and returns the already-stored callback. The Mongo id (returned in the response) is what to use in subsequent URLs.**\n\nFeature needed: voip\n\nRole needed: technical, admin, operator","operationId":"postVoipCallbacks","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/VoipCallbackCreateSchema"}}}},"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__29"}],"title":"Response 403 Postvoipcallbacks"}}},"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"}},"/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: technical, admin, operator, reader","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/pysae__common__http__base__RoleDependency__28"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getvoipcallback"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VoipCallbackNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"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},"put":{"tags":["voip"],"summary":"Replace a VoIP callback identified by its Mongo id","description":"**Replace the full state of an existing callback.**\n\nFeature needed: voip\n\nRole needed: technical, admin, operator","operationId":"putVoipCallback","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipCallbackCreateSchema"}}}},"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__30"}],"title":"Response 403 Putvoipcallback"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipCallbackInstavoxIdConflict"}}},"description":"Conflict"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VoipCallbackNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putvoipcallback"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"patch":{"tags":["voip"],"summary":"Partially update a VoIP callback (by Mongo id)","description":"**Typical use: flip is_resolved when the operator acknowledges the request.**\n\nFeature needed: voip\n\nRole needed: technical, admin, operator","operationId":"patchVoipCallback","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipCallbackUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipCallbackSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VoipCallbackNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Patchvoipcallback"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__31"}],"title":"Response 403 Patchvoipcallback"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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.connected_at is more recent than the group's configured delay (delay_device_online, 120 seconds by default; delay_device_online_router and delay_device_online_telematic apply to their respective equipment types).","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.connected_at is more recent than the group's configured delay (delay_device_online, 120 seconds by default; delay_device_online_router and delay_device_online_telematic apply to their respective equipment types). An unknown group_id returns 404, where it used to return an empty list.","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.","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"}],"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"}}}},"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/devices/versions-stats":{"get":{"tags":["devices","stats"],"summary":"Get device version statistics","description":"**This endpoint allows you to retrieve statistics for each device version**","operationId":"getDeviceVersionsStats","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":"object","additionalProperties":{"$ref":"#/components/schemas/DeviceVersionStatsSchema"},"title":"Response Getdeviceversionsstats"}}}},"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"}},"/api/v4/devices/count":{"get":{"tags":["devices","stats"],"summary":"Get devices counts for every groups","description":"**This endpoint allows you to retrieve devices counts for each group**","operationId":"getDeviceCount","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":"object","additionalProperties":{"type":"integer"},"title":"Response Getdevicecount"}}}},"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"}},"/nav-data-processor-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":"getDevicesNdp","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 Getdevicesndp"}}}},"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"},"post":{"tags":["devices"],"summary":"Create a device entity","description":"**This endpoint allows you to create a device entity.**\n\nRole needed: operator","operationId":"postDevicesNdp","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/CreateDeviceSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAllSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__35"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Postdevicesndp"}}},"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"}},"/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},"post":{"tags":["devices"],"summary":"Create a device entity","description":"**This endpoint allows you to create a device entity.**\n\nRole needed: operator","operationId":"postDevices","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/CreateDeviceSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAllSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__35"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Postdevices"}}},"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"}},"/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/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"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},"put":{"tags":["devices"],"summary":"Update device from op","description":"**This endpoint allows you to update device**\n\nRole needed: operator","operationId":"putDevice","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/DeviceUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAllSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevice"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__32"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Putdevice"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}":{"put":{"tags":["devices"],"summary":"Update device from op","description":"**This endpoint allows you to update device**\n\nRole needed: operator","operationId":"putDeviceNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/DeviceUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAllSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicendp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__32"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Putdevicendp"}}},"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"}},"/api/v4/groups/{group_id}/devices/mode":{"patch":{"tags":["devices"],"summary":"Update the drive mode of a batch of devices","description":"**This endpoint allows you to update the drive mode of a batch of devices in a single request.**\n\n- Processing is resilient per device: a device that cannot be updated (not found, outside your team scope) is reported in `failed` and does not prevent the other devices from being updated.\n- Applying a mode already active on a device is a success (no-op).\n- Switching mode resets the device trip filter to dead run, like the unitary device update.\n\nRole needed: operator","operationId":"patchDeviceMode","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":"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceBulkModeUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceBulkModeResultSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchdevicemode"}}},"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"}},"/api/v4/groups/{group_id}/devices/{device_id}/voip":{"patch":{"tags":["devices"],"summary":"Assign or unassign the VoIP endpoint paired with a device","description":"**Send a body with the VoIP provider+id to pair the device with a VoIP endpoint, or send `null` to unpair it.**\n\nRole needed: operator","operationId":"patchDeviceVoip","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceVoipSchema"},{"type":"null"}],"title":"Voip"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAllSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Patchdevicevoip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__32"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Patchdevicevoip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/devices/{device_id}/archive":{"put":{"tags":["devices"],"summary":"Archive device","description":"**This endpoint allows you to archive a device.**\n\nRole needed: operator","operationId":"putDeviceArchive","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__33"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdevicearchive"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicearchive"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/devices/{device_id}/unarchive":{"put":{"tags":["devices"],"summary":"Unarchive device","description":"**This endpoint allows you to unarchive a device.**\n\nRole needed: operator","operationId":"putDeviceUnarchive","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__34"},{"$ref":"#/components/schemas/QuotaDevicesReached"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdeviceunarchive"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdeviceunarchive"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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: limited_reader, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getstatdailydevices"}}},"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}},"/nav-data-processor-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":"getGtfsAgenciesNdp","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 Getgtfsagenciesndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsAgencyNotFound"}}},"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},"put":{"summary":"Get gtfs agency","description":"**This endpoint allows to update or create an agency for a specific gtfs_id and agency_id.**\n\nRole needed: operator","operationId":"putGtfsAgency","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"type":"string","title":"Gtfs Id"}},{"name":"agency_id","in":"path","required":true,"schema":{"type":"string","title":"Agency 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/AgencyGTFSSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgencyGTFSSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfsagency"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete gtfs agency","description":"**This endpoint allows to delete an agency for a specific gtfs_id and agency_id.**\n\nRole needed: operator","operationId":"deleteGtfsAgency","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"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":"agency_id","in":"path","required":true,"schema":{"type":"string","title":"Agency Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__36"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfsagency"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsAgencyNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/qrcodes":{"get":{"tags":["qrcodes"],"summary":"Returns a QR code as png","operationId":"getQrcodes","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"content","in":"query","required":true,"schema":{"type":"string","contentMediaType":"application/octet-stream","title":"Content"}},{"name":"filename","in":"query","required":true,"schema":{"type":"string","title":"Filename"}},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},{"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":{}}}},"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"},"post":{"tags":["qrcodes"],"summary":"Returns a zip folder containing QR codes","description":"**QR codes are made from the content with an optional label**","operationId":"postQrcodes","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":{"type":"array","items":{"$ref":"#/components/schemas/QrCodeSchema"},"title":"Qrcodes"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"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"}},"/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: admin, reader, limited_reader, external_reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Gettripdetailsfeed"}}},"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}/trip-populate":{"post":{"tags":["trips","ndp"],"summary":"Add trips from the given date to current group state.","description":"**This endpoint allows to populate trips from the given date to the current group state**\n\nRole needed: admin","operationId":"postTripPopulateNdp","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","format":"date","description":"Date to populate trips from current gtfs to","title":"Date"},"description":"Date to populate trips from current gtfs to"},{"name":"force","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TripPopulateForceMode","description":"Force the population to actually occurs","default":"false"},"description":"Force the population to actually occurs"},{"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/pysae__common__http__base__RoleDependency__4"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Posttrippopulatendp"}}},"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"}},"/api/v4/groups/{group_id}/trip-populate":{"post":{"tags":["trips"],"summary":"Add trips from the given date to current group state.","description":"**This endpoint allows to populate trips from the given date to the current group state**\n\nRole needed: admin","operationId":"postTripPopulate","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","format":"date","description":"Date to populate trips from current gtfs to","title":"Date"},"description":"Date to populate trips from current gtfs to"},{"name":"force","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TripPopulateForceMode","description":"Force the population to actually occurs","default":"false"},"description":"Force the population to actually occurs"},{"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/pysae__common__http__base__RoleDependency__4"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Posttrippopulate"}}},"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"}},"/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: driver, external_reader, reader, operator","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__37"}],"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: driver, operator","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__38"}],"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: driver, external_reader, reader, operator","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__37"}],"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: driver, operator","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__38"}],"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: driver, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__39"}],"title":"Response 403 Getmessagendp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"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}},"/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: driver, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__39"}],"title":"Response 403 Getmessage"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"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},"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"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__40"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchmessage"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"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}/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/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"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: driver, operator","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"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__41"}],"title":"Response 403 Patchmessagerecipientndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"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}},"/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: driver, operator","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"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__41"}],"title":"Response 403 Patchmessagerecipient"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotFound"}}},"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/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: driver, external_reader, reader, operator","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__37"}],"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}/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/users/{user_id}/password/token":{"post":{"tags":["password"],"summary":"Generates OTP token","description":"**\nGenerates password reset token and sends it by mail if an account\nexists for the email address and recaptcha response is valid.\nReturns expiration date on success.\nCalled as a superuser, returns token in addition.\n**","operationId":"postUserPasswordToken","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"email","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Email"}},{"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":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TokenRequestSchema"},{"type":"null"}],"title":"Token Req"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFound"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetUnavailable"}}},"description":"Conflict"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WrongRecaptcha"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingRecaptcha"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/users/{user_id}/password":{"put":{"tags":["password"],"summary":"Replaces user password","description":"**Authenticate password change with a token or session.**","operationId":"putUserPassword","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User 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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PasswordChangeAuthSchema"},{"$ref":"#/components/schemas/PasswordChangeByTokenSchema"}],"title":"Change"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidToken"}}},"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"}},"/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: limited_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__42"}],"title":"Response 403 Getstatpunctuality"}}},"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}/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: limited_reader, reader, operator","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"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__42"}],"title":"Response 403 Getexportpunctuality"}}},"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}/gtfs/{gtfs_id}/generate-shapes":{"patch":{"summary":"Generate Shapes","description":"**This endpoint generates crow-flies (straight line) shapes for trips without a shape, grouped by stop sequence.**\n\nRole needed: operator","operationId":"patchGtfsGenerateShapes","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"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/TaskIdSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchgtfsgenerateshapes"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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/pysae__common__http__base__RoleDependency__43"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getgtfsgenerateshape"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskFailed"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskNotFound"}}},"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}/devices/{device_id}/vehicle-load":{"put":{"tags":["passenger-count"],"summary":"Set vehicle load","description":"**This endpoint allows you to set current vehicle load**\n\nRole needed: driver","operationId":"putDeviceVehicleLoadNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleLoadSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdevicevehicleloadndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicevehicleloadndp"}}},"description":"Not Found"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Conflict"},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/passenger-count":{"post":{"tags":["passenger-count"],"summary":"Create a passenger-count","description":"**This endpoint allows you to create a passenger-count**\n\nRole needed: driver","operationId":"postDevicePassengerCountNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PassengerCountCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdevicepassengercountndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postdevicepassengercountndp"}}},"description":"Not Found"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPErrorSchema"}}},"description":"Conflict"},"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"}},"/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},"put":{"tags":["rail"],"summary":"Attach a stop of the network to a rail station.","description":"**Create or refresh a `(stop_id, uic)` link, idempotently.**\n\n- Requires the `rail_data` feature and the `admin` role.\n- Re-submitting an existing link refreshes its `stop_name` snapshot.\n- An unknown UIC code is refused with `RAIL_STATION_NOT_FOUND`.\n- A station absent from the rail store answers immediately with `ingestion_status: pending` and is ingested asynchronously; poll the list until it turns `ready` (or `not_found` when no train serves it).\n\nFeature needed: rail_data\n\nRole needed: admin","operationId":"putRailStationLinks","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/RailStationLinkPutSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RailStationLinkSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RailStationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putrailstationlinks"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__44"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putrailstationlinks"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/rail/station-links/{stop_id}/{uic}":{"delete":{"tags":["rail"],"summary":"Detach a stop of the network from a rail station.","description":"**Delete the `(stop_id, uic)` link.**\n\n- Requires the `rail_data` feature and the `admin` role.\n- Deleting a link that does not exist responds 404.\n\nFeature needed: rail_data\n\nRole needed: admin","operationId":"deleteRailStationLink","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":"stop_id","in":"path","required":true,"schema":{"type":"string","description":"Identifier of the stop in your network's GTFS.","title":"Stop Id"},"description":"Identifier of the stop in your network's GTFS."},{"name":"uic","in":"path","required":true,"schema":{"type":"string","description":"UIC code the link points to, e.g. `87597005`.","title":"Uic"},"description":"UIC code the link points to, e.g. `87597005`."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__45"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleterailstationlink"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RailStationLinkNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleterailstationlink"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/stats/on-demand-routes":{"get":{"tags":["on-demand-routes","stats"],"summary":"Get the statistics of the on-demand routes","description":"**This endpoint allows you to get the kilometres and passengers of the on-demand routes over a period.**\n\nBoth bounds are included. `days` and `routes` only hold the dates and the routes that carry data, so an empty list means the period has none — neither is ever padded with zeroed entries. The sum of `routes` equals `total`, exactly as the sum of `days` does, and `routes` holds at most a single entry when `route_id` scopes the request. An unknown `route_id` is not an error: it has no data, like a route that never ran.\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"getStatOnDemandRoutes","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","pattern":"\\d{8}$","description":"Start date of the period","title":"Start Date"},"description":"Start date of the period"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"End date of the period","title":"End Date"},"description":"End date of the period"},{"name":"route_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Scope the statistics to one on-demand route. Omit to aggregate every route of the group.","title":"Route Id"},"description":"Scope the statistics to one on-demand route. Omit to aggregate every route of the group."},{"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/OnDemandStatsSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getstatondemandroutes"}}},"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"}},"/api/v4/groups/{group_id}/export/on-demand-routes":{"get":{"tags":["on-demand-routes","stats"],"summary":"Export the statistics of the on-demand routes","description":"**This endpoint allows you to export the kilometres and passengers of the on-demand routes over a period, one row per date and per route.**\n\n\n\n<h2>Example : </h2>\n\n| **date** | **route_id** | **route_short_name** | **route_long_name** | **km** | **boarding** | **alighting** | **total_boarding** |\n|:--|:--|:--|:--|:--|:--|:--|:--|\n| 2026-08-01 | 6720e1f0a1b2c3d4e5f60001 | TAD1 | Zone Nord | 30.0 | 20 | 19 | 20 |\n| 2026-08-01 | 6720e1f0a1b2c3d4e5f60002 | TAD2 | Zone Sud | 12.5 | 11 | 10 | 11 |\n| 2026-08-02 | 6720e1f0a1b2c3d4e5f60001 | TAD1 | Zone Nord | 17.0 | 12 | 12 | 12 |\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"getExportOnDemandRoutes","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","pattern":"\\d{8}$","description":"Start date of the period","title":"Start Date"},"description":"Start date of the period"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","description":"End date of the period","title":"End Date"},"description":"End date of the period"},{"name":"route_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Scope the statistics to one on-demand route. Omit to aggregate every route of the group.","title":"Route Id"},"description":"Scope the statistics to one on-demand route. Omit to aggregate every route of the group."},{"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":"date;route_id;route_short_name;route_long_name;km;boarding;alighting;total_boarding\n2026-08-01;6720e1f0a1b2c3d4e5f60001;TAD1;Zone Nord;30.0;20;19;20\n2026-08-01;6720e1f0a1b2c3d4e5f60002;TAD2;Zone Sud;12.5;11;10;11\n2026-08-02;6720e1f0a1b2c3d4e5f60001;TAD1;Zone Nord;17.0;12;12;12"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getexportondemandroutes"}}},"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"}},"/api/v4/groups/{group_id}/on-demand-routes":{"get":{"tags":["on-demand-routes"],"summary":"List the on-demand routes of a group","description":"**This endpoint allows you to list the on-demand routes of a group.**\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: reader, operator","operationId":"getOnDemandRoutes","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":"route_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteStatusSchema"},{"type":"null"}],"description":"Keep only the routes in this status","title":"Route Status"},"description":"Keep only the routes in this 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/OnDemandRouteSchema"},"title":"Response Getondemandroutes"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__9"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getondemandroutes"}}},"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"},"post":{"tags":["on-demand-routes"],"summary":"Create an on-demand route","description":"**This endpoint allows you to create an on-demand route.**\n\nEvery stop gets a generated `stop_id`, owned by the route and never a `stop_id` of the GTFS feed. One sent on creation is ignored: there is nothing to carry over yet.\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: operator","operationId":"postOnDemandRoutes","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/OnDemandRoutePayloadSchema"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnDemandRouteSchema"}}}},"422":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteWithoutStop"},{"$ref":"#/components/schemas/OnDemandRouteInvalidPeriod"}],"title":"Response 422 Postondemandroutes"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__46"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postondemandroutes"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/on-demand-routes/{route_id}":{"get":{"tags":["on-demand-routes"],"summary":"Get an on-demand route","description":"**This endpoint allows you to get a single on-demand route.**\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: reader, operator","operationId":"getOnDemandRoute","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":"route_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the targeted on-demand route","title":"Route Id"},"description":"The id of the targeted on-demand route"},{"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/OnDemandRouteSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__47"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getondemandroute"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getondemandroute"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["on-demand-routes"],"summary":"Replace an on-demand route","description":"**This endpoint allows you to replace an on-demand route.**\n\nSend a stop back with its `stop_id` to keep it, including when renaming or moving it; omit it to add one. Refused on an archived route, which can only be restored. Archiving goes through here.\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: operator","operationId":"putOnDemandRoute","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":"route_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the targeted on-demand route","title":"Route Id"},"description":"The id of the targeted on-demand route"},{"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/OnDemandRoutePayloadSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnDemandRouteSchema"}}}},"422":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteDuplicateStop"},{"$ref":"#/components/schemas/OnDemandRouteUnknownStop"},{"$ref":"#/components/schemas/OnDemandRouteWithoutStop"},{"$ref":"#/components/schemas/OnDemandRouteInvalidPeriod"}],"title":"Response 422 Putondemandroute"}}},"description":"Unprocessable Content"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnDemandRouteArchived"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__48"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putondemandroute"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putondemandroute"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["on-demand-routes"],"summary":"Delete an on-demand route","description":"**This endpoint allows you to delete an on-demand route.**\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: operator","operationId":"deleteOnDemandRoute","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":"route_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the targeted on-demand route","title":"Route Id"},"description":"The id of the targeted on-demand route"},{"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/OnDemandRouteSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__49"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteondemandroute"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteondemandroute"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/on-demand-routes/{route_id}/duplicate":{"post":{"tags":["on-demand-routes"],"summary":"Duplicate an on-demand route","description":"**This endpoint allows you to duplicate an on-demand route.**\n\nThe copy carries the same stops under new identifiers, so the history of the two routes never mixes. It comes back inactive, whatever the source status: duplicating must not put a second vehicle on the road as a side effect. Refused on an archived route.\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: operator","operationId":"postOnDemandRouteDuplicate","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":"route_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the targeted on-demand route","title":"Route Id"},"description":"The id of the targeted on-demand route"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnDemandRouteSchema"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnDemandRouteArchived"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__50"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postondemandrouteduplicate"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postondemandrouteduplicate"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/on-demand-routes/{route_id}/restore":{"post":{"tags":["on-demand-routes"],"summary":"Restore an archived on-demand route","description":"**This endpoint allows you to restore an archived on-demand route.**\n\nThe only operation an archived route accepts. It comes back inactive, not active: restoring must not put a vehicle back on the road as a side effect.\n\nFeature needed: on_demand,device_event_sourcing\n\nRole needed: operator","operationId":"postOnDemandRouteRestore","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":"route_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the targeted on-demand route","title":"Route Id"},"description":"The id of the targeted on-demand route"},{"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/OnDemandRouteSchema"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnDemandRouteNotArchived"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__51"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postondemandrouterestore"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OnDemandRouteNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postondemandrouterestore"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/gtfs/{gtfs_id}/calendar_dates":{"get":{"tags":["gtfs"],"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":"getGtfsCalendarDatesNdp","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 Getgtfscalendardatesndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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},"put":{"summary":"Replace calendar dates in the gtfs for a specified service id","description":"**This endpoint allows to replace the calendar dates for the given service id**\n\nRole needed: operator","operationId":"putGtfsCalendarDate","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 replace the calendar dates for","title":"Service Id"},"description":"The service id to replace the calendar dates for"},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CalendarDateGTFSSchema"},"title":"New Dates"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CalendarDateGTFSSchema"},"title":"Response Putgtfscalendardate"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfscalendardate"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete calendar dates in the gtfs for a specified service id","description":"**This endpoint allows to delete the calendar dates for the given service id**\n\nRole needed: operator","operationId":"deleteGtfsCalendarDate","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 delete the calendar dates for","title":"Service Id"},"description":"The service id to delete the calendar dates for"},{"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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfscalendardate"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/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/admin/cache":{"get":{"tags":["admin"],"summary":"Get Redis cache statistics grouped by namespace","operationId":"getAdminCache","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"pattern","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional wildcard pattern to filter keys (e.g. `gtfs:*`)","title":"Pattern"},"description":"Optional wildcard pattern to filter keys (e.g. `gtfs:*`)"},{"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/CacheStatsSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsafePurgePatternError"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["admin"],"summary":"Purge Redis cache keys matching a pattern","operationId":"deleteAdminCache","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"pattern","in":"query","required":true,"schema":{"type":"string","description":"Wildcard pattern for keys to delete (e.g. `gtfs:trip:group-xxx:*`).","title":"Pattern"},"description":"Wildcard pattern for keys to delete (e.g. `gtfs:trip:group-xxx:*`)."},{"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/CachePurgeSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"description":"Forbidden"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsafePurgePatternError"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/drivers":{"get":{"tags":["drivers","ndp"],"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: limited_reader, technical, driver, external_reader, reader, operator","operationId":"getDriversNdp","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 Getdriversndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__53"}],"title":"Response 403 Getdriversndp"}}},"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"}},"/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: limited_reader, technical, driver, external_reader, reader, 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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__53"}],"title":"Response 403 Getdrivers"}}},"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":["drivers"],"summary":"Add new driver to the DB.","description":"**This endpoint allows you to create a new driver**\n\nRole needed: operator","operationId":"postDrivers","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/DriverCreateSchema"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Postdrivers"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__55"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Postdrivers"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverCodeAlreadyTaken"}}},"description":"Conflict"},"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"}},"/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, limited_reader, driver, external_reader, operator","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/DriverNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"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__54"}],"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},"put":{"tags":["drivers"],"summary":"Modify all fields of the driver.","description":"**This endpoint allows you to update a driver**\n\nRole needed: operator","operationId":"putDriver","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/DriverNotFound"}],"title":"Response 404 Putdriver"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__56"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Putdriver"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverCodeAlreadyTaken"},{"$ref":"#/components/schemas/DriverAnonymised"}],"title":"Response 409 Putdriver"}}},"description":"Conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"patch":{"tags":["drivers"],"summary":"Endpoint used to archive drivers.","description":"**This endpoint allows you to archive a driver**\n\nRole needed: operator","operationId":"patchDriver","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverArchiveSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/DriverNotFound"}],"title":"Response 404 Patchdriver"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__57"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchdriver"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverAnonymised"}}},"description":"Conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/drivers-archive":{"post":{"tags":["drivers"],"summary":"Set status archived or active for drivers by id","description":"**This endpoint allows to set a status on multiple drivers by id.\nThe response reports how many drivers were actually modified; a difference with the number of ids sent means some ids do not exist or you are not allowed to update them.**\n\nRole needed: operator","operationId":"postDriversArchive","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/BulkDriverArchiveSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDriverArchiveResultSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdriversarchive"}}},"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"}},"/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, limited_reader, driver, external_reader, operator","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"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__58"}],"title":"Response 403 Getexportdrivers"}}},"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}/import/drivers":{"post":{"tags":["drivers"],"summary":"Import a csv file with drivers","description":"**This endpoint allows you to import drivers**\n\nthe file has to be a csv file.\n\nRole needed: operator","operationId":"postImportDrivers","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":"compare_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compare Only"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_postImportDrivers"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverImportResultSchema"},{"$ref":"#/components/schemas/CompareSchema"}],"title":"Response Postimportdrivers"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__59"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postimportdrivers"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverImportValidationFailed"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/drivers/{driver_id}/code":{"put":{"tags":["drivers"],"summary":"Endpoint used to change a driver code.","description":"**This endpoint allows you to change a driver code**\n\nRole needed: operator","operationId":"putDriverCode","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverCodeSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/DriverNotFound"}],"title":"Response 404 Putdrivercode"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__60"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdrivercode"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverCodeAlreadyTaken"},{"$ref":"#/components/schemas/DriverAnonymised"}],"title":"Response 409 Putdrivercode"}}},"description":"Conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["drivers"],"summary":"Endpoint used to delete a driver code.","description":"**This endpoint allows you to delete a driver code**\n\nRole needed: operator","operationId":"deleteDriverCode","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/DriverNotFound"}],"title":"Response 404 Deletedrivercode"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__57"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedrivercode"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverAnonymised"}}},"description":"Conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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__22"},{"$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}/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}/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},"post":{"tags":["alerts"],"summary":"Add new alert to the DB.","description":"**This endpoint allows to add a new alert to the database.**\n\nRole needed: operator","operationId":"postAlerts","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertIdSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postalerts"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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},"put":{"tags":["alerts"],"summary":"Replace all info on the given alert.","description":"**This endpoint allows to replace an alert with its id.****\n\nRole needed: operator","operationId":"putAlert","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the targeted alert.","examples":["670f84254c28ffdaae0f462d"],"title":"Alert Id"},"description":"The id of the targeted alert."},{"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/AlertCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__61"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putalert"}}},"description":"Forbidden"},"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"},"delete":{"tags":["alerts"],"summary":"Delete the alert with the given alert_id.","description":"**This endpoint allows to delete an alert with its id.**\n\nRole needed: operator","operationId":"deleteAlert","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the targeted alert.","examples":["670f84254c28ffdaae0f462d"],"title":"Alert Id"},"description":"The id of the targeted alert."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__61"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletealert"}}},"description":"Forbidden"},"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"}},"/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}/alerts/{alert_id}/push":{"post":{"tags":["alerts"],"summary":"Push notifications for an alert_id.","description":"**This endpoint allows to push an alert with its id.**\n\nRole needed: operator","operationId":"postAlertPush","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"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":{"type":"integer"},"title":"Response Postalertpush"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__61"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postalertpush"}}},"description":"Forbidden"},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/frequencies":{"get":{"tags":["frequencies","ndp"],"summary":"Return latest delta passages for a device for the given group_id.","description":"Role needed: technical, reader, limited_reader, driver, external_reader, operator","operationId":"getFrequenciesNdp","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/Frequency"},"title":"Response Getfrequenciesndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__62"}],"title":"Response 403 Getfrequenciesndp"}}},"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"}},"/api/v4/groups/{group_id}/frequencies":{"get":{"tags":["frequencies"],"summary":"Return latest delta passages for a device for the given group_id.","description":"Role needed: technical, reader, limited_reader, driver, external_reader, operator","operationId":"getFrequencies","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/Frequency"},"title":"Response Getfrequencies"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__62"}],"title":"Response 403 Getfrequencies"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-complementary-infos/comments":{"put":{"tags":["trip-complementary-infos"],"summary":"Create or update a trip-update comment.","description":"**Create or update the comment associated to a trip for a given (trip_id, date, end_date) period.**\n\nRole needed: operator","operationId":"putTripComplementaryInfoComments","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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":"trip_id","in":"query","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"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/TripComplementaryInfoCommentSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__63"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Puttripcomplementaryinfocomments"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GtfsTripNotFound"}],"title":"Response 404 Puttripcomplementaryinfocomments"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-complementary-infos/stop-infos":{"put":{"tags":["trip-complementary-infos"],"summary":"Create or update trip-update stop-infos.","description":"**Create or update the stop-infos list associated to a trip for a given (trip_id, date, end_date) period.**\n\nRole needed: operator","operationId":"putTripComplementaryInfoStopInfos","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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":"trip_id","in":"query","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"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/TripComplementaryInfoStopInfosSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__63"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Puttripcomplementaryinfostopinfos"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GtfsTripNotFound"}],"title":"Response 404 Puttripcomplementaryinfostopinfos"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-updates/comments":{"put":{"tags":["trip-complementary-infos"],"summary":"[Deprecated] Create or update a trip-update comment.","description":"<h1><b>This endpoint is deprecated, use <code>/api/v4/groups/{group_id}/trip-complementary-infos/comments</code> instead.</b></h1>\n\n**Deprecated alias of PUT /trip-complementary-infos/comments. New clients should target the new path.**\n\nRole needed: operator","operationId":"putTripUpdateComments","deprecated":true,"security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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":"trip_id","in":"query","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"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/TripComplementaryInfoCommentSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__63"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Puttripupdatecomments"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GtfsTripNotFound"}],"title":"Response 404 Puttripupdatecomments"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-updates/stop-infos":{"put":{"tags":["trip-complementary-infos"],"summary":"[Deprecated] Create or update trip-update stop-infos.","description":"<h1><b>This endpoint is deprecated, use <code>/api/v4/groups/{group_id}/trip-complementary-infos/stop-infos</code> instead.</b></h1>\n\n**Deprecated alias of PUT /trip-complementary-infos/stop-infos. New clients should target the new path.**\n\nRole needed: operator","operationId":"putTripUpdateStopInfos","deprecated":true,"security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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":"trip_id","in":"query","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"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/TripComplementaryInfoStopInfosSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__63"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Puttripupdatestopinfos"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GtfsTripNotFound"}],"title":"Response 404 Puttripupdatestopinfos"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRailDeparturesWindow"}}},"description":"Bad Request"},"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/departures/{uic}":{"get":{"tags":["rail"],"summary":"Get the rail departure board of one station, by UIC code.","description":"**Same board as `/rail/departures`, addressed by station instead of by stop — a support and debugging utility.**\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- Restricted to the stations your group attached: a UIC only another group attached answers `200` with an empty list.\n\nFeature needed: rail_data","operationId":"getRailDeparture","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":"uic","in":"path","required":true,"schema":{"type":"string","description":"UIC code of the station, e.g. `87597005`.","examples":["87597005"],"title":"Uic"},"description":"UIC code of the station, e.g. `87597005`."},{"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 Getraildeparture"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRailDeparturesWindow"}}},"description":"Bad Request"},"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"}},"/api/v4/groups/{group_id}/simulations":{"get":{"tags":["simulations"],"summary":"Return the simulations for the given group_id.","description":"**This endpoint allows to get all simulations for the given group_id.**\n\nRole needed: admin","operationId":"getSimulations","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/SimulationStatus"}},{"type":"null"}],"title":"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/SimulationSchema"},"title":"Response Getsimulations"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__64"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getsimulations"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"simu"},"post":{"tags":["simulations"],"summary":"Create a new simulation for the given group_id.","description":"**This endpoint allows to create a simulation for the given group_id.**\n\nRole needed: admin","operationId":"postSimulations","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulationCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__64"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postsimulations"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api","x-deployment":"simu"}},"/api/v4/groups/{group_id}/simulations/{simulation_id}":{"get":{"tags":["simulations"],"summary":"Return the simulation for the given group_id and simulation_id.","description":"**This endpoint allows to get one simulation for the given group_id.**\n\nRole needed: admin","operationId":"getSimulation","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":"simulation_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Simulation 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/SimulationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__65"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getsimulation"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SimulationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getsimulation"}}},"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":"simu"},"delete":{"tags":["simulations"],"summary":"Delete the simulation for the given group_id and simulation_id.","description":"**This endpoint allows to delete one simulation for the given group_id.**\n\nRole needed: admin","operationId":"deleteSimulation","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":"simulation_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Simulation 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/SimulationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__65"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletesimulation"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SimulationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletesimulation"}}},"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":"simu"}},"/api/v4/groups/{group_id}/simulations/{simulation_id}/start":{"post":{"tags":["simulations"],"summary":"Start simulation","description":"**This endpoint allows to start a simulation.**\n\nRole needed: admin","operationId":"postSimulationStart","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":"simulation_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Simulation Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__65"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postsimulationstart"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SimulationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postsimulationstart"}}},"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":"simu"}},"/api/v4/groups/{group_id}/simulations/{simulation_id}/stop":{"post":{"tags":["simulations"],"summary":"Stop simulation","description":"**This endpoint allows to request stop of a simulation.**\n\nRole needed: admin","operationId":"postSimulationStop","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":"simulation_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Simulation Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__65"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postsimulationstop"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SimulationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postsimulationstop"}}},"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":"simu"}},"/api/v4/groups/{group_id}/integrations/mcf":{"get":{"tags":["integration"],"summary":"Get mcf integration settings.","description":"**Get the mcf integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationMcf","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/McfIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationmcf"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationmcf"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace mcf integration settings.","description":"**Create or replace the mcf integration settings.**\n\nRole needed: admin","operationId":"putIntegrationMcf","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"mcf","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/McfIntegrationSchema","description":"mcf integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McfIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationmcf"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationmcf"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete mcf integration settings.","description":"**Delete the mcf integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationMcf","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"mcf","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationmcf"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationmcf"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/sftp":{"get":{"tags":["integration"],"summary":"Get sftp integration settings.","description":"**Get the sftp integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationSftp","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/SftpIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationsftp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationsftp"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace sftp integration settings.","description":"**Create or replace the sftp integration settings.**\n\nRole needed: admin","operationId":"putIntegrationSftp","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"sftp","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/SftpIntegrationSchema","description":"sftp integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationsftp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationsftp"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete sftp integration settings.","description":"**Delete the sftp integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationSftp","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"sftp","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationsftp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationsftp"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/nocrates":{"get":{"tags":["integration"],"summary":"Get nocrates integration settings.","description":"**Get the nocrates integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationNocrates","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/NocratesIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationnocrates"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationnocrates"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace nocrates integration settings.","description":"**Create or replace the nocrates integration settings.**\n\nRole needed: admin","operationId":"putIntegrationNocrates","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"nocrates","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/NocratesIntegrationSchema","description":"nocrates integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NocratesIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationnocrates"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationnocrates"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete nocrates integration settings.","description":"**Delete the nocrates integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationNocrates","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"nocrates","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationnocrates"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationnocrates"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/rail_data":{"get":{"tags":["integration"],"summary":"Get rail_data integration settings.","description":"**Get the rail_data integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationRailData","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/RailDataIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationraildata"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationraildata"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace rail_data integration settings.","description":"**Create or replace the rail_data integration settings.**\n\nRole needed: admin","operationId":"putIntegrationRailData","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"rail_data","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/RailDataIntegrationSchema","description":"rail_data integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RailDataIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationraildata"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationraildata"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete rail_data integration settings.","description":"**Delete the rail_data integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationRailData","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"rail_data","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationraildata"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationraildata"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/message_notifications":{"get":{"tags":["integration"],"summary":"Get message_notifications integration settings.","description":"**Get the message_notifications integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationMessageNotifications","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/MessageNotificationsIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationmessagenotifications"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationmessagenotifications"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace message_notifications integration settings.","description":"**Create or replace the message_notifications integration settings.**\n\nRole needed: admin","operationId":"putIntegrationMessageNotifications","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"message_notifications","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/MessageNotificationsIntegrationSchema","description":"message_notifications integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageNotificationsIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationmessagenotifications"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationmessagenotifications"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete message_notifications integration settings.","description":"**Delete the message_notifications integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationMessageNotifications","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"message_notifications","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationmessagenotifications"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationmessagenotifications"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/silv1":{"get":{"tags":["integration"],"summary":"Get silv1 integration settings.","description":"**Get the silv1 integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationSilv1","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/Silv1IntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationsilv1"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationsilv1"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace silv1 integration settings.","description":"**Create or replace the silv1 integration settings.**\n\nRole needed: admin","operationId":"putIntegrationSilv1","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"silv1","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/Silv1IntegrationSchema","description":"silv1 integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Silv1IntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationsilv1"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationsilv1"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete silv1 integration settings.","description":"**Delete the silv1 integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationSilv1","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"silv1","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationsilv1"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationsilv1"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/hanover_ip":{"get":{"tags":["integration"],"summary":"Get hanover_ip integration settings.","description":"**Get the hanover_ip integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationHanoverIp","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/HanoverIpIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationhanoverip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationhanoverip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace hanover_ip integration settings.","description":"**Create or replace the hanover_ip integration settings.**\n\nRole needed: admin","operationId":"putIntegrationHanoverIp","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"hanover_ip","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/HanoverIpIntegrationSchema","description":"hanover_ip integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HanoverIpIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationhanoverip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationhanoverip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete hanover_ip integration settings.","description":"**Delete the hanover_ip integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationHanoverIp","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"hanover_ip","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationhanoverip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationhanoverip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/webreathe_ip":{"get":{"tags":["integration"],"summary":"Get webreathe_ip integration settings.","description":"**Get the webreathe_ip integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationWebreatheIp","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/WebreatheIpIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationwebreatheip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationwebreatheip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace webreathe_ip integration settings.","description":"**Create or replace the webreathe_ip integration settings.**\n\nRole needed: admin","operationId":"putIntegrationWebreatheIp","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"webreathe_ip","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/WebreatheIpIntegrationSchema","description":"webreathe_ip integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebreatheIpIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationwebreatheip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationwebreatheip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete webreathe_ip integration settings.","description":"**Delete the webreathe_ip integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationWebreatheIp","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"webreathe_ip","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationwebreatheip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationwebreatheip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/conduent":{"get":{"tags":["integration"],"summary":"Get conduent integration settings.","description":"**Get the conduent integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationConduent","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/ConduentIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationconduent"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationconduent"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace conduent integration settings.","description":"**Create or replace the conduent integration settings.**\n\nRole needed: admin","operationId":"putIntegrationConduent","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"conduent","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/ConduentIntegrationSchema","description":"conduent integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConduentIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationconduent"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationconduent"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete conduent integration settings.","description":"**Delete the conduent integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationConduent","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"conduent","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationconduent"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationconduent"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/seipra":{"get":{"tags":["integration"],"summary":"Get seipra integration settings.","description":"**Get the seipra integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationSeipra","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/SeipraIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationseipra"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationseipra"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace seipra integration settings.","description":"**Create or replace the seipra integration settings.**\n\nRole needed: admin","operationId":"putIntegrationSeipra","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"seipra","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/SeipraIntegrationSchema","description":"seipra integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeipraIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationseipra"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationseipra"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete seipra integration settings.","description":"**Delete the seipra integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationSeipra","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"seipra","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationseipra"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationseipra"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/matawan":{"get":{"tags":["integration"],"summary":"Get matawan integration settings.","description":"**Get the matawan integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationMatawan","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/MatawanIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationmatawan"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationmatawan"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace matawan integration settings.","description":"**Create or replace the matawan integration settings.**\n\nRole needed: admin","operationId":"putIntegrationMatawan","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"matawan","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/MatawanIntegrationSchema","description":"matawan integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatawanIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationmatawan"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationmatawan"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete matawan integration settings.","description":"**Delete the matawan integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationMatawan","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"matawan","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationmatawan"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationmatawan"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/aep":{"get":{"tags":["integration"],"summary":"Get aep integration settings.","description":"**Get the aep integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationAep","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/AepIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationaep"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationaep"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace aep integration settings.","description":"**Create or replace the aep integration settings.**\n\nRole needed: admin","operationId":"putIntegrationAep","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"aep","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/AepIntegrationSchema","description":"aep integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AepIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationaep"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationaep"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete aep integration settings.","description":"**Delete the aep integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationAep","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"aep","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationaep"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationaep"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/kuba":{"get":{"tags":["integration"],"summary":"Get kuba integration settings.","description":"**Get the kuba integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationKuba","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/KubaIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationkuba"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationkuba"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace kuba integration settings.","description":"**Create or replace the kuba integration settings.**\n\nRole needed: admin","operationId":"putIntegrationKuba","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"kuba","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/KubaIntegrationSchema","description":"kuba integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubaIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationkuba"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationkuba"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete kuba integration settings.","description":"**Delete the kuba integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationKuba","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"kuba","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationkuba"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationkuba"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/duhip":{"get":{"tags":["integration"],"summary":"Get duhip integration settings.","description":"**Get the duhip integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationDuhip","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/DuhipIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationduhip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationduhip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace duhip integration settings.","description":"**Create or replace the duhip integration settings.**\n\nRole needed: admin","operationId":"putIntegrationDuhip","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"duhip","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/DuhipIntegrationSchema","description":"duhip integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DuhipIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationduhip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationduhip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete duhip integration settings.","description":"**Delete the duhip integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationDuhip","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"duhip","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationduhip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationduhip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/qip":{"get":{"tags":["integration"],"summary":"Get qip integration settings.","description":"**Get the qip integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationQip","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/QipIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationqip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationqip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace qip integration settings.","description":"**Create or replace the qip integration settings.**\n\nRole needed: admin","operationId":"putIntegrationQip","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"qip","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/QipIntegrationSchema","description":"qip integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QipIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationqip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationqip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete qip integration settings.","description":"**Delete the qip integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationQip","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"qip","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationqip"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationqip"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/paragon":{"get":{"tags":["integration"],"summary":"Get paragon integration settings.","description":"**Get the paragon integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationParagon","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/ParagonIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationparagon"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationparagon"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace paragon integration settings.","description":"**Create or replace the paragon integration settings.**\n\nRole needed: admin","operationId":"putIntegrationParagon","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"paragon","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/ParagonIntegrationSchema","description":"paragon integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParagonIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationparagon"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationparagon"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete paragon integration settings.","description":"**Delete the paragon integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationParagon","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"paragon","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationparagon"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationparagon"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/webreathe":{"get":{"tags":["integration"],"summary":"Get webreathe integration settings.","description":"**Get the webreathe integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationWebreathe","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/WebreatheIntegrationSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationwebreathe"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationwebreathe"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace webreathe integration settings.","description":"**Create or replace the webreathe integration settings.**\n\nRole needed: admin","operationId":"putIntegrationWebreathe","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"webreathe","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/WebreatheIntegrationSchema","description":"webreathe integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebreatheIntegrationSchema"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationwebreathe"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationwebreathe"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete webreathe integration settings.","description":"**Delete the webreathe integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationWebreathe","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"webreathe","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationwebreathe"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationwebreathe"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/integrations/instavox":{"get":{"tags":["integration"],"summary":"Get instavox integration settings.","description":"**Get the instavox integration settings for a group.**\n\nRole needed: driver, admin","operationId":"getIntegrationInstavox","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":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/InstavoxIntegrationSchema-Output"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getintegrationinstavox"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__24"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getintegrationinstavox"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"put":{"tags":["integration"],"summary":"Create or replace instavox integration settings.","description":"**Create or replace the instavox integration settings.**\n\nRole needed: admin","operationId":"putIntegrationInstavox","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"instavox","title":" Iid"}},{"name":"_s","in":"query","required":false,"schema":{"title":" S"}},{"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/InstavoxIntegrationSchema-Input","description":"instavox integration data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstavoxIntegrationSchema-Output"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncorrectIntegration"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putintegrationinstavox"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__25"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putintegrationinstavox"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["integration"],"summary":"Delete instavox integration settings.","description":"**Delete the instavox integration settings.**\n\nRole needed: admin","operationId":"deleteIntegrationInstavox","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":"_iid","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DriverIntegrationId"},{"$ref":"#/components/schemas/APIIntegrationId"}],"default":"instavox","title":" Iid"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleteintegrationinstavox"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__26"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleteintegrationinstavox"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}":{"get":{"tags":["groups","ndp"],"summary":"Return the group for the given group_id.","description":"**This endpoint allows to get a group by its id.**","operationId":"getGroupNdp","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}},{"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/GroupNavDataProcessorSchema"},{"type":"null"}],"title":"Response Getgroupndp"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoRole"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/gtfs/{gtfs_id}/stops":{"get":{"tags":["gtfs"],"summary":"Find stops","description":"**This endpoint allows to get the list of stops for a specific gtfs_id.**\n\n Publicly available endpoint.","operationId":"getGtfsStopsNdp","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 Getgtfsstopsndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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},"put":{"summary":"Update gtfs stop","description":"**This endpoint allows to update or create a stop**\n\nRole needed: operator","operationId":"putGtfsStop","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 update","title":"Stop Id"},"description":"The stop id to update"},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopGTFSSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopGTFSSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfsstop"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete gtfs stop","description":"**This endpoint allows to delete a stop**\n\nRole needed: operator","operationId":"deleteGtfsStop","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 delete","title":"Stop Id"},"description":"The stop id to delete"},{"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":{"204":{"description":"Successful Response"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsStopInUse"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsStopNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__66"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfsstop"}}},"description":"Forbidden"}},"x-api-version":4,"x-path-prefix":"/api"}},"/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, limited_reader, driver, external_reader, operator","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__1"}],"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},"post":{"tags":["trip_events"],"summary":"Allow trip event creation","description":"**This endpoint allows to create a trip event.**\n\nRole needed: driver, admin, operator","operationId":"postTripEvents","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/TripEventSchemaCreate"}}}},"responses":{"201":{"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__67"}],"title":"Response 403 Posttripevents"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/current-trip":{"get":{"tags":["current-trip"],"summary":"Get Current Trip","description":"**This endpoint allows you to get the current trip of a device.**\n\nRole needed: driver","operationId":"getDeviceCurrentTripNdp","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":"device_id","in":"path","required":true,"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":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripSchema"},{"type":"null"}],"title":"Response Getdevicecurrenttripndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getdevicecurrenttripndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicecurrenttripndp"}}},"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"},"put":{"tags":["current-trip"],"summary":"Update Current Trip","description":"**This endpoint allows you to update the current trip of a device.**\n\nRole needed: driver","operationId":"putDeviceCurrentTripNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentTripWithDetailsSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicecurrenttripndp"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoPublishedGtfs"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__68"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdevicecurrenttripndp"}}},"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"},"delete":{"tags":["current-trip"],"summary":"Delete Current Trip","description":"**This endpoint allows you to delete the current trip of a device.**\n\nRole needed: driver","operationId":"deleteDeviceCurrentTripNdp","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":"device_id","in":"path","required":true,"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":"trigger","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TriggerType"},{"type":"null"}],"description":"How the end has been triggered","title":"Trigger"},"description":"How the end has been triggered"},{"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":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripSchema"},{"type":"null"}],"title":"Response Deletedevicecurrenttripndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedevicecurrenttripndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedevicecurrenttripndp"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/current-trip/details":{"get":{"tags":["current-trip"],"summary":"Get Current Trip Details","description":"**This endpoint allows you to get the current trip details of a device.**\n\nRole needed: driver","operationId":"getDeviceCurrentTripDetailsNdp","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":"device_id","in":"path","required":true,"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":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripDetailsSchema"},{"type":"null"}],"title":"Response Getdevicecurrenttripdetailsndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getdevicecurrenttripdetailsndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicecurrenttripdetailsndp"}}},"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"},"put":{"tags":["current-trip"],"summary":"Update Current Trip Details","description":"**This endpoint allows you to update the current trip details of a device.**\n\nRole needed: driver","operationId":"putDeviceCurrentTripDetailsNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentTripDetailsSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdevicecurrenttripdetailsndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicecurrenttripdetailsndp"}}},"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"},"delete":{"tags":["current-trip"],"summary":"Delete Current Trip Details","description":"**This endpoint allows you to delete the current trip details of a device.**\n\nRole needed: driver","operationId":"deleteDeviceCurrentTripDetailsNdp","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":"device_id","in":"path","required":true,"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":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripDetailsSchema"},{"type":"null"}],"title":"Response Deletedevicecurrenttripdetailsndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedevicecurrenttripdetailsndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedevicecurrenttripdetailsndp"}}},"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"}},"/api/v4/groups/{group_id}/hastus/preview":{"post":{"tags":["hastus"],"summary":"Preview a Hastus import without writing to db","description":"**Preview a Hastus import without writing to db to allow frontend to get stats**\n\nRole needed: operator","operationId":"postHastuPreview","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"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_postHastuPreview"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportPreview"}}}},"422":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TransitArchiveCompressedTooLarge"},{"$ref":"#/components/schemas/InvalidHastusArchive"},{"$ref":"#/components/schemas/HastusArchiveLooksLikeGtfs"},{"$ref":"#/components/schemas/IncompleteHastusArchive"},{"$ref":"#/components/schemas/TransitArchiveUncompressedTooLarge"}],"title":"Response 422 Posthastupreview"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__69"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Posthastupreview"}}},"description":"Forbidden"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/hastus/{gtfs_id}":{"post":{"tags":["hastus"],"summary":"Parse a Hastus File and convert it to GTFS format","description":"**This endpoint converts a Hastus File to GTFS format**\n\nRole needed: operator","operationId":"postHastu","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_postHastu"}}}},"responses":{"204":{"description":"Successful Response"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartialImportIntoPopulatedDraft"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__70"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Posthastu"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/InvalidHastusArchive"},{"$ref":"#/components/schemas/HastusArchiveLooksLikeGtfs"},{"$ref":"#/components/schemas/IncompleteHastusArchive"},{"$ref":"#/components/schemas/TransitArchiveCompressedTooLarge"},{"$ref":"#/components/schemas/InvalidGTFSId"},{"$ref":"#/components/schemas/TransitArchiveUncompressedTooLarge"}],"title":"Response 422 Posthastu"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/nocrates-rides":{"get":{"tags":["nocrates","ndp"],"summary":"List Nocrates Rides","description":"Role needed: driver, operator","operationId":"getDeviceNocratesRidesNdp","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device you want to retrieve datas from."},{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}},{"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/NocratesRideSchema"},"title":"Response Getdevicenocratesridesndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__67"}],"title":"Response 403 Getdevicenocratesridesndp"}}},"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"}},"/nav-data-processor-api/v4/login/group":{"post":{"tags":["auth","ndp"],"summary":"Login on group by access code","description":"**This endpoint allows to log on group by access code.**","operationId":"postLoginGroupNdp","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/LoginGroupSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseSchema"}}}},"401":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UnauthorizedArchivedDevice"},{"$ref":"#/components/schemas/UnauthorizedDeviceSessionOnly"},{"$ref":"#/components/schemas/UnauthorizedWrongGroupCode"}],"title":"Response 401 Postlogingroupndp"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaDevicesReached"}}},"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"}},"/api/v4/login/group":{"post":{"tags":["auth"],"summary":"Login on group by access code","description":"**This endpoint allows to log on group by access code.**","operationId":"postLoginGroup","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/LoginGroupSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseSchema"}}}},"401":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UnauthorizedArchivedDevice"},{"$ref":"#/components/schemas/UnauthorizedDeviceSessionOnly"},{"$ref":"#/components/schemas/UnauthorizedWrongGroupCode"}],"title":"Response 401 Postlogingroup"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaDevicesReached"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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}},"/nav-data-processor-api/v4/login":{"post":{"tags":["auth","ndp"],"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":"postLoginNdp","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_postLoginNdp"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseSchema"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Auth0LoginRequired"}}},"description":"Forbidden"},"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"}},"/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"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Auth0LoginRequired"}}},"description":"Forbidden"},"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/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}},"/auth/logout":{"get":{"tags":["auth"],"summary":"Log out of your session","description":"<h1><b>This endpoint is deprecated, use <code>/api/v2/logout</code> instead.</b></h1>\n\n**This endpoint allows to log out of your session.**","operationId":"getAuthLogout","deprecated":true,"security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"redirect","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect"}},{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/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}},"/nav-data-processor-api/v4/groups/{group_id}/gtfs/{gtfs_id}/routes":{"get":{"tags":["gtfs"],"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":"getGtfsRoutesNdp","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-Output"},"title":"Response Getgtfsroutesndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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-Output"},"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-Output"}}}},"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},"put":{"summary":"Create or Update a route in the gtfs identified by gtfs_id","description":"**This endpoint allows to create or update a route in the gtfs identified by gtfs_id.**\n\nRole needed: operator","operationId":"putGtfsRoute","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 update","title":"Route Id"},"description":"The id of the route to update"},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteGTFSSchema-Input"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteGTFSSchema-Output"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfsroute"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete route specified by route_id","description":"**This endpoint allows to delete a route identified by route_id.**\n\nRole needed: operator","operationId":"deleteGtfsRoute","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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 delete","title":"Route Id"},"description":"The id of the route to delete"},{"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":{"204":{"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsRouteNotFound"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__71"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfsroute"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsRouteInUse"}}},"description":"Conflict"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/rum-configuration":{"get":{"tags":["rum_configuration"],"summary":"Return the default RUM configuration.","description":"**This endpoint allows you to return the default RUM configuration.**\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"getRumConfiguration","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":{"$ref":"#/components/schemas/RumConfigurationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getrumconfiguration"}}},"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"},"delete":{"tags":["rum_configuration"],"summary":"Delete the default RUM configuration.","description":"**This endpoint allows you to delete the default RUM configuration.**\n\nRole needed: operator","operationId":"deleteRumConfiguration","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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleterumconfiguration"}}},"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"},"post":{"tags":["rum_configuration"],"summary":"Set the default RUM configuration.","description":"**This endpoint allows you to set the default RUM configuration.**\n\nRole needed: operator","operationId":"postRumConfiguration","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/RumConfigurationSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postrumconfiguration"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/rum-configuration":{"get":{"tags":["rum_configuration","ndp"],"summary":"Return the device RUM configuration for the given device_id.","description":"**This endpoint allows you to return the device RUM configuration for the given device_id.**\n\nRole needed: limited_reader, driver, external_reader, reader, operator","operationId":"getDeviceRumConfigurationNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/RumConfigurationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__72"}],"title":"Response 403 Getdevicerumconfigurationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicerumconfigurationndp"}}},"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"},"delete":{"tags":["rum_configuration","ndp"],"summary":"Delete the device RUM configuration for the given device_id.","description":"**This endpoint allows you to delete the device RUM configuration for the given device_id.**\n\nRole needed: operator","operationId":"deleteDeviceRumConfigurationNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__33"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedevicerumconfigurationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedevicerumconfigurationndp"}}},"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"},"post":{"tags":["rum_configuration","ndp"],"summary":"Set the device RUM configuration for the given device_id.","description":"**This endpoint allows you to set the device RUM configuration for the given device_id.**\n\nRole needed: operator","operationId":"postDeviceRumConfigurationNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/RumConfigurationSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__33"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdevicerumconfigurationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postdevicerumconfigurationndp"}}},"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"}},"/api/v4/groups/{group_id}/devices/{device_id}/rum-configuration":{"get":{"tags":["rum_configuration"],"summary":"Return the device RUM configuration for the given device_id.","description":"**This endpoint allows you to return the device RUM configuration for the given device_id.**\n\nRole needed: limited_reader, driver, external_reader, reader, operator","operationId":"getDeviceRumConfiguration","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/RumConfigurationSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__72"}],"title":"Response 403 Getdevicerumconfiguration"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicerumconfiguration"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["rum_configuration"],"summary":"Delete the device RUM configuration for the given device_id.","description":"**This endpoint allows you to delete the device RUM configuration for the given device_id.**\n\nRole needed: operator","operationId":"deleteDeviceRumConfiguration","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__33"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedevicerumconfiguration"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedevicerumconfiguration"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"post":{"tags":["rum_configuration"],"summary":"Set the device RUM configuration for the given device_id.","description":"**This endpoint allows you to set the device RUM configuration for the given device_id.**\n\nRole needed: operator","operationId":"postDeviceRumConfiguration","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/RumConfigurationSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__33"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdevicerumconfiguration"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postdevicerumconfiguration"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/import-transit-file/preview":{"post":{"summary":"Preview a transit file import without writing","description":"**Preview a transit file import without writing, allow user on front-end to see stats about the file**\n\nRole needed: operator","operationId":"postGtfsImportTransitFilePreview","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":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_postGtfsImportTransitFilePreview"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportPreview"}}}},"422":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/InvalidGtfsArchive"},{"$ref":"#/components/schemas/GtfsArchiveLooksLikeHastus"},{"$ref":"#/components/schemas/TransitArchiveCompressedTooLarge"},{"$ref":"#/components/schemas/GtfsArchiveIsHastusText"},{"$ref":"#/components/schemas/TransitArchiveUncompressedTooLarge"}],"title":"Response 422 Postgtfsimporttransitfilepreview"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__73"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postgtfsimporttransitfilepreview"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsAttributionTeamNameNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postgtfsimporttransitfilepreview"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/import-transit-file":{"patch":{"summary":"Merge transit file to merge in db","description":"**This endpoint allows to merge a transit file in the database**\n\n- Receive a transit file and merge its content with the data in db.\n- New items will be inserted and already known items will be updated\n\nRole needed: operator","operationId":"patchGtfsImportTransitFile","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":"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":"file-type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TransitFileType","description":"The type of file to import","default":"gtfs"},"description":"The type of file to import"},{"name":"recompute-dist-traveled","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Recompute-Dist-Traveled"}},{"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/ImportedGtfsFileSchema"}}}},"422":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/InvalidGtfsArchive"},{"$ref":"#/components/schemas/GtfsArchiveLooksLikeHastus"},{"$ref":"#/components/schemas/GtfsArchiveIsHastusText"}],"title":"Response 422 Patchgtfsimporttransitfile"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__74"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchgtfsimporttransitfile"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsAttributionTeamNameNotFound"},{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Patchgtfsimporttransitfile"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/trip-updates-use/export":{"get":{"tags":["trip-updates","stats"],"summary":"Find the amount of trip updates for a time window **heavy on resource**","description":"**Find the amount of trip updates in a group for a certain time window to allow doing stats.**\n\n- R\n- e\n- t\n- u\n- r\n- n\n-  \n- t\n- r\n- i\n- p\n-  \n- u\n- p\n- d\n- a\n- t\n- e\n-  \n- u\n- s\n- a\n- g\n- e\n-  \n- b\n- y\n-  \n- d\n- a\n- t\n- e\n-  \n- i\n- n\n-  \n- g\n- t\n- f\n- s\n-  \n- f\n- o\n- r\n- m\n- a\n- t\n\n\n\n<h2>Example : </h2>\n\n| **date** | **total** | **comment** | **stop_infos** | **is_canceled** | **delay** | **skipped_stop_time_seqs** | **temporary_stop_time_seqs** | **temporary_stops** | **shape** | **delays** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 20200101 | 32 | 3 | 8 | 12 | 21 | 2 | 8 | 7 | 18 | 18 |","operationId":"getGlobalTripUpdatesUseExport","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now - 30 days : The date of the trip update.","title":"Since"},"description":"Default to now - 30 days : The date of the trip update."},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now: The date of the trip update.","title":"To"},"description":"Default to now: The date of the trip update."},{"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":{}},"text/csv":{"schema":{"type":"string"},"example":"date;total;comment;stop_infos;is_canceled;delay;skipped_stop_time_seqs;temporary_stop_time_seqs;temporary_stops;shape;delays\n20200101;32;3;8;12;21;2;8;7;18;18"}}},"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-deployment":"stats"}},"/api/v4/trip-updates-use":{"get":{"tags":["trip-updates","stats"],"summary":"Find the amount of trip updates for a time window **heavy on resource**","description":"**Find the amount of trip updates in all groups for a certain time window to allow doing stats.**\n\n- R\n- e\n- t\n- u\n- r\n- n\n-  \n- t\n- r\n- i\n- p\n-  \n- u\n- p\n- d\n- a\n- t\n- e\n-  \n- u\n- s\n- a\n- g\n- e\n-  \n- b\n- y\n-  \n- d\n- a\n- t\n- e\n-  \n- i\n- n\n-  \n- g\n- t\n- f\n- s\n-  \n- f\n- o\n- r\n- m\n- a\n- t","operationId":"getGlobalTripUpdatesUse","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now - 30 days : The date of the trip update.","title":"Since"},"description":"Default to now - 30 days : The date of the trip update."},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now: The date of the trip update.","title":"To"},"description":"Default to now: The date of the trip update."},{"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":"object","additionalProperties":{"$ref":"#/components/schemas/TripUpdateUseSchema"},"propertyNames":{"examples":["20201122"]},"title":"Response Getglobaltripupdatesuse"}}}},"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-deployment":"stats"}},"/api/v4/groups/{group_id}/trip-updates-use":{"get":{"tags":["trip-updates","stats"],"summary":"Find the amount of trip updates for a time window","description":"**Find the amount of trip updates in a group for a certain time window to allow doing stats.**\n\n- R\n- e\n- t\n- u\n- r\n- n\n-  \n- t\n- r\n- i\n- p\n-  \n- u\n- p\n- d\n- a\n- t\n- e\n-  \n- u\n- s\n- a\n- g\n- e\n-  \n- b\n- y\n-  \n- d\n- a\n- t\n- e\n-  \n- i\n- n\n-  \n- g\n- t\n- f\n- s\n-  \n- f\n- o\n- r\n- m\n- a\n- t","operationId":"getTripUpdatesUse","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now - 30 days : The date of the trip update.","title":"Since"},"description":"Default to now - 30 days : The date of the trip update."},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now: The date of the trip update.","title":"To"},"description":"Default to now: The date of the trip update."},{"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":{"$ref":"#/components/schemas/TripUpdateUseSchema"},"propertyNames":{"examples":["20201122"]},"title":"Response Gettripupdatesuse"}}}},"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"}},"/api/v4/groups/{group_id}/trip-updates-use/export":{"get":{"tags":["trip-updates","stats"],"summary":"Find the amount of trip /updates for a time window **heavy on resource**","description":"**Find the amount of trip updates in a group for a certain time window to allow doing stats.**\n\n- R\n- e\n- t\n- u\n- r\n- n\n-  \n- t\n- r\n- i\n- p\n-  \n- u\n- p\n- d\n- a\n- t\n- e\n-  \n- u\n- s\n- a\n- g\n- e\n-  \n- b\n- y\n-  \n- d\n- a\n- t\n- e\n-  \n- i\n- n\n-  \n- g\n- t\n- f\n- s\n-  \n- f\n- o\n- r\n- m\n- a\n- t\n\n\n\n<h2>Example : </h2>\n\n| **date** | **total** | **comment** | **stop_infos** | **is_canceled** | **delay** | **skipped_stop_time_seqs** | **temporary_stop_time_seqs** | **temporary_stops** | **shape** | **delays** |\n|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|\n| 20200101 | 32 | 3 | 8 | 12 | 21 | 2 | 8 | 7 | 18 | 18 |","operationId":"getTripUpdatesUseExport","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now - 30 days : The date of the trip update.","title":"Since"},"description":"Default to now - 30 days : The date of the trip update."},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Default to now: The date of the trip update.","title":"To"},"description":"Default to now: The date of the trip update."},{"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":{}},"text/csv":{"schema":{"type":"string"},"example":"date;total;comment;stop_infos;is_canceled;delay;skipped_stop_time_seqs;temporary_stop_time_seqs;temporary_stops;shape;delays\n20200101;32;3;8;12;21;2;8;7;18;18"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/trip-updates/get":{"get":{"tags":["trip-updates","ndp"],"summary":"Get the most recent trip updates.","description":"**This endpoint allows to get the most recent trip updates of each content type for trips**","operationId":"getTripUpdateGetNdp","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":"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":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"The date of the trip update.","title":"Date"},"description":"The date of the trip update."},{"name":"trip_id","in":"query","required":true,"schema":{"type":"string","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."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripUpdateSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TripNotFound"},{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Gettripupdategetndp"}}},"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"}},"/api/v4/groups/{group_id}/trip-updates/get":{"get":{"tags":["trip-updates"],"summary":"Get the most recent trip updates.","description":"**This endpoint allows to get the most recent trip updates of each content type for trips**","operationId":"getTripUpdateGet","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":"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":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"The date of the trip update.","title":"Date"},"description":"The date of the trip update."},{"name":"trip_id","in":"query","required":true,"schema":{"type":"string","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."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripUpdateSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TripNotFound"},{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Gettripupdateget"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/trip-updates/search":{"get":{"tags":["trip-updates","ndp"],"summary":"Find trip updates for a date","description":"**This endpoint allows you to get the trip updates of the different trips for a given group_id, gtfs_id, and date**","operationId":"getTripUpdateSearchNdp","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":"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":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"The date of the trip update.","title":"Date"},"description":"The date of the trip update."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TripUpdateSchema"},"title":"Response Gettripupdatesearchndp"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Gettripupdatesearchndp"}}},"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"}},"/api/v4/groups/{group_id}/trip-updates/search":{"get":{"tags":["trip-updates"],"summary":"Find trip updates for a date","description":"**This endpoint allows you to get the trip updates of the different trips for a given group_id, gtfs_id, and date**","operationId":"getTripUpdateSearch","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":"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":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"The date of the trip update.","title":"Date"},"description":"The date of the trip update."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TripUpdateSchema"},"title":"Response Gettripupdatesearch"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Gettripupdatesearch"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-updates":{"put":{"tags":["trip-updates"],"summary":"Create or update a trip update.","description":"**This endpoint allows you to create or update a trip update for a specific trip**\n\nRole needed: operator","operationId":"putTripUpdates","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":"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":"trip_id","in":"query","required":true,"schema":{"type":"string","title":"Trip Id"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"The date of the trip update.","title":"Date"},"description":"The date of the trip update."},{"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/TripUpdateCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__75"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Puttripupdates"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GtfsTripNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Puttripupdates"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-updates/many":{"put":{"tags":["trip-updates"],"summary":"Create or update a trip update for a period.","description":"**This endpoint allows you to create or update a trip update for a specific trip for a period**\n\nRole needed: operator","operationId":"putTripUpdateMany","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":"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":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"trip_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"deprecated":true,"title":"Trip Id"},"deprecated":true},{"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/TripUpdateCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__76"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Puttripupdatemany"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Puttripupdatemany"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/deviations":{"get":{"tags":["trip-updates"],"summary":"Every trip-update as a deviation row.","description":"**Returns one row per trip-update. Impacted trips are resolved against the group's current GTFS.**","operationId":"getDeviations","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/DeviationSchema"},"title":"Response Getdeviations"}}}},"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"}},"/api/v4/groups/{group_id}/trip-updates/validate":{"get":{"tags":["trip-updates"],"summary":"Check that stored trip-updates remain compatible with a GTFS.","description":"**Validates every non-obsolete trip-update with end_date >= today against the supplied GTFS file. The window is implicit: from today (UTC) to the max end_date of active trip-updates. Returns ``{status: 'valid'}`` when nothing is wrong; otherwise ``{status: 'error', deviation_errors: [...]}`` with one entry per impacted trip-update.**","operationId":"getTripUpdateValidate","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripUpdateValidationResultSchema"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/deviations/{trip_update_id}":{"patch":{"tags":["trip-updates"],"summary":"Patch an existing deviation.","description":"**Edits ``date``, ``end_date``, ``title`` and/or ``excluded_trip_ids`` of a deviation identified by its MongoDB _id. Only the fields explicitly provided in the body are updated. Date guards: neither date nor end_date can be set before today, and end_date must stay >= date.**\n\nRole needed: operator","operationId":"patchDeviation","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_update_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Trip Update 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/TripUpdatePatchSchema"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__77"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchdeviation"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/trip-updates/soft-delete":{"patch":{"tags":["trip-updates"],"summary":"Bulk soft-delete trip-updates by capping their end_date at yesterday.","description":"**Sets ``end_date`` of every listed trip-update to yesterday. Trip-updates whose ``date`` is in the future are deleted outright since they would end up with an empty range.**\n\nRole needed: operator","operationId":"patchTripUpdateSoftDelete","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/TripUpdateSoftDeleteSchema"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Unprocessable Content"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__77"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchtripupdatesoftdelete"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/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}/export/vehicle-exploitation/send-sftp":{"post":{"tags":["vehicle-exploitation"],"summary":"Send the vehicle exploitation CSV (PCS-CNT format) to the group SFTP.","description":"**Generate the PCS-CNT CSV for the given date range and upload it to the SFTP target configured on the group's SFTP integration, via the Pysae SFTP bastion.**\n\nRole needed: operator","operationId":"postExportVehicleExploitationSendSftp","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":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleExploitationSendSftpResult"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpIntegrationNotConfiguredException"}}},"description":"Bad Request"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpSendFailedException"}}},"description":"Service Unavailable"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__78"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postexportvehicleexploitationsendsftp"}}},"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"}},"/api/v4/groups/{group_id}/export/vehicle-exploitation/send-sftp-per-vehicle":{"post":{"tags":["vehicle-exploitation"],"summary":"Send one PCS-CNT CSV per vehicle (equipped with counting cells) to the group SFTP.","description":"**Generate one PCS-CNT CSV per vehicle that has passenger counting data and upload each file sequentially to the SFTP target configured on the group's SFTP integration, via the Pysae SFTP bastion. File IDs are reserved atomically per vehicle before each send; concurrent or partially-failed runs may leave gaps in the global fileId sequence. Idempotent on retry: vehicles already marked as sent for the same period are skipped.**\n\nRole needed: operator","operationId":"postExportVehicleExploitationSendSftpPerVehicle","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":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VehicleExploitationSendSftpResult"},"title":"Response Postexportvehicleexploitationsendsftppervehicle"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpIntegrationNotConfiguredException"}}},"description":"Bad Request"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpSendFailedException"}}},"description":"Service Unavailable"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__78"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postexportvehicleexploitationsendsftppervehicle"}}},"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"}},"/api/v4/groups/{group_id}/export/vehicle-exploitation/daily-sftp-per-vehicle":{"post":{"tags":["vehicle-exploitation"],"summary":"Daily job: send yesterday's PCS-CNT files (one per counting vehicle) to SFTP.","description":"**Scheduled entry point called nightly at 1am by Prefect: generate one PCS-CNT CSV per vehicle equipped with counting cells for the previous day and upload each file sequentially to the group's SFTP integration via the Pysae SFTP bastion.**\n\nRole needed: operator","operationId":"postExportVehicleExploitationDailySftpPerVehicle","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":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VehicleExploitationSendSftpResult"},"title":"Response Postexportvehicleexploitationdailysftppervehicle"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpIntegrationNotConfiguredException"}}},"description":"Bad Request"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SftpSendFailedException"}}},"description":"Service Unavailable"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__78"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postexportvehicleexploitationdailysftppervehicle"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/planning":{"get":{"tags":["planning","ndp"],"summary":"Get plannings.","description":"**This endpoint is used to get plannings.**\n\nRole needed: driver, reader, operator","operationId":"getPlanningNdp","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","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 Getplanningndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__79"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getplanningndp"}}},"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"}},"/api/v4/groups/{group_id}/planning":{"get":{"tags":["planning"],"summary":"Get plannings.","description":"**This endpoint is used to get plannings.**\n\nRole needed: driver, reader, operator","operationId":"getPlanning","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","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/pysae__common__http__base__RoleDependency__79"},{"$ref":"#/components/schemas/NoRole"}],"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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__4"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putplanning"}}},"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}/planning/imports":{"get":{"tags":["planning"],"summary":"List planning import history.","description":"**This endpoint lists the planning imports of a group, most recent first.**\n\nRole needed: driver, reader, operator","operationId":"getPlanningImports","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Maximum number of import records to return.","default":50,"title":"Limit"},"description":"Maximum number of import records to return."},{"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/PlanningImportSchema"},"title":"Response Getplanningimports"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__79"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getplanningimports"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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}},"/nav-data-processor-api/v4/groups/{group_id}/vehicles/{vehicle_lenient_key}/data":{"put":{"tags":["vehicles-data"],"summary":"Update Vehicle Data","description":"**This endpoint allows you to update telematic data of a vehicle.**\n\nRole needed: vehicle","operationId":"putVehicleDataNdp","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":"vehicle_lenient_key","in":"path","required":true,"schema":{"type":"string","description":"The id, fleet_number or plate_number of the vehicle","title":"Vehicle Lenient Key"},"description":"The id, fleet_number or plate_number of the vehicle"},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleDataSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__80"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putvehicledatandp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VehicleLenientKeyNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putvehicledatandp"}}},"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"}},"/api/v4/groups/{group_id}/session-counters/{app}":{"post":{"tags":["session_counters"],"summary":"Increment Sessions V4","operationId":"postSessionCounter","parameters":[{"name":"app","in":"path","required":true,"schema":{"$ref":"#/components/schemas/App"}},{"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":{"204":{"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"}},"/api/v4/groups/{group_id}/session-counters":{"get":{"tags":["session_counters"],"summary":"Get Sessions V4","description":"Role needed: limited_reader, reader, operator","operationId":"getSessionCounters","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","pattern":"\\d{8}$","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","pattern":"\\d{8}$","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":{"$ref":"#/components/schemas/SessionCountSchemaV4"},"title":"Response Getsessioncounters"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__81"}],"title":"Response 403 Getsessioncounters"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/shape-dist-traveled":{"patch":{"summary":"Compute Shape Distance Traveled","description":"**This endpoint allows to compute the shape_dist_traveled for a specific gtfs_id.**\n\nRole needed: operator","operationId":"patchGtfsShapeDistTraveled","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"name":"keep-existing","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Keep-Existing"}},{"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/TaskIdSchema"},{"type":"null"}],"title":"Response Patchgtfsshapedisttraveled"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchgtfsshapedisttraveled"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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/pysae__common__http__base__RoleDependency__43"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getgtfsshapedisttraveled"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskFailed"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeTaskNotFound"}}},"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}/shape-dist-traveled-compute":{"patch":{"summary":"Compute Shape Distance Traveled Old","description":"**This endpoint allows to compute the shape_dist_traveled for a specific gtfs_id.**\n\nRole needed: operator","operationId":"patchGtfsShapeDistTraveledCompute","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"name":"keep-existing","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Keep-Existing"}},{"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/ShapeDistTraveledSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchgtfsshapedisttraveledcompute"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/pub-groups":{"get":{"tags":["groups"],"summary":"Returns public group list","operationId":"getPubGroups","parameters":[{"name":"feature","in":"query","required":true,"schema":{"anyOf":[{"const":"display_info","type":"string"},{"const":"display_screen","type":"string"}],"description":"Feature the group need to have","title":"Feature"},"description":"Feature the group need to have"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GroupPublicSchemaV3"},"title":"Response Getpubgroups"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups":{"get":{"tags":["groups","ndp"],"summary":"Returns groups list","description":"**This endpoint allows to get a list of groups.**","operationId":"getGroupsNdp","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"include_archived","in":"query","required":false,"schema":{"type":"boolean","description":"Include archived groups (super-admin only)","default":false,"title":"Include Archived"},"description":"Include archived groups (super-admin only)"},{"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/GroupSchemaV3-Output"},"title":"Response Getgroupsndp"}}}},"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"}},"/api/v4/groups":{"get":{"tags":["groups"],"summary":"Returns groups list","description":"**This endpoint allows to get a list of groups.**","operationId":"getGroups","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"include_archived","in":"query","required":false,"schema":{"type":"boolean","description":"Include archived groups (super-admin only)","default":false,"title":"Include Archived"},"description":"Include archived groups (super-admin only)"},{"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/GroupSchemaV3-Output"},"title":"Response Getgroups"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"post":{"tags":["groups"],"summary":"Create a group","description":"**This endpoint allows to create a group.**","operationId":"postGroups","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/GroupCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"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"}},"/nav-data-processor-api/v4/select-groups":{"get":{"tags":["groups","ndp"],"summary":"Returns groups list for selection","description":"**This endpoint allows to get a list of groups for selection.**","operationId":"getSelectGroupsNdp","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/SelectGroupSchema"},"title":"Response Getselectgroupsndp"}}}},"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"}},"/api/v4/select-groups":{"get":{"tags":["groups"],"summary":"Returns groups list for selection","description":"**This endpoint allows to get a list of groups for selection.**","operationId":"getSelectGroups","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/SelectGroupSchema"},"title":"Response Getselectgroups"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/pub-groups/{group_id}":{"get":{"tags":["groups"],"summary":"Return the public group for the given group_id.","description":"**This endpoint allows to get a group by its id.**","operationId":"getPubGroup","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"feature","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Feature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupPublicSchemaV3"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DisplayFeedDisabled"},{"$ref":"#/components/schemas/LockedFeature"}],"title":"Response 403 Getpubgroup"}}},"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"}},"/api/v4/groups/{group_id}":{"get":{"tags":["groups"],"summary":"Return the group for the given group_id.","description":"**This endpoint allows to get a group by its id.**","operationId":"getGroup","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"feature","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Feature"}},{"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/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoRole"}}},"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"},"put":{"tags":["groups"],"summary":"Modify a group","description":"**This endpoint allows to modify a group by its id.**","operationId":"putGroup","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Input"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"},"delete":{"tags":["groups"],"summary":"Delete a group","description":"**This endpoint allows to delete a group.**","operationId":"deleteGroup","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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/archive":{"post":{"tags":["groups"],"summary":"Archive a group","description":"**Reversibly hide a group from browse listings. Does not delete it nor touch its Auth0 organization.**","operationId":"postArchive","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/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/unarchive":{"post":{"tags":["groups"],"summary":"Unarchive a group","description":"**Restore an archived group into the default browse listings.**","operationId":"postUnarchive","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/GroupSchemaV3-Output"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/groups/{group_id}/code":{"post":{"tags":["groups"],"summary":"Create, prolong or keep an access code","description":"**This endpoint allows create, prolong or keep an access code for a group.**\n\nRole needed: admin, operator","operationId":"postCode","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":"mode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/CodeGroupPostMode","description":"* `create` - new code will be created and returned* `keep` - existing code will be returned. If no code exists, a new one will be created.* `prolong` - existing code will have its expiration date prolonged and be returned. If no code exists, a new one will be created.","default":"create"},"description":"* `create` - new code will be created and returned* `keep` - existing code will be returned. If no code exists, a new one will be created.* `prolong` - existing code will have its expiration date prolonged and be returned. If no code exists, a new one will be created."},{"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/CodeGroupSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postcode"}}},"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"},"get":{"tags":["groups"],"summary":"Get current group access code","description":"**This endpoint allows to get the current access code for a group.**\n\nRole needed: admin, operator","operationId":"getCode","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":{"$ref":"#/components/schemas/CodeGroupSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__82"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getcode"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupAccessCodeNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getcode"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["groups"],"summary":"Delete any access code","description":"**This endpoint allows to delete any access code for a group.**\n\nRole needed: admin, operator","operationId":"deleteCode","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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletecode"}}},"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"}},"/api/v4/groups/{group_id}/logo":{"get":{"tags":["groups"],"summary":"Get group logo","description":"**This endpoint allows to get the logo of a group.**","operationId":"getLogo","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."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"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"},"put":{"tags":["groups"],"summary":"Update group logo","description":"**This endpoint allows to update the logo of a group.**\n\nRole needed: operator","operationId":"putLogo","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"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_putLogo"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__83"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putlogo"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsupportedFileContentType"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["groups"],"summary":"Delete group logo","description":"**This endpoint allows to delete the logo of a group.**\n\nRole needed: operator","operationId":"deleteLogo","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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletelogo"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/connected-vehicles":{"get":{"tags":["groups"],"summary":"Pick of usage for a group","description":"**Get the pick usage (concurrent duties at a time) for a group with the timestamp at which moment it occured**","operationId":"getConnectedVehicles","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"start_ts","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]}],"title":"Start Ts"},"description":"Optional, default at now minus 30 days by default"},{"name":"end_ts","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]}],"title":"End Ts"},"description":"Optional, default at now by default"},{"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":{"anyOf":[{"$ref":"#/components/schemas/DailyActiveVehiclesSchema"},{"$ref":"#/components/schemas/NoActiveDeviceSchema"}],"title":"Response Getconnectedvehicles"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRole"}}},"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"}},"/api/v4/connected-vehicles":{"get":{"tags":["groups"],"summary":"Each pick of usage for each groups","description":"**Get the pick usage (concurrent duties at a time) for each group with the timestamp at which moment it occured**","operationId":"getGlobalConnectedVehicles","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"start_ts","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]}],"title":"Start Ts"},"description":"Optional, default at now minus 30 days by default"},{"name":"end_ts","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]}],"title":"End Ts"},"description":"Optional, default at now by default"},{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group 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":"object","additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/DailyActiveVehiclesSchema"},{"$ref":"#/components/schemas/NoActiveDeviceSchema"}]},"title":"Response Getglobalconnectedvehicles"}}}},"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"}},"/api/v4/features":{"get":{"tags":["groups"],"summary":"Get unlockable features","description":"**This endpoint allows to list all possible unlockable features disponible in pysae.**","operationId":"getFeatures","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","uniqueItems":true,"title":"Response Getfeatures"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/location-metadata":{"get":{"tags":["location-metadata"],"summary":"Get Location Metadata","description":"**This endpoint allows you to get the location metadata of a device.**\n\nRole needed: driver, operator","operationId":"getDeviceLocationMetadataNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/LocationMetadataSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicelocationmetadatandp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Getdevicelocationmetadatandp"}}},"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"},"put":{"tags":["location-metadata"],"summary":"Update Location Metadata","description":"**This endpoint allows you to update the location metadata of a device.**\n\nRole needed: driver, operator","operationId":"putDeviceLocationMetadataNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationMetadataSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicelocationmetadatandp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Putdevicelocationmetadatandp"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/system-metadata":{"get":{"tags":["system-metadata"],"summary":"Get System Metadata","description":"**This endpoint allows you to get the system metadata of a device.**\n\nRole needed: driver, operator","operationId":"getDeviceSystemMetadataNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/SystemMetadataSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getdevicesystemmetadatandp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Getdevicesystemmetadatandp"}}},"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"},"put":{"tags":["system-metadata"],"summary":"Update System Metadata","description":"**This endpoint allows you to update the system metadata of a device.**\n\nRole needed: driver, operator","operationId":"putDeviceSystemMetadataNdp","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":"device_id","in":"path","required":true,"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemMetadataSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdevicesystemmetadatandp"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__18"}],"title":"Response 403 Putdevicesystemmetadatandp"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/vehicles":{"get":{"tags":["vehicles","ndp"],"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: limited_reader, technical, driver, admin, external_reader, reader, operator","operationId":"getVehiclesNdp","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 Getvehiclesndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__53"}],"title":"Response 403 Getvehiclesndp"}}},"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"}},"/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: limited_reader, technical, driver, admin, external_reader, reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__53"}],"title":"Response 403 Getvehicles"}}},"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":["vehicles"],"summary":"Add new vehicle to the DB.","description":"**This endpoint allows to add a new vehicle to the DB.**\n\nRole needed: admin, operator","operationId":"postVehicles","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/VehicleCreateSchema"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Postvehicles"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__35"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Postvehicles"}}},"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"}},"/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, limited_reader, driver, external_reader, operator","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__58"}],"title":"Response 403 Getvehicle"}}},"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},"put":{"tags":["vehicles"],"summary":"Modify all fields of the vehicle.","description":"**This endpoint allows to modify all fields of the vehicle.**\n\nRole needed: admin, operator","operationId":"putVehicle","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 modify","title":"Vehicle Id"},"description":"The id of the vehicle you want to modify"},{"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/VehicleUpdateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VehicleNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putvehicle"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__84"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Putvehicle"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/vehicles/{vehicle_id}/status":{"patch":{"tags":["vehicles"],"summary":"Update vehicle status by id","description":"**This endpoint allows to update the status of a vehicle by id.**\n\nRole needed: admin, operator","operationId":"patchVehicleStatus","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","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the vehicle you want to update","examples":["670f84254c28ffdaae0f462d"],"title":"Vehicle Id"},"description":"The id of the vehicle you want to update"},{"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/VehicleStatusSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__85"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchvehiclestatus"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VehicleNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Patchvehiclestatus"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/vehicles-status":{"post":{"tags":["vehicles"],"summary":"Set status for vehicles by id","description":"**This endpoint allows to set a status on vehicles 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: admin, operator","operationId":"postVehiclesStatus","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/VehicleBulkStatusSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleBulkStatusResultSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postvehiclesstatus"}}},"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"}},"/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, limited_reader, driver, external_reader, operator","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;"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__58"}],"title":"Response 403 Getexportvehicles"}}},"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}/import/vehicles":{"post":{"tags":["vehicles"],"summary":"Import a csv file with vehicles","description":"**This endpoint allows to import a csv file with vehicles**\n\nRole needed: admin, operator","operationId":"postImportVehicles","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":"compare_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compare Only"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_postImportVehicles"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VehicleImportResultSchema"},{"$ref":"#/components/schemas/CompareSchema"}],"title":"Response Postimportvehicles"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__86"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postimportvehicles"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleImportValidationFailed"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/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/vehicle-amount":{"get":{"tags":["vehicles","stats"],"summary":"Number of registered vehicle by groups","description":"**Get the number of vehicle registered for all groups.**","operationId":"getGlobalVehicleAmount","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":"object","additionalProperties":{"$ref":"#/components/schemas/VehicleAmountSchema"},"title":"Response Getglobalvehicleamount"}}}},"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-deployment":"stats"}},"/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},"post":{"tags":["gtfs"],"summary":"Create or duplicate a GTFS file","description":"**This endpoint allows to create or duplicate a GTFS file for a specific group.**\n\nRole needed: operator","operationId":"postGtfsList","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"file_name","in":"query","required":true,"schema":{"type":"string","description":"The name of the file","title":"File Name"},"description":"The name of the file"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"id of a file to be duplicated. If null : new file is created.","title":"Source"},"description":"id of a file to be duplicated. If null : new file is created."},{"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":{"$ref":"#/components/schemas/GtfsFileSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__87"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postgtfslist"}}},"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"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}":{"put":{"tags":["gtfs"],"summary":"Update unpublished GTFS file.","description":"**This endpoint allows to update the GTFS file for a specific gtfs_id.**\n\nA zip with txt docs is uploaded in a form with param file.\n\nRole needed: operator","operationId":"putGtfs","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"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":{"$ref":"#/components/schemas/GtfsFileSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__88"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfs"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["gtfs"],"summary":"Delete unpublished GTFS file.","description":"**This endpoint allows to delete the GTFS file for a specific gtfs_id.**\n\nRole needed: operator","operationId":"deleteGtfs","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__88"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfs"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"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/{gtfs_id}/delete-unused-resource":{"patch":{"tags":["gtfs"],"summary":"Delete invalid id references for a given gtfs resource","description":"**This endpoint allows to delete invalid id references for a given gtfs resource.**\n\nReturns deleted ids\n\nRole needed: operator","operationId":"patchGtfsDeleteUnusedResource","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gtfs Id"}},{"name":"gtfs-resource","in":"query","required":true,"schema":{"$ref":"#/components/schemas/DeletableUnused"}},{"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":{"type":"string"},"title":"Response Patchgtfsdeleteunusedresource"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__3"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Patchgtfsdeleteunusedresource"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/publish":{"post":{"tags":["gtfs"],"summary":"Publish the gtf_file specified","description":"**Publish immediatly a gtfs, it will also cancel existing schedule for this gtfs.**\n\nRole needed: operator","operationId":"postGtfsPublish","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":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__89"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postgtfspublish"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postgtfspublish"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateLoadInProgress"}}},"description":"Conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-scopes":"gtfs.publish","x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/schedule":{"put":{"tags":["gtfs"],"summary":"Create or update a gtfs publication schedule","description":"**This endpoint allows to schedule a gtfs publication.**\n\n- If the `schedule` is given, it will create or update the schedule of the gtfs.\n- If it is not, it will cancel any existing schedule.\n\nRole needed: operator","operationId":"putGtfsSchedule","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","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":"schedule","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"}],"title":"Schedule"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__90"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfsschedule"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putgtfsschedule"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/archive":{"post":{"tags":["gtfs"],"summary":"Archive a GTFS file","description":"**This endpoint allows to archive a GTFS file for a specific gtfs_id.**\n\nRole needed: operator","operationId":"postGtfsArchive","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"gtfs_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gtfs 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":"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"}}}},"409":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsInUse"},{"$ref":"#/components/schemas/GtfsScheduled"}],"title":"Response 409 Postgtfsarchive"}}},"description":"Conflict"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__91"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postgtfsarchive"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GtfsNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postgtfsarchive"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/restore":{"post":{"tags":["gtfs"],"summary":"Archive a GTFS file","description":"**This endpoint allows to restore a GTFS file for a specific gtfs_id.**\n\nRole needed: operator","operationId":"postGtfsRestore","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},{"name":"gtfs_id","in":"path","required":true,"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":{"$ref":"#/components/schemas/GtfsFileSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__88"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postgtfsrestore"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsNotFound"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/gtfs/validity":{"post":{"tags":["gtfs"],"summary":"Check gtfs validity","operationId":"postGtfsValidity","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_postGtfsValidity"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/exports":{"post":{"tags":["exports"],"summary":"Request an async export.","description":"**Create an async export job for the group and schedule its execution. Returns 202 with the created job id; poll the job to get its status and download URL.**\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"postExports","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/ExportCreateSchema"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportCreatedSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__92"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postexports"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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"},"get":{"tags":["exports"],"summary":"List the caller's async export jobs.","description":"**List the async export jobs requested by the calling user for the group, most recent first.**\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"getExports","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/ExportJobSchema"},"title":"Response Getexports"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__92"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getexports"}}},"description":"Forbidden"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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"}},"/api/v4/groups/{group_id}/exports/{job_id}":{"get":{"tags":["exports"],"summary":"Get an async export job.","description":"**Return the status of an async export job; once it has succeeded, a freshly-signed download URL is included.**\n\nRole needed: limited_reader, external_reader, reader, operator","operationId":"getExport","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job 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":"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/ExportJobSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__93"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getexport"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ExportJobNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Getexport"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/gtfs/{gtfs_id}/shapes":{"get":{"tags":["gtfs"],"summary":"Find gtfs shapes","description":"**This endpoint allows to get the list of shapes for a specific gtfs_id.**","operationId":"getGtfsShapesNdp","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 Getgtfsshapesndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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},"post":{"summary":"Create multiple shapes","description":"**This endpoint allows to create multiple shapes for a specific gtfs_id.**\n\nRole needed: operator","operationId":"postGtfsShapes","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"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":{"type":"array","items":{"$ref":"#/components/schemas/ShapeGTFSCreateSchema"},"title":"Shapes"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postgtfsshapes"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/gtfs/{gtfs_id}/shapes/{shape_id}":{"put":{"summary":"Update gtfs shape","description":"**This endpoint allows to update a shape for a specific gtfs_id.**\n\nRole needed: operator","operationId":"putGtfsShape","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"shape_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the shape to upsert","title":"Shape Id"},"description":"The id of the shape to upsert"},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShapeGTFSUpsertSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShapeGTFSSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfsshape"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete shape","description":"**This endpoint allows to delete a shape for a specific gtfs_id.**\n\nRole needed: operator","operationId":"deleteGtfsShape","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"shape_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the shape to delete","title":"Shape Id"},"description":"The id of the shape to delete"},{"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/ShapeGTFSSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__94"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfsshape"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsShapeNotFound"}}},"description":"Not Found"}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/devices/{device_id}/trip-events":{"post":{"tags":["trip_events"],"summary":"Create Trip Event","description":"**This endpoint allows you to create a trip event**\n\nRole needed: driver","operationId":"postDeviceTripEventsNdp","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":{"type":"string","description":"The id of the device you want to retrieve datas from.","examples":["837e726d2f25af9a","e627452b4a502323","943a739adc3ce43a"],"title":"Device Id"},"description":"The id of the device 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/TripEventSchemaDeviceCreate"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__13"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdevicetripeventsndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeviceNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Postdevicetripeventsndp"}}},"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"}},"/nav-data-processor-api/v4/groups/{group_id}/gtfs/{gtfs_id}/calendars":{"get":{"tags":["gtfs"],"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":"getGtfsCalendarsNdp","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 Getgtfscalendarsndp"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/nav-data-processor-api","x-deployment":"ndp"}},"/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},"put":{"summary":"Create or Update a calendar in the gtfs identified by gtfs_id","description":"**This endpoint allows to create or update a calendar in the gtfs identified by gtfs_id.**\n\nRole needed: operator","operationId":"putGtfsCalendar","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"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/CalendarGTFSSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarGTFSSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__52"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putgtfscalendar"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"summary":"Delete calendar specified by service_id","description":"**This endpoint allows to delete a calendar specified by service_id.**\n\nRole needed: operator","operationId":"deleteGtfsCalendar","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"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"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__95"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletegtfscalendar"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GtfsCalendarNotFound"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidGTFSId"}}},"description":"Unprocessable Content"}},"x-api-version":4,"x-path-prefix":"/api"}},"/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"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}},"description":"Unauthorized"},"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":["roles"],"summary":"Upsert user with its role","description":"**This endpoint allows you to create a user with a role in a group.**\n\nCreate user if not exist, delete all previous role of the user then create a new role.\n\nRole needed: admin","operationId":"postRoles","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/UserCreateRoleSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Postroles"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__96"},{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/ForbiddenDifferentTeam"}],"title":"Response 403 Postroles"}}},"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"}},"/api/v4/groups/{group_id}/roles/{user_id}":{"put":{"tags":["roles"],"summary":"Update a role of a user in a group.","description":"**This endpoint allows you to update a role of a user in a group.**\n\nUpdate role of a user in a group.\n\nRole needed: admin","operationId":"putRole","security":[{"SessionCookie":[]},{"SessionBearerToken":[]},{"OpenIDConnect":[]},{"ApiKey":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the user you want to update","title":"User Id"},"description":"The id of the user you want to update"},{"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/RoleUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleSchema"}}}},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RoleNotFound"},{"$ref":"#/components/schemas/UserNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putrole"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ForbiddenDifferentTeam"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__97"},{"$ref":"#/components/schemas/NoUser"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putrole"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["roles"],"summary":"Delete a role of a user in a group","description":"**This endpoint allows you to delete a role of a user in a group.**\n\nRole needed: admin","operationId":"deleteRole","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":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The id of the user you want to delete","title":"User Id"},"description":"The id of the user you want to delete"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__98"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deleterole"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UserNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deleterole"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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: limited_reader, external_reader, reader, operator","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":"20260828","title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string","pattern":"\\d{8}$","default":"20260828","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"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getstatpassengercounts"}}},"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}/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: limited_reader, external_reader, reader, operator","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"}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__7"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Getexportpassengercounts"}}},"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}},"/nav-data-processor-api/v4/groups/{group_id}/config/duty-checklist":{"get":{"tags":["duty-checklist","ndp"],"summary":"Get configuration of duty checklist","description":"**This endpoint allows you to get the configuration of duty checklist**\n\nRole needed: driver, admin, operator","operationId":"getConfigDutyChecklistNdp","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":{"$ref":"#/components/schemas/DutyChecklistSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__67"}],"title":"Response 403 Getconfigdutychecklistndp"}}},"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"}},"/api/v4/groups/{group_id}/config/duty-checklist":{"get":{"tags":["duty-checklist"],"summary":"Get configuration of duty checklist","description":"**This endpoint allows you to get the configuration of duty checklist**\n\nRole needed: driver, admin, operator","operationId":"getConfigDutyChecklist","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":{"$ref":"#/components/schemas/DutyChecklistSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__67"}],"title":"Response 403 Getconfigdutychecklist"}}},"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"},"put":{"tags":["duty-checklist"],"summary":"Set configuration of duty checklist","description":"**This endpoint allows you to set the configuration of duty checklist**\n\nFeature needed: custom_duty_checklist\n\nRole needed: admin, operator","operationId":"putConfigDutyChecklist","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/DutyChecklistSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putconfigdutychecklist"}}},"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"}},"/nav-data-processor-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: driver, external_reader, reader, operator","operationId":"getDangerZonesNdp","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 Getdangerzonesndp"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoRole"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__37"}],"title":"Response 403 Getdangerzonesndp"}}},"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"}},"/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: driver, external_reader, reader, operator","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__37"}],"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},"post":{"tags":["danger_zones"],"summary":"Create Danger Zone","description":"**This endpoint allows you to create a danger zone for a group.**\n\nFeature needed: danger_zones\n\nRole needed: operator","operationId":"postDangerZones","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/DangerZoneCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DangerZoneSchema"}}}},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__8"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Postdangerzones"}}},"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"}},"/api/v4/groups/{group_id}/danger-zones/{danger_zone_id}":{"put":{"tags":["danger_zones"],"summary":"Update Danger Zone","description":"**This endpoint allows you to update a danger zone for a group.**\n\nFeature needed: danger_zones\n\nRole needed: operator","operationId":"putDangerZone","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":"danger_zone_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the targeted danger zone","examples":["670f84254c28ffdaae0f462d"],"title":"Danger Zone Id"},"description":"The id of the targeted danger zone"},{"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/DangerZoneCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__99"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putdangerzone"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DangerZoneNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putdangerzone"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"delete":{"tags":["danger_zones"],"summary":"Delete","description":"**This endpoint allows you to delete a danger zone for a group.**\n\nFeature needed: danger_zones\n\nRole needed: operator","operationId":"deleteDangerZone","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":"danger_zone_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","description":"The id of the targeted danger zone","examples":["670f84254c28ffdaae0f462d"],"title":"Danger Zone Id"},"description":"The id of the targeted danger zone"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__99"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Deletedangerzone"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DangerZoneNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Deletedangerzone"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/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: technical, admin, operator, reader","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"}}}},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoipProviderUnavailable"}}},"description":"Service Unavailable"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GroupNotFound"},{"$ref":"#/components/schemas/VoipGroupSettingsNotFound"}],"title":"Response 404 Getvoipdevices"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__100"},{"$ref":"#/components/schemas/NoRole"}],"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}},"/nav-data-processor-api/v4/groups/{group_id}/urgency":{"post":{"tags":["urgency","ndp"],"summary":"Create Urgency","description":"**This endpoint allows you to create an urgency.**\n\nFeature needed: urgency\n\nRole needed: driver, operator","operationId":"postUrgencyNdp","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrgencyCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrgencyCreatedSchema"}}}},"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/InvalidTeam"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__101"}],"title":"Response 403 Posturgencyndp"}}},"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"}},"/api/v4/groups/{group_id}/urgency":{"post":{"tags":["urgency"],"summary":"Create Urgency","description":"**This endpoint allows you to create an urgency.**\n\nFeature needed: urgency\n\nRole needed: driver, operator","operationId":"postUrgency","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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrgencyCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrgencyCreatedSchema"}}}},"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/InvalidTeam"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__101"}],"title":"Response 403 Posturgency"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"},"get":{"tags":["urgency"],"summary":"Find Urgencies","description":"**This endpoint allows you to get all urgencies created.**\n\nFeature needed: urgency\n\nRole needed: driver, operator","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/InvalidTeam"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__101"}],"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}/urgency/acknowledge/{urgency_id}":{"post":{"tags":["urgency"],"summary":"Acknowledge urgency","description":"**This endpoint allows you to acknowledge an urgency.**\n\nFeature needed: urgency\n\nRole needed: driver, operator","operationId":"postUrgencyAcknowledge","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":"urgency_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Urgency 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":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UnknowledgedUrgencyNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Posturgencyacknowledge"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoUser"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__102"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Posturgencyacknowledge"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/api/v4/groups/{group_id}/urgency/resolve/{urgency_id}":{"post":{"tags":["urgency"],"summary":"Resolve Urgency","description":"**This endpoint allows you to resolve an urgency.**\n\nFeature needed: urgency\n\nRole needed: driver, operator","operationId":"postUrgencyResolve","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":"urgency_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"],"title":"Urgency 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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrgencyResolutionCreateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UnresolvedUrgencyNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Posturgencyresolve"}}},"description":"Not Found"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NoUser"},{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__103"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Posturgencyresolve"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-api-version":4,"x-path-prefix":"/api"}},"/nav-data-processor-api/v4/groups/{group_id}/vehicles/{vehicle_lenient_key}/location":{"put":{"tags":["vehicles-location"],"summary":"Update Vehicle Location","description":"**This endpoint allows you to update the location of a vehicle.**\n\nRole needed: vehicle","operationId":"putVehicleLocationNdp","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":"vehicle_lenient_key","in":"path","required":true,"schema":{"type":"string","description":"The id, fleet_number or plate_number of the vehicle","title":"Vehicle Lenient Key"},"description":"The id, fleet_number or plate_number of the vehicle"},{"name":"equipment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment 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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationUpdateSchema"}}}},"responses":{"204":{"description":"Successful Response"},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependency__80"},{"$ref":"#/components/schemas/NoRole"}],"title":"Response 403 Putvehiclelocationndp"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VehicleLenientKeyNotFound"},{"$ref":"#/components/schemas/GroupNotFound"}],"title":"Response 404 Putvehiclelocationndp"}}},"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"}}},"components":{"schemas":{"APIIntegrationId":{"type":"string","enum":["businfo","cadencity","instavox","mcf","nocrates","rail_data","sftp","webreathe","message_notifications"],"title":"APIIntegrationId","description":"A third-party system the API exchanges data with."},"AepIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0},"local_port":{"type":"integer","title":"Local Port","default":0},"trip_id_converter":{"type":"string","title":"Trip Id Converter","default":""},"stop_id_converter":{"type":"string","title":"Stop Id Converter","default":""},"route_id_converter":{"type":"string","title":"Route Id Converter","default":""}},"type":"object","title":"AepIntegrationSchema"},"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"]},"AlertCreateSchema":{"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"}},"type":"object","required":["header_text"],"title":"AlertCreateSchema"},"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"]},"AlertIdSchema":{"properties":{"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["_id"],"title":"AlertIdSchema"},"AlertNotFound":{"properties":{"code":{"type":"string","const":"ALERT_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The alert has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/AlertNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"AlertNotFound","description":"The alert has not been found"},"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","description":"Context of the AlertNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"AllTeams":{"type":"integer","enum":[1],"title":"AllTeams"},"AnonymisationRequestSchema":{"properties":{"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","title":"AnonymisationRequestSchema"},"AnonymisationResultSchema":{"properties":{"group_id":{"type":"string","title":"Group Id"},"cutoff_date":{"type":"string","format":"date-time","title":"Cutoff Date"},"anonymised_count":{"type":"integer","title":"Anonymised Count"},"dry_run":{"type":"boolean","title":"Dry Run"}},"type":"object","required":["group_id","cutoff_date","anonymised_count","dry_run"],"title":"AnonymisationResultSchema"},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The api key has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/ApiKeyNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"ApiKeyNotFound","description":"The api key has not been found"},"ApiKeyNotFoundPayload":{"properties":{"api_key_id":{"type":"string","title":"Api Key Id"}},"type":"object","required":["api_key_id"],"title":"ApiKeyNotFoundPayload","description":"Context of the ApiKeyNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"App":{"type":"string","enum":["info","screen"],"title":"App","description":"Public application a traveller opens a session on."},"ArchivalCollection":{"type":"string","enum":["history","gtfs"],"title":"ArchivalCollection"},"ArchivalConfigurationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"frequency":{"$ref":"#/components/schemas/ArchivalFrequency","default":"monthly"},"liveRetentionMonths":{"type":"integer","minimum":1.0,"title":"Liveretentionmonths","default":15},"collections":{"items":{"$ref":"#/components/schemas/ArchivalCollection"},"type":"array","title":"Collections"}},"type":"object","title":"ArchivalConfigurationSchema"},"ArchivalFrequency":{"type":"string","enum":["monthly","weekly"],"title":"ArchivalFrequency"},"AudioCodec":{"type":"integer","enum":[1,2],"title":"AudioCodec","description":"Codec used to encode voice PCM"},"Auth0LoginRequired":{"properties":{"code":{"type":"string","const":"AUTH0_LOGIN_REQUIRED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"This group is forced onto Auth0; legacy login is disabled. Authenticate through the Auth0 provider instead.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/Auth0LoginRequiredPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"Auth0LoginRequired","description":"This group is forced onto Auth0; legacy login is disabled. Authenticate through the Auth0 provider instead."},"Auth0LoginRequiredPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"domain":{"type":"string","title":"Domain"}},"type":"object","required":["group_id","domain"],"title":"Auth0LoginRequiredPayload","description":"Context of the Auth0LoginRequired error: the values identifying the entities involved in this specific occurrence."},"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"},"AutoEndConfigSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the app ends it without the driver acting.","default":true},"delay":{"type":"integer","title":"Delay","description":"Delay in seconds the app waits before ending it.","default":30}},"type":"object","title":"AutoEndConfigSchema","description":"When the Pysae Driver app ends a trip or a duty on its own."},"BaseModel":{"properties":{},"type":"object","title":"BaseModel"},"Body_postGtfsImportTransitFilePreview":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_postGtfsImportTransitFilePreview"},"Body_postGtfsValidity":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_postGtfsValidity"},"Body_postHastu":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"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"},"route_ids":{"items":{"type":"string"},"type":"array","title":"Route Ids"},"import_hlp":{"type":"boolean","title":"Import Hlp","default":false},"route_colors":{"type":"string","title":"Route Colors","default":"{}"}},"type":"object","required":["file","agency_id","agency_name","agency_url","agency_timezone"],"title":"Body_postHastu"},"Body_postHastuPreview":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_postHastuPreview"},"Body_postImportDrivers":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"CSV file to import, semicolon-separated, carrying the required columns on its first line."}},"type":"object","required":["file"],"title":"Body_postImportDrivers"},"Body_postImportVehicles":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"CSV file to import, semicolon-separated, carrying the required columns on its first line."}},"type":"object","required":["file"],"title":"Body_postImportVehicles"},"Body_postLogin":{"properties":{"email":{"type":"string","title":"Email","description":"Email address the user account signs in with."},"password":{"type":"string","title":"Password","description":"Password of the user account."}},"type":"object","required":["email","password"],"title":"Body_postLogin"},"Body_postLoginNdp":{"properties":{"email":{"type":"string","title":"Email","description":"Email address the user account signs in with."},"password":{"type":"string","title":"Password","description":"Password of the user account."}},"type":"object","required":["email","password"],"title":"Body_postLoginNdp"},"Body_postLoginScoped":{"properties":{"email":{"type":"string","title":"Email","description":"Email address the user account signs in with."},"password":{"type":"string","title":"Password","description":"Password of the user account."}},"type":"object","required":["email","password"],"title":"Body_postLoginScoped"},"Body_postLoginScopedNdp":{"properties":{"email":{"type":"string","title":"Email","description":"Email address the user account signs in with."},"password":{"type":"string","title":"Password","description":"Password of the user account."}},"type":"object","required":["email","password"],"title":"Body_postLoginScopedNdp"},"Body_putConfigDriverVersions":{"properties":{"deprecated":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Deprecated"},"to_update":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"To Update"},"blocked":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Blocked"}},"type":"object","title":"Body_putConfigDriverVersions"},"Body_putLogo":{"properties":{"logo":{"type":"string","contentMediaType":"application/octet-stream","title":"Logo","description":"Logo of the group, as a JPEG or a PNG image."}},"type":"object","required":["logo"],"title":"Body_putLogo"},"BoundShape":{"properties":{"type":{"$ref":"#/components/schemas/BoundType","description":"Geometry type of the area.","default":"Polygon"},"coordinates":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Coordinates","description":"Vertices of the polygon, as `[longitude, latitude]` pairs."}},"type":"object","required":["coordinates"],"title":"BoundShape","description":"Area the group operates in, used to frame the maps."},"BoundType":{"type":"string","enum":["Polygon"],"title":"BoundType","description":"Geometry type of the area a group operates in."},"Bounds":{"properties":{"down":{"type":"integer","title":"Down","description":"Cats elements strictly before this index are considered too_early","default":2},"up":{"type":"integer","title":"Up","description":"Cats elements starting from this index are considered too_late","default":3}},"type":"object","title":"Bounds","description":"Where the on-time window sits in the delay categories."},"BoundsSchema":{"properties":{"down":{"type":"integer","title":"Down"},"up":{"type":"integer","title":"Up"}},"type":"object","required":["down","up"],"title":"BoundsSchema"},"BulkDriverArchiveResultSchema":{"properties":{"requested":{"type":"integer","title":"Requested","description":"Number of driver ids received."},"modified":{"type":"integer","title":"Modified","description":"Number of drivers actually updated."}},"type":"object","required":["requested","modified"],"title":"BulkDriverArchiveResultSchema","description":"What the bulk archive actually changed."},"BulkDriverArchiveSchema":{"properties":{"driver_ids":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},"type":"array","uniqueItems":true,"title":"Driver Ids","description":"Drivers the change applies to. Duplicates are collapsed."},"archived":{"type":"boolean","title":"Archived","description":"Whether the drivers are archived: kept out of the current operation, their history untouched."}},"type":"object","required":["driver_ids","archived"],"title":"BulkDriverArchiveSchema","description":"Drivers to archive, or to restore, in one call."},"CachePurgeSchema":{"properties":{"deleted_count":{"type":"integer","title":"Deleted Count"}},"type":"object","required":["deleted_count"],"title":"CachePurgeSchema"},"CacheStatsSchema":{"properties":{"total_keys":{"type":"integer","title":"Total Keys"},"namespaces":{"items":{"$ref":"#/components/schemas/NamespaceStatsSchema"},"type":"array","title":"Namespaces"}},"type":"object","required":["total_keys","namespaces"],"title":"CacheStatsSchema"},"CadencityAssignmentSchema":{"properties":{"trip_id":{"type":"integer","title":"Trip Id"},"date":{"type":"string","title":"Date","examples":["20201122"]},"staff_number":{"type":"string","title":"Staff Number"},"license_plate":{"type":"string","title":"License Plate","default":""}},"type":"object","required":["trip_id","date","staff_number"],"title":"CadencityAssignmentSchema","description":"One line of a Cadencity/Apliday planning export. ``trip_id`` is a GTFS\ntrip id sent as an integer; ``license_plate`` is an empty string when no\nvehicle is assigned."},"CadencityExportParamsSchema":{"properties":{"interval":{"items":{"type":"string"},"type":"array","title":"Interval","default":[]},"entreprise":{"type":"string","title":"Entreprise","default":""}},"type":"object","title":"CadencityExportParamsSchema"},"CadencityImportResponse":{"properties":{"imported":{"type":"integer","title":"Imported"},"dates":{"items":{"type":"string"},"type":"array","title":"Dates"},"skipped_staff_numbers":{"items":{"type":"string"},"type":"array","title":"Skipped Staff Numbers"},"dropped_license_plates":{"items":{"type":"string"},"type":"array","title":"Dropped License Plates"}},"type":"object","required":["imported","dates","skipped_staff_numbers","dropped_license_plates"],"title":"CadencityImportResponse"},"CadencityPlanningExportSchema":{"properties":{"datas":{"items":{"$ref":"#/components/schemas/CadencityAssignmentSchema"},"type":"array","title":"Datas"},"paramsExport":{"$ref":"#/components/schemas/CadencityExportParamsSchema","default":{"interval":[],"entreprise":""}}},"type":"object","required":["datas"],"title":"CadencityPlanningExportSchema","description":"The Cadencity planning export payload (``{paramsExport, datas}``)."},"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"},"Categories":{"properties":{"cats":{"items":{"anyOf":[{"type":"integer"},{"type":"number"}]},"type":"array","title":"Cats","description":"Time limits in seconds.","default":[-120,0,120,300]},"bounds":{"$ref":"#/components/schemas/Bounds","description":"Cats indexes for delay intervals","default":{"down":2,"up":3}}},"type":"object","title":"Categories","description":"Delay intervals splitting punctuality into too early, on time and too late."},"CategoriesSchema":{"properties":{"cats":{"items":{"anyOf":[{"type":"integer"},{"type":"number"}]},"type":"array","title":"Cats"},"bounds":{"$ref":"#/components/schemas/BoundsSchema"}},"type":"object","required":["cats","bounds"],"title":"CategoriesSchema"},"Client":{"type":"string","enum":["driver","op"],"title":"Client"},"CodeGroupPostMode":{"type":"string","enum":["create","keep","prolong"],"title":"CodeGroupPostMode","description":"What to do with the access code the group already holds.\n\n``KEEP`` and ``PROLONG`` fall back to creating a code when the group holds\nnone, or holds an expired one.\n\n- ``CREATE``: issue a new code, replacing the current one.\n- ``KEEP``: return the current code untouched.\n- ``PROLONG``: return the current code with its expiry pushed back."},"CodeGroupSchema":{"properties":{"code":{"type":"string","title":"Code","description":"Code to use on Driver app to add the device in the group"},"expire":{"type":"integer","title":"Expire","description":"Expiration timestamp","examples":[1606003200]},"new":{"type":"boolean","title":"New","description":"true if code has just been created by the call","default":false}},"type":"object","required":["code","expire"],"title":"CodeGroupSchema","description":"Access code devices present to join the group."},"CommentRetrieveSchema":{"properties":{"_id":{"type":"string","title":"Id"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"}},"type":"object","required":["_id"],"title":"CommentRetrieveSchema"},"CompareSchema":{"properties":{"to_create":{"type":"integer","title":"To Create","description":"Records the file would add to the group.","default":0},"to_update":{"type":"integer","title":"To Update","description":"Records of the group the file would change.","default":0},"to_delete":{"type":"integer","title":"To Delete","description":"Records the file would archive.","default":0}},"type":"object","title":"CompareSchema","description":"What an import would change, as returned by a `compare_only` call.\n\nNothing is written: the file is validated and counted only."},"ComputeTaskFailed":{"properties":{"code":{"type":"string","const":"COMPUTE_TASK_FAILED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The task has vailed","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/ComputeTaskFailedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"ComputeTaskFailed","description":"The task has vailed"},"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","description":"Context of the ComputeTaskFailed error: the values identifying the entities involved in this specific occurrence."},"ComputeTaskNotFound":{"properties":{"code":{"type":"string","const":"COMPUTE_TASK_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The task has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/ComputeTaskNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"ComputeTaskNotFound","description":"The task has not been found"},"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","description":"Context of the ComputeTaskNotFound error: the values identifying the entities involved in this specific occurrence."},"ConduentIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0}},"type":"object","title":"ConduentIntegrationSchema"},"ConfigSchema":{"properties":{"semver":{"$ref":"#/components/schemas/ConfigSemverSchema"}},"type":"object","required":["semver"],"title":"ConfigSchema"},"ConfigSemverSchema":{"properties":{"deprecated":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Deprecated"},"to_update":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"To Update"},"blocked":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Blocked","default":[]}},"type":"object","required":["deprecated","to_update"],"title":"ConfigSemverSchema"},"Contact":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Email address travellers write to."},"other_informations":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Other Informations","description":"Free-form text shown alongside the contact details."},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Phone number travellers call."}},"type":"object","title":"Contact","description":"How travellers reach the operator, as shown on the public applications."},"ContactSchema":{"properties":{"email":{"type":"string","title":"Email"},"phone_number":{"type":"string","title":"Phone Number"}},"type":"object","required":["email","phone_number"],"title":"ContactSchema"},"Coordinates-Input":{"prefixItems":[{"type":"number","title":"Lat"},{"type":"number","title":"Lng"}],"type":"array","maxItems":2,"minItems":2},"CountSchema":{"properties":{"count":{"type":"integer","minimum":0.0,"title":"Count"}},"type":"object","required":["count"],"title":"CountSchema"},"CreateDeviceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Identifier of the device, as the Pysae Driver app generates and presents it."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name the operator gives the device."},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team the device belongs to."}},"type":"object","required":["id"],"title":"CreateDeviceSchema","description":"Device to register in the group, before it ever connects."},"CurrentTripDetailsSchema":{"properties":{"delay":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Delay"},"off_itinerary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Off Itinerary","description":"Outside of expected itinerary"},"trip_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trip Pending","description":"Before the first stop"},"trip_pending_distance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trip Pending Distance","description":"Distance before the first stop"},"shape_dist_traveled":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shape Dist Traveled"},"debug_shape_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Debug Shape Score"},"debug_trace_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Debug Trace Length"}},"type":"object","title":"CurrentTripDetailsSchema"},"CurrentTripSchema":{"properties":{"trip":{"$ref":"#/components/schemas/GtfsOptDatedTrip"},"stop":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripStopSchema-Output"},{"type":"null"}]},"trigger":{"anyOf":[{"$ref":"#/components/schemas/TriggerType"},{"type":"null"}]}},"type":"object","required":["trip"],"title":"CurrentTripSchema"},"CurrentTripStopSchema-Input":{"properties":{"status":{"$ref":"#/components/schemas/DeviceStatus-Input"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"}},"type":"object","required":["status","stop_sequence"],"title":"CurrentTripStopSchema"},"CurrentTripStopSchema-Output":{"properties":{"status":{"$ref":"#/components/schemas/pysae__api__devices__models__DeviceStatus"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"}},"type":"object","required":["status","stop_sequence"],"title":"CurrentTripStopSchema"},"CurrentTripWithDetailsSchema":{"properties":{"trip":{"$ref":"#/components/schemas/GtfsOptDatedTrip"},"stop":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripStopSchema-Input"},{"type":"null"}]},"trigger":{"anyOf":[{"$ref":"#/components/schemas/TriggerType"},{"type":"null"}]},"details":{"anyOf":[{"$ref":"#/components/schemas/CurrentTripDetailsSchema"},{"type":"null"}]}},"type":"object","required":["trip"],"title":"CurrentTripWithDetailsSchema"},"DailyActiveVehiclesSchema":{"properties":{"ts":{"type":"number","title":"Ts","description":"Moment the peak was reached at.","examples":[1606003200.1]},"max_allowed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Allowed","description":"Vehicles the group's subscription covers, null when uncapped."},"concurrent_duties":{"type":"integer","title":"Concurrent Duties","description":"Duties running at once at that moment."}},"type":"object","required":["ts","concurrent_duties"],"title":"DailyActiveVehiclesSchema","description":"Peak of duties run at once over a day, against what the group may run."},"DailyDevicesSchema":{"properties":{"date":{"type":"string","title":"Date"},"devices":{"type":"integer","title":"Devices"}},"type":"object","required":["date","devices"],"title":"DailyDevicesSchema"},"DangerZoneCreateSchema":{"properties":{"name":{"type":"string","title":"Name"},"message":{"type":"string","title":"Message"},"location":{"$ref":"#/components/schemas/DangerZoneLocationSchema"},"radius":{"type":"integer","exclusiveMinimum":0.0,"title":"Radius"}},"type":"object","required":["name","message","location","radius"],"title":"DangerZoneCreateSchema"},"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"},"DangerZoneNotFound":{"properties":{"code":{"type":"string","const":"DANGER_ZONE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The danger zone has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DangerZoneNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DangerZoneNotFound","description":"The danger zone has not been found"},"DangerZoneNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"danger_zone_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Danger Zone Id","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","danger_zone_id"],"title":"DangerZoneNotFoundPayload","description":"Context of the DangerZoneNotFound error: the values identifying the entities involved in this specific occurrence."},"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-Input":{"properties":{"stop_sequence":{"type":"number","title":"Stop Sequence"},"delay":{"type":"integer","title":"Delay"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Index"},"stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Occurrence Index"}},"type":"object","required":["stop_sequence","delay"],"title":"Delay"},"DeletableUnused":{"type":"string","enum":["agency","calendar","calendar_dates","routes","shapes","stops"],"title":"DeletableUnused"},"DeleteInvalidRefSchema":{"properties":{"items_delete_count":{"type":"integer","title":"Items Delete Count"},"trip_ids_with_invalid_required_ref":{"items":{"type":"string"},"type":"array","title":"Trip Ids With Invalid Required Ref","description":"Ids of the trips left untouched because their route_id or service_id reference is invalid. Both are required by the GTFS spec, so the reference cannot be deleted: the trip has to be re-imported with a valid reference, or deleted explicitly."}},"type":"object","required":["items_delete_count"],"title":"DeleteInvalidRefSchema"},"DepotCoordinatesSchema":{"properties":{"latitude":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Latitude","description":"Latitude of the depot, in degrees."},"longitude":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Longitude","description":"Longitude of the depot, in degrees."}},"type":"object","required":["latitude","longitude"],"title":"DepotCoordinatesSchema","description":"Where the depot sits."},"DepotCreateSchema":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the depot."},"location":{"$ref":"#/components/schemas/DepotCoordinatesSchema","description":"Point the depot is centred on."},"radius":{"type":"integer","exclusiveMinimum":0.0,"title":"Radius","description":"Distance in metres around that point within which a vehicle counts as at the depot."}},"type":"object","required":["name","location","radius"],"title":"DepotCreateSchema","description":"Depot to create in the group: where vehicles are parked between duties."},"DepotNotFound":{"properties":{"code":{"type":"string","const":"DEPOT_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The depot has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DepotNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DepotNotFound","description":"The depot has not been found"},"DepotNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the depot was looked up in."},"depot_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Depot Id","description":"Identifier of the unknown depot.","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","depot_id"],"title":"DepotNotFoundPayload","description":"Context of the DepotNotFound error: the values identifying the entities involved in this specific occurrence."},"DepotSchema":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the depot."},"location":{"$ref":"#/components/schemas/DepotCoordinatesSchema","description":"Point the depot is centred on."},"radius":{"type":"integer","exclusiveMinimum":0.0,"title":"Radius","description":"Distance in metres around that point within which a vehicle counts as at the depot."},"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"},"DeviationErrorSchema":{"properties":{"date":{"type":"string","title":"Date","examples":["20201122"]},"end_date":{"type":"string","title":"End Date","examples":["20201122"]},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"shape_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"errors":{"items":{"$ref":"#/components/schemas/ValidationErrorEntrySchema"},"type":"array","title":"Errors"}},"type":"object","required":["date","end_date","errors"],"title":"DeviationErrorSchema","description":"Validation errors aggregated for a single trip-update."},"DeviationImpactedTripSchema":{"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."},"id":{"type":"string","title":"Id"},"available_dates":{"items":{"type":"string","examples":["20201122"]},"type":"array","title":"Available Dates","description":"Dates within the deviation's range when the trip actually runs, per the GTFS calendar / calendar_dates."},"formatted_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formatted Name"},"departure_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Departure Time","description":"Unix timestamp of the trip's departure from its first stop on the first available date."},"km_delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Km Delta","description":"Signed km difference deviated - nominal (+ = longer).","readOnly":true}},"type":"object","required":["id","available_dates","km_delta"],"title":"DeviationImpactedTripSchema"},"DeviationPeriodSchema":{"properties":{"start":{"type":"string","title":"Start","examples":["20201122"]},"end":{"type":"string","title":"End","examples":["20201122"]}},"type":"object","required":["start","end"],"title":"DeviationPeriodSchema"},"DeviationSchema":{"properties":{"id":{"type":"string","title":"Id","description":"The trip-update document id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"trip_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trip Id"},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"shape_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape Id"},"shape_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape Label"},"state":{"$ref":"#/components/schemas/DeviationState"},"period":{"$ref":"#/components/schemas/DeviationPeriodSchema"},"impacted_trips":{"items":{"$ref":"#/components/schemas/DeviationImpactedTripSchema"},"type":"array","title":"Impacted Trips"},"deviation_types":{"items":{"$ref":"#/components/schemas/DeviationType"},"type":"array","title":"Deviation Types"},"excluded_trip_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Excluded Trip Ids"},"delay":{"anyOf":[{"type":"integer","examples":[11]},{"type":"null"}],"title":"Delay","description":"Delay in seconds"},"is_canceled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Canceled"},"skipped_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/StopReference"},"type":"array"},{"type":"null"}],"title":"Skipped Stops"},"temporary_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trip_updates__models__TemporaryStop"},"type":"array"},{"type":"null"}],"title":"Temporary Stops"},"modified_shape":{"type":"boolean","title":"Modified Shape","description":"True when the deviation defines a custom shape.","default":false},"delays":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trip_updates__models__Delay"},"type":"array"},{"type":"null"}],"title":"Delays"},"deviated_shape_km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Deviated Shape Km","description":"Length in km of the deviated shape. GTFS-era independent (it is the deviation's own geometry), unlike the nominal — which is exposed per course in ``impacted_trips`` and over the period in ``total_nominal_km``."},"total_deviated_km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Deviated Km","description":"Deviated km driven over the whole period: the deviated shape length summed over every impacted course times its number of service days. ``None`` when the deviation has no shape."},"total_nominal_km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Nominal Km","description":"Nominal km over the whole period: each impacted course's reference shape length times its service days, summed. Shares ``total_km_delta``'s gate (reported only when every course resolved its nominal); then ``total_deviated_km - total_nominal_km == total_km_delta``."},"total_km_delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Km Delta","description":"Signed km gap vs nominal over the whole period (per-course delta weighted by service days, summed). Reported only when **every** impacted course resolved its nominal shape; ``None`` as soon as one course is unresolved, to avoid a partial sum that would understate the gap. See ``impacted_trips`` for the per-course deltas in that case."}},"type":"object","required":["id","state","period","impacted_trips","deviation_types"],"title":"DeviationSchema","description":"Aggregated view of one or more trip-updates sharing the same selector.\n\nTrip-level deviations targeting different courses of the same route on\nthe same date range collapse into a single ``DeviationSchema`` so that\nOp can render one row per real-world incident instead of one row per\ncourse.\n\nDeliberately **not** a ``DeviationKmSchema``: that mixin's\n``nominal_shape_km`` is the creation-era value, while every other km field\nhere is recomputed at read time against each course's own GTFS era. Mixing\nboth would ship two contradicting deltas for the same deviation as soon as\na republication changed the reference geometry. Only the era-independent\n``deviated_shape_km`` is kept at this level; the nominal and the delta are\nauthoritative per course (``impacted_trips``) and over the period\n(``total_*``)."},"DeviationState":{"type":"string","enum":["past","current","upcoming"],"title":"DeviationState"},"DeviationType":{"type":"string","enum":["trip_cancelled","delay","stops_cancelled","temporary_stops","displaced_stops","modified_shape","modified_timetable"],"title":"DeviationType"},"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"},"connected_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Connected At","description":"timestamp du dernier échange avec l’appareil, quelle qu’en soit la nature. C’est ce champ qui détermine si l’appareil est considéré comme connecté. Distinct de `ts`, qui ne date que la dernière position GPS."},"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"},"DeviceBulkModeFailedSchema":{"properties":{"device_id":{"type":"string","title":"Device Id","description":"Id of the device that failed."},"reason":{"$ref":"#/components/schemas/DeviceBulkModeFailureReason","description":"Reason why the device could not be updated."}},"type":"object","required":["device_id","reason"],"title":"DeviceBulkModeFailedSchema","description":"A device the bulk drive-mode change left untouched, and why."},"DeviceBulkModeFailureReason":{"type":"string","enum":["device_not_found","forbidden_different_team","internal_error"],"title":"DeviceBulkModeFailureReason","description":"Why a bulk drive-mode change left one device untouched."},"DeviceBulkModeResultSchema":{"properties":{"updated":{"items":{"type":"string"},"type":"array","title":"Updated","description":"Ids of the devices whose drive mode was updated."},"failed":{"items":{"$ref":"#/components/schemas/DeviceBulkModeFailedSchema"},"type":"array","title":"Failed","description":"Devices that could not be updated, with the reason."}},"type":"object","required":["updated","failed"],"title":"DeviceBulkModeResultSchema","description":"What the bulk drive-mode change did, device by device.\n\nA device that failed leaves the others updated: the call is not atomic."},"DeviceBulkModeUpdateSchema":{"properties":{"device_ids":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Device Ids","description":"Ids of the devices to update."},"mode":{"$ref":"#/components/schemas/DeviceDriveMode","description":"Target drive mode: `trip` for trip mode, `sequence` for sequential service mode."}},"type":"object","required":["device_ids","mode"],"title":"DeviceBulkModeUpdateSchema","description":"Drive mode to set on several devices in one call."},"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"},"DeviceLimitSchema":{"properties":{"device_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Limit"}},"type":"object","required":["device_limit"],"title":"DeviceLimitSchema"},"DeviceNetworkStatus":{"type":"string","enum":["online","offline"],"title":"DeviceNetworkStatus"},"DeviceNotFound":{"properties":{"code":{"type":"string","const":"DEVICE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The device has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DeviceNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DeviceNotFound","description":"The device has not been found"},"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","description":"Context of the DeviceNotFound error: the values identifying the entities involved in this specific occurrence."},"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"}]},"teams":{"items":{"$ref":"#/components/schemas/TeamSchema"},"type":"array","title":"Teams"},"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"},"DeviceStatus-Input":{"type":"string","enum":["IN_TRANSIT_TO","INCOMING_AT","STOPPED_AT"],"title":"DeviceStatus"},"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"},"DeviceUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name the operator gives the device."},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team the device belongs to. Superseded by `teams`, kept for clients predating multi-team support."},"teams":{"items":{"type":"string"},"type":"array","title":"Teams","description":"Teams the device belongs to.","default":[]},"assigned_driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Driver Id","description":"Driver forced onto this device, taking over what the Pysae Driver app would otherwise ask."},"assigned_vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Vehicle Id","description":"Vehicle forced onto this device, taking over what the Pysae Driver app would otherwise ask."},"simulation_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Simulation Mode","description":"Whether the device replays a simulated run instead of a real one."},"drive_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drive Mode","description":"How the device picks the trip it runs: `trip` for trip mode, `sequence` for sequential service mode, `on_demand` for on-demand service."},"trip_filter":{"anyOf":[{"$ref":"#/components/schemas/SequenceModeTripFilter"},{"$ref":"#/components/schemas/TripModeTripFilter"},{"$ref":"#/components/schemas/DeadRunTripFilter"},{"type":"null"}],"title":"Trip Filter","description":"What the device is set to run: a block in sequence mode, a trip in trip mode, or no trip at all on a dead run."},"voip":{"anyOf":[{"$ref":"#/components/schemas/DeviceVoipSchema"},{"type":"null"}],"description":"VoIP endpoint the device is reachable on."}},"type":"object","title":"DeviceUpdateSchema","description":"Fields of a device the operator sets, from the operation side."},"DeviceVersionStatsSchema":{"properties":{"total":{"type":"integer","title":"Total","description":"Devices running this version."},"active":{"type":"integer","title":"Active","description":"Of those, the ones that reported a position in the last 30 days."},"inactive":{"type":"integer","title":"Inactive","description":"Of those, the ones that reported nothing for 30 days, or never reported at all."},"archived":{"type":"integer","title":"Archived","description":"Of those, the archived ones."},"groups":{"items":{"$ref":"#/components/schemas/GroupDeviceVersionStatsSchema"},"type":"array","title":"Groups","description":"The same counts, broken down by group."}},"type":"object","required":["total","active","inactive","archived","groups"],"title":"DeviceVersionStatsSchema","description":"How many devices run one app version, across every group and per group."},"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"},"DisplayConfigSchema":{"properties":{"active":{"type":"boolean","title":"Active","description":"Whether the group serves the display. Distinct from having the feature at all, which only Pysae grants.","default":true}},"type":"object","title":"DisplayConfigSchema","description":"Whether the group serves one of its public displays."},"DisplayFeatureConfig":{"properties":{"active":{"type":"boolean","title":"Active","description":"Whether the group serves the display. Distinct from having the feature at all, which only Pysae grants.","default":true}},"type":"object","title":"DisplayFeatureConfig","description":"Whether the group serves one of its public displays."},"DisplayFeedDisabled":{"properties":{"code":{"type":"string","const":"DISPLAY_FEED_DISABLED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The public display has been disabled for this organization","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DisplayFeedDisabledPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DisplayFeedDisabled","description":"The public display has been disabled for this organization"},"DisplayFeedDisabledPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the display belongs to."},"feature":{"$ref":"#/components/schemas/Feature","description":"Public display the group has switched off."}},"type":"object","required":["group_id","feature"],"title":"DisplayFeedDisabledPayload","description":"Context of the DisplayFeedDisabled error: the values identifying the entities involved in this specific occurrence."},"DistanceThresholdsConfigSchema":{"properties":{"incoming_distance_threshold":{"type":"integer","title":"Incoming Distance Threshold","default":200},"shape_distance_threshold":{"type":"integer","title":"Shape Distance Threshold","default":300},"stop_distance_threshold":{"type":"integer","title":"Stop Distance Threshold","default":50},"stop_distance_threshold_exceptions":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Stop Distance Threshold Exceptions"}},"type":"object","title":"DistanceThresholdsConfigSchema"},"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"},"DriverAnonymised":{"properties":{"code":{"type":"string","const":"DRIVER_ANONYMISED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The driver has been anonymised and cannot be modified","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DriverAnonymisedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DriverAnonymised","description":"The driver has been anonymised and cannot be modified"},"DriverAnonymisedPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the driver belongs to."},"driver_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Driver Id","description":"Identifier of the anonymised driver.","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","driver_id"],"title":"DriverAnonymisedPayload","description":"Context of the DriverAnonymised error: the values identifying the entities involved in this specific occurrence."},"DriverAppConfigSchema":{"properties":{"driver_call_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Call Number"},"driver_message_values":{"items":{"$ref":"#/components/schemas/DriverMessageSchema"},"type":"array","title":"Driver Message Values","default":[]},"driver_option_messages_block_send":{"type":"boolean","title":"Driver Option Messages Block Send","default":false},"pis_dead_mileage_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Dead Mileage Code"},"driver_passenger_count_custom_boarding":{"items":{"type":"string"},"type":"array","title":"Driver Passenger Count Custom Boarding","default":[]},"driver_auto_end_trip":{"$ref":"#/components/schemas/AutoEndConfigSchema","default":{"enabled":true,"delay":30}},"driver_auto_end_duty":{"$ref":"#/components/schemas/AutoEndConfigSchema","default":{"enabled":true,"delay":30}},"router":{"anyOf":[{"$ref":"#/components/schemas/RouterConfigSchema"},{"type":"null"}],"description":"**deprecated** is now configured in integrations.","deprecated":true}},"type":"object","title":"DriverAppConfigSchema"},"DriverArchiveSchema":{"properties":{"archived":{"type":"boolean","title":"Archived","description":"Whether the driver is archived: kept out of the current operation, their history untouched."}},"type":"object","required":["archived"],"title":"DriverArchiveSchema","description":"Whether the driver leaves the current operation."},"DriverCodeAlreadyTaken":{"properties":{"code":{"type":"string","const":"DRIVER_CODE_ALREADY_TAKEN","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You cannot have the same code as an other driver","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DriverCodeAlreadyTakenPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DriverCodeAlreadyTaken","description":"You cannot have the same code as an other driver"},"DriverCodeAlreadyTakenPayload":{"properties":{},"type":"object","title":"DriverCodeAlreadyTakenPayload","description":"Context of the DriverCodeAlreadyTaken error: the values identifying the entities involved in this specific occurrence."},"DriverCodeSchema":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Four-digit code, or null to leave the driver without one."}},"type":"object","required":["code"],"title":"DriverCodeSchema","description":"Code the driver keys in to identify themselves when starting a duty."},"DriverCreateSchema":{"properties":{"driver_name":{"type":"string","title":"Driver Name","description":"Driver's name."},"staff_number":{"type":"string","title":"Staff Number","description":"Staff number."},"comment":{"type":"string","title":"Comment","description":"Comment.","default":""},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team the driver belongs to. Superseded by `teams`, kept for clients predating multi-team support."},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams","description":"Teams the driver belongs to."},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Four-digit code the driver keys in to identify themselves when starting a duty. Null when the driver has none."}},"type":"object","required":["driver_name","staff_number"],"title":"DriverCreateSchema","description":"Driver to create in the group."},"DriverImportResultSchema":{"properties":{"created":{"type":"integer","title":"Created","description":"Drivers added to the group."},"modified":{"type":"integer","title":"Modified","description":"Drivers of the group changed."},"ignored":{"type":"integer","title":"Ignored","description":"Lines the import left the group unchanged for."}},"type":"object","required":["created","modified","ignored"],"title":"DriverImportResultSchema","description":"What a driver import actually changed."},"DriverImportValidationError":{"properties":{"decode_error":{"anyOf":[{"$ref":"#/components/schemas/ErrorDecodeLine"},{"type":"null"}],"description":"Lines that could not be read."},"team_name_not_existing":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportTeams"},{"type":"null"}],"description":"Lines naming a team the group does not hold."},"user_missing_team":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportTeams"},{"type":"null"}],"description":"Lines naming a team the caller has no access to."},"missing_field":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportFields"},{"type":"null"}],"description":"Lines missing a required column."},"invalid_format_field":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportFields"},{"type":"null"}],"description":"Lines whose column value does not match its format."},"driver_not_found":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportDriverNotFound"},{"type":"null"}],"description":"Lines updating a driver the group does not hold."},"driver_anonymised":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportDriverAnonymised"},{"type":"null"}],"description":"Lines updating an anonymised driver."},"driver_code_duplicate":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportDriverCode"},{"type":"null"}],"description":"Lines sharing a driver code with another line."},"driver_code_already_taken":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportDriverCode"},{"type":"null"}],"description":"Lines carrying a code another driver already holds."}},"type":"object","title":"DriverImportValidationError","description":"Everything a driver import was refused for, grouped by cause.\n\nEach cause is absent when the file raised none of it. The import is\nall-or-nothing: a single cause leaves the drivers untouched."},"DriverImportValidationFailed":{"properties":{"code":{"type":"string","const":"DRIVER_IMPORT_VALIDATION_FAILED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"At driver import, some validation errors happened","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DriverImportValidationFailedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DriverImportValidationFailed","description":"At driver import, some validation errors happened"},"DriverImportValidationFailedPayload":{"properties":{"error":{"$ref":"#/components/schemas/DriverImportValidationError","description":"Everything the import was refused for, grouped by cause."}},"type":"object","required":["error"],"title":"DriverImportValidationFailedPayload","description":"Context of the DriverImportValidationFailed error: the values identifying the entities involved in this specific occurrence."},"DriverIntegrationId":{"type":"string","enum":["aep","businfo","conduent","dilax","duhip","gtfs","hanover","hanover_ip","iris","kc650","kuba","lumiplan","matawan","nmea","okapi","paragon","powerBI","qip","seipra","silv1","webreathe_ip","wiibus","instavox","mcf"],"title":"DriverIntegrationId","description":"A piece of on-board equipment the Pysae Driver app drives."},"DriverMessage":{"properties":{"message":{"type":"string","title":"Message","description":"Text of the message."}},"type":"object","required":["message"],"title":"DriverMessage","description":"Canned message a driver can send from the Pysae Driver app."},"DriverMessageSchema":{"properties":{"message":{"type":"string","title":"Message","description":"Text of the message."}},"type":"object","required":["message"],"title":"DriverMessageSchema","description":"Canned message a driver can send from the Pysae Driver app."},"DriverNotFound":{"properties":{"code":{"type":"string","const":"DRIVER_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The driver has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DriverNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DriverNotFound","description":"The driver has not been found"},"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","description":"Context of the DriverNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"DuhipIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"gtfs_field":{"type":"string","title":"Gtfs Field","default":""},"port":{"type":"integer","title":"Port","default":0},"router":{"anyOf":[{"$ref":"#/components/schemas/DuhipRouterSchema"},{"type":"null"}]}},"type":"object","title":"DuhipIntegrationSchema"},"DuhipRouterSchema":{"properties":{"login":{"type":"string","title":"Login","default":""},"password":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Password"}},"type":"object","title":"DuhipRouterSchema"},"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"},"DutyChecklistMode":{"type":"string","enum":["optional","required","disabled"],"title":"DutyChecklistMode","description":"Whether the driver has to fill the duty checklist, may, or never sees it."},"DutyChecklistSchema":{"properties":{"mode":{"$ref":"#/components/schemas/DutyChecklistMode","description":"Whether the driver has to fill it, may, or never sees it.","default":"optional"},"json_schema":{"$ref":"#/components/schemas/JSONModel","description":"The checks themselves, as a JSON Schema. The answers are stored on the duty.","default":{"properties":{"vehicle_empty":{"title":"Empty vehicle control","type":"boolean","ui":{"options":{"format":"determinate"}}},"vehicle_cleanliness":{"oneOf":[{"color":"error","const":0,"title":"Dirty"},{"color":"warning","const":0.5,"title":"Average"},{"color":"success","const":1,"title":"Clean"}],"title":"Cleanliness","type":"number","ui":{"options":{"format":"toggle"}}},"vehicle_fuel_level":{"oneOf":[{"color":"error","const":0,"title":"Empty"},{"color":"warning","const":0.25,"title":"Low"},{"color":"success","const":0.75,"title":"High"},{"color":"success","const":1,"title":"Full"}],"title":"Fuel level","type":"number","ui":{"options":{"format":"toggle"}}},"comments":{"description":"Write a comment","maxLength":200,"title":"Comment","type":"string","ui":{"options":{"descriptionPlaceholder":true,"multi":true}}}}}},"i18n":{"$ref":"#/components/schemas/JSONModel","description":"Wording of the checks, per language.","default":{"fr":{"comments.description":"Rédiger un commentaire","comments.label":"Commentaire","vehicle_cleanliness.Average":"Moyen","vehicle_cleanliness.Clean":"Propre","vehicle_cleanliness.Dirty":"Sale","vehicle_cleanliness.label":"Propreté","vehicle_empty.label":"Contrôle véhicule vide","vehicle_fuel_level.Empty":"Vide","vehicle_fuel_level.Full":"Plein","vehicle_fuel_level.High":"Important","vehicle_fuel_level.Low":"Faible","vehicle_fuel_level.label":"Niveau d'essence"}}},"uischema":{"anyOf":[{"$ref":"#/components/schemas/JSONModel"},{"type":"null"}],"description":"How the app lays the checks out, when the layout is not carried by the schema itself."}},"type":"object","title":"DutyChecklistSchema","description":"The checks a driver fills in at the start and at the end of a duty.\n\nThe form is described as JSON Schema, its wording and its layout apart, so\nthe Pysae Driver app renders it without a release."},"DutyDeviceCreateSchemaV4":{"properties":{"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","description":"Identifier of the duty, generated by the Pysae Driver app so a retry does not open a second one.","examples":["670f84254c28ffdaae0f462d"]},"driver_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Driver Id","description":"Driver taking the duty."},"driver_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Code","description":"Code the driver keyed in, checked against the one on their record. Required when the driver holds one."},"check_in":{"$ref":"#/components/schemas/DutyCheckInSchema","description":"Start of the duty."},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id","description":"Vehicle the driver takes out."},"checkout":{"anyOf":[{"$ref":"#/components/schemas/DutyCheckOutSchema"},{"type":"null"}],"description":"End of the duty, when it is already over."}},"type":"object","required":["_id","check_in"],"title":"DutyDeviceCreateSchemaV4","description":"Duty a device opens for itself, as the v4 endpoint accepts it.","deprecated":true},"DutyId":{"properties":{"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","description":"Identifier of the duty.","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["_id"],"title":"DutyId","description":"Identifier of the duty that was opened."},"DutyNotFound":{"properties":{"code":{"type":"string","const":"DUTY_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The duty has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/DutyNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"DutyNotFound","description":"The duty has not been found"},"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","description":"Context of the DutyNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"EnvironmentConfigSchema":{"properties":{"base_url":{"type":"string","title":"Base Url","default":"http://localhost:8000"},"environment":{"type":"string","title":"Environment","default":"local"},"recaptcha":{"type":"boolean","title":"Recaptcha","default":false}},"type":"object","title":"EnvironmentConfigSchema"},"EquipmentType":{"type":"string","enum":["telematic","router"],"title":"EquipmentType"},"EquippedVehiclesConfigSchema":{"properties":{"equipped_vehicles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Equipped Vehicles"}},"type":"object","required":["equipped_vehicles"],"title":"EquippedVehiclesConfigSchema"},"EquippedVehiclesSchema":{"properties":{"equipped_vehicles":{"type":"integer","title":"Equipped Vehicles"}},"type":"object","required":["equipped_vehicles"],"title":"EquippedVehiclesSchema"},"ErrorDecodeLine":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."}},"type":"object","required":["lines"],"title":"ErrorDecodeLine","description":"Lines the import could not read at all."},"ErrorImportDriverAnonymised":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."},"ids":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},"type":"array","uniqueItems":true,"title":"Ids","description":"Driver identifiers the lines refer to."}},"type":"object","required":["lines","ids"],"title":"ErrorImportDriverAnonymised","description":"Lines referring to a driver that has been anonymised."},"ErrorImportDriverCode":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."},"codes":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Codes","description":"Driver codes the lines carry."}},"type":"object","required":["lines","codes"],"title":"ErrorImportDriverCode","description":"Lines carrying a driver code the import refuses."},"ErrorImportDriverNotFound":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."},"ids":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},"type":"array","uniqueItems":true,"title":"Ids","description":"Driver identifiers the lines refer to."}},"type":"object","required":["lines","ids"],"title":"ErrorImportDriverNotFound","description":"Lines referring to a driver the group does not hold."},"ErrorImportFields":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."},"fields":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Fields","description":"Columns the error is about."}},"type":"object","required":["lines","fields"],"title":"ErrorImportFields","description":"Lines whose columns the import cannot use."},"ErrorImportTeams":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."},"teams":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Teams","description":"Teams the lines refer to: their names when the group holds no such team, their identifiers when the caller has no access to them."}},"type":"object","required":["lines","teams"],"title":"ErrorImportTeams","description":"Lines referring to a team the import cannot resolve."},"ErrorImportVehicleNotFound":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/ImportLine"},"type":"array","title":"Lines","description":"Lines the error was found on."},"ids":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},"type":"array","uniqueItems":true,"title":"Ids","description":"Vehicle identifiers the lines refer to."}},"type":"object","required":["lines","ids"],"title":"ErrorImportVehicleNotFound","description":"Lines referring to a vehicle the group does not hold."},"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"},"ExportCreateSchema":{"properties":{"export_type":{"$ref":"#/components/schemas/ExportType"},"params":{"additionalProperties":true,"type":"object","title":"Params"}},"type":"object","required":["export_type","params"],"title":"ExportCreateSchema"},"ExportCreatedSchema":{"properties":{"job_id":{"type":"string","title":"Job Id"}},"type":"object","required":["job_id"],"title":"ExportCreatedSchema"},"ExportJobNotFound":{"properties":{"code":{"type":"string","const":"EXPORT_JOB_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The export job has not been found in this group","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/ExportJobNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"ExportJobNotFound","description":"The export job has not been found in this group"},"ExportJobNotFoundPayload":{"properties":{"job_id":{"type":"string","title":"Job Id"},"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["job_id","group_id"],"title":"ExportJobNotFoundPayload","description":"Context of the ExportJobNotFound error: the values identifying the entities involved in this specific occurrence."},"ExportJobSchema":{"properties":{"job_id":{"type":"string","title":"Job Id"},"export_type":{"$ref":"#/components/schemas/ExportType"},"status":{"$ref":"#/components/schemas/ExportJobStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["job_id","export_type","status","created_at"],"title":"ExportJobSchema"},"ExportJobStatus":{"type":"string","enum":["pending","running","succeeded","failed"],"title":"ExportJobStatus"},"ExportType":{"type":"string","enum":["trip_km","passenger_counts"],"title":"ExportType"},"Feature":{"type":"string","enum":["custom_duty_checklist","danger_zones","deviation","display_info","display_screen","frequency","gtfs_rt","urgency","message_notifications","siri","planning","voip","mcf","nocrates","device_event_sourcing","rail_data","on_demand"],"title":"Feature","description":"A feature a group may hold. Only Pysae grants one; a group cannot self-serve."},"FeaturesConfigModel":{"properties":{"message_notifications":{"$ref":"#/components/schemas/MessageNotificationsFeatureConfig","description":"Quota of the traveller notifications.","default":{"monthly_limit":250,"nb_sender":1}},"gtfs_rt":{"$ref":"#/components/schemas/GtfsRtFeatureConfig","description":"State of the public GTFS-RT feed.","default":{"active":true}},"display_info":{"$ref":"#/components/schemas/DisplayFeatureConfig","description":"State of the traveller information site.","default":{"active":true}},"display_screen":{"$ref":"#/components/schemas/DisplayFeatureConfig","description":"State of the on-site departure screens.","default":{"active":true}}},"type":"object","title":"FeaturesConfigModel","description":"Settings of the features the group has, as the group itself tunes them."},"FeaturesConfigSchema":{"properties":{"message_notifications":{"anyOf":[{"$ref":"#/components/schemas/MessageNotificationsConfigSchema"},{"type":"null"}],"description":"Quota of the traveller notifications."},"gtfs_rt":{"anyOf":[{"$ref":"#/components/schemas/GtfsRtConfigSchema"},{"type":"null"}],"description":"State of the public GTFS-RT feed."},"display_info":{"anyOf":[{"$ref":"#/components/schemas/DisplayConfigSchema"},{"type":"null"}],"description":"State of the traveller information site."},"display_screen":{"anyOf":[{"$ref":"#/components/schemas/DisplayConfigSchema"},{"type":"null"}],"description":"State of the on-site departure screens."}},"type":"object","title":"FeaturesConfigSchema","description":"Settings of the features the group has, as the group itself tunes them."},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Your teams are incompatible","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/ForbiddenDifferentTeamPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"ForbiddenDifferentTeam","description":"Your teams are incompatible"},"ForbiddenDifferentTeamPayload":{"properties":{"source":{"$ref":"#/components/schemas/ForbiddenDifferentTeamSource"}},"type":"object","required":["source"],"title":"ForbiddenDifferentTeamPayload","description":"Context of the ForbiddenDifferentTeam error: the values identifying the entities involved in this specific occurrence."},"ForbiddenDifferentTeamSource":{"type":"string","enum":["not_part_of_resource","not_part_of_target"],"title":"ForbiddenDifferentTeamSource"},"Format":{"type":"string","enum":["binary","plaintext"],"title":"Format"},"Frequency":{"properties":{"device_id":{"type":"string","title":"Device Id"},"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","required":["device_id"],"title":"Frequency"},"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"},"GroupAccessCodeNotFound":{"properties":{"code":{"type":"string","const":"ACCESS_CODE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The group does not have a group access code generated","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GroupAccessCodeNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GroupAccessCodeNotFound","description":"The group does not have a group access code generated"},"GroupAccessCodeNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group holding no access code."}},"type":"object","required":["group_id"],"title":"GroupAccessCodeNotFoundPayload","description":"Context of the GroupAccessCodeNotFound error: the values identifying the entities involved in this specific occurrence."},"GroupCode":{"properties":{"code":{"type":"string","title":"Code","description":"The code itself."},"expire":{"type":"string","format":"date-time","title":"Expire","description":"Moment past which the code no longer lets a device in."}},"type":"object","required":["code","expire"],"title":"GroupCode","description":"Access code a device presents to join the group."},"GroupContact":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Email address travellers write to."},"other_informations":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Other Informations","description":"Free-form text shown alongside the contact details."},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Phone number travellers call."}},"type":"object","title":"GroupContact","description":"How travellers reach the operator, as shown on the public applications."},"GroupCreateSchema":{"properties":{"pub":{"type":"boolean","title":"Pub","description":"DEPRECATED — use features_config.display_info.active","default":false},"pub_screen":{"type":"boolean","title":"Pub Screen","description":"DEPRECATED — use features_config.display_screen.active","default":false},"retention_period":{"type":"integer","title":"Retention Period","description":"Months of history the group keeps: the cutoff the driver anonymisation endpoint applies.","default":36},"stop_distance_threshold":{"type":"integer","title":"Stop Distance Threshold","description":"Distance in metres from a stop within which the Pysae Driver app considers it reached.","default":50},"stop_distance_threshold_exceptions":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Stop Distance Threshold Exceptions","description":"Distances in metres overriding that threshold, keyed by GTFS stop id."},"notifications":{"type":"boolean","title":"Notifications","description":"Notifications toggle the API stores without acting on it.","default":false},"driver_option_messages_block_send":{"type":"boolean","title":"Driver Option Messages Block Send","description":"Whether the Pysae Driver app prevents a driver from writing their own message, leaving only the canned ones.","default":false},"driver_call_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Call Number","description":"Phone number a driver reaches the operator on."},"router":{"anyOf":[{"$ref":"#/components/schemas/RouterConfig"},{"type":"null"}],"description":"Credentials of the on-board router. Use the integrations."},"driver_trip_format":{"type":"string","title":"Driver Trip Format","description":"Pattern naming a trip on the devices. `%dt` theoretical departure, `%th` headsign, `%tn` trip short name, `%rsn` route short name, `%rln` route long name, `%fs` first stop, `%ls` last stop, `%bl` block id.","default":"%dt - %th"},"driver_ontime_interval":{"items":{"type":"integer"},"type":"array","title":"Driver Ontime Interval","description":"Delay window in seconds, as `[start, end]`, the Pysae Driver app shows the driver as on time in.","default":[0,300]},"delay_device_online":{"type":"integer","title":"Delay Device Online","description":"Seconds without an exchange with a device running the Pysae Driver app, past which it counts as offline.","default":120},"delay_device_offline_visible":{"type":"integer","title":"Delay Device Offline Visible","description":"Seconds without an exchange with a device running the Pysae Driver app, past which its vehicle leaves the map.","default":300},"delay_device_online_router":{"type":"integer","title":"Delay Device Online Router","description":"Seconds without an exchange with an on-board router, past which it counts as offline.","default":120},"delay_device_offline_visible_router":{"type":"integer","title":"Delay Device Offline Visible Router","description":"Seconds without an exchange with an on-board router, past which its vehicle leaves the map.","default":300},"delay_device_online_telematic":{"type":"integer","title":"Delay Device Online Telematic","description":"Seconds without an exchange with an on-board telematics unit, past which it counts as offline.","default":120},"delay_device_offline_visible_telematic":{"type":"integer","title":"Delay Device Offline Visible Telematic","description":"Seconds without an exchange with an on-board telematics unit, past which its vehicle leaves the map.","default":300},"incoming_distance_threshold":{"type":"integer","title":"Incoming Distance Threshold","description":"Distance in metres from a stop at which a vehicle counts as approaching it.","default":200},"shape_distance_threshold":{"type":"integer","title":"Shape Distance Threshold","description":"Distance in metres from the planned itinerary past which a vehicle counts as off it.","default":300},"km_distance_source":{"$ref":"#/components/schemas/KmDistanceSource","description":"How the kilometric counters measure a distance.","default":"gps"},"categories":{"$ref":"#/components/schemas/Categories","description":"Delay intervals the punctuality reports are built on.","default":{"cats":[-120,0,120,300],"bounds":{"down":2,"up":3}}},"teams":{"items":{"$ref":"#/components/schemas/Team"},"type":"array","title":"Teams","description":"Teams the group is split into.","default":[]},"driver_message_values":{"items":{"$ref":"#/components/schemas/DriverMessage"},"type":"array","title":"Driver Message Values","description":"Canned messages a driver picks from.","default":[]},"driver_passenger_count_custom_boarding":{"items":{"type":"string"},"type":"array","title":"Driver Passenger Count Custom Boarding","description":"Extra boarding categories the Pysae Driver app offers when counting passengers.","default":[]},"trip_list_configuration":{"$ref":"#/components/schemas/TripListConfiguration","description":"Presentation of the trip list of a service day.","default":{"merging":{"device":false,"gtfs":true}}},"trip_validation_rules":{"$ref":"#/components/schemas/TripValidationRules","description":"Thresholds past which a trip is reported as problematic.","default":{"start_distance_max":1000,"start_delay_max":1800,"start_delay_min":-1800,"vk_percent_min":80}},"frequency_routes":{"items":{"type":"string"},"type":"array","title":"Frequency Routes","description":"Routes run at a frequency: their trips are followed by headway rather than by timetable.","default":[]},"keep_old_shapes":{"type":"boolean","title":"Keep Old Shapes","description":"Whether a GTFS published without shapes inherits those of the previous one instead of losing its itineraries.","default":false},"pis_dead_mileage_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Dead Mileage Code","description":"Code standing for a dead run on the on-board passenger information system."},"auth0_organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth0 Organization Id","description":"Auth0 organization this group signs in through."},"email_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Domain","description":"Email domain, as `acme.com`, routing a user typing their address to this group's Auth0 organization."},"driver_auto_end_duty":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the Pysae Driver app ends a duty on its own, counted from the arrival at the depot.","default":{"enabled":true,"delay":30}},"driver_auto_end_trip":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the Pysae Driver app ends a trip on its own, counted from the arrival at the last stop.","default":{"enabled":true,"delay":30}},"connection_advance":{"type":"integer","title":"Connection Advance","description":"Legacy setting, stored and returned as-is.","default":0},"upcoming_files":{"items":{"$ref":"#/components/schemas/UpcomingFile"},"type":"array","title":"Upcoming Files","description":"GTFS publications that were scheduled on the group.","default":[]},"tz_delta":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Tz Delta","description":"Legacy setting, stored and returned as-is."},"operations_warnings":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Operations Warnings","description":"Settings of the operations warnings, keyed by warning. Their shape varies by warning and the API does not interpret them.","default":{}},"driver_option_duty_check_in":{"type":"boolean","title":"Driver Option Duty Check In","description":"Whether the Pysae Driver app has the driver check in on their duty before driving it.","default":false},"info_option_push_notification":{"type":"boolean","title":"Info Option Push Notification","description":"Whether the traveller information site may send push notifications.","default":false},"driver_passenger_count":{"type":"boolean","title":"Driver Passenger Count","description":"Whether the Pysae Driver app has the driver count boarding passengers.","default":false},"pis_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Type","description":"On-board passenger information system the group runs."},"option_pis":{"type":"boolean","title":"Option Pis","description":"Whether the group drives an on-board passenger information system.","default":false},"option_wait_for_departure_time":{"type":"boolean","title":"Option Wait For Departure Time","description":"Whether the Pysae Driver app holds a trip until its scheduled departure time.","default":false},"option_ercogener":{"type":"boolean","title":"Option Ercogener","description":"Whether the group runs Ercogener on-board units.","default":false},"option_trip_incidents":{"anyOf":[{"$ref":"#/components/schemas/TripIncidentsConfig-Input"},{"type":"null"}],"description":"Where the trip incidents the operator reports are filed."},"applications":{"items":{"type":"string"},"type":"array","title":"Applications","description":"Legacy setting, stored and returned as-is.","default":[]},"latest_driver_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Driver Version","description":"Legacy setting, stored and returned as-is."},"map_vehicle_icon_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Map Vehicle Icon Color","description":"Colour the operator map draws the vehicles in."},"map_vehicle_tooltip_pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Map Vehicle Tooltip Pattern","description":"Pattern the operator map labels a vehicle with."},"punctuality_check":{"type":"boolean","title":"Punctuality Check","description":"Legacy setting, stored and returned as-is.","default":false},"option_driver_break":{"type":"boolean","title":"Option Driver Break","description":"Whether the Pysae Driver app lets the driver take a break during a duty.","default":false},"group_id":{"type":"string","minLength":1,"title":"Group Id","description":"Identifier the group is created under. It appears in the path of nearly every endpoint and cannot be changed afterwards."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications theme the group with."},"contact":{"anyOf":[{"$ref":"#/components/schemas/Contact"},{"type":"null"}],"description":"How travellers reach the operator."},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"Identifier of the GTFS the group starts out running on."},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"URL the logo of the group is served from."},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz","description":"Timezone the group's service days and schedules are read in, as an IANA name."},"archived":{"type":"boolean","title":"Archived","description":"Whether the group is created archived: hidden from the listings, reversibly.","default":false},"code":{"anyOf":[{"$ref":"#/components/schemas/GroupCode"},{"type":"null"}],"description":"Access code devices present to join the group."},"bounds":{"anyOf":[{"$ref":"#/components/schemas/BoundShape"},{"type":"null"}],"description":"Area the group operates in, used to frame the maps."},"private_routes":{"items":{"type":"string"},"type":"array","title":"Private Routes","description":"Routes kept out of the traveller-facing feeds and displays, while staying visible to the operator.","default":[]},"deactivated_routes":{"items":{"type":"string"},"type":"array","title":"Deactivated Routes","description":"Routes left out of the punctuality and kilometre reports.","default":[]},"integrations":{"additionalProperties":{"$ref":"#/components/schemas/Integration"},"propertyNames":{"$ref":"#/components/schemas/APIIntegrationId"},"type":"object","title":"Integrations","description":"Third-party systems the API exchanges with, keyed by integration.","default":{}},"embedded_interfaces":{"additionalProperties":{"$ref":"#/components/schemas/Integration"},"propertyNames":{"$ref":"#/components/schemas/DriverIntegrationId"},"type":"object","title":"Embedded Interfaces","description":"On-board equipment the Pysae Driver app drives, keyed by interface.","default":{}},"features":{"$ref":"#/components/schemas/MongoSet_Feature_","description":"Features the group holds. GTFS-RT is granted unless the set is given explicitly.","default":["gtfs_rt"]},"features_config":{"$ref":"#/components/schemas/FeaturesConfigModel","description":"Settings of the features the group holds.","default":{"message_notifications":{"monthly_limit":250,"nb_sender":1},"gtfs_rt":{"active":true},"display_info":{"active":true},"display_screen":{"active":true}}},"memory_use_limit":{"type":"integer","title":"Memory Use Limit","description":"Size in bytes the group's data may reach.","default":15000000000},"memory_use":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Use","description":"Size in bytes of the group's data, as last measured."},"user_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Limit","description":"Users the group may hold, null when uncapped."},"equipped_vehicles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Equipped Vehicles","description":"Vehicles the group's subscription covers, the reference the daily peak of duties is measured against. Null when uncapped."},"device_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Limit","description":"Devices the group may register, null when uncapped."},"pack":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Pack","description":"Identifier of the pack the group is attached to."}},"type":"object","required":["group_id","name"],"title":"GroupCreateSchema","description":"Body of ``POST /groups``. Mirrors the creatable Group surface so a group\ncan still be created with its full configuration (the repository persists\n``model_dump`` verbatim), while unknown junk keys (e.g. ``fakeclient``,\ntop-level ``email``) are dropped instead of silently stored — Pydantic's\ndefault ``extra`` is ``\"ignore\"``, no longer ``\"allow\"`` (#2763)."},"GroupDeviceVersionStatsSchema":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."},"total":{"type":"integer","title":"Total","description":"Devices of the group running this version."},"active":{"type":"integer","title":"Active","description":"Of those, the ones that reported a position in the last 30 days."},"inactive":{"type":"integer","title":"Inactive","description":"Of those, the ones that reported nothing for 30 days, or never reported at all."},"archived":{"type":"integer","title":"Archived","description":"Of those, the archived ones."}},"type":"object","required":["group_id","name","total","active","inactive","archived"],"title":"GroupDeviceVersionStatsSchema","description":"How many devices of one group run the app version being counted."},"GroupNavDataProcessorSchema":{"properties":{"_id":{"type":"string","title":"Id","description":"Identifier of the group."},"id":{"type":"string","title":"Id","description":"Identifier of the group, same as `_id`."},"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group, same as `_id`."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications theme the group with."},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"Identifier of the GTFS the group currently runs on."},"teams":{"items":{"$ref":"#/components/schemas/Team"},"type":"array","title":"Teams","description":"Teams of the group, the archived ones left out.","default":[]},"features":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","title":"Features","description":"Features of the group the app has a part in. The others are left out.","default":[]},"driver_call_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Call Number","description":"Phone number a driver reaches the operator on."},"driver_auto_end_duty":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the app ends a duty on its own, counted from the arrival at the depot."},"driver_auto_end_trip":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the app ends a trip on its own, counted from the arrival at the last stop."},"driver_message_values":{"items":{"$ref":"#/components/schemas/DriverMessageSchema"},"type":"array","title":"Driver Message Values","description":"Canned messages a driver picks from."},"driver_ontime_interval":{"items":{"type":"integer"},"type":"array","title":"Driver Ontime Interval","description":"Delay window in seconds, as `[start, end]`, the app shows the driver as on time in."},"driver_option_messages_block_send":{"type":"boolean","title":"Driver Option Messages Block Send","description":"Whether the app prevents a driver from writing their own message, leaving only the canned ones."},"driver_passenger_count_custom_boarding":{"items":{"type":"string"},"type":"array","title":"Driver Passenger Count Custom Boarding","description":"Extra boarding categories the app offers when counting passengers."},"driver_trip_format":{"type":"string","title":"Driver Trip Format","description":"Pattern naming a trip on the devices. `%dt` theoretical departure, `%th` headsign, `%tn` trip short name, `%rsn` route short name, `%rln` route long name, `%fs` first stop, `%ls` last stop, `%bl` block id."},"frequency_routes":{"items":{"type":"string"},"type":"array","title":"Frequency Routes","description":"Routes run at a frequency: their trips are followed by headway rather than by timetable."},"incoming_distance_threshold":{"type":"integer","title":"Incoming Distance Threshold","description":"Distance in metres from a stop at which the vehicle counts as approaching it."},"pis_dead_mileage_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Dead Mileage Code","description":"Code standing for a dead run on the on-board passenger information system."},"shape_distance_threshold":{"type":"integer","title":"Shape Distance Threshold","description":"Distance in metres from the planned itinerary past which the vehicle counts as off it."},"stop_distance_threshold":{"type":"integer","title":"Stop Distance Threshold","description":"Distance in metres from a stop within which the app considers it reached."},"stop_distance_threshold_exceptions":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Stop Distance Threshold Exceptions","description":"Distances in metres overriding that threshold, keyed by GTFS stop id."}},"type":"object","required":["_id","id","group_id","name","driver_call_number","driver_auto_end_duty","driver_auto_end_trip","driver_message_values","driver_ontime_interval","driver_option_messages_block_send","driver_passenger_count_custom_boarding","driver_trip_format","frequency_routes","incoming_distance_threshold","pis_dead_mileage_code","shape_distance_threshold","stop_distance_threshold","stop_distance_threshold_exceptions"],"title":"GroupNavDataProcessorSchema","description":"The group as the Pysae Driver app sees it: only what drives the app.\n\nArchived teams and the features the app has no part in are left out."},"GroupNotFound":{"properties":{"code":{"type":"string","const":"GROUP_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The group has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GroupNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GroupNotFound","description":"The group has not been found"},"GroupNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"GroupNotFoundPayload","description":"Context of the GroupNotFound error: the values identifying the entities involved in this specific occurrence."},"GroupPublicSchemaV3":{"properties":{"_id":{"type":"string","title":"Id","description":"Identifier of the group."},"id":{"type":"string","title":"Id","description":"Identifier of the group, same as `_id`."},"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group, same as `_id`."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications theme the group with."},"contact":{"anyOf":[{"$ref":"#/components/schemas/GroupContact"},{"type":"null"}],"description":"How travellers reach the operator."},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"Identifier of the GTFS the group currently runs on."},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"URL the logo of the group is served from."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."},"private_routes":{"items":{"type":"string"},"type":"array","title":"Private Routes","description":"Routes kept out of the traveller-facing feeds and displays, while staying visible to the operator.","default":[]},"deactivated_routes":{"items":{"type":"string"},"type":"array","title":"Deactivated Routes","description":"Routes left out of the punctuality and kilometre reports.","default":[]},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz","description":"Timezone the group's service days and schedules are read in, as an IANA name."},"bounds":{"anyOf":[{"$ref":"#/components/schemas/BoundShape"},{"type":"null"}],"description":"Area the group operates in, used to frame the maps."}},"type":"object","required":["_id","id","group_id","name"],"title":"GroupPublicSchemaV3","description":"Identity of a group: what it is called, where it runs, what it publishes."},"GroupSchemaV3-Input":{"properties":{"pub":{"type":"boolean","title":"Pub","description":"DEPRECATED — use features_config.display_info.active","default":false},"pub_screen":{"type":"boolean","title":"Pub Screen","description":"DEPRECATED — use features_config.display_screen.active","default":false},"retention_period":{"type":"integer","title":"Retention Period","description":"Months of history the group keeps: the cutoff the driver anonymisation endpoint applies.","default":36},"stop_distance_threshold":{"type":"integer","title":"Stop Distance Threshold","description":"Distance in metres from a stop within which the Pysae Driver app considers it reached.","default":50},"stop_distance_threshold_exceptions":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Stop Distance Threshold Exceptions","description":"Distances in metres overriding that threshold, keyed by GTFS stop id."},"notifications":{"type":"boolean","title":"Notifications","description":"Notifications toggle the API stores without acting on it.","default":false},"driver_option_messages_block_send":{"type":"boolean","title":"Driver Option Messages Block Send","description":"Whether the Pysae Driver app prevents a driver from writing their own message, leaving only the canned ones.","default":false},"driver_call_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Call Number","description":"Phone number a driver reaches the operator on."},"router":{"anyOf":[{"$ref":"#/components/schemas/RouterConfig"},{"type":"null"}],"description":"Credentials of the on-board router. Use the integrations."},"driver_trip_format":{"type":"string","title":"Driver Trip Format","description":"Pattern naming a trip on the devices. `%dt` theoretical departure, `%th` headsign, `%tn` trip short name, `%rsn` route short name, `%rln` route long name, `%fs` first stop, `%ls` last stop, `%bl` block id.","default":"%dt - %th"},"driver_ontime_interval":{"items":{"type":"integer"},"type":"array","title":"Driver Ontime Interval","description":"Delay window in seconds, as `[start, end]`, the Pysae Driver app shows the driver as on time in.","default":[0,300]},"delay_device_online":{"type":"integer","title":"Delay Device Online","description":"Seconds without an exchange with a device running the Pysae Driver app, past which it counts as offline.","default":120},"delay_device_offline_visible":{"type":"integer","title":"Delay Device Offline Visible","description":"Seconds without an exchange with a device running the Pysae Driver app, past which its vehicle leaves the map.","default":300},"delay_device_online_router":{"type":"integer","title":"Delay Device Online Router","description":"Seconds without an exchange with an on-board router, past which it counts as offline.","default":120},"delay_device_offline_visible_router":{"type":"integer","title":"Delay Device Offline Visible Router","description":"Seconds without an exchange with an on-board router, past which its vehicle leaves the map.","default":300},"delay_device_online_telematic":{"type":"integer","title":"Delay Device Online Telematic","description":"Seconds without an exchange with an on-board telematics unit, past which it counts as offline.","default":120},"delay_device_offline_visible_telematic":{"type":"integer","title":"Delay Device Offline Visible Telematic","description":"Seconds without an exchange with an on-board telematics unit, past which its vehicle leaves the map.","default":300},"incoming_distance_threshold":{"type":"integer","title":"Incoming Distance Threshold","description":"Distance in metres from a stop at which a vehicle counts as approaching it.","default":200},"shape_distance_threshold":{"type":"integer","title":"Shape Distance Threshold","description":"Distance in metres from the planned itinerary past which a vehicle counts as off it.","default":300},"km_distance_source":{"$ref":"#/components/schemas/KmDistanceSource","description":"How the kilometric counters measure a distance.","default":"gps"},"categories":{"$ref":"#/components/schemas/Categories","description":"Delay intervals the punctuality reports are built on.","default":{"cats":[-120,0,120,300],"bounds":{"down":2,"up":3}}},"teams":{"items":{"$ref":"#/components/schemas/Team"},"type":"array","title":"Teams","description":"Teams the group is split into.","default":[]},"driver_message_values":{"items":{"$ref":"#/components/schemas/DriverMessage"},"type":"array","title":"Driver Message Values","description":"Canned messages a driver picks from.","default":[]},"driver_passenger_count_custom_boarding":{"items":{"type":"string"},"type":"array","title":"Driver Passenger Count Custom Boarding","description":"Extra boarding categories the Pysae Driver app offers when counting passengers.","default":[]},"trip_list_configuration":{"$ref":"#/components/schemas/TripListConfiguration","description":"Presentation of the trip list of a service day.","default":{"merging":{"device":false,"gtfs":true}}},"trip_validation_rules":{"$ref":"#/components/schemas/TripValidationRules","description":"Thresholds past which a trip is reported as problematic.","default":{"start_distance_max":1000,"start_delay_max":1800,"start_delay_min":-1800,"vk_percent_min":80}},"frequency_routes":{"items":{"type":"string"},"type":"array","title":"Frequency Routes","description":"Routes run at a frequency: their trips are followed by headway rather than by timetable.","default":[]},"keep_old_shapes":{"type":"boolean","title":"Keep Old Shapes","description":"Whether a GTFS published without shapes inherits those of the previous one instead of losing its itineraries.","default":false},"pis_dead_mileage_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Dead Mileage Code","description":"Code standing for a dead run on the on-board passenger information system."},"auth0_organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth0 Organization Id","description":"Auth0 organization this group signs in through."},"email_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Domain","description":"Email domain, as `acme.com`, routing a user typing their address to this group's Auth0 organization."},"driver_auto_end_duty":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the Pysae Driver app ends a duty on its own, counted from the arrival at the depot.","default":{"enabled":true,"delay":30}},"driver_auto_end_trip":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the Pysae Driver app ends a trip on its own, counted from the arrival at the last stop.","default":{"enabled":true,"delay":30}},"connection_advance":{"type":"integer","title":"Connection Advance","description":"Legacy setting, stored and returned as-is.","default":0},"upcoming_files":{"items":{"$ref":"#/components/schemas/UpcomingFile"},"type":"array","title":"Upcoming Files","description":"GTFS publications that were scheduled on the group.","default":[]},"tz_delta":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Tz Delta","description":"Legacy setting, stored and returned as-is."},"operations_warnings":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Operations Warnings","description":"Settings of the operations warnings, keyed by warning. Their shape varies by warning and the API does not interpret them.","default":{}},"driver_option_duty_check_in":{"type":"boolean","title":"Driver Option Duty Check In","description":"Whether the Pysae Driver app has the driver check in on their duty before driving it.","default":false},"info_option_push_notification":{"type":"boolean","title":"Info Option Push Notification","description":"Whether the traveller information site may send push notifications.","default":false},"driver_passenger_count":{"type":"boolean","title":"Driver Passenger Count","description":"Whether the Pysae Driver app has the driver count boarding passengers.","default":false},"pis_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Type","description":"On-board passenger information system the group runs."},"option_pis":{"type":"boolean","title":"Option Pis","description":"Whether the group drives an on-board passenger information system.","default":false},"option_wait_for_departure_time":{"type":"boolean","title":"Option Wait For Departure Time","description":"Whether the Pysae Driver app holds a trip until its scheduled departure time.","default":false},"option_ercogener":{"type":"boolean","title":"Option Ercogener","description":"Whether the group runs Ercogener on-board units.","default":false},"option_trip_incidents":{"anyOf":[{"$ref":"#/components/schemas/TripIncidentsConfig-Input"},{"type":"null"}],"description":"Where the trip incidents the operator reports are filed."},"applications":{"items":{"type":"string"},"type":"array","title":"Applications","description":"Legacy setting, stored and returned as-is.","default":[]},"latest_driver_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Driver Version","description":"Legacy setting, stored and returned as-is."},"map_vehicle_icon_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Map Vehicle Icon Color","description":"Colour the operator map draws the vehicles in."},"map_vehicle_tooltip_pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Map Vehicle Tooltip Pattern","description":"Pattern the operator map labels a vehicle with."},"punctuality_check":{"type":"boolean","title":"Punctuality Check","description":"Legacy setting, stored and returned as-is.","default":false},"option_driver_break":{"type":"boolean","title":"Option Driver Break","description":"Whether the Pysae Driver app lets the driver take a break during a duty.","default":false},"_id":{"type":"string","title":"Id","description":"Identifier of the group."},"id":{"type":"string","title":"Id","description":"Identifier of the group, same as `_id`."},"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group, same as `_id`."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications theme the group with."},"contact":{"anyOf":[{"$ref":"#/components/schemas/GroupContact"},{"type":"null"}],"description":"How travellers reach the operator."},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"Identifier of the GTFS the group currently runs on."},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"URL the logo of the group is served from."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."},"private_routes":{"items":{"type":"string"},"type":"array","title":"Private Routes","description":"Routes kept out of the traveller-facing feeds and displays, while staying visible to the operator.","default":[]},"deactivated_routes":{"items":{"type":"string"},"type":"array","title":"Deactivated Routes","description":"Routes left out of the punctuality and kilometre reports.","default":[]},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz","description":"Timezone the group's service days and schedules are read in, as an IANA name."},"bounds":{"anyOf":[{"$ref":"#/components/schemas/BoundShape"},{"type":"null"}],"description":"Area the group operates in, used to frame the maps."},"archived":{"type":"boolean","title":"Archived","description":"Whether the group is archived: hidden from the listings, reversibly, its data untouched. Read-only here — archiving goes through the archive and unarchive endpoints.","default":false},"next_state_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next State Load","description":"Epoch seconds past which the group's operational state is reloaded from its GTFS."},"loading_state":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Loading State","description":"Epoch seconds at which the ongoing state load started, null when none is running."},"integrations":{"additionalProperties":{"$ref":"#/components/schemas/IntegrationSchema"},"type":"object","title":"Integrations","description":"Third-party systems the API exchanges with, keyed by integration.","default":{}},"embedded_interfaces":{"additionalProperties":{"$ref":"#/components/schemas/IntegrationSchema"},"type":"object","title":"Embedded Interfaces","description":"On-board equipment the Pysae Driver app drives, keyed by interface.","default":{}},"memory_use_limit":{"type":"integer","title":"Memory Use Limit","description":"Size in bytes the group's data may reach.","default":15000000000},"memory_use":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Use","description":"Size in bytes of the group's data, as last measured."},"features":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","title":"Features","description":"Features the group holds.","default":[]},"user_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Count","description":"Users currently holding a role on the group."},"user_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Limit","description":"Users the group may hold, null when uncapped."},"equipped_vehicles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Equipped Vehicles","description":"Vehicles the group's subscription covers, the reference the daily peak of duties is measured against. Null when uncapped."},"device_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Limit","description":"Devices the group may register, null when uncapped."},"features_config":{"$ref":"#/components/schemas/FeaturesConfigSchema","description":"Settings of the features the group holds.","default":{}}},"type":"object","required":["memory_use_limit"],"title":"GroupSchemaV3","description":"A group with its full configuration, as the Pysae applications read it.\n\nThe `PUT` replaces the whole document: a field left out of the body is\ndropped from the group. `archived` keeps its stored value, and `pack` and\n`user_count` are ignored."},"GroupSchemaV3-Output":{"properties":{"pub":{"type":"boolean","title":"Pub","description":"DEPRECATED — use features_config.display_info.active","default":false},"pub_screen":{"type":"boolean","title":"Pub Screen","description":"DEPRECATED — use features_config.display_screen.active","default":false},"retention_period":{"type":"integer","title":"Retention Period","description":"Months of history the group keeps: the cutoff the driver anonymisation endpoint applies.","default":36},"stop_distance_threshold":{"type":"integer","title":"Stop Distance Threshold","description":"Distance in metres from a stop within which the Pysae Driver app considers it reached.","default":50},"stop_distance_threshold_exceptions":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Stop Distance Threshold Exceptions","description":"Distances in metres overriding that threshold, keyed by GTFS stop id."},"notifications":{"type":"boolean","title":"Notifications","description":"Notifications toggle the API stores without acting on it.","default":false},"driver_option_messages_block_send":{"type":"boolean","title":"Driver Option Messages Block Send","description":"Whether the Pysae Driver app prevents a driver from writing their own message, leaving only the canned ones.","default":false},"driver_call_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Call Number","description":"Phone number a driver reaches the operator on."},"router":{"anyOf":[{"$ref":"#/components/schemas/RouterConfig"},{"type":"null"}],"description":"Credentials of the on-board router. Use the integrations."},"driver_trip_format":{"type":"string","title":"Driver Trip Format","description":"Pattern naming a trip on the devices. `%dt` theoretical departure, `%th` headsign, `%tn` trip short name, `%rsn` route short name, `%rln` route long name, `%fs` first stop, `%ls` last stop, `%bl` block id.","default":"%dt - %th"},"driver_ontime_interval":{"items":{"type":"integer"},"type":"array","title":"Driver Ontime Interval","description":"Delay window in seconds, as `[start, end]`, the Pysae Driver app shows the driver as on time in.","default":[0,300]},"delay_device_online":{"type":"integer","title":"Delay Device Online","description":"Seconds without an exchange with a device running the Pysae Driver app, past which it counts as offline.","default":120},"delay_device_offline_visible":{"type":"integer","title":"Delay Device Offline Visible","description":"Seconds without an exchange with a device running the Pysae Driver app, past which its vehicle leaves the map.","default":300},"delay_device_online_router":{"type":"integer","title":"Delay Device Online Router","description":"Seconds without an exchange with an on-board router, past which it counts as offline.","default":120},"delay_device_offline_visible_router":{"type":"integer","title":"Delay Device Offline Visible Router","description":"Seconds without an exchange with an on-board router, past which its vehicle leaves the map.","default":300},"delay_device_online_telematic":{"type":"integer","title":"Delay Device Online Telematic","description":"Seconds without an exchange with an on-board telematics unit, past which it counts as offline.","default":120},"delay_device_offline_visible_telematic":{"type":"integer","title":"Delay Device Offline Visible Telematic","description":"Seconds without an exchange with an on-board telematics unit, past which its vehicle leaves the map.","default":300},"incoming_distance_threshold":{"type":"integer","title":"Incoming Distance Threshold","description":"Distance in metres from a stop at which a vehicle counts as approaching it.","default":200},"shape_distance_threshold":{"type":"integer","title":"Shape Distance Threshold","description":"Distance in metres from the planned itinerary past which a vehicle counts as off it.","default":300},"km_distance_source":{"$ref":"#/components/schemas/KmDistanceSource","description":"How the kilometric counters measure a distance.","default":"gps"},"categories":{"$ref":"#/components/schemas/Categories","description":"Delay intervals the punctuality reports are built on.","default":{"cats":[-120,0,120,300],"bounds":{"down":2,"up":3}}},"teams":{"items":{"$ref":"#/components/schemas/Team"},"type":"array","title":"Teams","description":"Teams the group is split into.","default":[]},"driver_message_values":{"items":{"$ref":"#/components/schemas/DriverMessage"},"type":"array","title":"Driver Message Values","description":"Canned messages a driver picks from.","default":[]},"driver_passenger_count_custom_boarding":{"items":{"type":"string"},"type":"array","title":"Driver Passenger Count Custom Boarding","description":"Extra boarding categories the Pysae Driver app offers when counting passengers.","default":[]},"trip_list_configuration":{"$ref":"#/components/schemas/TripListConfiguration","description":"Presentation of the trip list of a service day.","default":{"merging":{"device":false,"gtfs":true}}},"trip_validation_rules":{"$ref":"#/components/schemas/TripValidationRules","description":"Thresholds past which a trip is reported as problematic.","default":{"start_distance_max":1000,"start_delay_max":1800,"start_delay_min":-1800,"vk_percent_min":80}},"frequency_routes":{"items":{"type":"string"},"type":"array","title":"Frequency Routes","description":"Routes run at a frequency: their trips are followed by headway rather than by timetable.","default":[]},"keep_old_shapes":{"type":"boolean","title":"Keep Old Shapes","description":"Whether a GTFS published without shapes inherits those of the previous one instead of losing its itineraries.","default":false},"pis_dead_mileage_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Dead Mileage Code","description":"Code standing for a dead run on the on-board passenger information system."},"auth0_organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth0 Organization Id","description":"Auth0 organization this group signs in through."},"email_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Domain","description":"Email domain, as `acme.com`, routing a user typing their address to this group's Auth0 organization."},"driver_auto_end_duty":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the Pysae Driver app ends a duty on its own, counted from the arrival at the depot.","default":{"enabled":true,"delay":30}},"driver_auto_end_trip":{"$ref":"#/components/schemas/AutoEndConfigSchema","description":"When the Pysae Driver app ends a trip on its own, counted from the arrival at the last stop.","default":{"enabled":true,"delay":30}},"connection_advance":{"type":"integer","title":"Connection Advance","description":"Legacy setting, stored and returned as-is.","default":0},"upcoming_files":{"items":{"$ref":"#/components/schemas/UpcomingFile"},"type":"array","title":"Upcoming Files","description":"GTFS publications that were scheduled on the group.","default":[]},"tz_delta":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Tz Delta","description":"Legacy setting, stored and returned as-is."},"operations_warnings":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Operations Warnings","description":"Settings of the operations warnings, keyed by warning. Their shape varies by warning and the API does not interpret them.","default":{}},"driver_option_duty_check_in":{"type":"boolean","title":"Driver Option Duty Check In","description":"Whether the Pysae Driver app has the driver check in on their duty before driving it.","default":false},"info_option_push_notification":{"type":"boolean","title":"Info Option Push Notification","description":"Whether the traveller information site may send push notifications.","default":false},"driver_passenger_count":{"type":"boolean","title":"Driver Passenger Count","description":"Whether the Pysae Driver app has the driver count boarding passengers.","default":false},"pis_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pis Type","description":"On-board passenger information system the group runs."},"option_pis":{"type":"boolean","title":"Option Pis","description":"Whether the group drives an on-board passenger information system.","default":false},"option_wait_for_departure_time":{"type":"boolean","title":"Option Wait For Departure Time","description":"Whether the Pysae Driver app holds a trip until its scheduled departure time.","default":false},"option_ercogener":{"type":"boolean","title":"Option Ercogener","description":"Whether the group runs Ercogener on-board units.","default":false},"option_trip_incidents":{"anyOf":[{"$ref":"#/components/schemas/TripIncidentsConfig-Output"},{"type":"null"}],"description":"Where the trip incidents the operator reports are filed."},"applications":{"items":{"type":"string"},"type":"array","title":"Applications","description":"Legacy setting, stored and returned as-is.","default":[]},"latest_driver_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Driver Version","description":"Legacy setting, stored and returned as-is."},"map_vehicle_icon_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Map Vehicle Icon Color","description":"Colour the operator map draws the vehicles in."},"map_vehicle_tooltip_pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Map Vehicle Tooltip Pattern","description":"Pattern the operator map labels a vehicle with."},"punctuality_check":{"type":"boolean","title":"Punctuality Check","description":"Legacy setting, stored and returned as-is.","default":false},"option_driver_break":{"type":"boolean","title":"Option Driver Break","description":"Whether the Pysae Driver app lets the driver take a break during a duty.","default":false},"_id":{"type":"string","title":"Id","description":"Identifier of the group."},"id":{"type":"string","title":"Id","description":"Identifier of the group, same as `_id`."},"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group, same as `_id`."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications theme the group with."},"contact":{"anyOf":[{"$ref":"#/components/schemas/GroupContact"},{"type":"null"}],"description":"How travellers reach the operator."},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"Identifier of the GTFS the group currently runs on."},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"URL the logo of the group is served from."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."},"private_routes":{"items":{"type":"string"},"type":"array","title":"Private Routes","description":"Routes kept out of the traveller-facing feeds and displays, while staying visible to the operator.","default":[]},"deactivated_routes":{"items":{"type":"string"},"type":"array","title":"Deactivated Routes","description":"Routes left out of the punctuality and kilometre reports.","default":[]},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz","description":"Timezone the group's service days and schedules are read in, as an IANA name."},"bounds":{"anyOf":[{"$ref":"#/components/schemas/BoundShape"},{"type":"null"}],"description":"Area the group operates in, used to frame the maps."},"archived":{"type":"boolean","title":"Archived","description":"Whether the group is archived: hidden from the listings, reversibly, its data untouched. Read-only here — archiving goes through the archive and unarchive endpoints.","default":false},"next_state_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next State Load","description":"Epoch seconds past which the group's operational state is reloaded from its GTFS."},"loading_state":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Loading State","description":"Epoch seconds at which the ongoing state load started, null when none is running."},"integrations":{"additionalProperties":{"$ref":"#/components/schemas/IntegrationSchema"},"type":"object","title":"Integrations","description":"Third-party systems the API exchanges with, keyed by integration.","default":{}},"embedded_interfaces":{"additionalProperties":{"$ref":"#/components/schemas/IntegrationSchema"},"type":"object","title":"Embedded Interfaces","description":"On-board equipment the Pysae Driver app drives, keyed by interface.","default":{}},"memory_use_limit":{"type":"integer","title":"Memory Use Limit","description":"Size in bytes the group's data may reach.","default":15000000000},"memory_use":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Use","description":"Size in bytes of the group's data, as last measured."},"features":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","title":"Features","description":"Features the group holds.","default":[]},"user_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Count","description":"Users currently holding a role on the group."},"user_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Limit","description":"Users the group may hold, null when uncapped."},"equipped_vehicles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Equipped Vehicles","description":"Vehicles the group's subscription covers, the reference the daily peak of duties is measured against. Null when uncapped."},"device_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Limit","description":"Devices the group may register, null when uncapped."},"features_config":{"$ref":"#/components/schemas/FeaturesConfigSchema","description":"Settings of the features the group holds.","default":{}}},"type":"object","required":["memory_use_limit"],"title":"GroupSchemaV3","description":"A group with its full configuration, as the Pysae applications read it.\n\nThe `PUT` replaces the whole document: a field left out of the body is\ndropped from the group. `archived` keeps its stored value, and `pack` and\n`user_count` are ignored."},"GtfsAgencyNotFound":{"properties":{"code":{"type":"string","const":"GTFS_AGENCY_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs agency has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsAgencyNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsAgencyNotFound","description":"The gtfs agency has not been found"},"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","description":"Context of the GtfsAgencyNotFound error: the values identifying the entities involved in this specific occurrence."},"GtfsArchiveIsHastusText":{"properties":{"code":{"type":"string","const":"GTFS_ARCHIVE_IS_HASTUS_TEXT","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The uploaded archive is a Hastus flat-text export, which is not supported; provide the Hastus XML export instead","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsArchiveIsHastusTextPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsArchiveIsHastusText","description":"The uploaded archive is a Hastus flat-text export, which is not supported; provide the Hastus XML export instead"},"GtfsArchiveIsHastusTextPayload":{"properties":{},"type":"object","title":"GtfsArchiveIsHastusTextPayload","description":"Context of the GtfsArchiveIsHastusText error: the values identifying the entities involved in this specific occurrence."},"GtfsArchiveLooksLikeHastus":{"properties":{"code":{"type":"string","const":"GTFS_ARCHIVE_LOOKS_LIKE_HASTUS","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The uploaded archive is a Hastus export, not a GTFS archive","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsArchiveLooksLikeHastusPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsArchiveLooksLikeHastus","description":"The uploaded archive is a Hastus export, not a GTFS archive"},"GtfsArchiveLooksLikeHastusPayload":{"properties":{},"type":"object","title":"GtfsArchiveLooksLikeHastusPayload","description":"Context of the GtfsArchiveLooksLikeHastus error: the values identifying the entities involved in this specific occurrence."},"GtfsAttributionTeamNameNotFound":{"properties":{"code":{"type":"string","const":"GTFS_ATTRIBUTION_TEAM_NAME_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Some team names referenced by the GTFS archive have not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsAttributionTeamNameNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsAttributionTeamNameNotFound","description":"Some team names referenced by the GTFS archive have not been found"},"GtfsAttributionTeamNameNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"team_names":{"items":{"type":"string"},"type":"array","title":"Team Names"}},"type":"object","required":["group_id","team_names"],"title":"GtfsAttributionTeamNameNotFoundPayload","description":"Context of the GtfsAttributionTeamNameNotFound error: the values identifying the entities involved in this specific occurrence."},"GtfsCalendarNotFound":{"properties":{"code":{"type":"string","const":"GTFS_CALENDAR_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs calendar has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsCalendarNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsCalendarNotFound","description":"The gtfs calendar has not been found"},"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","description":"Context of the GtfsCalendarNotFound error: the values identifying the entities involved in this specific occurrence."},"GtfsDatedTrip":{"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":{"type":"string","title":"Gtfs Id","description":"référence vers `gtfs.id` de la course"}},"type":"object","required":["trip_id","start_date","gtfs_id"],"title":"GtfsDatedTrip"},"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/pysae__api__gtfs__files__models__ValidationStatus","default":"to_validate"},"validation":{"anyOf":[{"$ref":"#/components/schemas/Response"},{"type":"null"}]},"blocked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Blocked","deprecated":true},"publication_failed":{"anyOf":[{"$ref":"#/components/schemas/PublicationFailureSchema"},{"type":"null"}]}},"type":"object","required":["_id","mod_time","name"],"title":"GtfsFileSchema"},"GtfsInUse":{"properties":{"code":{"type":"string","const":"GTFS_IN_USE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The targeted gtfs is currently in use","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsInUsePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsInUse","description":"The targeted gtfs is currently in use"},"GtfsInUsePayload":{"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":"GtfsInUsePayload","description":"Context of the GtfsInUse error: the values identifying the entities involved in this specific occurrence."},"GtfsNotFound":{"properties":{"code":{"type":"string","const":"GTFS_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs file has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsNotFound","description":"The gtfs file has not been found"},"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","description":"Context of the GtfsNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"GtfsResourceSchema":{"type":"string","enum":["trips","routes","stop_times"],"title":"GtfsResourceSchema"},"GtfsRouteInUse":{"properties":{"code":{"type":"string","const":"GTFS_ROUTE_IN_USE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The targeted gtfs route is referenced by a trip","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsRouteInUsePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsRouteInUse","description":"The targeted gtfs route is referenced by a trip"},"GtfsRouteInUsePayload":{"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":"GtfsRouteInUsePayload","description":"Context of the GtfsRouteInUse error: the values identifying the entities involved in this specific occurrence."},"GtfsRouteNotFound":{"properties":{"code":{"type":"string","const":"GTFS_ROUTE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs route has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsRouteNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsRouteNotFound","description":"The gtfs route has not been found"},"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","description":"Context of the GtfsRouteNotFound error: the values identifying the entities involved in this specific occurrence."},"GtfsRtConfigSchema":{"properties":{"active":{"type":"boolean","title":"Active","description":"Whether the group serves the feed. Distinct from having the feature at all, which only Pysae grants.","default":true}},"type":"object","title":"GtfsRtConfigSchema","description":"Whether the group serves its public GTFS-RT feed."},"GtfsRtFeatureConfig":{"properties":{"active":{"type":"boolean","title":"Active","description":"Whether the group serves the feed. Distinct from having the feature at all, which only Pysae grants.","default":true}},"type":"object","title":"GtfsRtFeatureConfig","description":"Whether the group serves its public GTFS-RT feed."},"GtfsScheduled":{"properties":{"code":{"type":"string","const":"GTFS_SCHEDULED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The targeted gtfs is scheduled for publishing","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsScheduledPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsScheduled","description":"The targeted gtfs is scheduled for publishing"},"GtfsScheduledPayload":{"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":"GtfsScheduledPayload","description":"Context of the GtfsScheduled error: the values identifying the entities involved in this specific occurrence."},"GtfsShapeNotFound":{"properties":{"code":{"type":"string","const":"GTFS_SHAPE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs shape has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsShapeNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsShapeNotFound","description":"The gtfs shape has not been found"},"GtfsShapeNotFoundPayload":{"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"]},"shape_id":{"type":"string","title":"Shape Id"}},"type":"object","required":["group_id","gtfs_id","shape_id"],"title":"GtfsShapeNotFoundPayload","description":"Context of the GtfsShapeNotFound error: the values identifying the entities involved in this specific occurrence."},"GtfsStopInUse":{"properties":{"code":{"type":"string","const":"GTFS_STOP_IN_USE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The targeted stop is referenced by a trip","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsStopInUsePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsStopInUse","description":"The targeted stop is referenced by a trip"},"GtfsStopInUsePayload":{"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":"GtfsStopInUsePayload","description":"Context of the GtfsStopInUse error: the values identifying the entities involved in this specific occurrence."},"GtfsStopNotFound":{"properties":{"code":{"type":"string","const":"GTFS_STOP_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs stop has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsStopNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsStopNotFound","description":"The gtfs stop has not been found"},"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","description":"Context of the GtfsStopNotFound error: the values identifying the entities involved in this specific occurrence."},"GtfsTripNotFound":{"properties":{"code":{"type":"string","const":"GTFS_TRIP_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs trip has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/GtfsTripNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"GtfsTripNotFound","description":"The gtfs trip has not been found"},"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","description":"Context of the GtfsTripNotFound error: the values identifying the entities involved in this specific occurrence."},"HTTPErrorSchema":{"properties":{"code":{"type":"string","title":"Code","description":"Error code"},"details":{"type":"string","title":"Details","description":"Error details"}},"type":"object","required":["code","details"],"title":"HTTPErrorSchema","description":"Error response of the endpoints predating the current error format.\n\nThe current one carries a `payload` alongside the code and the details."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HanoverIpIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0}},"type":"object","title":"HanoverIpIntegrationSchema"},"HastusArchiveLooksLikeGtfs":{"properties":{"code":{"type":"string","const":"HASTUS_ARCHIVE_LOOKS_LIKE_GTFS","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The uploaded archive is a GTFS export, not a Hastus archive","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/HastusArchiveLooksLikeGtfsPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"HastusArchiveLooksLikeGtfs","description":"The uploaded archive is a GTFS export, not a Hastus archive"},"HastusArchiveLooksLikeGtfsPayload":{"properties":{},"type":"object","title":"HastusArchiveLooksLikeGtfsPayload","description":"Context of the HastusArchiveLooksLikeGtfs error: the values identifying the entities involved in this specific occurrence."},"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 la dernière position GPS de l’appareil. Pour savoir si l’appareil communique, voir `connected_at`."},"connected_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Connected At","description":"timestamp du dernier échange avec l’appareil, quelle qu’en soit la nature. C’est ce champ qui détermine si l’appareil est considéré comme connecté."},"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"},"connected_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Connected At","description":"horodatage serveur du dernier contact de l'appareil, toutes natures d'échange confondues. Distinct de `ts`, qui ne porte que la fraîcheur de la dernière position GPS."},"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`"},"current_on_demand_service":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Current On Demand Service","description":"référence vers `duties.on_demand_services.id` du service à la demande en cours, 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"]},"at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"At","description":"timestamp serveur de réception de l’event. Distinct de `ts`, qui date la position que l’event transporte. Absent des events produits hors du chemin event-sourcing, et de ceux écrits avant l’introduction du champ."},"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","system_metadata","location_metadata","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"},"ImportLine":{"properties":{"line":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"}],"title":"Line","description":"Content of the line, parsed into its columns, or raw when it could not be parsed."},"number":{"type":"integer","title":"Number","description":"Position of the line in the imported file."}},"type":"object","required":["line","number"],"title":"ImportLine","description":"A line of the imported file that an error is about."},"ImportPreview":{"properties":{"agencies":{"type":"integer","title":"Agencies"},"trips":{"type":"integer","title":"Trips"},"stops":{"type":"integer","title":"Stops"},"calendar_entries":{"type":"integer","title":"Calendar Entries"},"shapes":{"type":"integer","title":"Shapes"},"routes_detail":{"items":{"$ref":"#/components/schemas/ImportRouteSummary"},"type":"array","title":"Routes Detail"},"routes":{"type":"integer","title":"Routes","readOnly":true}},"type":"object","required":["agencies","trips","stops","calendar_entries","shapes","routes_detail","routes"],"title":"ImportPreview"},"ImportRouteSummary":{"properties":{"route_id":{"type":"string","title":"Route Id"},"short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Name"},"long_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Long Name"},"agency_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Id"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color"},"trip_count":{"type":"integer","title":"Trip Count"},"stop_count":{"type":"integer","title":"Stop Count"}},"type":"object","required":["route_id","short_name","long_name","agency_id","color","text_color","trip_count","stop_count"],"title":"ImportRouteSummary"},"ImportedGtfsFileSchema":{"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/pysae__api__gtfs__files__models__ValidationStatus","default":"to_validate"},"validation":{"anyOf":[{"$ref":"#/components/schemas/Response"},{"type":"null"}]},"blocked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Blocked","deprecated":true},"publication_failed":{"anyOf":[{"$ref":"#/components/schemas/PublicationFailureSchema"},{"type":"null"}]},"agency":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agency"},"calendar":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Calendar"},"calendar_dates":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Calendar Dates"},"stops":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stops"},"routes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Routes"},"shapes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shapes"},"trips":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trips"}},"type":"object","required":["_id","mod_time","name"],"title":"ImportedGtfsFileSchema"},"Incident":{"properties":{"incident_label":{"type":"string","title":"Incident Label"},"ticket":{"$ref":"#/components/schemas/Ticket"}},"type":"object","required":["incident_label","ticket"],"title":"Incident"},"IncompleteHastusArchive":{"properties":{"code":{"type":"string","const":"INCOMPLETE_HASTUS_ARCHIVE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The Hastus archive is missing required XML files","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/IncompleteHastusArchivePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"IncompleteHastusArchive","description":"The Hastus archive is missing required XML files"},"IncompleteHastusArchivePayload":{"properties":{"missing_files":{"items":{"type":"string"},"type":"array","title":"Missing Files"}},"type":"object","required":["missing_files"],"title":"IncompleteHastusArchivePayload","description":"Context of the IncompleteHastusArchive error: the values identifying the entities involved in this specific occurrence."},"IncorrectIntegration":{"properties":{"code":{"type":"string","const":"INCORRECT_INTEGRATION_CONFIGURATION","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Some data is incorrect in this integration","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/IncorrectIntegrationPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"IncorrectIntegration","description":"Some data is incorrect in this integration"},"IncorrectIntegrationPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"integration_id":{"type":"string","title":"Integration Id"}},"type":"object","required":["group_id","integration_id"],"title":"IncorrectIntegrationPayload","description":"Context of the IncorrectIntegration error: the values identifying the entities involved in this specific occurrence."},"InfoAppConfigSchema":{"properties":{"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactSchema"},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"type":"object","title":"InfoAppConfigSchema"},"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"},"InstavoxClientSettingsSchema":{"properties":{"app_name":{"type":"string","title":"App Name","description":"Application name","default":"Pysae API"},"version_code":{"type":"integer","title":"Version Code","description":"Application version code","default":1},"version_name":{"type":"string","title":"Version Name","description":"Application version name","default":"5.0"},"audio_codec":{"$ref":"#/components/schemas/AudioCodec","description":"Audio codec (1=ALAW, 2=ULAW)","default":1},"device_description":{"type":"string","title":"Device Description","description":"Device description string","default":"MANUFACTURER=PYSAE;MODEL=API;SERIAL=1;OSVERSION=5.5"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id","description":"Device ID (auto-generated if null)"},"device_id_seed":{"type":"string","contentMediaType":"application/octet-stream","title":"Device Id Seed","description":"Seed for device ID generation","default":"pysae-api"}},"type":"object","title":"InstavoxClientSettingsSchema"},"InstavoxIntegrationSchema-Input":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the integration is enabled","default":true},"uri":{"type":"string","title":"Uri","description":"Instavox WebSocket server URI"},"username":{"type":"string","title":"Username","description":"Instavox login username"},"password":{"type":"string","format":"password","title":"Password","description":"Instavox login password","writeOnly":true},"operator_username":{"type":"string","title":"Operator Username","description":"Instavox operator (dispatcher) login username"},"operator_password":{"type":"string","format":"password","title":"Operator Password","description":"Instavox operator (dispatcher) login password","writeOnly":true},"client":{"$ref":"#/components/schemas/InstavoxClientSettingsSchema","description":"Virtual device configuration"}},"type":"object","required":["uri","username","password","operator_username","operator_password"],"title":"InstavoxIntegrationSchema"},"InstavoxIntegrationSchema-Output":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the integration is enabled","default":true},"uri":{"type":"string","title":"Uri","description":"Instavox WebSocket server URI"},"username":{"type":"string","title":"Username","description":"Instavox login username"},"password":{"type":"string","format":"password","title":"Password","description":"Instavox login password","writeOnly":true},"operator_username":{"type":"string","title":"Operator Username","description":"Instavox operator (dispatcher) login username"},"operator_password":{"type":"string","format":"password","title":"Operator Password","description":"Instavox operator (dispatcher) login password","writeOnly":true},"client":{"$ref":"#/components/schemas/InstavoxClientSettingsSchema","description":"Virtual device configuration"}},"type":"object","required":["uri","username","password","operator_username","operator_password"],"title":"InstavoxIntegrationSchema"},"Integration":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the group currently runs the integration.","default":true},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key","description":"Credential the integration authenticates with."},"api_url":{"type":"string","title":"Api Url","description":"Base URL the integration is reached at.","default":""}},"additionalProperties":true,"type":"object","title":"Integration","description":"Generic integration model for untyped integrations."},"IntegrationNotFound":{"properties":{"code":{"type":"string","const":"INTEGRATION_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The integration has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/IntegrationNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"IntegrationNotFound","description":"The integration has not been found"},"IntegrationNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"integration_id":{"type":"string","title":"Integration Id"}},"type":"object","required":["group_id","integration_id"],"title":"IntegrationNotFoundPayload","description":"Context of the IntegrationNotFound error: the values identifying the entities involved in this specific occurrence."},"IntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the group currently runs the integration.","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key","description":"Credential the integration authenticates with, masked."}},"additionalProperties":true,"type":"object","title":"IntegrationSchema","description":"An integration of the group, whichever third-party system it drives.\n\nFields specific to an integration are carried verbatim alongside these two,\nso an integration with no schema of its own is still exposed in full."},"IntegrationType":{"type":"string","enum":["api","driver"],"title":"IntegrationType"},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The gtfs id is not valid","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidGTFSIdPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidGTFSId","description":"The gtfs id is not valid"},"InvalidGTFSIdPayload":{"properties":{},"type":"object","title":"InvalidGTFSIdPayload","description":"Context of the InvalidGTFSId error: the values identifying the entities involved in this specific occurrence."},"InvalidGtfsArchive":{"properties":{"code":{"type":"string","const":"INVALID_GTFS_ARCHIVE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The GTFS archive is invalid or missing required files","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidGtfsArchivePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidGtfsArchive","description":"The GTFS archive is invalid or missing required files"},"InvalidGtfsArchivePayload":{"properties":{},"type":"object","title":"InvalidGtfsArchivePayload","description":"Context of the InvalidGtfsArchive error: the values identifying the entities involved in this specific occurrence."},"InvalidHastusArchive":{"properties":{"code":{"type":"string","const":"INVALID_HASTUS_ARCHIVE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The Hastus archive is invalid or missing required files","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidHastusArchivePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidHastusArchive","description":"The Hastus archive is invalid or missing required files"},"InvalidHastusArchivePayload":{"properties":{"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","title":"InvalidHastusArchivePayload","description":"Context of the InvalidHastusArchive error: the values identifying the entities involved in this specific occurrence."},"InvalidRailDeparturesWindow":{"properties":{"code":{"type":"string","const":"INVALID_RAIL_DEPARTURES_WINDOW","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"`to` must not precede `from`, and the window must not exceed 24 hours","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidRailDeparturesWindowPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidRailDeparturesWindow","description":"`to` must not precede `from`, and the window must not exceed 24 hours"},"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","description":"Context of the InvalidRailDeparturesWindow error: the values identifying the entities involved in this specific occurrence."},"InvalidRailStationNear":{"properties":{"code":{"type":"string","const":"INVALID_RAIL_STATION_NEAR","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"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","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidRailStationNearPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidRailStationNear","description":"`near` must be `<latitude>,<longitude>` in WGS 84 decimal degrees, with the latitude within [-90, 90] and the longitude within [-180, 180]"},"InvalidRailStationNearPayload":{"properties":{"near":{"type":"string","title":"Near"}},"type":"object","required":["near"],"title":"InvalidRailStationNearPayload","description":"Context of the InvalidRailStationNear error: the values identifying the entities involved in this specific occurrence."},"InvalidRequest":{"properties":{"code":{"type":"string","const":"INVALID_REQUEST","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The request has missing body or query params","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidRequestPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidRequest","description":"The request has missing body or query params"},"InvalidRequestPayload":{"properties":{"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"}},"type":"object","title":"InvalidRequestPayload","description":"Context of the InvalidRequest error: the values identifying the entities involved in this specific occurrence."},"InvalidRole":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidRolePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidRole","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"InvalidRolePayload":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Role Needed","description":"Roles that would have granted the call."}},"type":"object","required":["role_given","role_needed"],"title":"InvalidRolePayload","description":"Context of the InvalidRole error: the values identifying the entities involved in this specific occurrence."},"InvalidTeam":{"properties":{"code":{"type":"string","const":"INVALID_TEAM","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You do not have the required team","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidTeamPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidTeam","description":"You do not have the required team"},"InvalidTeamPayload":{"properties":{"missing_team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Missing Team Id"}},"type":"object","title":"InvalidTeamPayload","description":"Context of the InvalidTeam error: the values identifying the entities involved in this specific occurrence."},"InvalidToken":{"properties":{"code":{"type":"string","const":"INVALID_TOKEN","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Invalid token","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/InvalidTokenPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"InvalidToken","description":"Invalid token"},"InvalidTokenPayload":{"properties":{},"type":"object","title":"InvalidTokenPayload","description":"Context of the InvalidToken error: the values identifying the entities involved in this specific occurrence."},"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."},"JSONModel":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"items":{},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"JSONModel","description":"Any JSON value, carried as-is: the API does not constrain its shape."},"KmDistanceSource":{"type":"string","enum":["gps","shape"],"title":"KmDistanceSource","description":"Distance source for the kilometric counters (vk, commercial km).\n\n- ``GPS``: point-to-point GPS distance between successive positions —\n  the distance actually driven, detours included.\n- ``SHAPE``: ``shape_dist_traveled`` deltas along the GTFS shape\n  (map-matched progression on the planned itinerary), with a GPS\n  fallback for off-itinerary and tripless segments where the shape\n  stream is structurally absent."},"KubaIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0},"local_port":{"type":"integer","title":"Local Port","default":0},"gtfs_field":{"type":"string","title":"Gtfs Field","default":""},"version":{"type":"string","title":"Version","default":""},"society_line":{"type":"string","title":"Society Line","default":""}},"type":"object","title":"KubaIntegrationSchema"},"LimitSchema":{"properties":{"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["limit"],"title":"LimitSchema"},"LocationMetadataSchema":{"properties":{"gps_ppm":{"type":"integer","title":"Gps Ppm","default":0}},"type":"object","title":"LocationMetadataSchema"},"LocationSchema":{"properties":{"ts":{"type":"string","format":"date-time","title":"Ts","description":"Horodatage de la donnée au format ISO 8601 ou timestamp unix (Unix epoch time)"},"ts_system":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ts System","description":"Horodatage de la donnée au format ISO 8601 ou timestamp unix (Unix epoch time) (système, à définir uniquement si positions simulées"},"latlng":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2,"title":"Latlng","description":"Coordonnées au format Latitude/Longitude"},"latlng_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latlng Accuracy","description":"Précision de la position"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","description":"Vitesse en m/s"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing","description":"Direction en degrés (Orientation, de 0° à 360°)"}},"type":"object","required":["ts","latlng"],"title":"LocationSchema"},"LocationUpdateSchema":{"properties":{"ts":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]}],"title":"Ts","description":"Horodatage de la donnée au format ISO 8601 ou timestamp unix (Unix epoch time)"},"ts_system":{"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"}],"title":"Ts System","description":"Horodatage de la donnée au format ISO 8601 ou timestamp unix (Unix epoch time) (système, à définir uniquement si positions simulées"},"latlng":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2,"title":"Latlng","description":"Coordonnées au format Latitude/Longitude"},"latlng_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latlng Accuracy","description":"Précision de la position"},"speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","description":"Vitesse en m/s"},"bearing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bearing","description":"Direction en degrés (Orientation, de 0° à 360°)"},"meters_since_previous_location":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Meters Since Previous Location","description":"Number of meter the device had done since its previous location"}},"type":"object","required":["ts","latlng"],"title":"LocationUpdateSchema","description":"A position the device reports, with the distance it covered to get there."},"LockedFeature":{"properties":{"code":{"type":"string","const":"LOCKED_FEATURE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Your organization did not unlocked this feature","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/LockedFeaturePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"LockedFeature","description":"Your organization did not unlocked this feature"},"LockedFeaturePayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the call was made on."},"feature_needed":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","uniqueItems":true,"title":"Feature Needed","description":"Features the endpoint requires."},"feature_missing":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","uniqueItems":true,"title":"Feature Missing","description":"Required features the group has not unlocked."},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details","description":"Additional context on what the missing feature blocks."}},"type":"object","required":["group_id","feature_needed","feature_missing"],"title":"LockedFeaturePayload","description":"Context of the LockedFeature error: the values identifying the entities involved in this specific occurrence."},"LoginGroupSchema":{"properties":{"code":{"type":"string","title":"Code","description":"Access code of the group, as generated from the Pysae applications. It expires."},"device_id":{"type":"string","title":"Device Id","description":"Identifier of the device joining the group. The device is created when the group does not know it yet."}},"type":"object","required":["code","device_id"],"title":"LoginGroupSchema","description":"Credentials a device presents to join a group: its access code and its id."},"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"},"MatawanIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0},"local_port":{"type":"integer","title":"Local Port","default":0}},"type":"object","title":"MatawanIntegrationSchema"},"McfIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"customer_id":{"type":"string","title":"Customer Id","default":""},"mcf_group_id":{"type":"string","title":"Mcf Group Id","default":""},"username":{"type":"string","title":"Username","default":""},"password":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Password"}},"type":"object","title":"McfIntegrationSchema"},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The message has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/MessageNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"MessageNotFound","description":"The message has not been found"},"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","description":"Context of the MessageNotFound error: the values identifying the entities involved in this specific occurrence."},"MessageNotificationsConfigSchema":{"properties":{"monthly_limit":{"type":"integer","maximum":10000.0,"exclusiveMinimum":0.0,"title":"Monthly Limit","description":"Notifications the group may send over a calendar month."},"nb_sender":{"type":"integer","maximum":100.0,"exclusiveMinimum":0.0,"title":"Nb Sender","description":"Sender numbers the notifications may go out from."}},"type":"object","required":["monthly_limit","nb_sender"],"title":"MessageNotificationsConfigSchema","description":"How many traveller notifications the group may send, and from how many senders."},"MessageNotificationsFeatureConfig":{"properties":{"monthly_limit":{"type":"integer","title":"Monthly Limit","description":"Notifications the group may send over a calendar month.","default":250},"nb_sender":{"type":"integer","title":"Nb Sender","description":"Sender numbers the notifications may go out from.","default":1}},"type":"object","title":"MessageNotificationsFeatureConfig","description":"How many traveller notifications the group may send, and from how many senders."},"MessageNotificationsIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"phone_numbers":{"items":{"type":"string"},"type":"array","title":"Phone Numbers"},"urgency_enabled":{"type":"boolean","title":"Urgency Enabled","default":false},"long_duties_enabled":{"type":"boolean","title":"Long Duties Enabled","default":false},"long_duties_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Long Duties Threshold"}},"type":"object","title":"MessageNotificationsIntegrationSchema"},"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"},"MinDriverVersionSchema":{"properties":{"min_driver_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Driver Version","description":"Minimum driver app version required for this group. Devices with a version below this will be blocked (HTTP 426)."}},"type":"object","title":"MinDriverVersionSchema"},"MissingRecaptcha":{"properties":{"code":{"type":"string","const":"MISSING_RECAPTCHA","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Missing recaptcha response","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/MissingRecaptchaPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"MissingRecaptcha","description":"Missing recaptcha response"},"MissingRecaptchaPayload":{"properties":{},"type":"object","title":"MissingRecaptchaPayload","description":"Context of the MissingRecaptcha error: the values identifying the entities involved in this specific occurrence."},"MongoSet_Feature_":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","uniqueItems":true,"description":"Set of distinct values, carried as an array of unique items."},"NamespaceStatsSchema":{"properties":{"namespace":{"type":"string","title":"Namespace"},"key_count":{"type":"integer","title":"Key Count"},"avg_ttl_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Ttl Seconds"},"estimated_memory_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Memory Bytes"}},"type":"object","required":["namespace","key_count","avg_ttl_seconds","estimated_memory_bytes"],"title":"NamespaceStatsSchema"},"NoActiveDeviceSchema":{"properties":{"ts":{"type":"null","title":"Ts","description":"Always null: no peak was reached."},"max_allowed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Allowed","description":"Vehicles the group's subscription covers, null when uncapped."},"concurrent_duties":{"type":"integer","const":0,"title":"Concurrent Duties","description":"Always zero: no duty ran.","default":0}},"type":"object","title":"NoActiveDeviceSchema","description":"Stands in for the daily peak when the group ran no duty at all."},"NoPublishedGtfs":{"properties":{"code":{"type":"string","const":"NO_PUBLISHED_GTFS","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The group does not currently have a gtfs published","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/NoPublishedGtfsPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"NoPublishedGtfs","description":"The group does not currently have a gtfs published"},"NoPublishedGtfsPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"NoPublishedGtfsPayload","description":"Context of the NoPublishedGtfs error: the values identifying the entities involved in this specific occurrence."},"NoRole":{"properties":{"code":{"type":"string","const":"NO_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You do not have any role in the requested group","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/NoRolePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"NoRole","description":"You do not have any role in the requested group"},"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","description":"Context of the NoRole error: the values identifying the entities involved in this specific occurrence."},"NoUser":{"properties":{"code":{"type":"string","const":"NO_USER","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You are not authenticate with an user","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/NoUserPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"NoUser","description":"You are not authenticate with an user"},"NoUserPayload":{"properties":{},"type":"object","title":"NoUserPayload","description":"Context of the NoUser error: the values identifying the entities involved in this specific occurrence."},"NocratesAddress":{"properties":{"address_id":{"type":"integer","title":"Address Id"},"street_number":{"type":"integer","title":"Street Number"},"street_suffix":{"type":"string","title":"Street Suffix"},"street_name":{"type":"string","title":"Street Name"},"zip_code":{"type":"string","title":"Zip Code"},"town":{"type":"string","title":"Town"},"location_label":{"type":"string","title":"Location Label"},"longitude":{"type":"number","title":"Longitude"},"latitude":{"type":"number","title":"Latitude"}},"type":"object","required":["address_id","street_number","street_suffix","street_name","zip_code","town","location_label","longitude","latitude"],"title":"NocratesAddress"},"NocratesIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"client_id":{"type":"string","title":"Client Id","default":""},"client_secret":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"token_url":{"type":"string","title":"Token Url","default":""},"poll_days":{"type":"integer","title":"Poll Days","default":1}},"type":"object","title":"NocratesIntegrationSchema"},"NocratesPassenger":{"properties":{"person_id":{"type":"integer","title":"Person Id"},"last_name":{"type":"string","title":"Last Name"},"first_name":{"type":"string","title":"First Name"}},"type":"object","required":["person_id","last_name","first_name"],"title":"NocratesPassenger"},"NocratesRideSchema":{"properties":{"ride_id":{"type":"integer","title":"Ride Id"},"booking_id":{"type":"integer","title":"Booking Id"},"date":{"type":"string","format":"date-time","title":"Date"},"contract":{"type":"string","title":"Contract"},"pickup_time":{"$ref":"#/components/schemas/NocratesTimeWindow"},"drop_off_time":{"$ref":"#/components/schemas/NocratesTimeWindow"},"pickup_address":{"$ref":"#/components/schemas/NocratesAddress"},"drop_off_address":{"$ref":"#/components/schemas/NocratesAddress"},"passenger":{"$ref":"#/components/schemas/NocratesPassenger"},"deep_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deep Link"}},"type":"object","required":["ride_id","booking_id","date","contract","pickup_time","drop_off_time","pickup_address","drop_off_address","passenger"],"title":"NocratesRideSchema"},"NocratesTimeWindow":{"properties":{"window_start":{"type":"string","title":"Window Start"},"window_end":{"type":"string","title":"Window End"},"duration":{"type":"string","title":"Duration"}},"type":"object","required":["window_start","window_end","duration"],"title":"NocratesTimeWindow"},"OnDemandMeasuresSchema":{"properties":{"km":{"type":"number","title":"Km","description":"Kilometres driven in on-demand service"},"boarding":{"type":"integer","title":"Boarding","description":"Passengers boarded"},"alighting":{"type":"integer","title":"Alighting","description":"Passengers alighted"},"total_boarding":{"type":"integer","title":"Total Boarding","description":"Passengers boarded, including the custom categories"}},"type":"object","required":["km","boarding","alighting","total_boarding"],"title":"OnDemandMeasuresSchema","description":"The two measures, over a day or over the whole period."},"OnDemandRouteArchived":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_ARCHIVED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"An archived on-demand route can only be restored. It cannot be edited nor duplicated.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteArchivedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteArchived","description":"An archived on-demand route can only be restored. It cannot be edited nor duplicated."},"OnDemandRouteArchivedPayload":{"properties":{"route_id":{"type":"string","title":"Route Id"}},"type":"object","required":["route_id"],"title":"OnDemandRouteArchivedPayload","description":"Context of the OnDemandRouteArchived error: the values identifying the entities involved in this specific occurrence."},"OnDemandRouteDuplicateStop":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_DUPLICATE_STOP","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The same stop_id was submitted twice. Two stops sharing an identity would make the passages and the counts recorded against them indistinguishable, with no way to tell them apart afterwards. Omit the stop_id of the stop being added.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteDuplicateStopPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteDuplicateStop","description":"The same stop_id was submitted twice. Two stops sharing an identity would make the passages and the counts recorded against them indistinguishable, with no way to tell them apart afterwards. Omit the stop_id of the stop being added."},"OnDemandRouteDuplicateStopPayload":{"properties":{"route_id":{"type":"string","title":"Route Id"},"stop_id":{"type":"string","title":"Stop Id"}},"type":"object","required":["route_id","stop_id"],"title":"OnDemandRouteDuplicateStopPayload","description":"Context of the OnDemandRouteDuplicateStop error: the values identifying the entities involved in this specific occurrence."},"OnDemandRouteInvalidPeriod":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_INVALID_PERIOD","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The validity period ends before it starts","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteInvalidPeriodPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteInvalidPeriod","description":"The validity period ends before it starts"},"OnDemandRouteInvalidPeriodPayload":{"properties":{"valid_from":{"type":"string","title":"Valid From"},"valid_until":{"type":"string","title":"Valid Until"}},"type":"object","required":["valid_from","valid_until"],"title":"OnDemandRouteInvalidPeriodPayload","description":"Context of the OnDemandRouteInvalidPeriod error: the values identifying the entities involved in this specific occurrence."},"OnDemandRouteNotArchived":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_NOT_ARCHIVED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"This on-demand route is not archived, nothing to restore","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteNotArchivedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteNotArchived","description":"This on-demand route is not archived, nothing to restore"},"OnDemandRouteNotArchivedPayload":{"properties":{"route_id":{"type":"string","title":"Route Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["route_id","status"],"title":"OnDemandRouteNotArchivedPayload","description":"Context of the OnDemandRouteNotArchived error: the values identifying the entities involved in this specific occurrence."},"OnDemandRouteNotFound":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The group has no on-demand route with this id","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteNotFound","description":"The group has no on-demand route with this id"},"OnDemandRouteNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"route_id":{"type":"string","title":"Route Id"}},"type":"object","required":["group_id","route_id"],"title":"OnDemandRouteNotFoundPayload","description":"Context of the OnDemandRouteNotFound error: the values identifying the entities involved in this specific occurrence."},"OnDemandRoutePayloadSchema":{"properties":{"route_short_name":{"type":"string","maxLength":8,"title":"Route Short Name"},"route_long_name":{"type":"string","title":"Route Long Name"},"route_color":{"type":"string","title":"Route Color","examples":["01af9c","Ab8C62"]},"route_text_color":{"type":"string","title":"Route Text Color","default":"000000","examples":["01af9c","Ab8C62"]},"status":{"$ref":"#/components/schemas/OnDemandRouteStatusSchema"},"valid_from":{"type":"string","format":"date","title":"Valid From"},"valid_until":{"type":"string","format":"date","title":"Valid Until"},"stops":{"items":{"$ref":"#/components/schemas/OnDemandRouteStopPayloadSchema"},"type":"array","minItems":1,"title":"Stops"}},"type":"object","required":["route_short_name","route_long_name","route_color","status","valid_from","valid_until","stops"],"title":"OnDemandRoutePayloadSchema","description":"Body of both the creation and the full update.\n\nRoute fields are spelled as in the GTFS — ``route_short_name`` for the\nbadge, ``route_long_name`` for the full name — so a client can render an\non-demand route with the components it already uses for a regular line.\n\nColours follow the GTFS form too: six hex digits, **no leading ``#``**.\nThat is what every other colour on this API carries\n(``pysae.common.types.color``), and mixing the two forms is exactly what\nwould force a shared component back into a TAD special case.\n\nDates travel as ISO ``YYYY-MM-DD``, the usual wire form; the GTFS\n``YYYYMMDD`` spelling is a storage detail and never surfaces here."},"OnDemandRouteSchema":{"properties":{"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"},"route_color":{"type":"string","title":"Route Color"},"route_text_color":{"type":"string","title":"Route Text Color"},"status":{"$ref":"#/components/schemas/OnDemandRouteStatusSchema"},"valid_from":{"type":"string","format":"date","title":"Valid From"},"valid_until":{"type":"string","format":"date","title":"Valid Until"},"stops":{"items":{"$ref":"#/components/schemas/OnDemandRouteStopSchema"},"type":"array","title":"Stops"},"stop_count":{"type":"integer","title":"Stop Count","description":"Number of stops, so a listing does not have to count them"}},"type":"object","required":["route_id","route_short_name","route_long_name","route_color","route_text_color","status","valid_from","valid_until","stops","stop_count"],"title":"OnDemandRouteSchema"},"OnDemandRouteStatusSchema":{"type":"string","enum":["active","inactive","archived"],"title":"OnDemandRouteStatusSchema","description":"Wire form of the status.\n\nDeclared here rather than reused from the domain: the API contract is free\nto evolve apart from the domain, which is the whole point of the schema\nlayer. The values must stay aligned — a repository test pins the same\nproperty between the domain and the DAL."},"OnDemandRouteStopPayloadSchema":{"properties":{"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id","description":"Omit for a new stop. Send the existing value back to keep a stop, including when renaming or moving it."},"stop_name":{"type":"string","title":"Stop Name"},"stop_lat":{"type":"number","title":"Stop Lat"},"stop_lon":{"type":"number","title":"Stop Lon"}},"type":"object","required":["stop_name","stop_lat","stop_lon"],"title":"OnDemandRouteStopPayloadSchema","description":"A stop as submitted by a client.\n\nOmit ``stop_id`` to add a stop. Send it back untouched to keep an existing\none: it is what the recorded passages and passenger counts point at, so a\nstop whose id changes loses its history. An id the route does not hold is\nrefused."},"OnDemandRouteStopSchema":{"properties":{"stop_id":{"type":"string","title":"Stop Id","description":"Stable identifier of the stop within its route. Owned by the route: it never designates a stop of the GTFS feed."},"stop_name":{"type":"string","title":"Stop Name"},"stop_lat":{"type":"number","title":"Stop Lat"},"stop_lon":{"type":"number","title":"Stop Lon"}},"type":"object","required":["stop_id","stop_name","stop_lat","stop_lon"],"title":"OnDemandRouteStopSchema","description":"A stop of a persisted route.\n\nFields are spelled as in the GTFS so a stop renders through the same\ncomponents whether it belongs to a regular line or to an on-demand one."},"OnDemandRouteUnknownStop":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_UNKNOWN_STOP","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"A submitted stop_id does not belong to this route. Omit it to add a stop; a stop_id may never be chosen by the client, or the passages and counts recorded against another stop would be captured. It is the stop id owned by the route, never a stop_id of the GTFS feed.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteUnknownStopPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteUnknownStop","description":"A submitted stop_id does not belong to this route. Omit it to add a stop; a stop_id may never be chosen by the client, or the passages and counts recorded against another stop would be captured. It is the stop id owned by the route, never a stop_id of the GTFS feed."},"OnDemandRouteUnknownStopPayload":{"properties":{"route_id":{"type":"string","title":"Route Id"},"stop_id":{"type":"string","title":"Stop Id"}},"type":"object","required":["route_id","stop_id"],"title":"OnDemandRouteUnknownStopPayload","description":"Context of the OnDemandRouteUnknownStop error: the values identifying the entities involved in this specific occurrence."},"OnDemandRouteWithoutStop":{"properties":{"code":{"type":"string","const":"ON_DEMAND_ROUTE_WITHOUT_STOP","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"An on-demand route needs at least one stop","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/OnDemandRouteWithoutStopPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"OnDemandRouteWithoutStop","description":"An on-demand route needs at least one stop"},"OnDemandRouteWithoutStopPayload":{"properties":{},"type":"object","title":"OnDemandRouteWithoutStopPayload","description":"Context of the OnDemandRouteWithoutStop error: the values identifying the entities involved in this specific occurrence."},"OnDemandServiceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Identifier of the service run"},"route_id":{"type":"string","title":"Route Id","description":"Identifier of the on-demand route served"},"route_short_name":{"type":"string","title":"Route Short Name","description":"Short name of the route, for a badge"},"route_long_name":{"type":"string","title":"Route Long Name","description":"Full name of the route"},"route_color":{"type":"string","title":"Route Color","description":"Background colour of the route badge, six hex digits, no `#`"},"route_text_color":{"type":"string","title":"Route Text Color","description":"Text colour of the route badge, six hex digits, no `#`"},"device_id":{"type":"string","title":"Device Id","description":"Identifier of the device that ran the service"},"driver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Id","description":"Identifier of the driver on duty at the start"},"vehicle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Id","description":"Identifier of the vehicle assigned at the start"},"started_at":{"type":"string","format":"date-time","title":"Started At","description":"When the driver started the service"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At","description":"When the service ended; null while it runs"},"boarding":{"type":"integer","title":"Boarding","description":"Passengers boarded during the run"},"alighting":{"type":"integer","title":"Alighting","description":"Passengers alighted during the run"},"total_boarding":{"type":"integer","title":"Total Boarding","description":"Passengers boarded, including the custom categories"},"stop_passages":{"type":"integer","title":"Stop Passages","description":"Stop arrivals recorded during the run"},"km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Km","description":"Kilometres driven during the run. Always null for now: the kilometres are attributed per day and per route, not per run."}},"type":"object","required":["id","route_id","route_short_name","route_long_name","route_color","route_text_color","device_id","started_at","boarding","alighting","total_boarding","stop_passages"],"title":"OnDemandServiceSchema","description":"One on-demand service run, from its start to its end.\n\nThe unit is the run — a device on a route, from the start to the end — and\nnot the round trip: the module has no course, no rotation and no direction\nof travel. A device chaining two runs on the same route the same day comes\nback as two entries, never merged.\n\n``ended_at`` is null while the service runs. It also stays null on a service\nthe driver never ended, which is the regular-service behaviour: a duty\nwithout a checkout stays open too.\n\nBoth route names and both route colours travel with the run so a client can\nrender its badge without re-crossing the list of routes — which would not\nname an archived one it no longer holds.\n\nDriver and vehicle come out as identifiers: the screen resolves them through\nits own stores, as the duty list already does."},"OnDemandStatsByDaySchema":{"properties":{"km":{"type":"number","title":"Km","description":"Kilometres driven in on-demand service"},"boarding":{"type":"integer","title":"Boarding","description":"Passengers boarded"},"alighting":{"type":"integer","title":"Alighting","description":"Passengers alighted"},"total_boarding":{"type":"integer","title":"Total Boarding","description":"Passengers boarded, including the custom categories"},"date":{"type":"string","format":"date","title":"Date"}},"type":"object","required":["km","boarding","alighting","total_boarding","date"],"title":"OnDemandStatsByDaySchema"},"OnDemandStatsByRouteSchema":{"properties":{"km":{"type":"number","title":"Km","description":"Kilometres driven in on-demand service"},"boarding":{"type":"integer","title":"Boarding","description":"Passengers boarded"},"alighting":{"type":"integer","title":"Alighting","description":"Passengers alighted"},"total_boarding":{"type":"integer","title":"Total Boarding","description":"Passengers boarded, including the custom categories"},"route_id":{"type":"string","title":"Route Id","description":"Identifier of the on-demand route"},"route_short_name":{"type":"string","title":"Route Short Name","description":"Short name of the route, for a badge"},"route_long_name":{"type":"string","title":"Route Long Name","description":"Full name of the route"}},"type":"object","required":["km","boarding","alighting","total_boarding","route_id","route_short_name","route_long_name"],"title":"OnDemandStatsByRouteSchema","description":"The measures of one route, aggregated over the whole period.\n\nBoth names travel with the figures so a client can label an axis without\nre-crossing the list of routes — which would not name an archived one it no\nlonger holds."},"OnDemandStatsSchema":{"properties":{"total":{"$ref":"#/components/schemas/OnDemandMeasuresSchema"},"days":{"items":{"$ref":"#/components/schemas/OnDemandStatsByDaySchema"},"type":"array","title":"Days"},"routes":{"items":{"$ref":"#/components/schemas/OnDemandStatsByRouteSchema"},"type":"array","title":"Routes"}},"type":"object","required":["total","days","routes"],"title":"OnDemandStatsSchema","description":"Statistics of a period: in total, day by day, and route by route.\n\n``days`` and ``routes`` hold only the dates and the routes that carry data,\nso empty lists mean the period has none — an empty state to display, not an\nerror. Neither is ever padded with zeroed entries.\n\nThe sum of ``routes`` equals ``total``, exactly as the sum of ``days``\ndoes: the two series are folds of the same aggregation."},"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"},"ParagonIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"hosts":{"items":{"type":"string"},"type":"array","title":"Hosts"}},"type":"object","title":"ParagonIntegrationSchema"},"PartialImportIntoPopulatedDraft":{"properties":{"code":{"type":"string","const":"HASTUS_PARTIAL_IMPORT_INTO_POPULATED_DRAFT","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"A partial Hastus import (route_ids) cannot target a GTFS draft that already contains routes outside the imported scope; import into a fresh draft or run a full import","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/PartialImportIntoPopulatedDraftPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"PartialImportIntoPopulatedDraft","description":"A partial Hastus import (route_ids) cannot target a GTFS draft that already contains routes outside the imported scope; import into a fresh draft or run a full import"},"PartialImportIntoPopulatedDraftPayload":{"properties":{},"type":"object","title":"PartialImportIntoPopulatedDraftPayload","description":"Context of the PartialImportIntoPopulatedDraft error: the values identifying the entities involved in this specific occurrence."},"PassengerCountContentSchema":{"properties":{"boarding":{"type":"integer","title":"Boarding","default":0},"alighting":{"type":"integer","title":"Alighting","default":0},"total_boarding":{"type":"integer","title":"Total Boarding","default":0},"custom":{"additionalProperties":{"type":"integer"},"type":"object","title":"Custom","default":{}}},"type":"object","title":"PassengerCountContentSchema"},"PassengerCountCreateSchema":{"properties":{"trip":{"$ref":"#/components/schemas/GtfsDatedTrip"},"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"passenger_count":{"$ref":"#/components/schemas/PassengerCountContentSchema"},"vehicle_load":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Load"}},"type":"object","required":["trip","stop_sequence","passenger_count"],"title":"PassengerCountCreateSchema"},"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"},"PasswordChangeAuthSchema":{"properties":{"new":{"type":"string","title":"New","description":"New password of the account."},"old":{"type":"string","title":"Old","description":"Current password of the account."}},"type":"object","required":["new","old"],"title":"PasswordChangeAuthSchema","description":"Password change authenticated by the current password of the account."},"PasswordChangeByTokenSchema":{"properties":{"new":{"type":"string","title":"New","description":"New password of the account."},"token":{"type":"string","title":"Token","description":"Reset token issued for the account. It is single-use and expires."}},"type":"object","required":["new","token"],"title":"PasswordChangeByTokenSchema","description":"Password change authenticated by a reset token, for a user signed out."},"PasswordResetUnavailable":{"properties":{"code":{"type":"string","const":"PASSWORD_RESET_UNAVAILABLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"This account holds no local password and no pending invitation, so no reset link can be issued for it","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/PasswordResetUnavailablePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"PasswordResetUnavailable","description":"This account holds no local password and no pending invitation, so no reset link can be issued for it"},"PasswordResetUnavailablePayload":{"properties":{"user_id":{"type":"string","title":"User Id","description":"Identifier of the account no reset link was issued for."}},"type":"object","required":["user_id"],"title":"PasswordResetUnavailablePayload","description":"Context of the PasswordResetUnavailable error: the values identifying the entities involved in this specific occurrence."},"PlanningImportSchema":{"properties":{"id":{"type":"string","title":"Id"},"ts":{"type":"string","title":"Ts","examples":["2020-11-22T11:12:13"]},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"},"format":{"$ref":"#/components/schemas/ImportFormat"},"status":{"$ref":"#/components/schemas/PlanningImportStatus"},"date_range_start":{"anyOf":[{"type":"string","examples":["20201122"]},{"type":"null"}],"title":"Date Range Start"},"date_range_end":{"anyOf":[{"type":"string","examples":["20201122"]},{"type":"null"}],"title":"Date Range End"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","ts","format","status"],"title":"PlanningImportSchema"},"PlanningImportStatus":{"type":"string","enum":["success","error"],"title":"PlanningImportStatus"},"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"},"PublicationFailureSchema":{"properties":{"at":{"type":"integer","title":"At","examples":[1606003200]},"flow_run_id":{"type":"string","format":"uuid","title":"Flow Run Id"}},"type":"object","required":["at","flow_run_id"],"title":"PublicationFailureSchema"},"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"},"QipIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"hosts":{"items":{"type":"string"},"type":"array","title":"Hosts"},"protocol":{"type":"string","title":"Protocol","default":""},"door_detection":{"type":"boolean","title":"Door Detection","default":false}},"type":"object","title":"QipIntegrationSchema"},"QrCodeSchema":{"properties":{"content":{"type":"string","minLength":1,"contentMediaType":"application/octet-stream","title":"Content"},"filename":{"type":"string","minLength":1,"title":"Filename"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["content","filename"],"title":"QrCodeSchema"},"QuotaDevicesReached":{"properties":{"code":{"type":"string","const":"QUOTA_DEVICES_REACHED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"There are too many devices registered","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/QuotaDevicesReachedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"QuotaDevicesReached","description":"There are too many devices registered"},"QuotaDevicesReachedPayload":{"properties":{},"type":"object","title":"QuotaDevicesReachedPayload","description":"Context of the QuotaDevicesReached error: the values identifying the entities involved in this specific occurrence."},"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"},"RailDataIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"dataset_url":{"type":"string","title":"Dataset Url","description":"GTFS source of the overlay: a transport.data.gouv.fr dataset (page or API URL) or a direct GTFS zip URL — https only","default":""},"gtfs_rt_trip_updates_url":{"type":"string","title":"Gtfs Rt Trip Updates Url","description":"Optional GTFS-RT TripUpdates feed URL of the source (https only)","default":""},"gtfs_rt_service_alerts_url":{"type":"string","title":"Gtfs Rt Service Alerts Url","description":"Optional GTFS-RT ServiceAlerts feed URL of the source (https only)","default":""}},"type":"object","title":"RailDataIntegrationSchema"},"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."},"RailStationLinkNotFound":{"properties":{"code":{"type":"string","const":"RAIL_STATION_LINK_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"No link attaches this stop to this rail station","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/RailStationLinkNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RailStationLinkNotFound","description":"No link attaches this stop to this rail station"},"RailStationLinkNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"stop_id":{"type":"string","title":"Stop Id"},"uic":{"type":"string","title":"Uic"}},"type":"object","required":["group_id","stop_id","uic"],"title":"RailStationLinkNotFoundPayload","description":"Context of the RailStationLinkNotFound error: the values identifying the entities involved in this specific occurrence."},"RailStationLinkPutSchema":{"properties":{"stop_id":{"type":"string","title":"Stop Id","description":"Identifier of the stop in your network's GTFS (`stops.txt`). Not validated against the currently published GTFS: a link whose stop is unknown is accepted and flagged as orphan when listed."},"uic":{"type":"string","title":"Uic","description":"UIC code of the rail station to attach the stop to, e.g. `87597005`. Must belong to the rail-station referential."},"stop_name":{"type":"string","title":"Stop Name","description":"Display name of the stop, snapshotted on the link for UI purposes. Refreshed on every re-submission of the same link."}},"type":"object","required":["stop_id","uic","stop_name"],"title":"RailStationLinkPutSchema"},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"No rail station carries this UIC code","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/RailStationNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RailStationNotFound","description":"No rail station carries this UIC code"},"RailStationNotFoundPayload":{"properties":{"uic":{"type":"string","title":"Uic"}},"type":"object","required":["uic"],"title":"RailStationNotFoundPayload","description":"Context of the RailStationNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"RatingCreateSchema":{"properties":{"driver_version":{"type":"string","title":"Driver Version","description":"Version of the app the rating is about."},"rating":{"type":"integer","title":"Rating","description":"Score the driver gave, on the scale the app presents: the API stores it without bounding it."},"comment":{"type":"string","title":"Comment","description":"What the driver wrote along with it."},"driver_id":{"type":"string","title":"Driver Id","description":"Driver who rated the app."},"ts":{"type":"string","format":"date-time","title":"Ts","description":"Moment the rating was given."}},"type":"object","required":["driver_version","rating","comment","driver_id"],"title":"RatingCreateSchema","description":"Rating a driver gives the Pysae Driver app, from the app itself."},"RatingSchema":{"properties":{"driver_version":{"type":"string","title":"Driver Version","description":"Version of the app the rating is about."},"rating":{"type":"integer","title":"Rating","description":"Score the driver gave, on the scale the app presents: the API stores it without bounding it."},"comment":{"type":"string","title":"Comment","description":"What the driver wrote along with it."},"driver_id":{"type":"string","title":"Driver Id","description":"Driver who rated the app."},"ts":{"type":"string","format":"date-time","title":"Ts","description":"Moment the rating was given."},"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."},"ReportsConfigSchema-Input":{"properties":{"categories":{"$ref":"#/components/schemas/CategoriesSchema"}},"type":"object","required":["categories"],"title":"ReportsConfigSchema"},"ReportsConfigSchema-Output":{"properties":{"categories":{"$ref":"#/components/schemas/CategoriesSchema"}},"type":"object","required":["categories"],"title":"ReportsConfigSchema"},"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."},"RoleNotFound":{"properties":{"code":{"type":"string","const":"ROLE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/RoleNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleNotFound","description":"The role has not been found"},"RoleNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the role was looked up on."},"user_id":{"type":"string","title":"User Id","description":"Identifier of the user holding no role on the group."}},"type":"object","required":["group_id","user_id"],"title":"RoleNotFoundPayload","description":"Context of the RoleNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"RoleUpdateSchema":{"properties":{"role":{"$ref":"#/components/schemas/RoleType","description":"Access level granted on the group."},"teams":{"items":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"array","title":"Teams","description":"Teams the role is restricted to: the user then only sees the drivers and vehicles attached to them. Empty grants the whole group.","default":[]}},"type":"object","required":["role"],"title":"RoleUpdateSchema","description":"New access level of a user on the group. It replaces the current one."},"RootConfigSchema":{"properties":{"name":{"type":"string","title":"Name","default":""},"driver_trip_format":{"type":"string","title":"Driver Trip Format","default":"%dt-%th"},"driver_ontime_interval":{"items":{"type":"integer"},"type":"array","title":"Driver Ontime Interval","default":[0,300]},"delay_device_online":{"type":"integer","title":"Delay Device Online","default":120},"delay_device_offline_visible":{"type":"integer","title":"Delay Device Offline Visible","default":300},"delay_device_online_router":{"type":"integer","title":"Delay Device Online Router","default":120},"delay_device_offline_visible_router":{"type":"integer","title":"Delay Device Offline Visible Router","default":300},"delay_device_online_telematic":{"type":"integer","title":"Delay Device Online Telematic","default":120},"delay_device_offline_visible_telematic":{"type":"integer","title":"Delay Device Offline Visible Telematic","default":300},"notifications":{"type":"boolean","title":"Notifications","default":true},"retention_period":{"type":"integer","title":"Retention Period","default":36},"keep_old_shapes":{"type":"boolean","title":"Keep Old Shapes","default":false}},"type":"object","title":"RootConfigSchema"},"RouteGTFSSchema-Input":{"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":"integer","title":"Route Type"},"route_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Url"}},"type":"object","required":["route_id","route_type"],"title":"RouteGTFSSchema"},"RouteGTFSSchema-Output":{"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"},"RouterConfig":{"properties":{"login":{"type":"string","title":"Login","description":"Login of the on-board router."},"password":{"type":"string","title":"Password","description":"Password of the on-board router."}},"type":"object","required":["login","password"],"title":"RouterConfig","description":"Credentials of the on-board router. Superseded by the integrations."},"RouterConfigSchema":{"properties":{"login":{"type":"string","title":"Login"},"password":{"type":"string","title":"Password"}},"type":"object","required":["login","password"],"title":"RouterConfigSchema"},"RoutesConfigSchema":{"properties":{"private_routes":{"items":{"type":"string"},"type":"array","title":"Private Routes","default":[]},"deactivated_routes":{"items":{"type":"string"},"type":"array","title":"Deactivated Routes","default":[]},"frequency_routes":{"items":{"type":"string"},"type":"array","title":"Frequency Routes","default":[]}},"type":"object","title":"RoutesConfigSchema"},"RumConfigurationSchema":{"properties":{"sessionSampleRate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sessionsamplerate"},"sessionReplaySampleRate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sessionreplaysamplerate"}},"type":"object","title":"RumConfigurationSchema"},"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"},"SeipraIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0}},"type":"object","title":"SeipraIntegrationSchema"},"SelectGroupSchema":{"properties":{"_id":{"type":"string","title":"Id","description":"Identifier of the group."},"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group, same as `_id`."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications theme the group with."},"name":{"type":"string","title":"Name","description":"Name of the network the group operates."}},"type":"object","required":["_id","group_id","name"],"title":"SelectGroupSchema","description":"Just enough of a group to offer it in a group picker."},"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"},"SessionCountSchemaV4":{"properties":{"date":{"type":"string","title":"Date","description":"Day the sessions were counted on, as `YYYYMMDD` in the group's timezone."},"count":{"type":"integer","exclusiveMinimum":0.0,"title":"Count","description":"Number of sessions opened that day."},"app":{"$ref":"#/components/schemas/App","description":"Public application the sessions were on."}},"type":"object","required":["date","count","app"],"title":"SessionCountSchemaV4","description":"Sessions opened on one public application over one day."},"Severity":{"type":"string","enum":["Fatal","Error","Warning","Information"],"title":"Severity","description":"Represents the severity of an Issue."},"SftpIntegrationNotConfiguredException":{"properties":{"code":{"type":"string","const":"SFTP_INTEGRATION_NOT_CONFIGURED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The group does not have a valid SFTP integration configured.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/SftpIntegrationNotConfiguredExceptionPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"SftpIntegrationNotConfiguredException","description":"The group does not have a valid SFTP integration configured."},"SftpIntegrationNotConfiguredExceptionPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"SftpIntegrationNotConfiguredExceptionPayload","description":"Context of the SftpIntegrationNotConfiguredException error: the values identifying the entities involved in this specific occurrence."},"SftpIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"host":{"type":"string","title":"Host","default":""},"port":{"type":"integer","title":"Port","default":22},"username":{"type":"string","title":"Username","default":""},"password":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Password"},"dest_dir":{"type":"string","title":"Dest Dir","default":""}},"type":"object","title":"SftpIntegrationSchema"},"SftpSendFailedException":{"properties":{"code":{"type":"string","const":"SFTP_SEND_FAILED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The SFTP upload to the remote host failed.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/SftpSendFailedExceptionPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"SftpSendFailedException","description":"The SFTP upload to the remote host failed."},"SftpSendFailedExceptionPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["group_id","reason"],"title":"SftpSendFailedExceptionPayload","description":"Context of the SftpSendFailedException error: the values identifying the entities involved in this specific occurrence."},"ShapeDistTraveledSchema":{"properties":{"nb_trips_updated":{"type":"integer","title":"Nb Trips Updated"},"nb_stop_times_updated":{"type":"integer","title":"Nb Stop Times Updated"}},"type":"object","required":["nb_trips_updated","nb_stop_times_updated"],"title":"ShapeDistTraveledSchema"},"ShapeGTFSCreateSchema":{"properties":{"coordinates":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Coordinates"},"shape_id":{"type":"string","title":"Shape Id"}},"type":"object","required":["coordinates","shape_id"],"title":"ShapeGTFSCreateSchema"},"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"},"ShapeGTFSUpsertSchema":{"properties":{"coordinates":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Coordinates"}},"type":"object","required":["coordinates"],"title":"ShapeGTFSUpsertSchema"},"Silv1IntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0}},"type":"object","title":"Silv1IntegrationSchema"},"SimulationCreateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id"},"permanent":{"type":"boolean","title":"Permanent","default":false},"options":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Options"}},"type":"object","title":"SimulationCreateSchema"},"SimulationNotFound":{"properties":{"code":{"type":"string","const":"SIMULATION_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The simulation has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/SimulationNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"SimulationNotFound","description":"The simulation has not been found"},"SimulationNotFoundPayload":{"properties":{"simulation_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Simulation Id","examples":["670f84254c28ffdaae0f462d"]},"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["simulation_id","group_id"],"title":"SimulationNotFoundPayload","description":"Context of the SimulationNotFound error: the values identifying the entities involved in this specific occurrence."},"SimulationSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id"},"permanent":{"type":"boolean","title":"Permanent","default":false},"options":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Options"},"_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Id","examples":["670f84254c28ffdaae0f462d"]},"status":{"$ref":"#/components/schemas/SimulationStatus","default":"stopped"}},"type":"object","required":["_id"],"title":"SimulationSchema"},"SimulationStatus":{"type":"string","enum":["starting","started","stopping","stopped"],"title":"SimulationStatus"},"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"},"StateLoadInProgress":{"properties":{"code":{"type":"string","const":"STATE_LOAD_IN_PROGRESS","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"A state load is already running for this group","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/StateLoadInProgressPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"StateLoadInProgress","description":"A state load is already running for this group"},"StateLoadInProgressPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"StateLoadInProgressPayload","description":"Context of the StateLoadInProgress error: the values identifying the entities involved in this specific occurrence."},"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-Input":{"properties":{"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"information":{"type":"string","title":"Information"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Index"},"stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Occurrence Index"}},"type":"object","required":["stop_sequence","information"],"title":"StopInfoSchema"},"StopReference":{"properties":{"stop_sequence":{"type":"number","title":"Stop Sequence"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Index"},"stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Occurrence Index"}},"type":"object","required":["stop_sequence"],"title":"StopReference","description":"Identifies a stop within a trip in a way that survives GTFS changes.\n\n``stop_sequence`` is the value used today and remains the source of truth\nwhen the GTFS hasn't moved. The other fields are optional because they\nwere introduced after the model existed, so old documents may not have\nthem. When present they let the read-time resolver re-locate the stop\nwhen ``stop_sequence`` no longer matches the current GTFS."},"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"},"SystemMetadataSchema":{"properties":{"device_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Model"},"device_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Os"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"gtfs_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},{"type":"null"}],"title":"Gtfs Id"}},"type":"object","title":"SystemMetadataSchema"},"TaskIdSchema":{"properties":{"task_id":{"type":"string","title":"Task Id"}},"type":"object","required":["task_id"],"title":"TaskIdSchema"},"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"},"TeamCreateSchema":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the team, unique within the group — a depot, an area, a subcontractor."},"color":{"type":"string","title":"Color","description":"Colour the Pysae applications use to tell this team apart."},"team_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Number","description":"Number the operator gives this team, stored as-is and never interpreted by the API."}},"type":"object","required":["name","color"],"title":"TeamCreateSchema","description":"Team to create in the group."},"TeamInUse":{"properties":{"code":{"type":"string","const":"TEAM_IN_USE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You cannot archive/delete a team that is in use","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TeamInUsePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TeamInUse","description":"You cannot archive/delete a team that is in use"},"TeamInUseForbiddenAction":{"type":"string","enum":["current_gtfs"],"title":"TeamInUseForbiddenAction","description":"What a team is still used for, blocking its archival or its deletion."},"TeamInUsePayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the team belongs to."},"team_id":{"type":"string","title":"Team Id","description":"Identifier of the team still in use."},"forbidden_action":{"$ref":"#/components/schemas/TeamInUseForbiddenAction","description":"What the team is still used for."}},"type":"object","required":["group_id","team_id","forbidden_action"],"title":"TeamInUsePayload","description":"Context of the TeamInUse error: the values identifying the entities involved in this specific occurrence."},"TeamNameAlreadyTaken":{"properties":{"code":{"type":"string","const":"TEAM_NAME_ALREADY_TAKEN","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You cannot have duplicate team name","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TeamNameAlreadyTakenPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TeamNameAlreadyTaken","description":"You cannot have duplicate team name"},"TeamNameAlreadyTakenPayload":{"properties":{"team_name":{"type":"string","title":"Team Name","description":"Team name another team of the group already carries."}},"type":"object","required":["team_name"],"title":"TeamNameAlreadyTakenPayload","description":"Context of the TeamNameAlreadyTaken error: the values identifying the entities involved in this specific occurrence."},"TeamNotFound":{"properties":{"code":{"type":"string","const":"TEAM_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The team has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TeamNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TeamNotFound","description":"The team has not been found"},"TeamNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the team was looked up in."},"team_id":{"type":"string","title":"Team Id","description":"Identifier of the unknown team."}},"type":"object","required":["group_id","team_id"],"title":"TeamNotFoundPayload","description":"Context of the TeamNotFound error: the values identifying the entities involved in this specific occurrence."},"TeamSchema":{"properties":{"id":{"type":"string","title":"Id"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"type":"object","required":["id"],"title":"TeamSchema"},"TeamUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"New name of the team, unique within the group."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Colour the Pysae applications use to tell this team apart."},"team_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Number","description":"Number the operator gives this team, stored as-is and never interpreted by the API."},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived","description":"Whether the team is archived: it stays attached to its past data but is no longer offered for new assignments."}},"type":"object","title":"TeamUpdateSchema","description":"Fields of a team to change. Any field left out keeps its current value."},"Temporality":{"type":"string","enum":["passed","current","future"],"title":"Temporality"},"TemporaryStopSchema":{"properties":{"last_stop_delta":{"type":"integer","title":"Last Stop Delta"},"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"},"reference_stop_sequence":{"type":"integer","title":"Reference Stop Sequence"},"reference_stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Stop Id"},"reference_stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reference Stop Index"},"reference_stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reference Stop Occurrence Index"}},"type":"object","required":["last_stop_delta","stop_lat","stop_lon","stop_id","stop_name","stop_sequence","type","reference_stop_sequence"],"title":"TemporaryStopSchema"},"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"},"TokenRequestSchema":{"properties":{"g_recaptcha_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"G Recaptcha Response","description":"reCAPTCHA response proving the request is human. Required unless the caller is a superuser."},"reset_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reset Url","description":"Base URL the reset email points to. Left out, the API builds it from the calling host."}},"type":"object","title":"TokenRequestSchema","description":"What the caller supplies to have a password reset token issued."},"TokenSchema":{"properties":{"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"The token itself, returned to a superuser call only — null otherwise, the token then only reaching the user by email."},"expire":{"type":"string","format":"date-time","title":"Expire","description":"Moment past which the token no longer resets anything."}},"type":"object","required":["token","expire"],"title":"TokenSchema","description":"Password reset token issued for an account."},"TooManyUnresolvedStaff":{"properties":{"code":{"type":"string","const":"CADENCITY_TOO_MANY_UNRESOLVED_STAFF","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The ratio of unresolved staff numbers exceeds the configured threshold; the import was refused without writing.","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TooManyUnresolvedStaffPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TooManyUnresolvedStaff","description":"The ratio of unresolved staff numbers exceeds the configured threshold; the import was refused without writing."},"TooManyUnresolvedStaffPayload":{"properties":{"skipped_staff_numbers":{"items":{"type":"string"},"type":"array","title":"Skipped Staff Numbers"},"skipped_ratio":{"type":"number","title":"Skipped Ratio"},"threshold":{"type":"number","title":"Threshold"}},"type":"object","required":["skipped_staff_numbers","skipped_ratio","threshold"],"title":"TooManyUnresolvedStaffPayload","description":"Context of the TooManyUnresolvedStaff error: the values identifying the entities involved in this specific occurrence."},"TransitArchiveCompressedTooLarge":{"properties":{"code":{"type":"string","const":"TRANSIT_ARCHIVE_COMPRESSED_TOO_LARGE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The uploaded transit archive exceeds the maximum compressed size","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TransitArchiveCompressedTooLargePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TransitArchiveCompressedTooLarge","description":"The uploaded transit archive exceeds the maximum compressed size"},"TransitArchiveCompressedTooLargePayload":{"properties":{"max_bytes":{"type":"integer","title":"Max Bytes"}},"type":"object","required":["max_bytes"],"title":"TransitArchiveCompressedTooLargePayload","description":"Context of the TransitArchiveCompressedTooLarge error: the values identifying the entities involved in this specific occurrence."},"TransitArchiveUncompressedTooLarge":{"properties":{"code":{"type":"string","const":"TRANSIT_ARCHIVE_UNCOMPRESSED_TOO_LARGE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The uploaded transit archive exceeds the maximum uncompressed size","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TransitArchiveUncompressedTooLargePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TransitArchiveUncompressedTooLarge","description":"The uploaded transit archive exceeds the maximum uncompressed size"},"TransitArchiveUncompressedTooLargePayload":{"properties":{"max_bytes":{"type":"integer","title":"Max Bytes"}},"type":"object","required":["max_bytes"],"title":"TransitArchiveUncompressedTooLargePayload","description":"Context of the TransitArchiveUncompressedTooLarge error: the values identifying the entities involved in this specific occurrence."},"TransitFileType":{"type":"string","enum":["gtfs"],"title":"TransitFileType"},"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"},"TripComplementaryInfoCommentSchema":{"properties":{"comment":{"type":"string","title":"Comment"}},"type":"object","required":["comment"],"title":"TripComplementaryInfoCommentSchema"},"TripComplementaryInfoStopInfosSchema":{"properties":{"stop_infos":{"items":{"$ref":"#/components/schemas/StopInfoSchema-Input"},"type":"array","title":"Stop Infos"}},"type":"object","required":["stop_infos"],"title":"TripComplementaryInfoStopInfosSchema"},"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"},"TripEventSchemaCreate":{"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":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]}],"title":"Date"},"content":{"anyOf":[{"$ref":"#/components/schemas/StopCloseAreaSchema"},{"$ref":"#/components/schemas/StopDetectionSchema"},{"type":"null"}],"title":"Content"},"device_id":{"type":"string","title":"Device Id"}},"type":"object","required":["event_type","plan_id","trip_id","trip_date","device_id"],"title":"TripEventSchemaCreate"},"TripEventSchemaDeviceCreate":{"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":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]}],"title":"Date"},"content":{"anyOf":[{"$ref":"#/components/schemas/StopCloseAreaSchema"},{"$ref":"#/components/schemas/StopDetectionSchema"},{"type":"null"}],"title":"Content"}},"type":"object","required":["event_type","plan_id","trip_id","trip_date"],"title":"TripEventSchemaDeviceCreate"},"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"},"TripIncidentsCommentTemplate":{"properties":{"html_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Body","description":"Body of the comment, as HTML."}},"type":"object","title":"TripIncidentsCommentTemplate","description":"Template of the comment opening an incident ticket."},"TripIncidentsConfig-Input":{"properties":{"ticket_template":{"anyOf":[{"$ref":"#/components/schemas/TripIncidentsTicketTemplate"},{"type":"null"}],"description":"Template the tickets are created from."},"incident_label_values":{"items":{"type":"string"},"type":"array","title":"Incident Label Values","description":"Incident labels the operator picks from when reporting.","default":[]},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Ticketing system the incidents are filed into."},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","description":"Domain of the ticketing instance the incidents go to."},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Credential authenticating against the ticketing system."}},"type":"object","title":"TripIncidentsConfig","description":"Where the trip incidents reported by the operator are filed."},"TripIncidentsConfig-Output":{"properties":{"ticket_template":{"anyOf":[{"$ref":"#/components/schemas/TripIncidentsTicketTemplate"},{"type":"null"}],"description":"Template the tickets are created from."},"incident_label_values":{"items":{"type":"string"},"type":"array","title":"Incident Label Values","description":"Incident labels the operator picks from when reporting.","default":[]},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Ticketing system the incidents are filed into."},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","description":"Domain of the ticketing instance the incidents go to."},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Credential authenticating against the ticketing system."}},"type":"object","title":"TripIncidentsConfig","description":"Where the trip incidents reported by the operator are filed."},"TripIncidentsTicketTemplate":{"properties":{"comment":{"anyOf":[{"$ref":"#/components/schemas/TripIncidentsCommentTemplate"},{"type":"null"}],"description":"Template of the comment opening the ticket."},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"Subject line of the ticket."}},"type":"object","title":"TripIncidentsTicketTemplate","description":"Template the incident tickets are created from."},"TripListConfiguration":{"properties":{"merging":{"$ref":"#/components/schemas/TripListMergingConfiguration","description":"Duplicates the list folds into a single row.","default":{"device":false,"gtfs":true}}},"type":"object","title":"TripListConfiguration","description":"How the trip list presents the trips of a service day."},"TripListConfigurationSchema":{"properties":{"merging":{"$ref":"#/components/schemas/TripListMergingConfigurationSchema"}},"type":"object","required":["merging"],"title":"TripListConfigurationSchema"},"TripListMergingConfiguration":{"properties":{"device":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Device","description":"Whether the takings of one trip by several devices are folded into a single row, their kilometres summed.","default":false},"gtfs":{"type":"boolean","title":"Gtfs","description":"Whether a trip carried by several GTFS datasets appears once instead of once per dataset.","default":true}},"type":"object","title":"TripListMergingConfiguration","description":"Which duplicates of a same trip the trip list folds into a single row."},"TripListMergingConfigurationSchema":{"properties":{"device":{"type":"boolean","title":"Device"},"gtfs":{"type":"boolean","title":"Gtfs"}},"type":"object","required":["device","gtfs"],"title":"TripListMergingConfigurationSchema"},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The trip has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/TripNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"TripNotFound","description":"The trip has not been found"},"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","description":"Context of the TripNotFound error: the values identifying the entities involved in this specific occurrence."},"TripPopulateForceMode":{"type":"string","enum":["check_only","drop_and_create","false","true"],"title":"TripPopulateForceMode"},"TripSchema-Input":{"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"},"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"},"TripUpdateCreateSchema":{"properties":{"delay":{"type":"integer","title":"Delay","description":"Delay in seconds","default":0,"examples":[11]},"is_canceled":{"type":"boolean","title":"Is Canceled","default":false},"skipped_stop_time_seqs":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Skipped Stop Time Seqs","description":"Sequences skipped, not by id but sequence index"},"skipped_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/StopReference"},"type":"array"},{"type":"null"}],"title":"Skipped Stops","description":"GTFS-resilient counterpart of skipped_stop_time_seqs. When provided by the client the server skips the enrichment step. When omitted the server computes the references from the trip's stop_times at write time."},"temporary_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/TemporaryStopSchema"},"type":"array"},{"type":"null"}],"title":"Temporary Stops"},"shape":{"anyOf":[{"items":{"$ref":"#/components/schemas/Coordinates-Input"},"type":"array"},{"type":"null"}],"title":"Shape"},"delays":{"anyOf":[{"items":{"$ref":"#/components/schemas/Delay-Input"},"type":"array"},{"type":"null"}],"title":"Delays"},"trips":{"items":{"type":"string"},"type":"array","title":"Trips","default":[]},"route_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Id"},"shape_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"excluded_trip_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Excluded Trip Ids"}},"type":"object","title":"TripUpdateCreateSchema"},"TripUpdatePatchSchema":{"properties":{"date":{"anyOf":[{"type":"string","examples":["20201122"]},{"type":"null"}],"title":"Date"},"end_date":{"anyOf":[{"type":"string","examples":["20201122"]},{"type":"null"}],"title":"End Date"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"excluded_trip_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Excluded Trip Ids"}},"type":"object","title":"TripUpdatePatchSchema","description":"Partial update: every field is optional, only those explicitly sent are applied.\n\nThe other fields of a trip-update (delays, shape, skipped_stops, ...)\nare not editable through this endpoint and must go through the\ncreate/replace endpoints."},"TripUpdateSchema":{"properties":{"date":{"type":"string","title":"Date","examples":["20201122"]},"trip_id":{"type":"string","title":"Trip Id"},"end_date":{"anyOf":[{"type":"string","examples":["20201122"]},{"type":"null"}],"title":"End Date"},"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","examples":[11]},{"type":"null"}],"title":"Delay","description":"Delay in seconds"},"is_canceled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Canceled"},"skipped_stop_time_seqs":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Skipped Stop Time Seqs","description":"Sequences skipped, not by id but sequence index"},"skipped_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/StopReference"},"type":"array"},{"type":"null"}],"title":"Skipped Stops"},"stop_infos":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trip_updates__schemas__StopInfoSchema"},"type":"array"},{"type":"null"}],"title":"Stop Infos"},"temporary_stops":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trip_updates__models__TemporaryStop"},"type":"array"},{"type":"null"}],"title":"Temporary Stops"},"shape":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trip_updates__models__Coordinates"},"type":"array"},{"type":"null"}],"title":"Shape"},"delays":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trip_updates__models__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":["date","trip_id","km_delta"],"title":"TripUpdateSchema"},"TripUpdateSoftDeleteSchema":{"properties":{"trip_update_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Trip Update Ids","description":"MongoDB _id of the trip-updates to end."}},"type":"object","required":["trip_update_ids"],"title":"TripUpdateSoftDeleteSchema"},"TripUpdateUseSchema":{"properties":{"total":{"type":"integer","title":"Total","default":0},"comment":{"type":"integer","title":"Comment","default":0},"stop_infos":{"type":"integer","title":"Stop Infos","default":0},"is_canceled":{"type":"integer","title":"Is Canceled","default":0},"delay":{"type":"integer","title":"Delay","default":0},"skipped_stop_time_seqs":{"type":"integer","title":"Skipped Stop Time Seqs","default":0},"temporary_stops":{"type":"integer","title":"Temporary Stops","default":0},"shape":{"type":"integer","title":"Shape","default":0},"delays":{"type":"integer","title":"Delays","default":0}},"type":"object","title":"TripUpdateUseSchema"},"TripUpdateValidationResultSchema":{"properties":{"status":{"$ref":"#/components/schemas/pysae__api__trip_updates__schemas__ValidationStatus"},"deviation_valid":{"type":"integer","minimum":0.0,"title":"Deviation Valid","description":"Number of active (end_date >= today, non-obsolete) trip-updates that pass every check against the target GTFS. Populated for both ``valid`` and ``error`` outcomes.","default":0},"deviation_errors":{"anyOf":[{"items":{"$ref":"#/components/schemas/DeviationErrorSchema"},"type":"array"},{"type":"null"}],"title":"Deviation Errors"}},"type":"object","required":["status"],"title":"TripUpdateValidationResultSchema"},"TripValidationRules":{"properties":{"start_distance_max":{"type":"integer","title":"Start Distance Max","description":"Distance in metres between the first stop and where the trip was actually taken, past which its start is reported as off.","default":1000},"start_delay_max":{"type":"integer","title":"Start Delay Max","description":"Delay in seconds on the scheduled departure, past which the start is reported as late.","default":1800},"start_delay_min":{"type":"integer","title":"Start Delay Min","description":"Delay in seconds on the scheduled departure, below which the start is reported as early. Negative.","default":-1800},"vk_percent_min":{"type":"integer","title":"Vk Percent Min","description":"Share, as a percentage of the theoretical distance, of reliable kilometres below which the trip is reported as under-driven.","default":80}},"type":"object","title":"TripValidationRules","description":"Thresholds past which a trip is reported as problematic.\n\nA trip breaching one of them is flagged, never dropped: the operator\narbitrates."},"TripValidationRulesSchema":{"properties":{"start_distance_max":{"type":"integer","title":"Start Distance Max"},"start_delay_max":{"type":"integer","title":"Start Delay Max"},"start_delay_min":{"type":"integer","title":"Start Delay Min"},"vk_percent_min":{"type":"integer","title":"Vk Percent Min"}},"type":"object","required":["start_distance_max","start_delay_max","start_delay_min","vk_percent_min"],"title":"TripValidationRulesSchema"},"TripsConfigSchema-Input":{"properties":{"trip_list_configuration":{"$ref":"#/components/schemas/TripListConfigurationSchema","default":{"merging":{"device":false,"gtfs":true}}},"trip_validation_rules":{"$ref":"#/components/schemas/TripValidationRulesSchema","default":{"start_distance_max":1000,"start_delay_max":1800,"start_delay_min":-1800,"vk_percent_min":80}}},"type":"object","title":"TripsConfigSchema"},"TripsConfigSchema-Output":{"properties":{"trip_list_configuration":{"$ref":"#/components/schemas/TripListConfigurationSchema","default":{"merging":{"device":false,"gtfs":true}}},"trip_validation_rules":{"$ref":"#/components/schemas/TripValidationRulesSchema","default":{"start_distance_max":1000,"start_delay_max":1800,"start_delay_min":-1800,"vk_percent_min":80}}},"type":"object","title":"TripsConfigSchema"},"Unauthenticated":{"properties":{"code":{"type":"string","const":"UNAUTHENTICATED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You did not provide a session id","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnauthenticatedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"Unauthenticated","description":"You did not provide a session id"},"UnauthenticatedPayload":{"properties":{},"type":"object","title":"UnauthenticatedPayload","description":"Context of the Unauthenticated error: the values identifying the entities involved in this specific occurrence."},"UnauthorizedArchivedDevice":{"properties":{"code":{"type":"string","const":"UNAUTHORIZED_ARCHIVED_DEVICE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The device requested is archived in this group","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnauthorizedArchivedDevicePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnauthorizedArchivedDevice","description":"The device requested is archived in this group"},"UnauthorizedArchivedDevicePayload":{"properties":{"device_id":{"type":"string","title":"Device Id","description":"Identifier of the archived device that was refused."}},"type":"object","required":["device_id"],"title":"UnauthorizedArchivedDevicePayload","description":"Context of the UnauthorizedArchivedDevice error: the values identifying the entities involved in this specific occurrence."},"UnauthorizedDeviceSessionOnly":{"properties":{"code":{"type":"string","const":"UNAUTHORIZED_DEVICE_SESSION_ONLY","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Endpoint should be called by device session (with `device_id`) only","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnauthorizedDeviceSessionOnlyPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnauthorizedDeviceSessionOnly","description":"Endpoint should be called by device session (with `device_id`) only"},"UnauthorizedDeviceSessionOnlyPayload":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Identifier of the session used for the call, which is not a device session."}},"type":"object","required":["session_id"],"title":"UnauthorizedDeviceSessionOnlyPayload","description":"Context of the UnauthorizedDeviceSessionOnly error: the values identifying the entities involved in this specific occurrence."},"UnauthorizedWrongGroupCode":{"properties":{"code":{"type":"string","const":"UNAUTHORIZED_WRONG_GROUP_CODE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Group access code is wrong","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnauthorizedWrongGroupCodePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnauthorizedWrongGroupCode","description":"Group access code is wrong"},"UnauthorizedWrongGroupCodePayload":{"properties":{"group_code":{"type":"string","title":"Group Code","description":"Group access code submitted by the device."}},"type":"object","required":["group_code"],"title":"UnauthorizedWrongGroupCodePayload","description":"Context of the UnauthorizedWrongGroupCode error: the values identifying the entities involved in this specific occurrence."},"UnknowledgedUrgencyNotFound":{"properties":{"code":{"type":"string","const":"UNKNOWLEDGE_URGENCY_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The requested urgency does not exist or is already marked as acknowledged","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnknowledgedUrgencyNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnknowledgedUrgencyNotFound","description":"The requested urgency does not exist or is already marked as acknowledged"},"UnknowledgedUrgencyNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"urgency_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Urgency Id","examples":["670f84254c28ffdaae0f462d"]},"user_teams":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"$ref":"#/components/schemas/AllTeams"}],"title":"User Teams"}},"type":"object","required":["group_id","urgency_id","user_teams"],"title":"UnknowledgedUrgencyNotFoundPayload","description":"Context of the UnknowledgedUrgencyNotFound error: the values identifying the entities involved in this specific occurrence."},"UnresolvedUrgencyNotFound":{"properties":{"code":{"type":"string","const":"UNRESOLVED_URGENCY_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The requested urgency does not exist or is already marked as resolved","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnresolvedUrgencyNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnresolvedUrgencyNotFound","description":"The requested urgency does not exist or is already marked as resolved"},"UnresolvedUrgencyNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"urgency_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Urgency Id","examples":["670f84254c28ffdaae0f462d"]},"user_teams":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"$ref":"#/components/schemas/AllTeams"}],"title":"User Teams"}},"type":"object","required":["group_id","urgency_id","user_teams"],"title":"UnresolvedUrgencyNotFoundPayload","description":"Context of the UnresolvedUrgencyNotFound error: the values identifying the entities involved in this specific occurrence."},"UnsafePurgePatternError":{"properties":{"code":{"type":"string","const":"UNSAFE_PURGE_PATTERN","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The purge pattern is too broad or targets a protected namespace","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnsafePurgePatternErrorPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnsafePurgePatternError","description":"The purge pattern is too broad or targets a protected namespace"},"UnsafePurgePatternErrorPayload":{"properties":{"pattern":{"type":"string","title":"Pattern"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["pattern","reason"],"title":"UnsafePurgePatternErrorPayload","description":"Context of the UnsafePurgePatternError error: the values identifying the entities involved in this specific occurrence."},"UnsupportedFileContentType":{"properties":{"code":{"type":"string","const":"UNSUPPORTED_FILE_CONTENT_TYPE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The file format is not supported","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UnsupportedFileContentTypePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UnsupportedFileContentType","description":"The file format is not supported"},"UnsupportedFileContentTypePayload":{"properties":{"supported_content_type":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Supported Content Type","description":"Media types the endpoint accepts."},"given_content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Given Content Type","description":"Media type of the uploaded file, when it declared one."},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename","description":"Name of the rejected file, when it carried one."}},"type":"object","required":["supported_content_type"],"title":"UnsupportedFileContentTypePayload","description":"Context of the UnsupportedFileContentType error: the values identifying the entities involved in this specific occurrence."},"UpcomingFile":{"properties":{"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File","description":"Identifier of the GTFS that was to be published."},"setup_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Setup Ts","description":"Epoch seconds recorded for the setup of the publication."},"ts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ts","description":"Epoch seconds recorded for the publication itself."},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Identifier of the user who scheduled it."}},"type":"object","title":"UpcomingFile","description":"A GTFS publication that was scheduled on the group.\n\nLeftover of an earlier publication mechanism: nothing produces it any more,\nit is only carried along so existing documents round-trip, and the\npublication history is served by the GTFS endpoints instead."},"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/pysae__api__trips__v4__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/pysae__api__trips__v4__schemas__TemporaryStop"},"type":"array"},{"type":"null"}],"title":"Temporary Stops"},"shape":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trips__v4__schemas__Coordinates"},"type":"array"},{"type":"null"}],"title":"Shape"},"delays":{"anyOf":[{"items":{"$ref":"#/components/schemas/pysae__api__trips__v4__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"},"UrgencyCreateSchema":{"properties":{"device_id":{"type":"string","title":"Device Id"},"device_position":{"$ref":"#/components/schemas/DeviceCoordinatesSchema"},"device_time":{"anyOf":[{"type":"string","examples":["2020-11-22T11:12:13","22/11/2020 11:12:13"]},{"type":"integer","examples":[1606003200]},{"type":"number","examples":[1606003200.5]}],"title":"Device Time"},"trip":{"anyOf":[{"$ref":"#/components/schemas/TripSchema-Input"},{"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"}},"type":"object","required":["device_id","device_position","device_time"],"title":"UrgencyCreateSchema"},"UrgencyCreatedSchema":{"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]}},"type":"object","required":["device_id","device_position","device_time","id","api_time"],"title":"UrgencyCreatedSchema"},"UrgencyResolutionCreateSchema":{"properties":{"is_false_alert":{"type":"boolean","title":"Is False Alert","default":false},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","title":"UrgencyResolutionCreateSchema"},"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"},"UserCreateRoleSchema":{"properties":{"email":{"type":"string","title":"Email","description":"Email address of the user the role is granted to."},"role":{"$ref":"#/components/schemas/RoleType","description":"Access level granted on the group."},"teams":{"items":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"array","title":"Teams","description":"Teams the role is restricted to: the user then only sees the drivers and vehicles attached to them. Empty grants the whole group.","default":[]},"reset_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reset Url","description":"Base URL the invitation email points to. Left out, the API builds it from the calling host."}},"type":"object","required":["email","role"],"title":"UserCreateRoleSchema","description":"Role to grant on the group, to a user identified by their email address.\n\nThe user account is created when no account carries that email yet, and is\nthen invited by email to set its password."},"UserCreateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Display name of the user."},"superuser":{"type":"boolean","title":"Superuser","description":"Whether the account reaches every group without holding a role on it. Reserved for Pysae staff.","default":false},"email":{"type":"string","title":"Email","description":"Email address the user signs in with, unique across all accounts."},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password","description":"Initial password. Left out, the account holds none and the user sets it from the invitation link."},"date_added":{"type":"string","format":"date-time","title":"Date Added","description":"Creation date of the account."}},"additionalProperties":false,"type":"object","required":["email"],"title":"UserCreateSchema","description":"User account to create. Its roles are granted per group, separately."},"UserEmailAlreadyTaken":{"properties":{"code":{"type":"string","const":"USER_EMAIL_ALREADY_TAKEN","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"You cannot have the same email as an other user","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UserEmailAlreadyTakenPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UserEmailAlreadyTaken","description":"You cannot have the same email as an other user"},"UserEmailAlreadyTakenPayload":{"properties":{"email":{"type":"string","title":"Email","description":"Email address another user already carries."}},"type":"object","required":["email"],"title":"UserEmailAlreadyTakenPayload","description":"Context of the UserEmailAlreadyTaken error: the values identifying the entities involved in this specific occurrence."},"UserLimitConfigSchema":{"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},"type":"object","required":["limit"],"title":"UserLimitConfigSchema"},"UserLimitSchema":{"properties":{"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["limit"],"title":"UserLimitSchema"},"UserNotFound":{"properties":{"code":{"type":"string","const":"USER_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The user has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/UserNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"UserNotFound","description":"The user has not been found"},"UserNotFoundPayload":{"properties":{"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id","description":"Identifier of the group the user was looked up in, absent when the lookup was not scoped to a group."},"user_id":{"type":"string","title":"User Id","description":"Identifier of the unknown user."}},"type":"object","required":["user_id"],"title":"UserNotFoundPayload","description":"Context of the UserNotFound error: the values identifying the entities involved in this specific occurrence."},"UserRestrictedUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"New display name. Left out, the current one is kept."}},"type":"object","title":"UserRestrictedUpdateSchema","description":"Fields a user may change on their own account."},"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"},"UserUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"New display name. Left out, the current one is kept."},"superuser":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Superuser","description":"Whether the account reaches every group without holding a role on it. Reserved for Pysae staff."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"New sign-in email address, unique across all accounts. Renaming it changes how the user authenticates."}},"type":"object","title":"UserUpdateSchema","description":"Fields of a user account to change. Any field left out keeps its value."},"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"},"ValidationErrorEntrySchema":{"properties":{"type":{"$ref":"#/components/schemas/ValidationErrorType"},"ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ids","description":"Identifiers concerned by the error. Populated for ``MISSING_SHAPE`` (one shape_id), ``MISSING_ROUTE`` (one route_id) and ``MISSING_STOP`` (one or more stop_ids). ``None`` for ``SHAPE_CHANGED``."}},"type":"object","required":["type"],"title":"ValidationErrorEntrySchema"},"ValidationErrorType":{"type":"string","enum":["MISSING_SHAPE","MISSING_ROUTE","MISSING_STOP","SHAPE_CHANGED"],"title":"ValidationErrorType"},"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"},"VehicleBulkStatusResultSchema":{"properties":{"id_amount":{"type":"integer","title":"Id Amount","description":"Number of vehicle ids received."},"modified_amount":{"type":"integer","title":"Modified Amount","description":"Number of vehicles actually updated."}},"type":"object","required":["id_amount","modified_amount"],"title":"VehicleBulkStatusResultSchema","description":"Result schema for bulk status update."},"VehicleBulkStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/VehicleStatus","description":"Status every listed vehicle is moved to."},"ids":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","examples":["670f84254c28ffdaae0f462d"]},"type":"array","uniqueItems":true,"title":"Ids","description":"Vehicles the change applies to. Duplicates are collapsed."}},"type":"object","required":["status","ids"],"title":"VehicleBulkStatusSchema","description":"API v4 schema for bulk status update."},"VehicleCreateSchema":{"properties":{"license_plate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Plate","description":"Licence plate of the vehicle."},"fleet_number":{"type":"string","title":"Fleet Number","description":"Fleet number the operator identifies the vehicle by."},"status":{"$ref":"#/components/schemas/VehicleStatus","description":"Operating status of the vehicle.","default":"active"},"modified_at":{"type":"string","format":"date-time","title":"Modified At","description":"Moment the vehicle was last changed."},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment","description":"Free-form note the operator keeps on it."},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team the vehicle belongs to. Superseded by `teams`, kept for clients predating multi-team support."},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams","description":"Teams the vehicle belongs to."},"energy_type":{"anyOf":[{"$ref":"#/components/schemas/EnergyType"},{"type":"null"}],"description":"Energy the vehicle runs on."},"vehicle_type":{"anyOf":[{"$ref":"#/components/schemas/VehicleType"},{"type":"null"}],"description":"Kind of vehicle."},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer","description":"Manufacturer of the vehicle."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model of the vehicle."},"capacity":{"anyOf":[{"type":"integer","maximum":999.0,"minimum":0.0},{"type":"null"}],"title":"Capacity","description":"Passengers the vehicle can carry."},"equipment":{"items":{"$ref":"#/components/schemas/VehicleEquipment"},"type":"array","title":"Equipment","description":"On-board equipment reporting for this vehicle.","default":[]}},"additionalProperties":false,"type":"object","required":["fleet_number"],"title":"VehicleCreateSchema","description":"API v4 schema for creating a vehicle using the 'status' field."},"VehicleDataSchema":{"properties":{"energy_level":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Energy Level","description":"Energy level of a vehicle (fuel or battery), in percentage (0-100)"},"odometer":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Odometer","description":"Odometer reading of the vehicle, in kilometers"},"engine_state":{"anyOf":[{"$ref":"#/components/schemas/EngineState"},{"type":"null"}],"description":"Engine state reported by the telematic provider (driving or stopped)."}},"type":"object","title":"VehicleDataSchema","description":"What the on-board equipment reports about the vehicle itself."},"VehicleEquipment":{"properties":{"equipment_id":{"type":"string","title":"Equipment Id"},"equipment_type":{"$ref":"#/components/schemas/EquipmentType"}},"type":"object","required":["equipment_id","equipment_type"],"title":"VehicleEquipment"},"VehicleExploitationSendSftpResult":{"properties":{"filename":{"type":"string","title":"Filename"},"bytes_sent":{"type":"integer","title":"Bytes Sent"}},"type":"object","required":["filename","bytes_sent"],"title":"VehicleExploitationSendSftpResult"},"VehicleImportResultSchema":{"properties":{"created":{"type":"integer","title":"Created","description":"Vehicles added to the group."},"modified":{"type":"integer","title":"Modified","description":"Vehicles of the group changed."},"ignored":{"type":"integer","title":"Ignored","description":"Lines the import left the group unchanged for."}},"type":"object","required":["created","modified","ignored"],"title":"VehicleImportResultSchema","description":"What a vehicle import actually changed."},"VehicleImportValidationError":{"properties":{"team_name_not_existing":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportTeams"},{"type":"null"}],"description":"Lines naming a team the group does not hold."},"user_missing_team":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportTeams"},{"type":"null"}],"description":"Lines naming a team the caller has no access to."},"missing_field":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportFields"},{"type":"null"}],"description":"Lines missing a required column."},"invalid_format_field":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportFields"},{"type":"null"}],"description":"Lines whose column value does not match its format."},"vehicle_not_found":{"anyOf":[{"$ref":"#/components/schemas/ErrorImportVehicleNotFound"},{"type":"null"}],"description":"Lines updating a vehicle the group does not hold."}},"type":"object","title":"VehicleImportValidationError","description":"Everything a vehicle import was refused for, grouped by cause.\n\nEach cause is absent when the file raised none of it. The import is\nall-or-nothing: a single cause leaves the vehicles untouched."},"VehicleImportValidationFailed":{"properties":{"code":{"type":"string","const":"VEHICLE_IMPORT_VALIDATION_FAILED","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"At vehicle import, some validation errors happened","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VehicleImportValidationFailedPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VehicleImportValidationFailed","description":"At vehicle import, some validation errors happened"},"VehicleImportValidationFailedPayload":{"properties":{"error":{"$ref":"#/components/schemas/VehicleImportValidationError","description":"Everything the import was refused for, grouped by cause."}},"type":"object","required":["error"],"title":"VehicleImportValidationFailedPayload","description":"Context of the VehicleImportValidationFailed error: the values identifying the entities involved in this specific occurrence."},"VehicleLenientKeyNotFound":{"properties":{"code":{"type":"string","const":"VEHICLE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The vehicle has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VehicleLenientKeyNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VehicleLenientKeyNotFound","description":"The vehicle has not been found"},"VehicleLenientKeyNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the vehicle was looked up in."},"vehicle_lenient_key":{"type":"string","title":"Vehicle Lenient Key","description":"Key the vehicle was looked up by: its id, its fleet number or its licence plate."}},"type":"object","required":["group_id","vehicle_lenient_key"],"title":"VehicleLenientKeyNotFoundPayload","description":"Context of the VehicleLenientKeyNotFound error: the values identifying the entities involved in this specific occurrence."},"VehicleLoadSchema":{"properties":{"vehicle_load":{"type":"integer","title":"Vehicle Load"}},"type":"object","required":["vehicle_load"],"title":"VehicleLoadSchema"},"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"},"VehicleNotFound":{"properties":{"code":{"type":"string","const":"VEHICLE_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The vehicle has not been found","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VehicleNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VehicleNotFound","description":"The vehicle has not been found"},"VehicleNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id","description":"Identifier of the group the vehicle was looked up in."},"vehicle_id":{"type":"string","maxLength":24,"minLength":24,"pattern":"[0-9a-fA-F]{24}","title":"Vehicle Id","description":"Identifier of the unknown vehicle.","examples":["670f84254c28ffdaae0f462d"]}},"type":"object","required":["group_id","vehicle_id"],"title":"VehicleNotFoundPayload","description":"Context of the VehicleNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"VehicleStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/VehicleStatus","description":"New operating status of the vehicle."}},"additionalProperties":false,"type":"object","required":["status"],"title":"VehicleStatusSchema","description":"API v4 schema for updating vehicle status."},"VehicleType":{"type":"string","enum":["bus","car","minibus","other"],"title":"VehicleType"},"VehicleUpdateSchema":{"properties":{"license_plate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Plate","description":"Licence plate of the vehicle."},"fleet_number":{"type":"string","title":"Fleet Number","description":"Fleet number the operator identifies the vehicle by."},"status":{"$ref":"#/components/schemas/VehicleStatus","description":"Operating status of the vehicle.","default":"active"},"modified_at":{"type":"string","format":"date-time","title":"Modified At","description":"Moment the vehicle was last changed."},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment","description":"Free-form note the operator keeps on it."},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team the vehicle belongs to. Superseded by `teams`, kept for clients predating multi-team support."},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams","description":"Teams the vehicle belongs to."},"energy_type":{"anyOf":[{"$ref":"#/components/schemas/EnergyType"},{"type":"null"}],"description":"Energy the vehicle runs on."},"vehicle_type":{"anyOf":[{"$ref":"#/components/schemas/VehicleType"},{"type":"null"}],"description":"Kind of vehicle."},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer","description":"Manufacturer of the vehicle."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model of the vehicle."},"capacity":{"anyOf":[{"type":"integer","maximum":999.0,"minimum":0.0},{"type":"null"}],"title":"Capacity","description":"Passengers the vehicle can carry."},"equipment":{"items":{"$ref":"#/components/schemas/VehicleEquipment"},"type":"array","title":"Equipment","description":"On-board equipment reporting for this vehicle.","default":[]}},"additionalProperties":false,"type":"object","required":["fleet_number"],"title":"VehicleUpdateSchema","description":"Full state of the vehicle to store, replacing the one on record."},"VersionStates":{"type":"string","enum":["UP_TO_DATE","DEPRECATED","TO_UPDATE","BLOCKED"],"title":"VersionStates"},"VoipCallbackCreateSchema":{"properties":{"instavox_id":{"type":"string","title":"Instavox Id","description":"Instavox COMMAND_REQUEST id (used for dedupe)"},"sender_device_id":{"type":"string","title":"Sender Device Id"},"sender_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender User Id"},"type":{"$ref":"#/components/schemas/VoipCommandRequestType"},"received_at":{"type":"string","format":"date-time","title":"Received At"},"is_resolved":{"type":"boolean","title":"Is Resolved","default":false},"instavox_device_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instavox Device Label"},"pysae_device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pysae Device Id"},"pysae_device_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pysae Device Label"},"vehicle_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Label"},"driver_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Name"}},"type":"object","required":["instavox_id","sender_device_id","type","received_at"],"title":"VoipCallbackCreateSchema"},"VoipCallbackInstavoxIdConflict":{"properties":{"code":{"type":"string","const":"VOIP_CALLBACK_INSTAVOX_ID_CONFLICT","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Another VoIP callback already uses this instavox_id for the group","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VoipCallbackInstavoxIdConflictPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VoipCallbackInstavoxIdConflict","description":"Another VoIP callback already uses this instavox_id for the group"},"VoipCallbackInstavoxIdConflictPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"},"instavox_id":{"type":"string","title":"Instavox Id"}},"type":"object","required":["group_id","instavox_id"],"title":"VoipCallbackInstavoxIdConflictPayload","description":"Context of the VoipCallbackInstavoxIdConflict error: the values identifying the entities involved in this specific occurrence."},"VoipCallbackNotFound":{"properties":{"code":{"type":"string","const":"VOIP_CALLBACK_NOT_FOUND","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"No VoIP callback with this id was found for the group","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VoipCallbackNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VoipCallbackNotFound","description":"No VoIP callback with this id was found for the group"},"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","description":"Context of the VoipCallbackNotFound error: the values identifying the entities involved in this specific occurrence."},"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"},"VoipCallbackUpdateSchema":{"properties":{"sender_device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Device Id"},"sender_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender User Id"},"type":{"anyOf":[{"$ref":"#/components/schemas/VoipCommandRequestType"},{"type":"null"}]},"received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Received At"},"is_resolved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Resolved"},"instavox_device_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instavox Device Label"},"pysae_device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pysae Device Id"},"pysae_device_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pysae Device Label"},"vehicle_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Label"},"driver_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Name"}},"type":"object","title":"VoipCallbackUpdateSchema"},"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","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The group has no voip settings","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VoipGroupSettingsNotFoundPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VoipGroupSettingsNotFound","description":"The group has no voip settings"},"VoipGroupSettingsNotFoundPayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"VoipGroupSettingsNotFoundPayload","description":"Context of the VoipGroupSettingsNotFound error: the values identifying the entities involved in this specific occurrence."},"VoipProviderSchema":{"type":"string","enum":["instavox"],"title":"VoipProviderSchema"},"VoipProviderUnavailable":{"properties":{"code":{"type":"string","const":"VOIP_PROVIDER_UNAVAILABLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The VoIP provider did not respond in time","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/VoipProviderUnavailablePayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"VoipProviderUnavailable","description":"The VoIP provider did not respond in time"},"VoipProviderUnavailablePayload":{"properties":{"group_id":{"type":"string","title":"Group Id"}},"type":"object","required":["group_id"],"title":"VoipProviderUnavailablePayload","description":"Context of the VoipProviderUnavailable error: the values identifying the entities involved in this specific occurrence."},"WebreatheIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the integration is enabled","default":true},"api_url":{"type":"string","title":"Api Url","description":"Webreathe API URL"},"api_key":{"type":"string","format":"password","title":"Api Key","description":"Webreathe API key","writeOnly":true}},"type":"object","required":["api_url","api_key"],"title":"WebreatheIntegrationSchema"},"WebreatheIpIntegrationSchema":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"api_key":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Api Key"},"api_url":{"type":"string","title":"Api Url","default":""},"ip_address":{"type":"string","title":"Ip Address","default":""},"port":{"type":"integer","title":"Port","default":0}},"type":"object","title":"WebreatheIpIntegrationSchema"},"WrongLogin":{"properties":{"code":{"type":"string","const":"WRONG_LOGIN","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Your credentials are not recognized","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/WrongLoginPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"WrongLogin","description":"Your credentials are not recognized"},"WrongLoginPayload":{"properties":{},"type":"object","title":"WrongLoginPayload","description":"Context of the WrongLogin error: the values identifying the entities involved in this specific occurrence."},"WrongRecaptcha":{"properties":{"code":{"type":"string","const":"WRONG_RECAPTCHA","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"Incorrect recaptcha","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/WrongRecaptchaPayload","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"WrongRecaptcha","description":"Incorrect recaptcha"},"WrongRecaptchaPayload":{"properties":{},"type":"object","title":"WrongRecaptchaPayload","description":"Context of the WrongRecaptcha error: the values identifying the entities involved in this specific occurrence."},"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__gtfs__files__models__ValidationStatus":{"type":"string","enum":["to_validate","validated","to_fix"],"title":"ValidationStatus"},"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__trip_updates__models__Coordinates":{"prefixItems":[{"type":"number","title":"Lat"},{"type":"number","title":"Lng"}],"type":"array","maxItems":2,"minItems":2},"pysae__api__trip_updates__models__Delay":{"properties":{"stop_sequence":{"type":"number","title":"Stop Sequence"},"delay":{"type":"integer","title":"Delay"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Index"},"stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Occurrence Index"}},"type":"object","required":["stop_sequence","delay"],"title":"Delay"},"pysae__api__trip_updates__models__TemporaryStop":{"properties":{"last_stop_delta":{"type":"integer","title":"Last Stop Delta"},"reference_stop_sequence":{"type":"integer","title":"Reference Stop Sequence"},"arrival_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Arrival Time"},"departure_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"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"},"reference_stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Stop Id"},"reference_stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reference Stop Index"},"reference_stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reference Stop Occurrence Index"}},"type":"object","required":["last_stop_delta","reference_stop_sequence","stop_lat","stop_lon","stop_id","stop_name","stop_sequence","type"],"title":"TemporaryStop"},"pysae__api__trip_updates__schemas__StopInfoSchema":{"properties":{"stop_sequence":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Stop Sequence"},"information":{"type":"string","title":"Information"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Id"},"stop_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Index"},"stop_occurrence_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Occurrence Index"}},"type":"object","required":["stop_sequence","information"],"title":"StopInfoSchema"},"pysae__api__trip_updates__schemas__ValidationStatus":{"type":"string","enum":["valid","error"],"title":"ValidationStatus"},"pysae__api__trips__v4__schemas__Coordinates":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"pysae__api__trips__v4__schemas__Delay":{"properties":{"stop_sequence":{"type":"number","title":"Stop Sequence"},"delay":{"type":"integer","title":"Delay"}},"type":"object","required":["stop_sequence","delay"],"title":"Delay"},"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__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"},"pysae__api__trips__v4__schemas__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"},"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","description":"Licence plate of the vehicle."},"fleet_number":{"type":"string","title":"Fleet Number","description":"Fleet number the operator identifies the vehicle by."},"status":{"$ref":"#/components/schemas/VehicleStatus","description":"Operating status of the vehicle.","default":"active"},"modified_at":{"type":"string","format":"date-time","title":"Modified At","description":"Moment the vehicle was last changed."},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment","description":"Free-form note the operator keeps on it."},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team the vehicle belongs to. Superseded by `teams`, kept for clients predating multi-team support."},"teams":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Teams","description":"Teams the vehicle belongs to."},"energy_type":{"anyOf":[{"$ref":"#/components/schemas/EnergyType"},{"type":"null"}],"description":"Energy the vehicle runs on."},"vehicle_type":{"anyOf":[{"$ref":"#/components/schemas/VehicleType"},{"type":"null"}],"description":"Kind of vehicle."},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer","description":"Manufacturer of the vehicle."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model of the vehicle."},"capacity":{"anyOf":[{"type":"integer","maximum":999.0,"minimum":0.0},{"type":"null"}],"title":"Capacity","description":"Passengers the vehicle can carry."},"equipment":{"items":{"$ref":"#/components/schemas/VehicleEquipment"},"type":"array","title":"Equipment","description":"On-board equipment reporting for this vehicle.","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","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["limited_reader","driver","admin","external_reader","reader","operator"],"title":"Role Needed","default":["limited_reader","driver","admin","external_reader","reader","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__10":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["technical","admin","operator","reader"],"title":"Role Needed","default":["technical","admin","operator","reader"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__11":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["technical","admin","operator"],"title":"Role Needed","default":["technical","admin","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__12":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["driver","external_reader","admin","operator","reader"],"title":"Role Needed","default":["driver","external_reader","admin","operator","reader"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__13":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["limited_reader","admin","reader","operator"],"title":"Role Needed","default":["limited_reader","admin","reader","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__14":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["limited_reader","technical","driver","admin","external_reader","reader","operator"],"title":"Role Needed","default":["limited_reader","technical","driver","admin","external_reader","reader","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__15":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["driver","admin","reader","operator"],"title":"Role Needed","default":["driver","admin","reader","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__16":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["admin","vehicle"],"title":"Role Needed","default":["admin","vehicle"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__2":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["admin","operator"],"title":"Role Needed","default":["admin","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__3":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["admin"],"title":"Role Needed","default":["admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__4":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["limited_reader","external_reader","admin","operator","reader"],"title":"Role Needed","default":["limited_reader","external_reader","admin","operator","reader"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__5":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["admin","reader","operator"],"title":"Role Needed","default":["admin","reader","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__6":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["limited_reader","technical","admin","external_reader","reader","operator"],"title":"Role Needed","default":["limited_reader","technical","admin","external_reader","reader","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__7":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["driver","admin"],"title":"Role Needed","default":["driver","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__8":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["technical","admin"],"title":"Role Needed","default":["technical","admin"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependencyPayload__9":{"properties":{"role_given":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Given","description":"Role the calling user holds on the group, if any."},"role_needed":{"type":"array","const":["driver","admin","operator"],"title":"Role Needed","default":["driver","admin","operator"]}},"type":"object","required":["role_given"],"title":"RoleDependencyPayload","description":"Context of the RoleDependency error: the values identifying the entities involved in this specific occurrence."},"pysae__common__http__base__RoleDependency__1":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__1","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__10":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__100":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__10","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__101":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__102":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__103":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__11":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__6","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__12":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__13":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__7","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__14":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__15":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__16":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__8","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__17":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__18":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__19":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__6","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__2":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__20":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__21":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__22":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__7","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__23":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__7","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__24":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__7","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__25":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__26":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__27":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__10","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__28":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__10","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__29":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__11","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__3":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__30":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__11","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__31":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__11","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__32":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__33":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__34":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__35":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__36":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__37":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__12","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__38":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__39":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__12","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__4":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__40":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__41":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__42":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__13","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__43":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__44":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__45":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__46":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__47":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__5","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__48":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__49":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__5":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__50":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__51":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__52":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__53":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__14","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__54":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__1","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__55":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__56":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__57":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__58":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__1","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__59":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__6":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__60":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__61":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__62":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__14","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__63":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__64":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__65":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__66":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__67":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__9","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__68":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__7","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__69":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__7":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__70":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__71":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__72":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__1","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__73":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__74":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__75":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__76":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__77":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__78":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__79":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__15","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__8":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__80":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__16","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__81":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__13","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__82":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__83":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__84":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__85":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__86":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__87":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__88":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__89":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__9":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__5","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__90":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__91":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__92":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__93":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__4","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__94":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__95":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__96":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__97":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__98":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__3","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"},"pysae__common__http__base__RoleDependency__99":{"properties":{"code":{"type":"string","const":"INVALID_ROLE","title":"Code","description":"Stable identifier of the error, meant to key the message the client displays."},"details":{"type":"string","const":"The role of the calling user for this group_id is not in the list of allowed roles","title":"Details","description":"English description of the error, for logs and debugging — never displayed to an end user."},"payload":{"$ref":"#/components/schemas/pysae__common__http__base__RoleDependencyPayload__2","description":"Context of this occurrence: the entities the failed call was about."}},"type":"object","required":["code","details","payload"],"title":"RoleDependency","description":"The role of the calling user for this group_id is not in the list of allowed roles"}},"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.dev.pysae.com","description":"dev"}]}