Use import type where appropriate
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
index fd1d988f02e73e40c185bc3f2dcf32fa6eb89e24..789ce248bc3d5e40beba0ccc2a2e221a618501fb 100644 (file)
@@ -1,5 +1,7 @@
-import ChargingStationConfiguration from './ChargingStationConfiguration';
-import Connectors from './Connectors';
+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';
 
@@ -13,11 +15,18 @@ export enum PowerUnits {
   KILO_WATT = 'kW',
 }
 
+export enum AmpereUnits {
+  MILLI_AMPERE = 'mA',
+  CENTI_AMPERE = 'cA',
+  DECI_AMPERE = 'dA',
+  AMPERE = 'A',
+}
+
 export enum Voltage {
   VOLTAGE_110 = 110,
   VOLTAGE_230 = 230,
   VOLTAGE_400 = 400,
-  VOLTAGE_800 = 800
+  VOLTAGE_800 = 800,
 }
 
 export interface AutomaticTransactionGenerator {
@@ -29,21 +38,36 @@ export interface AutomaticTransactionGenerator {
   probabilityOfStart: number;
   stopAfterHours: number;
   stopOnConnectionFailure: boolean;
-  requireAuthorize?: boolean
+  requireAuthorize?: boolean;
 }
 
+export type WsOptions = ClientOptions & ClientRequestArgs;
+
 export default interface ChargingStationTemplate {
-  supervisionURL?: string;
+  templateHash?: string;
+  supervisionUrls?: string | string[];
+  supervisionUrlOcppConfiguration?: boolean;
+  supervisionUrlOcppKey?: string;
+  supervisionUser?: string;
+  supervisionPassword?: string;
   ocppVersion?: OCPPVersion;
   ocppProtocol?: OCPPProtocol;
+  ocppStrictCompliance?: boolean;
+  ocppPersistentConfiguration?: boolean;
+  wsOptions?: WsOptions;
   authorizationFile?: string;
   baseName: string;
   nameSuffix?: string;
   fixedName?: boolean;
   chargePointModel: string;
   chargePointVendor: string;
+  chargePointSerialNumberPrefix?: string;
   chargeBoxSerialNumberPrefix?: string;
   firmwareVersion?: string;
+  iccid?: string;
+  imsi?: string;
+  meterSerialNumberPrefix?: string;
+  meterType?: string;
   power: number | number[];
   powerSharedByConnectors?: boolean;
   powerUnit: PowerUnits;
@@ -54,17 +78,22 @@ export default interface ChargingStationTemplate {
   useConnectorId0?: boolean;
   randomConnectors?: boolean;
   resetTime?: number;
+  autoRegister: boolean;
   autoReconnectMaxRetries?: number;
   reconnectExponentialDelay?: boolean;
   registrationMaxRetries?: number;
   enableStatistics?: boolean;
+  mayAuthorizeAtRemoteStart: boolean;
+  amperageLimitationOcppKey?: string;
+  amperageLimitationUnit?: AmpereUnits;
   beginEndMeterValues?: boolean;
   outOfOrderEndMeterValues?: boolean;
   meteringPerTransaction?: boolean;
   transactionDataMeterValues?: boolean;
   mainVoltageMeterValues?: boolean;
   phaseLineToLineVoltageMeterValues?: boolean;
-  Configuration?: ChargingStationConfiguration;
+  customValueLimitationMeterValues?: boolean;
+  Configuration?: ChargingStationOcppConfiguration;
   AutomaticTransactionGenerator: AutomaticTransactionGenerator;
-  Connectors: Connectors;
+  Connectors: Record<string, ConnectorStatus>;
 }