Integration API Reference
Package chargelink.integration.v1, API version 1.8.0, served over plaintext HTTP/2 gRPC on 127.0.0.1:50051 by chargelink integration serve. The proto file for the installed release (integration.proto) is the normative definition; this page summarises it for client developers.
Conventions
- Every request carries
RequestContext{request_id,correlation_id,session_id,campaign_id,requested_api,idempotency_key}; every response carriesResponseContext. - Limits:
max_page_size1000,max_signal_batch_size512 (fromGetCapabilities). - Streams (
Watch*) deliver state changes; pollingGet*is always available. - Errors are returned as standard gRPC status codes.
Services and RPCs
| Service | RPCs | Notes |
|---|---|---|
| HealthService | GetHealth, GetVersion, GetCapabilities, WatchHealth (stream) | Health states STARTING / SERVING / DEGRADED / STOPPING with uptime_ms. Capabilities carry enabled and claim_boundary per entry, the protocol list and the traceability standards. |
| ConfigurationService | ValidateConfiguration, LoadConfiguration, GetConfiguration, UpdateConfiguration (configuration_json, expected_revision), ListProfiles, ResolveProfile | Optimistic concurrency through the revision. |
| SessionService | CreateSession (session_id, profile_id, protocol, chargelink_role, sut_role, configuration_json), ConfigureSession, StartSession, PauseSession, ResumeSession, StopSession, DeleteSession, GetSession, ListSessions, WatchSession (stream) | States from CREATED through RUNNING, COMPLETED to TERMINATED. Manages server-side session records; a listener started from the CLI is not bound to these records. |
| ProtocolService | ListProtocols, ListChargingModes, ListPaymentModes, ListSecurityModes, GetProtocolCapabilities, GetProtocolState, WatchProtocolState | GetProtocolState returns unobserved unless a bound observer exists (a session bound to a listener; capability bound-live-protocol-observer). |
| SignalService | ListSignals, ReadSignals, WriteSignals, SubscribeSignals (max_update_rate_hz, queue_capacity, after_sequence), GetSignalMetadata, CreateAcquisition (sample_rate_hz), StartAcquisition, StopAcquisition, GetAcquisition | 94 canonical signals; samples carry SourceIdentity { epoch, sequence, target_time_ms, applied_command_sequence, host_monotonic_ns } so that a client can detect stale values. Metadata: unit, direction, min/max, nominal sample rate. |
| TimeService | ConfigureTime (mode WALL_CLOCK / EXTERNALLY_CLOCKED / STEP_BASED / FASTER_THAN_REALTIME / DETERMINISTIC_REPLAY, fixed_step_ns, rate, random_seed), InitializeTime, PauseTime, ResumeTime, StepTime, GetTime, CreateCheckpoint, RestoreCheckpoint, WatchTime | Time modes for managed SIL sessions and campaigns. |
| SilService | CreateSilSession (topology EVSE_NATIVE_SIL_EVCC or EVCC_NATIVE_SIL_EVSE, tls_required, ipv6_host, interface_index), InitializeSilSession, PauseSilSession, ResumeSilSession, RunNetworkExchange, RunCampaignBridge, GetSilSession, StopSilSession, TerminateSilSession, WatchSilSession | Managed SIL over real IPv6 loopback networking (SDP UDP 15118, TCP 50118), optional TLS, V2GTP and EXI; the campaign bridge evaluates the session evidence. |
| HilService | ListHardwareAdapters, GetHardwareAdapter, CreateHardwareSession, ConfigureHardwareSession (HardwareIoMapping), ApplyHardwareCalibration, InitializeHardwareSession, StartHardwareSession, PauseHardwareSession, ResumeHardwareSession, SynchronizeHardwareSession (cycle_ns, maximum_jitter_ns), WriteHardwareSignals, ReadHardwareSignals, InjectHardwareFault, ClearHardwareFault, EmergencyStopHardwareSession, CaptureHardwareEvidence, GetHardwareSession, StopHardwareSession, TerminateHardwareSession, WatchHardwareSession | Vendor-neutral adapter SDK; the shipped adapter is deterministic-hardware-simulator (physical_hardware_present: false). Fault kinds: control_pilot_fault, proximity_disconnected, isolation_fault, contactor_welded, overtemperature, cooling_loss, plc_link_loss, can_bus_off, emergency_stop. |
| XilService | ListXilBridges, GetXilBridge, CreateXilSession, ConfigureXilSession (XilVariableMapping: framework variable, port kind, testbench variable, direction, scale, offset, unit), LoadXilConfiguration, StartXilSession, PauseXilSession, ResumeXilSession, SynchronizeXilSession, ListXilVariables, ReadXilVariables, WriteXilVariables, ConfigureXilCapture (sample_period_ns), RunXilSignalGeneration, InjectXilElectricalFault, ClearXilElectricalFault, CaptureXilEvidence, GetXilSession, StopXilSession, TerminateXilSession, WatchXilSession | ASAM XIL Framework / MAPort / EESPort model with the reference bridge veristand-asam-xil-reference. Electrical faults: OpenCircuit, ShortToGround, ShortToBattery, Resistance, Intermittent. |
| TestCampaignService | ListTestPackages, ListTestAreas, ListTestCases, CreateTestPlan, RunCampaign, StopCampaign, GetCampaign, WatchCampaign, GetCaseResult, ListCaseResults | Same test cases and verdicts as chargelink test; verdicts require live-SUT or validated-replay evidence. |
| EvidenceService | ListEvidence, GetEvidence, StreamEvidence, ExportEvidence, VerifyEvidence | SHA-256 integrity; export honours redaction classes. |
| ReportService | GenerateReport (campaign_id, format), GetReport, ListReports, ExportReport | JSON, Markdown and HTML. |
| FactoryService | ListFactoryStations, GetFactoryStation, ListFactoryRecipes, GetFactoryRecipe, CreateFactoryExecution, ConfigureFactoryExecution, StartFactoryExecution, PauseFactoryExecution, ResumeFactoryExecution, RecordFactoryMeasurement, CompleteFactoryStep, CompleteFactoryExecution, AbortFactoryExecution, GetFactoryExecution, ListFactoryExecutions, CaptureFactoryEvidence, GetFactoryEvidence, WatchFactoryExecution | Stations, recipes, limits and dispositions; the reference station reports no physical hardware. |
| EnterpriseService | ListEditions, ListRoleDefinitions, UpsertPrincipal, ListPrincipals, EvaluateAuthorization, PutSecret, ListSecretMetadata, DeleteSecret, VerifySecretStore, AppendAuditEvent, ListAuditEvents, VerifyAuditChain, EnrollRemoteAgent, HeartbeatRemoteAgent, ListRemoteAgents, GetFleetHealth, CreateUpdateManifest, VerifyUpdateManifest, ListUpdateManifests, CreateUpdateRollout, AdvanceUpdateRollout, PauseUpdateRollout, ResumeUpdateRollout, RollbackUpdateRollout, ListUpdateRollouts, CaptureEnterpriseEvidence, WatchEnterpriseEvents | Editions engineering / professional / enterprise / factory; reference implementation, not a substitute for an enterprise key store; EvaluateAuthorization is not enforced on other RPCs. |
Compatibility
- Generate clients from the proto of the installed release; check
GetCapabilities.api_versionat start-up and refuse to run against a lower major version. - Minor versions add services and fields; they do not remove them.
chargelink integration compatibilitychecks the API compatibility of the installed release.- The CLI smokes (
session-smoke,signals smoke,sil-smoke,hil-smoke,xil-smoke,factory-smoke,enterprise-smoke) are the reference behaviour for each service group.
Security
Transport: plaintext HTTP/2 on a loopback address only, with a per-start bearer token required on every call (authorization: Bearer <token>, token in <state-root>\api-token). ChargeLink components of different releases refuse each other, so on the NI VeriStand bench the owner host and chargelink.exe must come from the same release. Every client, including your own, must connect over loopback and send the token. See Production Security.

