UNPKG

@golemio/pid

Version:
1,022 lines (1,010 loc) 45.6 kB
openapi: 3.0.3 info: title: 🚋 Public Transport | Golemio Input Gateway description: >- <p> This is a placeholder description that is automatically replaced in the build process, see the <a href="https://gitlab.com/operator-ict/golemio/code/vp/input-gateway/-/blob/development/docs/openapi-header.yaml" target="_blank">/vp/input-gateway/docs/openapi-header.yaml</a> file. </p> version: 1.0.0 contact: name: Golemio Prague Data Platform email: golemio@operatorict.cz url: https://golemio.cz servers: - url: https://api.golemio.cz/v2 description: Main (production) server - url: https://rabin.golemio.cz/v2 description: Test (development) server tags: - name: 🛤 Vehicle Positions description: "" - name: 🪧 JIS description: "" paths: /vehiclepositions: post: summary: POST Vehicle Positions description: "" tags: - 🛤 Vehicle Positions parameters: - in: header name: Content-Type schema: type: string example: "text/xml" required: true requestBody: required: true content: text/xml: schema: $ref: "#/components/schemas/VehiclePositions" examples: xml: $ref: "#/components/examples/VehiclePositionsBodyExample" responses: "204": description: Successful Operation "422": description: Unprocessable Entity content: application/json: schema: $ref: "#/components/schemas/Error" example: error_description: "VehiclePositionsController validation failed: m.spoj.0.$.lin: Path `$.lin` is required." error_message: "Unprocessable Entity" error_status: 422 "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Bad Request" error_status: 400 "406": description: Not Acceptable "413": description: Payload Too Large content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Request entity too large" error_status: 413 "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "API key is missing or invalid" error_status: 401 headers: WWW_Authenticate: schema: type: string /ropidgtfs/presets: post: summary: POST Ropid GTFS Departure Presets description: "" tags: - 🛤 Vehicle Positions parameters: - in: header name: Content-Type schema: type: string example: "application/json" required: true requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RopidGtfsPresets" examples: json: $ref: "#/components/examples/RopidGtfsPresetsExample" responses: "204": description: Successful Operation "422": description: Unprocessable Entity content: application/json: schema: $ref: "#/components/schemas/Error" example: error_info: "validation failed [{\"keyword\":\"type\",\"dataPath\":\"[0].routeName\",\"schemaPath\":\"#/items/properties/routeName/type\",\"params\":{\"type\":\"string\"},\"message\":\"should be string\"}]" error_message: "Unprocessable Entity" error_status: 422 "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Bad Request" error_status: 400 "406": description: Not Acceptable "413": description: Payload Too Large content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Request entity too large" error_status: 413 "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "API key is missing or invalid" error_status: 401 headers: WWW_Authenticate: schema: type: string /jis/events: post: summary: POST JIS events description: "" tags: - 🪧 JIS parameters: - in: header name: Content-Type schema: type: string example: "application/json" required: true requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/JISEvents" examples: json: $ref: "#/components/examples/JISEventsExample" responses: "204": description: Successful Operation "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Bad Request" error_status: 400 "406": description: Not Acceptable "413": description: Payload Too Large content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Request entity too large" error_status: 413 "422": description: Unprocessable Entity content: application/json: schema: $ref: "#/components/schemas/Error" example: error_info: "validation failed [{\"keyword\":\"type\",\"dataPath\":\"[0].severity_level\",\"schemaPath\":\"#/items/properties/severity_level/type\",\"params\":{\"type\":\"string\"},\"message\":\"should be string\"}]" error_message: "Unprocessable Entity" error_status: 422 /jis/infotexts: post: summary: POST JIS infotexts description: "" tags: - 🪧 JIS parameters: - in: header name: Content-Type schema: type: string example: "application/json" required: true requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/JISInfotexts" examples: json: $ref: "#/components/examples/JISInfotextsExample" responses: "204": description: Successful Operation "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Bad Request" error_status: 400 "406": description: Not Acceptable "413": description: Payload Too Large content: application/json: schema: $ref: "#/components/schemas/Error" example: error_message: "Request entity too large" error_status: 413 "422": description: Unprocessable Entity content: application/json: schema: $ref: "#/components/schemas/Error" example: error_info: "validation failed [{\"keyword\":\"type\",\"dataPath\":\"[0].severity_level\",\"schemaPath\":\"#/items/properties/severity_level/type\",\"params\":{\"type\":\"string\"},\"message\":\"should be string\"}]" error_message: "Unprocessable Entity" error_status: 422 components: schemas: VehiclePositions: title: Vehicle Positions type: object xml: name: m wrapped: true properties: disp: type: string example: "http://77.93.194.81:8716/api" xml: attribute: true SpojArray: type: array items: $ref: "#/components/schemas/VehiclePositionsSpoj" VehiclePositionsSpoj: title: Vehicle Positions Spoj type: object xml: name: spoj properties: lin: type: number format: int64 example: 999999 xml: attribute: true alias: type: string example: "155" xml: attribute: true spoj: type: string example: "1" xml: attribute: true t: type: string example: "3" xml: attribute: true sled: type: string example: "2" xml: attribute: true np: type: boolean example: true xml: attribute: true zrus: type: boolean example: false xml: attribute: true lat: type: number format: float example: 50.08323 xml: attribute: true lng: type: number format: float example: 14.51035 xml: attribute: true cpoz: type: string example: "11:09:06" xml: attribute: true po: type: string example: "1" xml: attribute: true zast: type: number format: int64 example: 56699 xml: attribute: true zpoz_prij: type: string example: "426" xml: attribute: true zpoz_odj: type: string example: "426" xml: attribute: true ZastArray: type: array items: $ref: "#/components/schemas/VehiclePositionsZast" required: - lin - spoj - t - sled - np - zrus VehiclePositionsZast: title: Vehicle Positions Zast type: object xml: name: zast properties: zast: type: number format: int64 example: 57517 xml: attribute: true stan: type: string example: "C" xml: attribute: true prij: type: string example: "" xml: attribute: true odj: type: string example: "00:50" xml: attribute: true zpoz_typ: type: string example: "3" xml: attribute: true zpoz_prij: type: number format: int64 example: 311 xml: attribute: true zpoz_odj: type: number format: int64 example: 311 xml: attribute: true required: - zast - zpoz_typ Error: title: Error type: object properties: error_description: type: string error_message: type: string error_status: type: number format: int64 required: - error_message - error_status RopidGtfsPresets: title: Ropid GTFS Departure Presets type: array items: type: object required: - routeName - note - apiVersion - route - query properties: routeName: type: string example: "apel-votice-1542" note: type: string example: "LED na nádraží ve Voticích, bus" apiVersion: type: number example: 2 route: type: string example: "/pid/departureboards" query: type: string example: "?minutesAfter=300&limit=8&mode=departures&cisIds=40110" isTesting: type: boolean example: true JISEventEffectBase: type: string example: DETOUR enum: - DETOUR - REDUCED_SERVICE - MODIFIED_SERVICE - SIGNIFICANT_DELAYS - ADDITIONAL_SERVICE - OTHER_EFFECT - NO_SERVICE - STOP_MOVED - NO_EFFECT - ACCESSIBILITY_ISSUE - UNKNOWN_EFFECT description: > DETOUR - ODKLON \ REDUCED_SERVICE - ROZVAZANI_PRESTUPNI_VAZBY || NAHRADNI_DOPRAVA \ MODIFIED_SERVICE - PROVOZ_ZASTAVEN || PROVOZ_OMEZEN || NEODJETI_SPOJE || PRERUSENI_PROVOZU_METRA || PRERUSENI_PROVOZU_TRAMVAJI || PRERUSENI_PROVOZU || OMEZENI_PROVOZU \ SIGNIFICANT_DELAYS - ZPOZDENI_SPOJE || ZPOZDENI_SPOJU \ ADDITIONAL_SERVICE - POSILENI_SPOJU || ZAVEDENI_LINKY \ OTHER_EFFECT - OSTATNI || PROVOZ_OBNOVEN || PRISTUP_OMEZEN || OMEZENI_BEZBARIEROVEHO_PRISTUPU \ NO_SERVICE - STANICE_UZAVRENA || ZRUSENI_ZASTAVKY || ZRUSENI_LINKY \ MODIFIED_SERVICE - ZMENA_ZASTAVEK \ STOP_MOVED - PREMISTNENI_ZASTAVKY \ NO_EFFECT - BEZ_OPATRENI \ ACCESSIBILITY_ISSUE - OMEZENI_BEZBARIEROVEHO_PRISTUPU \, UNKNOWN_EFFECT - NEZNAME_OPATRENI - fallback JISEventEffect: oneOf: - $ref: "#/components/schemas/JISEventEffectBase" - type: array uniqueItems: true minItems: 1 maxItems: 3 example: ["DETOUR","REDUCED_SERVICE"] items: $ref: "#/components/schemas/JISEventEffectBase" JISEvents: title: JIS events type: array items: type: object required: - id - type - header_text - cause - cause_detail - severity_level - active_period - effect - effect_detail - description_text - url - organization_name - created_timestamp - last_modified_timestamp properties: id: type: string format: uuid description: Unique identifier of the event in the UUIDv4 format example: e5cc7b38-79e1-4f7a-b8de-884971e23412 type: type: string example: INCIDENT enum: - INCIDENT - DISRUPTION - SERVICE_CHANGE header_text: type: object properties: cs: type: string example: Nehoda Jiřího z Poděbrad en: type: string example: Accident at Jiřího z Poděbrad nullable: true required: - cs - en cause: type: string example: ACCIDENT enum: - ACCIDENT - STRIKE - TECHNICAL_PROBLEM - CONSTRUCTION - WEATHER - DEMONSTRATION - POLICE_ACTIVITY - MEDICAL_EMERGENCY - OTHER_CAUSE - UNKNOWN_CAUSE - HOLIDAY - MAINTENANCE cause_detail: type: object properties: cs: type: string example: Nehoda na křižovatce nullable: true en: type: string example: Accident at the intersection nullable: true severity_level: type: string example: SEVERE enum: - INFO - WARNING - SEVERE description: | INFO - priority 3 \ WARNING - priority 2 \ SEVERE - priority 1 active_period: type: object required: - start - end properties: start: type: string format: date-time example: "2024-02-29T11:22:20.958Z" end: type: string format: date-time nullable: true example: "2024-03-03T14:22:20.958Z" description: The start and end date/time of the event validity display_period: type: object required: - start - end properties: start: type: string format: date-time example: "2024-02-29T11:22:20.958Z" end: type: string format: date-time nullable: true example: "2024-03-03T14:22:20.958Z" description: The start and end date/time of the event visibility effect: $ref: "#/components/schemas/JISEventEffect" effect_detail: type: object properties: cs: type: string example: Tramvaje jezdí několik zastávek jinudy. en: type: string example: Trams are running a few stops differently. nullable: true required: - cs - en description_text: type: object properties: cs: type: string description: Event description in Czech en: type: string nullable: true description: Event description in English required: - cs - en description: Localized descriptions of the event description_html: type: object properties: cs: type: string description: Event description in Czech in html format en: type: string nullable: true description: Event description in English in html format required: - cs - en description: Localized descriptions of the event in html format url: type: object properties: cs: type: string format: uri example: https://pid.cz/zmena/cs/nehoda-jiriho-z-podebrad en: type: string format: uri nullable: true example: https://pid.cz/zmena/en/accident-jiriho-z-podebrad required: - cs - en organization_name: type: string example: ROPID informed_entity: type: object nullable: true properties: routes: type: array nullable: true items: type: object properties: id: type: string description: Unique GTFS identifier of the affected route required: - id last_modified_timestamp: type: string format: date-time example: "2024-02-29T12:22:20.958Z" description: Timestamp from when the event was last modified in VYMI created_timestamp: type: string format: date-time example: "2024-02-29T12:22:20.958Z" description: Timestamp from when the event was created in VYMI JISInfotexts: title: JIS infotexts type: array items: type: object properties: id: type: string format: uuid description: Unique identifier for the infotext severity_level: type: string enum: - SEVERE - WARNING - INFO description: Severity level of the infotext display_type: type: string description: How the infotext is displayed active_period: type: object properties: start: type: string format: date-time description: Start time of the active period end: type: string format: date-time description: End time of the active period required: - start - end description: The period during which the infotext is active repeat: type: object nullable: true description: Optional daily repeat schedule for the infotext properties: enabled: type: boolean description: Whether the infotext repeats on a daily schedule time_start: type: string nullable: true description: Daily repeat start time (HH:MM:SS) time_end: type: string nullable: true description: Daily repeat end time (HH:MM:SS) required: - enabled description_text: type: object properties: cs: type: string description: Description in Czech en: type: string description: Description in English required: - cs - en description: Localized descriptions of the infotext informed_entity: type: object nullable: true properties: stops: type: array nullable: true items: type: object properties: id: type: string description: Unique identifier for the stop required: - id presets: type: array nullable: true description: Departure presets connected to this infotext (optional, migration period) items: type: object properties: route_name: type: string description: Route name of the departure preset (ropid_departures_presets.route_name) required: - route_name created_timestamp: type: string format: date-time description: Timestamp when the infotext was created in VYMI last_modified_timestamp: type: string format: date-time description: Timestamp when the infotext was updated in VYMI required: - id - severity_level - display_type - active_period - description_text - created_timestamp - last_modified_timestamp examples: VehiclePositionsBodyExample: value: |- <?xml version="1.0" encoding="UTF-8"?> <m disp="http://77.93.194.81:8716/api"> <spoj lin="999999" alias="155" spoj="1" t="3" sled="2" np="true" zrus="false" lat="50.08323" lng="14.51035" cpoz="11:09:06" po="1" zast="56699" zpoz_prij="426" zpoz_odj="426"> <zast zast="57517" stan="C" prij="" odj="11:00" zpoz_typ="3" zpoz_prij="311" zpoz_odj="311"></zast> <zast zast="56699" stan="A" prij="" odj="11:01" zpoz_typ="3" zpoz_prij="351" zpoz_odj="351"></zast> <zast zast="56699" stan="E" prij="" odj="11:02" zpoz_typ="3" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57515" stan="A" prij="" odj="11:04" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="56700" stan="A" prij="" odj="11:06" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57515" stan="B" prij="" odj="11:07" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="65151" stan="A" prij="" odj="11:09" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="65163" stan="A" prij="" odj="11:10" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57511" stan="B" prij="" odj="11:11" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57512" stan="A" prij="" odj="11:13" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57513" stan="A" prij="" odj="11:14" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57514" stan="B" prij="" odj="11:16" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="27902" stan="I" prij="" odj="11:18" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="27902" stan="G" prij="" odj="11:19" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="56703" stan="C" prij="11:20" odj="" zpoz_typ="0" zpoz_prij="-2147483648" zpoz_odj="-2147483648"></zast> </spoj> <spoj lin="999999" alias="155" spoj="2" t="3" sled="2" np="true" zrus="false" lat="50.08323" lng="14.51035" cpoz="00:02:16" po="1" zast="56699" zpoz_prij="426" zpoz_odj="426"> <zast zast="57517" stan="C" prij="" odj="23:50" zpoz_typ="3" zpoz_prij="311" zpoz_odj="311"></zast> <zast zast="56699" stan="A" prij="" odj="23:51" zpoz_typ="3" zpoz_prij="351" zpoz_odj="351"></zast> <zast zast="56699" stan="E" prij="" odj="23:52" zpoz_typ="3" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57515" stan="A" prij="" odj="23:54" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="56700" stan="A" prij="" odj="23:56" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57515" stan="B" prij="" odj="23:57" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="65151" stan="A" prij="" odj="23:59" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="65163" stan="A" prij="" odj="00:00" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57511" stan="B" prij="" odj="00:01" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57512" stan="A" prij="" odj="00:03" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57513" stan="A" prij="" odj="00:04" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57514" stan="B" prij="" odj="00:06" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="27902" stan="I" prij="" odj="00:08" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="27902" stan="G" prij="" odj="00:09" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="56703" stan="C" prij="00:10" odj="" zpoz_typ="0" zpoz_prij="-2147483648" zpoz_odj="-2147483648"></zast> </spoj> <spoj lin="999999" alias="155" spoj="3" t="3" sled="2" np="true" zrus="false" lat="50.08323" lng="14.51035" cpoz="00:51:16" po="1" zast="56699" zpoz_prij="426" zpoz_odj="426"> <zast zast="57517" stan="C" prij="" odj="00:50" zpoz_typ="3" zpoz_prij="311" zpoz_odj="311"></zast> <zast zast="56699" stan="A" prij="" odj="00:51" zpoz_typ="3" zpoz_prij="351" zpoz_odj="351"></zast> <zast zast="56699" stan="E" prij="" odj="00:52" zpoz_typ="3" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57515" stan="A" prij="" odj="00:54" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="56700" stan="A" prij="" odj="00:56" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57515" stan="B" prij="" odj="00:57" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="65151" stan="A" prij="" odj="00:59" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="65163" stan="A" prij="" odj="01:00" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57511" stan="B" prij="" odj="01:01" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57512" stan="A" prij="" odj="01:03" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57513" stan="A" prij="" odj="01:04" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="57514" stan="B" prij="" odj="01:06" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="27902" stan="I" prij="" odj="01:08" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="27902" stan="G" prij="" odj="01:09" zpoz_typ="2" zpoz_prij="426" zpoz_odj="426"></zast> <zast zast="56703" stan="C" prij="01:10" odj="" zpoz_typ="0" zpoz_prij="-2147483648" zpoz_odj="-2147483648"></zast> </spoj> </m> RopidGtfsPresetsExample: value: |- [ { "routeName": "apex-zahradnimesto-6048", "note": "Tablo Zahradní město z centra (APEX)", "apiVersion": 2, "route": "/pid/departureboards", "query": "?minutesAfter=40&limit=6&mode=departures&filter=routeHeadingOnceNoGapFill&order=real&aswIds=2781_2&aswIds=2781_52&skip=atStop&airCondition=true", "isTesting": true }, { "routeName": "apex-zahradnimesto-6048-kopie", "note": "Tablo Zahradní město z centra (APEX)", "apiVersion": 2, "route": "/pid/departureboards", "query": "?minutesAfter=40&limit=6&mode=departures&filter=routeHeadingOnceNoGapFill&order=real&aswIds=2781_2&aswIds=2781_52&skip=atStop&airCondition=true", "isTesting": false } ] JISEventsExample: value : |- [ { "id": "36fe0c55-5e03-4dd3-a64d-a53d1535f0a5", "type": "INCIDENT", "header_text": { "cs": "Libeňský zámek - U Kříže" }, "cause": "TECHNICAL_PROBLEM", "cause_detail": { "cs": "Překážka na trati, technická závada trolejbusu na kolejích" }, "severity_level": "SEVERE", "active_period": { "start": "2024-02-07T12:11:00.000Z", "end": null }, "display_period": { "start": "2024-02-07T12:11:00.000Z", "end": null }, "effect": ["MODIFIED_SERVICE", "DETOUR"], "effect_detail": { "cs": "Provoz omezen" }, "description_text": { "cs": "V Libni je omezen provoz tramvají. Důvodem je technická závada trolejbusu na kolejích." }, "description_html": { "cs": "<p>V Libni je omezen provoz tramvají. Důvodem je technická závada trolejbusu na kolejích.</p>" }, "url": { "cs": "https://dpp.cz/omezeni-a-mimoradne-udalosti/detail/test-0" }, "informed_entity": { "routes": [{ "id": "L24" }, { "id": "L10" }, { "id": "L3" }] }, "organization_name": "OICT", "created_timestamp": "2025-04-17T15:42:41.843Z", "last_modified_timestamp": "2025-04-17T15:42:41.843Z" } ] JISInfotextsExample: value : |- [ { "id": "1833020b-b8c2-4903-85d5-469b0a2ebc70", "severity_level": "SEVERE", "display_type": "INLINE", "active_period": { "start": "2024-12-05T11:12:00.000Z", "end": "2025-01-30T23:00:00.000Z" }, "repeat": null, "description_text": { "cs": "Test po aktualizaci Node.js", "en": "This is a test" }, "informed_entity": { "stops": [ { "id": "U31070Z20" }, { "id": "U32268Z1" } ] }, "created_timestamp": "2024-12-06T14:08:02.669Z", "last_modified_timestamp": "2024-12-06T14:08:02.669Z" }, { "id": "178c4bff-b098-41a9-b0e7-d611bd3c54ac", "severity_level": "INFO", "display_type": "INLINE", "active_period": { "start": "2024-12-03T10:44:00.000Z", "end": null }, "description_text": { "cs": "Tento text se zobrazí v budoucnosti a bude mít historii", "en": null }, "informed_entity": { "stops": [ { "id": "U85Z1P" }, { "id": "U876Z1P" } ] }, "created_timestamp": "2024-11-08T10:44:34.701Z", "last_modified_timestamp": "2024-11-08T10:44:34.701Z" }, { "id": "a3f7c912-1e4b-4d8a-b6f0-9c2d7e5a0b3f", "severity_level": "WARNING", "display_type": "GENERAL", "active_period": { "start": "2024-12-01T00:00:00.000Z", "end": null }, "repeat": { "enabled": true, "time_start": "23:00:00", "time_end": "04:30:00" }, "description_text": { "cs": "V nočních hodinách omezený provoz.", "en": "Limited service during night hours." }, "informed_entity": { "stops": [ { "id": "U72Z1P" } ] }, "created_timestamp": "2024-12-01T00:00:00.000Z", "last_modified_timestamp": "2024-12-01T00:00:00.000Z" } ]