openapi: 3.1.0 info: title: OSRD Editoast description: All HTTP endpoints of Editoast license: name: LGPL url: https://www.gnu.org/licenses/lgpl-3.0.html version: 0.1.0 paths: /authz/grants: post: tags: - authz requestBody: description: List of new authorization to add or to remove (i.e. grants a resource to a person) content: application/json: schema: oneOf: - type: object required: - grant properties: grant: type: array items: $ref: '#/components/schemas/GrantBody' - type: object required: - revoke properties: revoke: type: array items: $ref: '#/components/schemas/RevokeBody' description: '`grant` XOR `revoke` is expected' required: true responses: '201': description: Successful granting '204': description: Successful revoking /authz/groups: get: tags: - authz responses: '200': description: List all the groups content: application/json: schema: type: array items: type: object required: - id - name properties: id: type: integer format: int64 name: type: string /authz/me: get: tags: - authz responses: '200': description: Get the info of the current user content: application/json: schema: type: object required: - id - name - roles properties: id: type: integer format: int64 name: type: string roles: type: array items: $ref: '#/components/schemas/Role' /authz/me/grants: post: tags: - authz requestBody: description: HashMap of resource type with a list of resource id to get the grants for. If a resource doesn't exist, it will be omitted. content: application/json: schema: type: object additionalProperties: type: array items: type: integer format: int64 propertyNames: type: string enum: - infra - rolling_stock required: true responses: '200': description: Get grants info of the current user for the given resources in body content: application/json: schema: type: object additionalProperties: type: array items: type: object required: - id - grant properties: grant: $ref: '#/components/schemas/StandardGrant' id: type: integer format: int64 propertyNames: type: string enum: - infra - rolling_stock /authz/me/groups: get: tags: - authz responses: '200': description: Get the groups of the current user content: application/json: schema: type: array items: type: object required: - id - name properties: id: type: integer format: int64 name: type: string /authz/me/privileges: post: tags: - authz requestBody: description: The resources of which to get the request sender's privileges. content: application/json: schema: type: object additionalProperties: type: array items: type: integer format: int64 propertyNames: type: string enum: - infra - rolling_stock required: true responses: '200': description: The privileges of the user sending the request over each requested resource. The resource is omitted if it does not exist. An empty privileges list is returned if the user has no privileges over it. content: application/json: schema: type: object additionalProperties: type: array items: type: object required: - resource_id - privileges properties: privileges: type: array items: $ref: '#/components/schemas/StandardPrivilege' uniqueItems: true resource_id: type: integer format: int64 propertyNames: type: string enum: - infra - rolling_stock /authz/user/info: post: tags: - authz requestBody: description: A list of user IDs and identities to get information on content: application/json: schema: type: object properties: identities: type: array items: type: string ids: type: array items: type: integer format: int64 required: true responses: '200': description: Get information on a list of users content: application/json: schema: type: array items: type: object required: - id - name - identities - roles - groups properties: groups: type: array items: type: object required: - id - name properties: id: type: integer format: int64 name: type: string uniqueItems: true id: type: integer format: int64 identities: type: array items: type: string name: type: string roles: type: array items: $ref: '#/components/schemas/Role' uniqueItems: true /authz/{resource_type}/{resource_id}: get: tags: - authz parameters: - name: resource_type in: path required: true schema: $ref: '#/components/schemas/ResourceType' - name: resource_id in: path required: true schema: type: integer format: int64 responses: '200': description: Get list of user that have a grant on the resource content: application/json: schema: type: array items: type: object required: - id - name - type - grant properties: grant: $ref: '#/components/schemas/StandardGrant' id: type: integer format: int64 name: type: string type: $ref: '#/components/schemas/SubjectType' /catalog_entries: get: tags: - catalog_entry parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 100 maximum: 100 minimum: 1 responses: '200': description: List of catalog entries content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/CatalogEntry' post: tags: - catalog_entry requestBody: content: application/json: schema: $ref: '#/components/schemas/CatalogEntryForm' required: true responses: '201': description: Catalog entry content: application/json: schema: $ref: '#/components/schemas/CatalogEntry' /catalog_entries/{id}: put: tags: - catalog_entry parameters: - name: id in: path description: A catalog entry ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/CatalogEntryForm' required: true responses: '200': description: Catalog entry content: application/json: schema: $ref: '#/components/schemas/CatalogEntry' '404': description: Catalog entry not found delete: tags: - catalog_entry parameters: - name: id in: path description: A catalog entry ID required: true schema: type: integer format: int64 responses: '204': description: The catalog entry was deleted '404': description: Catalog entry not found /documents: post: tags: - documents summary: Post a new document (content_type by header + binary data) parameters: - name: content_type in: header description: The document's content type required: true schema: type: string requestBody: content: application/octet-stream: schema: type: string required: true responses: '201': description: The document was created content: application/json: schema: $ref: '#/components/schemas/NewDocumentResponse' /documents/{document_key}: get: tags: - documents summary: Returns a document of any type parameters: - name: document_key in: path description: The document's key required: true schema: type: integer format: int64 responses: '200': description: Document content content: application/octet-stream: schema: type: string delete: tags: - documents summary: Delete an existing document parameters: - name: document_key in: path description: The document's key required: true schema: type: integer format: int64 responses: '204': description: The document was deleted /electrical_profile_set: get: tags: - electrical_profiles summary: Retrieve the list of ids and names of electrical profile sets available responses: '200': description: The list of ids and names of electrical profile sets available content: application/json: schema: type: array items: $ref: '#/components/schemas/LightElectricalProfileSet' post: tags: - electrical_profiles summary: import a new electrical profile set parameters: - name: name in: query required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ElectricalProfileSetData' required: true responses: '200': description: The list of ids and names of electrical profile sets available content: application/json: schema: $ref: '#/components/schemas/ElectricalProfileSet' /electrical_profile_set/{electrical_profile_set_id}: get: tags: - electrical_profiles summary: Return a specific set of electrical profiles parameters: - name: electrical_profile_set_id in: path required: true schema: type: integer format: int64 responses: '200': description: The list of electrical profiles in the set content: application/json: schema: $ref: '#/components/schemas/ElectricalProfileSetData' delete: tags: - electrical_profiles summary: Delete an electrical profile set parameters: - name: electrical_profile_set_id in: path required: true schema: type: integer format: int64 responses: '204': description: The electrical profile was deleted successfully /electrical_profile_set/{electrical_profile_set_id}/level_order: get: tags: - electrical_profiles summary: Return the electrical profile value order for this set parameters: - name: electrical_profile_set_id in: path required: true schema: type: integer format: int64 responses: '200': description: A dictionary mapping electrification modes to a list of electrical profiles ordered by decreasing strength content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/LevelValues' propertyNames: type: string example: 1500V: - A - B - C 25000V: - 25000V - 22500V - 20000V /fonts/{font}/{glyph}: get: tags: - fonts summary: This endpoint is used by map libre to retrieve the fonts. They are separated by font and unicode block parameters: - name: font in: path description: Requested font required: true schema: type: string - name: glyph in: path description: Requested unicode block required: true schema: type: string responses: '200': description: Glyphs in PBF format of the font at the requested unicode block '404': description: Font not found /health: get: responses: '200': description: Check if Editoast is running correctly content: text/plain: schema: type: string /icons/{signaling_system}/{file_name}: get: tags: - icons parameters: - name: signaling_system in: path description: Signaling system name required: true schema: type: string - name: file_name in: path description: File name (svg) required: true schema: type: string responses: '200': description: The requested icon /infra: get: tags: - infra summary: Lists all infras along with their current loading state in Core parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 responses: '200': description: All infras, paginated content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/Infra' post: tags: - infra summary: Creates an empty infra description: The infra may be edited by batch later via the `POST /infra/ID` or `POST /infra/ID/railjson` endpoints. requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: The name to give to the new infra additionalProperties: false required: true responses: '201': description: The created infra content: application/json: schema: $ref: '#/components/schemas/Infra' /infra/railjson: post: tags: - infra summary: Import an infra from railjson parameters: - name: name in: query description: The name of the infrastructure. required: true schema: type: string - name: generate_data in: query description: Flag indicating whether to generate data. required: false schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/RailJson' required: true responses: '201': description: The imported infra id content: application/json: schema: type: object required: - infra properties: infra: type: integer format: int64 '404': description: The infra was not found /infra/refresh: post: tags: - infra summary: Refresh infra generated geographic layers parameters: - name: force in: query required: false schema: type: boolean - name: infras in: query description: |- A comma-separated list of infra IDs to refresh If not provided, all available infras will be refreshed. required: false schema: type: array items: type: integer format: int64 minimum: 0 responses: '200': description: '' content: application/json: schema: type: object required: - infra_refreshed properties: infra_refreshed: type: array items: type: integer format: int64 description: The list of infras that were refreshed successfully '404': description: Invalid infra ID query parameters /infra/voltages: get: tags: - infra - rolling_stock summary: Returns the set of voltages for all infras and rolling_stocks modes. responses: '200': description: Voltages list content: application/json: schema: type: array items: type: string example: - 750V - 1500V - 2500.5V '404': description: The infra was not found /infra/{infra_id}: get: tags: - infra summary: Retrieve a specific infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '200': description: The infra content: application/json: schema: $ref: '#/components/schemas/Infra' '404': description: Infra ID not found put: tags: - infra summary: Rename an infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: The new name to give the infra required: true responses: '200': description: The infra has been renamed content: application/json: schema: $ref: '#/components/schemas/Infra' '404': description: Infra ID not found post: tags: - infra summary: Edit the content of an infrastructure description: |- Takes a batch of operations. An operation is a JSON patch document that will be applied to the RailJSON description of the appropriate infra object. The consistency of the patch with the RailJSON schema is checked. If a patch is erroneous, the whole batch is rejected. After editing the object, the generated cartographic layers are invalidated and regenerated. The edition step fails if the regeneration fails. parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/Operation' required: true responses: '200': description: The result of the operations content: application/json: schema: type: array items: $ref: '#/components/schemas/InfraObject' delete: tags: - infra summary: Delete an infra and all entities linked to it. description: |- This operation cannot be undone. So beware. You've been warned. This operation may take a while to complete. parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '204': description: The infra has been deleted '404': description: Infra ID not found /infra/{infra_id}/attached/{track_id}: get: tags: - infra summary: Retrieve all objects attached to a given track parameters: - name: infra_id in: path description: An infra ID required: true schema: type: integer format: int64 - name: track_id in: path description: A track section ID required: true schema: type: string responses: '200': description: All objects attached to the given track (arranged by types) content: application/json: schema: type: object additionalProperties: type: array items: type: string propertyNames: type: string enum: - TrackSection - Signal - SpeedSection - Detector - NeutralSection - Switch - SwitchType - BufferStop - Route - OperationalPoint - Electrification - LevelCrossing /infra/{infra_id}/auto_fixes: get: tags: - infra summary: Retrieve a list of operations to fix infra issues parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '200': description: The list of suggested operations content: application/json: schema: type: array items: $ref: '#/components/schemas/Operation' /infra/{infra_id}/clone: post: tags: - infra summary: Duplicate an infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: name in: query description: The name of the new infra required: true schema: type: string responses: '200': description: The new infra ID content: text/plain: schema: type: integer format: int64 minimum: 0 '404': description: Infra ID not found /infra/{infra_id}/delimited_area: get: tags: - delimited_area summary: Computes all tracks between a set of `entries` locations and a set of `exits` locations description: |- Returns any track between one of the `entries` and one of the `exits`, i.e. any track that can be reached from an entry before reaching an exit. To prevent a missing exit to cause the graph traversal to never stop exploring, the exploration stops when a maximum distance is reached and no exit has been found. parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object required: - track_ranges properties: track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' required: true responses: '200': description: The track ranges between a list entries and exits. content: application/json: schema: type: object required: - track_ranges properties: track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' /infra/{infra_id}/errors: get: tags: - infra summary: A paginated list of errors related to an infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 100 maximum: 100 minimum: 1 - name: level in: query description: Whether the response should include errors or warnings required: false schema: type: string enum: - warnings - errors - all - name: error_type in: query description: The type of error to filter on required: false schema: type: string description: Auto-generated discriminant enum variants enum: - duplicated_group - empty_object - invalid_group - invalid_reference - invalid_route - invalid_switch_ports - missing_route - missing_buffer_stop - node_endpoints_not_unique - object_out_of_path - odd_buffer_stop_location - out_of_range - overlapping_electrifications - overlapping_speed_sections - overlapping_switches - unknown_port_name - unused_port - name: object_id in: query description: Filter errors and warnings related to a given object required: false schema: type: string responses: '200': description: A paginated list of errors content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: type: object required: - information properties: information: $ref: '#/components/schemas/InfraError' /infra/{infra_id}/lines/{line_code}/bbox: get: tags: - infra summary: Returns the BBoxes of a line parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: line_code in: path description: A line code required: true schema: type: integer format: int64 responses: '200': description: The BBox of the line content: application/json: schema: $ref: '#/components/schemas/BoundingBox' /infra/{infra_id}/lock: post: tags: - infra summary: Lock an infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '204': description: The infra was locked successfully '404': description: The infra was not found /infra/{infra_id}/match_operational_points: post: tags: - infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object required: - operational_point_references properties: operational_point_references: type: array items: $ref: '#/components/schemas/OperationalPointReference' required: true responses: '200': description: |2 Take a list of operational point references and return for each of them the operational point that it matches on a given infrastructure. content: application/json: schema: type: object required: - related_operational_points properties: related_operational_points: type: array items: oneOf: - type: 'null' - $ref: '#/components/schemas/RelatedOperationalPoint' /infra/{infra_id}/objects/{object_type}: post: tags: - infra summary: Retrieves specific infra objects parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: object_type in: path required: true schema: $ref: '#/components/schemas/ObjectType' requestBody: content: application/json: schema: type: array items: type: string required: true responses: '200': description: The list of objects content: application/json: schema: type: array items: $ref: '#/components/schemas/InfraObjectWithGeometry' '400': description: Duplicate object ids provided '404': description: Object ID or infra ID invalid /infra/{infra_id}/objects/{object_type}/ids: get: tags: - infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: object_type in: path required: true schema: $ref: '#/components/schemas/ObjectType' responses: '200': description: The list of objects content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: string /infra/{infra_id}/path_properties: post: tags: - pathfinding summary: Compute path properties parameters: - name: infra_id in: path description: The infra id required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/PathPropertiesInput' required: true responses: '200': description: Path properties content: application/json: schema: $ref: '#/components/schemas/PathProperties' /infra/{infra_id}/pathfinding: post: tags: - infra - pathfinding summary: This endpoint search path between starting and ending track locations parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: number in: query required: false schema: type: integer format: int32 minimum: 0 requestBody: content: application/json: schema: $ref: '#/components/schemas/InfraPathfindingInput' required: true responses: '200': description: A list of shortest paths between starting and ending track locations content: application/json: schema: type: array items: $ref: '#/components/schemas/PathfindingOutput' /infra/{infra_id}/pathfinding/blocks: post: tags: - pathfinding summary: Compute a pathfinding parameters: - name: infra_id in: path description: The infra id required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/PathfindingInput' required: true responses: '200': description: Pathfinding Result content: application/json: schema: $ref: '#/components/schemas/PathfindingResult' /infra/{infra_id}/railjson: get: tags: - infra summary: Serialize an infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '200': description: The infra in railjson format content: application/json: schema: $ref: '#/components/schemas/RailJson' '404': description: The infra was not found /infra/{infra_id}/routes/nodes: post: tags: - infra - routes summary: Returns the list of routes crossing the specified nodes, along with the available positions for each of them. parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 requestBody: description: A mapping node_id -> node_state | null content: application/json: schema: type: object additionalProperties: type: - string - 'null' propertyNames: type: string required: true responses: '200': description: A list of route IDs along with available positions for each specified node content: application/json: schema: type: object required: - routes - available_node_positions properties: available_node_positions: type: object description: List of available positions for each node on the corresponding routes additionalProperties: type: array items: type: string uniqueItems: true propertyNames: type: string routes: type: array items: type: string description: List of route ids crossing a selection of nodes /infra/{infra_id}/routes/track_ranges: get: tags: - infra - routes summary: Compute the track ranges through which routes passes. parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: routes in: query description: A list of comma-separated route ids required: true schema: type: string responses: '200': description: Foreach route, either tracks_ranges + switches found on the route, or an error content: application/json: schema: type: array items: oneOf: - allOf: - $ref: '#/components/schemas/RoutePath' description: RoutePath contains N track ranges with the N-1 switches found in-between, in the order they appear on the route - type: object required: - type properties: type: type: string enum: - Computed description: RoutePath contains N track ranges with the N-1 switches found in-between, in the order they appear on the route - type: object required: - type properties: type: type: string enum: - NotFound - type: object required: - type properties: type: type: string enum: - CantComputePath /infra/{infra_id}/routes/{waypoint_type}/{waypoint_id}: get: tags: - infra - routes summary: Retrieve all routes that starting and ending by the given waypoint (detector or buffer stop) parameters: - name: infra_id in: path description: Infra ID required: true schema: type: integer format: int64 - name: waypoint_type in: path description: Type of the waypoint required: true schema: type: string enum: - Detector - BufferStop - name: waypoint_id in: path description: Waypoint ID required: true schema: type: string responses: '200': description: All routes that starting and ending by the given waypoint content: application/json: schema: type: object required: - starting - ending properties: ending: type: array items: type: string starting: type: array items: type: string /infra/{infra_id}/speed_limit_tags: get: tags: - infra summary: Returns the set of speed limit tags for a given infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '200': description: List all speed limit tags content: application/json: schema: type: array items: type: string example: - freight - heavy_load '404': description: The infra was not found /infra/{infra_id}/split_track_section: post: tags: - infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackOffset' required: true responses: '200': description: ID of the trackSections created content: application/json: schema: type: array items: type: string /infra/{infra_id}/switch_types: get: tags: - infra summary: Return the railjson list of switch types parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '200': description: A list of switch types content: application/json: schema: type: array items: $ref: '#/components/schemas/SwitchType' '404': description: The infra was not found /infra/{infra_id}/unlock: post: tags: - infra summary: Unlock an infra parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 responses: '204': description: The infra was unlocked successfully '404': description: The infra was not found /infra/{infra_id}/voltages: get: tags: - infra summary: |- Returns the set of voltages for a given infra and/or rolling_stocks modes. If include_rolling_stocks_modes is true, it returns also rolling_stocks modes. parameters: - name: infra_id in: path description: An existing infra ID required: true schema: type: integer format: int64 - name: include_rolling_stock_modes in: query required: false schema: type: boolean responses: '200': description: Voltages list content: application/json: schema: type: array items: type: string example: - 750V - 1500V - 2500.5V '404': description: The infra was not found /layers/layer/{layer_slug}/mvt/{view_slug}: get: tags: - layers summary: Returns layer view metadata to query tiles parameters: - name: infra in: query required: true schema: type: integer format: int64 - name: layer_slug in: path required: true schema: type: string - name: view_slug in: path required: true schema: type: string responses: '200': description: Successful Response content: application/json: schema: type: object required: - type - name - promoteId - scheme - tiles - attribution - minzoom - maxzoom properties: attribution: type: string maxzoom: type: integer format: int64 example: 15 minimum: 0 minzoom: type: integer format: int64 minimum: 0 name: type: string example: track_sections promoteId: type: object additionalProperties: type: string propertyNames: type: string scheme: type: string example: xyz tiles: type: array items: type: string example: - http://localhost:7070/tile/track_sections/geo/{z}/{x}/{y}/?infra=1 type: type: string /layers/tile/{layer_slug}/{view_slug}/{z}/{x}/{y}: get: tags: - layers summary: Mvt tile from the cache if possible, otherwise gets data from the database and caches it in valkey parameters: - name: infra in: query required: true schema: type: integer format: int64 - name: layer_slug in: path required: true schema: type: string - name: view_slug in: path required: true schema: type: string - name: x in: path required: true schema: type: integer format: int64 minimum: 0 - name: y in: path required: true schema: type: integer format: int64 minimum: 0 - name: z in: path required: true schema: type: integer format: int64 minimum: 0 responses: '200': description: '' content: application/octet-stream: schema: type: string /level_crossing_occupancy: post: tags: - level_crossing summary: Get the occupancy of a set of level crossings for a set of trains requestBody: content: application/json: schema: type: object required: - train_ids - level_crossing_ids - infra_id - timetable_id properties: electrical_profile_set_id: type: - integer - 'null' format: int64 infra_id: type: integer format: int64 level_crossing_ids: type: array items: $ref: '#/components/schemas/Identifier' timetable_id: type: integer format: int64 train_ids: type: array items: type: integer format: int64 required: true responses: '200': description: Occupancy periods of the given level crossings content: application/json: schema: type: object additionalProperties: type: array items: allOf: - oneOf: - type: object title: OccurrenceIdBase required: - train_schedule_id - index - type properties: index: type: integer minimum: 0 train_schedule_id: type: integer format: int64 type: type: string enum: - base - type: object title: OccurrenceIdModified required: - train_schedule_id - index - exception_id - type properties: exception_id: type: integer format: int64 index: type: integer minimum: 0 train_schedule_id: type: integer format: int64 type: type: string enum: - modified - type: object title: OccurrenceIdCreated required: - train_schedule_id - exception_id - type properties: exception_id: type: integer format: int64 train_schedule_id: type: integer format: int64 type: type: string enum: - created description: This ID is used to identify paced train occurrences and exceptions when sending them to the core API for conflict detection. - type: object required: - time_begin - duration properties: duration: type: string example: PT5M time_begin: type: integer format: int64 - type: object required: - direction properties: direction: $ref: '#/components/schemas/Direction' propertyNames: type: string maxLength: 255 minLength: 1 /light_rolling_stock: get: tags: - rolling_stock summary: Paginated list of rolling stock with a lighter response parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 responses: '200': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/LightRollingStockWithLiveries' /light_rolling_stock/name/{rolling_stock_name}: get: tags: - rolling_stock summary: Retrieve a rolling stock's light representation by its name parameters: - name: rolling_stock_name in: path required: true schema: type: string responses: '200': description: The rolling stock with their simplified effort curves content: application/json: schema: $ref: '#/components/schemas/LightRollingStockWithLiveries' /light_rolling_stock/{rolling_stock_id}: get: tags: - rolling_stock summary: Retrieve a rolling stock's light representation by its id parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 responses: '200': description: The rolling stock with their simplified effort curves content: application/json: schema: $ref: '#/components/schemas/LightRollingStockWithLiveries' /macro_nodes: get: tags: - scenarios summary: Get macro node list by scenario id parameters: - name: scenario_id in: query required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 100 maximum: 100 minimum: 1 responses: '200': description: List of macro nodes for the requested scenario content: application/json: schema: $ref: '#/components/schemas/MacroNodeListResponse' post: tags: - scenarios summary: Create macro nodes in batch requestBody: content: application/json: schema: $ref: '#/components/schemas/MacroNodeBatchForm' required: true responses: '201': description: Macro nodes created content: application/json: schema: $ref: '#/components/schemas/MacroNodeBatchResponse' /macro_nodes/{node_id}: get: tags: - scenarios summary: Retrieve a macro node by id parameters: - name: node_id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested Macro node content: application/json: schema: $ref: '#/components/schemas/MacroNodeResponse' put: tags: - scenarios summary: Update a macro node parameters: - name: node_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/MacroNodeForm' required: true responses: '200': description: The updated macro node content: application/json: schema: $ref: '#/components/schemas/MacroNodeResponse' delete: tags: - scenarios summary: Delete a macro node parameters: - name: node_id in: path required: true schema: type: integer format: int64 responses: '204': description: The macro node was deleted successfully /macro_notes: get: tags: - scenarios summary: Return a list of notes for a given scenario parameters: - name: scenario_id in: query required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 100 maximum: 100 minimum: 1 responses: '200': description: List of macro notes for the requested scenario content: application/json: schema: $ref: '#/components/schemas/MacroNoteListResponse' post: tags: - scenarios summary: Create a note in batch requestBody: content: application/json: schema: $ref: '#/components/schemas/MacroNoteBatchForm' required: true responses: '201': description: Macro notes created content: application/json: schema: $ref: '#/components/schemas/MacroNoteBatchResponse' /macro_notes/{note_id}: get: tags: - scenarios summary: Return a specific note parameters: - name: note_id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested macro note content: application/json: schema: $ref: '#/components/schemas/MacroNoteResponse' put: tags: - scenarios summary: Update a note parameters: - name: note_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/MacroNoteForm' required: true responses: '200': description: The updated macro note content: application/json: schema: $ref: '#/components/schemas/MacroNoteResponse' delete: tags: - scenarios summary: Delete a note parameters: - name: note_id in: path required: true schema: type: integer format: int64 responses: '204': description: The macro note was deleted successfully /projects: get: tags: - projects summary: Returns a paginated list of projects parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 - name: ordering in: query required: false schema: type: string enum: - NameAsc - NameDesc - CreationDateAsc - CreationDateDesc - LastModifiedDesc - LastModifiedAsc responses: '200': description: The list of projects content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/ProjectWithStudies' post: tags: - projects summary: Create a new project requestBody: content: application/json: schema: $ref: '#/components/schemas/ProjectCreateForm' required: true responses: '201': description: The created project content: application/json: schema: $ref: '#/components/schemas/ProjectWithStudies' /projects/{project_id}: get: tags: - projects summary: Retrieve a project parameters: - name: project_id in: path description: The id of a project required: true schema: type: integer format: int64 responses: '200': description: The requested project content: application/json: schema: $ref: '#/components/schemas/ProjectWithStudies' delete: tags: - projects summary: Delete a project parameters: - name: project_id in: path description: The id of a project required: true schema: type: integer format: int64 responses: '204': description: The project was deleted successfully patch: tags: - projects summary: Update a project parameters: - name: project_id in: path description: The id of a project required: true schema: type: integer format: int64 requestBody: description: The fields to update content: application/json: schema: $ref: '#/components/schemas/ProjectPatchForm' required: true responses: '200': description: The updated project content: application/json: schema: $ref: '#/components/schemas/ProjectWithStudies' /rolling_stock: post: tags: - rolling_stock summary: Create a rolling stock parameters: - name: locked in: query required: false schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/RollingStockForm' required: true responses: '200': description: The created rolling stock content: application/json: schema: $ref: '#/components/schemas/RollingStock' /rolling_stock/name/{rolling_stock_name}: get: tags: - rolling_stock summary: Get a rolling stock by name parameters: - name: rolling_stock_name in: path required: true schema: type: string responses: '200': description: The requested rolling stock content: application/json: schema: $ref: '#/components/schemas/RollingStockWithLiveries' /rolling_stock/power_restrictions: get: tags: - rolling_stock summary: Returns the set of power restrictions for all rolling_stocks modes. responses: '200': description: Retrieve the power restrictions list content: application/json: schema: type: array items: type: string /rolling_stock/{rolling_stock_id}: get: tags: - rolling_stock summary: Get a rolling stock by Id parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested rolling stock content: application/json: schema: $ref: '#/components/schemas/RollingStockWithLiveries' put: tags: - rolling_stock summary: Modify a rolling stock parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/RollingStockForm' required: true responses: '200': description: The created rolling stock content: application/json: schema: $ref: '#/components/schemas/RollingStockWithLiveries' delete: tags: - rolling_stock summary: Delete a rolling_stock and all entities linked to it parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 - name: force in: query description: force the deletion even if it's used required: false schema: type: boolean responses: '204': description: The rolling stock was deleted successfully '404': description: The requested rolling stock was not found '409': description: The requested rolling stock is used /rolling_stock/{rolling_stock_id}/livery: post: tags: - rolling_stock - rolling_stock_livery summary: Create a rolling stock livery parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/RollingStockLiveryCreateForm' required: true responses: '200': description: The created rolling stock content: application/json: schema: $ref: '#/components/schemas/RollingStockLivery' '404': description: The requested rolling stock was not found /rolling_stock/{rolling_stock_id}/locked: patch: tags: - rolling_stock summary: Update rolling_stock locked field parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/RollingStockLockedUpdateForm' required: true responses: '204': description: No content when successful /rolling_stock/{rolling_stock_id}/usage: get: tags: - rolling_stock summary: List the scenarios (and their respective studies and projects) which use a given rolling stock. parameters: - name: rolling_stock_id in: path required: true schema: type: integer format: int64 responses: '200': description: A list of the associated scenarios and their respective studies and projects. content: application/json: schema: type: array items: $ref: '#/components/schemas/ScenarioReference' '404': description: The requested rolling stock was not found /round_trips: post: tags: - round_trips summary: Upsert a list of round trips / one-way of train schedules requestBody: content: application/json: schema: $ref: '#/components/schemas/RoundTrips' required: true responses: '204': description: Round trips were successfully upserted /round_trips/delete: post: tags: - round_trips summary: Delete a list of round trips / one-way of train schedules requestBody: description: IDs of train schedules to remove from round trips or one-way. content: application/json: schema: type: array items: type: integer format: int64 required: true responses: '204': description: Round trips were successfully deleted /scenarios: get: tags: - scenarios summary: Return a list of scenarios parameters: - name: study_id in: query required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 - name: ordering in: query required: false schema: type: string enum: - NameAsc - NameDesc - CreationDateAsc - CreationDateDesc - LastModifiedDesc - LastModifiedAsc responses: '200': description: A paginated list of scenarios content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/ScenarioWithDetails' '404': description: Project or study doesn't exist post: tags: - scenarios summary: Create a scenario requestBody: content: application/json: schema: $ref: '#/components/schemas/ScenarioCreateForm' required: true responses: '201': description: The created scenario content: application/json: schema: $ref: '#/components/schemas/ScenarioWithDetails' /scenarios/{scenario_id}: get: tags: - scenarios summary: Return a specific scenario parameters: - name: scenario_id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested scenario content: application/json: schema: $ref: '#/components/schemas/ScenarioResponse' delete: tags: - scenarios summary: Delete a scenario parameters: - name: scenario_id in: path required: true schema: type: integer format: int64 responses: '204': description: The scenario was deleted successfully patch: tags: - scenarios summary: Update a scenario parameters: - name: scenario_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/ScenarioPatchForm' required: true responses: '200': description: The scenario was updated successfully content: application/json: schema: $ref: '#/components/schemas/ScenarioWithDetails' /search: post: tags: - search summary: Returns all infra objects of some type according to a hierarchical query. description: |- # Payload { "object": string, "query": query, "dry": boolean, # default: false } Where: - `object` can be any search object declared in `search.yml` - `query` is a JSON document which can be deserialized into a [search::SearchAst]. Check out examples below. # Response The response structure depends on the `object`. # Query language The query itself is defined using a language made up of nested JSON arrays. It will be parsed and transformed into a PostgreSQL WHERE statement. The language consist of a single boolean expression of comparison statements in prefix notation. For example, the query `["like", ["name"], "%ari%"]` will generate a WHERE statement like `WHERE "name" LIKE '%ari%'`. For more information on the query language itself, check out examples below. # Available functions See [search::create_processing_context()]. # A few query examples * The railway station PNO: `["=", ["trigram"], "pno"]` * The railway stations with either "Paris" or "Lyon" (or both) in their name: `["or", ["search", ["name"], "Paris"], ["search", ["name"], "Lyon"]]` * All railway stations with "Paris" in their name but not PNO : `["and", ["search", ["name"], "Paris"], ["not", ["=", ["trigram"], "pno"]]]` See [search::SearchAst] for a more detailed view of the query language. parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchPayload' required: true responses: '200': description: The search results content: application/json: schema: type: array items: $ref: '#/components/schemas/SearchResultItem' /search_journeys: post: tags: - search_journeys summary: Search possible journeys from A to B using train parts from the given timetables. description: |- The trains are not simulated, meaning each stop needs to be dated in order to be taken into account. requestBody: content: application/json: schema: $ref: '#/components/schemas/JourneySearchQuery' required: true responses: '200': description: A list of journey proposals that match the input search query content: application/json: schema: $ref: '#/components/schemas/JourneyProposals' /search_journeys/search_environment: get: tags: - search_journey_environment responses: '200': description: The most recent search journey environment content: application/json: schema: $ref: '#/components/schemas/SearchJourneyEnvironmentResponse' '204': description: No search environment exists /similar_trains: post: tags: - similar_trains - stdcm - sncf requestBody: content: application/json: schema: type: object required: - rolling_stock - waypoints properties: rolling_stock: type: object properties: name: type: - string - 'null' speed_limit_tag: type: - string - 'null' waypoints: type: array items: $ref: '#/components/schemas/SimilarTrainWaypoint' required: true responses: '200': description: A combination of reference train identifiers similar to the provided train content: application/json: schema: type: object required: - similar_trains properties: similar_trains: type: array items: type: object required: - begin - end properties: begin: type: string end: type: string train: oneOf: - type: 'null' - type: object required: - train_name - start_time properties: start_time: type: string format: date-time train_name: type: string description: |- `train` is `None` if no similar train was found for the segment; otherwise, it is `Some`. /sprites/signaling_systems: get: tags: - sprites summary: This endpoint returns the list of supported signaling systems responses: '200': description: List of supported signaling systems content: application/json: schema: type: array items: type: string example: - BAL - TVM300 /sprites/{signaling_system}/{file_name}: get: tags: - sprites summary: This endpoint is used by map libre to retrieve the atlas of each signaling system parameters: - name: signaling_system in: path description: Signaling system name required: true schema: type: string - name: file_name in: path description: File name (json, png or svg) required: true schema: type: string responses: '200': description: Atlas image of config '404': description: Signaling system not found /stdcm/debug_data/{trace_id}: get: tags: - stdcm parameters: - name: trace_id in: path description: OpenTelemetry trace ID of the STDCM request required: true schema: type: string responses: '200': description: '' content: application/json: schema: type: object properties: failure: oneOf: - type: 'null' - $ref: '#/components/schemas/SimDebugFailureReport' simulation_data: oneOf: - type: 'null' - $ref: '#/components/schemas/SimDebugData' /stdcm/search_environment: get: tags: - stdcm_search_environment responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/StdcmSearchEnvironmentResponse' '204': description: No search environment was created post: tags: - stdcm_search_environment requestBody: content: application/json: schema: $ref: '#/components/schemas/StdcmSearchEnvironmentCreateForm' required: true responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/StdcmSearchEnvironment' /stdcm/search_environment/list: get: tags: - stdcm_search_environment parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 responses: '200': description: The paginated list of all existing stdcm search environments content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/StdcmSearchEnvironmentResponse' /stdcm/search_environment/{env_id}: delete: tags: - stdcm_search_environment parameters: - name: env_id in: path description: An stdcm search environment ID required: true schema: type: integer format: int64 responses: '204': description: The stdcm search environment was deleted successfully /studies: get: tags: - studies summary: Return a list of studies parameters: - name: project_id in: query required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 - name: ordering in: query required: false schema: type: string enum: - NameAsc - NameDesc - CreationDateAsc - CreationDateDesc - LastModifiedDesc - LastModifiedAsc responses: '200': description: The list of studies content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/StudyWithScenarios' post: tags: - studies summary: Create a new study requestBody: content: application/json: schema: $ref: '#/components/schemas/StudyCreateForm' required: true responses: '201': description: The created study content: application/json: schema: $ref: '#/components/schemas/StudyWithScenarios' /studies/{study_id}: get: tags: - studies summary: Return a specific study parameters: - name: study_id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested study content: application/json: schema: $ref: '#/components/schemas/StudyResponse' delete: tags: - studies summary: Delete a study parameters: - name: study_id in: path required: true schema: type: integer format: int64 responses: '204': description: The study was deleted successfully patch: tags: - studies summary: Update a study parameters: - name: study_id in: path required: true schema: type: integer format: int64 requestBody: description: The fields to update content: application/json: schema: $ref: '#/components/schemas/StudyPatchForm' required: true responses: '200': description: The updated study content: application/json: schema: $ref: '#/components/schemas/StudyWithScenarios' /sub_category: get: tags: - sub_categories parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 responses: '200': description: The list of sub categories content: application/json: schema: $ref: '#/components/schemas/SubCategoryPage' post: tags: - sub_categories requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/SubCategory' required: true responses: '200': description: Create sub categories content: application/json: schema: type: array items: $ref: '#/components/schemas/SubCategory' /sub_category/{code}: delete: tags: - sub_categories parameters: - name: code in: path required: true schema: type: string responses: '204': description: Delete a sub category /temporary_speed_limit_group: post: tags: - temporary_speed_limits requestBody: content: application/json: schema: type: object required: - speed_limit_group_name - speed_limits properties: speed_limit_group_name: type: string speed_limits: type: array items: type: object required: - start_date_time - end_date_time - track_ranges - speed_limit - obj_id properties: end_date_time: type: string format: date-time obj_id: type: string speed_limit: type: number format: double start_date_time: type: string format: date-time track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' required: true responses: '201': description: The id of the created temporary speed limit group. content: application/json: schema: type: object required: - group_id properties: group_id: type: integer format: int64 /timetable: post: tags: - timetable summary: Create a timetable requestBody: content: application/json: schema: $ref: '#/components/schemas/TimetableForm' required: true responses: '201': description: Timetable with train schedule ids content: application/json: schema: $ref: '#/components/schemas/TimetableResult' /timetable/{id}: delete: tags: - timetable summary: Delete a timetable parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 responses: '204': description: No content '404': description: Timetable not found /timetable/{id}/conflicts: get: tags: - timetable summary: Retrieve the list of conflicts of the timetable description: |- The following trains are **excluded** from the result: - trains for which the simulation fails - trains for which the simulation does not respect schedule times parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 - name: infra_id in: query required: true schema: type: integer format: int64 - name: electrical_profile_set_id in: query required: false schema: type: integer format: int64 responses: '200': description: List of conflicts content: application/json: schema: type: array items: $ref: '#/components/schemas/Conflict' /timetable/{id}/path_steps/local_track_names: post: tags: - timetable summary: |- Retrieve list of local track names for each path step of each train schedule that match the given operational point references list description: |- TODO: this endpoint uses a HashMap for both its request and response, instead of the ordered list convention used by our other endpoints. This is an intentional experiment and depending on whether this proves easier to work with on the frontend and in editoast, we'll either migrate the other endpoints to this format for consistency or change back the current one to the previous convention. parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 requestBody: description: The list of operational point references to match content: application/json: schema: type: object required: - operational_point_references - infra_id properties: infra_id: type: integer format: int64 operational_point_references: type: object description: A list of key/operational point reference pairs for which local track names should be retrieved from the timetable train schedules paths. The key is an arbitrary string chosen by the client, that will be used in the response to return the corresponding local track names set. additionalProperties: $ref: '#/components/schemas/OperationalPointReference' propertyNames: type: string minLength: 1 required: true responses: '200': description: For each requested operational point reference, returns under its client-provided key the set of local track names found in the timetable's train schedules path step inputs content: application/json: schema: type: object additionalProperties: type: array items: type: string uniqueItems: true propertyNames: type: string /timetable/{id}/requirements: get: tags: - timetable summary: Retrieve the list of requirements of the timetable (invalid trains are ignored) parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 200 maximum: 200 minimum: 1 - name: infra_id in: query required: true schema: type: integer format: int64 - name: electrical_profile_set_id in: query required: false schema: type: integer format: int64 responses: '200': description: The paginated list of timetable requirements content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/CoreTrainRequirementsById' /timetable/{id}/round_trips: get: tags: - timetable - round_trips summary: Paginated list of round trips / one-way of train schedules parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 1000 maximum: 1000 minimum: 1 responses: '200': description: The paginated list of round trips / one-ways content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: $ref: '#/components/schemas/RoundTrips' description: Paginated list of round trips / one-way /timetable/{id}/stdcm: post: tags: - stdcm summary: This function computes a STDCM and returns the result. description: |- It first checks user authorization, then retrieves timetable, infrastructure, train schedules, and rolling stock data, and runs train simulations. The result contains the simulation output based on the train schedules and infrastructure provided. parameters: - name: id in: path description: timetable_id required: true schema: type: integer format: int64 - name: infra in: query description: The infra id required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object description: An STDCM request required: - steps - comfort - consist_schedule properties: allowed_track_sections: type: array items: type: string description: Set of authorized track section ids, empty means no restriction uniqueItems: true comfort: $ref: '#/components/schemas/Comfort' consist_schedule: $ref: '#/components/schemas/ConsistSchedule' electrical_profile_set_id: type: - integer - 'null' format: int64 margin: type: - string - 'null' description: Can be a percentage `X%`, a time in minutes per 100 kilometer `Xmin/100km` example: - 5% - 2min/100km maximum_departure_delay: type: - integer - 'null' format: int64 description: |- By how long we can shift the departure time in milliseconds Deprecated, first step data should be used instead minimum: 0 maximum_run_time: type: - integer - 'null' format: int64 description: |- Specifies how long the total run time can be in milliseconds Deprecated, first step data should be used instead minimum: 0 start_time: type: - string - 'null' format: date-time description: Deprecated, first step arrival time should be used instead steps: type: array items: $ref: '#/components/schemas/PathfindingItem' temporary_speed_limit_group_id: type: - integer - 'null' format: int64 time_gap_after: type: integer format: int64 description: |- Margin after the train passage in milliseconds Enforces that the path used by the train should be free and available at least that many milliseconds after its passage. minimum: 0 time_gap_before: type: integer format: int64 description: |- Margin before the train passage in seconds Enforces that the path used by the train should be free and available at least that many milliseconds before its passage. minimum: 0 work_schedule_group_id: type: - integer - 'null' format: int64 required: true responses: '200': description: The simulation result content: application/json: schema: oneOf: - type: object required: - data - event properties: data: $ref: '#/components/schemas/StdcmProgressionEvent' event: type: string enum: - ongoing - type: object required: - data - event properties: data: $ref: '#/components/schemas/StdcmResponse' event: type: string enum: - completed /timetable/{id}/train_schedule_exception: post: tags: - train_schedule_exceptions summary: Create a train schedule exception parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object required: - train_schedule_id - disabled - change_groups properties: change_groups: $ref: '#/components/schemas/TrainScheduleExceptionChangeGroups' disabled: type: boolean occurrence_index: type: - integer - 'null' format: int64 train_schedule_id: type: integer format: int64 required: true responses: '200': description: The train schedule exception has been created content: application/json: schema: $ref: '#/components/schemas/TrainScheduleException' /timetable/{id}/train_schedule_sets: get: tags: - timetable - train_schedule_set summary: Retrieve the list of train schedule sets linked to a timetable parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 responses: '200': description: list of train_schedule_sets linked to a timetable content: application/json: schema: type: array items: type: object required: - id - description - published - timetable_type properties: catalog_entry_id: type: - integer - 'null' format: int64 description: type: string id: type: integer format: int64 name: type: - string - 'null' published: type: boolean timetable_type: $ref: '#/components/schemas/TimetableType' post: tags: - timetable - train_schedule_set summary: |- Set links between a timetable and train schedule sets If a link already exists, it is ignored If a link exists and is not in the new list, it is removed parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object required: - train_schedule_set_ids properties: train_schedule_set_ids: type: array items: type: integer format: int64 uniqueItems: true required: true responses: '204': description: The train schedule set has been linked to the timetable /timetable/{id}/train_schedules: get: tags: - timetable summary: Return a specific timetable with its associated paced trains parameters: - name: id in: path description: A timetable ID required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 200 maximum: 200 minimum: 1 responses: '200': description: Timetable with train schedule ids content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/TrainScheduleResponse' '404': description: Timetable not found /towed_rolling_stock: get: tags: - rolling_stock parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 50 maximum: 50 minimum: 1 responses: '200': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/TowedRollingStock' post: tags: - rolling_stock summary: Create a towed rolling stock parameters: - name: locked in: query required: false schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/TowedRollingStockForm' required: true responses: '200': description: The created towed rolling stock content: application/json: schema: $ref: '#/components/schemas/TowedRollingStock' /towed_rolling_stock/{towed_rolling_stock_id}: get: tags: - rolling_stock parameters: - name: towed_rolling_stock_id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested towed rolling stock content: application/json: schema: $ref: '#/components/schemas/TowedRollingStock' put: tags: - rolling_stock parameters: - name: towed_rolling_stock_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TowedRollingStockForm' required: true responses: '200': description: The modified towed rolling stock content: application/json: schema: $ref: '#/components/schemas/TowedRollingStock' /towed_rolling_stock/{towed_rolling_stock_id}/locked: patch: tags: - rolling_stock parameters: - name: towed_rolling_stock_id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TowedRollingStockLockedForm' required: true responses: '204': description: No content when successful /train_schedule_exception/{id}: put: tags: - train_schedule_exceptions summary: Update a train schedule exception parameters: - name: id in: path description: An exception ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object required: - train_schedule_id - disabled - change_groups properties: change_groups: $ref: '#/components/schemas/TrainScheduleExceptionChangeGroups' disabled: type: boolean occurrence_index: type: - integer - 'null' format: int64 train_schedule_id: type: integer format: int64 required: true responses: '204': description: The train schedule exception has been updated /train_schedule_exceptions/delete: post: tags: - train_schedule_exceptions summary: Delete train schedule exceptions requestBody: description: A set of train schedule exception IDs content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: integer format: int64 uniqueItems: true required: true responses: '204': description: The train schedule exception was deleted successfully /train_schedule_sets: get: tags: - train_schedule_set parameters: - name: catalog_entry_id in: query required: false schema: type: integer format: int64 - name: published in: query required: false schema: type: boolean - name: timetable_type in: query required: false schema: $ref: '#/components/schemas/TimetableType' responses: '200': description: list of train schedule sets content: application/json: schema: type: array items: allOf: - $ref: '#/components/schemas/TrainScheduleSet' - type: object required: - train_schedule_count properties: train_schedule_count: type: integer format: int64 minimum: 0 post: tags: - train_schedule_set requestBody: content: application/json: schema: $ref: '#/components/schemas/TrainScheduleSetForm' required: true responses: '201': description: Train schedule set content: application/json: schema: $ref: '#/components/schemas/TrainScheduleSetResponse' /train_schedule_sets/{id}: get: tags: - train_schedule_set parameters: - name: id in: path description: A train schedule set ID required: true schema: type: integer format: int64 responses: '200': description: Train schedule set content: application/json: schema: $ref: '#/components/schemas/TrainScheduleSetResponse' '404': description: Train schedule set not found put: tags: - train_schedule_set parameters: - name: id in: path description: A train schedule set ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TrainScheduleSetUpdateForm' required: true responses: '200': description: Train schedule set content: application/json: schema: $ref: '#/components/schemas/TrainScheduleSetResponse' '404': description: Train schedule set not found delete: tags: - train_schedule_set parameters: - name: id in: path description: A train schedule set ID required: true schema: type: integer format: int64 responses: '204': description: the train schedule set is deleted '404': description: Train schedule set not found /train_schedule_sets/{id}/train_schedules: get: tags: - train_schedule_set - train_schedule summary: List train schedules for a train schedule set parameters: - name: id in: path description: A train schedule set ID required: true schema: type: integer format: int64 responses: '200': description: The train schedules content: application/json: schema: type: array items: $ref: '#/components/schemas/TrainScheduleResponse' '404': description: Train schedule set not found post: tags: - train_schedule_set - train_schedule summary: Create train schedules by batch parameters: - name: id in: path description: A train schedule set ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/TrainSchedule' required: true responses: '201': description: The created train schedules content: application/json: schema: type: array items: $ref: '#/components/schemas/TrainScheduleResponse' /train_schedules: delete: tags: - timetable - train_schedule summary: Delete a train schedule requestBody: content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: integer format: int64 uniqueItems: true required: true responses: '204': description: All train schedules have been deleted /train_schedules/move: patch: tags: - train_schedule requestBody: content: application/json: schema: type: object required: - train_schedule_ids - train_schedule_set_id properties: train_schedule_ids: type: array items: type: integer format: int64 train_schedule_set_id: type: integer format: int64 required: true responses: '204': description: The train schedule set is updated with the train schedules /train_schedules/occupancy_blocks: post: tags: - train_schedule summary: |- ## Important: The following train schedules are **excluded** from the result: - train schedules for which pathfinding fails - train schedules for which the simulation fails - train schedules for which the simulation does not respect schedule times requestBody: content: application/json: schema: $ref: '#/components/schemas/OccupancyBlockForm' required: true responses: '200': description: '' content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/OccupancyBlocksTrainScheduleResult' propertyNames: type: integer format: int64 /train_schedules/project_path: post: tags: - train_schedule summary: Projects the space-time curves and paths of a number of train schedules onto a given path. description: |- - Returns 404 if the infra or any of the train schedules are not found - Returns 200 with a hashmap of train_id to ProjectPathTrainResult ## Important: - The main train projected is the model train schedule without exceptions. - If there are exceptions defined for the train schedule that have a different projection than the main train, they are included in the `exceptions` field of the result. - The following train schedules are **excluded** from the result: - train schedules for which pathfinding fails - train schedules for which the simulation fails - Trains that have a simulation but that does not honor their schedule, use their schedule with straight lines between the known points. requestBody: content: application/json: schema: $ref: '#/components/schemas/ProjectPathForm' required: true responses: '200': description: Project Path Output content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/ProjectPathTrainScheduleResult' propertyNames: type: integer format: int64 /train_schedules/project_path_op: post: tags: - train_schedule requestBody: content: application/json: schema: type: object required: - infra_id - timetable_id - train_ids - operational_points_refs - operational_points_distances - use_simulation properties: electrical_profile_set_id: type: - integer - 'null' format: int64 infra_id: type: integer format: int64 operational_points_distances: type: array items: type: integer format: int64 minimum: 0 description: Distances between operational points in mm operational_points_refs: type: array items: oneOf: - type: object title: OperationalPointReferenceId required: - operational_point - type properties: operational_point: oneOf: - type: string maxLength: 255 minLength: 1 description: The object id of an operational point type: type: string enum: - id - type: object title: OperationalPointReferenceTrigram required: - trigram - type properties: secondary_code: oneOf: - type: 'null' - type: string minLength: 1 description: An optional secondary code to identify a more specific location trigram: oneOf: - type: string minLength: 1 description: The operational point trigram type: type: string enum: - trigram - type: object title: OperationalPointReferenceUic required: - uic - type properties: secondary_code: oneOf: - type: 'null' - type: string minLength: 1 description: An optional secondary code to identify a more specific location type: type: string enum: - uic uic: type: integer format: int32 description: The [UIC](https://en.wikipedia.org/wiki/List_of_UIC_country_codes) code of an operational point minimum: 0 timetable_id: type: integer format: int64 train_ids: type: array items: type: integer format: int64 uniqueItems: true use_simulation: type: boolean required: true responses: '200': description: Project train schedules on a list of operational points. content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/ProjectPathTrainScheduleResult' propertyNames: type: integer format: int64 /train_schedules/simulation_summary: post: tags: - train_schedule summary: |- Associate each train schedule id with its simulation summaries response If the simulation fails, it associates the reason: pathfinding failed or running time failed requestBody: content: application/json: schema: type: object required: - infra_id - timetable_id - ids properties: electrical_profile_set_id: type: - integer - 'null' format: int64 ids: type: array items: type: integer format: int64 uniqueItems: true infra_id: type: integer format: int64 timetable_id: type: integer format: int64 required: true responses: '200': description: Associate each train schedule id with its simulation summaries content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/TrainScheduleSimulationSummaryResult' propertyNames: type: integer format: int64 /train_schedules/track_occupancy: post: tags: - train_schedule requestBody: content: application/json: schema: type: object required: - train_schedule_ids - operational_point_reference - infra_id - timetable_id - use_simulation properties: electrical_profile_set_id: type: - integer - 'null' format: int64 infra_id: type: integer format: int64 operational_point_reference: $ref: '#/components/schemas/OperationalPointReference' timetable_id: type: integer format: int64 train_schedule_ids: type: array items: type: integer format: int64 use_simulation: type: boolean required: true responses: '200': description: Track section occupancy periods for train schedules content: application/json: schema: type: array items: type: object required: - trains properties: local_track_name: oneOf: - type: 'null' - type: string minLength: 1 description: Local track name. Unset if trains occupy the operational point but the specific track is unknown. trains: type: array items: allOf: - oneOf: - type: object title: OccurrenceIdBase required: - train_schedule_id - index - type properties: index: type: integer minimum: 0 train_schedule_id: type: integer format: int64 type: type: string enum: - base - type: object title: OccurrenceIdModified required: - train_schedule_id - index - exception_id - type properties: exception_id: type: integer format: int64 index: type: integer minimum: 0 train_schedule_id: type: integer format: int64 type: type: string enum: - modified - type: object title: OccurrenceIdCreated required: - train_schedule_id - exception_id - type properties: exception_id: type: integer format: int64 train_schedule_id: type: integer format: int64 type: type: string enum: - created description: This ID is used to identify paced train occurrences and exceptions when sending them to the core API for conflict detection. - type: object required: - time_begin - duration properties: duration: type: string example: PT5M time_begin: type: integer format: int64 - type: object required: - path_item_relative_location properties: path_item_relative_location: oneOf: - type: object title: PathItemRelativeLocationExactPathItem required: - path_item_id - type properties: path_item_id: $ref: '#/components/schemas/NonBlankString' description: Path item ID, when the operational point matches an item in the input path type: type: string enum: - exact_path_item - type: object title: PathItemRelativeLocationBetweenPathItems required: - previous_path_item_id - following_path_item_id - type properties: following_path_item_id: $ref: '#/components/schemas/NonBlankString' description: Following path item ID, when the operational point is not one of the input path items previous_path_item_id: $ref: '#/components/schemas/NonBlankString' description: Previous path item ID, when the operational point is not one of the input path items type: type: string enum: - between_path_items description: |- Position of an operational point on a path, relative to the input path items. If the OP matches an input path item, it is located using this path item's ID, else, if the path just passes by the OP, it is located using its previous and following path items IDs /train_schedules/{id}: get: tags: - timetable - train_schedule summary: Get a train schedule by its ID parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: The requested train schedule content: application/json: schema: $ref: '#/components/schemas/TrainScheduleResponse' put: tags: - timetable - train_schedule summary: Update a paced train parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TrainSchedule' required: true responses: '204': description: The paced train has been updated /train_schedules/{id}/etcs_braking_curves: get: tags: - train_schedule - etcs_braking_curves summary: Retrieve the etcs braking curves of an etcs train on etcs portions of the path parameters: - name: id in: path required: true schema: type: integer format: int64 - name: infra_id in: query required: true schema: type: integer format: int64 - name: electrical_profile_set_id in: query required: false schema: type: integer format: int64 - name: exception_id in: query required: false schema: type: integer format: int64 responses: '200': description: ETCS Braking Curves Output content: application/json: schema: $ref: '#/components/schemas/CoreETCSBrakingCurvesResponse' /train_schedules/{id}/path: get: tags: - train_schedule - pathfinding summary: Get a path from a train schedule given an infrastructure id and a train schedule id parameters: - name: id in: path required: true schema: type: integer format: int64 - name: infra_id in: query required: true schema: type: integer format: int64 - name: exception_id in: query required: false schema: type: integer format: int64 - name: begin_index in: query description: Index of the first path item of the portion to include. Defaults to the path’s first item. required: false schema: type: integer minimum: 0 - name: end_index in: query description: Index of the last path item of the portion to include. Defaults to the path’s last item. required: false schema: type: integer minimum: 0 responses: '200': description: The path content: application/json: schema: $ref: '#/components/schemas/PathfindingResult' '400': description: Invalid path portion queried '404': description: Infrastructure or Train schedule not found /train_schedules/{id}/simulation: get: tags: - train_schedule summary: Retrieve the space, speed and time curve of a given train parameters: - name: id in: path required: true schema: type: integer format: int64 - name: infra_id in: query required: true schema: type: integer format: int64 - name: electrical_profile_set_id in: query required: false schema: type: integer format: int64 - name: exception_id in: query required: false schema: type: integer format: int64 responses: '200': description: Simulation Output content: application/json: schema: $ref: '#/components/schemas/SimulationResponse' /version: get: responses: '200': description: Return the service version content: application/json: schema: $ref: '#/components/schemas/Version' /work_schedules: post: tags: - work_schedules requestBody: content: application/json: schema: type: object description: This structure is used by the post endpoint to create a work schedule required: - work_schedule_group_name - work_schedules properties: work_schedule_group_name: type: string work_schedules: type: array items: $ref: '#/components/schemas/WorkScheduleItemForm' required: true responses: '201': description: The id of the created work schedule group content: application/json: schema: type: object required: - work_schedule_group_id properties: work_schedule_group_id: type: integer format: int64 /work_schedules/group: get: tags: - work_schedules responses: '200': description: The existing work schedule group ids content: application/json: schema: type: array items: type: integer format: int64 post: tags: - work_schedules requestBody: content: application/json: schema: type: object properties: work_schedule_group_name: type: - string - 'null' required: true responses: '200': description: The id of the created work schedule group content: application/json: schema: type: object required: - work_schedule_group_id properties: work_schedule_group_id: type: integer format: int64 /work_schedules/group/{id}: get: tags: - work_schedules parameters: - name: page in: query required: false schema: type: integer format: int64 default: 1 minimum: 1 - name: page_size in: query required: false schema: type: integer format: int64 default: 100 maximum: 100 minimum: 1 - name: id in: path description: A work schedule group ID required: true schema: type: integer format: int64 - name: ordering in: query required: false schema: type: string enum: - NameAsc - NameDesc - CreationDateAsc - CreationDateDesc - LastModifiedDesc - LastModifiedAsc responses: '200': description: The work schedules in the group content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/WorkSchedule' '404': description: Work schedule group not found put: tags: - work_schedules parameters: - name: id in: path description: A work schedule group ID required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/WorkScheduleItemForm' required: true responses: '200': description: The work schedules have been created content: application/json: schema: type: array items: $ref: '#/components/schemas/WorkSchedule' '404': description: Work schedule group not found delete: tags: - work_schedules parameters: - name: id in: path description: A work schedule group ID required: true schema: type: integer format: int64 responses: '204': description: The work schedule group has been deleted '404': description: The work schedule group does not exist /work_schedules/project_path: post: tags: - work_schedules requestBody: content: application/json: schema: type: object required: - work_schedule_group_id - path_track_ranges properties: path_track_ranges: type: array items: $ref: '#/components/schemas/CoreTrackRange' work_schedule_group_id: type: integer format: int64 required: true responses: '200': description: Returns a list of work schedules whose track ranges intersect the given path content: application/json: schema: type: array items: type: object description: Represents the projection of a work schedule on a path. required: - type - start_date_time - end_date_time - path_position_ranges properties: end_date_time: type: string format: date-time description: The date and time when the work schedule ends. path_position_ranges: type: array items: $ref: '#/components/schemas/Intersection' description: |- a list of intervals `(a, b)` that represent the projections of the work schedule track ranges: - `a` is the distance from the beginning of the path to the beginning of the track range - `b` is the distance from the beginning of the path to the end of the track range start_date_time: type: string format: date-time description: The date and time when the work schedule takes effect. type: oneOf: - type: string enum: - CATENARY - TRACK description: The type of the work schedule. /worker_load: post: tags: - worker summary: Ensure a worker for the given infra (and stdcm timetable) is ready requestBody: content: application/json: schema: type: object required: - infra_id properties: infra_id: type: integer format: int64 description: The infra id of the worker to load timetable_id: type: - integer - 'null' format: int64 description: The timetable id to load, if any required: true responses: '200': description: The worker status content: application/json: schema: $ref: '#/components/schemas/WorkerStatus' '404': description: The timetable was not found components: schemas: AddOperation: type: object description: JSON Patch 'add' operation representation required: - path - value properties: path: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed. value: description: Value to add to the target location. ApplicableDirections: type: string enum: - START_TO_STOP - STOP_TO_START - BOTH ApplicableDirectionsTrackRange: type: object required: - track - begin - end - applicable_directions properties: applicable_directions: $ref: '#/components/schemas/ApplicableDirections' begin: type: number format: double end: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false BoundingBox: type: object description: A bounding box required: - min_lon - min_lat - max_lon - max_lat properties: max_lat: type: number format: double max_lon: type: number format: double min_lat: type: number format: double min_lon: type: number format: double BufferStop: type: object required: - id - track - position properties: extensions: $ref: '#/components/schemas/BufferStopExtension' id: type: string maxLength: 255 minLength: 1 position: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false BufferStopExtension: type: object properties: sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/BufferStopSncfExtension' additionalProperties: false BufferStopSncfExtension: type: object required: - kp properties: kp: type: string additionalProperties: false CatalogEntry: type: object required: - id properties: id: type: integer format: int64 name: type: - string - 'null' CatalogEntryForm: type: object properties: name: type: - string - 'null' Comfort: type: string enum: - STANDARD - AIR_CONDITIONING - HEATING ConditionalEffortCurve: type: object required: - cond - curve properties: cond: $ref: '#/components/schemas/EffortCurveConditions' curve: $ref: '#/components/schemas/EffortCurve' additionalProperties: false Conflict: type: object required: - train_ids - work_schedule_ids - start_time - duration - conflict_type - requirements properties: conflict_type: $ref: '#/components/schemas/CoreConflictType' description: Type of the conflict duration: type: integer format: int64 description: Duration of the conflict in ms. minimum: 0 requirements: type: array items: $ref: '#/components/schemas/CoreConflictRequirement' description: List of requirements causing the conflict start_time: type: integer format: int64 description: |- Start of the conflict time range: elapsed ms since an implicit 'request base time'. This is the *union* of all the conflicting time ranges. The implicit 'request base time' is the same as the train schedules' `start_time` frame in this timetable. Example: `1970-01-01T00:00:00Z` for calendar timetables; the timetable start for hourly timetables. train_ids: type: array items: oneOf: - type: object title: OccurrenceIdBase required: - train_schedule_id - index - type properties: index: type: integer minimum: 0 train_schedule_id: type: integer format: int64 type: type: string enum: - base - type: object title: OccurrenceIdModified required: - train_schedule_id - index - exception_id - type properties: exception_id: type: integer format: int64 index: type: integer minimum: 0 train_schedule_id: type: integer format: int64 type: type: string enum: - modified - type: object title: OccurrenceIdCreated required: - train_schedule_id - exception_id - type properties: exception_id: type: integer format: int64 train_schedule_id: type: integer format: int64 type: type: string enum: - created description: This ID is used to identify paced train occurrences and exceptions when sending them to the core API for conflict detection. description: List of trains involved in the conflict. work_schedule_ids: type: array items: type: integer format: int64 description: List of work schedule ids involved in the conflict ConsistConfiguration: type: object required: - rolling_stock_id properties: loading_gauge_type: oneOf: - type: 'null' - $ref: '#/components/schemas/LoadingGaugeType' max_speed: type: - number - 'null' format: double description: Velocity in m·s⁻¹ rolling_stock_id: type: integer format: int64 speed_limit_tag: type: - string - 'null' description: Train categories for speed limits total_length: type: - number - 'null' format: double description: Length in m total_mass: type: - number - 'null' format: double description: Mass in kg towed_rolling_stock_id: type: - integer - 'null' format: int64 ConsistSchedule: type: object required: - boundaries - values properties: boundaries: type: array items: type: integer minimum: 0 description: |- Indexes of steps where consist change occur It should not contain 0 and len(steps) and should be increasing values: type: array items: $ref: '#/components/schemas/ConsistConfiguration' description: |- Consist configuration for each segment It should contain one more element than boundaries ConstraintDistributionChangeGroup: type: object required: - value properties: value: $ref: '#/components/schemas/Distribution' CopyOperation: type: object description: JSON Patch 'copy' operation representation required: - from - path properties: from: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location to copy value from. path: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed. CoreConflictRequirement: type: object description: |- Unmet requirement causing a conflict. The start time and duration describe the conflicting time span (not the full requirement's time span). required: - zone - start_time - duration properties: duration: type: integer format: int64 description: Duration of the time range in ms (difference between the latest end time and the earliest start_time for any zone use in this conflict). minimum: 0 start_time: type: integer format: int64 description: |- Start of the time range during which the zone is contested: elapsed ms since the implicit 'request base time'. Earliest start time for any zone use. The implicit 'request base time' is the same over the whole request (`trains_requirements` and `work_schedules`) and response. Example: `1970-01-01T00:00:00Z` for calendar timetables; the timetable start for hourly timetables. zone: type: string CoreConflictType: type: string enum: - Spacing - Routing CoreETCSBrakingCurvesResponse: type: object required: - slowdowns - stops - conflicts properties: conflicts: type: array items: $ref: '#/components/schemas/CoreETCSConflictCurves' description: |- List of ETCS conflict braking curves associated to the train schedule's ETCS signals. For each non-route delimiter (F) signal, the associated spacing conflict curve is returned. For each route delimiter (Nf) signal, 2 sets of curves are returned, associated to the corresponding potential spacing or routing conflict. slowdowns: type: array items: $ref: '#/components/schemas/CoreETCSCurves' description: List of ETCS braking curves associated to the train schedule's ETCS slowdowns stops: type: array items: $ref: '#/components/schemas/CoreETCSCurves' description: List of ETCS braking curves associated to the train schedule's ETCS stops CoreETCSConflictCurves: type: object required: - indication - permitted_speed - guidance - conflict_type properties: conflict_type: $ref: '#/components/schemas/CoreConflictType' guidance: $ref: '#/components/schemas/CoreSimpleEnvelope' indication: $ref: '#/components/schemas/CoreSimpleEnvelope' permitted_speed: $ref: '#/components/schemas/CoreSimpleEnvelope' CoreETCSCurves: type: object required: - permitted_speed - guidance properties: guidance: $ref: '#/components/schemas/CoreSimpleEnvelope' indication: oneOf: - type: 'null' - $ref: '#/components/schemas/CoreSimpleEnvelope' permitted_speed: $ref: '#/components/schemas/CoreSimpleEnvelope' CoreIncompatibleConstraints: type: object required: - incompatible_electrification_ranges - incompatible_gauge_ranges - incompatible_signaling_system_ranges properties: incompatible_electrification_ranges: type: array items: $ref: '#/components/schemas/CoreIncompatibleOffsetRangeWithValue' incompatible_gauge_ranges: type: array items: $ref: '#/components/schemas/CoreIncompatibleOffsetRange' incompatible_signaling_system_ranges: type: array items: $ref: '#/components/schemas/CoreIncompatibleOffsetRangeWithValue' CoreIncompatibleOffsetRange: type: object required: - range properties: range: $ref: '#/components/schemas/CoreOffsetRange' CoreIncompatibleOffsetRangeWithValue: type: object required: - range - value properties: range: $ref: '#/components/schemas/CoreOffsetRange' value: type: string CoreObjectRange: type: object description: A range on a linear object (usually block or route) required: - id - begin - end properties: begin: type: integer format: int64 description: The beginning of the range in mm. minimum: 0 end: type: integer format: int64 description: The end of the range in mm. minimum: 0 id: oneOf: - type: string maxLength: 255 minLength: 1 description: The object identifier. CoreOffsetRange: type: object required: - start - end properties: end: type: integer format: int64 minimum: 0 start: type: integer format: int64 minimum: 0 CoreOperationalPointOnPath: type: object description: Operational point along a path. required: - id - part - position - weight - name - country_code - main_code - is_passenger_station properties: country_code: type: string minLength: 1 id: oneOf: - type: string maxLength: 255 minLength: 1 description: Id of the operational point is_passenger_station: type: boolean main_code: type: string minLength: 1 name: type: string minLength: 1 part: $ref: '#/components/schemas/OperationalPointPart' description: The part along the path plc: oneOf: - type: 'null' - type: string minLength: 1 description: 'Primary Location Code : https://rne.eu/it/products/ccs/crd/' position: type: integer format: int64 description: Distance from the beginning of the path in mm minimum: 0 secondary_code: oneOf: - type: 'null' - type: string minLength: 1 secondary_name: oneOf: - type: 'null' - type: string minLength: 1 uic: type: - integer - 'null' format: int32 minimum: 0 weight: type: - integer - 'null' format: int32 description: Importance of the operational point maximum: 100 minimum: 0 CorePathfindingInputError: oneOf: - type: object title: PathfindingInputErrorInvalidPathItems required: - items - error_type properties: error_type: type: string enum: - invalid_path_items items: type: array items: type: object required: - index - path_item properties: index: type: integer minimum: 0 path_item: $ref: '#/components/schemas/PathItemLocation' - type: object title: PathfindingInputErrorNotEnoughPathItems required: - error_type properties: error_type: type: string enum: - not_enough_path_items - type: object title: PathfindingInputErrorRollingStockNotFound required: - rolling_stock_name - error_type properties: error_type: type: string enum: - rolling_stock_not_found rolling_stock_name: type: string - type: object title: PathfindingInputErrorZeroLengthPath required: - error_type properties: error_type: type: string enum: - zero_length_path CorePathfindingNotFound: oneOf: - type: object title: PathfindingNotFoundNotFoundInBlocks required: - track_section_ranges - length - error_type properties: error_type: type: string enum: - not_found_in_blocks length: type: integer format: int64 minimum: 0 track_section_ranges: type: array items: $ref: '#/components/schemas/CoreTrackRange' - type: object title: PathfindingNotFoundNotFoundInRoutes required: - track_section_ranges - length - error_type properties: error_type: type: string enum: - not_found_in_routes length: type: integer format: int64 minimum: 0 track_section_ranges: type: array items: $ref: '#/components/schemas/CoreTrackRange' - type: object title: PathfindingNotFoundNotFoundInTracks required: - error_type properties: error_type: type: string enum: - not_found_in_tracks - type: object title: PathfindingNotFoundIncompatibleConstraints required: - relaxed_constraints_path - incompatible_constraints - error_type properties: error_type: type: string enum: - incompatible_constraints incompatible_constraints: $ref: '#/components/schemas/CoreIncompatibleConstraints' relaxed_constraints_path: $ref: '#/components/schemas/CorePathfindingResultSuccess' CorePathfindingResultSuccess: type: object description: A successful pathfinding result. This is also used for STDCM response. required: - path - length - path_item_positions properties: backtrack_path_items: type: - array - 'null' items: type: integer minimum: 0 description: The indexes of the path items where the train backtracks length: type: integer format: int64 description: Length of the path in mm minimum: 0 path: $ref: '#/components/schemas/CoreTrainPath' description: Full description of the path data path_item_positions: type: array items: type: integer format: int64 minimum: 0 description: |- The path offset in mm of each path item given as input of the pathfinding The first value is always `0` (beginning of the path) and the last one is always equal to the `length` of the path in mm CoreReportTrain: type: object required: - positions - times - speeds - energy_consumption - path_item_times properties: energy_consumption: type: number format: double description: Total energy consumption path_item_times: type: array items: type: integer format: int64 minimum: 0 description: |- Time in ms at which the train *arrives* at each path item given as input of the pathfinding The first value is always `0` (beginning of the path) and the last one, the total time of the simulation (end of the path) In case multiple path items are at the same position, the stop duration of the earlier ones are added to the path item time of the next. For example, if A and B are at the same position, and A has a stop duration of 2s, then the path item time of B will be equal to the path item time of A plus 2s. positions: type: array items: type: integer format: int64 minimum: 0 description: |- List of positions of a train Both positions (in mm) and times (in ms) must have the same length speeds: type: array items: type: number format: double description: List of speeds associated to a position times: type: array items: type: integer format: int64 minimum: 0 CoreRoutingRequirement: type: object required: - route - begin_time - zones properties: begin_time: type: integer format: int64 description: |- Time in ms since a reference point that depends on which struct embeds this one: - in `TrainRequirements` & `TrainRequirementsById` (conflict detection & timetable requirements): a request-wide origin shared by all trains, `work_schedules` and the response (`1970-01-01T00:00:00Z` for calendar timetables, the timetable start for hourly ones); - in `CompleteReportTrain` (simulation results): the train's own `start_time`. minimum: 0 route: type: string zones: type: array items: $ref: '#/components/schemas/CoreRoutingZoneRequirement' CoreRoutingZoneRequirement: type: object required: - zone - entry_detector - exit_detector - switches - end_time properties: end_time: type: integer format: int64 description: |- Time in ms since a reference point that depends on which struct embeds this one: - in `TrainRequirements` & `TrainRequirementsById` (conflict detection & timetable requirements): a request-wide origin shared by all trains, `work_schedules` and the response (`1970-01-01T00:00:00Z` for calendar timetables, the timetable start for hourly ones); - in `CompleteReportTrain` (simulation results): the train's own `start_time`. minimum: 0 entry_detector: type: string exit_detector: type: string switches: type: object additionalProperties: type: string propertyNames: type: string zone: type: string CoreSignalCriticalPosition: type: object description: |- First position (space and time) along the path where given signal must be free (sighting time or closed-signal stop ending) required: - signal - time - position - state properties: position: type: integer format: int64 description: Position in mm minimum: 0 signal: type: string state: type: string time: type: integer format: int64 description: Time in ms minimum: 0 CoreSignalUpdate: type: object required: - signal_id - signaling_system - time_start - time_end - position_start - position_end - color - blinking - aspect_label properties: aspect_label: type: string description: The labels of the new aspect blinking: type: boolean description: Whether the signal is blinking color: type: integer format: int32 description: |- The color of the aspect (Bits 24-31 are alpha, 16-23 are red, 8-15 are green, 0-7 are blue) position_end: type: integer format: int64 description: The route ends at this position in mm on the train path minimum: 0 position_start: type: integer format: int64 description: The route starts at this position in mm on the train path minimum: 0 signal_id: type: string description: The id of the updated signal signaling_system: type: string description: The name of the signaling system of the signal time_end: type: integer format: int64 description: The aspects stop being displayed at this time (number of ms since `departure_time`) minimum: 0 time_start: type: integer format: int64 description: The aspects start being displayed at this time (number of ms since `departure_time`) minimum: 0 CoreSimpleEnvelope: type: object required: - positions - times - speeds properties: positions: type: array items: type: integer format: int64 minimum: 0 description: |- List of positions of a train Both positions (in mm) and times (in ms) must have the same length speeds: type: array items: type: number format: double description: List of speeds (in m/s) associated to a position times: type: array items: type: integer format: int64 minimum: 0 description: List of times (in ms) associated to a position CoreSpacingRequirement: type: object required: - zone - begin_time - end_time properties: begin_time: type: integer format: int64 description: |- Time in ms since a reference point that depends on which struct embeds this one: - in `TrainRequirements` & `TrainRequirementsById` (conflict detection & timetable requirements): a request-wide origin shared by all trains, `work_schedules` and the response (`1970-01-01T00:00:00Z` for calendar timetables, the timetable start for hourly ones); - in `CompleteReportTrain` (simulation results): the train's own `start_time`. minimum: 0 end_time: type: integer format: int64 description: 'Time in ms: see begin_time' minimum: 0 zone: type: string CoreTrackRange: type: object description: |- An oriented range on a track section. `begin` is always less than `end`. required: - track_section - begin - end - direction properties: begin: type: integer format: int64 description: The beginning of the range in mm. minimum: 0 direction: $ref: '#/components/schemas/Direction' description: The direction of the range. end: type: integer format: int64 description: The end of the range in mm. minimum: 0 track_section: oneOf: - type: string maxLength: 255 minLength: 1 description: The track section identifier. CoreTrainPath: type: object description: |- A valid train path, as returned from the pathfinding. Can be used as-is as input for other endpoints. required: - blocks - routes - track_section_ranges properties: blocks: type: array items: $ref: '#/components/schemas/CoreObjectRange' description: Block ranges, in order. routes: type: array items: $ref: '#/components/schemas/CoreObjectRange' description: Route ranges, in order. track_section_ranges: type: array items: $ref: '#/components/schemas/CoreTrackRange' description: Track section ranges, in order. CoreTrainRequirementsById: type: object required: - train_id - train_name - spacing_requirements - routing_requirements properties: routing_requirements: type: array items: $ref: '#/components/schemas/CoreRoutingRequirement' spacing_requirements: type: array items: $ref: '#/components/schemas/CoreSpacingRequirement' train_id: type: string train_name: type: string description: ID that can be used to find the train in tools other than OSRD. Used in debug traces. CoreZoneUpdate: type: object required: - zone - time - position - is_entry properties: is_entry: type: boolean position: type: integer format: int64 minimum: 0 time: type: integer format: int64 minimum: 0 zone: type: string Curve: type: object required: - radius - begin - end properties: begin: type: number format: double end: type: number format: double radius: type: number format: double additionalProperties: false Detector: type: object required: - id - track - position properties: extensions: $ref: '#/components/schemas/DetectorExtension' id: type: string maxLength: 255 minLength: 1 position: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false DetectorExtension: type: object required: - sncf properties: sncf: $ref: '#/components/schemas/DetectorSncfExtension' additionalProperties: false DetectorSncfExtension: type: object required: - kp properties: kp: type: string additionalProperties: false Direction: type: string enum: - START_TO_STOP - STOP_TO_START DirectionalTrackRange: type: object required: - track - begin - end - direction properties: begin: type: number format: double direction: $ref: '#/components/schemas/Direction' end: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false Distribution: type: string enum: - STANDARD - MARECO EditoastAbortJoinError: type: object required: - type - status - message properties: context: type: object title: EditoastAbortJoinErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:JoinError:cancelled EditoastAppHealthErrorCore: type: object required: - type - status - message properties: context: type: object title: EditoastAppHealthErrorCoreContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:app_health:Core EditoastAppHealthErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastAppHealthErrorDatabaseContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:app_health:Database EditoastAppHealthErrorOpenfga: type: object required: - type - status - message properties: context: type: object title: EditoastAppHealthErrorOpenfgaContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:app_health:Openfga EditoastAppHealthErrorTimeout: type: object required: - type - status - message properties: context: type: object title: EditoastAppHealthErrorTimeoutContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:app_health:Timeout EditoastAppHealthErrorValkey: type: object required: - type - status - message properties: context: type: object title: EditoastAppHealthErrorValkeyContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:app_health:Valkey EditoastAttachedErrorTrackNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastAttachedErrorTrackNotFoundContext required: - track_id properties: track_id: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:attached:TrackNotFound EditoastAuthorizationErrorDbError: type: object required: - type - status - message properties: context: type: object title: EditoastAuthorizationErrorDbErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:authorization:DbError EditoastAuthorizationErrorForbidden: type: object required: - type - status - message properties: context: type: object title: EditoastAuthorizationErrorForbiddenContext message: type: string status: type: integer enum: - 403 type: type: string enum: - editoast:authorization:Forbidden EditoastAuthorizationErrorForbiddenImpersonation: type: object required: - type - status - message properties: context: type: object title: EditoastAuthorizationErrorForbiddenImpersonationContext message: type: string status: type: integer enum: - 403 type: type: string enum: - editoast:authorization:ForbiddenImpersonation EditoastAuthorizationErrorImpersonatedUserNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastAuthorizationErrorImpersonatedUserNotFoundContext required: - identity properties: identity: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authorization:ImpersonatedUserNotFound EditoastAuthorizationErrorUnauthenticated: type: object required: - type - status - message properties: context: type: object title: EditoastAuthorizationErrorUnauthenticatedContext message: type: string status: type: integer enum: - 401 type: type: string enum: - editoast:authorization:Unauthenticated EditoastAuthzErrorAuthorizer: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzErrorAuthorizerContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:authz:Authorizer EditoastAuthzErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:authz:Database EditoastAuthzErrorUnknownIdentities: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzErrorUnknownIdentitiesContext required: - identities properties: identities: type: object message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authz:UnknownIdentities EditoastAuthzErrorUnknownResource: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzErrorUnknownResourceContext required: - resource_id properties: resource_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authz:UnknownResource EditoastAuthzErrorUnknownSubject: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzErrorUnknownSubjectContext required: - subject_id properties: subject_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authz:UnknownSubject EditoastAuthzErrorUnknownUser: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzErrorUnknownUserContext required: - id properties: id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authz:UnknownUser EditoastAuthzLegacyErrorOpenfga: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzLegacyErrorOpenfgaContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:authz_legacy:Openfga EditoastAuthzLegacyErrorStorage: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzLegacyErrorStorageContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:authz_legacy:Storage EditoastAuthzLegacyErrorUnknownResource: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzLegacyErrorUnknownResourceContext message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authz_legacy:UnknownResource EditoastAuthzLegacyErrorUnknownSubject: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzLegacyErrorUnknownSubjectContext message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:authz_legacy:UnknownSubject EditoastAuthzLegacyErrorUnknownUser: type: object required: - type - status - message properties: context: type: object title: EditoastAuthzLegacyErrorUnknownUserContext required: - id properties: id: type: integer message: type: string status: type: integer enum: - 401 type: type: string enum: - editoast:authz_legacy:UnknownUser EditoastAutoFixesEditoastErrorConflictingFixesOnSameObject: type: object required: - type - status - message properties: context: type: object title: EditoastAutoFixesEditoastErrorConflictingFixesOnSameObjectContext required: - fixes - object properties: fixes: type: array object: type: object message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:auto_fixes:ConflictingFixesOnSameObject EditoastAutoFixesEditoastErrorFixTrialFailure: type: object required: - type - status - message properties: context: type: object title: EditoastAutoFixesEditoastErrorFixTrialFailureContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:auto_fixes:FixTrialFailure EditoastAutoFixesEditoastErrorMaximumIterationReached: type: object required: - type - status - message properties: context: type: object title: EditoastAutoFixesEditoastErrorMaximumIterationReachedContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:auto_fixes:MaximumIterationReached EditoastAutoFixesEditoastErrorMissingErrorObject: type: object required: - type - status - message properties: context: type: object title: EditoastAutoFixesEditoastErrorMissingErrorObjectContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:auto_fixes:MissingErrorObject EditoastCacheOperationErrorDuplicateIdsProvided: type: object required: - type - status - message properties: context: type: object title: EditoastCacheOperationErrorDuplicateIdsProvidedContext required: - obj_id - obj_type properties: obj_id: type: string obj_type: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:cache_operation:DuplicateIdsProvided EditoastCacheOperationErrorObjectNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastCacheOperationErrorObjectNotFoundContext required: - obj_id - obj_type properties: obj_id: type: string obj_type: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:cache_operation:ObjectNotFound EditoastCatalogEntryErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastCatalogEntryErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:catalog_entry:Database EditoastCatalogEntryErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastCatalogEntryErrorNotFoundContext required: - catalog_entry_id properties: catalog_entry_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:catalog_entry:NotFound EditoastCoreErrorBrokenPipe: type: object required: - type - status - message properties: context: type: object title: EditoastCoreErrorBrokenPipeContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:coreclient:BrokenPipe EditoastCoreErrorCoreResponseFormatError: type: object required: - type - status - message properties: context: type: object title: EditoastCoreErrorCoreResponseFormatErrorContext required: - msg properties: msg: type: string message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:coreclient:CoreResponseFormatError EditoastCoreErrorMqClientError: type: object required: - type - status - message properties: context: type: object title: EditoastCoreErrorMqClientErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:coreclient:MqClientError EditoastCoreErrorUnparsableErrorOutput: type: object required: - type - status - message properties: context: type: object title: EditoastCoreErrorUnparsableErrorOutputContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:coreclient:UnparsableErrorOutput EditoastDatabaseAccessErrorDatabaseAccessError: type: object required: - type - status - message properties: context: type: object title: EditoastDatabaseAccessErrorDatabaseAccessErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:DatabaseAccessError EditoastDelimitedAreaErrorInvalidLocations: type: object required: - type - status - message properties: context: type: object title: EditoastDelimitedAreaErrorInvalidLocationsContext required: - invalid_locations properties: invalid_locations: type: array message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:delimited_area:InvalidLocations EditoastDocumentErrorsDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastDocumentErrorsDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:document:Database EditoastDocumentErrorsNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastDocumentErrorsNotFoundContext required: - document_key properties: document_key: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:document:NotFound EditoastEditionErrorInfraIsLocked: type: object required: - type - status - message properties: context: type: object title: EditoastEditionErrorInfraIsLockedContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:edition:InfraIsLocked EditoastEditionErrorSplitTrackSectionBadOffset: type: object required: - type - status - message properties: context: type: object title: EditoastEditionErrorSplitTrackSectionBadOffsetContext required: - infra_id - tracksection_id - tracksection_length properties: infra_id: type: integer tracksection_id: type: string tracksection_length: type: number message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:edition:SplitTrackSectionBadOffset EditoastElectricalProfilesErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastElectricalProfilesErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:electrical_profiles:Database EditoastElectricalProfilesErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastElectricalProfilesErrorNotFoundContext required: - electrical_profile_set_id properties: electrical_profile_set_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:electrical_profiles:NotFound EditoastError: oneOf: - $ref: '#/components/schemas/EditoastAbortJoinError' - $ref: '#/components/schemas/EditoastAppHealthErrorCore' - $ref: '#/components/schemas/EditoastAppHealthErrorDatabase' - $ref: '#/components/schemas/EditoastAppHealthErrorOpenfga' - $ref: '#/components/schemas/EditoastAppHealthErrorTimeout' - $ref: '#/components/schemas/EditoastAppHealthErrorValkey' - $ref: '#/components/schemas/EditoastAttachedErrorTrackNotFound' - $ref: '#/components/schemas/EditoastAuthorizationErrorDbError' - $ref: '#/components/schemas/EditoastAuthorizationErrorForbidden' - $ref: '#/components/schemas/EditoastAuthorizationErrorForbiddenImpersonation' - $ref: '#/components/schemas/EditoastAuthorizationErrorImpersonatedUserNotFound' - $ref: '#/components/schemas/EditoastAuthorizationErrorUnauthenticated' - $ref: '#/components/schemas/EditoastAuthzErrorAuthorizer' - $ref: '#/components/schemas/EditoastAuthzErrorDatabase' - $ref: '#/components/schemas/EditoastAuthzErrorUnknownIdentities' - $ref: '#/components/schemas/EditoastAuthzErrorUnknownResource' - $ref: '#/components/schemas/EditoastAuthzErrorUnknownSubject' - $ref: '#/components/schemas/EditoastAuthzErrorUnknownUser' - $ref: '#/components/schemas/EditoastAuthzLegacyErrorOpenfga' - $ref: '#/components/schemas/EditoastAuthzLegacyErrorStorage' - $ref: '#/components/schemas/EditoastAuthzLegacyErrorUnknownResource' - $ref: '#/components/schemas/EditoastAuthzLegacyErrorUnknownSubject' - $ref: '#/components/schemas/EditoastAuthzLegacyErrorUnknownUser' - $ref: '#/components/schemas/EditoastAutoFixesEditoastErrorConflictingFixesOnSameObject' - $ref: '#/components/schemas/EditoastAutoFixesEditoastErrorFixTrialFailure' - $ref: '#/components/schemas/EditoastAutoFixesEditoastErrorMaximumIterationReached' - $ref: '#/components/schemas/EditoastAutoFixesEditoastErrorMissingErrorObject' - $ref: '#/components/schemas/EditoastCacheOperationErrorDuplicateIdsProvided' - $ref: '#/components/schemas/EditoastCacheOperationErrorObjectNotFound' - $ref: '#/components/schemas/EditoastCatalogEntryErrorDatabase' - $ref: '#/components/schemas/EditoastCatalogEntryErrorNotFound' - $ref: '#/components/schemas/EditoastCoreErrorBrokenPipe' - $ref: '#/components/schemas/EditoastCoreErrorCoreResponseFormatError' - $ref: '#/components/schemas/EditoastCoreErrorMqClientError' - $ref: '#/components/schemas/EditoastCoreErrorUnparsableErrorOutput' - $ref: '#/components/schemas/EditoastDatabaseAccessErrorDatabaseAccessError' - $ref: '#/components/schemas/EditoastDelimitedAreaErrorInvalidLocations' - $ref: '#/components/schemas/EditoastDocumentErrorsDatabase' - $ref: '#/components/schemas/EditoastDocumentErrorsNotFound' - $ref: '#/components/schemas/EditoastEditionErrorInfraIsLocked' - $ref: '#/components/schemas/EditoastEditionErrorSplitTrackSectionBadOffset' - $ref: '#/components/schemas/EditoastElectricalProfilesErrorDatabase' - $ref: '#/components/schemas/EditoastElectricalProfilesErrorNotFound' - $ref: '#/components/schemas/EditoastErrorDatabase' - $ref: '#/components/schemas/EditoastErrorInfraNotFound' - $ref: '#/components/schemas/EditoastErrorInvalidInput' - $ref: '#/components/schemas/EditoastFontErrorsFileNotFound' - $ref: '#/components/schemas/EditoastGeometryErrorUnexpectedGeometry' - $ref: '#/components/schemas/EditoastGetObjectsErrorsDuplicateIdsProvided' - $ref: '#/components/schemas/EditoastGetObjectsErrorsObjectIdNotFound' - $ref: '#/components/schemas/EditoastIconErrorsFileNotFound' - $ref: '#/components/schemas/EditoastInfraApiErrorDatabase' - $ref: '#/components/schemas/EditoastInfraApiErrorNotFound' - $ref: '#/components/schemas/EditoastLayersErrorLayerNotFound' - $ref: '#/components/schemas/EditoastLayersErrorViewNotFound' - $ref: '#/components/schemas/EditoastLevelCrossingErrorDatabase' - $ref: '#/components/schemas/EditoastLevelCrossingErrorInfraNotFound' - $ref: '#/components/schemas/EditoastLevelCrossingErrorLevelCrossingBatchNotFound' - $ref: '#/components/schemas/EditoastLevelCrossingErrorTimetableNotFound' - $ref: '#/components/schemas/EditoastLevelCrossingErrorTrainBatchNotFound' - $ref: '#/components/schemas/EditoastLevelCrossingErrorUnsupportedTimetableType' - $ref: '#/components/schemas/EditoastLinesErrorsLineNotFound' - $ref: '#/components/schemas/EditoastListErrorsErrorsWrongErrorTypeProvided' - $ref: '#/components/schemas/EditoastMacroNodeErrorDatabase' - $ref: '#/components/schemas/EditoastMacroNodeErrorNotFound' - $ref: '#/components/schemas/EditoastMacroNodeErrorScenarioNotFound' - $ref: '#/components/schemas/EditoastMacroNoteErrorDatabase' - $ref: '#/components/schemas/EditoastMacroNoteErrorNotFound' - $ref: '#/components/schemas/EditoastMacroNoteErrorScenarioNotFound' - $ref: '#/components/schemas/EditoastModelError' - $ref: '#/components/schemas/EditoastOperationErrorEmptyId' - $ref: '#/components/schemas/EditoastOperationErrorInvalidPatch' - $ref: '#/components/schemas/EditoastOperationErrorModifyId' - $ref: '#/components/schemas/EditoastOperationErrorObjectNotFound' - $ref: '#/components/schemas/EditoastOperationalPointProjectionErrorInvalidNumberOfDistances' - $ref: '#/components/schemas/EditoastOperationalPointProjectionErrorInvalidNumberOfRefs' - $ref: '#/components/schemas/EditoastPanicJoinError' - $ref: '#/components/schemas/EditoastPathfindingErrorDatabase' - $ref: '#/components/schemas/EditoastPathfindingErrorInfraNotFound' - $ref: '#/components/schemas/EditoastPathfindingViewErrorsEndingTrackLocationNotFound' - $ref: '#/components/schemas/EditoastPathfindingViewErrorsInvalidNumberOfPaths' - $ref: '#/components/schemas/EditoastPathfindingViewErrorsStartingTrackLocationNotFound' - $ref: '#/components/schemas/EditoastProjectErrorDatabase' - $ref: '#/components/schemas/EditoastProjectErrorImageError' - $ref: '#/components/schemas/EditoastProjectErrorImageNotFound' - $ref: '#/components/schemas/EditoastProjectErrorNotFound' - $ref: '#/components/schemas/EditoastRailJsonErrorUnsupportedVersion' - $ref: '#/components/schemas/EditoastRollingStockErrorBasePowerClassEmpty' - $ref: '#/components/schemas/EditoastRollingStockErrorCannotCreateCompoundImage' - $ref: '#/components/schemas/EditoastRollingStockErrorCannotReadImage' - $ref: '#/components/schemas/EditoastRollingStockErrorDatabase' - $ref: '#/components/schemas/EditoastRollingStockErrorIsLocked' - $ref: '#/components/schemas/EditoastRollingStockErrorIsUsed' - $ref: '#/components/schemas/EditoastRollingStockErrorKeyNotFound' - $ref: '#/components/schemas/EditoastRollingStockErrorLiveryMultipartError' - $ref: '#/components/schemas/EditoastRollingStockErrorNameAlreadyUsed' - $ref: '#/components/schemas/EditoastRoundTripsErrorDatabase' - $ref: '#/components/schemas/EditoastRoundTripsErrorDuplicateTrainIds' - $ref: '#/components/schemas/EditoastRoundTripsErrorTimetableNotFound' - $ref: '#/components/schemas/EditoastScenarioErrorDatabase' - $ref: '#/components/schemas/EditoastScenarioErrorInfraNotFound' - $ref: '#/components/schemas/EditoastScenarioErrorNotFound' - $ref: '#/components/schemas/EditoastScenarioErrorStudyNotFound' - $ref: '#/components/schemas/EditoastScenarioErrorTimetableNotFound' - $ref: '#/components/schemas/EditoastSearchApiErrorObjectType' - $ref: '#/components/schemas/EditoastSearchApiErrorSearchEngineError' - $ref: '#/components/schemas/EditoastSimilarTrainsErrorDatabase' - $ref: '#/components/schemas/EditoastSimilarTrainsErrorEmptyTrainsTraffic' - $ref: '#/components/schemas/EditoastSimilarTrainsErrorInvalidPath' - $ref: '#/components/schemas/EditoastSimilarTrainsErrorRollingStockNotFound' - $ref: '#/components/schemas/EditoastSimilarTrainsErrorSpeedLimitNotFound' - $ref: '#/components/schemas/EditoastSpriteErrorsFileNotFound' - $ref: '#/components/schemas/EditoastSpriteErrorsUnknownSignalingSystem' - $ref: '#/components/schemas/EditoastStdcmDebugErrorJsonParseError' - $ref: '#/components/schemas/EditoastStdcmDebugErrorS3Error' - $ref: '#/components/schemas/EditoastStdcmDebugErrorS3NotConfigured' - $ref: '#/components/schemas/EditoastStdcmErrorBatchRollingStockNotFound' - $ref: '#/components/schemas/EditoastStdcmErrorDatabase' - $ref: '#/components/schemas/EditoastStdcmErrorInfraNotFound' - $ref: '#/components/schemas/EditoastStdcmErrorInvalidConsistLength' - $ref: '#/components/schemas/EditoastStdcmErrorInvalidConsistMass' - $ref: '#/components/schemas/EditoastStdcmErrorInvalidConsistMaxSpeed' - $ref: '#/components/schemas/EditoastStdcmErrorInvalidPathItems' - $ref: '#/components/schemas/EditoastStdcmErrorTimetableNotFound' - $ref: '#/components/schemas/EditoastStdcmErrorTowedRollingStockNotFound' - $ref: '#/components/schemas/EditoastStdcmErrorTrainSimulationFail' - $ref: '#/components/schemas/EditoastStdcmSearchEnvErrorDatabase' - $ref: '#/components/schemas/EditoastStdcmSearchEnvErrorNotFound' - $ref: '#/components/schemas/EditoastStudyErrorDatabase' - $ref: '#/components/schemas/EditoastStudyErrorNotFound' - $ref: '#/components/schemas/EditoastStudyErrorProjectNotFound' - $ref: '#/components/schemas/EditoastSubCategoryErrorCodeAlreadyUsed' - $ref: '#/components/schemas/EditoastSubCategoryErrorDatabase' - $ref: '#/components/schemas/EditoastSubCategoryErrorNotFound' - $ref: '#/components/schemas/EditoastTemporarySpeedLimitErrorDatabase' - $ref: '#/components/schemas/EditoastTemporarySpeedLimitErrorNameAlreadyUsed' - $ref: '#/components/schemas/EditoastTimetableErrorDatabase' - $ref: '#/components/schemas/EditoastTimetableErrorInfraNotFound' - $ref: '#/components/schemas/EditoastTimetableErrorInvalidPeriod' - $ref: '#/components/schemas/EditoastTimetableErrorNotFound' - $ref: '#/components/schemas/EditoastTimetableErrorParseError' - $ref: '#/components/schemas/EditoastTimetableErrorTimeout' - $ref: '#/components/schemas/EditoastTimetableErrorTrainScheduleSetsNotFound' - $ref: '#/components/schemas/EditoastTowedRollingStockErrorDatabase' - $ref: '#/components/schemas/EditoastTowedRollingStockErrorIdNotFound' - $ref: '#/components/schemas/EditoastTowedRollingStockErrorIsLocked' - $ref: '#/components/schemas/EditoastTrainScheduleErrorBatchNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleErrorDatabase' - $ref: '#/components/schemas/EditoastTrainScheduleErrorExceptionNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleErrorInfraNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleErrorInvalidPathPortion' - $ref: '#/components/schemas/EditoastTrainScheduleErrorNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleErrorPathfindingFailed' - $ref: '#/components/schemas/EditoastTrainScheduleErrorRollingStockNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleErrorSimulationFailed' - $ref: '#/components/schemas/EditoastTrainScheduleErrorTrainScheduleSetNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorBatchNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorDatabase' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorInvalidOccurrenceIndex' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorNotPacedTrain' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorOccurrenceIndexAlreadyUsed' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorTimetableNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleExceptionErrorTrainScheduleNotFound' - $ref: '#/components/schemas/EditoastTrainScheduleSetErrorDatabase' - $ref: '#/components/schemas/EditoastTrainScheduleSetErrorNotFound' - $ref: '#/components/schemas/EditoastUnexpectedJoinError' - $ref: '#/components/schemas/EditoastWorkScheduleErrorDatabase' - $ref: '#/components/schemas/EditoastWorkScheduleErrorNameAlreadyUsed' - $ref: '#/components/schemas/EditoastWorkScheduleErrorWorkScheduleGroupNotFound' - $ref: '#/components/schemas/EditoastWorkerLoadErrorDatabase' - $ref: '#/components/schemas/EditoastWorkerLoadErrorFetchStatusError' - $ref: '#/components/schemas/EditoastWorkerLoadErrorInfraNotFound' - $ref: '#/components/schemas/EditoastWorkerLoadErrorTimetableNotFound' description: Generated error type for Editoast discriminator: propertyName: type EditoastErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:search_journeys:Database EditoastErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:search_journeys:InfraNotFound EditoastErrorInvalidInput: type: object required: - type - status - message properties: context: type: object title: EditoastErrorInvalidInputContext required: - message properties: message: type: object message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:search_journeys:InvalidInput EditoastFontErrorsFileNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastFontErrorsFileNotFoundContext required: - file properties: file: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:fonts:FileNotFound EditoastGeometryErrorUnexpectedGeometry: type: object required: - type - status - message properties: context: type: object title: EditoastGeometryErrorUnexpectedGeometryContext required: - actual - expected properties: actual: type: string expected: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:geometry:UnexpectedGeometry EditoastGetObjectsErrorsDuplicateIdsProvided: type: object required: - type - status - message properties: context: type: object title: EditoastGetObjectsErrorsDuplicateIdsProvidedContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:objects:DuplicateIdsProvided EditoastGetObjectsErrorsObjectIdNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastGetObjectsErrorsObjectIdNotFoundContext required: - object_id properties: object_id: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:objects:ObjectIdNotFound EditoastIconErrorsFileNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastIconErrorsFileNotFoundContext required: - file properties: file: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:icons:FileNotFound EditoastInfraApiErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastInfraApiErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:infra:Database EditoastInfraApiErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastInfraApiErrorNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:infra:NotFound EditoastLayersErrorLayerNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLayersErrorLayerNotFoundContext required: - expected_names - layer_name properties: expected_names: type: array layer_name: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:layers:LayerNotFound EditoastLayersErrorViewNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLayersErrorViewNotFoundContext required: - expected_names - view_name properties: expected_names: type: array view_name: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:layers:ViewNotFound EditoastLevelCrossingErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastLevelCrossingErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:level_crossing:Database EditoastLevelCrossingErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLevelCrossingErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:level_crossing:InfraNotFound EditoastLevelCrossingErrorLevelCrossingBatchNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLevelCrossingErrorLevelCrossingBatchNotFoundContext required: - count properties: count: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:level_crossing:LevelCrossingBatchNotFound EditoastLevelCrossingErrorTimetableNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLevelCrossingErrorTimetableNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:level_crossing:TimetableNotFound EditoastLevelCrossingErrorTrainBatchNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLevelCrossingErrorTrainBatchNotFoundContext required: - count properties: count: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:level_crossing:TrainBatchNotFound EditoastLevelCrossingErrorUnsupportedTimetableType: type: object required: - type - status - message properties: context: type: object title: EditoastLevelCrossingErrorUnsupportedTimetableTypeContext message: type: string status: type: integer enum: - 422 type: type: string enum: - editoast:level_crossing:UnsupportedTimetableType EditoastLinesErrorsLineNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastLinesErrorsLineNotFoundContext required: - line_code properties: line_code: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:lines:LineNotFound EditoastListErrorsErrorsWrongErrorTypeProvided: type: object required: - type - status - message properties: context: type: object title: EditoastListErrorsErrorsWrongErrorTypeProvidedContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:errors:WrongErrorTypeProvided EditoastMacroNodeErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastMacroNodeErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:macro_node:Database EditoastMacroNodeErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastMacroNodeErrorNotFoundContext required: - node_id properties: node_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:macro_node:NotFound EditoastMacroNodeErrorScenarioNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastMacroNodeErrorScenarioNotFoundContext required: - scenario_id properties: scenario_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:macro_node:ScenarioNotFound EditoastMacroNoteErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastMacroNoteErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:macro_note:Database EditoastMacroNoteErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastMacroNoteErrorNotFoundContext required: - note_id properties: note_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:macro_note:NotFound EditoastMacroNoteErrorScenarioNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastMacroNoteErrorScenarioNotFoundContext required: - scenario_id properties: scenario_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:macro_note:ScenarioNotFound EditoastModelError: type: object required: - type - status - message properties: context: type: object title: EditoastModelErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:model:ModelError EditoastOperationErrorEmptyId: type: object required: - type - status - message properties: context: type: object title: EditoastOperationErrorEmptyIdContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:operation:EmptyId EditoastOperationErrorInvalidPatch: type: object required: - type - status - message properties: context: type: object title: EditoastOperationErrorInvalidPatchContext required: - error properties: error: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:operation:InvalidPatch EditoastOperationErrorModifyId: type: object required: - type - status - message properties: context: type: object title: EditoastOperationErrorModifyIdContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:operation:ModifyId EditoastOperationErrorObjectNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastOperationErrorObjectNotFoundContext required: - infra_id - obj_id properties: infra_id: type: integer obj_id: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:operation:ObjectNotFound EditoastOperationalPointProjectionErrorInvalidNumberOfDistances: type: object required: - type - status - message properties: context: type: object title: EditoastOperationalPointProjectionErrorInvalidNumberOfDistancesContext required: - expected - found properties: expected: type: integer found: type: integer message: type: string status: type: integer enum: - 422 type: type: string enum: - editoast:operationalPointProjection:InvalidNumberOfDistances EditoastOperationalPointProjectionErrorInvalidNumberOfRefs: type: object required: - type - status - message properties: context: type: object title: EditoastOperationalPointProjectionErrorInvalidNumberOfRefsContext message: type: string status: type: integer enum: - 422 type: type: string enum: - editoast:operationalPointProjection:InvalidNumberOfRefs EditoastPanicJoinError: type: object required: - type - status - message properties: context: type: object title: EditoastPanicJoinErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:JoinError:panic EditoastPathfindingErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastPathfindingErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:pathfinding:Database EditoastPathfindingErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastPathfindingErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:pathfinding:InfraNotFound EditoastPathfindingViewErrorsEndingTrackLocationNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastPathfindingViewErrorsEndingTrackLocationNotFoundContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:pathfinding:EndingTrackLocationNotFound EditoastPathfindingViewErrorsInvalidNumberOfPaths: type: object required: - type - status - message properties: context: type: object title: EditoastPathfindingViewErrorsInvalidNumberOfPathsContext required: - max_number - path_number properties: max_number: type: integer path_number: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:pathfinding:InvalidNumberOfPaths EditoastPathfindingViewErrorsStartingTrackLocationNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastPathfindingViewErrorsStartingTrackLocationNotFoundContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:infra:pathfinding:StartingTrackLocationNotFound EditoastProjectErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastProjectErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:project:Database EditoastProjectErrorImageError: type: object required: - type - status - message properties: context: type: object title: EditoastProjectErrorImageErrorContext required: - error properties: error: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:project:ImageError EditoastProjectErrorImageNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastProjectErrorImageNotFoundContext required: - document_key properties: document_key: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:project:ImageNotFound EditoastProjectErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastProjectErrorNotFoundContext required: - project_id properties: project_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:project:NotFound EditoastRailJsonErrorUnsupportedVersion: type: object required: - type - status - message properties: context: type: object title: EditoastRailJsonErrorUnsupportedVersionContext required: - actual - expected properties: actual: type: string expected: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:railjson:UnsupportedVersion EditoastRollingStockErrorBasePowerClassEmpty: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorBasePowerClassEmptyContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:rollingstocks:BasePowerClassEmpty EditoastRollingStockErrorCannotCreateCompoundImage: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorCannotCreateCompoundImageContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:rollingstocks:CannotCreateCompoundImage EditoastRollingStockErrorCannotReadImage: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorCannotReadImageContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:rollingstocks:CannotReadImage EditoastRollingStockErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:rollingstocks:Database EditoastRollingStockErrorIsLocked: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorIsLockedContext required: - rolling_stock_id properties: rolling_stock_id: type: integer message: type: string status: type: integer enum: - 409 type: type: string enum: - editoast:rollingstocks:IsLocked EditoastRollingStockErrorIsUsed: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorIsUsedContext required: - rolling_stock_id - usage properties: rolling_stock_id: type: integer usage: type: array message: type: string status: type: integer enum: - 409 type: type: string enum: - editoast:rollingstocks:IsUsed EditoastRollingStockErrorKeyNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorKeyNotFoundContext required: - rolling_stock_key properties: rolling_stock_key: type: object message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:rollingstocks:KeyNotFound EditoastRollingStockErrorLiveryMultipartError: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorLiveryMultipartErrorContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:rollingstocks:LiveryMultipartError EditoastRollingStockErrorNameAlreadyUsed: type: object required: - type - status - message properties: context: type: object title: EditoastRollingStockErrorNameAlreadyUsedContext required: - name properties: name: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:rollingstocks:NameAlreadyUsed EditoastRoundTripsErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastRoundTripsErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:round_trips:Database EditoastRoundTripsErrorDuplicateTrainIds: type: object required: - type - status - message properties: context: type: object title: EditoastRoundTripsErrorDuplicateTrainIdsContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:round_trips:DuplicateTrainIds EditoastRoundTripsErrorTimetableNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastRoundTripsErrorTimetableNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:round_trips:TimetableNotFound EditoastScenarioErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastScenarioErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:scenario:Database EditoastScenarioErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastScenarioErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:scenario:InfraNotFound EditoastScenarioErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastScenarioErrorNotFoundContext required: - scenario_id properties: scenario_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:scenario:NotFound EditoastScenarioErrorStudyNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastScenarioErrorStudyNotFoundContext required: - study_id properties: study_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:scenario:StudyNotFound EditoastScenarioErrorTimetableNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastScenarioErrorTimetableNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:scenario:TimetableNotFound EditoastSearchApiErrorObjectType: type: object required: - type - status - message properties: context: type: object title: EditoastSearchApiErrorObjectTypeContext required: - object_type properties: object_type: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:search:ObjectType EditoastSearchApiErrorSearchEngineError: type: object required: - type - status - message properties: context: type: object title: EditoastSearchApiErrorSearchEngineErrorContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:search:SearchEngineError EditoastSimilarTrainsErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastSimilarTrainsErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:timetable:similar_trains:Database EditoastSimilarTrainsErrorEmptyTrainsTraffic: type: object required: - type - status - message properties: context: type: object title: EditoastSimilarTrainsErrorEmptyTrainsTrafficContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:timetable:similar_trains:EmptyTrainsTraffic EditoastSimilarTrainsErrorInvalidPath: type: object required: - type - status - message properties: context: type: object title: EditoastSimilarTrainsErrorInvalidPathContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:timetable:similar_trains:InvalidPath EditoastSimilarTrainsErrorRollingStockNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastSimilarTrainsErrorRollingStockNotFoundContext required: - rolling_stock_name properties: rolling_stock_name: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:timetable:similar_trains:RollingStockNotFound EditoastSimilarTrainsErrorSpeedLimitNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastSimilarTrainsErrorSpeedLimitNotFoundContext required: - speed_limit_tag properties: speed_limit_tag: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:timetable:similar_trains:SpeedLimitNotFound EditoastSpriteErrorsFileNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastSpriteErrorsFileNotFoundContext required: - file properties: file: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:sprites:FileNotFound EditoastSpriteErrorsUnknownSignalingSystem: type: object required: - type - status - message properties: context: type: object title: EditoastSpriteErrorsUnknownSignalingSystemContext required: - signaling_system properties: signaling_system: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:sprites:UnknownSignalingSystem EditoastStdcmDebugErrorJsonParseError: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmDebugErrorJsonParseErrorContext required: - message - path properties: message: type: string path: type: string message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:stdcm_debug:JsonParseError EditoastStdcmDebugErrorS3Error: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmDebugErrorS3ErrorContext required: - message - path properties: message: type: string path: type: string message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:stdcm_debug:S3Error EditoastStdcmDebugErrorS3NotConfigured: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmDebugErrorS3NotConfiguredContext message: type: string status: type: integer enum: - 503 type: type: string enum: - editoast:stdcm_debug:S3NotConfigured EditoastStdcmErrorBatchRollingStockNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorBatchRollingStockNotFoundContext required: - ids properties: ids: type: object message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:stdcm:BatchRollingStockNotFound EditoastStdcmErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorDatabaseContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:Database EditoastStdcmErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:InfraNotFound EditoastStdcmErrorInvalidConsistLength: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorInvalidConsistLengthContext required: - expected_min - provided_consist_length properties: expected_min: type: number provided_consist_length: type: number message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:InvalidConsistLength EditoastStdcmErrorInvalidConsistMass: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorInvalidConsistMassContext required: - expected_min - provided_consist_mass properties: expected_min: type: number provided_consist_mass: type: number message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:InvalidConsistMass EditoastStdcmErrorInvalidConsistMaxSpeed: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorInvalidConsistMaxSpeedContext required: - expected_max - provided_consist_max_speed properties: expected_max: type: number provided_consist_max_speed: type: number message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:InvalidConsistMaxSpeed EditoastStdcmErrorInvalidPathItems: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorInvalidPathItemsContext required: - items properties: items: type: array message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:InvalidPathItems EditoastStdcmErrorTimetableNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorTimetableNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:stdcm:TimetableNotFound EditoastStdcmErrorTowedRollingStockNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorTowedRollingStockNotFoundContext required: - towed_rolling_stock_id properties: towed_rolling_stock_id: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:TowedRollingStockNotFound EditoastStdcmErrorTrainSimulationFail: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmErrorTrainSimulationFailContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:stdcm:TrainSimulationFail EditoastStdcmSearchEnvErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmSearchEnvErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:stdcm_search_env:Database EditoastStdcmSearchEnvErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStdcmSearchEnvErrorNotFoundContext required: - env_id properties: env_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:stdcm_search_env:NotFound EditoastStudyErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastStudyErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:study:Database EditoastStudyErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStudyErrorNotFoundContext required: - study_id properties: study_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:study:NotFound EditoastStudyErrorProjectNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastStudyErrorProjectNotFoundContext required: - project_id properties: project_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:study:ProjectNotFound EditoastSubCategoryErrorCodeAlreadyUsed: type: object required: - type - status - message properties: context: type: object title: EditoastSubCategoryErrorCodeAlreadyUsedContext required: - code properties: code: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:sub_categories:CodeAlreadyUsed EditoastSubCategoryErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastSubCategoryErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:sub_categories:Database EditoastSubCategoryErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastSubCategoryErrorNotFoundContext required: - code properties: code: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:sub_categories:NotFound EditoastTemporarySpeedLimitErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastTemporarySpeedLimitErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:temporary_speed_limit:Database EditoastTemporarySpeedLimitErrorNameAlreadyUsed: type: object required: - type - status - message properties: context: type: object title: EditoastTemporarySpeedLimitErrorNameAlreadyUsedContext required: - name properties: name: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:temporary_speed_limit:NameAlreadyUsed EditoastTimetableErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:timetable:Database EditoastTimetableErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:timetable:InfraNotFound EditoastTimetableErrorInvalidPeriod: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorInvalidPeriodContext required: - timetable_period properties: timetable_period: type: integer message: type: string status: type: integer enum: - 422 type: type: string enum: - editoast:timetable:InvalidPeriod EditoastTimetableErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:timetable:NotFound EditoastTimetableErrorParseError: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorParseErrorContext required: - train_id properties: train_id: type: string message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:timetable:ParseError EditoastTimetableErrorTimeout: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorTimeoutContext message: type: string status: type: integer enum: - 504 type: type: string enum: - editoast:timetable:Timeout EditoastTimetableErrorTrainScheduleSetsNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTimetableErrorTrainScheduleSetsNotFoundContext required: - ids properties: ids: type: object message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:timetable:TrainScheduleSetsNotFound EditoastTowedRollingStockErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastTowedRollingStockErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:towedrollingstocks:Database EditoastTowedRollingStockErrorIdNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTowedRollingStockErrorIdNotFoundContext required: - towed_rolling_stock_id properties: towed_rolling_stock_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:towedrollingstocks:IdNotFound EditoastTowedRollingStockErrorIsLocked: type: object required: - type - status - message properties: context: type: object title: EditoastTowedRollingStockErrorIsLockedContext required: - towed_rolling_stock_id properties: towed_rolling_stock_id: type: integer message: type: string status: type: integer enum: - 409 type: type: string enum: - editoast:towedrollingstocks:IsLocked EditoastTrainScheduleErrorBatchNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorBatchNotFoundContext required: - count properties: count: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:BatchNotFound EditoastTrainScheduleErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:train_schedule:Database EditoastTrainScheduleErrorExceptionNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorExceptionNotFoundContext required: - exception_id properties: exception_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:ExceptionNotFound EditoastTrainScheduleErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:InfraNotFound EditoastTrainScheduleErrorInvalidPathPortion: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorInvalidPathPortionContext required: - begin - end - path_items_count properties: begin: type: integer end: type: integer path_items_count: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:train_schedule:InvalidPathPortion EditoastTrainScheduleErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorNotFoundContext required: - train_schedule_id properties: train_schedule_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:NotFound EditoastTrainScheduleErrorPathfindingFailed: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorPathfindingFailedContext required: - train_schedule_id properties: train_schedule_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:PathfindingFailed EditoastTrainScheduleErrorRollingStockNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorRollingStockNotFoundContext required: - rolling_stock_name properties: rolling_stock_name: type: string message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:RollingStockNotFound EditoastTrainScheduleErrorSimulationFailed: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorSimulationFailedContext required: - train_schedule_id properties: train_schedule_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:SimulationFailed EditoastTrainScheduleErrorTrainScheduleSetNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleErrorTrainScheduleSetNotFoundContext required: - train_schedule_set_id properties: train_schedule_set_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule:TrainScheduleSetNotFound EditoastTrainScheduleExceptionErrorBatchNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorBatchNotFoundContext required: - count properties: count: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule_exception:BatchNotFound EditoastTrainScheduleExceptionErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorDatabaseContext message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:train_schedule_exception:Database EditoastTrainScheduleExceptionErrorInvalidOccurrenceIndex: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorInvalidOccurrenceIndexContext required: - interval - occurrence_index - time_window - train_schedule_id properties: interval: type: string occurrence_index: type: integer time_window: type: string train_schedule_id: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:train_schedule_exception:InvalidOccurrenceIndex EditoastTrainScheduleExceptionErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorNotFoundContext required: - exception_id properties: exception_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule_exception:NotFound EditoastTrainScheduleExceptionErrorNotPacedTrain: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorNotPacedTrainContext required: - train_schedule_id properties: train_schedule_id: type: integer message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:train_schedule_exception:NotPacedTrain EditoastTrainScheduleExceptionErrorOccurrenceIndexAlreadyUsed: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorOccurrenceIndexAlreadyUsedContext required: - occurrence_index properties: occurrence_index: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:train_schedule_exception:OccurrenceIndexAlreadyUsed EditoastTrainScheduleExceptionErrorTimetableNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorTimetableNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule_exception:TimetableNotFound EditoastTrainScheduleExceptionErrorTrainScheduleNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleExceptionErrorTrainScheduleNotFoundContext required: - train_schedule_id properties: train_schedule_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule_exception:TrainScheduleNotFound EditoastTrainScheduleSetErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleSetErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:train_schedule_set:Database EditoastTrainScheduleSetErrorNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastTrainScheduleSetErrorNotFoundContext required: - train_schedule_set_id properties: train_schedule_set_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:train_schedule_set:NotFound EditoastUnexpectedJoinError: type: object required: - type - status - message properties: context: type: object title: EditoastUnexpectedJoinErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:JoinError:unhandled_add_case_here EditoastWorkScheduleErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastWorkScheduleErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:work_schedule:Database EditoastWorkScheduleErrorNameAlreadyUsed: type: object required: - type - status - message properties: context: type: object title: EditoastWorkScheduleErrorNameAlreadyUsedContext required: - name properties: name: type: string message: type: string status: type: integer enum: - 400 type: type: string enum: - editoast:work_schedule:NameAlreadyUsed EditoastWorkScheduleErrorWorkScheduleGroupNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastWorkScheduleErrorWorkScheduleGroupNotFoundContext required: - id properties: id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:work_schedule:WorkScheduleGroupNotFound EditoastWorkerLoadErrorDatabase: type: object required: - type - status - message properties: context: type: object title: EditoastWorkerLoadErrorDatabaseContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:worker_load:Database EditoastWorkerLoadErrorFetchStatusError: type: object required: - type - status - message properties: context: type: object title: EditoastWorkerLoadErrorFetchStatusErrorContext message: type: string status: type: integer enum: - 500 type: type: string enum: - editoast:worker_load:FetchStatusError EditoastWorkerLoadErrorInfraNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastWorkerLoadErrorInfraNotFoundContext required: - infra_id properties: infra_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:worker_load:InfraNotFound EditoastWorkerLoadErrorTimetableNotFound: type: object required: - type - status - message properties: context: type: object title: EditoastWorkerLoadErrorTimetableNotFoundContext required: - timetable_id properties: timetable_id: type: integer message: type: string status: type: integer enum: - 404 type: type: string enum: - editoast:worker_load:TimetableNotFound EffortCurve: type: object required: - speeds - max_efforts properties: max_efforts: type: array items: type: number format: double description: Max efforts in N. Must contains the same number of elements as `speeds`. example: - 23500.0 - 23200.0 - 21200.0 minItems: 2 speeds: type: array items: type: number format: double description: Speeds in m/s. Must contains the same number of elements as `max_efforts` example: - 0.0 - 2.958 - 46.719 minItems: 2 additionalProperties: false EffortCurveConditions: type: object required: - comfort - electrical_profile_level - power_restriction_code properties: comfort: oneOf: - type: 'null' - $ref: '#/components/schemas/Comfort' electrical_profile_level: type: - string - 'null' power_restriction_code: type: - string - 'null' additionalProperties: false EffortCurves: type: object required: - modes - default_mode properties: default_mode: type: string modes: type: object additionalProperties: $ref: '#/components/schemas/ModeEffortCurves' propertyNames: type: string additionalProperties: false ElectricalProfile: type: object required: - value - power_class - track_ranges properties: power_class: type: string example: '1' track_ranges: type: array items: $ref: '#/components/schemas/TrackRange' value: type: string example: A ElectricalProfileSet: type: object required: - id - name - data properties: data: $ref: '#/components/schemas/ElectricalProfileSetData' id: type: integer format: int64 name: type: string ElectricalProfileSetData: type: object required: - levels - level_order properties: level_order: type: object additionalProperties: $ref: '#/components/schemas/LevelValues' propertyNames: type: string levels: type: array items: $ref: '#/components/schemas/ElectricalProfile' Electrification: type: object required: - id - voltage - track_ranges properties: id: type: string maxLength: 255 minLength: 1 track_ranges: type: array items: $ref: '#/components/schemas/ApplicableDirectionsTrackRange' voltage: type: string minLength: 1 additionalProperties: false Endpoint: type: string enum: - BEGIN - END EnergySource: oneOf: - type: object title: EnergySourceElectrification description: energy source for a rolling stock representing a electrification required: - max_input_power - max_output_power - efficiency - energy_source_type properties: efficiency: type: number format: double maximum: 1 minimum: 0 energy_source_type: type: string enum: - Electrification max_input_power: $ref: '#/components/schemas/SpeedDependantPower' max_output_power: $ref: '#/components/schemas/SpeedDependantPower' - type: object title: EnergySourcePowerPack required: - max_input_power - max_output_power - energy_storage - efficiency - energy_source_type properties: efficiency: type: number format: double maximum: 1 minimum: 0 energy_source_type: type: string enum: - PowerPack energy_storage: $ref: '#/components/schemas/EnergyStorage' max_input_power: $ref: '#/components/schemas/SpeedDependantPower' max_output_power: $ref: '#/components/schemas/SpeedDependantPower' - type: object title: EnergySourceBattery description: energy source for a rolling stock representing a battery required: - max_input_power - max_output_power - energy_storage - efficiency - energy_source_type properties: efficiency: type: number format: double maximum: 1 minimum: 0 energy_source_type: type: string enum: - Battery energy_storage: $ref: '#/components/schemas/EnergyStorage' max_input_power: $ref: '#/components/schemas/SpeedDependantPower' max_output_power: $ref: '#/components/schemas/SpeedDependantPower' description: energy source of a rolling stock EnergyStorage: type: object description: energy storage of an energy source (of a rolling stock, can be a electrical battery or a hydrogen/fuel powerPack) required: - capacity - soc - soc_min - soc_max - refill_law properties: capacity: type: number format: double refill_law: oneOf: - type: 'null' - $ref: '#/components/schemas/RefillLaw' soc: type: number format: double maximum: 1 minimum: 0 soc_max: type: number format: double maximum: 1 minimum: 0 soc_min: type: number format: double maximum: 1 minimum: 0 additionalProperties: false EtcsBrakeParams: type: object description: |- Braking parameters for ERTMS ETCS Level 2 Commented with their names in ETCS specification document `SUBSET-026-3 v400.pdf` from the file at required: - gamma_emergency - gamma_service - gamma_normal_service - k_dry - k_wet - k_n_pos - k_n_neg - t_traction_cut_off - t_bs1 - t_bs2 - t_be properties: gamma_emergency: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: 'A_brake_emergency: the emergency deceleration curve (values > 0 m/s²)' gamma_normal_service: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: 'A_brake_normal_service: the normal service deceleration curve used to compute guidance curve (values > 0 m/s²)' gamma_service: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: 'A_brake_service: the full service deceleration curve (values > 0 m/s²)' k_dry: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: |- Kdry_rst: the rolling stock deceleration correction factors for dry rails Boundaries should be the same as gammaEmergency Values (no unit) should be contained in [0, 1] k_n_neg: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: |- Kn-: the correction acceleration factor on normal service deceleration in negative gradients Values (in m/s²) should be contained in [0, 10] k_n_pos: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: |- Kn+: the correction acceleration factor on normal service deceleration in positive gradients Values (in m/s²) should be contained in [0, 10] k_wet: $ref: '#/components/schemas/SpeedIntervalValueCurve' description: |- Kwet_rst: the rolling stock deceleration correction factors for wet rails Boundaries should be the same as gammaEmergency Values (no unit) should be contained in [0, 1] t_be: type: number format: double description: 'T_be: safe brake build up time in s' t_bs1: type: number format: double description: 'T_bs1: time service break in s used for SBI1 computation' t_bs2: type: number format: double description: 'T_bs2: time service break in s used for SBI2 computation' t_traction_cut_off: type: number format: double description: 'T_traction_cut_off: time delay in s from the traction cut-off command to the moment the acceleration due to traction is zero' additionalProperties: false GeoJson: oneOf: - oneOf: - $ref: '#/components/schemas/GeoJsonPoint' - $ref: '#/components/schemas/GeoJsonMultiPoint' - $ref: '#/components/schemas/GeoJsonLineString' - $ref: '#/components/schemas/GeoJsonMultiLineString' - $ref: '#/components/schemas/GeoJsonPolygon' - $ref: '#/components/schemas/GeoJsonMultiPolygon' description: A GeoJSON geometry item GeoJsonLineString: oneOf: - type: object title: LineStringGeometry required: - coordinates - type properties: coordinates: $ref: '#/components/schemas/GeoJsonLineStringValue' type: type: string enum: - LineString GeoJsonLineStringValue: type: array items: $ref: '#/components/schemas/GeoJsonPointValue' GeoJsonMultiLineString: oneOf: - type: object title: MultiLineStringGeometry required: - coordinates - type properties: coordinates: $ref: '#/components/schemas/GeoJsonMultiLineStringValue' type: type: string enum: - MultiLineString GeoJsonMultiLineStringValue: type: array items: $ref: '#/components/schemas/GeoJsonLineStringValue' GeoJsonMultiPoint: oneOf: - type: object title: MultiPointGeometry required: - coordinates - type properties: coordinates: $ref: '#/components/schemas/GeoJsonMultiPointValue' type: type: string enum: - MultiPoint GeoJsonMultiPointValue: type: array items: $ref: '#/components/schemas/GeoJsonPointValue' GeoJsonMultiPolygon: oneOf: - type: object title: MultiPolygonGeometry required: - coordinates - type properties: coordinates: $ref: '#/components/schemas/GeoJsonMultiPolygonValue' type: type: string enum: - MultiPolygon GeoJsonMultiPolygonValue: type: array items: $ref: '#/components/schemas/GeoJsonPolygonValue' GeoJsonPoint: oneOf: - type: object title: PointGeometry required: - coordinates - type properties: coordinates: $ref: '#/components/schemas/GeoJsonPointValue' type: type: string enum: - Point GeoJsonPointValue: type: array items: type: number format: double GeoJsonPolygon: oneOf: - type: object title: PolygonGeometry required: - coordinates - type properties: coordinates: $ref: '#/components/schemas/GeoJsonPolygonValue' type: type: string enum: - Polygon GeoJsonPolygonValue: type: array items: $ref: '#/components/schemas/GeoJsonLineStringValue' GrantBody: type: object required: - resource_type - resource_id - subject_id - grant properties: grant: $ref: '#/components/schemas/StandardGrant' resource_id: type: integer format: int64 resource_type: $ref: '#/components/schemas/ResourceType' subject_id: type: integer format: int64 Identifier: type: string maxLength: 255 minLength: 1 Infra: type: object required: - id - name - railjson_version - version - generated_version - locked - created - modified properties: created: type: string format: date-time generated_version: type: - integer - 'null' format: int64 id: type: integer format: int64 locked: type: boolean modified: type: string format: date-time name: type: string railjson_version: type: string version: type: integer format: int64 InfraError: type: object required: - obj_id - obj_type - field - is_warning - sub_type properties: field: type: - string - 'null' is_warning: type: boolean obj_id: type: string obj_type: $ref: '#/components/schemas/ObjectType' sub_type: $ref: '#/components/schemas/InfraErrorType' InfraErrorType: oneOf: - type: object title: InfraErrorTypeDuplicatedGroup required: - original_group_path - error_type properties: error_type: type: string enum: - duplicated_group original_group_path: type: string - type: object title: InfraErrorTypeEmptyObject required: - error_type properties: error_type: type: string enum: - empty_object - type: object title: InfraErrorTypeInvalidGroup required: - group - switch_type - error_type properties: error_type: type: string enum: - invalid_group group: type: string switch_type: type: string - type: object title: InfraErrorTypeInvalidReference required: - reference - error_type properties: error_type: type: string enum: - invalid_reference reference: $ref: '#/components/schemas/ObjectRef' - type: object title: InfraErrorTypeInvalidRoute required: - error_type properties: error_type: type: string enum: - invalid_route - type: object title: InfraErrorTypeInvalidSwitchPorts required: - error_type properties: error_type: type: string enum: - invalid_switch_ports - type: object title: InfraErrorTypeMissingRoute required: - error_type properties: error_type: type: string enum: - missing_route - type: object title: InfraErrorTypeMissingBufferStop required: - endpoint - error_type properties: endpoint: $ref: '#/components/schemas/Endpoint' error_type: type: string enum: - missing_buffer_stop - type: object title: InfraErrorTypeNodeEndpointsNotUnique required: - error_type properties: error_type: type: string enum: - node_endpoints_not_unique - type: object title: InfraErrorTypeObjectOutOfPath required: - reference - error_type properties: error_type: type: string enum: - object_out_of_path reference: $ref: '#/components/schemas/ObjectRef' - type: object title: InfraErrorTypeOddBufferStopLocation required: - error_type properties: error_type: type: string enum: - odd_buffer_stop_location - type: object title: InfraErrorTypeOutOfRange required: - position - expected_range - reference - error_type properties: error_type: type: string enum: - out_of_range expected_range: type: array items: type: number format: double position: type: number format: double reference: $ref: '#/components/schemas/ObjectRef' - type: object title: InfraErrorTypeOverlappingElectrifications required: - reference - error_type properties: error_type: type: string enum: - overlapping_electrifications reference: $ref: '#/components/schemas/ObjectRef' - type: object title: InfraErrorTypeOverlappingSpeedSections required: - reference - error_type properties: error_type: type: string enum: - overlapping_speed_sections reference: $ref: '#/components/schemas/ObjectRef' - type: object title: InfraErrorTypeOverlappingSwitches required: - reference - error_type properties: error_type: type: string enum: - overlapping_switches reference: $ref: '#/components/schemas/ObjectRef' - type: object title: InfraErrorTypeUnknownPortName required: - port_name - error_type properties: error_type: type: string enum: - unknown_port_name port_name: type: string - type: object title: InfraErrorTypeUnusedPort required: - port_name - error_type properties: error_type: type: string enum: - unused_port port_name: type: string InfraObject: oneOf: - type: object title: InfraObjectTrackSection required: - railjson - obj_type properties: obj_type: type: string enum: - TrackSection railjson: $ref: '#/components/schemas/TrackSection' - type: object title: InfraObjectSignal required: - railjson - obj_type properties: obj_type: type: string enum: - Signal railjson: $ref: '#/components/schemas/Signal' - type: object title: InfraObjectNeutralSection required: - railjson - obj_type properties: obj_type: type: string enum: - NeutralSection railjson: $ref: '#/components/schemas/NeutralSection' - type: object title: InfraObjectSpeedSection required: - railjson - obj_type properties: obj_type: type: string enum: - SpeedSection railjson: $ref: '#/components/schemas/SpeedSection' - type: object title: InfraObjectSwitch required: - railjson - obj_type properties: obj_type: type: string enum: - Switch railjson: $ref: '#/components/schemas/Switch' - type: object title: InfraObjectSwitchType required: - railjson - obj_type properties: obj_type: type: string enum: - SwitchType railjson: $ref: '#/components/schemas/SwitchType' - type: object title: InfraObjectDetector required: - railjson - obj_type properties: obj_type: type: string enum: - Detector railjson: $ref: '#/components/schemas/Detector' - type: object title: InfraObjectBufferStop required: - railjson - obj_type properties: obj_type: type: string enum: - BufferStop railjson: $ref: '#/components/schemas/BufferStop' - type: object title: InfraObjectRoute required: - railjson - obj_type properties: obj_type: type: string enum: - Route railjson: $ref: '#/components/schemas/Route' - type: object title: InfraObjectOperationalPoint required: - railjson - obj_type properties: obj_type: type: string enum: - OperationalPoint railjson: $ref: '#/components/schemas/OperationalPoint' - type: object title: InfraObjectElectrification required: - railjson - obj_type properties: obj_type: type: string enum: - Electrification railjson: $ref: '#/components/schemas/Electrification' - type: object title: InfraObjectLevelCrossing required: - railjson - obj_type properties: obj_type: type: string enum: - LevelCrossing railjson: $ref: '#/components/schemas/LevelCrossing' InfraObjectWithGeometry: type: object required: - obj_id - railjson - geographic properties: geographic: $ref: '#/components/schemas/GeoJson' obj_id: type: string railjson: type: object InfraPathfindingInput: type: object required: - starting - ending properties: ending: $ref: '#/components/schemas/PathfindingTrackLocationInput' starting: $ref: '#/components/schemas/PathfindingTrackLocationInput' InitialSpeedChangeGroup: type: object required: - value properties: value: type: number format: double InternalError: type: object required: - type - context - message properties: context: type: object additionalProperties: {} propertyNames: type: string message: type: string status: type: integer format: int32 maximum: 599 minimum: 100 type: type: string Intersection: type: object description: Represent the intersection between a track range and a path, relative to the beginning of the path required: - start - end properties: end: type: integer format: int64 description: Distance of the end of the intersection relative to the beginning of the path minimum: 0 start: type: integer format: int64 description: Distance of the beginning of the intersection relative to the beginning of the path minimum: 0 JourneyProposals: type: object required: - journeys properties: journeys: type: array items: type: array items: $ref: '#/components/schemas/TrainSchedulePart' description: Each journey is a list of train schedule parts. JourneySearchQuery: type: object required: - infra_id - timetable_ids - start_ms - start_tolerance - origin - destination - transfer_ms properties: destination: $ref: '#/components/schemas/OperationalPointPartReference' infra_id: type: integer format: int64 origin: $ref: '#/components/schemas/OperationalPointPartReference' start_ms: type: integer format: int32 description: |- Amount of milliseconds from midnight UTC to the center of the start window. The start window is defined as the time between `start_sec - start_tolerance` and `start_sec + start_tolerance`. minimum: 0 start_tolerance: type: integer format: int32 description: |- Half the time of the start window in milliseconds. The start window is defined as the time between `start_sec - start_tolerance` and `start_sec + start_tolerance`. minimum: 0 timetable_ids: type: array items: type: integer format: int64 uniqueItems: true transfer_ms: type: integer format: int32 description: |- Constant time for a transfer/footpath in the same stop in milliseconds. The algorithm assumes that changing from one train to another in a stop always take this constant time. minimum: 0 LabelsChangeGroup: type: object required: - value properties: value: type: array items: type: string LevelCrossing: type: object required: - id - name - short_zone_length - parts properties: id: type: string maxLength: 255 minLength: 1 name: type: string parts: type: array items: $ref: '#/components/schemas/LevelCrossingPart' short_zone_length: type: integer format: int64 description: Short zone length in mm minimum: 0 additionalProperties: false LevelCrossingPart: type: object required: - track - position - pedal_upstream - pedal_downstream properties: pedal_downstream: type: integer format: int64 description: Offset in mm of the downstream pedal from the main position (downstream refers to the START_TO_STOP direction of the track) minimum: 0 pedal_upstream: type: integer format: int64 description: Offset in mm of the upstream pedal from the main position (upstream refers to the START_TO_STOP direction of the track) minimum: 0 position: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false LevelValues: type: array items: type: string LightEffortCurves: type: object required: - modes - default_mode properties: default_mode: type: string modes: type: object additionalProperties: $ref: '#/components/schemas/LightModeEffortCurves' propertyNames: type: string additionalProperties: false LightElectricalProfileSet: type: object required: - id - name properties: id: type: integer format: int64 name: type: string LightModeEffortCurves: type: object required: - is_electric properties: is_electric: type: boolean LightRollingStock: type: object required: - id - name - railjson_version - locked - effort_curves - base_power_class - length - max_speed - mass - loading_gauge - metadata - power_restrictions - supported_signaling_systems - primary_category - other_categories properties: base_power_class: type: - string - 'null' effort_curves: $ref: '#/components/schemas/LightEffortCurves' id: type: integer format: int64 length: type: number format: double description: Length in m loading_gauge: $ref: '#/components/schemas/LoadingGaugeType' locked: type: boolean mass: type: number format: double description: Mass in kg max_speed: type: number format: double description: Velocity in m·s⁻¹ metadata: oneOf: - type: 'null' - $ref: '#/components/schemas/RollingStockMetadata' name: type: string other_categories: type: array items: $ref: '#/components/schemas/TrainMainCategory' power_restrictions: type: object additionalProperties: type: string propertyNames: type: string primary_category: $ref: '#/components/schemas/TrainMainCategory' railjson_version: type: string supported_signaling_systems: type: array items: $ref: '#/components/schemas/SupportedSignalingSystem' uniqueItems: true LightRollingStockWithLiveries: allOf: - $ref: '#/components/schemas/LightRollingStock' - type: object required: - liveries properties: liveries: type: array items: $ref: '#/components/schemas/RollingStockLivery' LoadingGaugeLimit: type: object required: - category - begin - end properties: begin: type: number format: double category: $ref: '#/components/schemas/LoadingGaugeType' end: type: number format: double additionalProperties: false LoadingGaugeType: type: string enum: - G1 - G2 - GA - GB - GB1 - GC - FR3.3 - FR3.3/GB/G2 - GLOTT MacroNodeBatchForm: type: object required: - macro_nodes - scenario_id properties: macro_nodes: type: array items: $ref: '#/components/schemas/MacroNodeForm' scenario_id: type: integer format: int64 MacroNodeBatchResponse: type: object required: - macro_nodes properties: macro_nodes: type: array items: $ref: '#/components/schemas/MacroNodeResponse' MacroNodeForm: type: object required: - position_x - position_y - connection_time - labels - path_item_key properties: connection_time: type: integer format: int64 full_name: type: - string - 'null' is_collapsed: type: boolean labels: $ref: '#/components/schemas/Tags' path_item_key: type: string position_x: type: integer format: int64 position_y: type: integer format: int64 trigram: type: - string - 'null' MacroNodeListResponse: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/MacroNodeResponse' MacroNodeResponse: type: object required: - id - position_x - position_y - connection_time - labels - path_item_key - is_collapsed properties: connection_time: type: integer format: int64 full_name: type: - string - 'null' id: type: integer format: int64 is_collapsed: type: boolean labels: $ref: '#/components/schemas/Tags' path_item_key: type: string position_x: type: integer format: int64 position_y: type: integer format: int64 trigram: type: - string - 'null' MacroNoteBatchForm: type: object required: - macro_notes - scenario_id properties: macro_notes: type: array items: $ref: '#/components/schemas/MacroNoteForm' scenario_id: type: integer format: int64 MacroNoteBatchResponse: type: object required: - macro_notes properties: macro_notes: type: array items: $ref: '#/components/schemas/MacroNoteResponse' MacroNoteForm: type: object required: - x - y - title - text - labels properties: labels: $ref: '#/components/schemas/Tags' text: type: string title: type: string x: type: integer format: int64 y: type: integer format: int64 MacroNoteListResponse: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/MacroNoteResponse' MacroNoteResponse: type: object required: - id - x - y - title - text - labels properties: id: type: integer format: int64 labels: $ref: '#/components/schemas/Tags' text: type: string title: type: string x: type: integer format: int64 y: type: integer format: int64 Margins: type: object required: - boundaries - values properties: boundaries: type: array items: $ref: '#/components/schemas/NonBlankString' values: type: array items: type: string description: |- The values of the margins. Must contains one more element than the boundaries Can be a percentage `X%` or a time in minutes per 100 kilometer `Xmin/100km` example: - 5% - 2min/100km additionalProperties: false ModeEffortCurves: type: object required: - curves - default_curve - is_electric properties: curves: type: array items: $ref: '#/components/schemas/ConditionalEffortCurve' default_curve: $ref: '#/components/schemas/EffortCurve' is_electric: type: boolean additionalProperties: false MoveOperation: type: object description: JSON Patch 'move' operation representation required: - from - path properties: from: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location to move value from. path: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed. NeutralSection: type: object description: |- Neutral sections are portions of track where trains aren't allowed to pull power from electrifications. They have to rely on inertia to cross such sections. In practice, neutral sections are delimited by signs. In OSRD, neutral sections are directional to allow accounting for different sign placement depending on the direction. For more details see [the documentation](https://osrd.fr/en/docs/explanation/neutral_sections/). required: - id - announcement_track_ranges - track_ranges - lower_pantograph properties: announcement_track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' extensions: $ref: '#/components/schemas/NeutralSectionExtensions' id: type: string maxLength: 255 minLength: 1 lower_pantograph: type: boolean track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' additionalProperties: false NeutralSectionExtensions: type: object properties: neutral_sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/NeutralSectionNeutralSncfExtension' additionalProperties: false NeutralSectionNeutralSncfExtension: type: object required: - announcement - exe - end - rev properties: announcement: type: array items: $ref: '#/components/schemas/Sign' end: type: array items: $ref: '#/components/schemas/Sign' exe: $ref: '#/components/schemas/Sign' rev: type: array items: $ref: '#/components/schemas/Sign' additionalProperties: false NewDocumentResponse: type: object required: - document_key properties: document_key: type: integer format: int64 NonBlankString: type: string minLength: 1 ObjectRef: type: object required: - type - obj_id properties: obj_id: type: string type: $ref: '#/components/schemas/ObjectType' additionalProperties: false ObjectType: type: string enum: - TrackSection - Signal - SpeedSection - Detector - NeutralSection - Switch - SwitchType - BufferStop - Route - OperationalPoint - Electrification - LevelCrossing OccupancyBlockForm: type: object required: - infra_id - timetable_id - ids - path properties: electrical_profile_set_id: type: - integer - 'null' format: int64 ids: type: array items: type: integer format: int64 uniqueItems: true infra_id: type: integer format: int64 path: $ref: '#/components/schemas/CoreTrainPath' timetable_id: type: integer format: int64 OccupancyBlocksTrainScheduleResult: type: object description: Occupancy blocks output is described by blocks (signal updates) required: - train_schedule - exceptions properties: exceptions: type: object description: Exceptions whose blocks are different from the paced train additionalProperties: type: array items: $ref: '#/components/schemas/CoreSignalUpdate' propertyNames: type: string train_schedule: type: array items: $ref: '#/components/schemas/CoreSignalUpdate' description: Train schedule Operation: oneOf: - allOf: - $ref: '#/components/schemas/InfraObject' - type: object required: - operation_type properties: operation_type: type: string enum: - CREATE title: OperationCreate - allOf: - type: object required: - obj_id - obj_type - railjson_patch properties: obj_id: type: string obj_type: $ref: '#/components/schemas/ObjectType' railjson_patch: type: array items: $ref: '#/components/schemas/PatchOperation' description: Representation of JSON Patch (list of patch operations) additionalProperties: false - type: object required: - operation_type properties: operation_type: type: string enum: - UPDATE title: OperationUpdate - allOf: - type: object description: A delete operation. Contains same information as a object ref but has another serialization. required: - obj_id - obj_type properties: obj_id: type: string obj_type: $ref: '#/components/schemas/ObjectType' additionalProperties: false - type: object required: - operation_type properties: operation_type: type: string enum: - DELETE title: OperationDelete OperationalPoint: type: object required: - id - parts - name - country_code - main_code - is_passenger_station properties: country_code: type: string minLength: 1 id: type: string maxLength: 255 minLength: 1 is_passenger_station: type: boolean main_code: type: string minLength: 1 name: type: string minLength: 1 parts: type: array items: $ref: '#/components/schemas/OperationalPointPart' plc: oneOf: - type: 'null' - type: string minLength: 1 description: 'Primary Location Code : https://rne.eu/it/products/ccs/crd/' secondary_code: oneOf: - type: 'null' - type: string minLength: 1 secondary_name: oneOf: - type: 'null' - type: string minLength: 1 uic: type: - integer - 'null' format: int32 minimum: 0 weight: type: - integer - 'null' format: int32 minimum: 0 additionalProperties: false OperationalPointPart: type: object required: - track - position - local_track_name properties: extensions: $ref: '#/components/schemas/OperationalPointPartExtension' local_track_name: $ref: '#/components/schemas/NonBlankString' position: type: number format: double description: Offset on the track section, in m track: type: string maxLength: 255 minLength: 1 additionalProperties: false OperationalPointPartExtension: type: object properties: sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/OperationalPointPartSncfExtension' additionalProperties: false OperationalPointPartReference: type: object required: - operational_point properties: local_track_name: oneOf: - type: 'null' - type: string minLength: 1 operational_point: $ref: '#/components/schemas/OperationalPointReference' OperationalPointPartSncfExtension: type: object required: - kp properties: kp: type: string additionalProperties: false OperationalPointReference: oneOf: - type: object title: OperationalPointReferenceId required: - operational_point - type properties: operational_point: oneOf: - type: string maxLength: 255 minLength: 1 description: The object id of an operational point type: type: string enum: - id - type: object title: OperationalPointReferenceTrigram required: - trigram - type properties: secondary_code: oneOf: - type: 'null' - type: string minLength: 1 description: An optional secondary code to identify a more specific location trigram: oneOf: - type: string minLength: 1 description: The operational point trigram type: type: string enum: - trigram - type: object title: OperationalPointReferenceUic required: - uic - type properties: secondary_code: oneOf: - type: 'null' - type: string minLength: 1 description: An optional secondary code to identify a more specific location type: type: string enum: - uic uic: type: integer format: int32 description: The [UIC](https://en.wikipedia.org/wiki/List_of_UIC_country_codes) code of an operational point minimum: 0 OptionsChangeGroup: type: object required: - value properties: value: $ref: '#/components/schemas/TrainScheduleOptions' PacedTrainException: allOf: - type: object properties: occurrence_index: type: integer - type: object properties: constraint_distribution: $ref: '#/components/schemas/ConstraintDistributionChangeGroup' initial_speed: $ref: '#/components/schemas/InitialSpeedChangeGroup' labels: $ref: '#/components/schemas/LabelsChangeGroup' options: $ref: '#/components/schemas/OptionsChangeGroup' path_and_schedule: $ref: '#/components/schemas/PathAndScheduleChangeGroup' rolling_stock: $ref: '#/components/schemas/RollingStockChangeGroup' rolling_stock_category: $ref: '#/components/schemas/RollingStockCategoryChangeGroup' speed_limit_tag: $ref: '#/components/schemas/SpeedLimitTagChangeGroup' start_time: $ref: '#/components/schemas/StartTimeChangeGroup' train_name: $ref: '#/components/schemas/TrainNameChangeGroup' - type: object required: - key properties: disabled: type: boolean id: type: - integer - 'null' format: int64 description: TODO The new exception table id (for incremental migration) key: type: string description: Unique key for the exception within the paced train, required and generated by the frontend. description: |- Represents an exception for a paced train occurrence. Occurrences are normally generated from a base paced train. An exception occurs when an occurrence is added or modified compared to the base model. Each field corresponds to a "ChangeGroup" of attributes that may deviate from the paced train. - Created: A new occurrence manually added by the user, not originally present in the automatically generated occurrences based on the paced train. - Modified: An existing occurrence that has been changed PaginationStats: type: object description: |- Statistics about a paginated editoast response Provides the pagination settings issued in the request alongside a few convenience fields useful to navigate the paginated results. # Expected usage This struct is meant to be used and flattened in the response of a paginated query. ``` #[derive(Serialize, ToSchema)] struct MyPaginatedResponse { #[schema(flatten)] pagination: PaginationStats, result: Vec, // any other field that makes sense in a paginated response } ``` We named the data field `result` to cope with the old pagination schema which enforced this name. For new paginated responses, the field name is up to your imagination :) required: - count - page_size - page_count - current - previous - next properties: count: type: integer format: int64 description: The total number of items minimum: 0 current: type: integer format: int64 description: The current page number minimum: 1 next: type: - integer - 'null' format: int64 description: The next page number, if any minimum: 1 page_count: type: integer format: int64 description: The total number of pages minimum: 0 page_size: type: integer format: int64 description: The number of items per page minimum: 1 previous: type: - integer - 'null' format: int64 description: The previous page number, if any minimum: 1 Patch: type: array items: $ref: '#/components/schemas/PatchOperation' description: Representation of JSON Patch (list of patch operations) PatchOperation: oneOf: - allOf: - $ref: '#/components/schemas/AddOperation' description: '''add'' operation' - type: object required: - op properties: op: type: string enum: - add title: PatchOperationAddOperation description: '''add'' operation' - allOf: - $ref: '#/components/schemas/RemoveOperation' description: '''remove'' operation' - type: object required: - op properties: op: type: string enum: - remove title: PatchOperationRemoveOperation description: '''remove'' operation' - allOf: - $ref: '#/components/schemas/ReplaceOperation' description: '''replace'' operation' - type: object required: - op properties: op: type: string enum: - replace title: PatchOperationReplaceOperation description: '''replace'' operation' - allOf: - $ref: '#/components/schemas/MoveOperation' description: '''move'' operation' - type: object required: - op properties: op: type: string enum: - move title: PatchOperationMoveOperation description: '''move'' operation' - allOf: - $ref: '#/components/schemas/CopyOperation' description: '''copy'' operation' - type: object required: - op properties: op: type: string enum: - copy title: PatchOperationCopyOperation description: '''copy'' operation' - allOf: - $ref: '#/components/schemas/TestOperation' description: '''test'' operation' - type: object required: - op properties: op: type: string enum: - test title: PatchOperationTestOperation description: '''test'' operation' description: JSON Patch single patch operation PathAndScheduleChangeGroup: type: object required: - path - schedule - margins - power_restrictions properties: margins: $ref: '#/components/schemas/Margins' path: type: array items: $ref: '#/components/schemas/PathItem' power_restrictions: type: array items: $ref: '#/components/schemas/PowerRestrictionItem' schedule: type: array items: $ref: '#/components/schemas/ScheduleItem' PathItem: type: object description: A location on the path of a train required: - id - location properties: id: oneOf: - type: string minLength: 1 description: |- The unique identifier of the path item. This is used to reference path items in the train schedule. location: $ref: '#/components/schemas/PathItemLocation' PathItemLocation: oneOf: - allOf: - $ref: '#/components/schemas/TrackOffset' - type: object required: - type properties: type: type: string enum: - track_offset title: PathItemLocationTrackOffset - allOf: - $ref: '#/components/schemas/OperationalPointPartReference' - type: object required: - type properties: type: type: string enum: - operational_point_part_reference title: PathItemLocationOperationalPointPartReference description: The location of a path waypoint PathProperties: type: object description: Properties along a path. Each property is optional since it depends on what the user requests. required: - slopes - curves - electrifications - geometry - operational_points - zones properties: curves: oneOf: - type: object description: Property f64 values along a path. Each value is associated to a range of the path. required: - boundaries - values properties: boundaries: type: array items: type: integer format: int64 minimum: 0 description: |- List of `n` boundaries of the ranges. A boundary is a distance from the beginning of the path in mm. values: type: array items: type: number format: double description: List of `n+1` values associated to the ranges description: Curves along the path electrifications: oneOf: - type: object description: Electrification property along a path. Each value is associated to a range of the path. required: - boundaries - values properties: boundaries: type: array items: type: integer format: int64 minimum: 0 description: |- List of `n` boundaries of the ranges. A boundary is a distance from the beginning of the path in mm. values: type: array items: oneOf: - type: object title: PropertyElectrificationValueElectrification description: Electrified section with a given voltage required: - voltage - type properties: type: type: string enum: - electrification voltage: type: string - type: object title: PropertyElectrificationValueNeutralSection description: Neutral section with a lower pantograph instruction or just a dead section required: - lower_pantograph - type properties: lower_pantograph: type: boolean type: type: string enum: - neutral_section - type: object title: PropertyElectrificationValueNonElectrified description: Non electrified section required: - type properties: type: type: string enum: - non_electrified description: List of `n+1` values associated to the ranges description: Electrification modes and neutral section along the path geometry: $ref: '#/components/schemas/GeoJsonLineString' description: Geometry of the path operational_points: type: array items: $ref: '#/components/schemas/CoreOperationalPointOnPath' description: Operational points along the path slopes: oneOf: - type: object description: Property f64 values along a path. Each value is associated to a range of the path. required: - boundaries - values properties: boundaries: type: array items: type: integer format: int64 minimum: 0 description: |- List of `n` boundaries of the ranges. A boundary is a distance from the beginning of the path in mm. values: type: array items: type: number format: double description: List of `n+1` values associated to the ranges description: Slopes along the path zones: oneOf: - type: object description: Zones along a path. Each value is associated to a range of the path. required: - boundaries - values properties: boundaries: type: array items: type: integer format: int64 minimum: 0 description: |- List of `n` boundaries of the ranges. A boundary is a distance from the beginning of the path in mm. values: type: array items: type: string description: List of `n+1` values associated to the ranges description: Zones along the path PathPropertiesInput: type: object required: - track_section_ranges properties: track_section_ranges: type: array items: $ref: '#/components/schemas/CoreTrackRange' description: List of track sections PathfindingFailure: oneOf: - allOf: - $ref: '#/components/schemas/CorePathfindingInputError' - type: object required: - failed_status properties: failed_status: type: string enum: - pathfinding_input_error title: PathfindingFailurePathfindingInputError - allOf: - $ref: '#/components/schemas/CorePathfindingNotFound' - type: object required: - failed_status properties: failed_status: type: string enum: - pathfinding_not_found title: PathfindingFailurePathfindingNotFound PathfindingInput: type: object description: |- Path input is described by some rolling stock information and a list of path waypoints required: - rolling_stock_loading_gauge - rolling_stock_is_thermal - rolling_stock_supported_electrifications - rolling_stock_supported_signaling_systems - path_items - rolling_stock_maximum_speed - rolling_stock_length properties: allowed_track_sections: type: array items: type: string description: Set of authorized track section ids, empty means no restriction uniqueItems: true path_items: type: array items: $ref: '#/components/schemas/PathItemLocation' description: List of waypoints given to the pathfinding rolling_stock_is_thermal: type: boolean description: Can the rolling stock run on non-electrified tracks rolling_stock_length: type: integer format: int64 description: Rolling stock length in millimeters minimum: 0 rolling_stock_loading_gauge: $ref: '#/components/schemas/LoadingGaugeType' description: The loading gauge of the rolling stock rolling_stock_maximum_speed: type: number format: double description: Rolling stock maximum speed rolling_stock_supported_electrifications: type: array items: type: string description: |- List of supported electrification modes. Empty if does not support any electrification uniqueItems: true rolling_stock_supported_signaling_systems: type: array items: type: string description: List of supported signaling systems uniqueItems: true speed_limit_tag: type: - string - 'null' description: Speed limit tag, used to estimate the travel time stops_at_end_of_block: type: - boolean - 'null' description: |- Stop the train at the next block-delimiting signal, staying in the same block and keeping the tail on the initial position PathfindingItem: type: object required: - location properties: duration: type: - integer - 'null' format: int64 description: The stop duration in milliseconds, None if the train does not stop. minimum: 0 location: $ref: '#/components/schemas/PathItemLocation' description: The associated location timing_data: oneOf: - type: 'null' - $ref: '#/components/schemas/StepTimingData' description: Time at which the train should arrive at the location, if specified PathfindingOutput: type: object required: - track_ranges - detectors - switches_directions properties: detectors: type: array items: $ref: '#/components/schemas/Identifier' switches_directions: type: object additionalProperties: type: string maxLength: 255 minLength: 1 propertyNames: type: string maxLength: 255 minLength: 1 track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' PathfindingResult: oneOf: - allOf: - $ref: '#/components/schemas/CorePathfindingResultSuccess' - type: object required: - status properties: status: type: string enum: - success title: PathfindingResultSuccess - allOf: - $ref: '#/components/schemas/PathfindingFailure' - type: object required: - status properties: status: type: string enum: - failure title: PathfindingResultFailure PathfindingTrackLocationInput: type: object required: - track - position properties: position: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false PositiveDuration: type: string format: duration description: Duration in ISO 8601 format (e.g. PT2H for 2 hours) examples: - PT2H PowerRestrictionItem: type: object required: - from - to - value properties: from: type: string minLength: 1 to: type: string minLength: 1 value: type: string additionalProperties: false Project: type: object required: - id - name - creation_date - last_modification - tags properties: budget: type: - integer - 'null' format: int32 creation_date: type: string format: date-time description: type: - string - 'null' funders: type: - string - 'null' id: type: integer format: int64 image: type: - integer - 'null' format: int64 last_modification: type: string format: date-time name: type: string objectives: type: - string - 'null' tags: $ref: '#/components/schemas/Tags' ProjectCreateForm: type: object description: Creation form for a project required: - name properties: budget: type: - integer - 'null' format: int32 description: type: - string - 'null' maxLength: 1024 funders: type: - string - 'null' maxLength: 1024 image: type: - integer - 'null' format: int64 description: The id of the image document name: type: string maxLength: 128 objectives: type: - string - 'null' maxLength: 4096 tags: $ref: '#/components/schemas/Tags' ProjectPatchForm: type: object description: Patch form for a project properties: budget: type: - integer - 'null' format: int32 description: type: - string - 'null' maxLength: 1024 funders: type: - string - 'null' maxLength: 1024 image: type: - integer - 'null' format: int64 description: The id of the image document name: type: - string - 'null' maxLength: 128 objectives: type: - string - 'null' maxLength: 4096 tags: oneOf: - type: 'null' - $ref: '#/components/schemas/Tags' ProjectPathForm: type: object required: - infra_id - timetable_id - ids - track_section_ranges properties: electrical_profile_set_id: type: - integer - 'null' format: int64 ids: type: array items: type: integer format: int64 uniqueItems: true infra_id: type: integer format: int64 timetable_id: type: integer format: int64 track_section_ranges: type: array items: type: object description: |- An oriented range on a track section. `begin` is always less than `end`. required: - track_section - begin - end - direction properties: begin: type: integer format: int64 description: The beginning of the range in mm. minimum: 0 direction: $ref: '#/components/schemas/Direction' description: The direction of the range. end: type: integer format: int64 description: The end of the range in mm. minimum: 0 track_section: oneOf: - type: string maxLength: 255 minLength: 1 description: The track section identifier. ProjectPathTrainScheduleResult: type: object description: Project path output is described by time-space points and blocks required: - train_schedule - exceptions properties: exceptions: type: object description: Exceptions whose projection is different from the train schedule when it has a paced additionalProperties: type: array items: $ref: '#/components/schemas/SpaceTimeCurve' propertyNames: type: string train_schedule: type: array items: $ref: '#/components/schemas/SpaceTimeCurve' description: Train schedule ProjectWithStudies: allOf: - $ref: '#/components/schemas/Project' - type: object required: - studies_count properties: studies_count: type: integer format: int64 minimum: 0 RailJson: type: object description: An infrastructure description in the RailJson format required: - version - operational_points - routes - extended_switch_types - switches - track_sections - speed_sections - neutral_sections - electrifications - signals - buffer_stops - detectors - level_crossings properties: buffer_stops: type: array items: $ref: '#/components/schemas/BufferStop' description: '`BufferStops` are obstacles designed to prevent trains from sliding off dead ends.' detectors: type: array items: $ref: '#/components/schemas/Detector' description: '`Detector` is a device that identifies the presence of a train in a TVD section (Track Vacancy Detection section), indicating when a track area is occupied.' electrifications: type: array items: $ref: '#/components/schemas/Electrification' description: To allow electric trains to run on our infrastructure, we need to specify which parts of the infrastructure is electrified. extended_switch_types: type: array items: $ref: '#/components/schemas/SwitchType' description: These define the types of switches available for route management. level_crossings: type: array items: $ref: '#/components/schemas/LevelCrossing' description: '`LevelCrossing` is an intersections where a railway line crosses a road' neutral_sections: type: array items: $ref: '#/components/schemas/NeutralSection' description: '`NeutralSections` are designated areas of rail infrastructure where train drivers are instructed to cut the power supply to the train, primarily for safety reasons.' operational_points: type: array items: $ref: '#/components/schemas/OperationalPoint' description: Operational point is also known in French as "Point Remarquable" (PR). One `OperationalPoint` is a **collection** of points (`OperationalPointParts`) of interest. routes: type: array items: $ref: '#/components/schemas/Route' description: A `Route` is an itinerary in the infrastructure. A train path is a sequence of routes. Routes are used to reserve section of path with the interlocking. signals: type: array items: $ref: '#/components/schemas/Signal' description: '`Signals` are devices that visually convey information to train drivers about whether it is safe to proceed, stop, or slow down, based on the interlocking system and the specific signaling rules in place.' speed_sections: type: array items: $ref: '#/components/schemas/SpeedSection' description: The `SpeedSections` represent speed limits (in meters per second) that are applied on some parts of the tracks. One `SpeedSection` can span on several track sections, and do not necessarily cover the whole track sections. Speed sections can overlap. switches: type: array items: $ref: '#/components/schemas/Switch' description: '`Switches` allow for route control and redirection of trains.' track_sections: type: array items: $ref: '#/components/schemas/TrackSection' description: '`TrackSection`` is a segment of rail between switches that serves as a bidirectional path for trains, and can be defined as the longest possible stretch of track within a rail infrastructure.' version: type: string description: The version of the RailJSON format. Defaults to the current version. default: 3.5.3 additionalProperties: false ReceptionSignal: type: string description: |- State of the signal where the train is received for its stop. For (important) details, see . enum: - OPEN - STOP - SHORT_SLIP_STOP RefillLaw: type: object description: physical law defining how the storage can be refilled required: - tau - soc_ref properties: soc_ref: type: number format: double maximum: 1 minimum: 0 tau: type: number format: double minimum: 0 additionalProperties: false RelatedOperationalPoint: type: object required: - id - parts - name - country_code - main_code - is_passenger_station properties: country_code: type: string minLength: 1 geo: oneOf: - type: 'null' - $ref: '#/components/schemas/GeoJsonPoint' id: type: string maxLength: 255 minLength: 1 is_passenger_station: type: boolean main_code: type: string minLength: 1 name: type: string minLength: 1 parts: type: array items: $ref: '#/components/schemas/RelatedOperationalPointPart' plc: oneOf: - type: 'null' - type: string minLength: 1 secondary_code: oneOf: - type: 'null' - type: string minLength: 1 secondary_name: oneOf: - type: 'null' - type: string minLength: 1 uic: type: - integer - 'null' format: int32 minimum: 0 weight: type: - integer - 'null' format: int32 minimum: 0 RelatedOperationalPointPart: allOf: - $ref: '#/components/schemas/OperationalPointPart' - type: object properties: geo: oneOf: - type: 'null' - $ref: '#/components/schemas/GeoJsonPoint' RemoveOperation: type: object description: JSON Patch 'remove' operation representation required: - path properties: path: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed. ReplaceOperation: type: object description: JSON Patch 'replace' operation representation required: - path - value properties: path: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed. value: description: Value to replace with. RequirementId: type: object required: - id - type properties: id: type: string type: $ref: '#/components/schemas/RequirementType' RequirementType: type: string enum: - TRAIN - WORK_SCHEDULE ResourceType: type: string enum: - infra - rolling_stock RevokeBody: type: object required: - resource_type - resource_id - subject_id properties: resource_id: type: integer format: int64 resource_type: $ref: '#/components/schemas/ResourceType' subject_id: type: integer format: int64 Role: type: string enum: - Admin - Stdcm - OperationalStudies RollingResistancePerWeight: type: object required: - type - A - B - C properties: A: type: number format: double description: |2- Solid friction in N·kg⁻¹; N = kg⋅m⋅s⁻² Acceleration in m·s⁻² B: type: number format: double description: |2- Viscosity friction in (N·kg⁻¹)·(m/s)⁻¹; N = kg⋅m⋅s⁻² Viscosity friction per weight in s⁻¹ C: type: number format: double description: |2- Aerodynamic drag per kg in (N·kg⁻¹)·(m/s)⁻²; N = kg⋅m⋅s⁻² Aerodynamic drag per kg in m⁻¹ type: type: string additionalProperties: false RollingStock: type: object required: - id - railjson_version - name - effort_curves - metadata - length - max_speed - startup_time - startup_acceleration - comfort_acceleration - const_gamma - inertia_coefficient - base_power_class - mass - rolling_resistance - loading_gauge - power_restrictions - energy_sources - locked - electrical_power_startup_time - raise_pantograph_time - version - supported_signaling_systems - primary_category - other_categories properties: base_power_class: type: - string - 'null' comfort_acceleration: type: number format: double description: Acceleration in m·s⁻² const_gamma: type: number format: double description: Acceleration in m·s⁻² effort_curves: $ref: '#/components/schemas/EffortCurves' electrical_power_startup_time: type: - number - 'null' format: double description: Duration in s energy_sources: type: array items: $ref: '#/components/schemas/EnergySource' id: type: integer format: int64 inertia_coefficient: type: number format: double length: type: number format: double description: Length in m loading_gauge: $ref: '#/components/schemas/LoadingGaugeType' locked: type: boolean mass: type: number format: double description: Mass in kg max_speed: type: number format: double description: Velocity in m·s⁻¹ metadata: oneOf: - type: 'null' - $ref: '#/components/schemas/RollingStockMetadata' name: type: string other_categories: type: array items: $ref: '#/components/schemas/TrainMainCategory' power_restrictions: type: object additionalProperties: type: string propertyNames: type: string primary_category: $ref: '#/components/schemas/TrainMainCategory' railjson_version: type: string raise_pantograph_time: type: - number - 'null' format: double description: Duration in s rolling_resistance: $ref: '#/components/schemas/RollingResistancePerWeight' startup_acceleration: type: number format: double description: Acceleration in m·s⁻² startup_time: type: number format: double description: Duration in s supported_signaling_systems: type: array items: $ref: '#/components/schemas/SupportedSignalingSystem' uniqueItems: true version: type: integer format: int64 RollingStockCategoryChangeGroup: type: object properties: value: oneOf: - type: 'null' - $ref: '#/components/schemas/TrainCategory' RollingStockChangeGroup: type: object required: - rolling_stock_name - comfort properties: comfort: $ref: '#/components/schemas/Comfort' rolling_stock_name: type: string RollingStockForm: type: object required: - name - effort_curves - base_power_class - length - max_speed - startup_time - startup_acceleration - comfort_acceleration - const_gamma - inertia_coefficient - mass - rolling_resistance - loading_gauge - power_restrictions - supported_signaling_systems - primary_category - other_categories properties: base_power_class: type: - string - 'null' example: '5' comfort_acceleration: type: number format: double description: Acceleration in m·s⁻² const_gamma: type: number format: double description: |2- The constant gamma braking coefficient used when NOT circulating under ETCS/ERTMS signaling system Acceleration in m·s⁻² effort_curves: $ref: '#/components/schemas/EffortCurves' electrical_power_startup_time: type: - number - 'null' format: double description: |2- The time the train takes before actually using electrical power (in seconds). Is null if the train is not electric. Duration in s example: 5.0 energy_sources: type: array items: $ref: '#/components/schemas/EnergySource' inertia_coefficient: type: number format: double length: type: number format: double description: Length in m loading_gauge: $ref: '#/components/schemas/LoadingGaugeType' mass: type: number format: double description: Mass in kg max_speed: type: number format: double description: Velocity in m·s⁻¹ metadata: oneOf: - type: 'null' - $ref: '#/components/schemas/RollingStockMetadata' name: type: string other_categories: type: array items: $ref: '#/components/schemas/TrainMainCategory' power_restrictions: type: object description: Mapping of power restriction code to power class additionalProperties: type: string propertyNames: type: string primary_category: $ref: '#/components/schemas/TrainMainCategory' railjson_version: type: string default: '3.4' raise_pantograph_time: type: - number - 'null' format: double description: |2- The time it takes to raise this train's pantograph in seconds. Is null if the train is not electric. Duration in s example: 15.0 rolling_resistance: $ref: '#/components/schemas/RollingResistancePerWeight' startup_acceleration: type: number format: double description: Acceleration in m·s⁻² startup_time: type: number format: double description: Duration in s supported_signaling_systems: type: array items: $ref: '#/components/schemas/SupportedSignalingSystem' uniqueItems: true RollingStockLivery: type: object description: | Rolling Stock Livery A rolling stock can have several liveries, which are deleted on cascade if the rolling stock is removed. It can have several liveries, and each livery can have one or several separated images and one compound image (created by aggregating the separated images together). A livery has a compound_image_id field which refers to a document. The separated images of the livery also have a image_id field which refers to a document. /!\ Its compound image is not deleted by cascade if the livery is removed. required: - id - name - rolling_stock_id properties: compound_image_id: type: - integer - 'null' format: int64 id: type: integer format: int64 name: type: string rolling_stock_id: type: integer format: int64 RollingStockLiveryCreateForm: type: object required: - name - images properties: images: type: array items: type: array items: type: integer format: int32 minimum: 0 name: type: string RollingStockLockedUpdateForm: type: object required: - locked properties: locked: type: boolean description: New locked value additionalProperties: false RollingStockMetadata: type: object required: - detail - family - type - grouping - series - subseries - unit - number - reference properties: detail: type: string family: type: string grouping: type: string number: type: string reference: type: string series: type: string subseries: type: string type: type: string unit: type: string additionalProperties: false RollingStockWithLiveries: allOf: - $ref: '#/components/schemas/RollingStock' - type: object required: - liveries properties: liveries: type: array items: $ref: '#/components/schemas/RollingStockLivery' RoundTrips: type: object description: Represents a collection of round trips and one-way properties: one_ways: type: array items: type: integer format: int64 description: List of one-way trains round_trips: type: array items: type: array items: type: integer format: int64 minimum: 0 maxItems: 2 minItems: 2 description: List of round trips, each represented by a tuple Route: type: object required: - id - entry_point - entry_point_direction - exit_point - release_detectors - switches_directions properties: entry_point: $ref: '#/components/schemas/Waypoint' entry_point_direction: $ref: '#/components/schemas/Direction' exit_point: $ref: '#/components/schemas/Waypoint' id: type: string maxLength: 255 minLength: 1 release_detectors: type: array items: type: string maxLength: 255 minLength: 1 switches_directions: type: object additionalProperties: type: string maxLength: 255 minLength: 1 propertyNames: type: string maxLength: 255 minLength: 1 additionalProperties: false RoutePath: type: object required: - track_ranges - switches_directions properties: switches_directions: type: array items: type: object required: - switch_id - group_id properties: group_id: type: string maxLength: 255 minLength: 1 switch_id: type: string maxLength: 255 minLength: 1 track_ranges: type: array items: $ref: '#/components/schemas/DirectionalTrackRange' Scenario: type: object required: - id - infra_id - name - description - creation_date - last_modification - tags - timetable_id - study_id properties: creation_date: type: string format: date-time description: type: string electrical_profile_set_id: type: integer format: int64 id: type: integer format: int64 infra_id: type: integer format: int64 last_modification: type: string format: date-time name: type: string study_id: type: integer format: int64 tags: $ref: '#/components/schemas/Tags' timetable_id: type: integer format: int64 ScenarioCreateForm: type: object description: This structure is used by the post endpoint to create a scenario required: - name - infra_id - timetable_id - study_id properties: description: type: string electrical_profile_set_id: type: - integer - 'null' format: int64 infra_id: type: integer format: int64 name: type: string study_id: type: integer format: int64 tags: $ref: '#/components/schemas/Tags' timetable_id: type: integer format: int64 ScenarioPatchForm: type: object description: This structure is used by the patch endpoint to patch a scenario properties: description: type: - string - 'null' electrical_profile_set_id: type: - integer - 'null' format: int64 infra_id: type: - integer - 'null' format: int64 name: type: - string - 'null' tags: oneOf: - type: 'null' - $ref: '#/components/schemas/Tags' ScenarioReference: type: object required: - project_id - project_name - study_id - study_name - scenario_id - scenario_name properties: project_id: type: integer format: int64 project_name: type: string scenario_id: type: integer format: int64 scenario_name: type: string study_id: type: integer format: int64 study_name: type: string ScenarioResponse: allOf: - $ref: '#/components/schemas/Scenario' - type: object required: - infra_name - train_schedules_count - project - study - timetable_type properties: infra_name: type: string project: $ref: '#/components/schemas/Project' study: $ref: '#/components/schemas/Study' timetable_type: $ref: '#/components/schemas/TimetableType' train_schedules_count: type: integer format: int64 ScenarioWithDetails: allOf: - $ref: '#/components/schemas/Scenario' - type: object required: - infra_name - train_schedules_count - timetable_type properties: infra_name: type: string timetable_type: $ref: '#/components/schemas/TimetableType' train_schedules_count: type: integer format: int64 ScheduleItem: type: object required: - at properties: arrival: oneOf: - type: 'null' - $ref: '#/components/schemas/PositiveDuration' description: |- The expected arrival time at the stop. This will be used to compute the final simulation time. at: oneOf: - type: string minLength: 1 description: Position on the path of the schedule item. reception_signal: $ref: '#/components/schemas/ReceptionSignal' reference_base_arrival: oneOf: - type: 'null' - $ref: '#/components/schemas/PositiveDuration' reference_position: type: - integer - 'null' format: int64 minimum: 0 stop_for: oneOf: - type: 'null' - $ref: '#/components/schemas/PositiveDuration' description: |- Duration of the stop. Can be `None` if the train does not stop. If `None`, `reception_signal` must be `Open`. `Some("PT0S")` means the train stops for 0 seconds. additionalProperties: false SearchJourneyEnvironmentResponse: type: object required: - id - infra_id - timetable_ids properties: id: type: integer format: int64 infra_id: type: integer format: int64 timetable_ids: type: array items: type: integer format: int64 SearchObjectType: type: string description: Object type for query search enum: - track - signal - project - study - scenario - trainschedule - operationalpoint - user SearchPayload: type: object description: The payload of a search request required: - object - query properties: dry: type: boolean description: |- Whether to return the SQL query instead of executing it Only available in debug builds. object: $ref: '#/components/schemas/SearchObjectType' description: The object kind to query - run `editoast search list` to get all possible values query: $ref: '#/components/schemas/SearchQuery' description: The query to run example: object: operationalpoint query: - and - - like - - to_string - - infra_id - 2 - - search - - name - plop SearchQuery: oneOf: - type: boolean title: SearchQueryBoolean - type: number title: SearchQueryNumber format: double - type: integer title: SearchQueryInt format: int64 - type: string title: SearchQueryString - type: object title: SearchQueryArray description: A search query example: - and - - like - - to_string - - infra_id - 2 - - search - - name - plop SearchResultItem: oneOf: - oneOf: - $ref: '#/components/schemas/SearchResultItemTrack' title: SearchResultItemSearchResultItemTrack - oneOf: - $ref: '#/components/schemas/SearchResultItemOperationalPoint' title: SearchResultItemSearchResultItemOperationalPoint - oneOf: - $ref: '#/components/schemas/SearchResultItemSignal' title: SearchResultItemSearchResultItemSignal - oneOf: - $ref: '#/components/schemas/SearchResultItemProject' title: SearchResultItemSearchResultItemProject - oneOf: - $ref: '#/components/schemas/SearchResultItemStudy' title: SearchResultItemSearchResultItemStudy - oneOf: - $ref: '#/components/schemas/SearchResultItemScenario' title: SearchResultItemSearchResultItemScenario - oneOf: - $ref: '#/components/schemas/SearchResultItemTrainSchedule' title: SearchResultItemSearchResultItemTrainSchedule - oneOf: - $ref: '#/components/schemas/SearchResultItemUser' title: SearchResultItemSearchResultItemUser description: A search result item that depends on the query's `object` SearchResultItemOperationalPoint: type: object description: | A search result item for a query with `object = "operationalpoint"` required: - obj_id - infra_id - main_code - name - is_passenger_station - track_sections properties: geographic: oneOf: - type: 'null' - $ref: '#/components/schemas/GeoJsonPoint' infra_id: type: integer format: int64 is_passenger_station: type: boolean main_code: type: string name: type: string obj_id: type: string secondary_code: type: - string - 'null' secondary_name: type: - string - 'null' track_sections: type: array items: $ref: '#/components/schemas/SearchResultItemOperationalPointTrackSections' uic: type: - integer - 'null' format: int64 SearchResultItemOperationalPointTrackSections: type: object required: - track - position properties: position: type: number format: double track: type: string SearchResultItemProject: type: object description: A search result item for a query with `object = "project"` required: - id - image - name - studies_count - description - last_modification - tags properties: description: type: string id: type: integer format: int64 minimum: 0 image: type: - integer - 'null' format: int64 minimum: 0 last_modification: type: string format: date-time name: type: string studies_count: type: integer format: int64 minimum: 0 tags: type: array items: type: string SearchResultItemScenario: type: object description: A search result item for a query with `object = "scenario"` required: - id - study_id - name - electrical_profile_set_id - infra_id - infra_name - train_schedules_count - description - last_modification - tags properties: description: type: string electrical_profile_set_id: type: - integer - 'null' format: int64 minimum: 0 id: type: integer format: int64 minimum: 0 infra_id: type: integer format: int64 minimum: 0 infra_name: type: string last_modification: type: string format: date-time name: type: string study_id: type: integer format: int64 minimum: 0 tags: type: array items: type: string train_schedules_count: type: integer format: int64 minimum: 0 SearchResultItemSignal: type: object description: | A search result item for a query with `object = "signal"` required: - obj_id - infra_id - label - signaling_systems - settings - line_code - line_name - geographic properties: geographic: $ref: '#/components/schemas/GeoJsonPoint' infra_id: type: integer format: int64 label: type: string line_code: type: integer format: int64 minimum: 0 line_name: type: string obj_id: type: string settings: type: array items: type: string signaling_systems: type: array items: type: string sprite: type: - string - 'null' sprite_signaling_system: type: - string - 'null' SearchResultItemStudy: type: object description: A search result item for a query with `object = "study"` required: - id - project_id - name - scenarios_count - description - last_modification - tags - budget - business_code - service_code - study_type properties: budget: type: - integer - 'null' format: int32 minimum: 0 business_code: type: - string - 'null' description: type: - string - 'null' id: type: integer format: int64 minimum: 0 last_modification: type: string format: date-time name: type: string project_id: type: integer format: int64 minimum: 0 scenarios_count: type: integer format: int64 minimum: 0 service_code: type: - string - 'null' study_type: type: - string - 'null' tags: type: array items: type: string SearchResultItemTrack: type: object description: | A search result item for a query with `object = "track"` required: - infra_id - line_name - line_code properties: infra_id: type: integer format: int64 line_code: type: integer format: int64 line_name: type: string SearchResultItemTrainSchedule: type: object description: A search result item for a query with `object = "trainschedule"` required: - id - train_name - labels - rolling_stock_name - train_schedule_set_id - start_time - schedule - margins - initial_speed - comfort - path - constraint_distribution - power_restrictions - options properties: comfort: type: integer format: int64 constraint_distribution: type: integer format: int64 id: type: integer format: int64 minimum: 0 initial_speed: type: number format: double labels: type: array items: type: - string - 'null' margins: $ref: '#/components/schemas/Margins' options: $ref: '#/components/schemas/TrainScheduleOptions' path: type: array items: $ref: '#/components/schemas/PathItem' power_restrictions: type: array items: $ref: '#/components/schemas/PowerRestrictionItem' rolling_stock_name: type: string schedule: type: array items: $ref: '#/components/schemas/ScheduleItem' speed_limit_tag: type: - string - 'null' start_time: type: integer format: int64 description: |- For calendar timetables: elapsed ms since 1970-01-01T00:00:00Z. For hourly timetables: elapsed ms since the timetable start. train_name: type: string train_schedule_set_id: type: integer format: int64 SearchResultItemUser: type: object description: A search result item for a query with `object = "user"` required: - id - name properties: id: type: integer format: int64 minimum: 0 name: type: string Side: type: string enum: - LEFT - RIGHT - CENTER Sign: type: object required: - track - position - side - direction - type - value - kp properties: direction: $ref: '#/components/schemas/Direction' kp: type: string position: type: number format: double side: $ref: '#/components/schemas/Side' track: type: string maxLength: 255 minLength: 1 type: type: string minLength: 1 value: type: string additionalProperties: false Signal: type: object required: - id - track - position - direction - sight_distance properties: direction: $ref: '#/components/schemas/Direction' extensions: $ref: '#/components/schemas/SignalExtensions' id: type: string maxLength: 255 minLength: 1 logical_signals: type: array items: type: object required: - signaling_system - next_signaling_systems - settings - default_parameters - conditional_parameters properties: conditional_parameters: type: array items: type: object required: - on_route - parameters properties: on_route: type: string minLength: 1 parameters: type: object additionalProperties: type: string minLength: 1 propertyNames: type: string minLength: 1 default_parameters: type: object additionalProperties: type: string minLength: 1 propertyNames: type: string minLength: 1 next_signaling_systems: type: array items: type: string settings: type: object additionalProperties: type: string minLength: 1 propertyNames: type: string minLength: 1 signaling_system: type: string position: type: number format: double sight_distance: type: number format: double track: type: string maxLength: 255 minLength: 1 additionalProperties: false SignalExtensions: type: object properties: sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/SignalSncfExtension' additionalProperties: false SignalSncfExtension: type: object required: - label - kp properties: kp: type: string label: type: string side: $ref: '#/components/schemas/Side' additionalProperties: false SimDebugConflictReport: type: object required: - at - time_lost - best_remaining_time - current_travel_time - lat - lon properties: at: type: string format: date-time best_remaining_time: type: number format: double current_travel_time: type: number format: double lastOPName: type: - string - 'null' lat: type: number format: double lon: type: number format: double path_geometry: $ref: '#/components/schemas/GeoJsonLineString' source: oneOf: - type: 'null' - $ref: '#/components/schemas/RequirementId' time_lost: type: number format: double SimDebugData: type: object required: - path_properties - other_requirements - departure_time - engineering_allowances_ranges - zone_locations - train_times - train_positions properties: departure_time: type: string format: date-time engineering_allowances_ranges: type: array items: $ref: '#/components/schemas/SimDebugEngineeringAllowanceRange' other_requirements: type: array items: $ref: '#/components/schemas/SimDebugTrainZoneRequirement' path_properties: $ref: '#/components/schemas/PathProperties' sim_output: oneOf: - type: 'null' - $ref: '#/components/schemas/SimulationResponseSuccess' train_positions: type: array items: type: number format: double train_times: type: array items: type: number format: double zone_locations: type: array items: $ref: '#/components/schemas/SimDebugZoneLocation' SimDebugEngineeringAllowanceRange: type: object required: - from - to - added_duration properties: added_duration: type: number format: double from: type: number format: double to: type: number format: double SimDebugFailureReport: type: object required: - largest_conflicts - closest_conflicts properties: closest_conflicts: type: array items: $ref: '#/components/schemas/SimDebugConflictReport' largest_conflicts: type: array items: $ref: '#/components/schemas/SimDebugConflictReport' SimDebugTrainZoneRequirement: type: object required: - zone_name - begin_time - end_time properties: begin_time: type: number format: double end_time: type: number format: double source: oneOf: - type: 'null' - $ref: '#/components/schemas/RequirementId' zone_name: type: string SimDebugZoneLocation: type: object required: - name - from - to properties: from: type: number format: double name: type: string to: type: number format: double SimilarTrainWaypoint: type: object required: - id - stop properties: id: type: string stop: type: boolean SimulationResponse: oneOf: - allOf: - $ref: '#/components/schemas/SimulationResponseSuccess' - type: object required: - status properties: status: type: string enum: - success title: ResponseSuccess - type: object title: ResponsePathfindingFailed required: - pathfinding_failed - status properties: pathfinding_failed: $ref: '#/components/schemas/PathfindingFailure' status: type: string enum: - pathfinding_failed - type: object title: ResponseSimulationFailed required: - core_error - status properties: core_error: $ref: '#/components/schemas/InternalError' status: type: string enum: - simulation_failed SimulationResponseSuccess: type: object required: - base - provisional - final_output - mrsp - electrical_profiles properties: base: $ref: '#/components/schemas/CoreReportTrain' description: Simulation without any regularity margins electrical_profiles: type: object required: - boundaries - values properties: boundaries: type: array items: type: integer format: int64 minimum: 0 description: |- List of `n` boundaries of the ranges (block path). A boundary is a distance from the beginning of the path in mm. values: type: array items: oneOf: - type: object title: ElectricalProfileValueNoProfile required: - electrical_profile_type properties: electrical_profile_type: type: string enum: - no_profile - type: object title: ElectricalProfileValueProfile required: - handled - electrical_profile_type properties: electrical_profile_type: type: string enum: - profile handled: type: boolean profile: type: - string - 'null' description: List of `n+1` values associated to the ranges final_output: oneOf: - allOf: - $ref: '#/components/schemas/CoreReportTrain' - type: object required: - signal_critical_positions - zone_updates - spacing_requirements - routing_requirements properties: routing_requirements: type: array items: $ref: '#/components/schemas/CoreRoutingRequirement' signal_critical_positions: type: array items: $ref: '#/components/schemas/CoreSignalCriticalPosition' spacing_requirements: type: array items: $ref: '#/components/schemas/CoreSpacingRequirement' zone_updates: type: array items: $ref: '#/components/schemas/CoreZoneUpdate' description: Simulation that takes into account the regularity margins and the schedule item times mrsp: type: object description: A MRSP computation result (Most Restrictive Speed Profile) required: - boundaries - values properties: boundaries: type: array items: type: integer format: int64 minimum: 0 description: |- List of `n` boundaries of the ranges (block path). A boundary is a distance from the beginning of the path in mm. values: type: array items: type: object required: - speed properties: source: oneOf: - type: 'null' - oneOf: - type: object title: SpeedLimitSourceGivenTrainTag required: - tag - speed_limit_source_type properties: speed_limit_source_type: type: string enum: - given_train_tag tag: type: string - type: object title: SpeedLimitSourceFallbackTag required: - tag - speed_limit_source_type properties: speed_limit_source_type: type: string enum: - fallback_tag tag: type: string - type: object title: SpeedLimitSourceUnknownTag required: - speed_limit_source_type properties: speed_limit_source_type: type: string enum: - unknown_tag description: source of the speed-limit if relevant (tag used) speed: type: number format: double description: in meters per second description: List of `n+1` values associated to the ranges provisional: $ref: '#/components/schemas/CoreReportTrain' description: Simulation that takes into account the regularity margins SimulationSummaryResult: oneOf: - type: object title: SummaryResponseSuccess description: Minimal information on a simulation's result required: - length - time - energy_consumption - path_item_times_final - path_item_times_provisional - path_item_times_base - path_item_respect_times - path_item_respect_margins - status properties: energy_consumption: type: number format: double description: Total energy consumption of a train in kWh length: type: integer format: int64 description: Length of a path in mm minimum: 0 path_item_respect_margins: type: array items: type: boolean description: |- Whether the final path times respect the input margins for each train schedule path item. The length of this array is the number of path items in the train schedule used as input for the simulation. Important: `true` means the provisional time is acceptable margin-wise, not *precisely* respecting the margin. path_item_respect_times: type: array items: type: boolean description: |- Whether each path item in the train schedule is reached on time. The length of this array is the number of path items in the train schedule used as input for the simulation. Important: `true` doesn't mean the path item has been reached *precisely* at the requested time. Instead, it means it reached the path item at an acceptable time. path_item_times_base: type: array items: type: integer format: int64 minimum: 0 description: |- Base simulation time for each train schedule path item. The length of this array is the number of path items in the train schedule used as input for the simulation. The first value is always `0` (beginning of the path) and the last one, the total time of the simulation (end of the path) path_item_times_final: type: array items: type: integer format: int64 minimum: 0 description: |- Final simulation time for each train schedule path item. The length of this array is the number of path items in the train schedule used as input for the simulation. The first value is always `0` (beginning of the path) and the last one, the total time of the simulation (end of the path) path_item_times_provisional: type: array items: type: integer format: int64 minimum: 0 description: |- Provisional simulation time for each train schedule path item. The length of this array is the number of path items in the train schedule used as input for the simulation. The first value is always `0` (beginning of the path) and the last one, the total time of the simulation (end of the path) status: type: string enum: - success time: type: integer format: int64 description: Travel time in ms minimum: 0 - allOf: - $ref: '#/components/schemas/CorePathfindingNotFound' description: Pathfinding not found - type: object required: - status properties: status: type: string enum: - pathfinding_not_found title: SummaryResponsePathfindingNotFound description: Pathfinding not found - type: object title: SummaryResponseSimulationFailed description: An error has occurred during computing required: - error_type - status properties: error_type: type: string status: type: string enum: - simulation_failed - allOf: - $ref: '#/components/schemas/CorePathfindingInputError' description: InputError - type: object required: - status properties: status: type: string enum: - pathfinding_input_error title: SummaryResponsePathfindingInputError description: InputError Slope: type: object required: - gradient - begin - end properties: begin: type: number format: double end: type: number format: double gradient: type: number format: double additionalProperties: false SpaceTimeCurve: type: object required: - positions - times properties: positions: type: array items: type: integer format: int64 minimum: 0 description: |- List of positions of a train in mm Both positions and times must have the same length minItems: 1 times: type: array items: type: integer format: int64 minimum: 0 description: List of times in ms since `departure_time` associated to a position minItems: 1 SpeedDependantPower: type: object description: power-speed curve (in an energy source) required: - speeds - powers properties: powers: type: array items: type: number format: double speeds: type: array items: type: number format: double additionalProperties: false SpeedIntervalValueCurve: type: object required: - boundaries - values properties: boundaries: type: array items: type: number format: double description: |- Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed] example: - 8.333333 - 19.444444 values: type: array items: type: number format: double minimum: 0 description: |- Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries example: - 0.5 - 0.6 - 0.5 minItems: 1 additionalProperties: false SpeedLimitTagChangeGroup: type: object properties: value: oneOf: - type: 'null' - type: string minLength: 1 SpeedLimits: type: object required: - speed_limit_tags properties: default_speed_limit_tag: type: - string - 'null' speed_limit_tags: type: object additionalProperties: type: integer format: int64 propertyNames: type: string SpeedSection: type: object required: - id - speed_limit_by_tag - track_ranges properties: extensions: $ref: '#/components/schemas/SpeedSectionExtensions' id: type: string maxLength: 255 minLength: 1 on_routes: type: - array - 'null' items: type: string maxLength: 255 minLength: 1 speed_limit: oneOf: - type: 'null' - type: number format: double speed_limit_by_tag: type: object additionalProperties: type: number format: double propertyNames: type: string minLength: 1 track_ranges: type: array items: $ref: '#/components/schemas/ApplicableDirectionsTrackRange' additionalProperties: false SpeedSectionExtensions: type: object properties: psl_sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/SpeedSectionPslSncfExtension' additionalProperties: false SpeedSectionPslSncfExtension: type: object required: - announcement - z - r properties: announcement: type: array items: $ref: '#/components/schemas/Sign' r: type: array items: $ref: '#/components/schemas/Sign' z: $ref: '#/components/schemas/Sign' additionalProperties: false StandardGrant: type: string enum: - READER - WRITER - OWNER StandardPrivilege: type: string enum: - can_read - can_share_read - can_write - can_share_write - can_delete - can_share_ownership - can_revoke StartTimeChangeGroup: type: object required: - value properties: value: type: integer format: int64 description: |- For calendar timetables: elapsed ms since 1970-01-01T00:00:00Z. For hourly timetables: elapsed ms since the timetable start. StdcmProgressionEvent: type: object required: - point - best_travel_time properties: best_travel_time: type: integer format: int64 minimum: 0 point: $ref: '#/components/schemas/GeoJsonPoint' StdcmResponse: oneOf: - type: object title: StdcmResponseSuccess required: - simulation - pathfinding_result - departure_time - status properties: departure_time: type: string format: date-time pathfinding_result: $ref: '#/components/schemas/CorePathfindingResultSuccess' simulation: $ref: '#/components/schemas/SimulationResponseSuccess' status: type: string enum: - success - type: object title: StdcmResponsePathNotFound required: - status properties: status: type: string enum: - path_not_found - type: object title: StdcmResponsePreprocessingSimulationError required: - error - status properties: error: $ref: '#/components/schemas/SimulationResponse' status: type: string enum: - preprocessing_simulation_error - type: object title: StdcmResponseInternalError required: - error - status properties: error: $ref: '#/components/schemas/InternalError' status: type: string enum: - internal_error StdcmSearchEnvironment: type: object required: - id - infra_id - timetable_id - search_window_begin - search_window_end - enabled_from - enabled_until - operational_points - speed_limit_tags - operational_points_id_filtered - allowed_tracks properties: allowed_tracks: type: - object - 'null' description: Map of a key (ex. loading gauge) with their allowed track section ids. additionalProperties: type: array items: type: string uniqueItems: true propertyNames: type: string default_speed_limit_tag: type: - string - 'null' electrical_profile_set_id: type: integer format: int64 enabled_from: type: string format: date-time description: The time window start point where the environment is enabled. enabled_until: type: string format: date-time description: |- The time window end point where the environment is enabled. This value is usually lower than the `search_window_begin`, since a search is performed before the train rolls. id: type: integer format: int64 infra_id: type: integer format: int64 operational_points: type: array items: type: integer format: int64 operational_points_id_filtered: type: array items: type: string search_window_begin: type: string format: date-time description: |- The start of the search time window. Usually, trains schedules from the `timetable_id` runs within this window. search_window_end: type: string format: date-time description: The end of the search time window. speed_limit_tags: type: object description: Map of speed limit tag with their value additionalProperties: type: integer format: int64 propertyNames: type: string temporary_speed_limit_group_id: type: integer format: int64 timetable_id: type: integer format: int64 work_schedule_group_id: type: integer format: int64 StdcmSearchEnvironmentCreateForm: type: object required: - infra_id - timetable_id - search_window_begin - search_window_end - enabled_from - enabled_until properties: allowed_tracks: type: - object - 'null' additionalProperties: type: array items: type: string uniqueItems: true propertyNames: type: string electrical_profile_set_id: type: - integer - 'null' format: int64 enabled_from: type: string format: date-time enabled_until: type: string format: date-time infra_id: type: integer format: int64 operational_points: type: - array - 'null' items: type: integer format: int64 operational_points_id_filtered: type: - array - 'null' items: type: string search_window_begin: type: string format: date-time search_window_end: type: string format: date-time speed_limits: oneOf: - type: 'null' - $ref: '#/components/schemas/SpeedLimits' temporary_speed_limit_group_id: type: - integer - 'null' format: int64 timetable_id: type: integer format: int64 work_schedule_group_id: type: - integer - 'null' format: int64 StdcmSearchEnvironmentResponse: type: object required: - id - infra_id - timetable_id - search_window_begin - search_window_end - enabled_from - enabled_until - allowed_tracks properties: allowed_tracks: type: - object - 'null' description: |- Map of a gauge with their authorized track section ids. None means no zones restrictions. additionalProperties: type: array items: type: string uniqueItems: true propertyNames: type: string electrical_profile_set_id: type: - integer - 'null' format: int64 enabled_from: type: string format: date-time enabled_until: type: string format: date-time id: type: integer format: int64 infra_id: type: integer format: int64 operational_points: type: - array - 'null' items: type: integer format: int64 operational_points_id_filtered: type: - array - 'null' items: type: string search_window_begin: type: string format: date-time search_window_end: type: string format: date-time speed_limits: oneOf: - type: 'null' - $ref: '#/components/schemas/SpeedLimits' temporary_speed_limit_group_id: type: - integer - 'null' format: int64 timetable_id: type: integer format: int64 work_schedule_group_id: type: - integer - 'null' format: int64 StepTimingData: type: object required: - arrival_time - arrival_time_tolerance_before - arrival_time_tolerance_after properties: arrival_time: type: string format: date-time description: Time at which the train should arrive at the location arrival_time_tolerance_after: type: integer format: int64 description: The train may arrive up to this duration after the expected arrival time minimum: 0 arrival_time_tolerance_before: type: integer format: int64 description: The train may arrive up to this duration before the expected arrival time minimum: 0 Study: type: object required: - id - name - creation_date - last_modification - tags - state - project_id properties: actual_end_date: type: - string - 'null' format: date budget: type: - integer - 'null' format: int32 business_code: type: - string - 'null' creation_date: type: string format: date-time description: type: - string - 'null' expected_end_date: type: - string - 'null' format: date id: type: integer format: int64 last_modification: type: string format: date-time name: type: string project_id: type: integer format: int64 service_code: type: - string - 'null' start_date: type: - string - 'null' format: date state: type: string study_type: type: - string - 'null' tags: $ref: '#/components/schemas/Tags' StudyCreateForm: type: object description: This structure is used by the post endpoint to create a study required: - name - state - project_id properties: actual_end_date: type: - string - 'null' format: date budget: type: - integer - 'null' format: int32 business_code: type: - string - 'null' description: type: - string - 'null' expected_end_date: type: - string - 'null' format: date name: type: string project_id: type: integer format: int64 service_code: type: - string - 'null' start_date: type: - string - 'null' format: date state: type: string study_type: type: - string - 'null' tags: $ref: '#/components/schemas/Tags' StudyPatchForm: type: object description: This structure is used by the patch endpoint to patch a study properties: actual_end_date: type: - string - 'null' format: date budget: type: - integer - 'null' format: int32 business_code: type: - string - 'null' description: type: - string - 'null' expected_end_date: type: - string - 'null' format: date name: type: - string - 'null' service_code: type: - string - 'null' start_date: type: - string - 'null' format: date state: type: - string - 'null' study_type: type: - string - 'null' tags: oneOf: - type: 'null' - $ref: '#/components/schemas/Tags' StudyResponse: allOf: - $ref: '#/components/schemas/Study' - type: object required: - scenarios_count - project properties: project: $ref: '#/components/schemas/Project' scenarios_count: type: integer format: int64 minimum: 0 StudyWithScenarios: allOf: - $ref: '#/components/schemas/Study' - type: object required: - scenarios_count properties: scenarios_count: type: integer format: int64 minimum: 0 SubCategory: type: object required: - name - code - main_category - color - background_color - hovered_color properties: background_color: $ref: '#/components/schemas/SubCategoryColor' code: type: string color: $ref: '#/components/schemas/SubCategoryColor' hovered_color: $ref: '#/components/schemas/SubCategoryColor' main_category: $ref: '#/components/schemas/TrainMainCategory' name: type: string SubCategoryColor: type: string description: 'Represents a color for a sub-category in hexadecimal format #RRGGBB.' SubCategoryPage: allOf: - $ref: '#/components/schemas/PaginationStats' - type: object required: - results properties: results: type: array items: $ref: '#/components/schemas/SubCategory' SubjectType: type: string enum: - User - Group SupportedSignalingSystem: oneOf: - type: object title: SupportedSignalingSystemBAL required: - type properties: type: type: string enum: - BAL - type: object title: SupportedSignalingSystemBAPR required: - type properties: type: type: string enum: - BAPR - type: object title: SupportedSignalingSystemTVM300 required: - type properties: type: type: string enum: - TVM300 - type: object title: SupportedSignalingSystemTVM430 required: - type properties: type: type: string enum: - TVM430 - type: object title: SupportedSignalingSystemEtcsLevel2 required: - brake_params - type properties: brake_params: $ref: '#/components/schemas/EtcsBrakeParams' type: type: string enum: - ETCS_LEVEL2 Switch: type: object required: - id - switch_type - group_change_delay - ports properties: extensions: $ref: '#/components/schemas/SwitchExtensions' group_change_delay: type: number format: double id: type: string maxLength: 255 minLength: 1 ports: type: object additionalProperties: $ref: '#/components/schemas/TrackEndpoint' propertyNames: type: string maxLength: 255 minLength: 1 switch_type: type: string maxLength: 255 minLength: 1 additionalProperties: false SwitchExtensions: type: object properties: sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/SwitchSncfExtension' additionalProperties: false SwitchPortConnection: type: object required: - src - dst properties: dst: type: string maxLength: 255 minLength: 1 src: type: string maxLength: 255 minLength: 1 additionalProperties: false SwitchSncfExtension: type: object required: - label properties: label: type: string minLength: 1 additionalProperties: false SwitchType: type: object required: - id - ports - groups properties: groups: type: object additionalProperties: type: array items: $ref: '#/components/schemas/SwitchPortConnection' propertyNames: type: string maxLength: 255 minLength: 1 id: type: string maxLength: 255 minLength: 1 ports: type: array items: type: string maxLength: 255 minLength: 1 additionalProperties: false example: groups: LEFT: dst: LEFT src: BASE RIGHT: dst: RIGHT src: BASE id: Point ports: - LEFT - RIGHT - BASE Tags: type: array items: type: string TestOperation: type: object description: JSON Patch 'test' operation representation required: - path - value properties: path: type: string description: |- JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed. value: description: Value to test against. TimetableForm: type: object required: - timetable_type properties: timetable_type: $ref: '#/components/schemas/TimetableType' TimetableResult: type: object description: Creation result for a Timetable required: - timetable_id - timetable_type properties: timetable_id: type: integer format: int64 timetable_type: $ref: '#/components/schemas/TimetableType' TimetableType: type: string enum: - CALENDAR - HOURLY TowedRollingStock: type: object required: - id - name - label - railjson_version - locked - mass - length - comfort_acceleration - startup_acceleration - inertia_coefficient - rolling_resistance - const_gamma - version properties: comfort_acceleration: type: number format: double description: Acceleration in m·s⁻² const_gamma: type: number format: double description: Acceleration in m·s⁻² id: type: integer format: int64 inertia_coefficient: type: number format: double label: type: string length: type: number format: double description: Length in m locked: type: boolean mass: type: number format: double description: Mass in kg max_speed: type: - number - 'null' format: double description: Velocity in m·s⁻¹ name: type: string railjson_version: type: string rolling_resistance: $ref: '#/components/schemas/RollingResistancePerWeight' startup_acceleration: type: number format: double description: Acceleration in m·s⁻² version: type: integer format: int64 TowedRollingStockForm: type: object required: - name - label - mass - length - comfort_acceleration - startup_acceleration - inertia_coefficient - rolling_resistance - const_gamma properties: comfort_acceleration: type: number format: double description: Acceleration in m·s⁻² const_gamma: type: number format: double description: |2- The constant gamma braking coefficient used when NOT circulating under ETCS/ERTMS signaling system Acceleration in m·s⁻² inertia_coefficient: type: number format: double label: type: string length: type: number format: double description: Length in m mass: type: number format: double description: Mass in kg max_speed: type: - number - 'null' format: double description: Velocity in m·s⁻¹ name: type: string railjson_version: type: string default: '3.4' rolling_resistance: $ref: '#/components/schemas/RollingResistancePerWeight' startup_acceleration: type: number format: double description: Acceleration in m·s⁻² TowedRollingStockLockedForm: type: object required: - locked properties: locked: type: boolean description: New locked value additionalProperties: false TrackEndpoint: type: object required: - endpoint - track properties: endpoint: $ref: '#/components/schemas/Endpoint' track: type: string maxLength: 255 minLength: 1 additionalProperties: false TrackOffset: type: object required: - track - offset properties: offset: type: integer format: int64 description: Offset in mm minimum: 0 track: oneOf: - type: string maxLength: 255 minLength: 1 description: Track section identifier TrackRange: type: object required: - track - begin - end properties: begin: type: number format: double end: type: number format: double track: type: string example: 01234567-89ab-cdef-0123-456789abcdef additionalProperties: false TrackSection: type: object required: - id - length - slopes - curves - geo properties: curves: type: array items: $ref: '#/components/schemas/Curve' extensions: $ref: '#/components/schemas/TrackSectionExtensions' geo: $ref: '#/components/schemas/GeoJsonLineString' id: type: string maxLength: 255 minLength: 1 length: type: number format: double loading_gauge_limits: type: array items: $ref: '#/components/schemas/LoadingGaugeLimit' slopes: type: array items: $ref: '#/components/schemas/Slope' additionalProperties: false TrackSectionExtensions: type: object properties: sncf: oneOf: - type: 'null' - $ref: '#/components/schemas/TrackSectionSncfExtension' source: oneOf: - type: 'null' - type: object required: - name - id properties: id: type: string minLength: 1 name: type: string minLength: 1 additionalProperties: false additionalProperties: false TrackSectionSncfExtension: type: object required: - line_code - line_name - track_number - track_name properties: line_code: type: integer format: int32 line_name: type: string minLength: 1 track_name: type: string minLength: 1 track_number: type: integer format: int32 additionalProperties: false TrainCategory: oneOf: - type: object title: TrainCategoryMain required: - main_category properties: main_category: $ref: '#/components/schemas/TrainMainCategory' - type: object title: TrainCategorySub required: - sub_category_code properties: sub_category_code: type: string TrainMainCategory: type: string enum: - HIGH_SPEED_TRAIN - INTERCITY_TRAIN - REGIONAL_TRAIN - NIGHT_TRAIN - COMMUTER_TRAIN - FREIGHT_TRAIN - FAST_FREIGHT_TRAIN - TRAM_TRAIN - TOURISTIC_TRAIN - WORK_TRAIN TrainNameChangeGroup: type: object required: - value properties: value: type: string TrainSchedule: allOf: - type: object required: - train_name - rolling_stock_name - start_time - path - constraint_distribution properties: category: oneOf: - type: 'null' - $ref: '#/components/schemas/TrainCategory' comfort: $ref: '#/components/schemas/Comfort' constraint_distribution: $ref: '#/components/schemas/Distribution' initial_speed: type: number format: double labels: type: array items: type: string margins: $ref: '#/components/schemas/Margins' options: $ref: '#/components/schemas/TrainScheduleOptions' path: type: array items: $ref: '#/components/schemas/PathItem' power_restrictions: type: array items: type: object required: - from - to - value properties: from: type: string minLength: 1 to: type: string minLength: 1 value: type: string additionalProperties: false rolling_stock_name: type: string schedule: type: array items: $ref: '#/components/schemas/ScheduleItem' speed_limit_tag: oneOf: - type: 'null' - type: string minLength: 1 start_time: type: integer format: int64 description: |- For calendar timetables: elapsed ms since 1970-01-01T00:00:00Z. For hourly timetables: elapsed ms since the timetable start. train_name: type: string - type: object properties: paced: oneOf: - type: 'null' - type: object required: - time_window - interval - exceptions properties: exceptions: type: array items: $ref: '#/components/schemas/PacedTrainException' interval: $ref: '#/components/schemas/PositiveDuration' description: Time between two occurrences, an ISO 8601 format is expected time_window: $ref: '#/components/schemas/PositiveDuration' description: Duration of the paced train, an ISO 8601 format is expected TrainScheduleException: type: object required: - id - timetable_id - train_schedule_id - disabled - change_groups properties: change_groups: $ref: '#/components/schemas/TrainScheduleExceptionChangeGroups' disabled: type: boolean id: type: integer format: int64 key: type: - string - 'null' occurrence_index: type: integer format: int64 description: If None the exception is created, otherwise it is a modified exception timetable_id: type: integer format: int64 train_schedule_id: type: integer format: int64 TrainScheduleExceptionChangeGroups: type: object properties: constraint_distribution: $ref: '#/components/schemas/ConstraintDistributionChangeGroup' initial_speed: $ref: '#/components/schemas/InitialSpeedChangeGroup' labels: $ref: '#/components/schemas/LabelsChangeGroup' options: $ref: '#/components/schemas/OptionsChangeGroup' path_and_schedule: $ref: '#/components/schemas/PathAndScheduleChangeGroup' rolling_stock: $ref: '#/components/schemas/RollingStockChangeGroup' rolling_stock_category: $ref: '#/components/schemas/RollingStockCategoryChangeGroup' speed_limit_tag: $ref: '#/components/schemas/SpeedLimitTagChangeGroup' start_time: $ref: '#/components/schemas/StartTimeChangeGroup' train_name: $ref: '#/components/schemas/TrainNameChangeGroup' TrainScheduleOptions: type: object properties: stops_at_end_of_block: type: boolean use_electrical_profiles: type: boolean use_speed_limits_for_simulation: type: boolean additionalProperties: false TrainSchedulePart: type: object description: A part of a train schedule, from one step of its path to another. required: - train_schedule_id - from - to properties: from: type: integer description: Index of the start path step in the train schedule's path minimum: 0 to: type: integer description: Index of the end path step in the train schedule's path minimum: 0 train_schedule_id: type: integer format: int64 TrainScheduleResponse: allOf: - $ref: '#/components/schemas/TrainSchedule' - type: object required: - id - train_schedule_set_id properties: id: type: integer format: int64 train_schedule_set_id: type: integer format: int64 TrainScheduleSet: type: object required: - id - description - published - timetable_type properties: catalog_entry_id: type: - integer - 'null' format: int64 description: type: string id: type: integer format: int64 name: type: - string - 'null' published: type: boolean timetable_type: $ref: '#/components/schemas/TimetableType' TrainScheduleSetForm: type: object required: - description - published - timetable_type properties: catalog_entry_id: type: - integer - 'null' format: int64 description: type: string name: type: - string - 'null' published: type: boolean timetable_type: $ref: '#/components/schemas/TimetableType' TrainScheduleSetResponse: allOf: - $ref: '#/components/schemas/TrainScheduleSet' - type: object required: - train_schedule_count properties: train_schedule_count: type: integer format: int64 minimum: 0 TrainScheduleSetUpdateForm: type: object required: - description - published properties: catalog_entry_id: type: - integer - 'null' format: int64 description: type: string name: type: - string - 'null' published: type: boolean TrainScheduleSimulationSummaryResult: type: object required: - train_schedule - exceptions properties: exceptions: type: object description: The key is the `exception_id` additionalProperties: $ref: '#/components/schemas/SimulationSummaryResult' propertyNames: type: string train_schedule: $ref: '#/components/schemas/SimulationSummaryResult' Version: type: object required: - git_describe properties: git_describe: type: - string - 'null' Waypoint: oneOf: - type: object title: WaypointBufferStop required: - id - type properties: id: type: string maxLength: 255 minLength: 1 type: type: string enum: - BufferStop - type: object title: WaypointDetector required: - id - type properties: id: type: string maxLength: 255 minLength: 1 type: type: string enum: - Detector WorkSchedule: type: object required: - id - start_date_time - end_date_time - track_ranges - obj_id - work_schedule_type - work_schedule_group_id properties: end_date_time: type: string format: date-time id: type: integer format: int64 obj_id: type: string start_date_time: type: string format: date-time track_ranges: type: array items: $ref: '#/components/schemas/TrackRange' work_schedule_group_id: type: integer format: int64 work_schedule_type: $ref: '#/components/schemas/WorkScheduleType' WorkScheduleItemForm: type: object required: - start_date_time - end_date_time - track_ranges - obj_id - work_schedule_type properties: end_date_time: type: string format: date-time obj_id: type: string start_date_time: type: string format: date-time track_ranges: type: array items: $ref: '#/components/schemas/TrackRange' work_schedule_type: type: string enum: - CATENARY - TRACK WorkScheduleType: type: string enum: - CATENARY - TRACK WorkerStatus: type: string enum: - NOT_READY - LOADING - READY - ERROR