@golemio/parkings 1.6.1 → 1.6.2-dev.1073199149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/db/example/00_clear_test_data.sql +3 -0
  2. package/db/example/04_tsk_parking_v2.sql +21 -0
  3. package/db/migrations/postgresql/20230918124250-tsk-v-2-parking-sources.js +53 -0
  4. package/db/migrations/postgresql/20230918124259-tsk-v-2-parking-machines.js +53 -0
  5. package/db/migrations/postgresql/20230925090241-tsk-tariffs.js +53 -0
  6. package/db/migrations/postgresql/20231003115645-tsk-v-2-parking-special-access.js +53 -0
  7. package/db/migrations/postgresql/20231108130727-ipt-api-v3-allowed.js +53 -0
  8. package/db/migrations/postgresql/sqls/20230918124250-tsk-v-2-parking-sources-down.sql +1 -0
  9. package/db/migrations/postgresql/sqls/20230918124250-tsk-v-2-parking-sources-up.sql +18 -0
  10. package/db/migrations/postgresql/sqls/20230918124259-tsk-v-2-parking-machines-down.sql +1 -0
  11. package/db/migrations/postgresql/sqls/20230918124259-tsk-v-2-parking-machines-up.sql +15 -0
  12. package/db/migrations/postgresql/sqls/20230925090241-tsk-tariffs-down.sql +4 -0
  13. package/db/migrations/postgresql/sqls/20230925090241-tsk-tariffs-up.sql +4 -0
  14. package/db/migrations/postgresql/sqls/20231003115645-tsk-v-2-parking-special-access-down.sql +1 -0
  15. package/db/migrations/postgresql/sqls/20231003115645-tsk-v-2-parking-special-access-up.sql +1 -0
  16. package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-down.sql +2 -0
  17. package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-up.sql +2 -0
  18. package/dist/helpers/const.d.ts +0 -0
  19. package/dist/helpers/const.js +2 -0
  20. package/dist/helpers/const.js.map +1 -0
  21. package/dist/helpers/data-access/CachedParkingSourcesRepository.d.ts +12 -0
  22. package/dist/helpers/data-access/CachedParkingSourcesRepository.js +40 -0
  23. package/dist/helpers/data-access/CachedParkingSourcesRepository.js.map +1 -0
  24. package/dist/helpers/interfaces/IParkingSource.d.ts +8 -0
  25. package/dist/helpers/interfaces/IParkingSource.js +3 -0
  26. package/dist/helpers/interfaces/IParkingSource.js.map +1 -0
  27. package/dist/input-gateway/controllers/ParkingSourcesController.d.ts +9 -0
  28. package/dist/input-gateway/controllers/ParkingSourcesController.js +40 -0
  29. package/dist/input-gateway/controllers/ParkingSourcesController.js.map +1 -0
  30. package/dist/input-gateway/index.d.ts +2 -0
  31. package/dist/input-gateway/index.js +5 -0
  32. package/dist/input-gateway/index.js.map +1 -1
  33. package/dist/input-gateway/routers/ParkingSourcesRouter.d.ts +12 -0
  34. package/dist/input-gateway/routers/ParkingSourcesRouter.js +39 -0
  35. package/dist/input-gateway/routers/ParkingSourcesRouter.js.map +1 -0
  36. package/dist/integration-engine/ParkingInterface.d.ts +6 -0
  37. package/dist/integration-engine/datasources/TskParkingDataSourceFactory.d.ts +8 -0
  38. package/dist/integration-engine/datasources/TskParkingDataSourceFactory.js +51 -0
  39. package/dist/integration-engine/datasources/TskParkingDataSourceFactory.js.map +1 -0
  40. package/dist/integration-engine/index.d.ts +5 -1
  41. package/dist/integration-engine/index.js +5 -1
  42. package/dist/integration-engine/index.js.map +1 -1
  43. package/dist/integration-engine/ioc/Di.js +27 -1
  44. package/dist/integration-engine/ioc/Di.js.map +1 -1
  45. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +9 -0
  46. package/dist/integration-engine/ioc/ModuleContainerToken.js +9 -0
  47. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  48. package/dist/integration-engine/repositories/ParkingMachinesRepository.d.ts +4 -0
  49. package/dist/integration-engine/repositories/ParkingMachinesRepository.js +35 -0
  50. package/dist/integration-engine/repositories/ParkingMachinesRepository.js.map +1 -0
  51. package/dist/integration-engine/repositories/ParkingSourcesRepository.d.ts +4 -0
  52. package/dist/integration-engine/repositories/ParkingSourcesRepository.js +23 -0
  53. package/dist/integration-engine/repositories/ParkingSourcesRepository.js.map +1 -0
  54. package/dist/integration-engine/transformations/TskParkingMachinesTransformation.d.ts +7 -0
  55. package/dist/integration-engine/transformations/TskParkingMachinesTransformation.js +24 -0
  56. package/dist/integration-engine/transformations/TskParkingMachinesTransformation.js.map +1 -0
  57. package/dist/integration-engine/transformations/TskParkingSectionLevelTransformation.d.ts +9 -0
  58. package/dist/integration-engine/transformations/TskParkingSectionLevelTransformation.js +42 -0
  59. package/dist/integration-engine/transformations/TskParkingSectionLevelTransformation.js.map +1 -0
  60. package/dist/integration-engine/transformations/TskParkingSectionTransformation.d.ts +10 -0
  61. package/dist/integration-engine/transformations/TskParkingSectionTransformation.js +66 -0
  62. package/dist/integration-engine/transformations/TskParkingSectionTransformation.js.map +1 -0
  63. package/dist/integration-engine/transformations/TskParkingZonesTariffsTransformation.d.ts +14 -0
  64. package/dist/integration-engine/transformations/TskParkingZonesTariffsTransformation.js +84 -0
  65. package/dist/integration-engine/transformations/TskParkingZonesTariffsTransformation.js.map +1 -0
  66. package/dist/integration-engine/workers/ParkingSourcesWorker.d.ts +5 -0
  67. package/dist/integration-engine/workers/ParkingSourcesWorker.js +18 -0
  68. package/dist/integration-engine/workers/ParkingSourcesWorker.js.map +1 -0
  69. package/dist/integration-engine/workers/TskParkingWorker.d.ts +5 -0
  70. package/dist/integration-engine/workers/TskParkingWorker.js +31 -0
  71. package/dist/integration-engine/workers/TskParkingWorker.js.map +1 -0
  72. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.d.ts +9 -0
  73. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js +44 -0
  74. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js.map +1 -0
  75. package/dist/integration-engine/workers/tasks/SaveTskParkingMachinesTask.d.ts +13 -0
  76. package/dist/integration-engine/workers/tasks/SaveTskParkingMachinesTask.js +31 -0
  77. package/dist/integration-engine/workers/tasks/SaveTskParkingMachinesTask.js.map +1 -0
  78. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionLevelTask.d.ts +15 -0
  79. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionLevelTask.js +40 -0
  80. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionLevelTask.js.map +1 -0
  81. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionsTask.d.ts +13 -0
  82. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionsTask.js +41 -0
  83. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionsTask.js.map +1 -0
  84. package/dist/integration-engine/workers/tasks/SaveTskParkingZonesTariffsTask.d.ts +11 -0
  85. package/dist/integration-engine/workers/tasks/SaveTskParkingZonesTariffsTask.js +33 -0
  86. package/dist/integration-engine/workers/tasks/SaveTskParkingZonesTariffsTask.js.map +1 -0
  87. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.d.ts +14 -0
  88. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js +36 -0
  89. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js.map +1 -0
  90. package/dist/output-gateway/controllers/v3/V3ParkingController.d.ts +9 -0
  91. package/dist/output-gateway/controllers/v3/V3ParkingController.js +79 -0
  92. package/dist/output-gateway/controllers/v3/V3ParkingController.js.map +1 -0
  93. package/dist/output-gateway/controllers/v3/V3ParkingMachinesController.d.ts +9 -0
  94. package/dist/output-gateway/controllers/v3/V3ParkingMachinesController.js +78 -0
  95. package/dist/output-gateway/controllers/v3/V3ParkingMachinesController.js.map +1 -0
  96. package/dist/output-gateway/controllers/v3/V3ParkingTariffsController.d.ts +9 -0
  97. package/dist/output-gateway/controllers/v3/V3ParkingTariffsController.js +70 -0
  98. package/dist/output-gateway/controllers/v3/V3ParkingTariffsController.js.map +1 -0
  99. package/dist/output-gateway/data-access/ParkingMachinesRepository.d.ts +10 -0
  100. package/dist/output-gateway/data-access/ParkingMachinesRepository.js +101 -0
  101. package/dist/output-gateway/data-access/ParkingMachinesRepository.js.map +1 -0
  102. package/dist/output-gateway/data-access/ParkingRepository.d.ts +14 -0
  103. package/dist/output-gateway/data-access/ParkingRepository.js +141 -0
  104. package/dist/output-gateway/data-access/ParkingRepository.js.map +1 -0
  105. package/dist/output-gateway/data-access/TariffRepository.d.ts +10 -0
  106. package/dist/output-gateway/data-access/TariffRepository.js +99 -0
  107. package/dist/output-gateway/data-access/TariffRepository.js.map +1 -0
  108. package/dist/output-gateway/helpers/params/IPaginationParams.d.ts +4 -0
  109. package/dist/output-gateway/helpers/params/IPaginationParams.js +3 -0
  110. package/dist/output-gateway/helpers/params/IPaginationParams.js.map +1 -0
  111. package/dist/output-gateway/helpers/params/IParkingMachinesParams.d.ts +9 -0
  112. package/dist/output-gateway/helpers/params/IParkingMachinesParams.js +3 -0
  113. package/dist/output-gateway/helpers/params/IParkingMachinesParams.js.map +1 -0
  114. package/dist/output-gateway/helpers/params/IParkingParams.d.ts +10 -0
  115. package/dist/output-gateway/helpers/params/IParkingParams.js +3 -0
  116. package/dist/output-gateway/helpers/params/IParkingParams.js.map +1 -0
  117. package/dist/output-gateway/helpers/params/IParkingTariffsParams.d.ts +7 -0
  118. package/dist/output-gateway/helpers/params/IParkingTariffsParams.js +3 -0
  119. package/dist/output-gateway/helpers/params/IParkingTariffsParams.js.map +1 -0
  120. package/dist/output-gateway/index.js +9 -1
  121. package/dist/output-gateway/index.js.map +1 -1
  122. package/dist/output-gateway/ioc/Di.d.ts +3 -0
  123. package/dist/output-gateway/ioc/Di.js +30 -0
  124. package/dist/output-gateway/ioc/Di.js.map +1 -0
  125. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +9 -0
  126. package/dist/output-gateway/ioc/ModuleContainerToken.js +13 -0
  127. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -0
  128. package/dist/output-gateway/models/ParkingsLocationModel.d.ts +1 -1
  129. package/dist/output-gateway/models/ParkingsLocationModel.js +19 -5
  130. package/dist/output-gateway/models/ParkingsLocationModel.js.map +1 -1
  131. package/dist/output-gateway/models/ParkingsModel.d.ts +6 -4
  132. package/dist/output-gateway/models/ParkingsModel.js +46 -10
  133. package/dist/output-gateway/models/ParkingsModel.js.map +1 -1
  134. package/dist/output-gateway/models/ParkingsTariffsModel.d.ts +5 -1
  135. package/dist/output-gateway/models/ParkingsTariffsModel.js +17 -2
  136. package/dist/output-gateway/models/ParkingsTariffsModel.js.map +1 -1
  137. package/dist/output-gateway/models/index.js +4 -2
  138. package/dist/output-gateway/models/index.js.map +1 -1
  139. package/dist/output-gateway/routers/constants.d.ts +2 -1
  140. package/dist/output-gateway/routers/constants.js +1 -0
  141. package/dist/output-gateway/routers/constants.js.map +1 -1
  142. package/dist/output-gateway/routers/index.d.ts +3 -0
  143. package/dist/output-gateway/routers/index.js +3 -0
  144. package/dist/output-gateway/routers/index.js.map +1 -1
  145. package/dist/output-gateway/routers/v2/V2ParkingRouter.js +25 -4
  146. package/dist/output-gateway/routers/v2/V2ParkingRouter.js.map +1 -1
  147. package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.d.ts +3 -0
  148. package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.js +43 -0
  149. package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.js.map +1 -0
  150. package/dist/output-gateway/routers/v3/V3ParkingRouter.d.ts +3 -0
  151. package/dist/output-gateway/routers/v3/V3ParkingRouter.js +57 -0
  152. package/dist/output-gateway/routers/v3/V3ParkingRouter.js.map +1 -0
  153. package/dist/output-gateway/routers/v3/V3ParkingTariffsRouter.d.ts +3 -0
  154. package/dist/output-gateway/routers/v3/V3ParkingTariffsRouter.js +31 -0
  155. package/dist/output-gateway/routers/v3/V3ParkingTariffsRouter.js.map +1 -0
  156. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.d.ts +8 -0
  157. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js +56 -0
  158. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js.map +1 -0
  159. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.d.ts +27 -0
  160. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.js +3 -0
  161. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.js.map +1 -0
  162. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.d.ts +9 -0
  163. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js +68 -0
  164. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js.map +1 -0
  165. package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.d.ts +8 -0
  166. package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.js +35 -0
  167. package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.js.map +1 -0
  168. package/dist/output-gateway/transformations/v3/ParkingTariffDtoTransformation.d.ts +11 -0
  169. package/dist/output-gateway/transformations/v3/ParkingTariffDtoTransformation.js +88 -0
  170. package/dist/output-gateway/transformations/v3/ParkingTariffDtoTransformation.js.map +1 -0
  171. package/dist/schema-definitions/datasources/InputParkingSourceSchema.d.ts +3 -0
  172. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js +17 -0
  173. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js.map +1 -0
  174. package/dist/schema-definitions/datasources/ParkingTariffDtoSchema.d.ts +111 -3
  175. package/dist/schema-definitions/datasources/ParkingTariffDtoSchema.js +16 -0
  176. package/dist/schema-definitions/datasources/ParkingTariffDtoSchema.js.map +1 -1
  177. package/dist/schema-definitions/datasources/TskParkingMachinesSchema.d.ts +3 -0
  178. package/dist/schema-definitions/datasources/TskParkingMachinesSchema.js +23 -0
  179. package/dist/schema-definitions/datasources/TskParkingMachinesSchema.js.map +1 -0
  180. package/dist/schema-definitions/datasources/TskParkingSectionLevelSchema.d.ts +3 -0
  181. package/dist/schema-definitions/datasources/TskParkingSectionLevelSchema.js +25 -0
  182. package/dist/schema-definitions/datasources/TskParkingSectionLevelSchema.js.map +1 -0
  183. package/dist/schema-definitions/datasources/TskParkingSectionSchema.d.ts +3 -0
  184. package/dist/schema-definitions/datasources/TskParkingSectionSchema.js +23 -0
  185. package/dist/schema-definitions/datasources/TskParkingSectionSchema.js.map +1 -0
  186. package/dist/schema-definitions/datasources/TskParkingZoneTariffSchema.d.ts +3 -0
  187. package/dist/schema-definitions/datasources/TskParkingZoneTariffSchema.js +105 -0
  188. package/dist/schema-definitions/datasources/TskParkingZoneTariffSchema.js.map +1 -0
  189. package/dist/schema-definitions/datasources/interfaces/ITskParkingMachine.d.ts +9 -0
  190. package/dist/schema-definitions/datasources/interfaces/ITskParkingMachine.js +3 -0
  191. package/dist/schema-definitions/datasources/interfaces/ITskParkingMachine.js.map +1 -0
  192. package/dist/schema-definitions/datasources/interfaces/ITskParkingSection.d.ts +9 -0
  193. package/dist/schema-definitions/datasources/interfaces/ITskParkingSection.js +3 -0
  194. package/dist/schema-definitions/datasources/interfaces/ITskParkingSection.js.map +1 -0
  195. package/dist/schema-definitions/datasources/interfaces/ITskParkingSectionLevel.d.ts +11 -0
  196. package/dist/schema-definitions/datasources/interfaces/ITskParkingSectionLevel.js +3 -0
  197. package/dist/schema-definitions/datasources/interfaces/ITskParkingSectionLevel.js.map +1 -0
  198. package/dist/schema-definitions/datasources/interfaces/ITskParkingZoneTariff.d.ts +57 -0
  199. package/dist/schema-definitions/datasources/interfaces/ITskParkingZoneTariff.js +3 -0
  200. package/dist/schema-definitions/datasources/interfaces/ITskParkingZoneTariff.js.map +1 -0
  201. package/dist/schema-definitions/index.d.ts +3 -0
  202. package/dist/schema-definitions/index.js +8 -0
  203. package/dist/schema-definitions/index.js.map +1 -1
  204. package/dist/schema-definitions/models/ParkingMachinesModel.d.ts +14 -0
  205. package/dist/schema-definitions/models/ParkingMachinesModel.js +21 -0
  206. package/dist/schema-definitions/models/ParkingMachinesModel.js.map +1 -0
  207. package/dist/schema-definitions/models/ParkingSourcesModel.d.ts +12 -0
  208. package/dist/schema-definitions/models/ParkingSourcesModel.js +20 -0
  209. package/dist/schema-definitions/models/ParkingSourcesModel.js.map +1 -0
  210. package/dist/schema-definitions/models/interfaces/IAddress.d.ts +8 -0
  211. package/dist/schema-definitions/models/interfaces/IAddress.js +3 -0
  212. package/dist/schema-definitions/models/interfaces/IAddress.js.map +1 -0
  213. package/dist/schema-definitions/models/interfaces/IParking.d.ts +28 -0
  214. package/dist/schema-definitions/models/interfaces/IParking.js +3 -0
  215. package/dist/schema-definitions/models/interfaces/IParking.js.map +1 -0
  216. package/dist/schema-definitions/models/interfaces/IParkingLocation.d.ts +13 -0
  217. package/dist/schema-definitions/models/interfaces/IParkingLocation.js +3 -0
  218. package/dist/schema-definitions/models/interfaces/IParkingLocation.js.map +1 -0
  219. package/dist/schema-definitions/models/interfaces/IParkingMachine.d.ts +10 -0
  220. package/dist/schema-definitions/models/interfaces/IParkingMachine.js +3 -0
  221. package/dist/schema-definitions/models/interfaces/IParkingMachine.js.map +1 -0
  222. package/dist/schema-definitions/{datasources → models}/interfaces/IParkingTariffDto.d.ts +8 -2
  223. package/dist/schema-definitions/models/interfaces/IParkingTariffDto.js.map +1 -0
  224. package/dist/schema-definitions/models/interfaces/tariff/IParkingTariffPeriod.d.ts +6 -0
  225. package/dist/schema-definitions/models/interfaces/tariff/IParkingTariffPeriod.js +3 -0
  226. package/dist/schema-definitions/models/interfaces/tariff/IParkingTariffPeriod.js.map +1 -0
  227. package/docs/implementation-documentation.md +116 -13
  228. package/docs/openapi-admin-input.yaml +90 -0
  229. package/docs/openapi-output.yaml +891 -58
  230. package/package.json +5 -3
  231. package/dist/schema-definitions/datasources/interfaces/IParkingTariffDto.js.map +0 -1
  232. /package/dist/schema-definitions/{datasources → models}/interfaces/IParkingTariffDto.js +0 -0
