swagger: "2.0"
info:
  version: "1.0.2"
  title: NEMT Member API
  description: |
   RESTful API for NEMT Member App
    Repo: <a href="http://bitbucket.org/nemt/nemt-portal-api">nemt-portal-api</a>

    Use the lockpad icon on the right side of a route to authorize the route.
  contact:
    name: Carlos Andrioli
    email: carlos@brighterdevelopment.com
basePath: /v1
schemes:
  - http
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  AppKey:
    type: apiKey
    in: header
    name: App
    description: Application Key (use "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") only used to authenticate the application
  AppToken:
    type: apiKey
    in: header
    name: Token
    description: The App Bearer token. Need to make a get request to the address "/v1/authenticate" with the "App" header and the log in body
tags:
  - name: auth
    description: Endpoints for system and users authentication.
  - name: member
    description: Endpoints for members of a participating payer.
  - name: visits
    description: Endpoints for visits to participating providers by members of a participating payer.
  - name: notifications
    description: Endpoints for notifications related to members, visits, providers and system state.
  - name: rides
    description: Endpoints for rides to participating providers for members of participating payers.
  - name: providers
    description: Endpoints for participating providers related to a member of a participating payer
  - name: messages
    description: Endpoints for (tbd) message types.
paths:
  /authenticate/:
    post:
      tags:
        - auth
      summary: Authorize the application use
      description: Authorizes the application routes returning a JWT token for authentication
      operationId: authenticateApp
      security:
        - AppKey: []
      parameters:
        - name: data
          in: body
          description: Member authentication data
          required: true
          schema:
            $ref: '#/definitions/AuthRequest'
      responses:
        200:
          description: Get the token for application authorization
          schema:
            $ref: '#/definitions/AuthResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/visits/:
    get:
      tags:
        - visits
        - member
      summary: Get a filtered list of member-visits to participating providers
      description: Get a list of visits
      operationId: listVisits
      security:
        - AppToken: []
      parameters:
        - name: page
          in: query
          description: Pagination page number
          default: 1
          required: false
          type: integer
          format: int64
        - name: quantity
          in: query
          description: Pagination quantity per page
          default: 10
          type: integer
          format: int64
      responses:
        200:
          description: Visits paginated list
          schema:
            $ref: '#/definitions/VisitsPaginatedResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
    post:
      tags:
        - visits
        - member
      summary: Create a visit to a participating provider for an eligible member.
      description: Reserves a pre-defined or arbitrary visit time range
      operationId: addVisit
      security:
        - AppToken: []
      parameters:
        - name: data
          in: body
          description: Visit data
          required: true
          schema:
            $ref: '#/definitions/Visit'
      responses:
        200:
          description: Visit object with all the ID and remanescent parameters filled
          schema:
            $ref: '#/definitions/Visit'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/visits/{visit_uuid}/:
    get:
      tags:
        - visits
        - member
      summary: Get details of a single member-visit to a participating provider.
      description: Get details of a single member-provider visit
      operationId: getVisitDetail
      security:
        - AppToken: []
      parameters:
        - name: visit_uuid
          in: path
          description: Visit unique identifier
          type: string
          required: true
      responses:
        200:
          description: Visit Details
          schema:
            $ref: '#/definitions/Visit'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
    put:
      tags:
        - visits
        - member
      summary: Update a single member-visit to a participating provider.
      description: Get the member visit
      operationId: updatemember
      security:
        - AppToken: []
      parameters:
        - name: visit_uuid
          in: path
          description: Visit unique identifier
          type: string
          required: true
        - name: data
          in: body
          description: Visit data
          required: true
          schema:
            $ref: '#/definitions/Visit'
      responses:
        200:
          description: Visit detail
          schema:
            $ref: '#/definitions/Visit'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
    delete:
      tags:
        - visits
        - member
      summary: Delete a single member-visit to a participating provider.
      description: Cancel a member appointment
      operationId: deletemember
      security:
        - AppToken: []
      parameters:
        - name: visit_uuid
          in: path
          description: Visit unique identifier
          type: string
          required: true
      responses:
        204:
          description: No return if everything works
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/members/:
    get:
      tags:
        - member
      summary: Get a filtered list of members
      description: Get a list of members
      operationId: listmembers
      security:
        - AppToken: []
      parameters:
        - name: page
          in: query
          description: Pagination page number
          default: 1
          required: false
          type: integer
          format: int64
        - name: quantity
          in: query
          description: Pagination quantity per page
          default: 10
          type: integer
          format: int64
      responses:
        200:
          description: members paginated list
          schema:
            $ref: '#/definitions/MembersPaginatedResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/members/{member_uuid}/:
    get:
      tags:
        - member
      summary: member detail
      description: Get a member's detail data
      operationId: getmemberDetail
      security:
        - AppToken: []
      parameters:
        - name: member_uuid
          in: path
          description: member unique identifier
          type: string
          required: true
      responses:
        200:
          description: member detail
          schema:
            $ref: '#/definitions/Member'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/notifications/:
    get:
      tags:
        - notifications
        - member
      summary: Get a list of notifications for a single member.
      description: Get a list of notifications for a single member.
      operationId: listNotifications
      security:
        - AppToken: []
      parameters:
        - name: page
          in: query
          description: Pagination page number
          default: 1
          required: false
          type: integer
          format: int64
        - name: quantity
          in: query
          description: Pagination quantity per page
          default: 10
          type: integer
          format: int64
      responses:
        200:
          description: Notification paginated list
          schema:
            $ref: '#/definitions/NotificationPaginatedResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/notifications/{notification_uuid}/:
    get:
      tags:
        - notifications
        - member
      summary: Get the member's notification
      description: Get a specific notification
      operationId: getNotification
      security:
        - AppToken: []
      parameters:
        - name: notification_uuid
          in: path
          description: Notification unique identifier
          type: string
          required: true
      responses:
        200:
          description: Notification detail
          schema:
            $ref: '#/definitions/Notification'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/rides/:
    get:
      tags:
        - rides
        - visits
        - member
      summary: Get a filtered list of rides for a single member.
      description: Get a filtered list of rides for a single member.
      operationId: listRides
      security:
        - AppToken: []
      parameters:
        - name: page
          in: query
          description: Pagination page number
          default: 1
          required: false
          type: integer
          format: int64
        - name: quantity
          in: query
          description: Pagination quantity per page
          default: 10
          type: integer
          format: int64
      responses:
        200:
          description: Rides paginated list
          schema:
            $ref: '#/definitions/RidePaginatedResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
    post:
      tags:
        - rides
        - visits
        - member
      summary: Create a ride to a participating provider for an eligible member.
      description: Get the ride
      operationId: addRide
      security:
        - AppToken: []
      parameters:
        - name: data
          in: body
          description: Book a scheduled ride with at lease one ride_segment.
          required: true
          schema:
            $ref: '#/definitions/RideRequest'
      responses:
        200:
          description: Ride object with all the ID and remanescent parameters filled
          schema:
            $ref: '#/definitions/Ride'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/rides/{ride_uuid}/:
    get:
      tags:
        - rides
        - visits
        - member
      summary: Ride detail
      description: Get a member's specific ride data
      operationId: getRideDetail
      security:
        - AppToken: []
      parameters:
        - name: ride_uuid
          in: path
          description: Ride unique identifier
          type: string
          required: true
      responses:
        200:
          description: Ride detail
          schema:
            $ref: '#/definitions/Ride'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
    put:
      tags:
        - rides
        - visits
        - member
      summary: Update member ride
      description: Get the member ride
      operationId: updateRides
      security:
        - AppToken: []
      parameters:
        - name: ride_uuid
          in: path
          description: Ride unique identifier
          type: string
          required: true
        - name: data
          in: body
          description: Ride data
          required: true
          schema:
            $ref: '#/definitions/Ride'
      responses:
        200:
          description: Ride detail
          schema:
            $ref: '#/definitions/Ride'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/rides/{ride_uuid}/cancel:
    post:
      tags:
        - rides
        - visits
        - member
      summary: Cancel ride
      description: Cancel a specific ride for a member
      operationId: cancelRide
      security:
        - AppToken: []
      parameters:
        - name: ride_uuid
          in: path
          description: Ride unique identifier
          type: string
          required: true
      responses:
        204:
          description: Empty response means that the cancel was aceppted
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/rides/{ride_uuid}/destination:
    put:
      tags:
        - rides
        - visits
        - member
      summary: Change the ride destination
      description: Change the ride destination
      operationId: changeRideDestination
      security:
        - AppToken: []
      parameters:
        - name: ride_uuid
          in: path
          description: Ride unique identifier
          type: string
          required: true
        - name: data
          in: body
          description: Destination data
          required: true
          schema:
            $ref: '#/definitions/Location'
      responses:
        200:
          description: Location confirmation
          schema:
            $ref: '#/definitions/Location'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/ridetypes:
    get:
      tags:
        - rides
      security:
        - AppToken: []
      operationId: getRideTypes
      summary: List the ride types
      description: List the ride types from the database
      parameters:
        - name: lat
          in: query
          description: latitude
          type: number
          format: float
          required: true
        - name: lng
          in: query
          description: longitude
          type: number
          format: float
          required: true
      responses:
        200:
          description: Ride Type list
          schema:
            $ref: '#/definitions/RideTypeResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/rideseta:
    get:
      tags:
        - rides
      security:
        - AppToken: []
      operationId: getRideEta
      summary: Get the ETA of the Ride
      description: Get the ETA of the types
      parameters:
        - name: lat
          in: query
          description: latitude
          type: number
          format: float
          required: true
        - name: lng
          in: query
          description: longitude
          type: number
          format: float
          required: true
        - name: dest_lat
          in: query
          description: destination latitude
          type: number
          format: float
          required: true
        - name: dest_lng
          in: query
          description: destination longitude
          type: number
          format: float
          required: true
        - name: ride_type_uuid
          in: query
          description: ride type UUID
          type: string
      responses:
        200:
          description: Ride ETA list
          schema:
            $ref: '#/definitions/RideETAResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/ridedrivers:
    get:
      tags:
        - rides
      security:
        - AppToken: []
      operationId: getRideDrivers
      summary: Get the Drivers close to the location
      description: Get the Drivers close to the location
      parameters:
        - name: lat
          in: query
          description: latitude
          type: number
          format: float
          required: true
        - name: lng
          in: query
          description: longitude
          type: number
          format: float
          required: true
        - name: ride_type_uuid
          in: query
          description: ride type UUID
          type: string
      responses:
        200:
          description: Ride Drivers list
          schema:
            $ref: '#/definitions/RideDriverResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/providers/:
    get:
      tags:
        - rides
        - providers
        - member
      summary: Get providers
      description: Get a list of providers
      operationId: getProviders
      security:
        - AppToken: []
      parameters:
        - name: page
          in: query
          description: Pagination page number
          default: 1
          required: false
          type: integer
          format: int64
        - name: quantity
          in: query
          description: Pagination quantity per page
          default: 10
          type: integer
          format: int64
      responses:
        200:
          description: Provider list
          schema:
            $ref: '#/definitions/ProviderPaginatedResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
  /nemt/providers/{lat}/{lng}/:
    get:
      tags:
        - rides
        - providers
        - member
      summary: Provider by Location
      description: Get a list of providers for a current location
      operationId: getProvidersByLocation
      security:
        - AppToken: []
      parameters:
        - name: lat
          in: path
          description: latitude
          type: number
          format: float
          required: true
        - name: lng
          in: path
          description: longitude
          type: number
          format: float
          required: true
        - name: page
          in: query
          description: Pagination page number
          default: 1
          required: false
          type: integer
          format: int64
        - name: quantity
          in: query
          description: Pagination quantity per page
          default: 10
          type: integer
          format: int64
      responses:
        200:
          description: Provider list
          schema:
            $ref: '#/definitions/ProviderPaginatedResponse'
        401:
          description: Unauthorized access
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        422:
          description: Validation error
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
        503:
          description: Service Unavailable
          schema:
            $ref: '#/definitions/DefaultErrorResponse'
