docs: refine code comments
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
index 639cf8f7b8f1a54334bbce162bd6953f016ed241..68c20597c4edf2cbf8f5db99fe61ab6e3d970ea2 100644 (file)
@@ -1,10 +1,19 @@
-import { AutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
-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 'node:http';
+
+import type { ClientOptions } from 'ws';
+
+import type { AutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
+import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration';
+import type { ConnectorStatus } from './ConnectorStatus';
+import type { EvseTemplate } from './Evse';
+import type { OCPPProtocol } from './ocpp/OCPPProtocol';
+import type { OCPPVersion } from './ocpp/OCPPVersion';
+import type {
+  FirmwareStatus,
+  IncomingRequestCommand,
+  MessageTrigger,
+  RequestCommand,
+} from './ocpp/Requests';
 
 export enum CurrentType {
   AC = 'AC',
@@ -32,7 +41,30 @@ export enum Voltage {
 
 export type WsOptions = ClientOptions & ClientRequestArgs;
 
-export default interface ChargingStationTemplate {
+export interface FirmwareUpgrade {
+  versionUpgrade?: {
+    patternGroup?: number;
+    step?: number;
+  };
+  reset?: boolean;
+  failureStatus?: FirmwareStatus;
+}
+
+interface CommandsSupport {
+  incomingCommands: Record<IncomingRequestCommand, boolean>;
+  outgoingCommands?: Record<RequestCommand, boolean>;
+}
+
+enum x509CertificateType {
+  V2GRootCertificate = 'V2GRootCertificate',
+  MORootCertificate = 'MORootCertificate',
+  CSMSRootCertificate = 'CSMSRootCertificate',
+  ManufacturerRootCertificate = 'ManufacturerRootCertificate',
+  ChargingStationCertificate = 'ChargingStationCertificate',
+  V2GCertificate = 'V2GCertificate',
+}
+
+export interface ChargingStationTemplate {
   templateHash?: string;
   supervisionUrls?: string | string[];
   supervisionUrlOcppConfiguration?: boolean;
@@ -44,8 +76,9 @@ export default interface ChargingStationTemplate {
   ocppStrictCompliance?: boolean;
   ocppPersistentConfiguration?: boolean;
   stationInfoPersistentConfiguration?: boolean;
+  automaticTransactionGeneratorPersistentConfiguration?: boolean;
   wsOptions?: WsOptions;
-  authorizationFile?: string;
+  idTagsFile?: string;
   baseName: string;
   nameSuffix?: string;
   fixedName?: boolean;
@@ -53,14 +86,16 @@ export default interface ChargingStationTemplate {
   chargePointVendor: string;
   chargePointSerialNumberPrefix?: string;
   chargeBoxSerialNumberPrefix?: string;
+  firmwareVersionPattern?: string;
   firmwareVersion?: string;
+  firmwareUpgrade?: FirmwareUpgrade;
   iccid?: string;
   imsi?: string;
   meterSerialNumberPrefix?: string;
   meterType?: string;
-  power: number | number[];
+  power?: number | number[];
+  powerUnit?: PowerUnits;
   powerSharedByConnectors?: boolean;
-  powerUnit: PowerUnits;
   currentOutType?: CurrentType;
   voltageOut?: Voltage;
   numberOfPhases?: number;
@@ -73,7 +108,11 @@ export default interface ChargingStationTemplate {
   reconnectExponentialDelay?: boolean;
   registrationMaxRetries?: number;
   enableStatistics?: boolean;
-  mayAuthorizeAtRemoteStart: boolean;
+  remoteAuthorization?: boolean;
+  /** @deprecated Replaced by remoteAuthorization */
+  mustAuthorizeAtRemoteStart?: boolean;
+  /** @deprecated Replaced by ocppStrictCompliance */
+  payloadSchemaValidation?: boolean;
   amperageLimitationOcppKey?: string;
   amperageLimitationUnit?: AmpereUnits;
   beginEndMeterValues?: boolean;
@@ -83,7 +122,11 @@ export default interface ChargingStationTemplate {
   mainVoltageMeterValues?: boolean;
   phaseLineToLineVoltageMeterValues?: boolean;
   customValueLimitationMeterValues?: boolean;
+  commandsSupport?: CommandsSupport;
+  messageTriggerSupport?: Record<MessageTrigger, boolean>;
   Configuration?: ChargingStationOcppConfiguration;
   AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
-  Connectors: Record<string, ConnectorStatus>;
+  Evses?: Record<string, EvseTemplate>;
+  Connectors?: Record<string, ConnectorStatus>;
+  x509Certificates?: Record<x509CertificateType, string>;
 }