Apply dependencies update
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
index 7cc8023f8a729acb6160d2fd089a37285d8d2414..cd92616c11063cb4060013081ce8ffd45e974bc2 100644 (file)
@@ -1,9 +1,13 @@
-import ChargingStationOcppConfiguration from './ChargingStationOcppConfiguration';
-import { ClientOptions } from 'ws';
-import { ClientRequestArgs } from 'http';
-import { ConnectorStatus } from './ConnectorStatus';
-import { OCPPProtocol } from './ocpp/OCPPProtocol';
-import { OCPPVersion } from './ocpp/OCPPVersion';
+import type { ClientRequestArgs } from 'http';
+
+import type { ClientOptions } from 'ws';
+
+import type { AutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
+import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration';
+import type { ConnectorStatus } from './ConnectorStatus';
+import type { OCPPProtocol } from './ocpp/OCPPProtocol';
+import type { OCPPVersion } from './ocpp/OCPPVersion';
+import type { IncomingRequestCommand, MessageTrigger, RequestCommand } from './ocpp/Requests';
 
 export enum CurrentType {
   AC = 'AC',
@@ -29,21 +33,24 @@ export enum Voltage {
   VOLTAGE_800 = 800,
 }
 
-export interface AutomaticTransactionGenerator {
-  enable: boolean;
-  minDuration: number;
-  maxDuration: number;
-  minDelayBetweenTwoTransactions: number;
-  maxDelayBetweenTwoTransactions: number;
-  probabilityOfStart: number;
-  stopAfterHours: number;
-  stopOnConnectionFailure: boolean;
-  requireAuthorize?: boolean;
-}
-
 export type WsOptions = ClientOptions & ClientRequestArgs;
 
-export default interface ChargingStationTemplate {
+type FirmwareUpgrade = {
+  versionUpgrade: {
+    patternGroup?: number | number[];
+    to?: string;
+  };
+  reset?: boolean;
+  resetDelay?: number;
+  checkIntegrity?: boolean;
+};
+
+type CommandsSupport = {
+  incomingCommands: Record<IncomingRequestCommand, boolean>;
+  outgoingCommands?: Record<RequestCommand, boolean>;
+};
+
+export type ChargingStationTemplate = {
   templateHash?: string;
   supervisionUrls?: string | string[];
   supervisionUrlOcppConfiguration?: boolean;
@@ -54,6 +61,7 @@ export default interface ChargingStationTemplate {
   ocppProtocol?: OCPPProtocol;
   ocppStrictCompliance?: boolean;
   ocppPersistentConfiguration?: boolean;
+  stationInfoPersistentConfiguration?: boolean;
   wsOptions?: WsOptions;
   authorizationFile?: string;
   baseName: string;
@@ -63,7 +71,9 @@ export default interface ChargingStationTemplate {
   chargePointVendor: string;
   chargePointSerialNumberPrefix?: string;
   chargeBoxSerialNumberPrefix?: string;
+  firmwareVersionPattern?: string;
   firmwareVersion?: string;
+  firmwareUpgrade?: FirmwareUpgrade;
   iccid?: string;
   imsi?: string;
   meterSerialNumberPrefix?: string;
@@ -78,12 +88,13 @@ export default interface ChargingStationTemplate {
   useConnectorId0?: boolean;
   randomConnectors?: boolean;
   resetTime?: number;
-  autoRegister: boolean;
+  autoRegister?: boolean;
   autoReconnectMaxRetries?: number;
   reconnectExponentialDelay?: boolean;
   registrationMaxRetries?: number;
   enableStatistics?: boolean;
-  mayAuthorizeAtRemoteStart: boolean;
+  mustAuthorizeAtRemoteStart?: boolean;
+  payloadSchemaValidation?: boolean;
   amperageLimitationOcppKey?: string;
   amperageLimitationUnit?: AmpereUnits;
   beginEndMeterValues?: boolean;
@@ -92,7 +103,10 @@ export default interface ChargingStationTemplate {
   transactionDataMeterValues?: boolean;
   mainVoltageMeterValues?: boolean;
   phaseLineToLineVoltageMeterValues?: boolean;
+  customValueLimitationMeterValues?: boolean;
+  commandsSupport?: CommandsSupport;
+  messageTriggerSupport?: Record<MessageTrigger, boolean>;
   Configuration?: ChargingStationOcppConfiguration;
-  AutomaticTransactionGenerator: AutomaticTransactionGenerator;
+  AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
   Connectors: Record<string, ConnectorStatus>;
-}
+};