definitions:
  DefaultErrorResponse:
    type: object
    description: Default error response data
    properties:
      error:
        type: boolean
        description: Indicates if the response is an error
      message:
        type: string
        description: Detailed response message
  AuthRequest:
    type: object
    description: Request from application authrization
    properties:
      email:
        type: string
        description: Member e-mail
      password:
        type: string
        description: Base64 encoded password
  AuthResponse:
    type: object
    description: Response from application authrization
    properties:
      token:
        type: string
        description: The token string for app authorization
      valid_time:
        type: integer
        format: int64
        description: Token expiration time in Unix time format
      server_time:
        type: integer
        format: int64
        description: Server time in Unix time format
  PaginatedResponse:
    type: object
    description: Paginated response data
    properties:
      pagination:
        type: object
        description: Pagination data
        properties:
          total_records:
            type: integer
            format: int64
            description: Total result count
          records_per_page:
            type: integer
            format: int64
            description: Max records per page
          total_pages:
            type: integer
            format: int64
            description: Total page count
          current_page:
            type: integer
            format: int64
            description: Current page number
      data:
        type: array
        items:
          type: object
        description: Paginaged data
  Member:
    type: object
    description: member data
    properties:
      member_uuid:
        type: string
        description: member unique ID
      name:
        type: string
        description:  Name
      phone_number:
        type: string
        description: Phone number
  MembersPaginatedResponse:
    type: object
    description: members paginated response data
    allOf:
      - $ref: '#/definitions/PaginatedResponse'
      - properties:
          data:
            type: array
            items:
              $ref: '#/definitions/Member'
  Driver:
    type: object
    description: Driver data
    properties:
      driver_uuid:
        type: string
        description: Driver unique ID
      name:
        type: string
        description:  Name
      phone_number:
        type: string
        description: Phone number
      vehicle:
        type: object
        description: Driver car description
        $ref: '#/definitions/Vehicle'
  Vehicle:
    type: object
    description: Veicule data
    properties:
      vehicle_uuid:
        type: string
        description: Vehicle unique ID
      make:
        type: string
        description:  Car brand
      model:
        type: string
        description:  Car model
      plate:
        type: string
        description:  Car plate
      color:
        type: string
        description:  Car color
  Visit:
    type: object
    description: Visit data (Still TBD by the Data Model)
    properties:
      visit_uuid:
        type: string
        description: Visit unique ID
  VisitsPaginatedResponse:
    type: object
    description: Visits paginated response data
    allOf:
      - $ref: '#/definitions/PaginatedResponse'
      - properties:
          data:
            type: array
            items:
              $ref: '#/definitions/Visit'
  Notification:
    type: object
    description: Notification data
    properties:
      notification_uuid:
        type: string
        description: Notification unique ID
      notification:
        type: string
        description: Notification message
      is_read:
        type: boolean
        description: Verify if the message was read
  NotificationPaginatedResponse:
    type: object
    description: Notification paginated response data
    allOf:
      - $ref: '#/definitions/PaginatedResponse'
      - properties:
          data:
            type: array
            items:
              $ref: '#/definitions/Notification'
  RideRequest:
    type: object
    description: Visit data
    properties:
      ride_type:
        type: object
        description: Ride type
        $ref: '#/definitions/RideType'
      schedule_date:
        type: string
        format: datetime
        description: Request date
      coordinates:
        type: object
        description: Coordinates information
        $ref: '#/definitions/RideCoordinates'
  Ride:
    type: object
    description: Visit data
    properties:
      ride_uuid:
        type: string
        description: Ride unique ID
      ride_type:
        type: object
        description: Ride type
        $ref: '#/definitions/RideType'
      ride_status:
        type: object
        description: Ride status
        $ref: '#/definitions/RideStatus'
      request_at:
        type: string
        format: datetime
        description: Request date
      driver:
        type: object
        description: Driver information
        $ref: '#/definitions/Driver'
      coordinates:
        type: object
        description: Coordinates information
        $ref: '#/definitions/RideCoordinates'
  RideCoordinates:
    type: object
    description: Ride coordinates properties
    properties:
      pickup:
        type: object
        description: Pickup information
        $ref: '#/definitions/Location'
      dropoff:
        type: object
        description: Dropoff information
        $ref: '#/definitions/Location'
      location:
        type: object
        description: Location information
        $ref: '#/definitions/Location'
      destination:
        type: object
        description: Destination information
        $ref: '#/definitions/Location'
  Location:
    type: object
    description: Location property
    properties:
      lat:
        type: number
        format: float
        description: Latitude
      lng:
        type: number
        format: float
        description: Longitude
      address:
        type: string
        description: Address
      time:
        type: string
        format: datetime
        description: Time
  RidePaginatedResponse:
    type: object
    description: Ride paginated response data
    allOf:
      - $ref: '#/definitions/PaginatedResponse'
      - properties:
          data:
            type: array
            items:
              $ref: '#/definitions/Ride'
  Provider:
    type: object
    description: Provide data
    properties:
      provider_uuid:
        type: string
        description: Provider unique ID
      npi_id:
        type: integer
        description: National Provider ID
      provider_name:
        type: string
        description: Provider name
      address:
        type: string
        description: Provider Address
      lat:
        type: number
        format: float
        description: Latitude
      lng:
        type: number
        format: float
        description: Longitude
  ProviderPaginatedResponse:
    type: object
    description: Provider paginated response data
    allOf:
      - $ref: '#/definitions/PaginatedResponse'
      - properties:
          data:
            type: array
            items:
              $ref: '#/definitions/Provider'
  RideType:
    properties:
      ride_type_uuid:
        type: string
        description: Internal UUID of the ride type
      ride_type:
        type: string
        description: Internal type of the ride type
      display_name:
        type: string
        description: Ride type
  RideStatus:
    properties:
      ride_status_uuid:
        type: string
        description: Internal UUID of the ride status
      ride_status:
        type: string
        description: Internal type of the ride status
      display_name:
        type: string
        description: Ride type
  RideTypeResponse:
    type: array
    description: List of the Ride Types
    items:
      $ref: '#/definitions/RideType'
  RideETA:
    properties:
      ride_type_uuid:
        type: string
        description: Internal UUID of the ride type
      ride_type:
        type: string
        description: Internal type of the ride type
      display_name:
        type: string
        description: Ride type
      eta_seconds:
        type: number
        description: ETA
  RideETAResponse:
    type: array
    description: List of the Ride ETA's
    items:
      $ref: '#/definitions/RideETA'
  RideDriver:
    properties:
      ride_type_uuid:
        type: string
        description: Internal UUID of the ride type
      ride_type:
        type: string
        description: Internal type of the ride type
      display_name:
        type: string
        description: Ride type
      drivers:
        type: array
        description: Drivers location
        items:
          $ref: '#/definitions/Location'
  RideDriverResponse:
    type: array
    description: List the Ride Drivers by type
    items:
      $ref: '#/definitions/RideDriver'