@@ -20,6 +20,8 @@ tags:
20
20
  description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> 💡 Parking Lots
21
21
  - name: 🅿️ Parking (v2)
22
22
  description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> 💡 Parking, parking zones, tarifs, measurements.
23
+ - name: 🅿️ Parking (v3)
24
+ description: 💡 Parking, tarifs, machines.
23
25
  paths:
24
26
  /v1/parkings:
25
27
  get:
@@ -216,26 +218,18 @@ paths:
216
218
  schema:
217
219
  type: number
218
220
  example: 0
219
- - name: timeCondition
221
+ - name: minutesBefore
220
222
  in: query
221
- required: true
222
- style: form
223
- explode: true
224
223
  schema:
225
- type: object
226
- properties:
227
- minutesBefore:
228
- type: number
229
- example: 10
230
- description: Lists items updated since given number of minutes
231
- updatedSince:
232
- type: string
233
- example: 2022-07-25
234
- description: Lists items updated after given date (ISO format expected)
235
- additionalProperties: false
236
- oneOf:
237
- - required: [ minutesBefore ]
238
- - required: [ updatedSince ]
224
+ type: integer
225
+ example: 10
226
+ description: 'Filter by time conditions based on last data update. By maximal minutes before last update.'
227
+ - name: updatedSince
228
+ in: query
229
+ schema:
230
+ type: string
231
+ example: '2022-07-25T00:00:00.000Z'
232
+ description: 'Filter by time conditions based on last data update. Date has to be in ISO8601 format. Cannot be used together with minutsBefore.'
239
233
  responses:
