﻿{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "$id": "urn:OCPP:Cp:2:2018:4:NotifyEVChargingNeedsRequest",
  "comment": "OCPP 2.0 - v1p0",
  "definitions": {
    "EnergyTransferModeEnumType": {
      "type": "string",
      "additionalProperties": true,
      "enum": [
        "AC_single_phase_core",
        "AC_three_phase_core",
        "DC_combo_core",
        "DC_core",
        "DC_extended",
        "DC_unique"
      ]
    },
    "ACChargingParametersType": {
      "javaType": "ACChargingParameters",
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "energyAmount": {
          "type": "integer"
        },
        "evMinCurrent": {
          "type": "integer"
        },
        "evMaxCurrent": {
          "type": "integer"
        },
        "evMaxVoltage": {
          "type": "integer"
        }
      },
      "required": [
        "energyAmount",
        "evMinCurrent",
        "evMaxCurrent",
        "evMaxVoltage"
      ]
    },
    "ChargingNeedsType": {
      "javaType": "ChargingNeeds",
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "acChargingParameters": {
          "$ref": "#/definitions/ACChargingParametersType"
        },
        "dcChargingParameters": {
          "$ref": "#/definitions/DCChargingParametersType"
        },
        "requestedEnergyTransfer": {
          "$ref": "#/definitions/EnergyTransferModeEnumType"
        },
        "departureTime": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "requestedEnergyTransfer"
      ]
    },
    "DCChargingParametersType": {
      "javaType": "DCChargingParameters",
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "evMaxCurrent": {
          "type": "integer"
        },
        "evMaxVoltage": {
          "type": "integer"
        },
        "energyAmount": {
          "type": "integer"
        },
        "evMaxPower": {
          "type": "integer"
        },
        "stateOfCharge": {
          "type": "integer",
          "minimum": 0.0,
          "maximum": 100.0
        },
        "evEnergyCapacity": {
          "type": "integer"
        },
        "fullSoC": {
          "type": "integer",
          "minimum": 0.0,
          "maximum": 100.0
        },
        "bulkSoC": {
          "type": "integer",
          "minimum": 0.0,
          "maximum": 100.0
        }
      },
      "required": [
        "evMaxCurrent",
        "evMaxVoltage"
      ]
    }
  },
  "type": "object",
  "additionalProperties": true,
  "properties": {
    "maxScheduleTuples": {
      "type": "integer"
    },
    "chargingNeeds": {
      "$ref": "#/definitions/ChargingNeedsType"
    },
    "evseId": {
      "type": "integer"
    }
  },
  "required": [
    "evseId",
    "chargingNeeds"
  ]
}