openapi: 3.0.3
info:
  title: Epic-Charging Server Application Report API
  description: >

    # Epic-Charging API


    Welcome to the Epic-Charging API documentation. This API gives you full
    control over your EV charging infrastructure, allowing you to manage
    chargers, monitor sessions, and generate reports.


    ## Getting Started


    To use the Epic-Charging API, you'll need:

    - An API Key (see the Authentication section)

    - A basic understanding of the resources available through the API


    ## Base URL


    All API URLs referenced in this documentation are relative to:

    ```

    https://{{tenant}}.epiccharging.com/api/external/v1/

    ```


    ## Authentication


    The Epic-Charging API uses API keys for authentication. Include your API key
    in all requests using the `Token-Authorization` header:


    ```bash

    curl -X GET https://{{tenant}}.epiccharging.com/api/external/v1/charger/ \
      -H "Token-Authorization: your_api_key_here"
    ```


    Your API key carries privileges, so keep it secure. Do not share it in
    publicly accessible areas such as GitHub, client-side code, or public
    forums.


    ## Rate Limiting


    API requests may be subject to rate limiting. If you exceed the rate limit,
    the API will respond with a `429 Too Many Requests` status code.


    ## Error Responses


    The API uses standard HTTP response codes to indicate success or failure:

    - 2xx: Success

    - 4xx: Client errors (invalid request, unauthorized, etc.)

    - 5xx: Server errors


    Error responses include a JSON body with details about the error.
  version: v1
servers:
  - url: https://{tenant}.epiccharging.com/api/external/v1
    description: Server
    variables:
      tenant:
        default: demo
        enum:
          - demo
          - gsspower
          - anothercustomer
tags:
  - name: Charger Port
    description: >
      Charger Ports represent the individual connector points where vehicles can
      be connected for charging.


      Use these endpoints to:

      - List all available charger ports across your network

      - Get detailed information about specific ports

      - Update port settings and configurations

      - Reserve ports for future use

      - Start and stop charging sessions

      - Cancel reservations


      Each charger port belongs to a parent charger and can have different
      connector types (J1772, CCS, CHADEMO, etc.)

      and power capacities. Ports also maintain status information about current
      charging activities.
  - name: Charger
    description: >
      Chargers are the physical stations containing one or more charging ports.


      These endpoints allow you to:

      - List all chargers in your network with their current statuses

      - Get detailed information about specific chargers

      - View power, connectivity, and location information

      - See all ports associated with a charger

      - Create bulk chargers


      Chargers contain important metadata about locations, payment types, power
      capabilities, 

      and operating temperatures. A single charger typically houses multiple
      charging ports.
  - name: Report
    description: >
      The reporting API provides comprehensive data and metrics about your
      charging network.


      Use these endpoints to:

      - Get real-time status information for all chargers

      - Generate comprehensive charger reports

      - View detailed charging session history

      - Analyze fault data and error conditions

      - Track energy usage and transactions


      These endpoints support filtering by date ranges, chargers, and other
      parameters to help

      you generate specific reports for business intelligence, maintenance
      planning, and usage analytics.
  - name: User
    description: >
      The User API allows you to manage and retrieve information about system
      users.


      These endpoints enable you to:

      - List all users with access to your charging network

      - View user details including attached ID tags and accessible chargers

      - See authorization levels and access rights


      User management is essential for controlling access to chargers and
      tracking

      usage patterns across your charging infrastructure.
  - name: Location
    description: >
      Locations represent physical places where chargers are installed.


      Use these endpoints to:

      - Create multiple locations in a single operation

      - Manage location information including address, contact details, and
      coordinates

      - Associate chargers with specific locations


      Locations provide important context for chargers and help with geographic
      organization

      of your charging infrastructure.
security:
  - BearerAuth: []
