@golemio/parkings 1.5.4-dev.916866606 → 1.5.4

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.
@@ -0,0 +1,1177 @@
1
+ {
2
+ "openapi": "3.0.3",
3
+ "info": {
4
+ "title": "🅿️ Parking",
5
+ "description": "<p>💡 Parkings, parking zones, tarifs, measurements.</p>",
6
+ "version": "1.0.0",
7
+ "contact": {
8
+ "name": "Golemio Prague Data Plaform",
9
+ "email": "golemio@operatorict.cz",
10
+ "url": "https://golemio.cz"
11
+ }
12
+ },
13
+ "servers": [
14
+ {
15
+ "url": "https://rabin.golemio.cz/v2",
16
+ "description": "Test (development) server"
17
+ },
18
+ {
19
+ "url": "https://api.golemio.cz/v2",
20
+ "description": "Main (production) server"
21
+ }
22
+ ],
23
+ "paths": {
24
+ "/parking": {
25
+ "get": {
26
+ "summary": "GET All Parking Spaces",
27
+ "parameters": [
28
+ {
29
+ "name": "latlng",
30
+ "in": "query",
31
+ "description": "Sorting by location (Latitude and Longitude separated by comma, latitude first).",
32
+ "schema": {
33
+ "type": "string",
34
+ "example": "50.124935,14.457204"
35
+ }
36
+ },
37
+ {
38
+ "name": "range",
39
+ "in": "query",
40
+ "description": "Filter by distance from latlng in meters (range query). Depends on the latlng parameter.",
41
+ "schema": {
42
+ "type": "number",
43
+ "example": 5000
44
+ }
45
+ },
46
+ {
47
+ "name": "source",
48
+ "in": "query",
49
+ "description": "Filter by data provider.",
50
+ "schema": {
51
+ "type": "string",
52
+ "example": "korid"
53
+ }
54
+ },
55
+ {
56
+ "name": "sourceId",
57
+ "in": "query",
58
+ "description": "Filter by parking group id. Unique per data provider.",
59
+ "schema": {
60
+ "type": "string",
61
+ "example": 1
62
+ }
63
+ },
64
+ {
65
+ "name": "category",
66
+ "in": "query",
67
+ "description": "Filter by parking type. Use with square brackets `category[]`",
68
+ "schema": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object"
72
+ },
73
+ "example": "park_and_ride"
74
+ },
75
+ "explode": false,
76
+ "style": "form"
77
+ },
78
+ {
79
+ "name": "limit",
80
+ "in": "query",
81
+ "description": "Limits number of retrieved items.",
82
+ "schema": {
83
+ "type": "number",
84
+ "example": 10
85
+ }
86
+ },
87
+ {
88
+ "name": "offset",
89
+ "in": "query",
90
+ "description": "Number of the first items that are skipped.",
91
+ "schema": {
92
+ "type": "number",
93
+ "example": 0
94
+ }
95
+ },
96
+ {
97
+ "name": "timeCondition",
98
+ "in": "query",
99
+ "required": true,
100
+ "schema": {
101
+ "type": "object",
102
+ "properties": {
103
+ "minutesBefore": {
104
+ "description": "Lists items updated since given number of minutes",
105
+ "type": "number",
106
+ "example": 10
107
+ },
108
+ "updatedSince": {
109
+ "description": "Lists items updated after given date (ISO format expected)",
110
+ "type": "string",
111
+ "example": "2022-07-25"
112
+ }
113
+ },
114
+ "additionalProperties": false,
115
+ "oneOf": [
116
+ {
117
+ "required": [
118
+ "minutesBefore"
119
+ ]
120
+ },
121
+ {
122
+ "required": [
123
+ "updatedSince"
124
+ ]
125
+ }
126
+ ]
127
+ },
128
+ "explode": true,
129
+ "style": "form"
130
+ }
131
+ ],
132
+ "responses": {
133
+ "200": {
134
+ "description": "OK",
135
+ "content": {
136
+ "application/json; charset=utf-8": {
137
+ "schema": {
138
+ "type": "object",
139
+ "properties": {
140
+ "features": {
141
+ "type": "array",
142
+ "items": {
143
+ "$ref": "#/components/schemas/ParkingSpaceFeature"
144
+ }
145
+ },
146
+ "type": {
147
+ "type": "string",
148
+ "example": "FeatureCollection"
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ },
155
+ "401": {
156
+ "$ref": "#/components/responses/UnauthorizedError"
157
+ },
158
+ "404": {
159
+ "description": "Not found"
160
+ }
161
+ },
162
+ "tags": [
163
+ "🅿️ Parking"
164
+ ]
165
+ }
166
+ },
167
+ "/parking/{id}": {
168
+ "get": {
169
+ "summary": "GET Parking Space",
170
+ "parameters": [
171
+ {
172
+ "name": "id",
173
+ "in": "path",
174
+ "description": "Id of parking location.",
175
+ "required": true,
176
+ "schema": {
177
+ "type": "string",
178
+ "example": "korid-20"
179
+ }
180
+ }
181
+ ],
182
+ "responses": {
183
+ "200": {
184
+ "description": "OK",
185
+ "content": {
186
+ "application/json; charset=utf-8": {
187
+ "schema": {
188
+ "$ref": "#/components/schemas/ParkingSpaceFeature"
189
+ }
190
+ }
191
+ }
192
+ },
193
+ "401": {
194
+ "$ref": "#/components/responses/UnauthorizedError"
195
+ },
196
+ "404": {
197
+ "description": "Not found"
198
+ }
199
+ },
200
+ "tags": [
201
+ "🅿️ Parking"
202
+ ]
203
+ }
204
+ },
205
+ "/parking/detail": {
206
+ "get": {
207
+ "summary": "GET All Detailed Parking Spaces",
208
+ "parameters": [
209
+ {
210
+ "name": "latlng",
211
+ "in": "query",
212
+ "description": "Sorting by location (Latitude and Longitude separated by comma, latitude first).",
213
+ "schema": {
214
+ "type": "string",
215
+ "example": "50.124935,14.457204"
216
+ }
217
+ },
218
+ {
219
+ "name": "range",
220
+ "in": "query",
221
+ "description": "Filter by distance from latlng in meters (range query). Depends on the latlng parameter.",
222
+ "schema": {
223
+ "type": "number",
224
+ "example": 5000
225
+ }
226
+ },
227
+ {
228
+ "name": "source",
229
+ "in": "query",
230
+ "description": "Filter by data provider.",
231
+ "schema": {
232
+ "type": "string",
233
+ "example": "tsk"
234
+ }
235
+ },
236
+ {
237
+ "name": "sourceId",
238
+ "in": "query",
239
+ "description": "Filter by parking group id. Unique per data provider.",
240
+ "schema": {
241
+ "type": "string",
242
+ "example": 1
243
+ }
244
+ },
245
+ {
246
+ "name": "category",
247
+ "in": "query",
248
+ "description": "Filter by parking type. Use with square brackets `category[]`",
249
+ "schema": {
250
+ "type": "array",
251
+ "items": {
252
+ "type": "object"
253
+ },
254
+ "example": "park_and_ride"
255
+ },
256
+ "explode": false,
257
+ "style": "form"
258
+ },
259
+ {
260
+ "name": "limit",
261
+ "in": "query",
262
+ "description": "Limits number of retrieved items.",
263
+ "schema": {
264
+ "type": "number",
265
+ "example": 10
266
+ }
267
+ },
268
+ {
269
+ "name": "offset",
270
+ "in": "query",
271
+ "description": "Number of the first items that are skipped.",
272
+ "schema": {
273
+ "type": "number",
274
+ "example": 0
275
+ }
276
+ },
277
+ {
278
+ "name": "timeCondition",
279
+ "in": "query",
280
+ "required": true,
281
+ "schema": {
282
+ "type": "object",
283
+ "properties": {
284
+ "minutesBefore": {
285
+ "description": "Lists items updated since given number of minutes",
286
+ "type": "number",
287
+ "example": 10
288
+ },
289
+ "updatedSince": {
290
+ "description": "Lists items updated after given date (ISO format expected)",
291
+ "type": "string",
292
+ "example": "2022-07-25"
293
+ }
294
+ },
295
+ "additionalProperties": false,
296
+ "oneOf": [
297
+ {
298
+ "required": [
299
+ "minutesBefore"
300
+ ]
301
+ },
302
+ {
303
+ "required": [
304
+ "updatedSince"
305
+ ]
306
+ }
307
+ ]
308
+ },
309
+ "explode": true,
310
+ "style": "form"
311
+ },
312
+ {
313
+ "name": "zoneType",
314
+ "in": "query",
315
+ "description": "Filter by parking zone. Use with square brackets `zoneType[]`, multiple values can be passed forming an array.",
316
+ "schema": {
317
+ "type": "array",
318
+ "items": {
319
+ "type": "object"
320
+ },
321
+ "example": "zone_mixed"
322
+ },
323
+ "explode": false,
324
+ "style": "form"
325
+ },
326
+ {
327
+ "name": "parkingType",
328
+ "in": "query",
329
+ "description": "Filter by parking type. Use with square brackets `parkingType[]`, multiple values can be passed forming an array.",
330
+ "schema": {
331
+ "type": "array",
332
+ "items": {
333
+ "type": "object"
334
+ },
335
+ "example": "on_street"
336
+ },
337
+ "explode": false,
338
+ "style": "form"
339
+ }
340
+ ],
341
+ "responses": {
342
+ "200": {
343
+ "description": "OK",
344
+ "content": {
345
+ "application/json; charset=utf-8": {
346
+ "schema": {
347
+ "type": "object",
348
+ "properties": {
349
+ "features": {
350
+ "type": "array",
351
+ "items": {
352
+ "$ref": "#/components/schemas/ParkingSpaceFeature"
353
+ }
354
+ },
355
+ "type": {
356
+ "type": "string",
357
+ "example": "FeatureCollection"
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ },
364
+ "401": {
365
+ "$ref": "#/components/responses/UnauthorizedError"
366
+ },
367
+ "404": {
368
+ "description": "Not found"
369
+ }
370
+ },
371
+ "tags": [
372
+ "🅿️ Parking"
373
+ ]
374
+ }
375
+ },
376
+ "/parking/detail/{id}": {
377
+ "get": {
378
+ "summary": "GET Detailed Parking Space",
379
+ "parameters": [
380
+ {
381
+ "name": "id",
382
+ "in": "path",
383
+ "description": "Id of parking location.",
384
+ "required": true,
385
+ "schema": {
386
+ "type": "string",
387
+ "example": "korid-20"
388
+ }
389
+ }
390
+ ],
391
+ "responses": {
392
+ "200": {
393
+ "description": "OK",
394
+ "content": {
395
+ "application/json; charset=utf-8": {
396
+ "schema": {
397
+ "$ref": "#/components/schemas/ParkingSpaceFeature"
398
+ }
399
+ }
400
+ }
401
+ },
402
+ "401": {
403
+ "$ref": "#/components/responses/UnauthorizedError"
404
+ },
405
+ "404": {
406
+ "description": "Not found"
407
+ }
408
+ },
409
+ "tags": [
410
+ "🅿️ Parking"
411
+ ]
412
+ }
413
+ },
414
+ "/parking/measurements": {
415
+ "get": {
416
+ "summary": "GET All Parking Spaces Measurements",
417
+ "parameters": [
418
+ {
419
+ "name": "source",
420
+ "in": "query",
421
+ "description": "Filter by data provider.",
422
+ "schema": {
423
+ "type": "string",
424
+ "example": "korid"
425
+ }
426
+ },
427
+ {
428
+ "name": "sourceId",
429
+ "in": "query",
430
+ "description": "Filter by parking group id. Unique per data provider.",
431
+ "schema": {
432
+ "type": "string",
433
+ "example": 1
434
+ }
435
+ },
436
+ {
437
+ "name": "latest",
438
+ "in": "query",
439
+ "description": "Show only the latest measurement.",
440
+ "schema": {
441
+ "type": "boolean",
442
+ "example": true,
443
+ "default": false
444
+ }
445
+ },
446
+ {
447
+ "name": "from",
448
+ "in": "query",
449
+ "description": "Date in ISO8601, limits data measured from this datetime.",
450
+ "schema": {
451
+ "type": "string",
452
+ "example": "2021-02-26T12:01:00.000Z"
453
+ }
454
+ },
455
+ {
456
+ "name": "to",
457
+ "in": "query",
458
+ "description": "Date in ISO8601, limits data measured up until this datetime.",
459
+ "schema": {
460
+ "type": "string",
461
+ "example": "2021-02-26T12:03:00.000Z"
462
+ }
463
+ },
464
+ {
465
+ "name": "limit",
466
+ "in": "query",
467
+ "description": "Limits number of retrieved items. Max 10000.",
468
+ "schema": {
469
+ "type": "number",
470
+ "example": 10
471
+ }
472
+ },
473
+ {
474
+ "name": "offset",
475
+ "in": "query",
476
+ "description": "Number of items that are skipped in result (like in sql).",
477
+ "schema": {
478
+ "type": "number",
479
+ "example": 0
480
+ }
481
+ },
482
+ {
483
+ "name": "timeCondition",
484
+ "in": "query",
485
+ "required": true,
486
+ "schema": {
487
+ "type": "object",
488
+ "properties": {
489
+ "minutesBefore": {
490
+ "description": "Lists items updated since given number of minutes",
491
+ "type": "number",
492
+ "example": 10
493
+ },
494
+ "updatedSince": {
495
+ "description": "Lists items updated after given date (ISO format expected)",
496
+ "type": "string",
497
+ "example": "2022-07-25"
498
+ }
499
+ },
500
+ "additionalProperties": false,
501
+ "oneOf": [
502
+ {
503
+ "required": [
504
+ "minutesBefore"
505
+ ]
506
+ },
507
+ {
508
+ "required": [
509
+ "updatedSince"
510
+ ]
511
+ }
512
+ ]
513
+ },
514
+ "explode": true,
515
+ "style": "form"
516
+ }
517
+ ],
518
+ "responses": {
519
+ "200": {
520
+ "description": "OK",
521
+ "content": {
522
+ "application/json; charset=utf-8": {
523
+ "schema": {
524
+ "type": "array",
525
+ "items": {
526
+ "$ref": "#/components/schemas/ParkingMeasurement"
527
+ }
528
+ }
529
+ }
530
+ }
531
+ },
532
+ "400": {
533
+ "description": "Bad request",
534
+ "content": {
535
+ "application/json; charset=utf-8": {
536
+ "schema": {
537
+ "type": "object",
538
+ "properties": {
539
+ "error_message": {
540
+ "type": "string",
541
+ "example": "Bad request"
542
+ },
543
+ "error_status": {
544
+ "type": "number",
545
+ "example": 400
546
+ },
547
+ "error_info": {
548
+ "type": "string",
549
+ "example": "{\"limit\":{\"location\":\"query\",\"param\":\"limit\",\"value\":\"-2\",\"msg\":\"Invalid value\"}}"
550
+ }
551
+ }
552
+ }
553
+ }
554
+ }
555
+ },
556
+ "401": {
557
+ "$ref": "#/components/responses/UnauthorizedError"
558
+ },
559
+ "404": {
560
+ "description": "Not found"
561
+ }
562
+ },
563
+ "tags": [
564
+ "🅿️ Parking"
565
+ ]
566
+ }
567
+ },
568
+ "/parking/tariffs/": {
569
+ "get": {
570
+ "summary": "GET All Parking Spaces Tariffs",
571
+ "parameters": [
572
+ {
573
+ "name": "x-access-token",
574
+ "in": "header",
575
+ "description": "e.g. YOUR_ACCESS_TOKEN",
576
+ "schema": {
577
+ "type": "string",
578
+ "example": "YOUR_ACCESS_TOKEN"
579
+ }
580
+ },
581
+ {
582
+ "name": "source",
583
+ "in": "query",
584
+ "description": "Filter by data provider.",
585
+ "required": false,
586
+ "schema": {
587
+ "type": "string",
588
+ "example": "korid"
589
+ }
590
+ }
591
+ ],
592
+ "responses": {
593
+ "200": {
594
+ "description": "OK",
595
+ "content": {
596
+ "application/json; charset=utf-8": {
597
+ "schema": {
598
+ "type": "array",
599
+ "items": {
600
+ "$ref": "#/components/schemas/ParkingSpaceTariff"
601
+ }
602
+ }
603
+ }
604
+ }
605
+ },
606
+ "401": {
607
+ "$ref": "#/components/responses/UnauthorizedError"
608
+ },
609
+ "404": {
610
+ "description": "Not found"
611
+ }
612
+ },
613
+ "tags": [
614
+ "🅿️ Parking"
615
+ ]
616
+ }
617
+ },
618
+ "/parking/tariffs/{tariffId}": {
619
+ "get": {
620
+ "summary": "GET Parking Space Tariff",
621
+ "parameters": [
622
+ {
623
+ "name": "tariffId",
624
+ "in": "path",
625
+ "description": "Id of parking tariff.",
626
+ "required": true,
627
+ "schema": {
628
+ "type": "string",
629
+ "example": "b184865e-5a5e-5465-abc1-4fab6bc56a77"
630
+ }
631
+ }
632
+ ],
633
+ "responses": {
634
+ "200": {
635
+ "description": "OK",
636
+ "content": {
637
+ "application/json; charset=utf-8": {
638
+ "schema": {
639
+ "$ref": "#/components/schemas/ParkingSpaceTariff"
640
+ }
641
+ }
642
+ }
643
+ },
644
+ "401": {
645
+ "$ref": "#/components/responses/UnauthorizedError"
646
+ },
647
+ "404": {
648
+ "description": "Not found"
649
+ }
650
+ },
651
+ "tags": [
652
+ "🅿️ Parking"
653
+ ]
654
+ }
655
+ }
656
+ },
657
+ "components": {
658
+ "schemas": {
659
+ "ParkingSpaceFeature": {
660
+ "type": "object",
661
+ "properties": {
662
+ "geometry": {
663
+ "description": "GeoJson geometry",
664
+ "type": "object",
665
+ "properties": {
666
+ "coordinates": {
667
+ "oneOf": [
668
+ {
669
+ "type": "array",
670
+ "items": {
671
+ "type": "number"
672
+ },
673
+ "example": [
674
+ 14.441252,
675
+ 50.109318
676
+ ],
677
+ "description": "Point"
678
+ },
679
+ {
680
+ "type": "array",
681
+ "items": {
682
+ "type": "array",
683
+ "items": {
684
+ "type": "array",
685
+ "items": {
686
+ "type": "number"
687
+ }
688
+ }
689
+ },
690
+ "example": [
691
+ [
692
+ [
693
+ 14.50823156003554,
694
+ 50.10498927328214
695
+ ],
696
+ [
697
+ 14.505782430390298,
698
+ 50.1031042405622
699
+ ],
700
+ [
701
+ 14.509701037821998,
702
+ 50.1029471511537
703
+ ],
704
+ [
705
+ 14.50823156003554,
706
+ 50.10498927328214
707
+ ]
708
+ ]
709
+ ],
710
+ "description": "Polygon"
711
+ },
712
+ {
713
+ "type": "array",
714
+ "items": {
715
+ "type": "array",
716
+ "items": {
717
+ "type": "array",
718
+ "items": {
719
+ "type": "array",
720
+ "items": {
721
+ "type": "number"
722
+ }
723
+ }
724
+ }
725
+ },
726
+ "example": [
727
+ [
728
+ [
729
+ [
730
+ 14.50823156003554,
731
+ 50.10498927328214
732
+ ],
733
+ [
734
+ 14.505782430390298,
735
+ 50.1031042405622
736
+ ],
737
+ [
738
+ 14.509701037821998,
739
+ 50.1029471511537
740
+ ],
741
+ [
742
+ 14.50823156003554,
743
+ 50.10498927328214
744
+ ]
745
+ ]
746
+ ],
747
+ [
748
+ [
749
+ [
750
+ 14.50823156003554,
751
+ 50.10498927328214
752
+ ],
753
+ [
754
+ 14.505782430390298,
755
+ 50.1031042405622
756
+ ],
757
+ [
758
+ 14.509701037821998,
759
+ 50.1029471511537
760
+ ],
761
+ [
762
+ 14.50823156003554,
763
+ 50.10498927328214
764
+ ]
765
+ ]
766
+ ]
767
+ ],
768
+ "description": "MultiPolygon"
769
+ }
770
+ ]
771
+ },
772
+ "type": {
773
+ "type": "string",
774
+ "enum": [
775
+ "Point",
776
+ "Polygon",
777
+ "MultiPolygon"
778
+ ]
779
+ }
780
+ }
781
+ },
782
+ "properties": {
783
+ "type": "object",
784
+ "properties": {
785
+ "address": {
786
+ "type": "object",
787
+ "nullable": true,
788
+ "properties": {
789
+ "address_country": {
790
+ "type": "string",
791
+ "example": "Česko"
792
+ },
793
+ "address_formatted": {
794
+ "type": "string",
795
+ "example": "Vrbenského, 17000 Praha Holešovice, Česko"
796
+ },
797
+ "address_locality": {
798
+ "type": "string",
799
+ "example": "Praha"
800
+ },
801
+ "address_region": {
802
+ "type": "string",
803
+ "example": "Holešovice"
804
+ },
805
+ "postal_code": {
806
+ "type": "string",
807
+ "example": 17000
808
+ },
809
+ "street_address": {
810
+ "type": "string",
811
+ "example": "Vrbenského"
812
+ }
813
+ }
814
+ },
815
+ "address_formatted": {
816
+ "type": "string",
817
+ "nullable": true,
818
+ "example": "Vrbenského, 17000 Praha Holešovice, Česko"
819
+ },
820
+ "android_app_payment_url": {
821
+ "type": "string",
822
+ "nullable": true
823
+ },
824
+ "area_served": {
825
+ "type": "string",
826
+ "nullable": true
827
+ },
828
+ "available_spots_last_updated": {
829
+ "type": "number",
830
+ "nullable": true,
831
+ "example": "2021-03-01T00:19:47+01:00"
832
+ },
833
+ "available_spots_number": {
834
+ "type": "number",
835
+ "nullable": true,
836
+ "example": 17
837
+ },
838
+ "category": {
839
+ "type": "string",
840
+ "nullable": true,
841
+ "example": "park_and_ride"
842
+ },
843
+ "centroid": {
844
+ "type": "object",
845
+ "properties": {
846
+ "type": {
847
+ "type": "string",
848
+ "example": "Point"
849
+ },
850
+ "coordinates": {
851
+ "type": "array",
852
+ "items": {
853
+ "type": "number",
854
+ "example": [
855
+ 14.441252,
856
+ 50.109318
857
+ ]
858
+ }
859
+ }
860
+ }
861
+ },
862
+ "data_provider": {
863
+ "type": "string",
864
+ "nullable": true,
865
+ "example": "www.tsk-praha.cz"
866
+ },
867
+ "date_modified": {
868
+ "type": "string",
869
+ "example": "2020-05-18T07:38:37.000Z",
870
+ "nullable": true
871
+ },
872
+ "id": {
873
+ "type": "string",
874
+ "example": "78267c44-62f1-41e8-be12-d8f919e7be20"
875
+ },
876
+ "ios_app_payment_url": {
877
+ "type": "string",
878
+ "nullable": true
879
+ },
880
+ "name": {
881
+ "type": "string",
882
+ "example": "Holešovice",
883
+ "nullable": true
884
+ },
885
+ "parking_type": {
886
+ "type": "string",
887
+ "enum": [
888
+ "park_and_ride",
889
+ "park_paid_private",
890
+ "on_street",
891
+ "other",
892
+ "park_sharing",
893
+ "disabled_parking"
894
+ ]
895
+ },
896
+ "source": {
897
+ "type": "string",
898
+ "example": "tsk"
899
+ },
900
+ "source_id": {
901
+ "type": "string",
902
+ "example": 534002
903
+ },
904
+ "tariff_id": {
905
+ "type": "string",
906
+ "nullable": true,
907
+ "example": 20
908
+ },
909
+ "total_spot_number": {
910
+ "type": "number",
911
+ "example": 74
912
+ },
913
+ "valid_from": {
914
+ "type": "string",
915
+ "nullable": true,
916
+ "example": "2020-05-31T00:00:00.000Z"
917
+ },
918
+ "valid_to": {
919
+ "type": "string",
920
+ "nullable": true,
921
+ "example": "2022-05-31T00:00:00.000Z"
922
+ },
923
+ "web_app_payment_url": {
924
+ "type": "string",
925
+ "nullable": true,
926
+ "example": "https://ke-utc.appspot.com/static/select_offstreet.html?shortname=139"
927
+ },
928
+ "zone_type": {
929
+ "type": "string",
930
+ "nullable": true,
931
+ "enum": [
932
+ "zone_residential",
933
+ "zone_mixed",
934
+ "zone_visitors",
935
+ "zone_other",
936
+ "zone_free",
937
+ null
938
+ ]
939
+ }
940
+ },
941
+ "required": [
942
+ "id",
943
+ "source",
944
+ "source_id",
945
+ "name",
946
+ "date_modified",
947
+ "parking_type",
948
+ "centroid",
949
+ "available_spots_last_updated",
950
+ "available_spots_number"
951
+ ]
952
+ },
953
+ "type": {
954
+ "type": "string",
955
+ "example": "Feature"
956
+ }
957
+ }
958
+ },
959
+ "ParkingMeasurement": {
960
+ "type": "object",
961
+ "properties": {
962
+ "source": {
963
+ "type": "string",
964
+ "example": "korid"
965
+ },
966
+ "source_id": {
967
+ "type": "string",
968
+ "example": 1
969
+ },
970
+ "parking_id": {
971
+ "type": "string",
972
+ "example": "korid-1"
973
+ },
974
+ "available_spot_number": {
975
+ "type": "number",
976
+ "example": 2
977
+ },
978
+ "closed_spot_number": {
979
+ "type": "number",
980
+ "example": 0,
981
+ "nullable": true
982
+ },
983
+ "occupied_spot_number": {
984
+ "type": "number",
985
+ "example": 12
986
+ },
987
+ "total_spot_number": {
988
+ "type": "number",
989
+ "example": 14
990
+ },
991
+ "date_modified": {
992
+ "type": "string",
993
+ "example": "2021-02-28T23:19:47.384Z"
994
+ }
995
+ },
996
+ "required": [
997
+ "source",
998
+ "source_id",
999
+ "parking_id",
1000
+ "available_spot_number",
1001
+ "closed_spot_number",
1002
+ "occupied_spot_number",
1003
+ "total_spot_number",
1004
+ "date_modified"
1005
+ ],
1006
+ "title": "Parking Measurement"
1007
+ },
1008
+ "ParkingSpaceTariff": {
1009
+ "type": "object",
1010
+ "properties": {
1011
+ "tariff_id": {
1012
+ "type": "string",
1013
+ "example": "b184865e-5a5e-5465-abc1-4fab6bc56a77"
1014
+ },
1015
+ "source": {
1016
+ "type": "string",
1017
+ "example": "korid"
1018
+ },
1019
+ "last_updated": {
1020
+ "type": "string",
1021
+ "example": "2020-10-12T15:19:21+02:00"
1022
+ },
1023
+ "payment_mode": {
1024
+ "type": "string",
1025
+ "example": "\"\""
1026
+ },
1027
+ "payment_additional_description": {
1028
+ "type": "string",
1029
+ "example": "Parkování Liberec",
1030
+ "nullable": true
1031
+ },
1032
+ "free_of_charge": {
1033
+ "type": "boolean",
1034
+ "example": false
1035
+ },
1036
+ "url_link_address": {
1037
+ "type": "string",
1038
+ "example": "https://parking.liberec.cz/",
1039
+ "nullable": true
1040
+ },
1041
+ "charge_band_name": {
1042
+ "type": "string",
1043
+ "example": "E"
1044
+ },
1045
+ "payment_methods": {
1046
+ "type": "array",
1047
+ "items": {
1048
+ "type": "string",
1049
+ "enum": [
1050
+ "card_online",
1051
+ "card_offline",
1052
+ "cash",
1053
+ "coins_only",
1054
+ "mobile_app",
1055
+ "litacka",
1056
+ "sms_payment",
1057
+ "apple_pay",
1058
+ "google_pay",
1059
+ "unknown"
1060
+ ]
1061
+ }
1062
+ },
1063
+ "charge_currency": {
1064
+ "type": "string",
1065
+ "example": "CZK"
1066
+ },
1067
+ "allowed_vehicle_type": {
1068
+ "type": "string",
1069
+ "example": "carSharing, taxi",
1070
+ "nullable": true
1071
+ },
1072
+ "allowed_fuel_type": {
1073
+ "type": "string",
1074
+ "example": "electricity, petrol, lpg",
1075
+ "nullable": true
1076
+ },
1077
+ "charges": {
1078
+ "type": "array",
1079
+ "items": {
1080
+ "$ref": "#/components/schemas/ParkingSpaceTariffCharge"
1081
+ }
1082
+ },
1083
+ "reservation_url": {
1084
+ "type": "string",
1085
+ "nullable": true
1086
+ }
1087
+ },
1088
+ "required": [
1089
+ "tariff_id",
1090
+ "source",
1091
+ "last_updated",
1092
+ "payment_mode",
1093
+ "free_of_charge",
1094
+ "charge_band_name",
1095
+ "charge_currency"
1096
+ ],
1097
+ "title": "Parking Space Tariff"
1098
+ },
1099
+ "ParkingSpaceTariffCharge": {
1100
+ "type": "object",
1101
+ "properties": {
1102
+ "charge": {
1103
+ "type": "number",
1104
+ "example": 20
1105
+ },
1106
+ "charge_type": {
1107
+ "type": "string",
1108
+ "enum": [
1109
+ "minimum",
1110
+ "maximum",
1111
+ "additional_interval_price",
1112
+ "season_ticket",
1113
+ "temporary_price",
1114
+ "first_interval_price",
1115
+ "free_parking",
1116
+ "flat",
1117
+ "unknown",
1118
+ "other"
1119
+ ]
1120
+ },
1121
+ "charge_order_index": {
1122
+ "type": "number",
1123
+ "example": 0
1124
+ },
1125
+ "charge_interval": {
1126
+ "type": "number",
1127
+ "example": 1800,
1128
+ "nullable": true
1129
+ },
1130
+ "max_iterations_of_charge": {
1131
+ "type": "number",
1132
+ "example": 1,
1133
+ "nullable": true
1134
+ },
1135
+ "min_iterations_of_charge": {
1136
+ "type": "number",
1137
+ "example": 1,
1138
+ "nullable": true
1139
+ },
1140
+ "start_time_of_period": {
1141
+ "type": "string",
1142
+ "example": "Mon-Fri 09:00",
1143
+ "nullable": true
1144
+ },
1145
+ "end_time_of_period": {
1146
+ "type": "string",
1147
+ "example": "Mon-Sun 14:30",
1148
+ "nullable": true
1149
+ }
1150
+ },
1151
+ "required": [
1152
+ "charge",
1153
+ "charge_order_index"
1154
+ ],
1155
+ "title": "Parking Space Tariff Charge"
1156
+ }
1157
+ },
1158
+ "responses": {
1159
+ "UnauthorizedError": {
1160
+ "description": "API key is missing or invalid",
1161
+ "headers": {
1162
+ "x-access-token": {
1163
+ "schema": {
1164
+ "type": "string"
1165
+ }
1166
+ }
1167
+ }
1168
+ }
1169
+ }
1170
+ },
1171
+ "tags": [
1172
+ {
1173
+ "name": "🅿️ Parking",
1174
+ "description": "<img src=\"https://img.shields.io/badge/opendata-available-green\" alt=\"golemioapi-opendata-badge\" /> 💡 Parkings, parking zones, tarifs, measurements."
1175
+ }
1176
+ ]
1177
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.5.4-dev.916866606",
3
+ "version": "1.5.4",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,8 +36,8 @@
36
36
  "@apideck/portman": "^1.22.0",
37
37
  "@commitlint/cli": "^11.0.0",
38
38
  "@commitlint/config-conventional": "^11.0.0",
39
- "@golemio/cli": "1.4.3",
40
- "@golemio/core": "1.8.1",
39
+ "@golemio/cli": "1.4.4",
40
+ "@golemio/core": "1.8.2",
41
41
  "@golemio/eslint-config": "1.1.1",
42
42
  "@types/chai": "4.2.3",
43
43
  "@types/chai-as-promised": "7.1.2",
@@ -65,7 +65,6 @@
65
65
  "ts-node": "^10.9.1",
66
66
  "ts-patch": "3.0.0-beta3",
67
67
  "tsconfig-paths": "^4.2.0",
68
- "ttypescript": "^1.5.15",
69
68
  "typedoc": "^0.24.8",
70
69
  "typescript": "5.1.3",
71
70
  "typescript-transform-paths": "^3.4.6"