Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_protocol.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <cstddef>
6#include <cstdint>
7#include <optional>
8#include <string>
9#include <string_view>
10#include <variant>
11#include <vector>
12
13namespace pulp::inspect {
14
15inline constexpr std::uint32_t kControlProtocolVersion = 1;
16inline constexpr std::string_view kControlEnvelopeSchema = "dev.pulp.control/envelope@1";
17inline constexpr std::string_view kControlLegacyInspectorJsonEncoding = "legacy-inspector-json-v1";
18inline constexpr std::size_t kControlMaximumRequestPayloadBytes = 512u * 1024u;
19inline constexpr std::size_t kControlMaximumEnvelopeBytes = 2u * 1024u * 1024u;
20inline constexpr std::size_t kControlHostMaximumArtifactPublications = 1;
21inline constexpr std::size_t kControlHostMaximumArtifactPublicationBytes = 1u * 1024u * 1024u;
22inline constexpr std::size_t kControlMaximumResultDetailBytes = 1600u * 1024u;
24inline constexpr std::size_t kControlReceiptMaximumRequestIdBytes = 128;
25inline constexpr std::size_t kControlReceiptMaximumOperationIdBytes = 256;
26inline constexpr std::size_t kControlReceiptMaximumExplanationBytes = 1024;
27inline constexpr std::size_t kControlReceiptMaximumCancellationReasonBytes = 1024;
28inline constexpr std::size_t kControlReceiptMaximumArtifacts = 64;
29inline constexpr std::size_t kControlReceiptMaximumArtifactIdBytes = 128;
30inline constexpr std::size_t kControlReceiptMaximumArtifactMediaTypeBytes = 128;
31inline constexpr std::size_t kControlReceiptMaximumEvidenceIds = 64;
32inline constexpr std::size_t kControlReceiptMaximumEvidenceIdBytes = 128;
33inline constexpr std::size_t kControlMaximumArtifactReadBytes = 1024u * 1024u;
34inline constexpr std::size_t kControlMaximumArtifactChunkBase64Bytes =
35 ((kControlMaximumArtifactReadBytes + 2u) / 3u) * 4u;
36inline constexpr std::size_t kControlMaximumStatusIdBytes = 64;
37inline constexpr std::size_t kControlMaximumErrorCodeBytes = 128;
38inline constexpr std::size_t kControlMaximumSdkVersionBytes = 128;
39inline constexpr std::size_t kControlMaximumArtifactMetadataFieldBytes = 512;
40inline constexpr std::size_t kControlMaximumArtifactContentTypeBytes = 256;
41inline constexpr std::size_t kControlHostPreflightMaximumBootstrapBase64Bytes = 24u * 1024u;
44static_assert(kControlMaximumArtifactChunkBase64Bytes + 256u * 1024u <=
46
50 friend bool operator==(const ControlProtocolRange&, const ControlProtocolRange&) = default;
51};
52
55 std::vector<std::string> mandatory_features;
56 std::vector<std::string> optional_features;
58 const ControlNegotiationOffer&) = default;
59};
60
68
77
81 const ControlNegotiationOffer& peer,
82 std::uint32_t local_security_floor = kControlProtocolVersion);
83
85 std::string request_id;
86 std::string client_id;
87 std::string registration_id;
88 std::string grant_id;
90 std::string operation_id;
91 std::uint32_t operation_version = 1;
92 std::string idempotency_key;
93 std::string request_hash;
94 std::int64_t deadline_unix_ms = 0;
95 std::uint64_t expected_state_generation = 0;
96 std::string params_json = "{}";
97 friend bool operator==(const ControlRequestEnvelope&, const ControlRequestEnvelope&) = default;
98};
99
101 std::string request_id;
103 std::string reason;
104 friend bool operator==(const ControlCancelEnvelope&, const ControlCancelEnvelope&) = default;
105};
106
110 std::string request_id;
111 std::string receipt_id;
112 std::uint64_t sequence = 0;
113 std::uint64_t current = 0;
114 std::uint64_t total = 0;
115 std::string detail_json = "{}";
117 const ControlProgressEnvelope&) = default;
118};
119
121 std::string request_id;
122 std::string admission_id;
124 const ControlSessionOpenEnvelope&) = default;
125};
126
128 std::string request_id;
129 bool accepted = false;
130 std::string client_id;
131 std::string error_code;
132 std::string explanation;
134 const ControlSessionOpenResult&) = default;
135};
136
142 std::string request_id;
143 std::string command;
144 std::string params_json = "{}";
146 const ControlManagementEnvelope&) = default;
147};
148
150 std::string request_id;
151 std::string status_id;
152 std::string data_json = "{}";
153 std::string explanation;
155 const ControlManagementResult&) = default;
156};
157
159 std::string request_id;
160 std::string admission_id;
161 std::string enrollment_id;
163 const ControlHostOpenEnvelope&) = default;
164};
165
167 std::string request_id;
168 bool accepted = false;
169 std::string registration_id;
170 std::string broker_id;
171 std::string session_id;
172 std::string instance_id;
173 std::string publication_id;
175 std::string manifest_digest;
177 std::string error_code;
178 std::string explanation;
179 friend bool operator==(const ControlHostOpenResult&, const ControlHostOpenResult&) = default;
180};
181
183 std::string request_id;
184 std::string registration_id;
185 friend bool operator==(const ControlHostReadyEnvelope&, const ControlHostReadyEnvelope&) = default;
186};
187
189 std::string request_id;
190 bool accepted = false;
191 std::uint64_t liveness_generation = 0;
192 std::string error_code;
193 std::string explanation;
194 friend bool operator==(const ControlHostReadyResult&, const ControlHostReadyResult&) = default;
195};
196
198 std::string request_id;
199 std::string registration_id;
200 std::uint64_t liveness_generation = 0;
202 const ControlHostHeartbeatEnvelope&) = default;
203};
204
206 std::string request_id;
207 bool accepted = false;
208 std::uint64_t liveness_generation = 0;
209 std::string error_code;
210 std::string explanation;
212 const ControlHostHeartbeatResult&) = default;
213};
214
220
226
233
239
244 std::string route_id;
245 std::string receipt_id;
249 std::string authority_id;
254 std::string broker_id;
255 std::string session_id;
256 std::string instance_id;
257 std::string publication_id;
259 std::string capability_id;
260 std::string manifest_digest;
262 std::string operation_id;
263 std::uint32_t operation_version = 1;
264 std::int64_t deadline_unix_ms = 0;
265 std::uint64_t expected_state_generation = 0;
266 std::string params_json = "{}";
268 const ControlHostExecuteEnvelope&) = default;
269};
270
277
279 std::string route_id;
280 std::uint64_t current = 0;
281 std::uint64_t total = 0;
282 std::string detail_json = "{}";
284 const ControlHostProgressEnvelope&) = default;
285};
286
288 std::string route_id;
289 std::string reason;
291 const ControlHostCancelEnvelope&) = default;
292};
293
295 std::string request_id;
296 std::string artifact_id;
297 std::uint64_t offset = 0;
298 std::size_t maximum_bytes = 0;
300 const ControlArtifactReadEnvelope&) = default;
301};
302
306 std::string artifact_id;
307 std::string broker_id;
308 std::string receipt_id;
311 std::string session_id;
312 std::string instance_id;
313 std::string publication_id;
316 std::uint32_t producer_operation_version = 0;
317 std::string original_grant_id;
319 std::string manifest_digest;
321 std::string sha256;
322 std::uint64_t byte_size = 0;
323 std::string content_type;
324 std::uint64_t created_at_unix_ms = 0;
325 std::uint64_t expires_at_unix_ms = 0;
326 std::string sensitivity_id;
327 std::string deletion_state_id;
330 const ControlArtifactWireMetadata&) = default;
331};
332
334 std::string request_id;
335 std::string status_id;
336 std::optional<ControlArtifactWireMetadata> metadata;
337 std::string bytes_base64;
338 bool eof = false;
339 std::string explanation;
341 const ControlArtifactReadResponseEnvelope&) = default;
342};
343
345 std::string request_id;
346 friend bool operator==(const ControlHealthEnvelope&, const ControlHealthEnvelope&) = default;
347};
348
350 std::string request_id;
351 std::string sdk_version;
353 std::string broker_id;
354 std::uint64_t process_generation = 0;
355 friend bool operator==(const ControlHealthResult&, const ControlHealthResult&) = default;
356};
357
359 std::string request_id;
360 std::string error_code;
361 std::string explanation;
362 friend bool operator==(const ControlErrorEnvelope&, const ControlErrorEnvelope&) = default;
363};
364
374
395
402
417
419 std::string route_id;
421 std::optional<ControlResultCode> result_code;
423 std::string explanation;
424 std::string detail_json = "{}";
426 std::vector<std::string> evidence_ids;
427 std::vector<ControlHostArtifactPublication> artifact_publications;
429 const ControlHostCompleteEnvelope&) = default;
430};
431
433 std::string artifact_id;
434 std::string media_type;
435 std::uint64_t byte_size = 0;
436 friend bool operator==(const ControlArtifactHandle&, const ControlArtifactHandle&) = default;
437};
438
440 std::string request_id;
441 std::string receipt_id;
442 std::string operation_id;
443 std::uint32_t operation_version = 1;
445 std::optional<ControlResultCode> result_code;
447 std::string explanation;
448 std::string detail_json = "{}";
449 std::vector<ControlArtifactHandle> artifacts;
450 friend bool operator==(const ControlReceiptEnvelope&, const ControlReceiptEnvelope&) = default;
451};
452
458 std::string error_code;
459 std::string error_message;
460 std::string error_data_json;
462 const ControlLegacyInspectorError&) = default;
463};
464
480
486
501
506
515
519
528
534
539bool validate_control_json_schema(std::string_view instance_json, std::string_view schema_json,
540 ControlJsonSchemaDiagnostics* diagnostics = nullptr);
541
544bool validate_control_output_json_schema(std::string_view instance_json,
545 std::string_view schema_json,
546 ControlJsonSchemaDiagnostics* diagnostics = nullptr);
547
552
555
559 const ControlProgressEnvelope& next);
560
563std::optional<std::string> canonicalize_control_json(std::string_view json);
564
567std::optional<std::string> control_request_hash(const ControlRequestEnvelope& request);
568
572std::optional<std::string>
574std::optional<ControlLegacyInspectorError>
575decode_control_legacy_inspector_error(std::string_view detail_json);
576
579std::string encode_control_envelope(const ControlEnvelope& envelope);
580
581std::optional<ControlEnvelope>
582decode_control_envelope(std::string_view json, ControlProtocolDiagnostics* diagnostics = nullptr);
583
584} // namespace pulp::inspect
@ Failed
Definition bundled_fonts.hpp:153
@ None
Definition font_options.hpp:73
Definition agent_context.hpp:7
constexpr std::size_t kControlMaximumSdkVersionBytes
Definition control_protocol.hpp:38
bool valid_control_receipt_transition(ControlReceiptState from, ControlReceiptState to)
ControlProtocolError
Definition control_protocol.hpp:487
@ HashMismatch
Definition control_protocol.hpp:499
@ InvalidValue
Definition control_protocol.hpp:497
@ LimitExceeded
Definition control_protocol.hpp:498
@ MissingField
Definition control_protocol.hpp:493
@ None
Definition control_protocol.hpp:488
@ InvalidType
Definition control_protocol.hpp:494
@ EnvelopeTooLarge
Definition control_protocol.hpp:489
std::variant< ControlNegotiationOffer, ControlNegotiationResult, ControlRequestEnvelope, ControlCancelEnvelope, ControlProgressEnvelope, ControlReceiptEnvelope, ControlSessionOpenEnvelope, ControlSessionOpenResult, ControlManagementEnvelope, ControlManagementResult, ControlArtifactReadEnvelope, ControlArtifactReadResponseEnvelope, ControlHealthEnvelope, ControlHealthResult, ControlErrorEnvelope, ControlHostOpenEnvelope, ControlHostOpenResult, ControlHostReadyEnvelope, ControlHostReadyResult, ControlHostHeartbeatEnvelope, ControlHostHeartbeatResult, ControlHostPreflightChallengeEnvelope, ControlHostPreflightResponseEnvelope, ControlHostPreflightBootstrapEnvelope, ControlHostPreflightReceiptEnvelope, ControlHostExecuteEnvelope, ControlHostProgressEnvelope, ControlHostCancelEnvelope, ControlHostAuthorityEndEnvelope, ControlHostCompleteEnvelope > ControlEnvelopePayload
Definition control_protocol.hpp:465
bool validate_control_output_json_schema(std::string_view instance_json, std::string_view schema_json, ControlJsonSchemaDiagnostics *diagnostics=nullptr)
Validates an operation result using the larger, still-bounded result budget.
constexpr std::size_t kControlMaximumErrorCodeBytes
Definition control_protocol.hpp:37
std::optional< std::string > canonicalize_control_json(std::string_view json)
Canonicalizes an arbitrary JSON value by recursively sorting object keys.
constexpr std::size_t kControlReceiptMaximumArtifactIdBytes
Definition control_protocol.hpp:29
ControlResultCode
Definition control_protocol.hpp:375
@ Inactive
Definition control_protocol.hpp:379
@ LeaseConflict
Definition control_protocol.hpp:384
@ PolicyDenied
Definition control_protocol.hpp:380
@ StateConflict
Definition control_protocol.hpp:385
@ InternalError
Definition control_protocol.hpp:393
@ GrantRequired
Definition control_protocol.hpp:381
@ GrantExpired
Definition control_protocol.hpp:382
@ SessionStale
Definition control_protocol.hpp:386
constexpr std::size_t kControlHostMaximumArtifactPublicationBytes
Definition control_protocol.hpp:21
ControlArtifactRedactionState
Definition control_artifacts.hpp:48
@ Original
Definition control_artifacts.hpp:49
@ NotBuilt
Definition control_manifest.hpp:56
@ NotImplemented
Definition control_manifest.hpp:55
ControlEnvelopeDirection
Definition control_protocol.hpp:507
@ LauncherToHost
Definition control_protocol.hpp:513
@ ClientToBroker
Definition control_protocol.hpp:508
@ HostToLauncher
Definition control_protocol.hpp:512
@ HostToBroker
Definition control_protocol.hpp:510
@ BrokerToClient
Definition control_protocol.hpp:509
@ BrokerToHost
Definition control_protocol.hpp:511
constexpr std::size_t kControlReceiptMaximumArtifacts
Definition control_protocol.hpp:28
constexpr std::size_t kControlMaximumArtifactChunkBase64Bytes
Definition control_protocol.hpp:34
@ ConsentRequired
Definition control_grants.hpp:52
constexpr std::uint32_t kControlProtocolVersion
Definition control_protocol.hpp:15
constexpr std::size_t kControlMaximumArtifactReadBytes
Definition control_protocol.hpp:33
constexpr std::size_t kControlReceiptMaximumExplanationBytes
Definition control_protocol.hpp:26
constexpr std::string_view kControlEnvelopeSchema
Definition control_protocol.hpp:16
constexpr std::size_t kControlMaximumEnvelopeBytes
Definition control_protocol.hpp:19
constexpr std::size_t kControlReceiptMaximumRequestIdBytes
Receipt normalization and wire encoding use these same field boundaries.
Definition control_protocol.hpp:24
constexpr std::size_t kControlMaximumArtifactMetadataFieldBytes
Definition control_protocol.hpp:39
constexpr std::string_view kControlLegacyInspectorJsonEncoding
Definition control_protocol.hpp:17
std::optional< std::string > control_request_hash(const ControlRequestEnvelope &request)
Hashes the authority and operation binding plus canonical request parameters.
@ Cancelled
Definition control_admission.hpp:33
ControlJsonSchemaError
Definition control_protocol.hpp:520
@ ValidationFailed
Definition control_protocol.hpp:526
@ InvalidSchema
Definition control_protocol.hpp:523
@ UnsupportedKeyword
Definition control_protocol.hpp:524
@ None
Definition control_protocol.hpp:521
@ InvalidDocument
Definition control_protocol.hpp:522
constexpr std::size_t kControlMaximumRequestPayloadBytes
Definition control_protocol.hpp:18
constexpr std::size_t kControlReceiptMaximumCancellationReasonBytes
Definition control_protocol.hpp:27
ControlRetryClassification
Definition control_protocol.hpp:396
@ AfterRefresh
Definition control_protocol.hpp:398
@ Never
Definition control_protocol.hpp:397
@ AfterGrant
Definition control_protocol.hpp:399
@ AfterBackoff
Definition control_protocol.hpp:400
@ Accepted
Definition audit.hpp:65
std::string_view control_retry_classification_id(ControlRetryClassification retry)
std::string encode_control_envelope(const ControlEnvelope &envelope)
Emits one deterministic JSON representation.
@ HostUnavailable
Definition control_identity.hpp:112
constexpr std::size_t kControlReceiptMaximumEvidenceIdBytes
Definition control_protocol.hpp:32
std::optional< ControlLegacyInspectorError > decode_control_legacy_inspector_error(std::string_view detail_json)
constexpr std::size_t kControlReceiptMaximumEvidenceIds
Definition control_protocol.hpp:31
std::string_view control_negotiation_status_id(ControlNegotiationStatus status)
ControlNegotiationStatus
Definition control_protocol.hpp:61
@ UnsupportedMandatoryFeature
Definition control_protocol.hpp:66
@ NoCommonVersion
Definition control_protocol.hpp:64
@ InvalidOffer
Definition control_protocol.hpp:63
@ DowngradeRejected
Definition control_protocol.hpp:65
@ UnsupportedVersion
Definition control_host_bootstrap.hpp:33
constexpr std::size_t kControlMaximumArtifactContentTypeBytes
Definition control_protocol.hpp:40
@ RootType
Definition control_manifest.hpp:33
@ Parse
Definition control_manifest.hpp:32
@ UnsupportedSchema
Definition control_manifest.hpp:36
@ UnknownField
Definition control_manifest.hpp:34
constexpr std::size_t kControlReceiptMaximumArtifactMediaTypeBytes
Definition control_protocol.hpp:30
bool control_envelope_allowed(const ControlEnvelope &envelope, ControlEnvelopeDirection direction)
Direction is transport state, not payload authority.
bool control_receipt_state_is_terminal(ControlReceiptState state)
bool valid_control_progress_transition(const ControlProgressEnvelope &previous, const ControlProgressEnvelope &next)
Checks that a later observation belongs to the same admitted operation and advances both sequence and...
std::optional< std::string > encode_control_legacy_inspector_error(const ControlLegacyInspectorError &error)
Encodes/decodes the strict compatibility object carried in a failed adapter receipt's detail_json.
constexpr std::size_t kControlMaximumResultDetailBytes
Definition control_protocol.hpp:22
std::string_view control_receipt_state_id(ControlReceiptState state)
std::string_view control_result_code_id(ControlResultCode code)
constexpr std::size_t kControlMaximumStatusIdBytes
Definition control_protocol.hpp:36
ControlReceiptState
Definition control_protocol.hpp:365
@ Completed
Definition control_protocol.hpp:368
@ UnknownNeedsRefresh
Definition control_protocol.hpp:372
@ CompletedAfterRevocation
Definition control_protocol.hpp:371
@ Running
Definition control_protocol.hpp:367
@ Admitted
Definition control_protocol.hpp:366
@ Failed
Definition control_protocol.hpp:369
@ ResourceExhausted
Definition control_admission.hpp:26
@ DeadlineExceeded
Definition control_admission.hpp:27
@ Admitted
Definition control_admission.hpp:16
@ InvalidRequest
Definition control_admission.hpp:17
bool validate_control_json_schema(std::string_view instance_json, std::string_view schema_json, ControlJsonSchemaDiagnostics *diagnostics=nullptr)
Validates an untrusted JSON instance against the bounded JSON Schema subset used by Product A operati...
constexpr std::size_t kControlReceiptMaximumOperationIdBytes
Definition control_protocol.hpp:25
std::optional< ControlEnvelope > decode_control_envelope(std::string_view json, ControlProtocolDiagnostics *diagnostics=nullptr)
constexpr std::size_t kControlHostMaximumArtifactPublications
Definition control_protocol.hpp:20
ControlNegotiationResult negotiate_control_protocol(const ControlNegotiationOffer &local, const ControlNegotiationOffer &peer, std::uint32_t local_security_floor=kControlProtocolVersion)
Selects the highest common revision at or above local_security_floor.
ControlArtifactSensitivity
Definition control_artifacts.hpp:36
@ Sensitive
Definition control_artifacts.hpp:39
constexpr std::size_t kControlHostPreflightMaximumBootstrapBase64Bytes
Definition control_protocol.hpp:41
SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the ...
Definition audio_device_manager.hpp:48
@ error
Definition design_ir.hpp:697
Definition control_protocol.hpp:432
friend bool operator==(const ControlArtifactHandle &, const ControlArtifactHandle &)=default
std::string media_type
Definition control_protocol.hpp:434
std::string artifact_id
Definition control_protocol.hpp:433
std::uint64_t byte_size
Definition control_protocol.hpp:435
Definition control_protocol.hpp:294
friend bool operator==(const ControlArtifactReadEnvelope &, const ControlArtifactReadEnvelope &)=default
std::string request_id
Definition control_protocol.hpp:295
std::size_t maximum_bytes
Definition control_protocol.hpp:298
std::string artifact_id
Definition control_protocol.hpp:296
std::uint64_t offset
Definition control_protocol.hpp:297
Definition control_protocol.hpp:333
std::string status_id
Definition control_protocol.hpp:335
std::string explanation
Definition control_protocol.hpp:339
std::string bytes_base64
Definition control_protocol.hpp:337
std::string request_id
Definition control_protocol.hpp:334
std::optional< ControlArtifactWireMetadata > metadata
Definition control_protocol.hpp:336
bool eof
Definition control_protocol.hpp:338
friend bool operator==(const ControlArtifactReadResponseEnvelope &, const ControlArtifactReadResponseEnvelope &)=default
Flattened, bounded wire representation of artifact metadata.
Definition control_protocol.hpp:305
std::string deletion_state_id
Definition control_protocol.hpp:327
std::uint64_t byte_size
Definition control_protocol.hpp:322
std::string producer_artifact_digest
Definition control_protocol.hpp:320
std::string publication_id
Definition control_protocol.hpp:313
std::string session_id
Definition control_protocol.hpp:311
std::string original_grant_id
Definition control_protocol.hpp:317
std::string producer_capability_id
Definition control_protocol.hpp:314
std::string sensitivity_id
Definition control_protocol.hpp:326
std::string instance_id
Definition control_protocol.hpp:312
std::string consent_decision_id
Definition control_protocol.hpp:318
std::string sha256
Definition control_protocol.hpp:321
std::uint32_t producer_operation_version
Definition control_protocol.hpp:316
std::uint64_t expires_at_unix_ms
Definition control_protocol.hpp:325
std::string manifest_digest
Definition control_protocol.hpp:319
std::string broker_id
Definition control_protocol.hpp:307
std::string producer_client_id
Definition control_protocol.hpp:309
std::string artifact_id
Definition control_protocol.hpp:306
std::string producer_operation_id
Definition control_protocol.hpp:315
std::uint64_t created_at_unix_ms
Definition control_protocol.hpp:324
std::string producer_registration_id
Definition control_protocol.hpp:310
friend bool operator==(const ControlArtifactWireMetadata &, const ControlArtifactWireMetadata &)=default
std::string content_type
Definition control_protocol.hpp:323
std::string redaction_state_id
Definition control_protocol.hpp:328
std::string receipt_id
Definition control_protocol.hpp:308
Definition control_protocol.hpp:100
std::string reason
Required on the wire; the empty default is an invalid/uninitialized sentinel.
Definition control_protocol.hpp:103
friend bool operator==(const ControlCancelEnvelope &, const ControlCancelEnvelope &)=default
std::string request_id
Definition control_protocol.hpp:101
Definition control_protocol.hpp:481
ControlEnvelopePayload payload
Definition control_protocol.hpp:483
friend bool operator==(const ControlEnvelope &, const ControlEnvelope &)=default
std::uint32_t schema_version
Definition control_protocol.hpp:482
Definition control_protocol.hpp:358
std::string request_id
Definition control_protocol.hpp:359
friend bool operator==(const ControlErrorEnvelope &, const ControlErrorEnvelope &)=default
std::string explanation
Definition control_protocol.hpp:361
std::string error_code
Definition control_protocol.hpp:360
Definition control_protocol.hpp:344
std::string request_id
Definition control_protocol.hpp:345
friend bool operator==(const ControlHealthEnvelope &, const ControlHealthEnvelope &)=default
Definition control_protocol.hpp:349
std::string broker_id
Definition control_protocol.hpp:353
friend bool operator==(const ControlHealthResult &, const ControlHealthResult &)=default
std::string sdk_version
Definition control_protocol.hpp:351
std::uint64_t process_generation
Definition control_protocol.hpp:354
ControlProtocolRange protocol_versions
Definition control_protocol.hpp:352
std::string request_id
Definition control_protocol.hpp:350
Host-authored execution outcome.
Definition control_protocol.hpp:405
friend bool operator==(const ControlHostArtifactPublication &, const ControlHostArtifactPublication &)=default
ControlArtifactRedactionState redaction_state
Definition control_protocol.hpp:412
std::string content_type
Definition control_protocol.hpp:410
std::string reference_id
Host-local correlation token only.
Definition control_protocol.hpp:408
ControlArtifactSensitivity sensitivity
Definition control_protocol.hpp:411
std::string bytes_base64
Definition control_protocol.hpp:409
std::int64_t lifetime_ms
Definition control_protocol.hpp:413
Definition control_protocol.hpp:271
std::string reason
Definition control_protocol.hpp:273
std::string authority_id
Definition control_protocol.hpp:272
friend bool operator==(const ControlHostAuthorityEndEnvelope &, const ControlHostAuthorityEndEnvelope &)=default
Definition control_protocol.hpp:287
std::string reason
Definition control_protocol.hpp:289
std::string route_id
Definition control_protocol.hpp:288
friend bool operator==(const ControlHostCancelEnvelope &, const ControlHostCancelEnvelope &)=default
Definition control_protocol.hpp:418
ControlReceiptState terminal_state
Definition control_protocol.hpp:420
std::string detail_json
Definition control_protocol.hpp:424
ControlRetryClassification retry
Definition control_protocol.hpp:422
std::string route_id
Definition control_protocol.hpp:419
std::vector< ControlHostArtifactPublication > artifact_publications
Definition control_protocol.hpp:427
std::string cancellation_reason
Definition control_protocol.hpp:425
friend bool operator==(const ControlHostCompleteEnvelope &, const ControlHostCompleteEnvelope &)=default
std::optional< ControlResultCode > result_code
Definition control_protocol.hpp:421
std::vector< std::string > evidence_ids
Definition control_protocol.hpp:426
std::string explanation
Definition control_protocol.hpp:423
Broker-to-host execution request.
Definition control_protocol.hpp:243
std::uint32_t operation_version
Definition control_protocol.hpp:263
std::string instance_generation
Definition control_protocol.hpp:258
std::string instance_id
Definition control_protocol.hpp:256
std::string producer_artifact_digest
Definition control_protocol.hpp:261
std::uint64_t expected_state_generation
Definition control_protocol.hpp:265
std::string broker_id
Definition control_protocol.hpp:254
std::string capability_id
Definition control_protocol.hpp:259
std::string route_id
Definition control_protocol.hpp:244
std::int64_t deadline_unix_ms
Definition control_protocol.hpp:264
std::string receipt_id
Definition control_protocol.hpp:245
std::string operation_id
Definition control_protocol.hpp:262
std::string manifest_digest
Definition control_protocol.hpp:260
std::string authority_id
Broker-minted, connection-local projection of client+grant authority.
Definition control_protocol.hpp:249
std::string params_json
Definition control_protocol.hpp:266
std::string controller_authority_id
Broker-minted, host-local projection of the authenticated client scope.
Definition control_protocol.hpp:253
std::string publication_id
Definition control_protocol.hpp:257
std::string session_id
Definition control_protocol.hpp:255
friend bool operator==(const ControlHostExecuteEnvelope &, const ControlHostExecuteEnvelope &)=default
Definition control_protocol.hpp:197
std::uint64_t liveness_generation
Definition control_protocol.hpp:200
std::string registration_id
Definition control_protocol.hpp:199
std::string request_id
Definition control_protocol.hpp:198
friend bool operator==(const ControlHostHeartbeatEnvelope &, const ControlHostHeartbeatEnvelope &)=default
Definition control_protocol.hpp:205
std::string error_code
Definition control_protocol.hpp:209
std::string request_id
Definition control_protocol.hpp:206
std::uint64_t liveness_generation
Definition control_protocol.hpp:208
std::string explanation
Definition control_protocol.hpp:210
friend bool operator==(const ControlHostHeartbeatResult &, const ControlHostHeartbeatResult &)=default
bool accepted
Definition control_protocol.hpp:207
Definition control_protocol.hpp:158
friend bool operator==(const ControlHostOpenEnvelope &, const ControlHostOpenEnvelope &)=default
std::string request_id
Definition control_protocol.hpp:159
std::string enrollment_id
Definition control_protocol.hpp:161
std::string admission_id
Definition control_protocol.hpp:160
Definition control_protocol.hpp:166
std::string request_id
Definition control_protocol.hpp:167
std::string broker_id
Definition control_protocol.hpp:170
std::string instance_generation
Definition control_protocol.hpp:174
std::string error_code
Definition control_protocol.hpp:177
std::string session_id
Definition control_protocol.hpp:171
std::string explanation
Definition control_protocol.hpp:178
bool accepted
Definition control_protocol.hpp:168
friend bool operator==(const ControlHostOpenResult &, const ControlHostOpenResult &)=default
std::string producer_artifact_digest
Definition control_protocol.hpp:176
std::string manifest_digest
Definition control_protocol.hpp:175
std::string publication_id
Definition control_protocol.hpp:173
std::string instance_id
Definition control_protocol.hpp:172
std::string registration_id
Definition control_protocol.hpp:169
Definition control_protocol.hpp:227
std::string bootstrap_base64
Definition control_protocol.hpp:229
friend bool operator==(const ControlHostPreflightBootstrapEnvelope &, const ControlHostPreflightBootstrapEnvelope &)=default
std::string nonce
Definition control_protocol.hpp:228
Definition control_protocol.hpp:215
friend bool operator==(const ControlHostPreflightChallengeEnvelope &, const ControlHostPreflightChallengeEnvelope &)=default
std::string nonce
Definition control_protocol.hpp:216
Definition control_protocol.hpp:234
friend bool operator==(const ControlHostPreflightReceiptEnvelope &, const ControlHostPreflightReceiptEnvelope &)=default
std::string nonce
Definition control_protocol.hpp:235
Definition control_protocol.hpp:221
std::string nonce
Definition control_protocol.hpp:222
friend bool operator==(const ControlHostPreflightResponseEnvelope &, const ControlHostPreflightResponseEnvelope &)=default
Definition control_protocol.hpp:278
std::string detail_json
Definition control_protocol.hpp:282
std::string route_id
Definition control_protocol.hpp:279
friend bool operator==(const ControlHostProgressEnvelope &, const ControlHostProgressEnvelope &)=default
std::uint64_t current
Definition control_protocol.hpp:280
std::uint64_t total
Definition control_protocol.hpp:281
Definition control_protocol.hpp:182
std::string request_id
Definition control_protocol.hpp:183
friend bool operator==(const ControlHostReadyEnvelope &, const ControlHostReadyEnvelope &)=default
std::string registration_id
Definition control_protocol.hpp:184
Definition control_protocol.hpp:188
std::string error_code
Definition control_protocol.hpp:192
bool accepted
Definition control_protocol.hpp:190
std::uint64_t liveness_generation
Definition control_protocol.hpp:191
std::string explanation
Definition control_protocol.hpp:193
friend bool operator==(const ControlHostReadyResult &, const ControlHostReadyResult &)=default
std::string request_id
Definition control_protocol.hpp:189
Definition control_protocol.hpp:529
std::string explanation
Definition control_protocol.hpp:532
std::string path
Definition control_protocol.hpp:531
ControlJsonSchemaError code
Definition control_protocol.hpp:530
Lossless compatibility detail for a failed operation declared with the legacy-inspector-json-v1 adapt...
Definition control_protocol.hpp:457
std::string error_message
Definition control_protocol.hpp:459
std::string error_data_json
Definition control_protocol.hpp:460
friend bool operator==(const ControlLegacyInspectorError &, const ControlLegacyInspectorError &)=default
std::string error_code
Definition control_protocol.hpp:458
Finite broker-management family used by installed control adapters.
Definition control_protocol.hpp:141
std::string request_id
Definition control_protocol.hpp:142
std::string params_json
Definition control_protocol.hpp:144
std::string command
Definition control_protocol.hpp:143
friend bool operator==(const ControlManagementEnvelope &, const ControlManagementEnvelope &)=default
Definition control_protocol.hpp:149
std::string data_json
Definition control_protocol.hpp:152
std::string status_id
Definition control_protocol.hpp:151
std::string explanation
Definition control_protocol.hpp:153
std::string request_id
Definition control_protocol.hpp:150
friend bool operator==(const ControlManagementResult &, const ControlManagementResult &)=default
Definition control_protocol.hpp:53
std::vector< std::string > mandatory_features
Definition control_protocol.hpp:55
std::vector< std::string > optional_features
Definition control_protocol.hpp:56
friend bool operator==(const ControlNegotiationOffer &, const ControlNegotiationOffer &)=default
ControlProtocolRange versions
Definition control_protocol.hpp:54
Definition control_protocol.hpp:69
std::uint32_t selected_version
Definition control_protocol.hpp:71
std::string explanation
Definition control_protocol.hpp:73
std::vector< std::string > features
Definition control_protocol.hpp:72
friend bool operator==(const ControlNegotiationResult &, const ControlNegotiationResult &)=default
ControlNegotiationStatus status
Definition control_protocol.hpp:70
A bounded progress observation for one admitted operation.
Definition control_protocol.hpp:109
friend bool operator==(const ControlProgressEnvelope &, const ControlProgressEnvelope &)=default
std::uint64_t sequence
Definition control_protocol.hpp:112
std::string request_id
Definition control_protocol.hpp:110
std::uint64_t current
Definition control_protocol.hpp:113
std::string receipt_id
Definition control_protocol.hpp:111
std::string detail_json
Definition control_protocol.hpp:115
std::uint64_t total
Definition control_protocol.hpp:114
Definition control_protocol.hpp:502
std::string explanation
Definition control_protocol.hpp:504
ControlProtocolError code
Definition control_protocol.hpp:503
Definition control_protocol.hpp:47
std::uint32_t minimum
Definition control_protocol.hpp:48
std::uint32_t maximum
Definition control_protocol.hpp:49
friend bool operator==(const ControlProtocolRange &, const ControlProtocolRange &)=default
Definition control_protocol.hpp:439
std::string explanation
Definition control_protocol.hpp:447
friend bool operator==(const ControlReceiptEnvelope &, const ControlReceiptEnvelope &)=default
ControlReceiptState state
Definition control_protocol.hpp:444
std::string receipt_id
Definition control_protocol.hpp:441
std::vector< ControlArtifactHandle > artifacts
Definition control_protocol.hpp:449
std::optional< ControlResultCode > result_code
Definition control_protocol.hpp:445
std::string detail_json
Definition control_protocol.hpp:448
std::uint32_t operation_version
Definition control_protocol.hpp:443
ControlRetryClassification retry
Definition control_protocol.hpp:446
std::string request_id
Definition control_protocol.hpp:440
std::string operation_id
Definition control_protocol.hpp:442
Definition control_protocol.hpp:84
std::string instance_generation
Definition control_protocol.hpp:89
std::string idempotency_key
Definition control_protocol.hpp:92
std::string client_id
Definition control_protocol.hpp:86
friend bool operator==(const ControlRequestEnvelope &, const ControlRequestEnvelope &)=default
std::string grant_id
Definition control_protocol.hpp:88
std::string operation_id
Definition control_protocol.hpp:90
std::string params_json
Definition control_protocol.hpp:96
std::uint64_t expected_state_generation
Definition control_protocol.hpp:95
std::uint32_t operation_version
Definition control_protocol.hpp:91
std::string registration_id
Definition control_protocol.hpp:87
std::int64_t deadline_unix_ms
Definition control_protocol.hpp:94
std::string request_id
Definition control_protocol.hpp:85
std::string request_hash
Definition control_protocol.hpp:93
Definition control_protocol.hpp:120
friend bool operator==(const ControlSessionOpenEnvelope &, const ControlSessionOpenEnvelope &)=default
std::string admission_id
Definition control_protocol.hpp:122
std::string request_id
Definition control_protocol.hpp:121
Definition control_protocol.hpp:127
friend bool operator==(const ControlSessionOpenResult &, const ControlSessionOpenResult &)=default
std::string client_id
Definition control_protocol.hpp:130
std::string request_id
Definition control_protocol.hpp:128
bool accepted
Definition control_protocol.hpp:129
std::string explanation
Definition control_protocol.hpp:132
std::string error_code
Definition control_protocol.hpp:131