paths:
  /charger-port:
    get:
      operationId: charger-port_list
      summary: List Charger Ports
      description: >
        Retrieves a list of all charger ports with their current status and
        connector information.


        This endpoint supports filtering by parameters like status and charger.


        ## Permissions


        Requires a valid API key with read permissions for charger ports.
      parameters:
        - name: charger__payment_type
          in: query
          description: Filter by payment type (Paid or Free)
          required: false
          schema:
            type: string
            enum:
              - Paid
              - Free
        - name: charger
          in: query
          description: Filter by specific charger UUID
          required: false
          schema:
            type: string
        - name: status__in
          in: query
          description: Filter by charger port status (comma-separated list)
          required: false
          schema:
            type: string
            enum:
              - DISABLED
              - AVAILABLE
              - STANDBY
              - CHARGING
              - OFFLINE
              - FAULTED
              - RESERVED
              - UNAVAILABLE
              - UNDEFINED
              - NOT_CHARGING
              - COMPLETE
              - ASLEEP
              - STARTING
              - STOPPING
              - WAITING_CHARGER
              - WAITING_VEHICLE
              - IN_PROGRESS
              - FAILED_START
              - FAILED_STOP
              - NO_SESSION
              - PREPARING
              - SUSPENDED_EV
              - SUSPENDED_EVSE
              - UNPLUGGED
              - UNPLUGGED_NOT_CHARGING
              - UNPLUGGED_CHARGING
              - PLUGGED_IN_NOT_CHARGING
              - PLUGGED_IN_SUSPENDED_EV
              - PLUGGED_IN_CHARGING
              - CHARGING_COMPLETE
              - CUSTOM_CHARGER
              - CUSTOM_VEHICLE
              - FINISHING
        - name: location__in
          in: query
          description: Filter by location (comma-separated list)
          required: false
          schema:
            type: string
        - name: ordering
          in: query
          description: Field to order results by (prefix with - for descending order)
          required: false
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
              - custom_id
              - '-custom_id'
              - status
              - '-status'
              - parking_lot
              - '-parking_lot'
              - temperature
              - '-temperature'
              - max_power
              - '-max_power'
              - current_kilowatt_hour
              - '-current_kilowatt_hour'
              - start_charging_at
              - '-start_charging_at'
              - end_charging_at
              - '-end_charging_at'
              - charger_point_id
              - '-charger_point_id'
              - location_name
              - '-location_name'
        - name: search
          in: query
          description: A search term.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ChargerPortList'
              example:
                count: 2
                next: null
                previous: null
                results:
                  - id: 123e4567-e89b-12d3-a456-426614174000
                    max_power: 22
                    charging_speed: 11
                    power: 11
                    connector_type: J1772
                    status:
                      key: AVAILABLE
                      value: Available
                    charger: 223e4567-e89b-12d3-a456-426614174003
      tags:
        - Charger Port
  /charger-port/{id}:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger Port.
        required: true
        schema:
          type: string
          format: uuid
    get:
      operationId: charger-port_read
      summary: Get Charger Port Details
      description: >-
        Gets detailed information about a specific charger port by ID, including
        connector specifications and active session details. Requires a valid
        API key.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargerPort'
      tags:
        - Charger Port
    patch:
      operationId: charger-port_partial_update
      summary: Update Charger Port
      description: >-
        Updates specific fields of a charger port, such as status or
        configuration settings. Requires a valid API key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargerPortUpdate'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargerPortUpdate'
      tags:
        - Charger Port
  /charger-port/{id}/cancel_reservation:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger Port.
        required: true
        schema:
          type: string
          format: uuid
    patch:
      operationId: charger-port_cancel_reservation
      summary: Cancel Reservation
      description: >-
        Cancels the reservation for charger port. The reservation_id must be
        provided.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - reservation_id
              properties:
                reservation_id:
                  type: integer
                  description: Reservation identifier.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
      tags:
        - Charger Port
  /charger-port/{id}/reserve_now:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger Port.
        required: true
        schema:
          type: string
          format: uuid
    patch:
      operationId: charger-port_reserve_now
      summary: Reserve Charger Port
      description: >-
        Reserves a charger port. The fields expiry_date_time, id_tag, and
        reservation_id must be included in the request body.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - expiry_date_time
                - id_tag
                - reservation_id
              properties:
                expiry_date_time:
                  type: string
                  format: date-time
                  description: Reservation expiry time in UTC format.
                id_tag:
                  type: string
                  description: Identification tag.
                parent_id_tag:
                  type: string
                  description: Parent Identification tag.
                  default: SYS00TEM
                reservation_id:
                  type: integer
                  description: Reservation ID.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
      tags:
        - Charger Port
  /charger-port/{id}/start:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger Port.
        required: true
        schema:
          type: string
          format: uuid
    patch:
      operationId: charger-port_start
      summary: Start Charging
      description: Start a charger port to begin charging.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
      tags:
        - Charger Port
  /charger-port/{id}/stop:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger Port.
        required: true
        schema:
          type: string
          format: uuid
    patch:
      operationId: charger-port_stop
      summary: Stop Charging
      description: Stop a charger port to end charging.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
      tags:
        - Charger Port
  /charger:
    get:
      operationId: charger_list
      summary: List Chargers
      description: >-
        Retrieves a list of all available chargers with their current status and
        locations. Requires a valid API key.
      parameters:
        - name: created_at
          in: query
          description: Filter by creation date
          required: false
          schema:
            type: string
        - name: is_active
          in: query
          description: Filter by active status
          required: false
          schema:
            type: string
        - name: location
          in: query
          description: Filter by location
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: Filter by charger status
          required: false
          schema:
            type: string
            enum:
              - DISABLED
              - AVAILABLE
              - STANDBY
              - CHARGING
              - OFFLINE
              - FAULTED
              - RESERVED
              - UNAVAILABLE
        - name: number_phases
          in: query
          description: Filter by number of phases
          required: false
          schema:
            type: string
            enum:
              - '1'
              - '3'
        - name: current_type
          in: query
          description: Filter by current type
          required: false
          schema:
            type: string
            enum:
              - AC
              - DC
              - NACS
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExternalAPIChargerList'
      tags:
        - Charger
  /charger/{id}:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger.
        required: true
        schema:
          type: string
          format: uuid
    get:
      operationId: charger_read
      summary: Get Charger Details
      description: >-
        Gets detailed information about a specific charger by ID, including
        technical specifications and current operational status. Requires a
        valid API key.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAPIChargerRetrieve'
      tags:
        - Charger
  /report/charger-status:
    get:
      operationId: report_charger-status_list
      summary: List Charger Statuses
      description: >-
        Retrieves the current operational status of all chargers with detailed
        port information. Includes counts of chargers in each status category.
      parameters:
        - name: charger
          in: query
          description: Filter by charger UUID
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExternalAPIReportChargerStatus'
      tags:
        - Report
  /report/charger-status/{id}:
    parameters:
      - name: id
        in: path
        description: A UUID string identifying this Charger.
        required: true
        schema:
          type: string
          format: uuid
    get:
      operationId: report_charger-status_read
      summary: Get Charger Status
      description: >-
        Gets the current operational status of a specific charger by ID,
        including charger health and detailed port information.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAPIReportChargerStatus'
      tags:
        - Report
  /report/charger:
    get:
      operationId: report_charger_list
      summary: List Charger Reports
      description: >-
        Generates a comprehensive report of all chargers with detailed
        information including location, owner, commission date, and total power
        usage. Supports pagination with a default limit of 100 records.
      parameters:
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReportCharger'
      tags:
        - Report
  /report/charging-session:
    get:
      operationId: report_charging-session_list
      summary: List Charging Sessions
      description: >-
        Provides a detailed report of all completed charging sessions including
        timestamps, energy delivered, and associated costs. Supports filtering
        by date ranges and pagination.
      parameters:
        - name: plug_in_start_datetime__gte
          in: query
          description: Filter by plug-in start time (minimum)
          required: false
          schema:
            type: string
        - name: plug_in_start_datetime__lte
          in: query
          description: Filter by plug-in start time (maximum)
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReportChargingSession'
      tags:
        - Report
  /report/faults:
    get:
      operationId: report_faults_list
      summary: List Faults
      description: >-
        Lists all system fault events with detailed error information,
        categorized by charger. Supports filtering by charger ID and date range,
        with pagination.
      parameters:
        - name: created_at__range
          in: query
          description: Filter by creation date range
          required: false
          schema:
            type: string
        - name: created_at__gte
          in: query
          description: Filter by creation date (minimum)
          required: false
          schema:
            type: string
        - name: created_at__lte
          in: query
          description: Filter by creation date (maximum)
          required: false
          schema:
            type: string
        - name: charger
          in: query
          description: Filter by charger UUID
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReportFaults'
      tags:
        - Report
  /report/transaction:
    get:
      operationId: report_transaction_list
      summary: List Transactions
      description: >-
        Generates a transaction report with detailed charging session
        information including timestamps, energy usage, and charging duration.
        Supports filtering by charger, date range, and timestamps.
      parameters:
        - name: start_datetime__gte
          in: query
          description: Filter by start date (minimum)
          required: false
          schema:
            type: string
        - name: start_datetime__lte
          in: query
          description: Filter by start date (maximum)
          required: false
          schema:
            type: string
        - name: stop_datetime__gte
          in: query
          description: Filter by stop date (minimum)
          required: false
          schema:
            type: string
        - name: stop_datetime__lte
          in: query
          description: Filter by stop date (maximum)
          required: false
          schema:
            type: string
        - name: charger__in
          in: query
          description: Filter by charger UUID (comma-separated list)
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReportTransaction'
      tags:
        - Report
  /user:
    get:
      operationId: user_list
      summary: List Users
      description: >-
        Retrieves a list of users with their attached ID tags and chargers. Only
        accessible with a valid API key.
      parameters:
        - name: limit
          in: query
          description: Number of results to return per page
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - results
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExternalAPIUser'
      tags:
        - User
  /user/{uuid}:
    parameters:
      - name: uuid
        in: path
        description: UUID of the user
        required: true
        schema:
          type: string
          format: uuid
    get:
      operationId: user_read
      summary: Get User Details
      description: >-
        Gets detailed information about a specific user by UUID, including
        personal information, attached ID tags and assigned chargers. Requires a
        valid API key.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAPIUser'
      tags:
        - User
  /chargers:
    post:
      operationId: chargers_create
      summary: Create Multiple Chargers
      description: >-
        Creates multiple chargers in a single transaction. All chargers must
        pass validation for the operation to succeed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - chargers
              properties:
                chargers:
                  type: array
                  items:
                    $ref: '#/components/schemas/ChargerCreate'
            example:
              chargers:
                - charger_point_id: CP001
                  manufacturer: epic_ocpp
                  model: epic_home
                  custom_id: Charger 1
                  location: 550e8400-e29b-41d4-a716-446655440000
                  ports:
                    - connector_id: 1
                      connector_type: J1772
                      max_current: 32
                      current: 32
                  connectivity: WIFI
                  current_type: AC
                  payment_type: FREE
                  number_phases: 3
                  id_tag_required: false
                  rfid_required: false
                - charger_point_id: CP002
                  manufacturer: epic_ocpp
                  model: epic_pro
                  custom_id: Charger 2
                  location: 550e8400-e29b-41d4-a716-446655440000
                  ports:
                    - connector_id: 1
                      connector_type: TYPE_2
                      max_power: 16
                      power: 16
                    - connector_id: 2
                      connector_type: J1772
                      max_power: 125
                      power: 125
                  connectivity: ETHERNET
                  current_type: DC
                  payment_type: PAID
                  number_phases: 3
                  id_tag_required: true
                  rfid_required: false
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  chargers:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExternalAPIChargerRetrieve'
      tags:
        - Charger
  /locations:
    post:
      operationId: locations_create
      summary: Create Multiple Locations
      description: >-
        Creates multiple locations in a single transaction. All locations must
        pass validation for the operation to succeed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - locations
              properties:
                locations:
                  type: array
                  items:
                    $ref: '#/components/schemas/LocationCreate'
            example:
              locations:
                - custom_id: Location 1
                  formatted_address: 123 Main Street, New York, NY 10001, USA
                  company_name: EV Charging Corp
                  contact_name: John Smith
                  contact_email: john.smith@example.com
                  places_api_data:
                    place_id: ChIJiZ6E4gyuEmsRCHbfpbXvAAU
                    formatted_address: 123 Main Street, New York, NY 10001, USA
                    geometry:
                      location:
                        lat: 40.7128
                        lng: -74.006
                    address_components:
                      - long_name: '123'
                        short_name: '123'
                        types:
                          - street_number
                      - long_name: Main Street
                        short_name: Main St
                        types:
                          - route
                      - long_name: New York
                        short_name: NY
                        types:
                          - locality
                          - political
                    utc_offset: -240
                - custom_id: Location 2
                  formatted_address: 456 Oak Avenue, Los Angeles, CA 90001, USA
                  company_name: Green Energy Solutions
                  contact_name: Jane Doe
                  contact_email: jane.doe@example.com
                  places_api_data:
                    place_id: ChIJK3cjPxWsEmsRAJxpbXvRAAM
                    formatted_address: 456 Oak Avenue, Los Angeles, CA 90001, USA
                    geometry:
                      location:
                        lat: 34.0522
                        lng: -118.2437
                    address_components:
                      - long_name: '456'
                        short_name: '456'
                        types:
                          - street_number
                      - long_name: Oak Avenue
                        short_name: Oak Ave
                        types:
                          - route
                      - long_name: Los Angeles
                        short_name: LA
                        types:
                          - locality
                          - political
                    utc_offset: -420
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  locations:
                    type: array
                    items:
                      $ref: '#/components/schemas/Location'
      tags:
        - Location
  /location-discounts:
    post:
      operationId: location-discounts_create
      summary: Location discounts create
      description: Create multiple location discounts in a single transaction.
      tags:
        - Location-discounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkLocationDiscount'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkLocationDiscount'
  /location-discounts/bulk-delete:
    delete:
      operationId: location-discounts_bulk_delete
      summary: Location discounts bulk delete
      description: Update multiple location discounts in a single transaction.
      tags:
        - Location-discounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkLocationDiscountDelete'
      responses:
        '204':
          description: No Content
  /location-discounts/bulk-update:
    patch:
      operationId: location-discounts_bulk_update
      summary: Location discounts bulk update
      description: Update multiple location discounts in a single transaction.
      tags:
        - Location-discounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateLocationDiscount'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateLocationDiscount'
  /location-discounts/get-full:
    get:
      operationId: location-discounts_get_full
      summary: Location discounts get full
      description: |-
        External API for bulk location discount operations.
            Provides functionality to create multiple locations discounts in a single request.
            Requires API key authentication for all requests.
      tags:
        - Location-discounts
      parameters:
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkLocationDiscount'
  /users:
    post:
      operationId: users_create
      summary: Users create
      description: Create multiple users in a single transaction.
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UserCreate'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserBulkCreationResponse'
components:
  securitySchemes:
    BearerAuth:
      type: apiKey
      name: Token-Authorization
      in: header
      description: API key must be provided in the Token-Authorization header
  schemas:
    ParkingLotLookup:
      type: object
      required:
        - value
      properties:
        id:
          type: integer
          readOnly: true
          description: Unique identifier for the parking lot
        value:
          type: string
          minLength: 1
          description: Name or identifier of the parking lot
    ChargerPortList:
      type: object
      required:
        - max_power
        - power
        - charger
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the charger port
        max_power:
          type: number
          description: Maximum power output in kW
        charging_speed:
          type: number
          readOnly: true
          description: Current charging speed
        custom_id:
          type: string
          readOnly: true
          description: Custom identifier for the port
        power:
          type: number
          nullable: true
          description: Current power output
        manufacturer:
          type: object
          readOnly: true
          properties:
            custom_id:
              type: string
              description: Manufacturer custom ID
            value:
              type: string
              description: Manufacturer name
        model:
          type: object
          readOnly: true
          properties:
            custom_id:
              type: string
              description: Model custom ID
            value:
              type: string
              description: Model name
            port_count:
              type: integer
              description: Number of ports on this model
        status:
          type: object
          readOnly: true
          properties:
            key:
              type: string
              description: Status code
            value:
              type: string
              description: Human-readable status
        parking_lot:
          $ref: '#/components/schemas/ParkingLotLookup'
        connector_type:
          type: string
          enum:
            - J1772
            - CCS
            - CHADEMO
            - NACS
            - SHUKO
            - TYPE_2
          description: Type of connector
        current_ampere:
          type: number
          description: Current in amperes
        current_kilowatt_hour:
          type: number
          description: Current in kilowatt-hours
        start_charging_at:
          type: string
          format: date-time
          nullable: true
          description: When charging started
        end_charging_at:
          type: string
          format: date-time
          nullable: true
          description: When charging ended
        charger:
          type: string
          format: uuid
          nullable: true
          description: Associated charger UUID
    ChargerPort:
      type: object
      required:
        - max_power
        - power
        - charger
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the charger port
        max_power:
          type: number
          description: Maximum power output in kW
        charging_speed:
          type: number
          readOnly: true
          description: Current charging speed
        custom_id:
          type: string
          readOnly: true
          description: Custom identifier for the port
        power:
          type: number
          nullable: true
          description: Current power output
        manufacturer:
          type: object
          readOnly: true
          properties:
            custom_id:
              type: string
            value:
              type: string
        model:
          type: object
          readOnly: true
          properties:
            custom_id:
              type: string
            value:
              type: string
            port_count:
              type: integer
        status:
          type: object
          readOnly: true
          properties:
            key:
              type: string
            value:
              type: string
        parking_lot:
          $ref: '#/components/schemas/ParkingLotLookup'
        connector_type:
          type: string
          enum:
            - J1772
            - CCS
            - CHADEMO
            - NACS
            - SHUKO
            - TYPE_2
        charger:
          type: string
          format: uuid
          nullable: true
          description: Associated charger UUID
    ChargerPortUpdate:
      type: object
      required:
        - charging_speed
        - max_power
      properties:
        charging_speed:
          type: number
          description: Charging speed to set
        custom_id:
          type: string
          maxLength: 255
          nullable: true
          description: Custom identifier for the port
        max_power:
          type: number
          description: Maximum power output
        is_deleted:
          type: boolean
          description: Whether the port is deleted
    ExternalAPIChargerChargerPort:
      type: object
      required:
        - max_power
        - charge_current_kilowatt_hour
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the port
        connector_id:
          type: integer
          nullable: true
          description: Connector ID for OCPP
        status:
          type: object
          readOnly: true
          properties:
            key:
              type: string
            value:
              type: string
        max_power:
          type: number
          description: Maximum power output
        charge_current_kilowatt_hour:
          type: number
          nullable: true
          description: Current charge rate in kWh
        charging_start_at:
          type: string
          format: date-time
          description: When charging started
        connected_user_email:
          description: Connected user email
          type: string
          readOnly: true
    ExternalAPIChargerList:
      type: object
      required:
        - location_name
        - customer_qr_code
        - ports
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the charger
        custom_id:
          type: string
          maxLength: 255
          nullable: true
          description: Custom identifier for the charger
        charger_point_id:
          type: string
          maxLength: 255
          description: Charger point identifier
        status:
          type: object
          readOnly: true
          properties:
            key:
              type: string
            value:
              type: string
        location_name:
          type: string
          minLength: 1
          nullable: true
          description: Name of the location where charger is installed
        temperature:
          type: number
          description: Current temperature of the charger
        payment_type:
          type: string
          enum:
            - Paid
            - Free
          description: Whether charging is paid or free
        id_tag_required:
          type: boolean
          description: Whether ID tag is required to use this charger
        customer_qr_code:
          type: string
          minLength: 1
          nullable: true
          description: QR code for customer access
        ports:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAPIChargerChargerPort'
          description: List of ports on this charger
        charger_group:
          type: string
          format: uuid
          nullable: true
          description: Group this charger belongs to
    ExternalAPIChargerChargerPortRetrieve:
      type: object
      required:
        - max_power
        - charging_speed
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the port
        connector_id:
          type: integer
          nullable: true
          description: Connector ID for OCPP
        max_power:
          type: number
          description: Maximum power output
        power:
          type: number
          description: Current power output
        max_current:
          type: string
          readOnly: true
          description: Maximum current
        current:
          type: string
          readOnly: true
          description: Current output
        charging_speed:
          type: number
          description: Current charging speed
        connector_type:
          type: object
          readOnly: true
          properties:
            key:
              type: string
            value:
              type: string
          description: Type of connector
        charging_start_at:
          type: string
          format: date-time
          description: When charging started
        connected_user_email:
          description: Connected user email
          type: string
          readOnly: true
    ExternalAPIChargerRetrieve:
      type: object
      required:
        - ports
        - manufacturer
        - model
        - rfid_required
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the charger
        custom_id:
          type: string
          maxLength: 255
          nullable: true
          description: Custom identifier for the charger
        charger_point_id:
          type: string
          maxLength: 255
          description: Charger point identifier
        status:
          type: object
          readOnly: true
          properties:
            key:
              type: string
            value:
              type: string
          description: Current status of the charger
        payment_type:
          type: string
          enum:
            - PAID
            - FREE
          description: Whether charging is paid or free
        customer_qr_code:
          type: string
          minLength: 1
          nullable: true
          description: QR code for customer access
        ports:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAPIChargerChargerPortRetrieve'
          description: List of ports on this charger
        manufacturer:
          type: string
          description: Manufacturer information
        model:
          type: string
          readOnly: true
          description: Model information
        location_id:
          type: string
          format: uuid
          nullable: true
          description: Location identifier
        rfid_required:
          type: boolean
          nullable: true
          description: Whether RFID is required to use this charger
        number_phases:
          type: integer
          enum:
            - 1
            - 3
          description: Number of electrical phases
    ExternalAPIReportChargerPort:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the port
        connector_id:
          type: integer
          nullable: true
          description: Connector ID for OCPP
        status:
          type: string
          enum:
            - DISABLED
            - AVAILABLE
            - STANDBY
            - CHARGING
            - OFFLINE
            - FAULTED
            - RESERVED
            - UNAVAILABLE
            - UNDEFINED
            - NOT_CHARGING
            - COMPLETE
            - ASLEEP
            - STARTING
            - STOPPING
            - WAITING_CHARGER
            - WAITING_VEHICLE
            - IN_PROGRESS
            - FAILED_START
            - FAILED_STOP
            - NO_SESSION
            - PREPARING
            - SUSPENDED_EV
            - SUSPENDED_EVSE
            - UNPLUGGED
            - UNPLUGGED_NOT_CHARGING
            - UNPLUGGED_CHARGING
            - PLUGGED_IN_NOT_CHARGING
            - PLUGGED_IN_SUSPENDED_EV
            - PLUGGED_IN_CHARGING
            - CHARGING_COMPLETE
            - CUSTOM_CHARGER
            - CUSTOM_VEHICLE
            - FINISHING
          description: Current status of the port
    ExternalAPIReportChargerStatus:
      type: object
      required:
        - location
        - meter_type
        - ports
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the charger
        charger_health:
          type: string
          readOnly: true
          description: Health status of the charger
        ocpp_protocol_version:
          type: string
          readOnly: true
          description: Version of the OCPP protocol
        operating_voltages:
          type: number
          readOnly: true
          description: Operating voltage
        location:
          type: string
          minLength: 1
          nullable: true
          description: Location name
        meter_type:
          type: string
          minLength: 1
          description: Type of meter
        status:
          type: string
          enum:
            - DISABLED
            - AVAILABLE
            - STANDBY
            - CHARGING
            - OFFLINE
            - FAULTED
            - RESERVED
            - UNAVAILABLE
            - UNDEFINED
            - NOT_CHARGING
            - COMPLETE
            - ASLEEP
            - STARTING
            - STOPPING
            - WAITING_CHARGER
            - WAITING_VEHICLE
            - IN_PROGRESS
            - FAILED_START
            - FAILED_STOP
            - NO_SESSION
            - PREPARING
            - SUSPENDED_EV
            - SUSPENDED_EVSE
            - UNPLUGGED
            - UNPLUGGED_NOT_CHARGING
            - UNPLUGGED_CHARGING
            - PLUGGED_IN_NOT_CHARGING
            - PLUGGED_IN_SUSPENDED_EV
            - PLUGGED_IN_CHARGING
            - CHARGING_COMPLETE
            - CUSTOM_CHARGER
            - CUSTOM_VEHICLE
            - FINISHING
          description: Current status of the charger
        ports:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAPIReportChargerPort'
          description: List of ports on this charger
    ReportCharger:
      type: object
      required:
        - tenant
        - charger_id
        - charger_name
        - site_name
        - commission_date
        - report_date
        - driver_emails
      properties:
        tenant:
          type: string
          minLength: 1
          description: Tenant name
        charger_id:
          type: string
          minLength: 1
          description: Charger identifier
        charger_name:
          type: string
          minLength: 1
          description: Name of the charger
        site_name:
          type: string
          minLength: 1
          description: Name of the site
        address:
          type: string
          readOnly: true
          description: Physical address
        city:
          type: string
          readOnly: true
          description: City
        state:
          type: string
          readOnly: true
          description: State or province
        zip:
          type: string
          readOnly: true
          description: ZIP or postal code
        country:
          type: string
          readOnly: true
          description: Country
        owner:
          type: string
          readOnly: true
          description: Owner of the charger
        utility:
          type: string
          readOnly: true
          description: Utility provider
        commission_date:
          type: string
          format: date-time
          description: Date when the charger was commissioned
        operating_status:
          type: string
          readOnly: true
          description: Current operating status
        total_power:
          type: number
          readOnly: true
          description: Total power consumption
        report_date:
          type: string
          format: date-time
          description: Date of the report
        driver_emails:
          type: array
          items:
            type: string
            format: email
            minLength: 1
          description: Email addresses of drivers
    ReportChargingSession:
      type: object
      required:
        - tenant
        - session_id
        - plug_in_start_datetime
        - plug_in_end_datetime
        - charging_start_datetime
        - charging_end_datetime
        - driver_emails
      properties:
        tenant:
          type: string
          minLength: 1
          description: Tenant name
        session_id:
          type: string
          minLength: 1
          description: Unique identifier for the session
        charger_id:
          type: string
          readOnly: true
          description: Charger identifier
        port_id:
          type: string
          readOnly: true
          description: Port identifier
        charger_manufacturer:
          type: string
          readOnly: true
          description: Manufacturer of the charger
        charger_model:
          type: string
          readOnly: true
          description: Model of the charger
        charger_name:
          type: string
          readOnly: true
          description: Name of the charger
        plug_in_start_datetime:
          type: string
          format: date-time
          description: When vehicle was plugged in
        plug_in_end_datetime:
          type: string
          format: date-time
          description: When vehicle was unplugged
        charging_start_datetime:
          type: string
          format: date-time
          description: When charging started
        charging_end_datetime:
          type: string
          format: date-time
          description: When charging ended
        charging_time:
          type: integer
          readOnly: true
          description: Duration of charging in minutes
        energy_delivered_to_electric_vehicle_kwh:
          type: number
          readOnly: true
          description: Energy delivered in kWh
        cost_per_session_usd:
          type: number
          readOnly: true
          description: Cost of the session in USD
        driver_emails:
          type: array
          items:
            type: string
            format: email
            minLength: 1
          description: Email addresses of drivers
    ReportFaults:
      type: object
      properties:
        charger:
          type: string
          readOnly: true
          description: Charger identifier
        charger_id:
          type: string
          readOnly: true
          description: Charger ID
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: When the fault was created
        error_code:
          type: string
          readOnly: true
          description: Error code
        error_info:
          type: string
          readOnly: true
          description: Detailed error information
        status:
          type: string
          readOnly: true
          description: Current status
    ReportTransaction:
      type: object
      required:
        - charger
        - charger_name
        - charger_id
        - plug_in_datetime
        - start_datetime
        - stop_datetime
        - timezone
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the transaction
        charger:
          type: string
          format: uuid
          description: Charger UUID
        charger_name:
          type: string
          minLength: 1
          description: Name of the charger
        charger_id:
          type: string
          minLength: 1
          description: Charger identifier
        plug_in_datetime:
          type: string
          format: date-time
          description: When vehicle was plugged in
        start_datetime:
          type: string
          format: date-time
          description: When charging started
        stop_datetime:
          type: string
          format: date-time
          description: When charging stopped
        timezone:
          type: string
          minLength: 1
          description: Timezone
        total_energy_imported:
          type: number
          readOnly: true
          description: Total energy imported in kWh
        power_units:
          type: string
          readOnly: true
          description: Units of power measurement
    ExternalAPIUser:
      type: object
      required:
        - email
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the user
        email:
          type: string
          format: email
          minLength: 1
          description: Email address
        first_name:
          type: string
          readOnly: true
          minLength: 1
          description: First name
        last_name:
          type: string
          readOnly: true
          minLength: 1
          description: Last name
        attached_id_tags:
          type: array
          items:
            type: string
          readOnly: true
          description: RFID tags attached to this user
        attached_chargers:
          type: array
          items:
            type: string
          readOnly: true
          description: Chargers accessible to this user
    ChargerCreate:
      type: object
      required:
        - charger_point_id
        - manufacturer
        - model
        - ports
        - rfid_required
      properties:
        charger_point_id:
          type: string
          description: Unique identifier for the charger point
        manufacturer:
          type: string
          description: Manufacturer key (e.g., 'epic_ocpp', 'generic_ocpp')
        model:
          type: string
          description: Model key
        custom_id:
          type: string
          description: Custom identifier for the charger
        sim_card:
          type: string
          description: SIM card identifier
        location:
          type: string
          format: uuid
          description: UUID of the location where the charger is installed
        ports:
          type: array
          items:
            type: object
            required:
              - connector_id
              - connector_type
            properties:
              connector_id:
                type: integer
                description: Connector identifier (usually 1, 2, 3, etc.)
              connector_type:
                type: string
                enum:
                  - J1772
                  - CCS
                  - CHADEMO
                  - NACS
                  - SHUKO
                  - TYPE_2
                  - CCS_COMBO_2
                description: Type of connector
              max_current:
                type: number
                description: Maximum current in amperes (required for AC chargers)
              current:
                type: number
                description: Default current in amperes (required for AC chargers)
              max_power:
                type: number
                description: Maximum power in kW (required for DC chargers)
              power:
                type: number
                description: Default power in kW (required for DC chargers)
        connectivity:
          type: string
          enum:
            - WIFI
            - ETHERNET
            - CELLULAR
            - NONE
          description: Connectivity type
        current_type:
          type: string
          enum:
            - AC
            - DC
            - NACS
          description: Current type
        payment_type:
          type: string
          enum:
            - PAID
            - FREE
          description: Whether charging is paid or free
        number_phases:
          type: integer
          enum:
            - 1
            - 3
          description: Number of electrical phases
        id_tag_required:
          type: boolean
          description: Whether ID tag is required to use this charger
        phase_connection_type:
          type: string
          enum:
            - DELTA
            - WYE
          description: Phase connection type
        rfid_required:
          type: boolean
          description: Whether RFID is required to use this charger
    LocationCreate:
      type: object
      required:
        - custom_id
        - formatted_address
        - places_api_data
      properties:
        custom_id:
          type: string
          description: Custom identifier for the location
        formatted_address:
          type: string
          description: Formatted address of the location
        company_name:
          type: string
          description: Name of the company
        website:
          type: string
          description: Company website
        contact_name:
          type: string
          description: Contact person name
        contact_phone:
          type: string
          description: Contact phone number
        contact_email:
          type: string
          format: email
          description: Contact email address
        location:
          type: array
          items:
            type: number
          description: Geographic coordinates [latitude, longitude]
        places_api_data:
          type: object
          required:
            - place_id
            - formatted_address
            - geometry
          properties:
            place_id:
              type: string
              description: Google Places API place ID
            formatted_address:
              type: string
              description: Formatted address from Places API
            geometry:
              type: object
              required:
                - location
              properties:
                location:
                  type: object
                  required:
                    - lat
                    - lng
                  properties:
                    lat:
                      type: number
                      description: Latitude
                    lng:
                      type: number
                      description: Longitude
            address_components:
              type: array
              items:
                type: object
                properties:
                  long_name:
                    type: string
                  short_name:
                    type: string
                  types:
                    type: array
                    items:
                      type: string
            utc_offset:
              type: integer
              description: UTC offset in minutes
        connectivity_write:
          type: array
          items:
            type: object
            required:
              - sim_card
              - router_number
              - fleet
            properties:
              sim_card:
                type: string
                description: SIM card identifier
              router_number:
                type: string
                description: Router number
              fleet:
                type: string
                description: Fleet name
    Location:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the location
        custom_id:
          type: string
          description: Custom identifier for the location
        formatted_address:
          type: string
          description: Formatted address
        location:
          type: array
          items:
            type: number
          description: Geographic coordinates [latitude, longitude]
        company_name:
          type: string
          description: Company name
        website:
          type: string
          description: Company website
        contact_name:
          type: string
          description: Contact person name
        contact_phone:
          type: string
          description: Contact phone number
        contact_email:
          type: string
          format: email
          description: Contact email address
        share_mode:
          type: string
          readOnly: true
          description: Sharing mode
        share_info:
          type: string
          readOnly: true
          description: Sharing information
        available_count:
          type: integer
          readOnly: true
          description: Count of available chargers
        standby_count:
          type: integer
          readOnly: true
          description: Count of standby chargers
        charging_count:
          type: integer
          readOnly: true
          description: Count of charging chargers
        offline_count:
          type: integer
          readOnly: true
          description: Count of offline chargers
        faulted_count:
          type: integer
          readOnly: true
          description: Count of faulted chargers
        out_of_order_count:
          type: integer
          readOnly: true
          description: Count of out-of-order chargers
    BulkLocationDiscountDelete:
      required:
        - location_discounts
      type: object
      properties:
        location_discounts:
          type: array
          items:
            $ref: '#/components/schemas/ChildLocationDiscountDelete'
    BulkLocationDiscount:
      required:
        - location_discounts
      type: object
      properties:
        location_discounts:
          type: array
          items:
            $ref: '#/components/schemas/LocationDiscount'
    BulkUpdateLocationDiscount:
      required:
        - location_discounts
      type: object
      properties:
        location_discounts:
          type: array
          items:
            $ref: '#/components/schemas/LocationDiscountUpdate'
    UserBulkCreationResponse:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/UserCreate'
          readOnly: true
    UserCreate:
      required:
        - email
        - driver
        - role
        - id_tags
      type: object
      properties:
        uuid:
          title: UUID
          type: string
          format: uuid
          readOnly: true
        first_name:
          title: First name
          type: string
          maxLength: 100
          x-nullable: true
        last_name:
          title: Last name
          type: string
          maxLength: 100
          x-nullable: true
        avatar:
          title: User Avatar
          type: string
          readOnly: true
          x-nullable: true
          format: uri
        email:
          title: Email
          type: string
          format: email
          maxLength: 255
          minLength: 1
        is_email_real:
          title: Is email real
          type: boolean
        phone_number:
          title: Phone number
          type: string
          maxLength: 128
          x-nullable: true
        location:
          title: Location
          type: string
          x-nullable: true
        location_name:
          title: Location name
          type: string
          maxLength: 255
        mailing_address:
          title: Mailing address
          type: string
          maxLength: 255
        status:
          title: Status
          type: string
          enum:
            - add
            - inv
            - act
            - deact
        driver:
          $ref: '#/components/schemas/Driver'
        role:
          title: Role
          type: string
          enum:
            - partner
            - tenant_owner
            - admin
            - driver
        mobile_chargers:
          type: array
          items:
            type: string
            format: uuid
          uniqueItems: true
        chargers:
          type: array
          items:
            type: string
            format: uuid
          uniqueItems: true
        vehicles:
          type: array
          items:
            type: integer
          uniqueItems: true
        id_tags:
          type: array
          items:
            type: string
            format: uuid
          uniqueItems: true
        notification_settings:
          title: Notification Settings
          type: string
          enum:
            - NO_NOTIFICATIONS
            - CHARGER_WARNINGS_AND_ALERTS
        is_two_factor_authentication:
          title: Is two factor authentication
          type: boolean
          readOnly: true
        should_send_invitation_email:
          title: Should send invitation email
          type: boolean
        has_payout_access:
          title: Has payout access
          type: boolean
          x-nullable: true
        can_manage_payout_access:
          title: Can manage payout access
          type: string
          readOnly: true
    Driver:
      type: object
      properties:
        driver_license:
          title: Driver License
          type: string
        is_allow_id_tag_activation:
          title: Is allow ID Tag activation
          type: boolean
    ChildLocationDiscountDelete:
      required:
        - id
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
    LocationDiscountUpdate:
      required:
        - id
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
        location:
          title: Location
          type: string
          format: uuid
          readOnly: true
        discount_percent:
          title: Discount Percent
          type: number
          maximum: 100
          minimum: 0
        domain_email:
          title: Domain email
          type: string
          minLength: 1
    LocationDiscount:
      required:
        - location
        - domain_email
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
          readOnly: true
        location:
          title: Location
          type: string
          format: uuid
        discount_percent:
          title: Discount Percent
          type: number
          maximum: 100
          minimum: 0
        domain_email:
          title: Domain email
          type: string
          maxLength: 320
          minLength: 1
