openapi: 3.0.1
info:
  title: OCPI OpenAPI definition
  version: v0
  description: >-
    This is a generated connector for [OCPI v2.2](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf) OpenAPI specification.

    The Open Charge Point Interface (OCPI) enables a scalable, automated EV roaming setup between Charge Point Operators 
    and e-Mobility Service Providers. It supports authorization, charge point information exchange (including live status
    updates and transaction events), charge detail record exchange, remote charge point commands and the exchange of 
    smart-charging related information between parties.
  x-ballerina-init-description: >-
    The connector initialization doesn't require setting the API credentials.

    Follow the section [OCPI v2.2 - 4. Transport and format section](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#transport_and_format_pagination) and obtain tokens according to your Open Charge Point network. Some operations may require setting the token as a parameter.
  x-ballerina-display:
    label: OCPI
    iconPath: "icon.png"
servers:
  - url: http://localhost:8080
    description: Generated server url for OCN
paths:
  /admin/connection-status/{countryCode}/{partyID}:
    get:
      summary: Gets connection status
      tags:
        - admin-controller
      operationId: getConnectionStatus
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                type: string
  /admin/generate-registration-token:
    post:
      summary: Generates registration tokens
      tags:
        - admin-controller
      operationId: generateRegistrationToken
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: An array of Basic roles
        content:
          application/json:
            schema:
              type: array
              description: Array of Roles
              items:
                $ref: "#/components/schemas/BasicRole"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                type: object
  /health:
    get:
      summary: Gets health of the OCN
      tags:
        - health-controller
      operationId: getHealth
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                type: string
  /ocn/message:
    post:
      summary: Communicates between CPO and eMSP
      tags:
        - message-controller
      operationId: postMessage
      parameters:
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
      requestBody:
        description: Request body
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseObject"
  /ocn/registry/node-info:
    get:
      summary: Gets registry information
      tags:
        - registry-controller
      operationId: getMyNodeInfo
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                type: object
                additionalProperties:
                  type: string
  /ocn/registry/node/{countryCode}/{partyID}:
    get:
      summary: Gets registry details of Providers and Operators by country code and party ID
      tags:
        - registry-controller
      operationId: getNodeOf
      parameters:
        - name: countryCode
          description: Country code
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                type: object
  /ocpi/2.2:
    get:
      summary: Fetches information about the supported endpoints for this version
      tags:
        - versions-controller
      operationId: getVersionsDetail
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseVersionDetail"
  /ocpi/versions:
    get:
      summary: Fetches information about the supported versions.
      tags:
        - versions-controller
      operationId: getVersions
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseListVersion"
  /ocpi/sender/2.2/cdrs:
    get:
      summary: >-
        Fetches charge detail records last updated (which in the current version of OCPI can only be the creation Date/Time) between
        the {date_from} and {date_to} (paginated).
      tags:
        - cdrs-controller
      operationId: getCdrsFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: date_from
          description: Only return CDRs that have last_updated after or equal to this Date/Time (inclusive)
          in: query
          required: false
          schema:
            type: string
        - name: date_to
          description: Only return CDRs that have last_updated up to this Date/Time, but not including (exclusive)
          in: query
          required: false
          schema:
            type: string
        - name: offset
          in: query
          description: The offset of the first object returned. Default is 0
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          description: Maximum number of objects to GET
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCDRList"
  /ocpi/sender/2.2/cdrs/page/{uid}:
    get:
      summary: Gets CDR detail by ID from sender
      tags:
        - cdrs-controller
      operationId: getCdrPageFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: uid
          description: UID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCDRList"
  /ocpi/receiver/2.2/cdrs/{cdrID}:
    get:
      summary: Gets CDRs by ID from the receiver
      tags:
        - cdrs-controller
      operationId: getClientOwnedCdr
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: cdrID
          description: Charge Detail Record ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCDR"
  /ocpi/receiver/2.2/cdrs:
    post:
      summary: Creates a new CDR
      tags:
        - cdrs-controller
      operationId: postClientOwnedCdr
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: CDR Details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CDR"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/2.2/sender/chargingprofiles/result/{uid}:
    post:
      summary: Creates new charging profile
      tags:
        - charging-profiles-controller
      operationId: postGenericChargingProfileResult
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: uid
          description: UID
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Charging profile details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenericChargingProfileResult"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/2.2/sender/chargingprofiles/{sessionId}:
    put:
      summary: Sends or Updates a  ChargingProfile by the Sender
      tags:
        - charging-profiles-controller
      operationId: putSenderChargingProfile
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: sessionId
          description: Session ID
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Active charging profile details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ActiveChargingProfile"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/2.2/receiver/chargingprofiles/{sessionId}:
    get:
      summary: Gets the active ActiveChargingProfile by receiver
      tags:
        - charging-profiles-controller
      operationId: getReceiverChargingProfile
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: sessionId
          description: Session ID
          in: path
          required: true
          schema:
            type: string
        - name: duration
          description: Charging duration
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: response_url
          description: URL that the ActiveChargingProfileResult POST should be send to. This URL might contain an unique ID to be able to distinguish between GETActiveChargingProfile requests
          in: query
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseChargingProfileResponse"
    put:
      summary: Creates/updates a ChargingProfile for a specific charging session
      tags:
        - charging-profiles-controller
      operationId: putReceiverChargingProfile
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: sessionId
          description: Session ID
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Charging profile details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetChargingProfile"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseChargingProfileResponse"
    delete:
      summary: Cancels an existing ChargingProfile for a specific charging session
      tags:
        - charging-profiles-controller
      operationId: deleteReceiverChargingProfile
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: sessionId
          description: The unique id that identifies the session in the CPO platform
          in: path
          required: true
          schema:
            type: string
        - name: response_url
          description: URL that the ClearProfileResult POST should be send to. This URL might contain an unique ID to be able to distinguish between DELETE ChargingProfile requests.
          in: query
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseChargingProfileResponse"
  /ocpi/sender/2.2/commands/{command}/{uid}:
    post:
      summary: Receive the asynchronous response from the Charge Point.
      tags:
        - commands-controller
      operationId: postAsyncResponse
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: command
          description: Command of the request
          in: path
          required: true
          schema:
            type: string
            enum:
              - CANCEL_RESERVATION
              - RESERVE_NOW
              - START_SESSION
              - STOP_SESSION
              - UNLOCK_CONNECTOR
        - name: uid
          description: Unique id as a URL segment
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: command details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CommandResult"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/commands/CANCEL_RESERVATION:
    post:
      summary: Cancel an existing reservation
      tags:
        - commands-controller
      operationId: postCancelReservation
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Reservation detail for cancellation
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CancelReservation"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCommandResponse"
  /ocpi/receiver/2.2/commands/RESERVE_NOW:
    post:
      summary: Reserves a (specific) connector of a Charge Point for a given Token
      tags:
        - commands-controller
      operationId: postReserveNow
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Reservation details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReserveNow"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCommandResponse"
  /ocpi/receiver/2.2/commands/START_SESSION:
    post:
      summary: Starts a session.
      tags:
        - commands-controller
      operationId: postStartSession
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Session details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StartSession"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCommandResponse"
  /ocpi/receiver/2.2/commands/STOP_SESSION:
    post:
      summary: Stops a session
      tags:
        - commands-controller
      operationId: postStopSession
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Session details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StopSession"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCommandResponse"
  /ocpi/receiver/2.2/commands/UNLOCK_CONNECTOR:
    post:
      summary: Unlocks a connector of a Charge Point
      tags:
        - commands-controller
      operationId: postUnlockConnector
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Charge connector details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UnlockConnector"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCommandResponse"
  /ocpi/2.2/credentials:
    get:
      summary: Retrieves the credentials object to access the server’s platform
      tags:
        - credentials-controller
      operationId: getCredentials
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCredentials"
    put:
      summary: Provides the server with an updated credentials object to access the client’s system
      tags:
        - credentials-controller
      operationId: putCredentials
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Credentials detail
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Credentials"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCredentials"
    post:
      summary: Provides the server with a credentials object to access the client’s system (i.e. register)
      tags:
        - credentials-controller
      operationId: postCredentials
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: Credentials Detail
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Credentials"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseCredentials"
    delete:
      description: Informs the server that its credentials to the client’s system are now invalid (i.e. unregister)
      tags:
        - credentials-controller
      operationId: deleteCredentials
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponse"
  /ocpi/sender/2.2/locations:
    get:
      summary: Fetches a list of Locations, last updated between the {date_from} and {date_to} (paginated), or get a specificLocation, EVSE or Connector
      tags:
        - locations-controller
      operationId: getLocationListFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: date_from
          description: Only return CDRs that have last_updated after or equal to this Date/Time(inclusive)
          in: query
          required: false
          schema:
            type: string
        - name: date_to
          description: Only return CDRs that have last_updated up to this Date/Time, but not including (exclusive)
          in: query
          required: false
          schema:
            type: string
        - name: offset
          description: The offset of the first object returned. Default is 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          description: Maximum number of objects to GET
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseLocationList"
  /ocpi/sender/2.2/locations/page/{uid}:
    get:
      summary: Lists of all available Locations with valid EVSEs
      tags:
        - locations-controller
      operationId: getLocationPageFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: uid
          description: Page ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseLocationList"
  /ocpi/sender/2.2/locations/{locationID}:
    get:
      summary: Retrieves information about one specific Location
      tags:
        - locations-controller
      operationId: getLocationObjectFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string      
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: locationID
          description: ID of the charging location of an operator
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseLocation"
  /ocpi/sender/2.2/locations/{locationID}/{evseUID}:
    get:
      summary: Retrieves a Location, EVSE by ID
      tags:
        - locations-controller
      operationId: getEvseObjectFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party id of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: locationID
          description: ID of the charging location of an operator
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: ID of the EVSE
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseEvse"
  /ocpi/sender/2.2/locations/{locationID}/{evseUID}/{connectorID}:
    get:
      summary: Retrieves a Location, EVSE or Connector by ID
      tags:
        - locations-controller
      operationId: getConnectorObjectFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: locationID
          description: ID of the charging location of an operator
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: ID of the EVSE
          in: path
          required: true
          schema:
            type: string
        - name: connectorID
          description: Connector ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseConnector"
  /ocpi/receiver/2.2/locations/{countryCode}/{partyID}/{locationID}:
    get:
      summary: Retrieves a Location as it is stored in the eMSP system.
      tags:
        - locations-controller
      operationId: getClientOwnedLocation
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting data from the eMSP system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting data from the eMSP system
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: Location.id of the Location object to retrieve
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseLocation"
    put:
      summary: Pushes new/updated Location and/or Connector to the eMSP
      tags:
        - locations-controller
      operationId: putClientOwnedLocation
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting this PUT to the eMSP system. This shall be the same value as the country_code in the Location object being pushed
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting this PUT to the eMSP system. This shall be the same value as the party_id in the Location object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: Location.id of the new Location object, or the Location of which an EVSE orConnector object is pushed
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Location details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Location"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    patch:
      summary: Notifies the eMSP of partial updates to a Location, EVSE or Connector (such as the status).
      tags:
        - locations-controller
      operationId: patchClientOwnedLocation
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: ID of the charging location of an operator
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Location details
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/locations/{countryCode}/{partyID}/{locationID}/{evseUID}:
    get:
      summary: Retrieves a Location as it is stored in the eMSP system by EVSE UID
      tags:
        - locations-controller
      operationId: getClientOwnedEvse
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting data from the eMSP system.
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting data from the eMSP system.
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: Location.id of the Location object to retrieve
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: Evse.uid, required when requesting an EVSE or Connector object
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseEvse"
    put:
      summary: Pushes new/updated Location, EVSE and/or Connector to the eMSP by EVSE UID
      tags:
        - locations-controller
      operationId: putClientOwnedEvse
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string      
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting this PUT to the eMSP system. This shall be the same value as the country_code in the Location object being pushed
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting this PUT to the eMSP system. ThisSHALL be the same value as the party_id in the Location object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: Location.id of the new Location object, or the Location of which an EVSE orConnector object is pushed
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: Evse.uid, required when an EVSE or Connector object is pushed
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: EVSE details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Evse"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    patch:
      summary: Notifies the eMSP of partial updates to a Location, EVSE or Connector (such as the status) by EVSE UID
      tags:
        - locations-controller
      operationId: patchClientOwnedEvse
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting this PATCH to the eMSP system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting this PATCH to the eMSP system
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: ID of the charging location of an operator
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: ID of the EVSE
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Request body details
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/locations/{countryCode}/{partyID}/{locationID}/{evseUID}/{connectorID}:
    get:
      summary: Retrieves a Location as it is stored in the eMSP system by EVSE UID and Connector ID
      tags:
        - locations-controller
      operationId: getClientOwnedConnector
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting this PUT to the eMSP system. This shall be the same value as the country_code in the Location object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting this PUT to the eMSP system. ThisSHALL be the same value as the party_id in the Location object being pushed
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: Location.id of the new Location object, or the Location of which an EVSE orConnector object is pushed
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: Evse.uid, required when an EVSE or Connector object is pushed.
          in: path
          required: true
          schema:
            type: string
        - name: connectorID
          description: Connector.id, required when a Connector object is pushed.
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseConnector"
    put:
      summary: Pushes new/updated Location, EVSE and/or Connector to the eMSP by EVSE UID and connector ID
      tags:
        - locations-controller
      operationId: putClientOwnedConnector
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting this PUT to the eMSP system. This shall be the same value as the country_code in the Location object being pushed
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting this PUT to the eMSP system. This shall be the same value as the party_id in the Location object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: Location.id of the new Location object, or the Location of which an EVSE orConnector object is pushed
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: Evse.uid, required when an EVSE or Connector object is pushed.
          in: path
          required: true
          schema:
            type: string
        - name: connectorID
          description: Connector.id, required when a Connector object is pushed
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Connector Details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Connector"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    patch:
      summary: Notifies the eMSP of partial updates to a Location, EVSE or Connector (such as the status) by EVSE UID and connector ID
      tags:
        - locations-controller
      operationId: patchClientOwnedConnector
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO requesting this PATCH to the eMSP system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO requesting this PATCH to the eMSP system
          in: path
          required: true
          schema:
            type: string
        - name: locationID
          description: ID of the charging location of an operator
          in: path
          required: true
          schema:
            type: string
        - name: evseUID
          description: ID of the EVSE
          in: path
          required: true
          schema:
            type: string
        - name: connectorID
          description: ID of the Connector
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: OCPI request details
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules/whitelist:
    put:
      summary: Updates OCN rules - `whitelist`
      tags:
        - ocn-rules-controller
      operationId: updateWhitelist
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: OCN Rules List Details
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/OcnRulesListParty"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    post:
      tags:
        - ocn-rules-controller
      operationId: appendToWhitelist
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: OCN Rules List Details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OcnRulesListParty"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules/blacklist:
    put:
      summary: Updates OCN rules - `blacklist`
      tags:
        - ocn-rules-controller
      operationId: updateBlacklist
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: OCN Rules List Details
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/OcnRulesListParty"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    post:
      tags:
        - ocn-rules-controller
      operationId: appendToBlacklist
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      requestBody:
        description: OCN Rules List Details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OcnRulesListParty"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules/signatures:
    put:
      description: Updates OCN Rules - `signature`
      tags:
        - ocn-rules-controller
      operationId: updateSignatures
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules/block-all:
    put:
      summary: Updates OCN Rules - `block-all`
      tags:
        - ocn-rules-controller
      operationId: blockAll
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules/whitelist/{countryCode}/{partyID}:
    delete:
      summary: Deletes OCN Rules - `whitelist` by country code and party ID
      tags:
        - ocn-rules-controller
      operationId: deleteFromWhitelist
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules/blacklist/{countryCode}/{partyID}:
    delete:
      summary: Deletes OCN Rules - `blacklist` by country code and party ID
      tags:
        - ocn-rules-controller
      operationId: deleteFromBlacklist
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/ocnrules:
    get:
      summary: Gets all OCN Rules
      tags:
        - ocn-rules-controller
      operationId: getRules
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseOcnRules"
  /ocpi/sender/2.2/sessions:
    get:
      summary: Fetches Session objects of charging sessions last updated between the {date_from} and {date_to}
      tags:
        - sessions-controller
      operationId: getSessionsFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: date_from
          description: Only return Sessions that have last_updated after or equal to this Date/Time(inclusive)
          in: query
          required: false
          schema:
            type: string
        - name: date_to
          description: Only return Sessions that have last_updated up to this Date/Time, but not including (exclusive)
          in: query
          required: false
          schema:
            type: string
        - name: offset
          description: The offset of the first object returned. Default is 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          description: Maximum number of objects to GET
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseSessionList"
  /ocpi/sender/2.2/sessions/page/{uid}:
    get:
      summary: Fetches Session objects of charging sessions
      tags:
        - sessions-controller
      operationId: getSessionsPageFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: uid
          description: Page ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseSessionList"
  /ocpi/sender/2.2/sessions/{sessionID}/charging_preferences:
    put:
      summary: Sets/Updates the driver’s Charging Preferences for the charging session
      tags:
        - sessions-controller
      operationId: putChargingPreferences
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: sessionID
          description: Charging session ID
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Charging preferences details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargingPreferences"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseChargingPreferencesResponse"
  /ocpi/receiver/2.2/sessions/{countryCode}/{partyID}/{sessionID}:
    get:
      summary: Retrieves a Session object from the eMSP’s system with Session.id equal to {session_id}
      tags:
        - sessions-controller
      operationId: getClientOwnedSession
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO performing the GET on the eMSP’s system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO performing the GET on the eMSP’s system
          in: path
          required: true
          schema:
            type: string
        - name: sessionID
          description: ID of the Session object to get from the eMSP’s system.
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseSession"
    put:
      summary: Informs the eMSP’s system about a new/updated Session object in the CPO’s system
      tags:
        - sessions-controller
      operationId: putClientOwnedSession
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO performing this PUT on the eMSP’s system. This shall be the same value as the country_code in the Session object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO performing this PUT on the eMSP’s system.This shall be the same value as the party_id in the Session object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: sessionID
          description: ID of the new or updated Session object.
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Session details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Session"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    patch:
      summary: Updates the Session object with Session.id equal to {session_id}
      tags:
        - sessions-controller
      operationId: patchClientOwnedSession
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Country code of the CPO
          in: path
          required: true
          schema:
            type: string
        - name: sessionID
          description: ID of the charging session
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Request Body detail
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/receiver/2.2/tariffs/{countryCode}/{partyID}/{tariffID}:
    get:
      summary: Retrieves a Tariff as it is stored in the eMSP’s system
      tags:
        - tariffs-controller
      operationId: getClientOwnedTariff
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO performing the PUT request on the eMSP’s system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO performing the PUT request on the eMSP’ssystem
          in: path
          required: true
          schema:
            type: string
        - name: tariffID
          description: Tariff.id of the Tariff object to retrieve
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseTariff"
    put:
      summary: Pushes new/updated Tariff object to the eMSP.
      tags:
        - tariffs-controller
      operationId: putClientOwnedTariff
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO performing the PUT request on the eMSP’s system.This shall be the same value as the country_code in the Tariff object being pushed
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO performing the PUT request on the eMSP’ssystem. This shall be the same value as the party_id in the Tariff object being pushed
          in: path
          required: true
          schema:
            type: string
        - name: tariffID
          description: Tariff.id of the Tariff object to create or replace
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: Tariff detail
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Tariff"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    delete:
      summary: Deletes a Tariff object which is not used any more and will not be used in future either
      tags:
        - tariffs-controller
      operationId: deleteClientOwnedTariff
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the CPO performing the PUT request on the eMSP’s system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the CPO performing the PUT request on the eMSP’ssystem
          in: path
          required: true
          schema:
            type: string
        - name: tariffID
          description: Tariff.id of the Tariff object to delete
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
  /ocpi/sender/2.2/tariffs:
    get:
      summary: Returns Tariff objects from the CPO, last updated between the {date_from} and {date_to}
      tags:
        - tariffs-controller
      operationId: getTariffsFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: date_from
          description: Only return Tariffs that have last_updated after or equal to this Date/Time(inclusive).
          in: query
          required: false
          schema:
            type: string
        - name: date_to
          description: Only return Tariffs that have last_updated up to this Date/Time, but notincluding (exclusive)
          in: query
          required: false
          schema:
            type: string
        - name: offset
          description: The offset of the first object returned. Default is 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          description: Maximum number of objects to GET
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseTariffList"
  /ocpi/sender/2.2/tariffs/page/{uid}:
    get:
      summary: Returns Tariff objects from the CPO by page ID
      tags:
        - tariffs-controller
      operationId: getTariffsPageFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: uid
          description: Page ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseTariffList"
  /ocpi/sender/2.2/tokens:
    get:
      summary: Gets the list of known Tokens, last updated between the {date_from} and {date_to}(Paginated)
      tags:
        - tokens-controller
      operationId: getTokensFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: date_from
          description: Only return Tokens that have last_updated after or equal to this Date/Time(inclusive)
          in: query
          required: false
          schema:
            type: string
        - name: date_to
          description: Only return Tokens that have last_updated up to this Date/Time, but not including (exclusive)
          in: query
          required: false
          schema:
            type: string
        - name: offset
          description: The offset of the first object returned. Default is 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          description: Maximum number of objects to GET
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseTokenList"
  /ocpi/sender/2.2/tokens/page/{uid}:
    get:
      summary: Gets the list of known Tokens Page ID
      tags:
        - tokens-controller
      operationId: getTokensPageFromDataOwner
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: uid
          description: Page ID
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseTokenList"
  /ocpi/sender/2.2/tokens/{tokenUID}/authorize:
    post:
      summary: Does a 'real-time' authorization request to the eMSP system, validating if a Token might be used (at the optionally given Location)
      tags:
        - tokens-controller
      operationId: postRealTimeTokenAuthorization
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: tokenUID
          description: Token.uid of the Token for which authorization is requested.
          in: path
          required: true
          schema:
            type: string
        - name: type
          description: Token type of the Token for which this authorization is. Default if omitted- RFID
          in: query
          required: false
          schema:
            type: string
            enum:
              - AD_HOC_USER
              - APP_USER
              - OTHER
              - RFID
            default: RFID
      requestBody:
        description: Location references details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LocationReferences"
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseAuthorizationInfo"
  /ocpi/receiver/2.2/tokens/{countryCode}/{partyID}/{tokenUID}:
    get:
      summary: Retrieves a Token as it is stored in the CPO system
      tags:
        - tokens-controller
      operationId: getClientOwnedToken
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the eMSP requesting this GET from the CPO system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the eMSP requesting this GET from the CPO system
          in: path
          required: true
          schema:
            type: string
        - name: tokenUID
          description: Token.uid of the Token object to retrieve
          in: path
          required: true
          schema:
            type: string
        - name: type
          description: Token.type of the Token to retrieve. Default if omitted- RFID
          in: query
          required: false
          schema:
            type: string
            enum:
              - AD_HOC_USER
              - APP_USER
              - OTHER
              - RFID
            default: RFID
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseToken"
    put:
      summary: Pushes new/updated Token object to the CPO
      tags:
        - tokens-controller
      operationId: putClientOwnedToken
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the eMSP sending this PUT request to the CPO system. This shall be the same value as the country_code in the Token object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the eMSP sending this PUT request to the CPO system. This shall be the same value as the party_id in the Token object being pushed.
          in: path
          required: true
          schema:
            type: string
        - name: tokenUID
          description: Token.uid of the (new) Token object (to replace)
          in: path
          required: true
          schema:
            type: string
        - name: type
          description: Token.type of the Token of the (new) Token object (to replace). Default if omitted:RFID
          in: query
          required: false
          schema:
            type: string
            enum:
              - AD_HOC_USER
              - APP_USER
              - OTHER
              - RFID
            default: RFID
      requestBody:
        description: Token details
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Token"
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
    patch:
      summary: Notifies the CPO of partial updates to a Token
      tags:
        - tokens-controller
      operationId: patchClientOwnedToken
      parameters:
        - name: Authorization
          description: Authorization token
          in: header
          required: true
          schema:
            type: string
        - name: OCN-Signature
          description: OCN Signature
          in: header
          required: false
          schema:
            type: string
        - name: X-Request-ID
          description: Every request shall contain a unique request ID, the response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Correlation-ID
          description: Every request/response shall contain a unique correlation ID, every response to this request shall contain the same ID
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-country-code
          description: Country code of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-from-party-id
          description: Party ID of the connected party this message is sent from
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-country-code
          description: Country code of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: OCPI-to-party-id
          description: Party ID of the connected party this message is to be sent to
          in: header
          required: true
          schema:
            type: string
        - name: countryCode
          description: Country code of the eMSP sending this PATCH request to the CPO system
          in: path
          required: true
          schema:
            type: string
        - name: partyID
          description: Party ID (Provider ID) of the eMSP sending this PATCH request to the CPO system
          in: path
          required: true
          schema:
            type: string
        - name: tokenUID
          description: Token.uid of the (new) Token object (to replace)
          in: path
          required: true
          schema:
            type: string
        - name: type
          description: Token.type of the Token of the Token object
          in: query
          required: false
          schema:
            type: string
            enum:
              - AD_HOC_USER
              - APP_USER
              - OTHER
              - RFID
            default: RFID
      requestBody:
        description: Request body details
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
        required: true
      responses:
        "200":
          description: OK
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/OcpiResponseUnit"
components:
  schemas:
    BasicRole:
      required:
        - country_code
        - party_id
      type: object
      description: OCPI basic role details
      properties:
        party_id:
          description: CPO, eMSP (or other role) ID of this party (following the ISO-15118standard)
          type: string
        country_code:
          description: ISO-3166 alpha-2 country code of the country this party is operating in
          type: string
    OcpiResponseObject:
      description: OCPI response object
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in Status Codes, indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist off our digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          type: object
          description: Contains the actual response data object or list of objects from each request,depending on the cardinality of the response data, this is an array (card. * or +),or a single object (card. 1 or ?)
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    Endpoint:
      description: OCPI module endpoint details
      required:
        - identifier
        - role
        - url
      type: object
      properties:
        identifier:
          description: Endpoint identifier
          type: string
        role:
          description: Interface role this endpoint implements
          type: string
          enum:
            - SENDER
            - RECEIVER
        url:
          description: URL to the endpoint
          type: string
    OcpiResponseVersionDetail:
      description: OCPI response version details
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/VersionDetail"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN Signature
          type: string
    VersionDetail:
      description: Version details
      required:
        - endpoints
        - version
      type: object
      properties:
        version:
          description: The version number
          type: string
        endpoints:
          description: An array of supported endpoints for this version
          type: array
          items:
            $ref: "#/components/schemas/Endpoint"
    OcpiResponseListVersion:
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          type: array
          items:
            $ref: "#/components/schemas/Version"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          type: string
    Version:
      description: A list of supported OCPI versions
      required:
        - url
        - version
      type: object
      properties:
        version:
          description: The version number
          type: string
        url:
          description: URL to the endpoint containing version specific information
          type: string
    CDR:
      description: Charge detail record
      required:
        - auth_method
        - cdr_location
        - cdr_token
        - charging_periods
        - country_code
        - currency
        - end_date_time
        - id
        - last_updated
        - party_id
        - start_date_time
        - total_cost
        - total_energy
        - total_time
      type: object
      properties:
        country_code:
          description: ISO-3166 alpha-2 country code of the CPO that 'owns' this CDR
          type: string
        party_id:
          description: CPO ID of the CPO that 'owns' this CDR (following the ISO-15118standard)
          type: string
        id:
          description: Uniquely identifies the CDR within the CPO’s platform (and sub operator platforms). This field is longer than the usual 36characters to allow for credit CDRs to have something appended to the original ID. Normal (non-credit) CDRs SHALL only have an ID with a maximum length of 36.
          type: string
        start_date_time:
          description: Start timestamp of the charging session, or in-case of a reservation(before the start of a session) the start of the reservation
          type: string
        end_date_time:
          description: The timestamp when the session was completed/finished, charging might have finished before the session ends, for example- EV is full,but parking cost also has to be paid
          type: string
        session_id:
          description: Unique ID of the Session for which this CDR is sent. Is only allowed to be omitted when the CPO has not implemented the Sessions module or this CDR is the result of a reservation that never became a charging session, thus no OCPI Session
          type: string
        cdr_token:
          description: Token used to start this charging session, includes all the relevant information to identify the unique token
          $ref: "#/components/schemas/CdrToken"
        auth_method:
          description: Method used for authentication
          type: string
          enum:
            - AUTH_REQUEST
            - COMMAND
            - WHITELIST
        authorization_reference:
          description: Reference to the authorization given by the eMSP. When the eMSP provided an authorization_reference in either- real-time authorization or StartSession, this field shall contain the same value. When different authorization_reference values have been given by the eMSP that are relevant to this Session, the last given value shall be used here.
          type: string
        cdr_location:
          description: Location where the charging session took place, including only the relevant EVSE and Connector
          $ref: "#/components/schemas/CdrLocation"
        meter_id:
          description: Identification of the Meter inside the Charge Point
          type: string
        currency:
          description: Currency of the CDR in ISO 4217 Code
          type: string
        tariffs:
          description: A list of relevant Tariff Elements, see [Tariff](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#mod_tariffs_tariff_object). When relevant, a Free ofCharge tariff should also be in this list, and point to a defined Freeof Charge Tariff.
          type: array
          items:
            $ref: "#/components/schemas/Tariff"
        charging_periods:
          description: A list of Charging Periods that make up this charging session. A session consists of 1 or more periods, where each period has a different relevant Tariff
          type: array
          items:
            $ref: "#/components/schemas/ChargingPeriod"
        signed_data:
          description: Signed data that belongs to this charging Session
          $ref: "#/components/schemas/SignedData"
        total_cost:
          description: Total sum of all the costs of this transaction in the specified currency
          $ref: "#/components/schemas/Price"
        total_fixed_cost:
          description: otal sum of all the fixed costs in the specified currency, except fixed price components of parking and reservation. The cost not depending on amount of time/energy used etc. Can contain costs like a start tariff.
          $ref: "#/components/schemas/Price"
        total_energy:
          description: Total energy charged, in kWh
          type: number
          format: float
        total_energy_cost:
          description: Total sum of all the cost of all the energy used, in the specified currency
          $ref: "#/components/schemas/Price"
        total_time:
          description: Total duration of the charging session (including the duration of charging and not charging), in hours
          type: number
          format: float
        total_time_cost:
          description: Total sum of all the cost related to duration of charging during this transaction, in the specified currency
          $ref: "#/components/schemas/Price"
        total_parking_time:
          description: Total duration of the charging session where the EV was not charging (no energy was transferred between EVSE and EV), in hours
          type: number
          format: float
        total_parking_cost:
          description: Total sum of all the cost related to parking of this transaction,including fixed price components, in the specified currency
          $ref: "#/components/schemas/Price"
        total_reservation_cost:
          description: Total sum of all the cost related to a reservation of a Charge Point,including fixed price components, in the specified currency
          $ref: "#/components/schemas/Price"
        remark:
          description: Optional remark, can be used to provide additional human readable information to the CDR, for example- reason why a transaction was stopped
          type: string
        invoice_reference_id:
          description: This field can be used to reference an invoice, that will later be sent for this CDR. Making it easier to link a CDR to a given invoice.Maybe even group CDRs that will be on the same invoice
          type: string
        credit:
          description: When set to true, this is a Credit CDR, and the field credit_reference_id needs to be set as well
          type: boolean
        credit_reference_id:
          description: Whether it is required to be set for a Credit CDR. This shall contain the id of the CDR for which this is a Credit CDR
          type: string
        last_updated:
          description: Timestamp when this CDR was last updated (or created)
          type: string
    CdrDimension:
      description: CDR dimension
      required:
        - type
        - volume
      type: object
      properties:
        type:
          type: string
          description: Type of CDR dimension
          enum:
            - CURRENT
            - ENERGY
            - ENERGY_EXPORT
            - ENERGY_IMPORT
            - MAX_CURRENT
            - MIN_CURRENT
            - MAX_POWER
            - MIN_POWER
            - PARKING_TIME
            - POWER
            - RESERVATION_TIME
            - STATE_OF_CHARGE
            - TIME
        volume:
          description: Volume of the dimension consumed, measured according to the dimension type
          type: number
          format: float
    CdrLocation:
      description: CDR location
      required:
        - address
        - city
        - connector_format
        - connector_id
        - connector_power_type
        - connector_standard
        - coordinates
        - country
        - evse_id
        - evse_uid
        - id
        - postal_code
      type: object
      properties:
        id:
          description: Uniquely identifies the location within the CPO’s platform (and sub operator platforms). This field can never be changed, modified or renamed
          type: string
        name:
          description: Display name of the location
          type: string
        address:
          description: Street/block name and house number if available
          type: string
        city:
          description: City or town
          type: string
        postal_code:
          description: Postal code of the location
          type: string
        country:
          description: ISO 3166-1 alpha-3 code for the country of this location
          type: string
        coordinates:
          $ref: "#/components/schemas/GeoLocation"
        evse_uid:
          description: Uniquely identifies the EVSE within the CPO’s platform (and sub operator platforms). For example a database unique ID or the actual EVSE ID. This field can never be changed, modified or renamed. This is the technical identification of the EVSE, not to be used as human readable identification, use the field:evse_id for that
          type: string
        evse_id:
          description: Compliant with the following specification for EVSE ID from "eMI3 standard version V1.0" (http://emi3group.com/documents-links/) "Part 2- business objects"
          type: string
        connector_id:
          description: Identifier of the connector within the EVSE
          type: string
        connector_standard:
          description: The standard of the installed connector
          type: string
          enum:
            - CHADEMO
            - DOMESTIC_A
            - DOMESTIC_B
            - DOMESTIC_C
            - DOMESTIC_D
            - DOMESTIC_E
            - DOMESTIC_F
            - DOMESTIC_G
            - DOMESTIC_H
            - DOMESTIC_I
            - DOMESTIC_J
            - DOMESTIC_K
            - DOMESTIC_L
            - IEC_60309_2_single_16
            - IEC_60309_2_three_16
            - IEC_60309_2_three_32
            - IEC_60309_2_three_64
            - IEC_62196_T1
            - IEC_62196_T1_COMBO
            - IEC_62196_T2
            - IEC_62196_T2_COMBO
            - IEC_62196_T3A
            - IEC_62196_T3C
            - PANTOGRAPH_BOTTOM_UP
            - PANTOGRAPH_TOP_DOWN
            - TESLA_R
            - TESLA_S
        connector_format:
          description: The format (socket/cable) of the installed connector
          type: string
          enum:
            - SOCKET
            - CABLE
        connector_power_type:
          description: The power type of the connector
          type: string
          enum:
            - AC_1_PHASE
            - AC_3_PHASE
            - DC
    CdrToken:
      description: CDR Token details
      required:
        - contract_id
        - type
        - uid
      type: object
      properties:
        uid:
          description: Unique ID by which this Token can be identified.This is the field used by the CPO’s system (RFID reader on the Charge Point) to identify this token.Currently, in most cases- type=RFID, this is the RFID hidden ID as read by the RFID reader, but that is not a requirement. If this is a type=APP_USER Token, it will be a unique, by the eMSP, generatedID.
          type: string
        type:
          description: Type of the token
          type: string
          enum:
            - AD_HOC_USER
            - APP_USER
            - OTHER
            - RFID
        contract_id:
          description: Uniquely identifies the EV driver contract token within the eMSP’s platform (and sub operator platforms). Recommended to follow the specification for eMA ID from "eMI3 standard version V1.0" (http://emi3group.com/documents-links/)"Part 2- business objects."
          type: string
    ChargingPeriod:
      description: Charging period details
      required:
        - dimensions
        - start_date_time
      type: object
      properties:
        start_date_time:
          description: Start timestamp of the charging period. A period ends when the next period starts. The last period ends when the session ends
          type: string
        dimensions:
          description: A list of relevant values for this charging period
          type: array
          items:
            $ref: "#/components/schemas/CdrDimension"
        tariff_id:
          description: Unique identifier of the Tariff that is relevant for this Charging Period. If not provided, no Tariff is relevant during this period
          type: string
    DisplayText:
      description: A List of multi-language alternative tariff info texts
      required:
        - language
        - text
      type: object
      properties:
        language:
          description: A language Code ISO 639-1
          type: string
        text:
          description: Text to be displayed to a end user. No markup, html etc. allowed
          type: string
    EnergyMix:
      description: Details on the energy supplied at this location
      required:
        - is_green_energy
      type: object
      properties:
        is_green_energy:
          description: True if 100% from regenerative sources. (CO2 and nuclear waste is zero)
          type: boolean
        energy_sources:
          description: Key-value pairs (enum + percentage) of energy sources of this location’s tariff
          type: array
          items:
            $ref: "#/components/schemas/EnergySource"
        environ_impact:
          description: Key-value pairs (enum + percentage) of nuclear waste and CO2exhaust of this location’s tariff
          type: array
          items:
            $ref: "#/components/schemas/EnvironmentalImpact"
        supplier_name:
          description: Name of the energy supplier, delivering the energy for this location or tariff.*
          type: string
        energy_product_name:
          description: Name of the energy suppliers product/tariff plan used at this location.*
          type: string
    EnergySource:
      description: Key-value pairs (enum + percentage) of energy sources
      required:
        - percentage
        - source
      type: object
      properties:
        source:
          description: The type of energy source
          type: string
          enum:
            - NUCLEAR
            - GENERAL_FOSSIL
            - COAL
            - GAS
            - GENERAL_GREEN
            - SOLAR
            - WIND
            - WATER
        percentage:
          description: Percentage of this source (0-100) in the mix
          type: number
          format: float
    EnvironmentalImpact:
      description: Amount of waste produced/emitted per kWh.
      required:
        - amount
        - category
      type: object
      properties:
        category:
          description: The environmental impact category of this value
          type: string
          enum:
            - NUCLEAR_WASTE
            - CARBON_DIOXIDE
        amount:
          description: Amount of this portion in g/kWh
          type: number
          format: float
    GeoLocation:
      description: The geo location of the Charge Point. The geodetic system to be used is WGS 84.
      required:
        - latitude
        - longitude
      type: object
      properties:
        latitude:
          description: Latitude of the point in decimal degree. Example- 50.770774. Decimal separator- "." Regex- -?[0-9]{1,2}\.[0-9]{5,7}
          type: string
        longitude:
          description: Longitude of the point in decimal degree. Example- -126.104965. Decimal separator- "." Regex- -?[0-9]{1,3}\.[0-9]{5,7}
          type: string
    OcpiResponseCDRList:
      description: OCPI response CDR List
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: An array of CDRs
          type: array
          items:
            $ref: "#/components/schemas/CDR"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    Price:
      description: The total cost of the session in the specified currency
      required:
        - excl_vat
        - incl_vat
      type: object
      properties:
        excl_vat:
          description: Price/Cost excluding VAT
          type: number
          format: float
        incl_vat:
          description: Price/Cost including VAT
          type: number
          format: float
    PriceComponent:
      description: Describes the pricing of a tariff
      required:
        - price
        - step_size
        - type
      type: object
      properties:
        type:
          description: Type of tariff dimension
          type: string
          enum:
            - ENERGY
            - FLAT
            - PARKING_TIME
            - TIME
        price:
          description: Price per unit (excl. VAT) for this tariff dimension
          type: number
          format: float
        vat:
          description: Applicable VAT percentage for this tariff dimension. If omitted, no VATis applicable. Not providing a VAT is different from 0% VAT, which would be a value of 0.0 here.
          type: number
          format: float
        step_size:
          description: Minimum amount to be billed. This unit will be billed in this step_size blocks. Amounts that are less then this step_size are rounded up to the given step_size. For example- if type is TIME and step_size has a value of 300, then time will be billed in blocks of 5 minutes. If 6 minutes were used, 10 minutes (2 blocks of step_size) will be billed.
          type: integer
          format: int32
    SignedData:
      description: All the information of the signed data. Which encoding method is used, if needed, the public key and a list of signed values.
      required:
        - encoding_method
        - signed_values
        - url
      type: object
      properties:
        encoding_method:
          description: The name of the encoding used in the SignedData field. This is the name given to the encoding by a company or group of companies.
          type: string
        encoding_method_version:
          description: Version of the EncodingMethod (when applicable)
          type: integer
          format: int32
        public_key:
          description: Public key used to sign the data, base64 encoded
          type: string
        signed_values:
          description: One or more signed values
          type: array
          items:
            $ref: "#/components/schemas/SignedValue"
        url:
          description: URL that can be shown to an EV driver. This URL gives the EV driver the possibility to check the signed data from a charging session
          type: string
    SignedValue:
      description: This class contains the signed and the plain/unsigned data. By decoding the data, the receiver can check if the content has not been altered.
      required:
        - nature
        - plain_data
        - signed_data
      type: object
      properties:
        nature:
          description: Nature of the value, in other words, the event this value belongs to.Possible values at moment of writing:- Start (value at the start of the Session)- End (signed value at the end of the Session)- Intermediate (signed values take during the Session, after Start, before End)Others might be added later.
          type: string
        plain_data:
          description: The unencoded string of data. The format of the content depends on theEncodingMethod field.
          type: string
        signed_data:
          description: Blob of signed data, base64 encoded. The format of the content depends on theEncodingMethod field.
          type: string
    Tariff:
      description: Consists of a list of one or more Tariff Elements, which can be used to create complex Tariff structures.
      required:
        - country_code
        - currency
        - elements
        - id
        - last_updated
        - party_id
      type: object
      properties:
        country_code:
          description: ISO-3166 alpha-2 country code of the CPO that owns this Tariff
          type: string
        party_id:
          description: CPO ID of the CPO that owns this Tariff (following the ISO-15118 standard)
          type: string
        id:
          description: Uniquely identifies the tariff within the CPO’s platform (and sub operator platforms)
          type: string
        currency:
          description: ISO-4217 code of the currency of this tariff
          type: string
        type:
          description: Defines the type of the tariff. This allows for distinction in case of given ChargingPreferences. When omitted, this tariff is valid for all sessions.
          type: string
          enum:
            - AD_HOC_PAYMENT
            - PROFILE_CHEAP
            - PROFILE_FAST
            - PROFILE_GREEN
            - REGULAR
        tariff_alt_text:
          description: A list of multi-language alternative tariff info texts
          type: array
          items:
            $ref: "#/components/schemas/DisplayText"
        tariff_alt_url:
          description: URL to a web page that contains an explanation of the tariff information inhuman readable form
          type: string
        min_price:
          $ref: "#/components/schemas/Price"
        max_price:
          $ref: "#/components/schemas/Price"
        elements:
          description: An array of tariff elements
          type: array
          items:
            $ref: "#/components/schemas/TariffElement"
        start_date_time:
          description: The time when this tariff becomes active, in UTC, time_zone field of theLocation can be used to convert to local time. Typically used for a new tariff that is already given with the location, before it becomes active.
          type: string
        end_date_time:
          description: The time after which this tariff is no longer valid, in UTC, time_zone field if theLocation can be used to convert to local time. Typically used when this tariff is going to be replaced with a different tariff in the near future.
          type: string
        energy_mix:
          $ref: "#/components/schemas/EnergyMix"
        last_updated:
          description: Timestamp when this Tariff was last updated (or created)
          type: string
    TariffElement:
      description: OCPI Tariff element
      required:
        - price_components
      type: object
      properties:
        price_components:
          description: List of price components that describe the pricing of a tariff
          type: array
          items:
            $ref: "#/components/schemas/PriceComponent"
        restrictions:
          $ref: "#/components/schemas/TariffRestrictions"
    TariffRestrictions:
      description: These restrictions are not for the entire Charging Session. They only describe if and when a TariffElement becomes active or inactive during a Charging Session.
      type: object
      properties:
        start_time:
          description: Start time of day in local time, the time zone is defined in the time_zone field of the Location, for example 13:30, valid from this time of the day. Must be in 24h format with leading zeros. Hour/Minute separator:- ":" Regex- ([0-1][0-9]|2[0-3]):[0-5][0-9]
          type: string
        end_time:
          description: End time of day in local time, the time zone is defined in the time_zone field of the Location, for example 19:45, valid until this time of the day. Same syntax asstart_time. If end_time < start_time then the period wraps around to the next day. To stop at end of the day use- 00:00
          type: string
        start_date:
          description: Start date in local time, the time zone is defined in the time_zone field of theLocation, for example- 2015-12-24, valid from this day (inclusive). Regex-([12][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])
          type: string
        end_date:
          description: End date in local time, the time zone is defined in the time_zone field of theLocation, for example- 2015-12-27, valid until this day (exclusive). Same syntax as start_date.
          type: string
        min_kwh:
          description: Minimum consumed energy in kWh, for example 20, valid from this amount of energy (inclusive) being used.
          type: number
          format: float
        max_kwh:
          description: Maximum consumed energy in kWh, for example 50, valid until this amount of energy (exclusive) being used
          type: number
          format: float
        min_current:
          description: Sum of the minimum current (in Amperes) over all phases, for example 5. When the EV is charging with more than, or equal to, the defined amount of current,this TariffElement is/becomes active. If the charging current is or becomes lower,this TariffElement is not or no longer valid and becomes inactive. This describesNOT the minimum current over the entire Charging Session. This restriction can make a TariffElement become active when the charging current is above the defined value, but the TariffElement MUST no longer be active when the charging current drops below the defined value.
          type: number
          format: float
        max_current:
          description: Sum of the maximum current (in Amperes) over all phases, for example 20.When the EV is charging with less than the defined amount of current, thisTariffElement becomes/is active. If the charging current is or becomes higher,this TariffElement is not or no longer valid and becomes inactive. This describesNOT the maximum current over the entire Charging Session. This restriction can make a TariffElement become active when the charging current is below this value, but the TariffElement MUST no longer be active when the charging current raises above the defined value.
          type: number
          format: float
        min_power:
          description: Minimum power in kW, for example 5. When the EV is charging with more than,or equal to, the defined amount of power, this TariffElement is/becomes active. Ifthe charging power is or becomes lower, this TariffElement is not or no longer valid and becomes inactive. This describes NOT the minimum power over the entire Charging Session. This restriction can make a TariffElement become active when the charging power is above this value, but the TariffElement MUSTno longer be active when the charging power drops below the defined value.
          type: number
          format: float
        max_power:
          description: Maximum power in kW, for example 20. When the EV is charging with less than the defined amount of power, this TariffElement becomes/is active. If the charging power is or becomes higher, this TariffElement is not or no longer valid and becomes inactive. This describes NOT the maximum power over the entireCharging Session. This restriction can make a TariffElement become active when the charging power is below this value, but the TariffElement MUST no longer be active when the charging power raises above the defined value.
          type: number
          format: float
        min_duration:
          description: Minimum duration in seconds the Charging Session MUST last (inclusive).When the duration of a Charging Session is longer than the defined value, thisTariffElement is or becomes active. Before that moment, this TariffElement is not yet active.
          type: integer
          format: int32
        max_duration:
          description: Maximum duration in seconds the Charging Session MUST last (exclusive).When the duration of a Charging Session is shorter than the defined value, thisTariffElement is or becomes active. After that moment, this TariffElement is no longer active.
          type: integer
          format: int32
        day_of_week:
          description: Which day(s) of the week this TariffElement is active
          type: array
          items:
            type: string
            enum:
              - MONDAY
              - TUESDAY
              - WEDNESDAY
              - THURSDAY
              - FRIDAY
              - SATURDAY
              - SUNDAY
        reservation:
          description: When this field is present, the TariffElement describes reservation costs. A reservation starts when the reservation is made, and ends when the driverstarts charging on the reserved EVSE/Location, or when the reservationexpires. A reservation can only have- FLAT and TIME TariffDimensions, whereTIME is for the duration of the reservation.
          type: string
          enum:
            - RESERVATION
            - RESERVATION_EXPIRES
    OcpiResponseCDR:
      description: OCPI response - CDR
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/CDR"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseUnit:
      description: OCPI response - Unit
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Unit"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    Unit:
      description: Unit
      type: string
    ActiveChargingProfile:
      description: The charging profile as calculated by the EVSE.
      required:
        - charging_profile
        - start_date_time
      type: object
      properties:
        start_date_time:
          description: Date and time at which the Charge Point has calculated this ActiveChargingProfile. All time measurements within the profile are relative to this timestamp.
          type: string
        charging_profile:
          $ref: "#/components/schemas/ChargingProfile"
    ChargingProfile:
      description: A list of charging periods
      required:
        - charging_rate_unit
      type: object
      properties:
        start_date_time:
          description: Starting point of an absolute profile. If absent the profile will be relative to start of charging.
          type: string
        duration:
          description: Duration of the charging profile in seconds. If the duration is left empty, the last period will continue in definitely or until end of the transaction in case startProfile is absent.
          type: integer
          format: int32
        charging_rate_unit:
          description: The unit of measure
          type: string
          enum:
            - W
            - A
        min_charging_rate:
          description: Minimum charging rate supported by the EV. The unit of measure is defined by the chargingRateUnit. This parameter is intended to be used by a local smart charging algorithm to optimize the power allocation for in the case a charging process is inefficient at lower charging rates. Accepts at most one digit fraction.
          type: number
          format: float
        charging_profile_period:
          description: A list of ChargingProfilePeriod elements defining maximum power or current usage over time
          type: array
          items:
            $ref: "#/components/schemas/ChargingProfilePeriod"
    ChargingProfilePeriod:
      description: A time period in a charging profile, as used in ChargingProfile
      required:
        - limit
        - start_period
      type: object
      properties:
        start_period:
          description: Start of the period, in seconds from the start of profile. The value of StartPeriod also defines the stop time of the previous period.
          type: integer
          format: int32
        limit:
          description: Charging rate limit during the profile period, in the applicable chargingRateUnit,for example in Amperes (A) or Watts (W). Accepts at most one digit fraction.
          type: number
          format: float
    GenericChargingProfileResult:
      description: Result of a ChargingProfile request that the EVSE sends via the CPO to the eMSP
      required:
        - result
      type: object
      properties:
        result:
          description: charging profile request results
          type: string
          enum:
            - ACCEPTED
            - REJECTED
            - UNKNOWN
        profile:
          $ref: "#/components/schemas/ActiveChargingProfile"
    ChargingProfileResponse:
      description: Response to the ChargingProfile request from the eMSP to the CPO
      required:
        - result
        - timeout
      type: object
      properties:
        result:
          description: Response types to the ChargingProfile request from the eMSP to the CPO
          type: string
          enum:
            - ACCEPTED
            - NOT_SUPPORTED
            - REJECTED
            - TOO_OFTEN
            - UNKNOWN_SESSION
        timeout:
          description: timeout value
          type: integer
          format: int32
    OcpiResponseChargingProfileResponse:
      description: OCPI response charging profile response
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/ChargingProfileResponse"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    SetChargingProfile:
      description: Object set to a CPO to set a Charging Profile
      required:
        - charging_profile
        - response_url
      type: object
      properties:
        charging_profile:
          $ref: "#/components/schemas/ChargingProfile"
        response_url:
          description: URL that the ChargingProfileResult POST should be send to. ThisURL might contain an unique ID to be able to distinguish between GET ActiveChargingProfile requests.
          type: string
    CommandResult:
      description: Result of the command request, from the Charge Point
      required:
        - result
      type: object
      properties:
        result:
          description: Result of the command request as sent by the Charge Point to the CPO.
          type: string
          enum:
            - ACCEPTED
            - CANCELED_RESERVATION
            - EVSE_OCCUPIED
            - EVSE_INOPERATIVE
            - FAILED
            - NOT_SUPPORTED
            - REJECTED
            - TIMEOUT
            - UNKNOWN_RESERVATION
        message:
          $ref: "#/components/schemas/DisplayText"
    CancelReservation:
      description: The cancel of an existing Reservation
      required:
        - reservation_id
        - response_url
      type: object
      properties:
        response_url:
          description: URL that the CommandResult POST should be send to. This URL might contain an unique ID to be able to distinguish between CancelReservation requests.
          type: string
        reservation_id:
          description: Reservation id, unique for this reservation. If the Charge Point already has a reservation that matches this reservationId the Charge Point will replace the reservation.
          type: string
    CommandResponse:
      description: The CommandResponse object is sent in the HTTP response body
      required:
        - result
        - timeout
      type: object
      properties:
        result:
          description: Response from the CPO on the command request
          type: string
          enum:
            - NOT_SUPPORTED
            - REJECTED
            - ACCEPTED
            - UNKNOWN_SESSION
        timeout:
          description: Timeout for this command in seconds. When the Result is not received within this timeout, the eMSP can assume that the message might never be sent.
          type: integer
          format: int32
        message:
          $ref: "#/components/schemas/DisplayText"
    OcpiResponseCommandResponse:
      description: OCPI response - `command response`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/CommandResponse"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    EnergyContract:
      description: Information about a energy contract that belongs to a Token so a driver could use his/her own energy contract when charging at a Charge Point
      required:
        - supplier_name
      type: object
      properties:
        supplier_name:
          description: Name of the energy supplier for this token
          type: string
        contract_id:
          description: Contract ID at the energy supplier, that belongs to the owner of this token
          type: string
    ReserveNow:
      description: The RESERVE_NOW command, with information needed to reserve a (specific) connector of a Charge Point for a given Token
      required:
        - expiry_date
        - location_id
        - reservation_id
        - response_url
        - token
      type: object
      properties:
        response_url:
          description: URL that the CommandResult POST should be send to. This URL might contain an unique ID to be able to distinguish between ReserveNow requests.
          type: string
        token:
          $ref: "#/components/schemas/Token"
        expiry_date:
          description: The Date/Time when this reservation ends, in UTC
          type: string
        reservation_id:
          description: Reservation id, unique for this reservation. If the Receiver (typicallyCPO) Point already has a reservation that matches this reservationId for that Location it will replace the reservation.
          type: string
        location_id:
          description: Location.id of the Location (belonging to the CPO this request is send to) for which to reserve an EVSE
          type: string
        evse_uid:
          description: Optional EVSE.uid of the EVSE of this Location if a specific EVSE has to be reserved.
          type: string
        authorization_reference:
          description: Reference to the authorization given by the eMSP, when given, this reference will be provided in the relevant Session and/or CDR
          type: string
    Token:
      description: Represents a token information
      required:
        - contract_id
        - country_code
        - issuer
        - last_updated
        - party_id
        - type
        - uid
        - valid
        - whitelist
      type: object
      properties:
        country_code:
          description: ISO-3166 alpha-2 country code of the MSP that 'owns' this Token
          type: string
        party_id:
          description: CPO ID of the MSP that 'owns' this Token (following the ISO-15118 standard)
          type: string
        uid:
          description: Unique ID by which this Token can be identified. This is the field used by CPO system (RFID reader on the Charge Point) to identify this token.Currently, in most cases- type=RFID, this is the RFID hidden ID as read by theRFID reader, but that is not a requirement.If this is a APP_USER or AD_HOC_USER Token, it will be a uniquely, by the eMSP,generated ID.This field is named uid instead of id to prevent confusion with- contract_id.
          type: string
        type:
          description: Type of the token
          type: string
          enum:
            - AD_HOC_USER
            - APP_USER
            - OTHER
            - RFID
        contract_id:
          description: Uniquely identifies the EV Driver contract token within the eMSP’s platform (and sub operator platforms). Recommended to follow the specification for eMA IDfrom "eMI3 standard version V1.0" (http://emi3group.com/documents-links/)"Part 2- business objects."
          type: string
        visual_number:
          description: Visual readable number/identification as printed on the Token (RFID card), might be equal to the contract_id.
          type: string
        issuer:
          description: Issuing company, most of the times the name of the company printed on the token (RFID card), not necessarily the eMSP.
          type: string
        group_id:
          description: This ID groups a couple of tokens. This can be used to make two or more tokens work as one, so that a session can be started with one token andstopped with another, handy when a card and key-fob are given to the EV-driver.Beware that OCPP 1.5/1.6 only support group_ids (it is called parentId in OCPP 1.5/1.6) with a maximum length of 20
          type: string
        valid:
          description: Indicates whether this Token valid is or not.
          type: boolean
        whitelist:
          description: Indicates what type of white-listing is allowed
          type: string
          enum:
            - ALWAYS
            - ALLOWED
            - ALLOWED_OFFLINE
            - NEVER
        language:
          description: Language Code ISO 639-1. This optional field indicates the Token owner’s preferred interface language. If the language is not provided or not supported then the CPO is free to choose its own language.
          type: string
        default_profile_type:
          description: The default Charging Preference. When this is provided, and a charging session is started on an Charge Point that support Preference base Smart Charging and support this ProfileType, the Charge Point can start using this ProfileType,without this having to be set via- Set Charging Preferences
          type: string
          enum:
            - CHEAP
            - FAST
            - GREEN
            - REGULAR
        energy_contract:
          $ref: "#/components/schemas/EnergyContract"
        last_updated:
          description: Timestamp when this Token was last updated (or created)
          type: string
    StartSession:
      description: StartSession object, for the START_SESSION command, with information needed to start a sessions
      required:
        - location_id
        - response_url
        - token
      type: object
      properties:
        response_url:
          description: URL that the CommandResult POST should be sent to. This URL might contain an unique ID to be able to distinguish between StartSession requests.
          type: string
        token:
          $ref: "#/components/schemas/Token"
        location_id:
          description: Location.id of the Location (belonging to the CPO this request is send to) on which a session is to be started
          type: string
        evse_uid:
          description: Optional EVSE.uid of the EVSE of this Location on which a session is to be started.
          type: string
        authorization_reference:
          description: Reference to the authorization given by the eMSP, when given, this reference will be provided in the relevant Session and/or CDR.
          type: string
    StopSession:
      description: StopSession object, for the STOP_SESSION command, with information needed to stop a sessions.
      required:
        - response_url
        - session_id
      type: object
      properties:
        response_url:
          description: URL that the CommandResult POST should be sent to. This URL might contain an unique ID to be able to distinguish between StopSession requests.
          type: string
        session_id:
          description: Session.id of the Session that is requested to be stopped
          type: string
    UnlockConnector:
      description: UnlockConnector object, for the UNLOCK_CONNECTOR command, with information needed to unlock a connector of a Charge Point.
      required:
        - connector_id
        - evse_uid
        - location_id
        - response_url
      type: object
      properties:
        response_url:
          description: URL that the CommandResult POST should be sent to. This URL might contain an unique ID to be able to distinguish between UnlockConnector requests.
          type: string
        location_id:
          description: Location.id of the Location (belonging to the CPO this request is send to) of which it is requested to unlock the connector
          type: string
        evse_uid:
          description: EVSE.uid of the EVSE of this Location of which it is requested to unlock the connector
          type: string
        connector_id:
          description: Connector.id of the Connector of this Location of which it is requested to unlock
          type: string
    BusinessDetails:
      description: Details of a party
      required:
        - name
      type: object
      properties:
        name:
          description: Name of the operator
          type: string
        website:
          description: Link to the operator’s website
          type: string
        logo:
          $ref: "#/components/schemas/Image"
    Credentials:
      description: Credentials detail
      required:
        - roles
        - token
        - url
      type: object
      properties:
        token:
          description: Case Sensitive, ASCII only. The credentials token for the other party to authenticate in your system. Not encoded in Base64 or any other encoding.
          type: string
        url:
          description: The URL to your API versions endpoint
          type: string
        roles:
          description: List of the roles this party provides
          type: array
          items:
            $ref: "#/components/schemas/CredentialsRole"
    CredentialsRole:
      description: A list of the roles this party provides.
      required:
        - business_details
        - country_code
        - party_id
        - role
      type: object
      properties:
        role:
          description: Type of role
          type: string
          enum:
            - CPO
            - EMSP
            - HUB
            - NAP
            - NSP
            - OTHER
            - SCSP
        business_details:
          $ref: "#/components/schemas/BusinessDetails"
        party_id:
          description: CPO, eMSP (or other role) ID of this party (following the ISO-15118standard)
          type: string
        country_code:
          description: ISO-3166 alpha-2 country code of the country this party is operating in
          type: string
    Image:
      description: References an image related to an EVSE in terms of a file name or url.
      required:
        - category
        - type
        - url
      type: object
      properties:
        url:
          description: URL from where the image data can be fetched through a web browser
          type: string
        thumbnail:
          description: URL from where a thumbnail of the image can be fetched through a web browser
          type: string
        category:
          description: Describes what the image is used for
          type: string
          enum:
            - CHARGER
            - ENTRANCE
            - LOCATION
            - NETWORK
            - OPERATOR
            - OTHER
            - OWNER
        type:
          description: Image type like- gif, jpeg, png, svg
          type: string
        width:
          description: Width of the full scale image
          type: integer
          format: int32
        height:
          description: Height of the full scale image
          type: integer
          format: int32
    OcpiResponseCredentials:
      description: OCPI response credentials detail
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Credentials"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponse:
      description: OCPI response
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: Response data
          type: object
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    AdditionalGeoLocation:
      description: An additional geo location that is relevant for the Charge Point. The geodetic system to be used is WGS 84.
      required:
        - latitude
        - longitude
      type: object
      properties:
        latitude:
          description: Latitude of the point in decimal degree. Example- 50.770774. Decimal separator- "." Regex- -?[0-9]{1,2}\.[0-9]{5,7}
          type: string
        longitude:
          description: Longitude of the point in decimal degree. Example- -126.104965. Decimal separator- "." Regex- -?[0-9]{1,3}\.[0-9]{5,7}
          type: string
        name:
          $ref: "#/components/schemas/DisplayText"
    Connector:
      description: The socket or cable and plug available for the EV to use. A single EVSE may provide multiple Connectors but onlyone of them can be in use at the same time. A Connector always belongs to an EVSE object.
      required:
        - format
        - id
        - last_updated
        - max_amperage
        - max_voltage
        - power_type
        - standard
      type: object
      properties:
        id:
          description: Identifier of the Connector within the EVSE. Two Connectors may have the same id as long as they do not belong to the same EVSE object
          type: string
        standard:
          description: The standard of the installed connector
          type: string
          enum:
            - CHADEMO
            - DOMESTIC_A
            - DOMESTIC_B
            - DOMESTIC_C
            - DOMESTIC_D
            - DOMESTIC_E
            - DOMESTIC_F
            - DOMESTIC_G
            - DOMESTIC_H
            - DOMESTIC_I
            - DOMESTIC_J
            - DOMESTIC_K
            - DOMESTIC_L
            - IEC_60309_2_single_16
            - IEC_60309_2_three_16
            - IEC_60309_2_three_32
            - IEC_60309_2_three_64
            - IEC_62196_T1
            - IEC_62196_T1_COMBO
            - IEC_62196_T2
            - IEC_62196_T2_COMBO
            - IEC_62196_T3A
            - IEC_62196_T3C
            - PANTOGRAPH_BOTTOM_UP
            - PANTOGRAPH_TOP_DOWN
            - TESLA_R
            - TESLA_S
        format:
          description: The format (socket/cable) of the installed connector
          type: string
          enum:
            - SOCKET
            - CABLE
        power_type:
          description: Power type
          type: string
          enum:
            - AC_1_PHASE
            - AC_3_PHASE
            - DC
        max_voltage:
          description: Maximum voltage of the connector (line to neutral for AC_3_PHASE), in volt [V]. For example- DC Chargers might vary the voltage during charging when battery almost full
          type: integer
          format: int32
        max_amperage:
          description: Maximum amperage of the connector, in ampere [A]
          type: integer
          format: int32
        max_electric_power:
          description: Maximum electric power that can be delivered by this connector, inWatts (W)
          type: integer
          format: int32
        tariff_ids:
          description: Identifiers of the currently valid charging tariffs. Multiple tariffs are possible, but only one of each Tariff.type can be active at the same time.Tariffs with the same type are only allowed if they are not active at the same time- start_date_time and end_date_time period not overlapping.When preference-based smart charging is supported, one tariff forevery possible ProfileType should be provided. These tell the user aboutthe options they have at this Connector, and what the tariff is for every option.For a "free of charge" tariff, this field should be set and point to a defined "free of charge" tariff.
          type: array
          items:
            type: string
        terms_and_conditions:
          description: URL to the operator’s terms and conditions
          type: string
        last_updated:
          description: Timestamp when this Connector was last updated (or created)
          type: string
    Evse:
      description: The part that controls the power supply to a single EV in a single session
      required:
        - connectors
        - last_updated
        - status
        - uid
      type: object
      properties:
        uid:
          description: Uniquely identifies the EVSE within the CPO's platform (and sub operator platforms)
          type: string
        evse_id:
          description: Compliant with the following specification for EVSE ID from "eMI3 standard version V1.0" (http://emi3group.com/documents-links/) "Part 2:business objects." Optional because- if an evse_id is to be re-used in the real world, the evse_id can be removed from an EVSE object if the status is set to REMOVED.
          type: string
        status:
          description: Indicates the current status of the EVSE
          type: string
          enum:
            - AVAILABLE
            - BLOCKED
            - CHARGING
            - INOPERATIVE
            - OUTOFORDER
            - PLANNED
            - REMOVED
            - RESERVED
            - UNKNOWN
        status_schedule:
          description: Indicates a planned status update of the EVSE
          type: array
          items:
            $ref: "#/components/schemas/StatusSchedule"
        capabilities:
          description: List of functionalities that the EVSE is capable of
          type: array
          items:
            type: string
            enum:
              - CHARGING_PROFILE_CAPABLE
              - CHARGING_PREFERENCES_CAPABLE
              - CHIP_CARD_SUPPORT
              - CONTACTLESS_CARD_SUPPORT
              - CREDIT_CARD_PAYABLE
              - DEBIT_CARD_PAYABLE
              - PED_TERMINAL
              - REMOTE_START_STOP_CAPABLE
              - RESERVABLE
              - RFID_READER
              - TOKEN_GROUP_CAPABLE
              - UNLOCK_CAPABLE
        connectors:
          description: List of available connectors on the EVSE
          type: array
          items:
            $ref: "#/components/schemas/Connector"
        floor_level:
          description: Level on which the Charge Point is located (in garage buildings) in the locally displayed numbering scheme.
          type: string
        coordinates:
          $ref: "#/components/schemas/GeoLocation"
        physical_reference:
          description: A number/string printed on the outside of the EVSE for visual identification.
          type: string
        directions:
          description: Multi-language human-readable directions when more detailed information on how to reach the EVSE from the Location is required.
          type: array
          items:
            $ref: "#/components/schemas/DisplayText"
        parking_restrictions:
          description: The restrictions that apply to the parking spot.
          type: array
          items:
            type: string
            enum:
              - EV_ONLY
              - PLUGGED
              - DISABLED
              - CUSTOMERS
              - MOTORCYCLES
        images:
          description: Links to images related to the EVSE such as photos or logos
          type: array
          items:
            $ref: "#/components/schemas/Image"
        last_updated:
          description: Timestamp when this EVSE or one of its Connectors was last updated(or created)
          type: string
    ExceptionalPeriod:
      description: Specifies one exceptional period for opening or access hour
      required:
        - period_begin
        - period_end
      type: object
      properties:
        period_begin:
          description: Begin of the exception. In UTC, time_zone field can be used to convert to local time.
          type: string
        period_end:
          description: End of the exception. In UTC, time_zone field can be used to convert to local time.
          type: string
    Hours:
      description: Opening and access hours of the location
      required:
        - twentyfourseven
      type: object
      properties:
        twentyfourseven:
          description: True to represent 24 hours a day and 7 days a week, except the givenexceptions.
          type: boolean
        regular_hours:
          $ref: "#/components/schemas/RegularHours"
        exceptional_openings:
          $ref: "#/components/schemas/ExceptionalPeriod"
        exceptional_closings:
          $ref: "#/components/schemas/ExceptionalPeriod"
    Location:
      description: The location and its properties where a group of EVSEs that belong together are installed
      required:
        - address
        - city
        - coordinates
        - country
        - country_code
        - id
        - last_updated
        - party_id
        - publish
      type: object
      properties:
        country_code:
          description: ISO-3166 alpha-2 country code of the CPO that 'owns' thisLocation.
          type: string
        party_id:
          description: CPO ID of the CPO that 'owns' this Location (following the ISO-15118 standard)
          type: string
        id:
          description: Uniquely identifies the location within the CPO's platform (and sub operator platforms). This field can never be changed,modified or renamed
          type: string
        publish:
          description: Defines if a Location may be published on an website or app etc
          type: boolean
        publish_allowed_to:
          description: This field may only be used when the publish field is set to false Only owners of Tokens that match all the set fields of one Publish Token in the list are allowed to be shown this location
          type: array
          items:
            $ref: "#/components/schemas/PublishTokenType"
        name:
          description: Display name of the location
          type: string
        address:
          description: Street/block name and house number if available
          type: string
        city:
          description: City or town
          type: string
        postal_code:
          description: Postal code of the location, may only be omitted when the location has no postal code- in some countries charging locations at highways don’t have postal codes
          type: string
        state:
          description: State or province of the location, only to be used when relevant
          type: string
        country:
          description: ISO 3166-1 alpha-3 code for the country of this location
          type: string
        coordinates:
          $ref: "#/components/schemas/GeoLocation"
        related_locations:
          description: Geographical location of related points relevant to the user
          type: array
          items:
            $ref: "#/components/schemas/AdditionalGeoLocation"
        parking_type:
          description: The general type of parking at the charge point location
          type: string
          enum:
            - ALONG_MOTORWAY
            - PARKING_GARAGE
            - PARKING_LOT
            - ON_DRIVEWAY
            - ON_STREET
            - UNDERGROUND_GARAGE
        evses:
          description: List of EVSEs that belong to this Location
          type: array
          items:
            $ref: "#/components/schemas/Evse"
        directions:
          description: Human-readable directions on how to reach the location
          type: array
          items:
            $ref: "#/components/schemas/DisplayText"
        operator:
          $ref: "#/components/schemas/BusinessDetails"
        suboperator:
          $ref: "#/components/schemas/BusinessDetails"
        owner:
          $ref: "#/components/schemas/BusinessDetails"
        facilities:
          description: Optional list of facilities this charging location directly belongsto.
          type: array
          items:
            type: string
            enum:
              - HOTEL
              - RESTAURANT
              - CAFE
              - MALL
              - SUPERMARKET
              - SPORT
              - RECREATION_AREA
              - NATURE
              - MUSEUM
              - BIKE_SHARING
              - BUS_STOP
              - TAXI_STAND
              - TRAM_STOP
              - METRO_STATION
              - TRAIN_STATION
              - AIRPORT
              - PARKING_LOT
              - CARPOOL_PARKING
              - FUEL_STATION
              - WIFI
        time_zone:
          description: One of IANA tzdata’s TZ-values representing the time zone of the location. Examples- "Europe/Oslo", "Europe/Zurich".(http://www.iana.org/time-zones)
          type: string
        opening_times:
          $ref: "#/components/schemas/Hours"
        charging_when_closed:
          description: Indicates if the EVSEs are still charging outside the opening hours of the location. E.g. when the parking garage closes its barriers over night, is it allowed to charge till the next morning? Default- true
          type: string
        images:
          description: Links to images related to the location such as photos or logos
          type: array
          items:
            $ref: "#/components/schemas/Image"
        energy_mix:
          $ref: "#/components/schemas/EnergyMix"
        last_updated:
          description: Timestamp when this Location or one of its EVSEs orConnectors were last updated (or created)
          type: string
    OcpiResponseLocationList:
      description: OCPI response - Location list
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: An array of locations
          type: array
          items:
            $ref: "#/components/schemas/Location"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    PublishTokenType:
      description: Defines the set of values that identify a token to which a Location might be published
      type: object
      properties:
        uid:
          description: Unique ID by which this Token can be identified
          type: string
        type:
          description: Type of the token
          type: string
          enum:
            - AD_HOC_USER
            - APP_USER
            - OTHER
            - RFID
        visual_number:
          description: Visual readable number/identification as printed on the Token (RFID card)
          type: string
        issuer:
          description: Issuing company, most of the times the name of the company printed on the token (RFID card), not necessarily the eMSP
          type: string
        "group_id":
          description: This ID groups a couple of tokens. This can be used to make two or more tokens work as one.
          type: string
    RegularHours:
      description: Regular recurring operation or access hours
      required:
        - period_begin
        - period_end
        - weekday
      type: object
      properties:
        weekday:
          description: Number of day in the week, from Monday (1) till Sunday (7)
          type: integer
          format: int32
        period_begin:
          description: Begin of the regular period, in local time, given in hours and minutes. Must be in24h format with leading zeros. Examples- "18:15". Hour/Minute separator- ":"Regex- ([0-1][0-9]|2[0-3]):[0-5][0-9].
          type: string
        period_end:
          description: End of the regular period, in local time, syntax as for period_begin. Must be later than period_begin.
          type: string
    StatusSchedule:
      description: This type is used to schedule status periods in the future. The eMSP can provide this information to the EV user for trip planning purposes. A period MAY have no end. Example- "This station will be running as of tomorrow. Today it is still planned and under construction.
      required:
        - period_begin
        - status
      type: object
      properties:
        period_begin:
          description: Begin of the scheduled period
          type: string
        period_end:
          description: End of the scheduled period, if known
          type: string
        status:
          description: Status value during the scheduled period
          type: string
          enum:
            - AVAILABLE
            - BLOCKED
            - CHARGING
            - INOPERATIVE
            - OUTOFORDER
            - PLANNED
            - REMOVED
            - RESERVED
            - UNKNOWN
    OcpiResponseLocation:
      description: OCPI response  - 'Location'
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Location"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseEvse:
      description: OCPI response - `EVSE`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Evse"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseConnector:
      description: OCPI response  - `Connector`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Connector"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcnRulesListParty:
      description: OCN rules list party
      required:
        - country_code
        - modules
        - party_id
      type: object
      properties:
        party_id:
          description: Party ID
          type: string
        country_code:
          description: Country ID
          type: string
        modules:
          description: an array of Modules
          type: array
          items:
            type: string
    OcnRules:
      description: OCN rules
      required:
        - blacklist
        - signatures
        - whitelist
      type: object
      properties:
        signatures:
          description: Signatures
          type: boolean
        whitelist:
          $ref: "#/components/schemas/OcnRulesList"
        blacklist:
          $ref: "#/components/schemas/OcnRulesList"
    OcnRulesList:
      description: OCN Rules List
      required:
        - active
        - list
      type: object
      properties:
        active:
          description: Indicates the activations
          type: boolean
        list:
          description: An array of OCN rules list parties
          type: array
          items:
            $ref: "#/components/schemas/OcnRulesListParty"
    OcpiResponseOcnRules:
      description: OCPI response  - `OCN Rules`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/OcnRules"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseSessionList:
      description: OCPI response - Session List
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: An array of sessions
          type: array
          items:
            $ref: "#/components/schemas/Session"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    Session:
      description: Describes one charging session
      required:
        - auth_method
        - cdr_token
        - connector_id
        - country_code
        - currency
        - evse_uid
        - id
        - kwh
        - last_updated
        - location_id
        - party_id
        - start_date_time
        - status
      type: object
      properties:
        country_code:
          description: ISO-3166 alpha-2 country code of the CPO that 'owns' thisSession
          type: string
        party_id:
          description: CPO ID of the CPO that 'owns' this Session (following the ISO-15118 standard)
          type: string
        id:
          description: The unique id that identifies the charging session in the CPO platform
          type: string
        start_date_time:
          description: The timestamp when the session became ACTIVE in the ChargePoint.When the session is still PENDING, this field shall be set to the time the Session was created at the Charge Point. When a Session goes from PENDING to ACTIVE, this field SHALL be update to the moment the Session went to ACTIVE in the Charge Point.
          type: string
        end_date_time:
          description: The timestamp when the session was completed/finished, charging might have finished before the session ends, for example- EV is full,but parking cost also has to be paid.
          type: string
        kwh:
          description: How many kWh were charged
          type: number
          format: float
        cdr_token:
          $ref: "#/components/schemas/CdrToken"
        auth_method:
          description: Method used for authentication
          type: string
          enum:
            - AUTH_REQUEST
            - COMMAND
            - WHITELIST
        authorization_reference:
          description: Reference to the authorization given by the eMSP. When the eMSP provided an authorization_reference in either- real-time authorization or StartSession, this field SHALL contain the samevalue. When different authorization_reference values have been given by the eMSP that are relevant to this Session, the last given value SHALL be used here.
          type: string
        location_id:
          description: Location.id of the Location object of this CPO, on which the charging session is/was happening.
          type: string
        evse_uid:
          description: Location.id of the Location object of this CPO, on which the charging session is/was happening.
          type: string
        connector_id:
          description: Connector.id of the Connector of this Location the charging session is/was happening.
          type: string
        meter_id:
          description: Optional identification of the kWh meter.
          type: string
        currency:
          description: ISO 4217 code of the currency used for this session
          type: string
        charging_periods:
          description: An optional list of Charging Periods that can be used to calculateand verify the total cost.
          type: array
          items:
            $ref: "#/components/schemas/ChargingPeriod"
        total_cost:
          $ref: "#/components/schemas/Price"
        status:
          description: The status of the session
          type: string
          enum:
            - ACTIVE
            - COMPLETED
            - INVALID
            - PENDING
            - RESERVATION
        last_updated:
          description: Timestamp when this Session was last updated (or created)
          type: string
    ChargingPreferences:
      description: Contains the charging preferences of an EV driver
      required:
        - profile_type
      type: object
      properties:
        profile_type:
          description: Type of Smart Charging Profile selected by the driver. The ProfileType has to be supported at the Connector and for every supported ProfileType, a Tariff MUSTbe provided. This gives the EV driver the option between different pricing options.
          type: string
          enum:
            - CHEAP
            - FAST
            - GREEN
            - REGULAR
        departure_time:
          description: Expected departure. The driver has given this Date/Time as expected departure moment. It is only an estimation and not necessarily the Date/Time of the actual departure.
          type: string
        energy_need:
          description: Requested amount of energy in kWh. The EV driver wants to have this amountof energy charged
          type: number
          format: float
        discharge_allowed:
          description: The driver allows their EV to be discharged when needed, as long as the other preferences are met- EV is charged with the preferred energy (energy_need)until the preferred departure moment (departure_time). Default if omitted:false
          type: boolean
    OcpiResponseChargingPreferencesResponse:
      description: OCPI response - `Charging preference reponse`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: Charging preference response data
          type: string
          enum:
            - ACCEPTED
            - DEPARTURE_REQUIRED
            - ENERGY_NEED_REQUIRED
            - NOT_POSSIBLE
            - PROFILE_TYPE_NOT_SUPPORTED
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseSession:
      description: OCPI response  - `Session`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Session"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseTariffList:
      description: OPCI response  - `Tariff list`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: An array of tariffs
          type: array
          items:
            $ref: "#/components/schemas/Tariff"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseTariff:
      description: OCPI response - `Tariff`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Tariff"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseTokenList:
      description: OCPI response - `Token List`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          description: An array of tokens
          type: array
          items:
            $ref: "#/components/schemas/Token"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    LocationReferences:
      description: References to location details.
      required:
        - location_id
      type: object
      properties:
        location_id:
          description: Unique identifier for the location
          type: string
        evse_uids:
          description: Unique identifiers for EVSEs within the CPO’s platform for the EVSE within the given location
          type: array
          items:
            type: string
        connector_ids:
          description: Connector IDs
          type: array
          items:
            type: string
    AuthorizationInfo:
      description: Contains information about the authorization, if the Token is allowed to charge and optionally which EVSEs are allowed to be used.
      required:
        - allowed
        - token
      type: object
      properties:
        allowed:
          description: Status of the Token, and whether charging is allowed at the optionally given location
          type: string
          enum:
            - ALLOWED
            - BLOCKED
            - EXPIRED
            - NO_CREDIT
            - NOT_ALLOWED
        token:
          $ref: "#/components/schemas/Token"
        location:
          $ref: "#/components/schemas/LocationReferences"
        authorization_reference:
          description: Reference to the authorization given by the eMSP. When the eMSP provided an authorization_reference in either- real-time authorization or StartSession, this field shall contain the same value. When different authorization_reference values havebeen given by the eMSP that are relevant to this Session, the lastgiven value shall be used here.
          type: string
        info:
          $ref: "#/components/schemas/DisplayText"
    OcpiResponseAuthorizationInfo:
      description: OCPI response  - `Authorization Information`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/AuthorizationInfo"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
    OcpiResponseToken:
      description: OCPI response - `Token`
      required:
        - status_code
        - timestamp
      type: object
      properties:
        status_code:
          description: OCPI status code, as listed in [Status Codes](https://evroaming.org/app/uploads/2020/06/OCPI-2.2-d2.pdf#status_codes_status_codes), indicates how the request was handled. To avoid confusion with HTTP codes, OCPI status codes consist of four digits.
          type: integer
          format: int32
        status_message:
          description: An optional status message which may help when debugging
          type: string
        data:
          $ref: "#/components/schemas/Token"
        timestamp:
          description: The time this message was generated
          type: string
        ocn_signature:
          description: OCN signature
          type: string
