openapi: 3.0.3

info:
    title: 🚲 Shared Bikes and 🚘 Shared Cars
    description: Locations and Description of Prague Shared Bikes and Shared Cars
    version: 1.0.0
    contact:
        name: Golemio Prague Data Plaform
        email: golemio@operatorict.cz
        url: https://golemio.cz

servers:
    - url: https://api.golemio.cz/v2
      description: Main (production) server
    - url: https://rabin.golemio.cz/v2
      description: Test (development) server

tags:
    - name: 🚲 Shared Bikes
      description: 💡 Locations and Description of Prague Shared Bikes
    - name: GBFS
      description: 💡 General Bikeshare Feed Specification
    - name: 🚘 Shared Cars
      description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> 💡 Locations and Description of Prague Shared Cars

paths:
    /sharedbikes/:
        get:
            summary: GET All Shared Bikes
            operationId: GETAllSharedBikes
            description: ""
            tags:
                - 🚲 Shared Bikes
            parameters:
                - name: latlng
                  in: query
                  description: Sorting by location (Latitude and Longitude separated by comma, latitude first).
                  required: false
                  example: 50.124935,14.457204
                  schema:
                      type: string
                - name: range
                  in: query
                  description: Filter by distance from latlng in meters (range query). Depends on the latlng parameter.
                  required: false
                  example: "5000"
                  schema:
                      type: number
                - name: districts
                  in: query
                  description: Filter by Prague city districts (in array format - eg. districts[]=praha7&districts[]=praha6)
                  required: false
                  example: praha-4
                  schema:
                      type: array
                      items: {}
                - name: limit
                  in: query
                  description:
                      Limits number of retrieved items. The maximum is 10000 (default
                      value).
                  required: false
                  example: "10"
                  schema:
                      type: number
                - name: offset
                  in: query
                  description: Number of the first items that are skipped.
                  required: false
                  example: "0"
                  schema:
                      type: number
                - name: updatedSince
                  in: query
                  description: Filters all results with older updated_at than this parameter
                  required: false
                  example: 2019-05-18T07:38:37.000Z
                  schema:
                      type: string
                - name: companyNames
                  in: query
                  description: Filters all results with company.name property by this parameter. Use with square brackets `companyNames[]`, multiple values can be passed forming an array.
                  required: false
                  example: Rekola
                  schema:
                      type: array
                      items:
                        type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    type:
                                        type: string
                                        example: FeatureCollection
                                    features:
                                        type: array
                                        items:
                                            $ref: "#/components/schemas/SharedBike"
                                required:
                                    - type

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403

    /sharedbikes/{id}:
        get:
            summary: GET Shared Bike
            operationId: GETSharedBike
            description: ""
            tags:
                - 🚲 Shared Bikes
            parameters:
                - name: id
                  in: path
                  description: Identifier of the shared bike.
                  required: true
                  example: rekola-1926
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/SharedBike"
                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/systems_list:
        get:
            summary: GET GBFS Systems List
            operationId: GETGBFSSystemsList
            description: ""
            tags:
                - GBFS
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSSystemsList"
                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/gbfs:
        get:
            summary: GET GBFS
            operationId: GETGBFS
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/gbfs_versions:
        get:
            summary: GET GBFS Versions
            operationId: GETGBFSVersions
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSVersionsJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/system_information:
        get:
            summary: GET GBFS System Information
            operationId: GETGBFSSystemInformation
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSSystemInformationJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/vehicle_types:
        get:
            summary: GET GBFS Vehicle Types
            operationId: GETGBFSVehicleTypes
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSVehicleTypesJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/station_information:
        get:
            summary: GET GBFS Station Information
            operationId: GETGBFSStationInformation
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSStationInformationJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/station_status:
        get:
            summary: GET GBFS Station Status
            operationId: GETGBFSStationStatus
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSStationStatusJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/free_bike_status:
        get:
            summary: GET GBFS Free Bike Status
            operationId: GETGBFSFreeBikeStatus
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSFreeBikeStatusJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/system_pricing_plans:
        get:
            summary: GET GBFS System Pricing Plans
            operationId: GETGBFSSystemPricingPlans
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSSystemPricingPlansJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedbikes/gbfs/{system_id}/geofencing_zones:
        get:
            summary: GET GBFS Geofencing Zones
            operationId: GETGBFSGeofencingZones
            description: ""
            tags:
                - GBFS
            parameters:
                - name: system_id
                  in: path
                  description: Identifier of the system.
                  required: true
                  example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/GBFSWrapper"
                                properties:
                                    data:
                                        $ref: "#/components/schemas/GBFSGeofencingZonesJson"

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

    /sharedcars/:
        get:
            summary: GET All Shared Cars
            operationId: GETAllSharedCars
            description: ""
            tags:
                - 🚘 Shared Cars
            parameters:
                - name: latlng
                  in: query
                  description: Sorting by location (Latitude and Longitude separated by comma, latitude first).
                  required: false
                  example: 50.124935,14.457204
                  schema:
                      type: string
                - name: range
                  in: query
                  description: Filter by distance from latlng in meters (range query). Depends on the latlng parameter.
                  required: false
                  example: "5000"
                  schema:
                      type: number
                - name: districts
                  in: query
                  description: Filter by Prague city districts (in array format - eg. districts[]=praha7&districts[]=praha6)
                  required: false
                  example: praha-4
                  schema:
                      type: array
                      items: {}
                - name: limit
                  in: query
                  description:
                      Limits number of retrieved items. The maximum is 10000 (default
                      value).
                  required: false
                  example: "10"
                  schema:
                      type: number
                - name: offset
                  in: query
                  description: Number of the first items that are skipped.
                  required: false
                  example: "0"
                  schema:
                      type: number
                - name: updatedSince
                  in: query
                  description: Filters all results with older updated_at than this parameter
                  required: false
                  example: 2019-05-18T07:38:37.000Z
                  schema:
                      type: string
                - name: companyNames
                  in: query
                  description: Filters all results with company.name property by this parameter. Use with square brackets `companyNames[]`, multiple values can be passed forming an array.
                  required: false
                  example: AJO
                  schema:
                      type: array
                      items:
                        type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    type:
                                        type: string
                                        example: FeatureCollection
                                    features:
                                        type: array
                                        items:
                                            $ref: "#/components/schemas/SharedCar"
                                required:
                                    - type

                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403

    /sharedcars/{id}:
        get:
            summary: GET Shared Car
            operationId: GETSharedCar
            description: ""
            tags:
                - 🚘 Shared Cars
            parameters:
                - name: id
                  in: path
                  description: Identifier of the shared car.
                  required: true
                  example: hoppygo-9943
                  schema:
                      type: string
            responses:
                "200":
                    description: OK
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                $ref: "#/components/schemas/SharedCar"
                "401":
                    $ref: "#/components/responses/UnauthorizedError"
                "403":
                    description: Forbidden
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Forbidden
                                        error_status: 403
                "404":
                    description: Not Found
                    headers: {}
                    content:
                        application/json; charset=utf-8:
                            schema:
                                type: object
                                properties:
                                    error_message:
                                        type: string
                                    error_status:
                                        type: number
                                required:
                                    - error_message
                                    - error_status
                            examples:
                                response:
                                    value:
                                        error_message: Not Found
                                        error_status: 404

