Incoming requests payload validation with JSON schemas (#135)
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / 1.6 / Requests.ts
index 97b5d756e440b9478c573e48762aa9f6a7205456..145947aec338ba0d6b557b4954a51102d73be4a9 100644 (file)
@@ -1,54 +1,37 @@
-import { ChargingProfilePurposeType, OCPP16ChargingProfile } from './ChargingProfile';
-
 import { EmptyObject } from '../../EmptyObject';
-import { JsonType } from '../../JsonType';
+import { JsonObject } from '../../JsonType';
 import { OCPP16ChargePointErrorCode } from './ChargePointErrorCode';
 import { OCPP16ChargePointStatus } from './ChargePointStatus';
-import { OCPP16DiagnosticsStatus } from './DiagnosticsStatus';
+import { ChargingProfilePurposeType, OCPP16ChargingProfile } from './ChargingProfile';
 import { OCPP16StandardParametersKey } from './Configuration';
+import { OCPP16DiagnosticsStatus } from './DiagnosticsStatus';
 
 export enum OCPP16RequestCommand {
   BOOT_NOTIFICATION = 'BootNotification',
   HEARTBEAT = 'Heartbeat',
   STATUS_NOTIFICATION = 'StatusNotification',
-  CHANGE_CONFIGURATION = 'ChangeConfiguration',
   AUTHORIZE = 'Authorize',
   START_TRANSACTION = 'StartTransaction',
   STOP_TRANSACTION = 'StopTransaction',
   METER_VALUES = 'MeterValues',
-  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification'
+  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification',
 }
 
-export enum OCPP16IncomingRequestCommand {
-  RESET = 'Reset',
-  CLEAR_CACHE = 'ClearCache',
-  CHANGE_AVAILABILITY = 'ChangeAvailability',
-  UNLOCK_CONNECTOR = 'UnlockConnector',
-  GET_CONFIGURATION = 'GetConfiguration',
-  CHANGE_CONFIGURATION = 'ChangeConfiguration',
-  SET_CHARGING_PROFILE = 'SetChargingProfile',
-  CLEAR_CHARGING_PROFILE = 'ClearChargingProfile',
-  REMOTE_START_TRANSACTION = 'RemoteStartTransaction',
-  REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction',
-  GET_DIAGNOSTICS = 'GetDiagnostics',
-  TRIGGER_MESSAGE = 'TriggerMessage'
-}
+export type OCPP16HeartbeatRequest = EmptyObject;
 
-export type HeartbeatRequest = EmptyObject;
-
-export interface OCPP16BootNotificationRequest extends JsonType {
-  chargeBoxSerialNumber?: string;
+export interface OCPP16BootNotificationRequest extends JsonObject {
+  chargePointVendor: string;
   chargePointModel: string;
   chargePointSerialNumber?: string;
-  chargePointVendor: string;
+  chargeBoxSerialNumber?: string;
   firmwareVersion?: string;
   iccid?: string;
   imsi?: string;
-  meterSerialNumber?: string;
   meterType?: string;
+  meterSerialNumber?: string;
 }
 
-export interface StatusNotificationRequest extends JsonType {
+export interface OCPP16StatusNotificationRequest extends JsonObject {
   connectorId: number;
   errorCode: OCPP16ChargePointErrorCode;
   info?: string;
@@ -58,61 +41,78 @@ export interface StatusNotificationRequest extends JsonType {
   vendorErrorCode?: string;
 }
 
-export interface ChangeConfigurationRequest extends JsonType {
+export enum OCPP16IncomingRequestCommand {
+  RESET = 'Reset',
+  CLEAR_CACHE = 'ClearCache',
+  CHANGE_AVAILABILITY = 'ChangeAvailability',
+  UNLOCK_CONNECTOR = 'UnlockConnector',
+  GET_CONFIGURATION = 'GetConfiguration',
+  CHANGE_CONFIGURATION = 'ChangeConfiguration',
+  SET_CHARGING_PROFILE = 'SetChargingProfile',
+  CLEAR_CHARGING_PROFILE = 'ClearChargingProfile',
+  REMOTE_START_TRANSACTION = 'RemoteStartTransaction',
+  REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction',
+  GET_DIAGNOSTICS = 'GetDiagnostics',
+  TRIGGER_MESSAGE = 'TriggerMessage',
+}
+
+export type OCPP16ClearCacheRequest = EmptyObject;
+
+export interface ChangeConfigurationRequest extends JsonObject {
   key: string | OCPP16StandardParametersKey;
   value: string;
 }
 
-export interface RemoteStartTransactionRequest extends JsonType {
+export interface RemoteStartTransactionRequest extends JsonObject {
   connectorId: number;
   idTag: string;
   chargingProfile?: OCPP16ChargingProfile;
 }
 
-export interface RemoteStopTransactionRequest extends JsonType {
+export interface RemoteStopTransactionRequest extends JsonObject {
   transactionId: number;
 }
 
-export interface UnlockConnectorRequest extends JsonType {
+export interface UnlockConnectorRequest extends JsonObject {
   connectorId: number;
 }
 
-export interface GetConfigurationRequest extends JsonType {
+export interface GetConfigurationRequest extends JsonObject {
   key?: string | OCPP16StandardParametersKey[];
 }
 
 export enum ResetType {
   HARD = 'Hard',
-  SOFT = 'Soft'
+  SOFT = 'Soft',
 }
 
-export interface ResetRequest extends JsonType {
+export interface ResetRequest extends JsonObject {
   type: ResetType;
 }
 
-export interface SetChargingProfileRequest extends JsonType {
+export interface SetChargingProfileRequest extends JsonObject {
   connectorId: number;
   csChargingProfiles: OCPP16ChargingProfile;
 }
 
 export enum OCPP16AvailabilityType {
   INOPERATIVE = 'Inoperative',
-  OPERATIVE = 'Operative'
+  OPERATIVE = 'Operative',
 }
 
-export interface ChangeAvailabilityRequest extends JsonType {
+export interface ChangeAvailabilityRequest extends JsonObject {
   connectorId: number;
   type: OCPP16AvailabilityType;
 }
 
-export interface ClearChargingProfileRequest extends JsonType {
+export interface ClearChargingProfileRequest extends JsonObject {
   id?: number;
   connectorId?: number;
   chargingProfilePurpose?: ChargingProfilePurposeType;
   stackLevel?: number;
 }
 
-export interface GetDiagnosticsRequest extends JsonType {
+export interface GetDiagnosticsRequest extends JsonObject {
   location: string;
   retries?: number;
   retryInterval?: number;
@@ -120,8 +120,8 @@ export interface GetDiagnosticsRequest extends JsonType {
   stopTime?: Date;
 }
 
-export interface DiagnosticsStatusNotificationRequest extends JsonType {
-  status: OCPP16DiagnosticsStatus
+export interface DiagnosticsStatusNotificationRequest extends JsonObject {
+  status: OCPP16DiagnosticsStatus;
 }
 
 export enum MessageTrigger {
@@ -130,10 +130,10 @@ export enum MessageTrigger {
   FirmwareStatusNotification = 'FirmwareStatusNotification',
   Heartbeat = 'Heartbeat',
   MeterValues = 'MeterValues',
-  StatusNotification = 'StatusNotification'
+  StatusNotification = 'StatusNotification',
 }
 
-export interface OCPP16TriggerMessageRequest extends JsonType {
+export interface OCPP16TriggerMessageRequest extends JsonObject {
   requestedMessage: MessageTrigger;
-  connectorId?: number
+  connectorId?: number;
 }