@golemio/parkings
Version:
Golemio Parkings Module
953 lines (952 loc) • 36 kB
YAML
asyncapi: 3.0.0
info:
title: Parkings
version: 1.0.0
description: Parkings module processes and saves data about parking locations, tariffs and occupancy.
channels:
parkings.calculateAverageOccupancy:
address: dataplatform.parkings.calculateAverageOccupancy
description: Generate average occupancies from data in database.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateIptOictEntrancesJobsTask:
address: dataplatform.parkings.generateIptOictEntrances
description: Generate jobs to update entrances based on sources table.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateIptOictParkingJobs:
address: dataplatform.parkings.generateIptOictParkingJob
description: Generate jobs for saveIptOictParkingData based on sources table.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateIptOictPaymentJobs:
address: dataplatform.parkings.generateIptOictPaymentJob
description: Generate jobs for saveIptOictPaymentsData based on sources in table.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateIptOictProhibitionsJobs:
address: dataplatform.parkings.generateIptOictProhibitionsJobs
description: Generate jobs for saveIptOictProhibitionsDataTask based on sources table.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateIptOictTariffsJobs:
address: dataplatform.parkings.generateIptOictTariffsJobs
description: Generate jobs for saveIptOictTariffsData based on sources in table.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateIptOictParkingMachinesJobs:
address: dataplatform.parkings.generateIptOictParkingMachinesJobs
description: Generate jobs for saveIptOictParkingMachines based on sources in table.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateSmart4CityTaskList:
address: dataplatform.parkings.generateSmart4CityTaskList
description: Updates list of cities
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.UpdateSmart4CityInput:
$ref: "#/components/messages/parkings.UpdateSmart4CityInput"
parkings.refreshTskOccupancyView:
address: dataplatform.parkings.refreshTskOccupancyView
description: Legacy worker.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveBedrichovData:
address: dataplatform.parkings.saveBedrichovData
description: Download and save parkings and measurement from Bedřichov
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.generateGreenCenterMeasurementJobs:
address: dataplatform.parkings.generateGreenCenterMeasurementJobs
description: Generate tasks for GreenCenter source
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveGreenCenterMeasurements:
address: dataplatform.parkings.saveGreenCenterMeasurements
description: Download and save measurements from GreenCenter
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/parkings.GreenCenterTaskInputMessage"
parkings.saveIptOictEntrancesData:
address: dataplatform.parkings.saveIptOictEntrancesData
description: Update parking entrances data from IPT cloud source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IptOictTaskInputMessage:
$ref: "#/components/messages/parkings.IptOictTaskInputMessage"
parkings.saveIptOictParkingData:
address: dataplatform.parkings.saveIptOictParkingData
description: Update parkings data from IPT cloud source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IptOictTaskInputMessage:
$ref: "#/components/messages/parkings.IptOictTaskInputMessage"
parkings.saveIptOictPaymentsData:
address: dataplatform.parkings.saveIptOictPaymentsData
description: Update payments data from IPT cloud source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IptOictTaskInputMessage:
$ref: "#/components/messages/parkings.IptOictTaskInputMessage"
parkings.saveIptOictProhibitionsDataTask:
address: dataplatform.parkings.saveIptOictProhibitionsDataTask
description: Update parking prohibitions from IPT cloud source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IptOictTaskInputMessage:
$ref: "#/components/messages/parkings.IptOictTaskInputMessage"
parkings.saveIptOictTariffsData:
address: dataplatform.parkings.saveIptOictTariffsData
description: Update parking tariffs from IPT cloud source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IptOictTaskInputMessage:
$ref: "#/components/messages/parkings.IptOictTaskInputMessage"
parkings.saveIptOictParkingMachinesData:
address: dataplatform.parkings.saveIptOictParkingMachinesData
description: Update parking machines from IPT cloud source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IptOictTaskInputMessage:
$ref: "#/components/messages/parkings.IptOictTaskInputMessage"
parkings.saveIsphkMeasurements:
address: dataplatform.parkings.saveIsphkMeasurements
description: Update incoming (from IG) measurements data from ISPHK (Hradec Králové)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.IsphkMeasurements:
$ref: "#/components/messages/parkings.IsphkMeasurements"
parkings.saveKoridConfToDB:
address: dataplatform.parkings.saveKoridConfToDB
description: Incoming parkings data from Korid (Liberec)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.KoridConfig:
$ref: "#/components/messages/parkings.KoridConfig"
parkings.saveKoridDataToDB:
address: dataplatform.parkings.saveKoridDataToDB
description: Incoming measurements data from Korid (Liberec)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.KoridData:
$ref: "#/components/messages/parkings.KoridData"
parkings.saveMrParkitData:
address: dataplatform.parkings.saveMrParkitData
description: Download and save parkings from Mr.Parkig (Praha)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveOsmDataTask:
address: dataplatform.parkings.saveOsmDataTask
description: Process parkings, parking locations and opening hours from OpenStreetMaps
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveOsmEntrancesDataTask:
address: dataplatform.parkings.saveOsmEntrancesDataTask
description: Update entrances from OpenStreetMaps source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveOsmParkingMachinesTask:
address: dataplatform.parkings.saveOsmParkingMachinesTask
description: Update parking machines locations from OpenStreetMaps source.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveParkingLotsMeasurementsPrague:
address: dataplatform.parkings.saveParkingLotsMeasurementsPrague
description: Update P+R parking lots measurements from TSK (Praha)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveParkingLotsPrague:
address: dataplatform.parkings.saveParkingLotsPrague
description: Update P+R parking lots from TSK (Praha)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.saveParkingZonesPrague:
address: dataplatform.parkings.saveParkingZonesPrague
description: Update parking zones combined from IPR, TSK and tariffs from TSK (Praha)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.savePmdpMeasurements:
address: dataplatform.parkings.savePmdpMeasurements
description: Update occupation measurements from PMDP (Plzeň)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.PmdpTaskTypeInput:
$ref: "#/components/messages/parkings.PmdpTaskTypeInput"
parkings.updateAddress:
address: dataplatform.parkings.updateAddress
description: Update addresses of parkings, triggered after processing parkings update.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkgins.UpdateAddressInput:
$ref: "#/components/messages/parkings.UpdateAddressInput"
parkings.updateAddressAndName:
address: dataplatform.parkings.updateAddressAndName
description: Update addresses and names from photon.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.UpdateAddressAndNameInput:
$ref: "#/components/messages/parkings.UpdateAddressAndNameInput"
parkings.updateLocationAddress:
address: dataplatform.parkings.updateLocationAddress
description: Update addresses of parking locations, triggered after processing parkings update.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.UpdateAddressInput:
$ref: "#/components/messages/parkings.UpdateAddressInput"
parkings.updateAllParkingAdresses:
address: dataplatform.parkings.updateAllParkingAdresses
description: Updates batch of addresses of parkings. Runs periodically to continuously update all.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.updateAllParkingsLocationAdresses:
address: dataplatform.parkings.updateAllParkingsLocationAdresses
description: Updates batch of addresses of parking locations. Runs periodically to continuously update all.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.updateMissingParkingsAddresses:
address: dataplatform.parkings.updateMissingParkingsAddresses
description: Update empty addresses of parkings.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.updateMissingParkingsLocationAddresses:
address: dataplatform.parkings.updateMissingParkingsLocationAddresses
description: Update empty addresses of parking locations.
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.updateSmart4CityLocations:
address: dataplatform.parkings.updateSmart4CityLocations
description: Update parking locations from Smart4City
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.UpdateSmart4CityInput:
$ref: "#/components/messages/parkings.UpdateSmart4CityInput"
parkings.updateSmart4CityMeasurements:
address: dataplatform.parkings.updateSmart4CityMeasurements
description: Update occupancy measurements from Smart4City
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.UpdateSmart4CityInput:
$ref: "#/components/messages/parkings.UpdateSmart4CityInput"
parkings.updateZtpParkings:
address: dataplatform.parkings.updateZtpParkings
description: Update parkings for disabled people (IPR)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
parkings.updateParkingSource:
address: dataplatform.parkingsources.updateParkingSource
description: Incoming data about parking sources (manual)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.ParkingSource:
$ref: "#/components/messages/parkings.ParkingSource"
parkings.parkomats:
address: dataplatform.parkomats.refreshDataInDB
description: Download and save parkomats (Praha), legacy
bindings:
amqp:
is: queue
queue:
durable: true
messages:
parkings.ParkomatMessage:
$ref: "#/components/messages/parkings.ParkomatMessage"
parkings.saveTskOffStreetMeasurements:
address: dataplatform.parkings.saveTskOffStreetMeasurements
description: Update occupancy measurements of TSK off-street parkings (P+R, malls, ...)
bindings:
amqp:
is: queue
queue:
durable: true
messages:
empty:
$ref: "#/components/messages/emptyMessage"
operations:
parkings.calculateAverageOccupancy:
action: "send"
channel:
$ref: "#/channels/parkings.calculateAverageOccupancy"
parkings.generateIptOictEntrancesJobsTask:
action: "send"
channel:
$ref: "#/channels/parkings.generateIptOictEntrancesJobsTask"
parkings.generateIptOictParkingJobs:
action: "send"
channel:
$ref: "#/channels/parkings.generateIptOictParkingJobs"
parkings.generateIptOictPaymentJobs:
action: "send"
channel:
$ref: "#/channels/parkings.generateIptOictPaymentJobs"
parkings.generateIptOictProhibitionsJobs:
action: "send"
channel:
$ref: "#/channels/parkings.generateIptOictProhibitionsJobs"
parkings.generateIptOictTariffsJobs:
action: "send"
channel:
$ref: "#/channels/parkings.generateIptOictTariffsJobs"
parkings.generateIptOictParkingMachinesJobs:
action: "send"
channel:
$ref: "#/channels/parkings.generateIptOictParkingMachinesJobs"
parkings.generateSmart4CityTaskList:
action: "send"
channel:
$ref: "#/channels/parkings.generateSmart4CityTaskList"
parkings.refreshTskOccupancyView:
action: "send"
channel:
$ref: "#/channels/parkings.refreshTskOccupancyView"
parkings.saveBedrichovData:
action: "send"
channel:
$ref: "#/channels/parkings.saveBedrichovData"
parkings.generateGreenCenterMeasurementJobs:
action: "send"
channel:
$ref: "#/channels/parkings.generateGreenCenterMeasurementJobs"
parkings.saveGreenCenterMeasurements:
action: "send"
channel:
$ref: "#/channels/parkings.saveGreenCenterMeasurements"
parkings.saveIptOictEntrancesData:
action: "send"
channel:
$ref: "#/channels/parkings.saveIptOictEntrancesData"
parkings.saveIptOictParkingData:
action: "send"
channel:
$ref: "#/channels/parkings.saveIptOictParkingData"
parkings.saveIptOictPaymentsData:
action: "send"
channel:
$ref: "#/channels/parkings.saveIptOictPaymentsData"
parkings.saveIptOictProhibitionsDataTask:
action: "send"
channel:
$ref: "#/channels/parkings.saveIptOictProhibitionsDataTask"
parkings.saveIptOictTariffsData:
action: "send"
channel:
$ref: "#/channels/parkings.saveIptOictTariffsData"
parkings.saveIptOictParkingMachinesData:
action: "send"
channel:
$ref: "#/channels/parkings.saveIptOictParkingMachinesData"
parkings.saveIsphkMeasurements:
action: "send"
channel:
$ref: "#/channels/parkings.saveIsphkMeasurements"
parkings.saveKoridConfToDB:
action: "send"
channel:
$ref: "#/channels/parkings.saveKoridConfToDB"
parkings.saveKoridDataToDB:
action: "send"
channel:
$ref: "#/channels/parkings.saveKoridDataToDB"
parkings.saveMrParkitData:
action: "send"
channel:
$ref: "#/channels/parkings.saveMrParkitData"
parkings.saveOsmDataTask:
action: "send"
channel:
$ref: "#/channels/parkings.saveOsmDataTask"
parkings.saveOsmEntrancesDataTask:
action: "send"
channel:
$ref: "#/channels/parkings.saveOsmEntrancesDataTask"
parkings.saveOsmParkingMachinesTask:
action: "send"
channel:
$ref: "#/channels/parkings.saveOsmParkingMachinesTask"
parkings.saveParkingLotsMeasurementsPrague:
action: "send"
channel:
$ref: "#/channels/parkings.saveParkingLotsMeasurementsPrague"
parkings.saveParkingLotsPrague:
action: "send"
channel:
$ref: "#/channels/parkings.saveParkingLotsPrague"
parkings.saveParkingZonesPrague:
action: "send"
channel:
$ref: "#/channels/parkings.saveParkingZonesPrague"
parkings.savePmdpMeasurements:
action: "send"
channel:
$ref: "#/channels/parkings.savePmdpMeasurements"
parkings.updateAddress:
action: "send"
channel:
$ref: "#/channels/parkings.updateAddress"
parkings.updateAddressAndName:
action: "send"
channel:
$ref: "#/channels/parkings.updateAddressAndName"
parkings.updateLocationAddress:
action: "send"
channel:
$ref: "#/channels/parkings.updateLocationAddress"
parkings.updateSmart4CityLocations:
action: "send"
channel:
$ref: "#/channels/parkings.updateSmart4CityLocations"
parkings.updateSmart4CityMeasurements:
action: "send"
channel:
$ref: "#/channels/parkings.updateSmart4CityMeasurements"
parkings.updateZtpParkings:
action: "send"
channel:
$ref: "#/channels/parkings.updateZtpParkings"
parkings.updateParkingSource:
action: "send"
channel:
$ref: "#/channels/parkings.updateParkingSource"
parkings.parkomats:
action: "send"
channel:
$ref: "#/channels/parkings.parkomats"
parkings.saveTskOffStreetMeasurements:
action: "send"
channel:
$ref: "#/channels/parkings.saveTskOffStreetMeasurements"
components:
messages:
emptyMessage:
title: Empty message
parkings.IptOictTaskInputMessage:
payload:
type: object
properties:
source:
type: string
description: identifikátor zdroje (source)
example: "korid"
additionalProperties: false
parkings.GreenCenterTaskInputMessage:
payload:
type: object
properties:
sourceId:
type: string
description: identifikátor zdroje (source_id)
example: "1219"
additionalProperties: false
parkings.IsphkMeasurements:
payload:
$ref: "#/components/schemas/parkings.IsphkMeasurementsSchema"
parkings.KoridConfig:
payload:
$ref: "#/components/schemas/parkings.KORIDConfDatasourceJSONSchema"
parkings.KoridData:
payload:
$ref: "#/components/schemas/parkings.KORIDDatasourceJSONSchema"
parkings.PmdpTaskTypeInput:
payload:
type: object
properties:
code:
type: string
enum:
- "pmdp-pmdp_001"
- "pmdp-pmdp_002"
additionalProperties: false
parkings.UpdateAddressInput:
payload:
type: object
properties:
id:
type: string
"point":
type: object
properties:
type:
type: string
enum:
- Point
coordinates:
type: array
items:
type: number
additionalProperties: false
additionalProperties: false
parkings.UpdateAddressAndNameInput:
payload:
type: object
properties:
name:
type: string
additionalProperties: false
parkings.UpdateSmart4CityInput:
payload:
type: object
properties:
"type":
type: string
enum:
- locations
- measurements
additionalProperties: false
parkings.ParkingSource:
payload:
$ref: "#/components/schemas/parkings.ParkingSource"
parkings.ParkomatMessage:
payload:
type: object
properties:
from:
type: string
to:
type: string
additionalProperties: false
schemas:
parkings.KORIDConfDatasourceJSONSchema:
type: object
properties:
type:
type: string
version:
type: string
time:
type: integer
geojson:
type: object
required:
- type
- features
additionalProperties: true
properties:
type:
type: string
features:
type: array
additionalProperties: true
items:
type: object
required:
- type
- properties
- geometry
additionalProperties: false
properties:
type:
type: string
properties:
type: object
required:
- groupid
- title
- total
- tarif
additionalProperties: true
properties:
groupid:
type: number
title:
type: string
total:
type: number
tarif:
type: string
geometry:
type: object
required:
- type
- coordinates
additionalProperties: false
properties:
type:
type: string
coordinates:
type: array
tarif:
type: object
required:
- lastUpdated
- paymentMode
- freeOfCharge
- chargeBand
additionalProperties: true
properties:
lastUpdated:
type: string
paymentMode:
type: array
items:
type: string
paymentAdditionalDescription:
type: string
freeOfCharge:
type: boolean
urlLinkAddress:
type: string
chargeBand:
type: array
additionalProperties: false
items:
type: object
required:
- chargeBandName
- chargeCurrency
- charge
additionalProperties: true
properties:
chargeBandName:
type: string
acceptedMeansOfPayment:
type: array
items:
type: string
chargeCurrency:
type: string
charge:
type: array
required:
- charge
- chargeOrderIndex
- chargeInterval
additionalProperties: true
items:
type: object
properties:
charge:
type: number
chargeType:
type: string
chargeOrderIndex:
type: number
chargeInterval:
type: number
maxIterationsOfCharge:
type: number
minIterationsOfCharge:
type: number
startTimeOfPeriod:
type: string
endTimeOfPeriod:
type: string
parkings.KORIDDatasourceJSONSchema:
type: object
required:
- time
- data
additionalProperties: true
properties:
type:
type: string
version:
type: string
time:
type: integer
data:
type: object
additionalProperties:
type: object
required:
- tot
- fr
- occ
- cls
additionalProperties: false
properties:
tot:
type: integer
fr:
type: integer
occ:
type: integer
cls:
type: integer
parkings.IsphkMeasurementsSchema:
type: object
properties:
type:
type: string
data:
type: array
items:
type: object
properties:
id:
type: string
capacity:
type: integer
free:
type: integer
status:
type: string
required:
- id
- capacity
- free
- status
additionalProperties: false
required:
- data
- type
additionalProperties: false
parkings.ParkingSource:
type: object
properties:
source:
type: string
name:
type: string
nullable: true
open_data:
type: boolean
api_v3_allowed:
type: boolean
legacy_api_allowed:
type: boolean
payment:
type: object
nullable: true
properties:
method:
type: string
fee:
type: number
reservation:
type: object
nullable: true
properties:
is_required:
type: boolean
duration:
type: integer
contact:
type: object
nullable: true
properties:
email:
type: string
phone:
type: string
datasource_parking:
type: string
nullable: true
datasource_locations:
type: string
nullable: true
datasource_payments:
type: string
nullable: true
datasource_entrances:
type: string
nullable: true
datasource_prohibitions:
type: string
nullable: true
datasource_tariffs:
type: string
nullable: true