240
234
  200:
241
235
  description: OK
@@ -333,26 +327,18 @@ paths:
333
327
  schema:
334
328
  type: number
335
329
  example: 0
336
- - name: timeCondition
337
- in: query
338
- required: true
339
- style: form
340
- explode: true
341
- schema:
342
- type: object
343
- properties:
344
- minutesBefore:
345
- type: number
346
- example: 10
347
- description: Lists items updated since given number of minutes
348
- updatedSince:
349
- type: string
350
- example: 2022-07-25
351
- description: Lists items updated after given date (ISO format expected)
352
- additionalProperties: false
353
- oneOf:
354
- - required: [ minutesBefore ]
355
- - required: [ updatedSince ]
330
+ - name: minutesBefore
331
+ in: query
332
+ schema:
333
+ type: integer
334
+ example: 10
335
+ description: 'Filter by time conditions based on last data update. By maximal minutes before last update.'
336
+ - name: updatedSince
337
+ in: query
338
+ schema:
339
+ type: string
340
+ example: '2022-07-25T00:00:00.000Z'
341
+ description: 'Filter by time conditions based on last data update. Date has to be in ISO8601 format. Cannot be used together with minutsBefore.'
356
342
  - name: zoneType
357
343
  in: query
358
344
  description: Filter by parking zone. Use with square brackets `zoneType[]`,