components:
    responses:
        UnauthorizedError:
            description: API key is missing or invalid
            headers:
                WWW_Authenticate:
                    schema:
                        type: string
    schemas:
        SharedBike:
            type: object
            properties:
                geometry:
                    type: object
                    properties:
                        type:
                            type: string
                            enum:
                                - Point
                        coordinates:
                            type: array
                            items:
                                type: number
                            example:
                                - 14.4633
                                - 50.07827
                properties:
                    type: object
                    properties:
                        id:
                            type: string
                            example: rekola-300014
                        in_rack:
                            type: boolean
                            example: true
                        label:
                            type: string
                            example: ""
                        location_note:
                            type: string
                            example: Když zaparkujete kolo do tohoto stojanu, tak nezaplatíte posledních 30 min z jízdy. Bohužel, aktuálně v tomto stojanu však žádné kolo není.
                            nullable: true
                        name:
                            type: string
                            example: "bicycle"
                        res_url:
                            type: string
                            format: uri
                            example: "https://www.rekola.cz"
                        company:
                            $ref: "#/components/schemas/SharedBikeCompany"
                        estimated_trip_length_in_km:
                            type: number
                            example: 41
                        type:
                            $ref: "#/components/schemas/SharedBikeType"
                        updated_at:
                            type: string
                            format: date-time
                            example: 2019-05-18T07:38:37.000Z
                    required:
                        - id
                        - label
                        - res_url
                type:
                    type: string
                    enum:
                        - Feature

        SharedBikeCompany:
            type: object
            properties:
                name:
                    type: string
                    example: Rekola
                web:
                    type: string
                    format: uri
                    example: https://www.rekola.cz
                email:
                    type: string
                    nullable: true
                phone:
                    type: string
                    nullable: true
            required:
                - name
                - web

        SharedBikeType:
            type: object
            properties:
                id:
                    type: number
                    example: 1
                description:
                    type: string
                    example: bike
            required:
                - id

        GBFSSystemsList:
            description: List of all Systems
            type: object
            properties:
                shared_mobility_providers:
                    type: object
                    properties:
                        providers_url_list:
                            type: array
                            items:
                                type: string
                                example: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/gbfs"

        GBFSWrapper:
            type: object
            properties:
                last_updated:
                    description: Last time the data in the feed was updated in POSIX time.
                    type: integer
                    minimum: 1450155600
                ttl:
                    description: Number of seconds before the data in the feed will be updated again (0 if the data should always be refreshed).
                    type: integer
                    minimum: 0
                version:
                    description: GBFS version number to which the feed conforms, according to the versioning framework (added in v1.1).
                    type: string
                    enum:
                        - "3.0"
                data:
                    description: Response data in the form of name:value pairs.
                    type: object
            required:
                - last_updated
                - ttl
                - version
                - data

        GBFSJson:
            description: Auto-discovery file that links to all of the other files published by the system.
            type: object
            additionalProperties:
                type: object
                description: "property names pattern ^[a-z]{2,3}(-[A-Z]{2})?$"
                properties:
                    feeds:
                        description: An array of all of the feeds that are published by the auto-discovery file. Each element in the array is an object with the keys below.
                        type: array
                        items:
                            type: object
                            properties:
                                name:
                                    description: Key identifying the type of feed this is. The key must be the base file name defined in the spec for the corresponding feed type.
                                    type: string
                                    enum:
                                        - gbfs
                                        - gbfs_versions
                                        - system_information
                                        - vehicle_types
                                        - station_information
                                        - station_status
                                        - free_bike_status
                                        - system_hours
                                        - system_alerts
                                        - system_calendar
                                        - system_regions
                                        - system_pricing_plans
                                        - geofencing_zones
                                url:
                                    description: URL for the feed.
                                    type: string
                                    format: uri
                            required:
                                - name
                                - url
                required:
                    - feeds
            example:
                cz:
                    feeds:
                        - name: "gbfs_versions"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/gbfs_versions"
                        - name: "system_information"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/system_information"
                        - name: "free_bike_status"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/free_bike_status"
                        - name: "vehicle_types"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/vehicle_types"
                        - name: "station_information"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/station_information"
                        - name: "station_status"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/station_status"
                        - name: "system_pricing_plans"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/system_pricing_plans"
                        - name: "geofencing_zones"
                          url: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/geofencing_zones"

        GBFSVersionsJson:
            description: Lists all feed endpoints published according to version sof the GBFS documentation. (added in v1.1)
            type: object
            properties:
                versions:
                    description: Contains one object, as defined below, for each of the available versions of a feed. The array must be sorted by increasing MAJOR and MINOR version number.
                    type: array
                    items:
                        type: object
                        properties:
                            version:
                                description: The semantic version of the feed in the form X.Y
                                type: string
                                enum:
                                    - "1.1"
                                    - "2.0"
                                    - "2.1"
                                    - "2.2"
                                    - "3.0"
                                example: "3.0"
                            url:
                                description: URL of the corresponding gbfs.json endpoint
                                type: string
                                format: uri
                                example: "https://api.golemio.cz/v2/sharedbikes/gbfs/d727bb19-9755-40b2-9615-01fbb6180b8b/definitions/v3.0"
                        required:
                            - version
                            - url
            required:
                - versions
            additionalProperties: false

        GBFSSystemInformationJson:
            description: Details including system operator, system location, year implemented, URL, contact info, time zone.
            type: object
            properties:
                system_id:
                    description: Identifier for this vehicle share system. This should be globally unique (even between different systems).
                    type: string
                    example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                language:
                    description: The language that will be used throughout the rest of the files. It must match the value in the gbfs.json file.
                    type: string
                    pattern: ^[a-z]{2,3}(-[A-Z]{2})?$
                    example: "cs"
                logo:
                    description: Logo of the system.
                    type: string
                    format: uri
                    example: "https://mobile.rekola.cz/static/icons/vehicles/png/bike.png"
                name:
                    description: Name of the system to be displayed to customers.
                    type: string
                    example: "Rekola"
                short_name:
                    description: Optional abbreviation for a system.
                    type: string
                operator:
                    description: Name of the operator
                    type: string
                url:
                    description: The URL of the vehicle share system.
                    type: string
                    format: uri
                purchase_url:
                    description: URL where a customer can purchase a membership.
                    type: string
                    format: uri
                    example: "https://www.rekola.cz"
                start_date:
                    description: Date that the system began operations.
                    type: string
                    format: date
                    example: "2022-03-11"
                phone_number:
                    description: A single voice telephone number for the specified system that presents the telephone number as typical for the system's service area.
                    type: string
                email:
                    description: Email address actively monitored by the operator's customer service department.
                    type: string
                    format: email
                    example: "info@rekola.cz"
                feed_contact_email:
                    description: A single contact email address for consumers of this feed to report technical issues (added in v1.1).
                    type: string
                    format: email
                timezone:
                    description: The time zone where the system is located.
                    type: string
                    example: "UTC"
                license_id:
                    description: REQUIRED if the dataset is provided under a standard license. An identifier for a standard license from the SPDX License List. Provide license_id rather than license_url if the license is included in the SPDX License List. See the GBFS wiki for a comparison of a subset of standard licenses. If the license_id and license_url fields are blank or omitted, this indicates that the feed is provided under the Creative Commons Universal Public Domain Dedication.
                    type: string
                license_url:
                    description: A fully qualified URL of a page that defines the license terms for the GBFS data for this system.
                    type: string
                    format: uri
                    example: "https://iptoict.blob.core.windows.net/storage/Legal/GBFSLicence.txt"
                attribution_organization_name:
                    description: If the feed license requires attribution, name of the organization to which attribution should be provided.
                    type: string
                attribution_url:
                    description: URL of the organization to which attribution should be provided.
                    type: string
                    format: uri
                terms_of_use_url:
                    description: ""
                    type: string
                    format: uri
                    example: "https://www.rekola.cz/podminky-cz"
                rental_apps:
                    description: Contains rental app information in the android and ios JSON objects (added in v1.1).
                    type: object
                    properties:
                        android:
                            description: Contains rental app download and app discovery information for the Android platform. (added in v1.1)
                            type: object
                            properties:
                                store_uri:
                                    description: URI where the rental Android app can be downloaded from (added in v1.1).
                                    type: string
                                    format: uri
                                    example: "https://play.google.com/store/apps/details?id=cz.rekola.app&hl=cs"
                                discovery_uri:
                                    description: URI that can be used to discover if the rental Android app is installed on the device (added in v1.1).
                                    type: string
                                    format: uri
                            required:
                                - store_uri
                                - discovery_uri
                        ios:
                            description: Contains rental information for the iOS platform (added in v1.1).
                            type: object
                            properties:
                                store_uri:
                                    description: URI where the rental iOS app can be downloaded from (added in v1.1).
                                    type: string
                                    format: uri
                                    example: "https://itunes.apple.com/cz/app/rekola/id888759232?mt=8"
                                discovery_uri:
                                    description: URI that can be used to discover if the rental iOS app is installed on the device (added in v1.1).
                                    type: string
                                    format: uri
                            required:
                                - store_uri
                                - discovery_uri
            required:
                - system_id
                - language
                - logo
                - name
                - timezone

        GBFSVehicleTypesJson:
            description: Describes the types of vehicles that System operator has available for rent (added in v2.1-RC).
            type: object
            properties:
                vehicle_types:
                    description: Array that contains one object per vehicle type in the system as defined below.
                    type: array
                    items:
                        type: object
                        properties:
                            vehicle_type_id:
                                description: Unique identifier of a vehicle type.
                                type: string
                                example: "rekola-bike"
                            form_factor:
                                description: The vehicle's general form factor.
                                type: string
                                enum:
                                    - bicycle
                                    - car
                                    - moped
                                    - other
                                    - scooter
                                example: "bicycle"
                            propulsion_type:
                                description: The primary propulsion type of the vehicle.
                                type: string
                                enum:
                                    - human
                                    - electric_assist
                                    - electric
                                    - combustion
                                example: "human"
                            max_range_meters:
                                description: The furthest distance in meters that the vehicle can travel without recharging or refueling when it has the maximum amount of energy potential.
                                type: number
                                minimum: 0
                            name:
                                description: The public name of this vehicle type.
                                type: string
                                example: "bicycle"
                        required:
                            - vehicle_type_id
                            - form_factor
                            - propulsion_type
            required:
                - vehicle_types

        GBFSStationInformationJson:
            description: Details including system operator, system location, year implemented, URL, contact info, time zone.
            type: object
            properties:
                stations:
                    type: array
                    items:
                        type: object
                        properties:
                            station_id:
                                description: Identifier of a station.
                                type: string
                                example: "rekola-5"
                            name:
                                description: Public name of the station.
                                type: string
                                example: "Podolí"
                            short_name:
                                description: Short name or other type of identifier.
                                type: string
                            lat:
                                description: The latitude of the station.
                                type: number
                                minimum: -90
                                maximum: 90
                                example: 50.0516212413
                            lon:
                                description: The longitude fo the station.
                                type: number
                                minimum: -180
                                maximum: 180
                                example: 14.4167971936
                            address:
                                description: Address where station is located.
                                type: string
                            cross_street:
                                description: Cross street or landmark where the station is located.
                                type: string
                            region_id:
                                description: Identifier of the region where the station is located.
                                type: string
                            post_code:
                                description: Postal code where station is located.
                                type: string
                            rental_methods:
                                description: Payment methods accepted at this station.
                                type: array
                                items:
                                    type: string
                                    enum:
                                        - key
                                        - creditcard
                                        - paypass
                                        - applepay
                                        - androidpay
                                        - transitcard
                                        - accountnumber
                                        - phone
                                minItems: 1
                            is_virtual_station:
                                description: Is this station a location with or without physical infrastructure? (added in v2.1-RC)
                                type: boolean
                                example: true
                            station_area:
                                description: A multipolygon that describes the area of a virtual station (added in v2.1-RC).
                                type: object
                                required:
                                    - type
                                    - coordinates
                                properties:
                                    type:
                                        type: string
                                        enum:
                                            - MultiPolygon
                                    coordinates:
                                        type: array
                                        items:
                                            type: array
                                            items:
                                                type: array
                                                minItems: 4
                                                items:
                                                    type: array
                                                    minItems: 2
                                                    items:
                                                        type: number
                            capacity:
                                description: Number of total docking points installed at this station, both available and unavailable.
                                type: integer
                                minimum: 0
                            vehicle_capacity:
                                description: An object where each key is a vehicle_type_id and the value is a number presenting the total number of vehicles of this type that can park within the station_area (added in v2.1-RC).
                                type: object
                                additionalProperties:
                                    type: number
                            is_valet_station:
                                description: Are valet services provided at this station? (added in v2.1-RC)
                                type: boolean
                            rental_uris:
                                description: Contains rental uris for Android, iOS, and web in the android, ios, and web fields (added in v1.1).
                                type: object
                                properties:
                                    android:
                                        description: URI that can be passed to an Android app with an intent (added in v1.1).
                                        type: string
                                        format: uri
                                    ios:
                                        description: URI that can be used on iOS to launch the rental app for this station (added in v1.1).
                                        type: string
                                        format: uri
                                    web:
                                        description: URL that can be used by a web browser to show more information about renting a vehicle at this station (added in v1.1).
                                        type: string
                                        format: uri
                                        example: "https://www.rekola.cz"
                            vehicle_type_capacity:
                                description: An object where each key is a vehicle_type_id and the value is a number representing the total docking points installed at this station for each vehicle type (added in v2.1-RC).
                                type: object
                                additionalProperties:
                                    type: number
                        required:
                            - station_id
                            - name
                            - lat
                            - lon
            required:
                - stations

        GBFSStationStatusJson:
            description: Describes the capacity and rental availability of the station
            type: object
            properties:
                stations:
                    type: array
                    items:
                        type: object
                        properties:
                            station_id:
                                description: Identifier of a station.
                                type: string
                                example: "rekola-57"
                            num_bikes_available:
                                description: Number of vehicles of any type physically available for rental at the station.
                                type: integer
                                minimum: 0
                                example: 1
                            vehicle_types_available:
                                description: Array of objects displaying the total number of each vehicle type at the station (added in v2.1-RC).
                                type: array
                                minItems: 1
                                items:
                                    type: object
                                    properties:
                                        vehicle_type_id:
                                            description: The vehicle_type_id of vehicle at the station (added in v2.1-RC).
                                            type: string
                                            example: "rekola-bike"
                                        count:
                                            description: A number representing the total amount of this vehicle type at the station (added in v2.1-RC).
                                            type: integer
                                            minimum: 0
                                            example: 1
                                    required:
                                        - vehicle_type_id
                                        - count
                            num_bikes_disabled:
                                description: Number of disabled vehicles of any type at the station.
                                type: integer
                                minimum: 0
                            num_docks_available:
                                description: Number of functional docks physically at the station.
                                type: integer
                                minimum: 0
                            num_docks_disabled:
                                description: Number of empty but disabled docks at the station.
                                type: integer
                                minimum: 0
                            is_installed:
                                description: Is the station currently on the street?
                                type: boolean
                                example: true
                            is_renting:
                                description: Is the station currently renting vehicles?
                                type: boolean
                                example: true
                            is_returning:
                                description: Is the station accepting vehicle returns?
                                type: boolean
                                example: true
                            last_reported:
                                description: The last time this station reported its status to the operator's backend in POSIX time.
                                type: number
                                minimum: 1450155600
                                example: 1646999099
                            vehicle_docks_available:
                                description: Object displaying available docks by vehicle type (added in v2.1-RC).
                                type: array
                                items:
                                    type: object
                                    properties:
                                        vehicle_type_ids:
                                            description: An array of strings where each string represents a vehicle_type_id that is able to use a particular type of dock at the station (added in v2.1-RC).
                                            type: array
                                            items:
                                                type: string
                                        count:
                                            description: A number representing the total number of available docks for the defined vehicle type (added in v2.1-RC).
                                            type: integer
                                            minimum: 0
                                    required:
                                        - vehicle_type_ids
                                        - count
                        required:
                            - station_id
                            - num_bikes_available
                            - is_installed
                            - is_renting
                            - is_returning
                            - last_reported
            required:
                - stations

        GBFSFreeBikeStatusJson:
            description: Describes the vehicles that are available for rent (as of v2.1-RC2).
            type: object
            properties:
                bikes:
                    type: array
                    items:
                        type: object
                        properties:
                            bike_id:
                                description: Rotating (as of v2.0) identifier of a vehicle.
                                type: string
                                example: "rekola-6124"
                            lat:
                                description: The latitude of the vehicle.
                                type: number
                                minimum: -90
                                maximum: 90
                                example: 50.1102888889
                            lon:
                                description: The longitude of the vehicle.
                                type: number
                                minimum: -180
                                maximum: 180
                                example: 14.4720444444
                            is_reserved:
                                description: Is the vehicle currently reserved?
                                type: boolean
                                example: false
                            is_disabled:
                                description: Is the vehicle currently disabled (broken)?
                                type: boolean
                                example: false
                            rental_uris:
                                description: Contains rental uris for Android, iOS, and web in the android, ios, and web fields (added in v1.1).
                                type: object
                                properties:
                                    android:
                                        description: URI that can be passed to an Android app with an intent (added in v1.1).
                                        type: string
                                        format: uri
                                    ios:
                                        description: URI that can be used on iOS to launch the rental app for this vehicle (added in v1.1).
                                        type: string
                                        format: uri
                                    web:
                                        description: URL that can be used by a web browser to show more information about renting this vehicle (added in v1.1).
                                        type: string
                                        format: uri
                                        example: "https://www.rekola.cz"
                            vehicle_type_id:
                                description: The vehicle_type_id of this vehicle (added in v2.1-RC).
                                type: string
                                example: "rekola-bike"
                            last_reported:
                                description: The last time this vehicle reported its status to the operator's backend in POSIX time (added in v2.1-RC).
                                type: number
                                minimum: 1450155600
                                example: 1647360460
                            current_range_meters:
                                description: The furthest distance in meters that the vehicle can travel without recharging or refueling with the vehicle's current charge or fuel (added in v2.1-RC).
                                type: number
                                minimum: 0
                            charge_percent:
                                description: REQUIRED only if the vehicle is using nonhuman fuel type and measures the remaining fuel capacity.
                                type: integer
                                minimum: 0
                            station_id:
                                description: Identifier referencing the station_id if the vehicle is currently at a station (added in v2.1-RC2).
                                type: string
                                example: "rekola-57"
                            pricing_plan_id:
                                description: The plan_id of the pricing plan this vehicle is eligible for (added in v2.1-RC2).
                                type: string
                                example: "4b72f960-84cf-11ec-a8a3-0242ac120002"
                            make:
                                description: The name of the vehicle manufacturer. (added in OICT fork)
                                type: string
                                example: "Renault"
                            model:
                                description: The name of the vehicle model. (added in OICT fork)
                                type: string
                                example: "Twizy"
                            color:
                                description: The color of the vehicle. (added in OICT fork)
                                type: string
                                example: "dark blue"
                        anyOf:
                            - required:
                                  - lat
                                  - lon
                              x-errorMessage: Both 'lat' and 'lon' are required.
                            - required:
                                  - station_id
                              properties:
                                  lat:
                                      not: {}
                                  lon:
                                      not: {}
                              x-errorMessage: "'station_id' is required if 'lat' and 'lon' are not present."
                        required:
                            - bike_id
                            - is_reserved
                            - is_disabled
            required:
                - bikes

        GBFSSystemPricingPlansJson:
            description: Describes the pricing schemes of the system.
            type: object
            properties:
                plans:
                    type: array
                    items:
                        type: object
                        properties:
                            plan_id:
                                description: Identifier of a pricing plan in the system.
                                type: string
                                example: "4b72f960-84cf-11ec-a8a3-0242ac120002"
                            system_id:
                                description: Link to system.
                                type: string
                                example: "d727bb19-9755-40b2-9615-01fbb6180b8b"
                            url:
                                description: URL where the customer can learn more about this pricing plan.
                                type: string
                                format: uri
                                example: "https://www.rekola.cz/cenik"
                            name:
                                description: Name of this pricing plan.
                                type: string
                                example: "Jednotlivé jízdy"
                            last_updated:
                                description: ""
                                type: number
                                minimum: 1450155600
                                example: 1646999075
                            currency:
                                description: Currency used to pay the fare in ISO 4217 code.
                                type: string
                                pattern: ^\w{3}$
                                example: "CZK"
                            price:
                                description: Fare price.
                                type: number
                                minimum: 0
                                example: 0
                            is_taxable:
                                description: Will additional tax be added to the base price?
                                type: boolean
                                example: false
                            description:
                                description: Customer-readable description of the pricing plan.
                                type: string
                                example: "24 Kč za 30 min -- Platíte za každou jízdu samostatně"
                            per_km_pricing:
                                description: Array of segments when the price is a function of distance travelled, displayed in kilometers (added in v2.1-RC2).
                                type: array
                                items:
                                    type: object
                                    properties:
                                        start:
                                            description: Number of kilometers that have to elapse before this segment starts applying (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        rate:
                                            description: Rate that is charged for each kilometer interval after the start (added in v2.1-RC2).
                                            type: number
                                        interval:
                                            description: Interval in kilometers at which the rate of this segment is either reapplied indefinitely, or if defined, up until (but not including) end kilometer (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        end:
                                            description: The kilometer at which the rate will no longer apply (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        start_time_of_period:
                                            description: "{day}-{day} {time} čas zahájení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                        end_time_of_period:
                                            description: "{day}-{day} {time} čas ukončení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                    required:
                                        - start
                                        - rate
                                        - interval
                            per_min_pricing:
                                description: Array of segments when the price is a function of time travelled, displayed in minutes (added in v2.1-RC2).
                                type: array
                                items:
                                    type: object
                                    properties:
                                        start:
                                            description: Number of minutes that have to elapse before this segment starts applying (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                            example: 0
                                        rate:
                                            description: Rate that is charged for each minute interval after the start (added in v2.1-RC2).
                                            type: number
                                            example: 24
                                        interval:
                                            description: Interval in minutes at which the rate of this segment is either reapplied (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                            example: 30
                                        end:
                                            description: The minute at which the rate will no longer apply (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        start_time_of_period:
                                            description: "{day}-{day} {time} čas zahájení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                        end_time_of_period:
                                            description: "{day}-{day} {time} čas ukončení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                    required:
                                        - start
                                        - rate
                                        - interval
                            per_min_reservation_pricing:
                                description: Array of segments when the price is a function of time travelled, displayed in minutes (added in v2.1-RC2).
                                type: array
                                items:
                                    type: object
                                    properties:
                                        start:
                                            description: Number of minutes that have to elapse before this segment starts applying (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        rate:
                                            description: Rate that is charged for each minute interval after the start (added in v2.1-RC2).
                                            type: number
                                        interval:
                                            description: Interval in minutes at which the rate of this segment is either reapplied (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        end:
                                            description: The minute at which the rate will no longer apply (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        start_time_of_period:
                                            description: "{day}-{day} {time} čas zahájení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                        end_time_of_period:
                                            description: "{day}-{day} {time} čas ukončení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                    required:
                                        - start
                                        - rate
                                        - interval
                            per_min_parking_pricing:
                                description: Array of segments when the price is a function of time travelled, displayed in minutes (added in v2.1-RC2).
                                type: array
                                items:
                                    type: object
                                    properties:
                                        start:
                                            description: Number of minutes that have to elapse before this segment starts applying (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        rate:
                                            description: Rate that is charged for each minute interval after the start (added in v2.1-RC2).
                                            type: number
                                        interval:
                                            description: Interval in minutes at which the rate of this segment is either reapplied (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        end:
                                            description: The minute at which the rate will no longer apply (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        start_time_of_period:
                                            description: "{day}-{day} {time} čas zahájení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                        end_time_of_period:
                                            description: "{day}-{day} {time} čas ukončení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                    required:
                                        - start
                                        - rate
                                        - interval
                            off_station_parking:
                                description: Pokuta za zaparkovani mimo stanici pokud ma provozoval nejake stanice. If this array is not provided, there are no variable prices based on time.
                                type: array
                                items:
                                    type: object
                                    properties:
                                        start:
                                            description: Number of minutes that have to elapse before this segment starts applying (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        rate:
                                            description: Rate that is charged for each minute interval after the start (added in v2.1-RC2).
                                            type: number
                                        interval:
                                            description: Interval in minutes at which the rate of this segment is either reapplied (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        end:
                                            description: The minute at which the rate will no longer apply (added in v2.1-RC2).
                                            type: integer
                                            minimum: 0
                                        start_time_of_period:
                                            description: "{day}-{day} {time} čas zahájení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                        end_time_of_period:
                                            description: "{day}-{day} {time} čas ukončení platnosti účtování pro uvedené dny v týdnu, null -> unlimited"
                                            type: string
                                    required:
                                        - start
                                        - rate
                                        - interval
                            surge_pricing:
                                description: Is there currently an increase in price in response to increased demand in this pricing plan? (added in v2.1-RC2)
                                type: boolean
                                example: false
                        required:
                            - plan_id
                            - name
                            - currency
                            - price
                            - is_taxable
                            - description
            required:
                - plans

        GBFSGeofencingZonesJson:
            description: Describes geofencing zones and their associated rules and attributes (added in v2.1-RC).
            type: object
            properties:
                geofencing_zones:
                    type: object
                    description: Each geofenced zone and its associated rules and attributes is described as an object within the array of features.
                    properties:
                        type:
                            description: FeatureCollection as per IETF RFC 7946.
                            type: string
                            enum:
                                - FeatureCollection
                            example: FeatureCollection
                        features:
                            description: Array of objects.
                            type: array
                            items:
                                title: GeoJSON Feature
                                type: object
                                properties:
                                    type:
                                        type: string
                                        enum:
                                            - Feature
                                        example: Feature
                                    properties:
                                        description: Describing travel allowances and limitations.
                                        type: object
                                        properties:
                                            name:
                                                description: Public name of the geofencing zone.
                                                type: string
                                            start:
                                                description: Start time of the geofencing zone in POSIX time.
                                                type: number
                                                minimum: 1450155600
                                            end:
                                                description: End time of the geofencing zone in POSIX time.
                                                type: number
                                                minimum: 1450155600
                                            priority:
                                                description: "Priorita: 0 je nejnižší priorita. Vyšší priorita přepisuje nižší prioritu."
                                                type: integer
                                                example: 0
                                            rules:
                                                description: Array that contains one object per rule.
                                                type: array
                                                items:
                                                    type: object
                                                    properties:
                                                        system_id:
                                                            type: array
                                                            description: Array of vehicle type IDs for which these restrictions apply.
                                                            items:
                                                                type: string
                                                            example:
                                                                - "d727bb19-9755-40b2-9615-01fbb6180b8b"
                                                        ride_allowed:
                                                            description: Is the undocked ride allowed to stat and end in this zone?
                                                            type: boolean
                                                            example: true
                                                        ride_through_allowed:
                                                            description: Is the ride allowed to travel through this zone?
                                                            type: boolean
                                                            example: true
                                                        parking_allowed:
                                                            description: Povoleni parkovani v ramci jedné jízdy.
                                                            type: boolean
                                                            example: true
                                                        maximum_speed_kph:
                                                            description: What is the maximum speed allowed, in kilometers per hour?
                                                            type: integer
                                                            minimum: 0
                                                        price:
                                                            description: Cena za vrácení v polygonu, resp. parkování za minutu v polygonu.
                                                            type: integer
                                                            minimum: 0
                                                    required:
                                                        - ride_allowed
                                                        - ride_through_allowed
                                    geometry:
                                        description: A polygon that describes where rides might not be able to start, end, go through, or have other limitations. Must follow the right-hand rule.
                                        title: GeoJSON MultiPolygon
                                        type: object
                                        properties:
                                            type:
                                                type: string
                                                enum:
                                                    - MultiPolygon
                                            coordinates:
                                                type: array
                                                items:
                                                    type: array
                                                    items:
                                                        type: array
                                                        minItems: 4
                                                        items:
                                                            type: array
                                                            minItems: 2
                                                            items:
                                                                type: number
                                                example:
                                                    [
                                                        [
                                                            [
                                                                [
                                                                    14.4682760344,
                                                                    50.1025500851,
                                                                ],
                                                                [
                                                                    14.4682760344,
                                                                    50.1022957185,
                                                                ],
                                                                [
                                                                    14.4678794648,
                                                                    50.1022957185,
                                                                ],
                                                                [
                                                                    14.4678794648,
                                                                    50.1025500851,
                                                                ],
                                                                [
                                                                    14.4682760344,
                                                                    50.1025500851,
                                                                ],
                                                            ],
                                                        ],
                                                    ]
                                        required:
                                            - type
                                            - coordinates
                                required:
                                    - type
                                    - geometry
                                    - properties
                    required:
                        - type
                        - features

        SharedCar:
            type: object
            properties:
                geometry:
                    type: object
                    properties:
                        type:
                            type: string
                            enum:
                                - Point
                        coordinates:
                            type: array
                            items:
                                type: number
                            example:
                                - 14.4633
                                - 50.07827
                properties:
                    type: object
                    properties:
                        id:
                            type: string
                            example: hoppygo-9943
                        name:
                            type: string
                            example: "Peugeot 207"
                        res_url:
                            type: string
                            format: uri
                            example: "https://hoppygo.com/cs/"
                        company:
                            $ref: "#/components/schemas/SharedCarCompany"
                        availability:
                            $ref: "#/components/schemas/SharedCarAvailability"
                        fuel:
                            $ref: "#/components/schemas/SharedCarFuel"
                        updated_at:
                            type: string
                            format: date-time
                            example: 2019-05-18T07:38:37.000Z
                    required:
                        - id
                        - label
                        - res_url
                type:
                    type: string
                    enum:
                        - Feature

        SharedCarCompany:
            type: object
            properties:
                name:
                    type: string
                    example: HoppyGo
                web:
                    type: string
                    format: uri
                    example: https://hoppygo.com/cs/
                email:
                    type: string
                    nullable: true
                phone:
                    type: string
                    nullable: true
            required:
                - name
                - web

        SharedCarAvailability:
            type: object
            properties:
                id:
                    type: number
                    enum:
                        - 1
                        - 2
                    example: 2
                description:
                    type: string
                    enum:
                        - ihned
                        - dle domluvy s provozovatelem
                    example: dle domluvy s provozovatelem
            required:
                - id
                - description

        SharedCarFuel:
            type: object
            properties:
                id:
                    type: number
                    enum:
                        - 0
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 7
                    example: 2
                description:
                    type: string
                    enum:
                        - neznámý
                        - benzín
                        - nafta
                        - benzín + LPG
                        - elektřina
                        - hybrid
                        - jiný
                    example: nafta
            required:
                - id
                - description
