5#ifndef OCPP_V2_OCPP_TYPES_HPP
6#define OCPP_V2_OCPP_TYPES_HPP
10#include <nlohmann/json_fwd.hpp>
13#include <ocpp/common/types.hpp>
14#include <ocpp/v2/ocpp_enums.hpp>
19using CustomData = nlohmann::json;
24 std::optional<CustomData> customData;
34std::ostream& operator<<(std::ostream& os,
const AdditionalInfo& k);
39 std::optional<CustomData> customData;
40 std::optional<std::vector<AdditionalInfo>> additionalInfo;
43void to_json(json& j,
const IdToken& k);
46void from_json(
const json& j,
IdToken& k);
50std::ostream& operator<<(std::ostream& os,
const IdToken& k);
53 HashAlgorithmEnum hashAlgorithm;
58 std::optional<CustomData> customData;
71 MessageFormatEnum format;
73 std::optional<CustomData> customData;
74 std::optional<CiString<8>> language;
84std::ostream& operator<<(std::ostream& os,
const MessageContent& k);
87 AuthorizationStatusEnum status;
88 std::optional<CustomData> customData;
89 std::optional<ocpp::DateTime> cacheExpiryDateTime;
90 std::optional<int32_t> chargingPriority;
91 std::optional<CiString<8>> language1;
92 std::optional<std::vector<int32_t>> evseId;
93 std::optional<IdToken> groupIdToken;
94 std::optional<CiString<8>> language2;
95 std::optional<MessageContent> personalMessage;
105std::ostream& operator<<(std::ostream& os,
const IdTokenInfo& k);
108 std::optional<CustomData> customData;
109 std::optional<CiString<20>> iccid;
110 std::optional<CiString<20>> imsi;
113void to_json(json& j,
const Modem& k);
116void from_json(
const json& j,
Modem& k);
120std::ostream& operator<<(std::ostream& os,
const Modem& k);
125 std::optional<CustomData> customData;
126 std::optional<CiString<25>> serialNumber;
127 std::optional<Modem> modem;
128 std::optional<CiString<50>> firmwareVersion;
142 std::optional<CustomData> customData;
143 std::optional<CiString<512>> additionalInfo;
153std::ostream& operator<<(std::ostream& os,
const StatusInfo& k);
157 std::optional<CustomData> customData;
158 std::optional<int32_t> connectorId;
161void to_json(json& j,
const EVSE& k);
164void from_json(
const json& j,
EVSE& k);
168std::ostream& operator<<(std::ostream& os,
const EVSE& k);
171 std::optional<CustomData> customData;
172 std::optional<int32_t> evseId;
173 std::optional<ChargingProfilePurposeEnum> chargingProfilePurpose;
174 std::optional<int32_t> stackLevel;
187 ClearMonitoringStatusEnum status;
189 std::optional<CustomData> customData;
190 std::optional<StatusInfo> statusInfo;
203 HashAlgorithmEnum hashAlgorithm;
207 std::optional<CustomData> customData;
220 std::optional<CustomData> customData;
221 std::optional<ChargingProfilePurposeEnum> chargingProfilePurpose;
222 std::optional<int32_t> stackLevel;
223 std::optional<std::vector<int32_t>> chargingProfileId;
224 std::optional<std::vector<ChargingLimitSourceEnum>> chargingLimitSource;
239 std::optional<CustomData> customData;
240 std::optional<int32_t> numberPhases;
241 std::optional<int32_t> phaseToUse;
254 std::vector<ChargingSchedulePeriod> chargingSchedulePeriod;
258 ChargingRateUnitEnum chargingRateUnit;
259 std::optional<CustomData> customData;
273 GetCertificateIdUseEnum certificateType;
274 std::optional<CustomData> customData;
275 std::optional<std::vector<CertificateHashDataType>> childCertificateHashData;
289 std::optional<CustomData> customData;
290 std::optional<ocpp::DateTime> oldestTimestamp;
291 std::optional<ocpp::DateTime> latestTimestamp;
301std::ostream& operator<<(std::ostream& os,
const LogParameters& k);
305 std::optional<CustomData> customData;
306 std::optional<EVSE> evse;
307 std::optional<CiString<50>> instance;
310void to_json(json& j,
const Component& k);
313void from_json(
const json& j,
Component& k);
317std::ostream& operator<<(std::ostream& os,
const Component& k);
321 std::optional<CustomData> customData;
322 std::optional<CiString<50>> instance;
325void to_json(json& j,
const Variable& k);
328void from_json(
const json& j,
Variable& k);
332std::ostream& operator<<(std::ostream& os,
const Variable& k);
336 std::optional<CustomData> customData;
337 std::optional<Variable> variable;
352 std::optional<CustomData> customData;
353 std::optional<AttributeEnum> attributeType;
366 GetVariableStatusEnum attributeStatus;
369 std::optional<CustomData> customData;
370 std::optional<StatusInfo> attributeStatusInfo;
371 std::optional<AttributeEnum> attributeType;
372 std::optional<CiString<2500>> attributeValue;
389 std::optional<CustomData> customData;
402 std::optional<CustomData> customData;
403 std::optional<CiString<20>> unit;
404 std::optional<int32_t> multiplier;
414std::ostream& operator<<(std::ostream& os,
const UnitOfMeasure& k);
418 std::optional<CustomData> customData;
419 std::optional<ReadingContextEnum> context;
420 std::optional<MeasurandEnum> measurand;
421 std::optional<PhaseEnum> phase;
422 std::optional<LocationEnum> location;
423 std::optional<SignedMeterValue> signedMeterValue;
424 std::optional<UnitOfMeasure> unitOfMeasure;
434std::ostream& operator<<(std::ostream& os,
const SampledValue& k);
437 std::vector<SampledValue> sampledValue;
439 std::optional<CustomData> customData;
449std::ostream& operator<<(std::ostream& os,
const MeterValue& k);
453 std::optional<CustomData> customData;
454 std::optional<int32_t> duration;
467 CostKindEnum costKind;
469 std::optional<CustomData> customData;
470 std::optional<int32_t> amountMultiplier;
473void to_json(json& j,
const Cost& k);
476void from_json(
const json& j,
Cost& k);
480std::ostream& operator<<(std::ostream& os,
const Cost& k);
484 std::vector<Cost> cost;
485 std::optional<CustomData> customData;
499 std::optional<CustomData> customData;
500 std::optional<int32_t> ePriceLevel;
501 std::optional<std::vector<ConsumptionCost>> consumptionCost;
515 std::vector<SalesTariffEntry> salesTariffEntry;
516 std::optional<CustomData> customData;
517 std::optional<CiString<32>> salesTariffDescription;
518 std::optional<int32_t> numEPriceLevels;
528std::ostream& operator<<(std::ostream& os,
const SalesTariff& k);
532 ChargingRateUnitEnum chargingRateUnit;
533 std::vector<ChargingSchedulePeriod> chargingSchedulePeriod;
534 std::optional<CustomData> customData;
535 std::optional<ocpp::DateTime> startSchedule;
536 std::optional<int32_t> duration;
537 std::optional<float> minChargingRate;
538 std::optional<SalesTariff> salesTariff;
551 ChargingLimitSourceEnum chargingLimitSource;
552 std::optional<CustomData> customData;
553 std::optional<bool> isGridCritical;
563std::ostream& operator<<(std::ostream& os,
const ChargingLimit& k);
567 MessagePriorityEnum priority;
569 std::optional<CustomData> customData;
570 std::optional<Component> display;
571 std::optional<MessageStateEnum> state;
572 std::optional<ocpp::DateTime> startDateTime;
573 std::optional<ocpp::DateTime> endDateTime;
574 std::optional<CiString<36>> transactionId;
584std::ostream& operator<<(std::ostream& os,
const MessageInfo& k);
587 int32_t energyAmount;
588 int32_t evMinCurrent;
589 int32_t evMaxCurrent;
590 int32_t evMaxVoltage;
591 std::optional<CustomData> customData;
604 int32_t evMaxCurrent;
605 int32_t evMaxVoltage;
606 std::optional<CustomData> customData;
607 std::optional<int32_t> energyAmount;
608 std::optional<int32_t> evMaxPower;
609 std::optional<int32_t> stateOfCharge;
610 std::optional<int32_t> evEnergyCapacity;
611 std::optional<int32_t> fullSoC;
612 std::optional<int32_t> bulkSoC;
625 EnergyTransferModeEnum requestedEnergyTransfer;
626 std::optional<CustomData> customData;
627 std::optional<ACChargingParameters> acChargingParameters;
628 std::optional<DCChargingParameters> dcChargingParameters;
629 std::optional<ocpp::DateTime> departureTime;
639std::ostream& operator<<(std::ostream& os,
const ChargingNeeds& k);
644 EventTriggerEnum trigger;
647 EventNotificationEnum eventNotificationType;
649 std::optional<CustomData> customData;
650 std::optional<int32_t> cause;
651 std::optional<CiString<50>> techCode;
652 std::optional<CiString<500>> techInfo;
653 std::optional<bool> cleared;
654 std::optional<CiString<36>> transactionId;
655 std::optional<int32_t> variableMonitoringId;
658void to_json(json& j,
const EventData& k);
661void from_json(
const json& j,
EventData& k);
665std::ostream& operator<<(std::ostream& os,
const EventData& k);
673 std::optional<CustomData> customData;
688 std::vector<VariableMonitoring> variableMonitoring;
689 std::optional<CustomData> customData;
699std::ostream& operator<<(std::ostream& os,
const MonitoringData& k);
702 std::optional<CustomData> customData;
703 std::optional<AttributeEnum> type;
704 std::optional<CiString<2500>> value;
705 std::optional<MutabilityEnum> mutability;
706 std::optional<bool> persistent;
707 std::optional<bool> constant;
721 bool supportsMonitoring;
722 std::optional<CustomData> customData;
723 std::optional<CiString<16>> unit;
724 std::optional<float> minLimit;
725 std::optional<float> maxLimit;
726 std::optional<CiString<1000>> valuesList;
741 std::vector<VariableAttribute> variableAttribute;
742 std::optional<CustomData> customData;
743 std::optional<VariableCharacteristics> variableCharacteristics;
753std::ostream& operator<<(std::ostream& os,
const ReportData& k);
758 ChargingProfilePurposeEnum chargingProfilePurpose;
759 ChargingProfileKindEnum chargingProfileKind;
760 std::vector<ChargingSchedule> chargingSchedule;
761 std::optional<CustomData> customData;
762 std::optional<RecurrencyKindEnum> recurrencyKind;
763 std::optional<ocpp::DateTime> validFrom;
764 std::optional<ocpp::DateTime> validTo;
765 std::optional<CiString<36>> transactionId;
779 std::optional<CustomData> customData;
780 std::optional<IdTokenInfo> idTokenInfo;
794 APNAuthenticationEnum apnAuthentication;
795 std::optional<CustomData> customData;
796 std::optional<CiString<20>> apnUserName;
797 std::optional<CiString<20>> apnPassword;
798 std::optional<int32_t> simPin;
799 std::optional<CiString<6>> preferredNetwork;
800 std::optional<bool> useOnlyPreferredNetwork;
803void to_json(json& j,
const APN& k);
806void from_json(
const json& j,
APN& k);
810std::ostream& operator<<(std::ostream& os,
const APN& k);
818 std::optional<CustomData> customData;
819 std::optional<CiString<20>> group;
822void to_json(json& j,
const VPN& k);
825void from_json(
const json& j,
VPN& k);
829std::ostream& operator<<(std::ostream& os,
const VPN& k);
832 OCPPVersionEnum ocppVersion;
833 OCPPTransportEnum ocppTransport;
835 int32_t messageTimeout;
836 int32_t securityProfile;
837 OCPPInterfaceEnum ocppInterface;
838 std::optional<CustomData> customData;
839 std::optional<APN> apn;
840 std::optional<VPN> vpn;
858 std::optional<CustomData> customData;
859 std::optional<int32_t> id;
860 std::optional<bool> transaction;
873 SetMonitoringStatusEnum status;
878 std::optional<CustomData> customData;
879 std::optional<int32_t> id;
880 std::optional<StatusInfo> statusInfo;
902 std::optional<CustomData> customData;
903 std::optional<AttributeEnum> attributeType;
916 SetVariableStatusEnum attributeStatus;
919 std::optional<CustomData> customData;
920 std::optional<AttributeEnum> attributeType;
921 std::optional<StatusInfo> attributeStatusInfo;
935 std::optional<CustomData> customData;
936 std::optional<ChargingStateEnum> chargingState;
937 std::optional<int32_t> timeSpentCharging;
938 std::optional<ReasonEnum> stoppedReason;
939 std::optional<int32_t> remoteStartId;
949std::ostream& operator<<(std::ostream& os,
const Transaction& k);
954 std::optional<CustomData> customData;
955 std::optional<ocpp::DateTime> installDateTime;
956 std::optional<CiString<5500>> signingCertificate;
957 std::optional<CiString<800>> signature;
960void to_json(json& j,
const Firmware& k);
963void from_json(
const json& j,
Firmware& k);
967std::ostream& operator<<(std::ostream& os,
const Firmware& k);
Contains a DateTime implementation that can parse and create RFC 3339 compatible strings.
Definition: types.hpp:109
Definition: ocpp_types.hpp:586
Definition: ocpp_types.hpp:792
Definition: ocpp_types.hpp:21
Definition: ocpp_types.hpp:777
Definition: ocpp_types.hpp:271
Definition: ocpp_types.hpp:202
Definition: ocpp_types.hpp:550
Definition: ocpp_types.hpp:624
Definition: ocpp_types.hpp:219
Definition: ocpp_types.hpp:755
Definition: ocpp_types.hpp:236
Definition: ocpp_types.hpp:530
Definition: ocpp_types.hpp:122
Definition: ocpp_types.hpp:170
Definition: ocpp_types.hpp:186
Definition: ocpp_types.hpp:334
Definition: ocpp_types.hpp:303
Definition: ocpp_types.hpp:253
The result of a configuration of a network profile.
Definition: ocpp_types.hpp:893
bool success
true if the configuration was successful
Definition: ocpp_types.hpp:895
std::optional< std::string > interface_address
ip address or interface string
Definition: ocpp_types.hpp:894
Definition: ocpp_types.hpp:482
Definition: ocpp_types.hpp:466
Definition: ocpp_types.hpp:603
Definition: ocpp_types.hpp:155
Definition: ocpp_types.hpp:641
Definition: ocpp_types.hpp:951
Definition: ocpp_types.hpp:349
Definition: ocpp_types.hpp:365
Definition: ocpp_types.hpp:86
Definition: ocpp_types.hpp:36
Definition: ocpp_types.hpp:287
Definition: ocpp_types.hpp:70
Definition: ocpp_types.hpp:565
Definition: ocpp_types.hpp:436
Definition: ocpp_types.hpp:107
Definition: ocpp_types.hpp:685
Definition: ocpp_types.hpp:831
Definition: ocpp_types.hpp:52
Definition: ocpp_types.hpp:451
Definition: ocpp_types.hpp:738
Definition: ocpp_types.hpp:969
Definition: ocpp_types.hpp:497
Definition: ocpp_types.hpp:513
Definition: ocpp_types.hpp:416
Definition: ocpp_types.hpp:852
Definition: ocpp_types.hpp:872
Definition: ocpp_types.hpp:898
Definition: ocpp_types.hpp:915
Definition: ocpp_types.hpp:384
Definition: ocpp_types.hpp:140
Definition: ocpp_types.hpp:933
Definition: ocpp_types.hpp:401
Definition: ocpp_types.hpp:812
Definition: ocpp_types.hpp:701
Definition: ocpp_types.hpp:719
Definition: ocpp_types.hpp:667
Definition: ocpp_types.hpp:319