@@ -468,26 +454,18 @@ paths:
468
454
  schema:
469
455
  type: number
470
456
  example: 0
471
- - name: timeCondition
472
- in: query
473
- required: true
474
- style: form
475
- explode: true
476
- schema:
477
- type: object
478
- properties:
479
- minutesBefore:
480
- type: number
481
- example: 10
482
- description: Lists items updated since given number of minutes
483
- updatedSince:
484
- type: string
485
- example: 2022-07-25
486
- description: Lists items updated after given date (ISO format expected)
487
- additionalProperties: false
488
- oneOf:
489
- - required: [ minutesBefore ]
490
- - required: [ updatedSince ]
457
+ - name: minutesBefore
458
+ in: query
459
+ schema:
460
+ type: integer
461
+ example: 10
462
+ description: 'Filter by time conditions based on last data update. By maximal minutes before last update.'
463
+ - name: updatedSince
464
+ in: query
465
+ schema:
466
+ type: string
467
+ example: '2022-07-25T00:00:00.000Z'
468
+ description: 'Filter by time conditions based on last data update. Date has to be in ISO8601 format. Cannot be used together with minutsBefore.'
491
469
  responses:
492
470
  200:
493
471
  description: OK
@@ -573,6 +551,314 @@ paths:
573
551
  $ref: "#/components/responses/UnauthorizedError"
574
552
  404:
575
553
  description: Not found
554
+ /v3/parking:
555
+ get:
556
+ tags:
557
+ - 🅿️ Parking (v3)
558
+ summary: 'Get a list of parking locations with filtering options'
559
+ parameters:
560
+ - name: primarySource
561
+ in: query
562
+ schema:
563
+ type: array
564
+ items:
565
+ type: string
566
+ enum:
567
+ - tsk_v2
568
+ description: 'Filter by primary source. Use with square brackets `primarySource[]`'
569
+ - name: primarySourceId
570
+ in: query
571
+ schema:
572
+ type: string
573
+ example: 'c66bb668-eab6-49da-bc84-002263e1dce0'
574
+ description: 'Filter by primary source ID'
575
+ - name: boundingBox
576
+ in: query
577
+ schema:
578
+ type: string
579
+ example: '50.123,14.243,50.017,14.573'
580
+ description: 'Filter by bounding box in format "topLeft.lat,topLeft.lon,bottomRight.lat,bottomRight.lon", polygons that fit only partialy to selected bounding box are included'
581
+ - name: validFrom
582
+ in: query
583
+ schema:
584
+ type: string
585
+ format: date-time
586
+ example: '2022-08-01T00:00:00Z'
587
+ description: 'Filter by valid from date'
588
+ - name: accessDedicatedTo
589
+ in: query
590
+ schema:
591
+ type: array
592
+ items:
593
+ type: string
594
+ enum:
595
+ - for_all
596
+ - disabled
597
+ - charging
598
+ - parent
599
+ - delivery
600
+ - customer
601
+ - resident
602
+ - bus
603
+ - designated
604
+ - truck
605
+ - motorcycle
606
+ - RV
607
+ description: 'Experimental: Filter by access combinations to specific spaces in parking. Return only strictly matched parking by access to parking spaces'
608
+ - name: minutesBefore
609
+ in: query
610
+ schema:
611
+ type: integer
612
+ example: 10
613
+ description: 'Filter by time conditions based on last data update. By maximal minutes before last update.'
614
+ - name: updatedSince
615
+ in: query
616
+ schema:
617
+ type: string
618
+ example: '2022-07-25T00:00:00.000Z'
619
+ description: 'Filter by time conditions based on last data update. Date has to be in ISO8601 format. Cannot be used together with minutsBefore.'
620
+ - name: limit
621
+ in: query
622
+ schema:
623
+ type: integer
624
+ default: 1000
625
+ maximum: 10000
626
+ minimum: 0
627
+ description: 'Number of results to return'
628
+ - name: offset
629
+ in: query
630
+ schema:
631
+ type: integer
632
+ default: 0
633
+ minimum: 0
634
+ description: 'Number of results to skip for pagination'
635
+ responses:
636
+ '200':
637
+ description: 'Successful response'
638
+ content:
639
+ application/json; charset=utf-8:
640
+ schema:
641
+ type: object
642
+ properties:
643
+ features:
644
+ type: array
645
+ items:
646
+ $ref: '#/components/schemas/Parking'
647
+ type:
648
+ type: string
649
+ example: FeatureCollection
650
+ /v3/parking/{id}:
651
+ get:
652
+ tags:
653
+ - 🅿️ Parking (v3)
654
+ summary: 'Get detailed information about a parking location by ID'
655
+ parameters:
656
+ - name: id
657
+ in: path
658
+ required: true
659
+ schema:
660
+ type: string
661
+ format: uuid
662
+ example: 'c66bb668-eab6-49da-bc84-002263e1dce0'
663
+ description: 'The UUID identifier of the parking location to retrieve'
664
+ responses:
665
+ '200':
666
+ description: 'Successful response'
667
+ content:
668
+ application/json:
669
+ schema:
670
+ $ref: '#/components/schemas/Parking'
671
+ /v3/parking-tariffs:
672
+ get:
673
+ tags:
674
+ - 🅿️ Parking (v3)
675
+ summary: 'Get a list of tariffs with filtering options'
676
+ parameters:
677
+ - name: primarySource
678
+ in: query
679
+ schema:
680
+ type: array
681
+ items:
682
+ type: string
683
+ enum:
684
+ - tsk_v2
685
+ example: tsk_v2
686
+ description: 'Filter by primary source. Use with square brackets `primarySource[]`'
687
+ - name: primarySourceId
688
+ in: query
689
+ schema:
690
+ type: string
691
+ example: '6c08e2f9-a884-4dce-81e3-00e3391f811a'
692
+ description: 'Filter by primary source ID of ChargeBand in Tariff (result show all tariffs that contains atleast one ChargeBand with the selected primary sources id and inside only ChargeBand objects that fit into that filter)'
693
+ - name: validFrom
694
+ in: query
695
+ schema:
696
+ type: string
697
+ format: date-time
698
+ example: '2022-08-01T00:00:00.000Z'
699
+ description: 'Filter by valid from date of ChargeBand in Tariff (result show all tariffs that contains atleast one valid ChargeBand and inside only ChargeBand objects that fit into that filter)'
700
+ - name: validTo
701
+ in: query
702
+ schema:
703
+ type: string
704
+ format: date-time
705
+ example: '2023-12-31T00:00:00.000Z'
706
+ description: 'Filter by valid to date of ChargeBand in Tariff (result show all tariffs that contains atleast one valid ChargeBand and inside only ChargeBand objects that fit into that filter)'
707
+ - name: limit
708
+ in: query
709
+ schema:
710
+ type: integer
711
+ default: 1000
712
+ maximum: 10000
713
+ minimum: 0
714
+ description: 'Number of results to return'
715
+ - name: offset
716
+ in: query
717
+ schema:
718
+ type: integer
719
+ default: 0
720
+ minimum: 0
721
+ description: 'Number of results to skip for pagination'
722
+ responses:
723
+ '200':
724
+ description: 'Successful response'
725
+ content:
726
+ application/json:
727
+ schema:
728
+ type: array
729
+ items:
730
+ $ref: '#/components/schemas/ParkingTariff'
731
+ /v3/parking-tariffs/{id}:
732
+ get:
733
+ tags:
734
+ - 🅿️ Parking (v3)
735
+ summary: 'Get a tariff by ID'
736
+ parameters:
737
+ - name: id
738
+ in: path
739
+ required: true
740
+ schema:
741
+ type: string
742
+ format: uuid
743
+ example: '0639c53f-c555-49ac-b5e0-bb3d50acf588'
744
+ description: 'UUID of the tariff to retrieve'
745
+ responses:
746
+ '200':
747
+ description: 'Successful response'
748
+ content:
749
+ application/json:
750
+ schema:
751
+ $ref: '#/components/schemas/ParkingTariff'
752
+ /v3/parking-machines:
753
+ get:
754
+ tags:
755
+ - 🅿️ Parking (v3)
756
+ summary: 'Get a list of parking machines with filtering options'
757
+ parameters:
758
+ - name: primarySource
759
+ in: query
760
+ schema:
761
+ type: array
762
+ items:
763
+ type: string
764
+ enum:
765
+ - tsk_v2
766
+ example: tsk_v2
767
+ description: 'Filter by primary source. Use with square brackets `primarySource[]`'
768
+ - name: primarySourceId
769
+ in: query
770
+ schema:
771
+ type: string
772
+ example: '4521afac-66db-4680-abc5-0006837d977a'
773
+ description: 'Filter by primary source ID'
774
+ - name: type
775
+ in: query
776
+ schema:
777
+ type: array
778
+ items:
779
+ type: string
780
+ enum:
781
+ - payment_machine
782
+ - info_box
783
+ example: type[]=payment_machine&type[]=info_box
784
+ description: 'Filter by type'
785
+ - name: boundingBox
786
+ in: query
787
+ schema:
788
+ type: string
789
+ example: '50.123,14.243,50.017,14.573'
790
+ description: 'Filter by bounding box in format "topLeft.lat,topLeft.lon,bottomRight.lat,bottomRight.lon", polygons that fit only partialy to selected bounding box are included'
791
+ - name: codeMask
792
+ in: query
793
+ schema:
794
+ type: string
795
+ example: '%88'
796
+ description: |
797
+ Filter by code mask using substring match and "%" wildcard (partial match). (If used directly in postman or browser, "%" needs to be encoded as "%25".
798
+ Examples:
799
+ - `query` matches substring in codes
800
+ - `start%` matches codes starting with "start"
801
+ - `%end` matches codes ending with "end"
802
+ - `%middle%` matches codes containing "middle" anywhere
803
+ - name: validFrom
804
+ in: query
805
+ schema:
806
+ type: string
807
+ format: date-time
808
+ example: '2023-08-01T00:00:00Z'
809
+ description: 'Filter by valid from date'
810
+ - name: limit
811
+ in: query
812
+ schema:
813
+ type: integer
814
+ default: 1000
815
+ maximum: 10000
816
+ minimum: 0
817
+ description: 'Number of results to return'
818
+ - name: offset
819
+ in: query
820
+ schema:
821
+ type: integer
822
+ default: 0
823
+ minimum: 0
824
+ description: 'Number of results to skip for pagination'
825
+ responses:
826
+ '200':
827
+ description: 'Successful response'
828
+ content:
829
+ application/json; charset=utf-8:
830
+ schema:
831
+ type: object
832
+ properties:
833
+ features:
834
+ type: array
835
+ items:
836
+ $ref: '#/components/schemas/ParkingMachine'
837
+ type:
838
+ type: string
839
+ example: FeatureCollection
840
+ /v3/parking-machines/{id}:
841
+ get:
842
+ tags:
843
+ - 🅿️ Parking (v3)
844
+ summary: 'Get a parking machine by ID'
845
+ parameters:
846
+ - name: id
847
+ in: path
848
+ required: true
849
+ schema:
850
+ type: string
851
+ format: uuid
852
+ example: '4521afac-66db-4680-abc5-0006837d977a'
853
+ description: 'UUID of the parking machine to retrieve'
854
+ responses:
855
+ '200':
856
+ description: 'Successful response'
857
+ content:
858
+ application/json:
859
+ schema:
860
+ $ref: '#/components/schemas/ParkingMachine'
861
+
576
862
  components:
577
863
  responses:
578
864
  UnauthorizedError:
@@ -1195,3 +1481,550 @@ components:
1195
1481
  type: string
1196
1482
  nullable: true
1197
1483
  example: Mon-Sun 14:30
1484
+ # v3 schemas
1485
+ Parking:
1486
+ type: object
1487
+ title: Parking
1488
+ properties:
1489
+ geometry:
1490
+ type: object
1491
+ properties:
1492
+ type:
1493
+ type: string
1494
+ enum:
1495
+ - Point
1496
+ - Polygon
1497
+ - MultiPolygon
1498
+ description: The type of geometry (GeoJSON Point, Polygon, MultiPolygon).
1499
+ coordinates:
1500
+ oneOf:
1501
+ - type: array
1502
+ items:
1503
+ type: number
1504
+ example: [14.441252, 50.109318]
1505
+ description: Point coordinates
1506
+ - type: array
1507
+ items:
1508
+ type: array
1509
+ items:
1510
+ type: array
1511
+ items:
1512
+ type: number
1513
+ example:
1514
+ [
1515
+ [14.50823156003554, 50.10498927328214],
1516
+ [14.505782430390298, 50.1031042405622],
1517
+ [14.509701037821998, 50.1029471511537],
1518
+ [14.50823156003554, 50.10498927328214]
1519
+ ]
1520
+ description: Polygon coordinates
1521
+ - type: array
1522
+ items:
1523
+ type: array
1524
+ items:
1525
+ type: array
1526
+ items:
1527
+ type: array
1528
+ items:
1529
+ type: number
1530
+ example:
1531
+ [
1532
+ [
1533
+ [14.50823156003554, 50.10498927328214],
1534
+ [14.505782430390298, 50.1031042405622],
1535
+ [14.509701037821998, 50.1029471511537],
1536
+ [14.50823156003554, 50.10498927328214]
1537
+ ],
1538
+ [
1539
+ [14.50823156003554, 50.10498927328214],
1540
+ [14.505782430390298, 50.1031042405622],
1541
+ [14.509701037821998, 50.1029471511537],
1542
+ [14.50823156003554, 50.10498927328214]
1543
+ ]
1544
+ ]
1545
+ description: MultiPolygon coordinates
1546
+ description: Coordinates of the geometry.
1547
+ description: GeoJSON geometry of the parking location.
1548
+ properties:
1549
+ type: object
1550
+ properties:
1551
+ id:
1552
+ type: string
1553
+ description: 'The identifier for the parking location.'
1554
+ primary_source:
1555
+ type: string
1556
+ enum:
1557
+ - tsk_v2
1558
+ description: 'The primary source of the parking location. Assigned by us.'
1559
+ primary_source_id:
1560
+ type: string
1561
+ nullable: true
1562
+ description: 'The ID defined by the primary source. As in the source data.'
1563
+ name:
1564
+ type: string
1565
+ nullable: true
1566
+ description: 'The name of the parking location.'
1567
+ valid_from:
1568
+ type: string
1569
+ format: date-time
1570
+ description: 'The start date and time when the parking location is opened from. Or date of implementation.'
1571
+ centroid:
1572
+ type: object
1573
+ properties:
1574
+ type:
1575
+ type: string
1576
+ enum:
1577
+ - Point
1578
+ coordinates:
1579
+ type: array
1580
+ items:
1581
+ type: number
1582
+ description: 'The GeoJSON centroid of the parking location, centroid is always point in geometry.'
1583
+ last_updated_at:
1584
+ type: string
1585
+ format: date-time
1586
+ description: 'The date and time when info about the parking location was last checked and updated.'
1587
+ last_modified_at_source:
1588
+ type: string
1589
+ format: date-time
1590
+ description: 'The date and time when the parking location was last modified at the source. In case data source provides it.'
1591
+ space:
1592
+ type: object
1593
+ properties:
1594
+ features:
1595
+ type: array
1596
+ items:
1597
+ $ref: '#/components/schemas/ParkingSpace'
1598
+ type:
1599
+ type: string
1600
+ example: FeatureCollection
1601
+ tariff:
1602
+ type: string
1603
+ format: uuid
1604
+ description: 'UUID of related parking tariff.'
1605
+ required:
1606
+ - id
1607
+ - primary_source
1608
+ - valid_from
1609
+ - last_updated_at
1610
+ - centroid
1611
+ type:
1612
+ type: string
1613
+ example: Feature
1614
+ ParkingSpace:
1615
+ type: object
1616
+ title: Parking Space
1617
+ properties:
1618
+ geometry:
1619
+ type: object
1620
+ properties:
1621
+ type:
1622
+ type: string
1623
+ enum:
1624
+ - Point
1625
+ - Polygon
1626
+ - MultiPolygon
1627
+ description: The type of geometry (GeoJSON Point, Polygon, MultiPolygon).
1628
+ coordinates:
1629
+ oneOf:
1630
+ - type: array
1631
+ items:
1632
+ type: number
1633
+ example: [14.441252, 50.109318]
1634
+ description: Point coordinates
1635
+ - type: array
1636
+ items:
1637
+ type: array
1638
+ items:
1639
+ type: array
1640
+ items:
1641
+ type: number
1642
+ example:
1643
+ [
1644
+ [14.50823156003554, 50.10498927328214],
1645
+ [14.505782430390298, 50.1031042405622],
1646
+ [14.509701037821998, 50.1029471511537],
1647
+ [14.50823156003554, 50.10498927328214]
1648
+ ]
1649
+ description: Polygon coordinates
1650
+ - type: array
1651
+ items:
1652
+ type: array
1653
+ items:
1654
+ type: array
1655
+ items:
1656
+ type: array
1657
+ items:
1658
+ type: number
1659
+ example:
1660
+ [
1661
+ [
1662
+ [14.50823156003554, 50.10498927328214],
1663
+ [14.505782430390298, 50.1031042405622],
1664
+ [14.509701037821998, 50.1029471511537],
1665
+ [14.50823156003554, 50.10498927328214]
1666
+ ],
1667
+ [
1668
+ [14.50823156003554, 50.10498927328214],
1669
+ [14.505782430390298, 50.1031042405622],
1670
+ [14.509701037821998, 50.1029471511537],
1671
+ [14.50823156003554, 50.10498927328214]
1672
+ ]
1673
+ ]
1674
+ description: MultiPolygon coordinates
1675
+ description: Coordinates of the geometry.
1676
+ description: GeoJSON geometry of the parking space.
1677
+ properties:
1678
+ type: object
1679
+ properties:
1680
+ id:
1681
+ type: string
1682
+ description: 'The identifier for the parking space.'
1683
+ capacity:
1684
+ type: integer
1685
+ minimum: 0
1686
+ nullable: true
1687
+ description: 'The capacity of the parking space.'
1688
+ filter:
1689
+ type: string
1690
+ description: 'Specific marking of parking space (blue zone, A zone etc.).'
1691
+ access_dedicated_to:
1692
+ type: array
1693
+ items:
1694
+ type: string
1695
+ enum:
1696
+ - disabled
1697
+ - charging
1698
+ - parent
1699
+ - delivery
1700
+ - customer
1701
+ - resident
1702
+ - bus
1703
+ - designated
1704
+ - truck
1705
+ - all
1706
+ - motorcycle
1707
+ - RV
1708
+ minItems: 0
1709
+ description: |
1710
+ Array of dedicated access types for the parking space:
1711
+ * `disabled` - reserved for disabled individuals
1712
+ * `charging` - intended for electric vehicle charging
1713
+ * `parent` - designated for parents with children
1714
+ * `delivery` - exclusively for delivery purposes
1715
+ * `customer` - exclusive for customers
1716
+ * `resident` - reserved for residents
1717
+ * `bus` - reserved for buses
1718
+ * `designated` - specific purpose (e.g., school, embassy)
1719
+ * `truck` - reserved for trucks
1720
+ * `all` - open for all vehicles
1721
+ * `motorcycle` - for motorcycles only
1722
+ * `RV` - reserved for recreational vehicles
1723
+ address:
1724
+ $ref: '#/components/schemas/ParkingAddress'
1725
+ restriction:
1726
+ type: array
1727
+ items:
1728
+ $ref: '#/components/schemas/ParkingRestriction'
1729
+ required:
1730
+ - id
1731
+ - access_dedicated_to
1732
+ type:
1733
+ type: string
1734
+ example: Feature
1735
+ ParkingRestriction:
1736
+ title: Parking Restriction
1737
+ description:
1738
+ Vehicles with a special feature.
1739
+ * `CNG` - Compressed Natural Gas vehicles
1740
+ * `LPG` - Liquefied Petroleum Gas vehicles
1741
+ * `bus` - buses
1742
+ * `truck` - trucks
1743
+ * `motorcycle` - motorcycles
1744
+ * `trailer` - trailers
1745
+ * `RV` - recreational vehicles
1746
+ type: object
1747
+ properties:
1748
+ default:
1749
+ type: string
1750
+ enum:
1751
+ - cng
1752
+ - lpg
1753
+ - bus
1754
+ - truck
1755
+ - motorcycle
1756
+ - trailer
1757
+ - rv
1758
+ additionalProperties:
1759
+ type: boolean
1760
+ ParkingAddress:
1761
+ type: object
1762
+ title: Parking Address
1763
+ properties:
1764
+ address_formated:
1765
+ type: string
1766
+ nullable: true
1767
+ description: 'Formatted address of the parking location.'
1768
+ country:
1769
+ type: string
1770
+ nullable: true
1771
+ description: 'Country of the parking location.'
1772
+ locality:
1773
+ type: string
1774
+ nullable: true
1775
+ description: 'Locality of the parking location.'
1776
+ region:
1777
+ type: string
1778
+ nullable: true
1779
+ description: 'Region of the parking location.'
1780
+ postal_code:
1781
+ type: string
1782
+ nullable: true
1783
+ description: 'Postal code of the parking location.'
1784
+ street_address:
1785
+ type: string
1786
+ nullable: true
1787
+ description: 'Street address of the parking location.'
1788
+ ParkingTariff:
1789
+ type: object
1790
+ title: Parking Tariff
1791
+ properties:
1792
+ id:
1793
+ type: string
1794
+ format: uuid
1795
+ description: 'The UUID identifier for the tariff.'
1796
+ charge_bands:
1797
+ type: array
1798
+ items:
1799
+ $ref: '#/components/schemas/ParkingChargeBand'
1800
+ description: 'Array of Charge Band objects that represent tariff categories for different users.'
1801
+ required:
1802
+ - id
1803
+ - charge_bands
1804
+ ParkingChargeBand:
1805
+ type: object
1806
+ title: Parking Charge Band
1807
+ properties:
1808
+ primary_source:
1809
+ type: string
1810
+ enum: ['tsk_v2']
1811
+ description: 'The primary source of the charge band.'
1812
+ primary_source_id:
1813
+ type: string
1814
+ nullable: true
1815
+ description: 'The ID defines by the primary source.'
1816
+ maximum_duration:
1817
+ type: integer
1818
+ minimum: 0
1819
+ nullable: true
1820
+ description: 'Maximum duration for charging (in seconds).'
1821
+ valid_from:
1822
+ type: string
1823
+ format: date-time
1824
+ description: 'Valid from date.'
1825
+ valid_to:
1826
+ type: string
1827
+ format: date-time
1828
+ nullable: true
1829
+ description: 'Valid to date.'
1830
+ last_updated_at:
1831
+ type: string
1832
+ format: date-time
1833
+ description: 'The date and time when info about the tariff category was last checked and updated.'
1834
+ last_modified_at_source:
1835
+ type: string
1836
+ format: date-time
1837
+ nullable: true
1838
+ description: 'The date and time when the tariff category was last modified at the source.'
1839
+ charges:
1840
+ type: array
1841
+ items:
1842
+ $ref: '#/components/schemas/ParkingCharge'
1843
+ description: 'Array of Charge objects.'
1844
+ required:
1845
+ - primary_source
1846
+ - valid_from
1847
+ ParkingCharge:
1848
+ type: object
1849
+ title: Parking Charge
1850
+ properties:
1851
+ id:
1852
+ type: string
1853
+ format: uuid
1854
+ description: 'The UUID identifier for the charge.'
1855
+ charge:
1856
+ type: string
1857
+ example: '0.6666666666666666'
1858
+ description: 'Charge amount.'
1859
+ charge_type:
1860
+ type: string
1861
+ enum: ['other', 'minimum', 'maximum']
1862
+ description: 'Type of charge.'
1863
+ charge_order_index:
1864
+ type: integer
1865
+ minimum: 0
1866
+ description: 'Order index for charges.'
1867
+ charge_interval:
1868
+ type: integer
1869
+ minimum: 0
1870
+ description: 'Charge interval (in seconds).'
1871
+ max_iterations_of_charge:
1872
+ type: integer
1873
+ minimum: 0
1874
+ description: 'Maximum iterations of charge.'
1875
+ min_iterations_of_charge:
1876
+ type: integer
1877
+ minimum: 0
1878
+ description: 'Minimum iterations of charge.'
1879
+ valid_from:
1880
+ type: string
1881
+ format: date-time
1882
+ description: 'Valid from date.'
1883
+ valid_to:
1884
+ type: string
1885
+ format: date-time
1886
+ nullable: true
1887
+ description: 'Valid to date.'
1888
+ periods_of_time:
1889
+ type: array
1890
+ items:
1891
+ $ref: '#/components/schemas/ParkingPeriodsOfTime'
1892
+ description: 'Array of Periods of Time objects.'
1893
+ required:
1894
+ - id
1895
+ - charge
1896
+ - charge_type
1897
+ - charge_order_index
1898
+ - charge_interval
1899
+ - valid_from
1900
+ ParkingPeriodsOfTime:
1901
+ type: object
1902
+ title: Parking Periods Of Time
1903
+ properties:
1904
+ day_in_week:
1905
+ type: string
1906
+ enum: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
1907
+ description: 'Day of the week.'
1908
+ start:
1909
+ type: string
1910
+ format: time
1911
+ description: 'Start time of the periods of time.'
1912
+ end:
1913
+ type: string
1914
+ format: time
1915
+ description: 'End time of the periods of time.'
1916
+ ph:
1917
+ type: string
1918
+ enum: ['PH_only', 'PH_off']
1919
+ description: 'Public holiday availability.'
1920
+ required:
1921
+ - day_in_week
1922
+ - start
1923
+ - end
1924
+ - ph
1925
+ ParkingMachine:
1926
+ type: object
1927
+ title: Parking Machine
1928
+ properties:
1929
+ geometry:
1930
+ type: object
1931
+ properties:
1932
+ type:
1933
+ type: string
1934
+ enum:
1935
+ - Point
1936
+ - Polygon
1937
+ - MultiPolygon
1938
+ description: The type of geometry (GeoJSON Point, Polygon, MultiPolygon).
1939
+ coordinates:
1940
+ oneOf:
1941
+ - type: array
1942
+ items:
1943
+ type: number
1944
+ example: [14.441252, 50.109318]
1945
+ description: Point coordinates
1946
+ - type: array
1947
+ items:
1948
+ type: array
1949
+ items:
1950
+ type: array
1951
+ items:
1952
+ type: number
1953
+ example:
1954
+ [
1955
+ [14.50823156003554, 50.10498927328214],
1956
+ [14.505782430390298, 50.1031042405622],
1957
+ [14.509701037821998, 50.1029471511537],
1958
+ [14.50823156003554, 50.10498927328214]
1959
+ ]
1960
+ description: Polygon coordinates
1961
+ - type: array
1962
+ items:
1963
+ type: array
1964
+ items:
1965
+ type: array
1966
+ items:
1967
+ type: array
1968
+ items:
1969
+ type: number
1970
+ example:
1971
+ [
1972
+ [
1973
+ [14.50823156003554, 50.10498927328214],
1974
+ [14.505782430390298, 50.1031042405622],
1975
+ [14.509701037821998, 50.1029471511537],
1976
+ [14.50823156003554, 50.10498927328214]
1977
+ ],
1978
+ [
1979
+ [14.50823156003554, 50.10498927328214],
1980
+ [14.505782430390298, 50.1031042405622],
1981
+ [14.509701037821998, 50.1029471511537],
1982
+ [14.50823156003554, 50.10498927328214]
1983
+ ]
1984
+ ]
1985
+ description: MultiPolygon coordinates
1986
+ description: Coordinates of the geometry.
1987
+ description: GeoJSON geometry of the parking machine.
1988
+ properties:
1989
+ type: object
1990
+ properties:
1991
+ id:
1992
+ type: string
1993
+ format: uuid
1994
+ description: The UUID identifier for the parking machine.
1995
+ primary_source:
1996
+ type: string
1997
+ enum:
1998
+ - tsk_v2
1999
+ description: The primary source of the parking machine.
2000
+ primary_source_id:
2001
+ type: string
2002
+ nullable: true
2003
+ description: The ID defined by the primary source.
2004
+ code:
2005
+ type: string
2006
+ description: The code of the parking machine.
2007
+ machine_type:
2008
+ type: string
2009
+ enum:
2010
+ - payment_machine
2011
+ - info_box
2012
+ description: |
2013
+ The type of the parking machine.
2014
+ * `payment_machine` - a facility where payment can be made for parking; often equipped with payment options
2015
+ * `info_box` - an installation providing information and possibly a QR code, without payment capabilities.
2016
+ valid_from:
2017
+ type: string
2018
+ format: date-time
2019
+ description: The start date when the parking machine is valid.
2020
+ tariff_id:
2021
+ type: string
2022
+ format: uuid
2023
+ description: The UUID identifier for the tariff connected to the parking machine.
2024
+ required:
2025
+ - id
2026
+ - primary_source
2027
+ - valid_from
2028
+ type:
2029
+ type: string
2030
+ example: Feature