1use serde::{Deserialize, Serialize};
5mod bulk_batch_id;
6mod document_mutation_semantic_digest;
7pub use bulk_batch_id::{BulkBatchIdError, bulk_batch_id};
8pub use document_mutation_semantic_digest::{DocumentMutationSemanticDigestError, document_mutation_semantic_digest};
9
10pub const LODESTONE_API_SCHEMA_ID: &str = "lodestone-api";
11pub const LODESTONE_API_SPEC_SHA256: &str = "026360fc150dd710b57220908e58ab0e076e9f01bb03e9f981aa4f3bcf65a2fe";
12pub const LODESTONE_API_FORMAT_VERSION: u16 = 4;
13pub const LODESTONE_API_ALPN: &str = "lodestone";
14pub const BULK_BATCH_ID_FORMAT_VERSION: u16 = 2;
15pub const BULK_BATCH_ID_DOMAIN: &[u8] = b"lodestone/bulk-batch\0";
16pub const DOCUMENT_MUTATION_SEMANTIC_DIGEST_FORMAT_VERSION: u16 = 1;
17pub const DOCUMENT_MUTATION_SEMANTIC_DIGEST_DOMAIN: &[u8] = b"lodestone/document-mutation-recovery/v1\0";
18pub const LODESTONE_API_MAX_OPERATION_WAIT_ATTEMPTS: u32 = 100;
19pub const LODESTONE_API_MAX_OPERATION_WAIT_INTERVAL_MILLIS: u64 = 60000;
20
21#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
22#[serde(transparent)]
23pub struct I64 {
24 pub value: String,
25}
26#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
27#[serde(transparent)]
28pub struct U64 {
29 pub value: String,
30}
31#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
32#[serde(transparent)]
33pub struct Identity {
34 pub value: String,
35}
36#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
37#[serde(transparent)]
38pub struct Digest {
39 pub value: String,
40}
41#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
42pub struct ExactDecimal {
43 pub coefficient: String,
44 pub scale: u32,
45}
46#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
47#[serde(transparent)]
48pub struct ApproximateNumber {
49 pub canonical_value: String,
50}
51#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
52#[serde(deny_unknown_fields)]
53pub struct RawJson {
54 pub bytes_base64: String,
55}
56#[derive(Clone, Copy, Debug, Eq, PartialEq)]
57pub enum ScalarError {
58 InvalidI64,
59 InvalidU64,
60 InvalidIdentity,
61 InvalidDigest,
62 InvalidDecimal,
63 InvalidApproximateNumber,
64}
65impl std::fmt::Display for ScalarError {
66 fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
67 write!(formatter, "invalid Lodestone API scalar: {self:?}")
68 }
69}
70impl I64 {
71 pub fn validate(&self) -> Result<(), ScalarError> {
72 self.value
73 .parse::<i64>()
74 .ok()
75 .filter(|parsed| parsed.to_string() == self.value)
76 .map(|_| ())
77 .ok_or(ScalarError::InvalidI64)
78 }
79}
80impl U64 {
81 pub fn validate(&self) -> Result<(), ScalarError> {
82 self.value
83 .parse::<u64>()
84 .ok()
85 .filter(|parsed| parsed.to_string() == self.value)
86 .map(|_| ())
87 .ok_or(ScalarError::InvalidU64)
88 }
89}
90impl Identity {
91 pub fn validate(&self) -> Result<(), ScalarError> {
92 (self.value.len() == 32
93 && self
94 .value
95 .bytes()
96 .all(|byte| byte.is_ascii_digit() || (b'a'..=b'f').contains(&byte)))
97 .then_some(())
98 .ok_or(ScalarError::InvalidIdentity)
99 }
100}
101impl Digest {
102 pub fn validate(&self) -> Result<(), ScalarError> {
103 (self.value.len() == 64
104 && self
105 .value
106 .bytes()
107 .all(|byte| byte.is_ascii_digit() || (b'a'..=b'f').contains(&byte)))
108 .then_some(())
109 .ok_or(ScalarError::InvalidDigest)
110 }
111}
112impl ExactDecimal {
113 pub fn validate(&self) -> Result<(), ScalarError> {
114 let unsigned = self.coefficient.strip_prefix('-').unwrap_or(&self.coefficient);
115 let canonical = self.coefficient == "0"
116 || (!unsigned.is_empty()
117 && !unsigned.starts_with('0')
118 && unsigned.bytes().all(|byte| byte.is_ascii_digit()));
119 (canonical
120 && self.coefficient != "-0"
121 && self.scale <= 1024
122 && (self.scale == 0 || !self.coefficient.ends_with('0')))
123 .then_some(())
124 .ok_or(ScalarError::InvalidDecimal)
125 }
126}
127impl ApproximateNumber {
128 pub fn validate(&self) -> Result<(), ScalarError> {
129 self.canonical_value
130 .parse::<f64>()
131 .ok()
132 .filter(|parsed| {
133 parsed.is_finite() && self.canonical_value != "-0" && parsed.to_string() == self.canonical_value
134 })
135 .map(|_| ())
136 .ok_or(ScalarError::InvalidApproximateNumber)
137 }
138}
139macro_rules! deserialize_validated_string_scalar {
140 ($type:ty) => {
141 impl<'de> Deserialize<'de> for $type {
142 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
143 where
144 D: serde::Deserializer<'de>,
145 {
146 let value = String::deserialize(deserializer)?;
147 let scalar = Self { value };
148 scalar.validate().map_err(serde::de::Error::custom)?;
149 Ok(scalar)
150 }
151 }
152 };
153}
154deserialize_validated_string_scalar!(I64);
155deserialize_validated_string_scalar!(U64);
156deserialize_validated_string_scalar!(Identity);
157deserialize_validated_string_scalar!(Digest);
158impl<'de> Deserialize<'de> for ExactDecimal {
159 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
160 where
161 D: serde::Deserializer<'de>,
162 {
163 #[derive(Deserialize)]
164 #[serde(deny_unknown_fields)]
165 struct Wire {
166 coefficient: String,
167 scale: u32,
168 }
169 let wire = Wire::deserialize(deserializer)?;
170 let scalar = Self {
171 coefficient: wire.coefficient,
172 scale: wire.scale,
173 };
174 scalar.validate().map_err(serde::de::Error::custom)?;
175 Ok(scalar)
176 }
177}
178impl<'de> Deserialize<'de> for ApproximateNumber {
179 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
180 where
181 D: serde::Deserializer<'de>,
182 {
183 let canonical_value = String::deserialize(deserializer)?;
184 let scalar = Self { canonical_value };
185 scalar.validate().map_err(serde::de::Error::custom)?;
186 Ok(scalar)
187 }
188}
189#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
190#[serde(tag = "kind", content = "value", rename_all = "snake_case")]
191pub enum JsonValue {
192 Null,
193 Bool(bool),
194 String(String),
195 I64(I64),
196 U64(U64),
197 ExactDecimal(ExactDecimal),
198 Approximate(ApproximateNumber),
199 Array(Vec<JsonValue>),
200 Object(Vec<JsonField>),
201}
202#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
203#[serde(deny_unknown_fields)]
204pub struct JsonField {
205 pub name: String,
206 pub value: JsonValue,
207}
208#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
209#[serde(rename_all = "snake_case")]
210pub enum Action {
211 IdentityDiscovery,
212 DataRead,
213 DataWrite,
214 Append,
215 ResolveAppend,
216 IndexAdmin,
217 CatalogRead,
218 TaskRead,
219 SubscriptionRead,
220 DiagnosticsRead,
221 DiagnosticsCreate,
222 SecurityRead,
223 SecurityAdmin,
224 AuditRead,
225 QuotaRead,
226 QuotaAdmin,
227 BindingRead,
228 LifecycleAdmin,
229 AdmissionRead,
230 AdmissionAdmin,
231 UsageRead,
232 OperationRead,
233 OperationCancel,
234 CollectionExport,
235 CollectionRestore,
236 CollectionTransferExport,
237 CollectionTransferRestore,
238 IndexExport,
239 IndexImport,
240}
241
242#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
243#[serde(rename_all = "snake_case")]
244pub enum ErrorCode {
245 Aborted,
246 DeadlineExceeded,
247 InvalidRequest,
248 UnsupportedVersion,
249 Unauthenticated,
250 PermissionDenied,
251 NotFound,
252 Conflict,
253 StaleCursor,
254 RestartBudgetExhausted,
255 LimitExceeded,
256 CapabilityUnavailable,
257 NotSubmitted,
258 SubmittedIndeterminate,
259 ExpiredUnknown,
260 SecretNotEscrowed,
261 RetentionGap,
262 ArtifactRangeInvalid,
263 ChecksumMismatch,
264 TemporarilyUnavailable,
265 Internal,
266}
267
268#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
269#[serde(rename_all = "snake_case")]
270pub enum Command {
271 Discover,
272 ListIndexes,
273 GetIndex,
274 ValidateIndexChange,
275 ApplyIndexChange,
276 ResolveIndexChange,
277 ApplyAdministrationMutation,
278 ListAliases,
279 GetAlias,
280 ListDataStreams,
281 GetDataStream,
282 ListComponentTemplates,
283 GetComponentTemplate,
284 ListIndexTemplates,
285 GetIndexTemplate,
286 ListIngestPipelines,
287 GetIngestPipeline,
288 SimulateIngestPipeline,
289 ReprocessByQuery,
290 ListLifecyclePolicies,
291 GetLifecyclePolicy,
292 PrepareCreateIndex,
293 PrepareDeleteIndex,
294 SubmitCatalogAction,
295 ResolveCatalogAction,
296 PrepareReplayableSourceIndex,
297 SubmitReplayableSourceIndex,
298 GetReplayableSource,
299 ControlReplayableSource,
300 CloneIndex,
301 ConfigureHistory,
302 GetHistory,
303 ResolveHistory,
304 PlaceHistoryHold,
305 ReleaseHistoryHold,
306 PrepareDocumentMutation,
307 SubmitDocumentMutation,
308 PrepareDocumentBulk,
309 SubmitDocumentBulk,
310 ResolveDocumentBulk,
311 PrepareAppendBulk,
312 SubmitAppendBulk,
313 ResolveAppendBulk,
314 ObserveAppendCommitted,
315 ResolveDocumentMutation,
316 GetDocument,
317 Search,
318 TraverseRelationships,
319 QueryProfiles,
320 EvaluateTemporalEvidence,
321 CreateContinuousTemporalEvaluation,
322 GetContinuousTemporalEvaluation,
323 PauseContinuousTemporalEvaluation,
324 ResumeContinuousTemporalEvaluation,
325 ReplaceContinuousTemporalEvaluation,
326 RetireContinuousTemporalEvaluation,
327 ReadContinuousTemporalEvidence,
328 ValidateSearch,
329 MaterializeTableSnapshot,
330 ResolveTableSnapshot,
331 ReadTableSnapshot,
332 OpenPit,
333 RenewPit,
334 ClosePit,
335 ListOperations,
336 GetOperation,
337 WaitOperation,
338 CancelOperation,
339 ListAuditEvents,
340 ExportAuditEvents,
341 ReserveServiceCredential,
342 ReserveServiceCredentialRotation,
343 ActivateServiceCredential,
344 ResolveServiceCredentialReservation,
345 PrepareRevokeServiceCredential,
346 RevokeServiceCredential,
347 ResolveSecurityAction,
348 GetSecurityRole,
349 PrepareRoleAppendAccessChange,
350 SubmitRoleAppendAccessChange,
351 PrepareSourceAuthorizationProjection,
352 SubmitSourceAuthorizationProjection,
353 ResolveSourceAuthorizationProjection,
354 ListServiceCredentials,
355 GetRuntimeStatus,
356 GetResultCacheStatus,
357 GetFieldPromotionStatus,
358 GetOverloadStatus,
359 ConfigureExternalKey,
360 RotateExternalKeyBinding,
361 RetireExternalKeyBinding,
362 ResolveExternalKeyBindingRetirement,
363 ConfigureAggregateThenDelete,
364 GetLifecycleStatus,
365 GetQuota,
366 UpdateQuota,
367 GetBinding,
368 GetAdmissionStatus,
369 SetAdmission,
370 GetQuiesceStatus,
371 GetDecommissionReadiness,
372 GetUpgradeReadiness,
373 GetMaintenanceStatus,
374 WarmVectorIndex,
375 EvaluateVectorRecall,
376 CalibrateVectorStrategy,
377 GetVectorDiagnostic,
378 CreateDiagnostic,
379 GetDiagnostic,
380 PrepareCollectionExport,
381 StartCollectionExport,
382 ResolveCollectionExport,
383 VerifyCollectionExport,
384 PrepareCollectionExportRetirement,
385 StartCollectionExportRetirement,
386 ResolveCollectionExportRetirement,
387 PrepareCollectionRestore,
388 StartCollectionRestore,
389 ResolveCollectionRestore,
390 PrepareCollectionTransferExport,
391 StartCollectionTransferExport,
392 ResolveCollectionTransferExport,
393 PrepareCollectionTransferRestore,
394 StartCollectionTransferRestore,
395 ResolveCollectionTransferRestore,
396 PrepareIndexExport,
397 StartIndexExport,
398 ResolveIndexExport,
399 VerifyIndexExport,
400 PrepareIndexImport,
401 StartIndexImport,
402 ResolveIndexImport,
403 ReadArtifactChunk,
404 ExportUsage,
405 ReadLogicalOccupancy,
406 ExecuteStateRead,
407 PrepareStateWrite,
408 SubmitStateWrite,
409 ResolveStateWrite,
410}
411
412pub const LODESTONE_API_ERROR_CODES: &[ErrorCode] = &[
413 ErrorCode::Aborted,
414 ErrorCode::DeadlineExceeded,
415 ErrorCode::InvalidRequest,
416 ErrorCode::UnsupportedVersion,
417 ErrorCode::Unauthenticated,
418 ErrorCode::PermissionDenied,
419 ErrorCode::NotFound,
420 ErrorCode::Conflict,
421 ErrorCode::StaleCursor,
422 ErrorCode::RestartBudgetExhausted,
423 ErrorCode::LimitExceeded,
424 ErrorCode::CapabilityUnavailable,
425 ErrorCode::NotSubmitted,
426 ErrorCode::SubmittedIndeterminate,
427 ErrorCode::ExpiredUnknown,
428 ErrorCode::SecretNotEscrowed,
429 ErrorCode::RetentionGap,
430 ErrorCode::ArtifactRangeInvalid,
431 ErrorCode::ChecksumMismatch,
432 ErrorCode::TemporarilyUnavailable,
433 ErrorCode::Internal,
434];
435
436#[derive(Clone, Copy, Debug, Eq, PartialEq)]
437pub struct ActionAuthorizationContract {
438 pub action: Action,
439 pub any_of_permission_ids: &'static [&'static str],
440}
441pub const LODESTONE_API_ACTION_AUTHORIZATION: &[ActionAuthorizationContract] = &[
442 ActionAuthorizationContract {
443 action: Action::IdentityDiscovery,
444 any_of_permission_ids: &["security_read"],
445 },
446 ActionAuthorizationContract {
447 action: Action::DataRead,
448 any_of_permission_ids: &["data_read"],
449 },
450 ActionAuthorizationContract {
451 action: Action::DataWrite,
452 any_of_permission_ids: &["data_write"],
453 },
454 ActionAuthorizationContract {
455 action: Action::Append,
456 any_of_permission_ids: &["append"],
457 },
458 ActionAuthorizationContract {
459 action: Action::ResolveAppend,
460 any_of_permission_ids: &["resolve_append"],
461 },
462 ActionAuthorizationContract {
463 action: Action::IndexAdmin,
464 any_of_permission_ids: &["index_admin"],
465 },
466 ActionAuthorizationContract {
467 action: Action::CatalogRead,
468 any_of_permission_ids: &["catalog_read"],
469 },
470 ActionAuthorizationContract {
471 action: Action::TaskRead,
472 any_of_permission_ids: &["task_read"],
473 },
474 ActionAuthorizationContract {
475 action: Action::SubscriptionRead,
476 any_of_permission_ids: &["subscription_read"],
477 },
478 ActionAuthorizationContract {
479 action: Action::DiagnosticsRead,
480 any_of_permission_ids: &["diagnostics_read"],
481 },
482 ActionAuthorizationContract {
483 action: Action::DiagnosticsCreate,
484 any_of_permission_ids: &["diagnostics_create"],
485 },
486 ActionAuthorizationContract {
487 action: Action::SecurityRead,
488 any_of_permission_ids: &["security_read"],
489 },
490 ActionAuthorizationContract {
491 action: Action::SecurityAdmin,
492 any_of_permission_ids: &["security_admin"],
493 },
494 ActionAuthorizationContract {
495 action: Action::AuditRead,
496 any_of_permission_ids: &["audit_read"],
497 },
498 ActionAuthorizationContract {
499 action: Action::QuotaRead,
500 any_of_permission_ids: &["quota_read"],
501 },
502 ActionAuthorizationContract {
503 action: Action::QuotaAdmin,
504 any_of_permission_ids: &["quota_admin"],
505 },
506 ActionAuthorizationContract {
507 action: Action::BindingRead,
508 any_of_permission_ids: &["binding_read"],
509 },
510 ActionAuthorizationContract {
511 action: Action::LifecycleAdmin,
512 any_of_permission_ids: &["lifecycle_admin"],
513 },
514 ActionAuthorizationContract {
515 action: Action::AdmissionRead,
516 any_of_permission_ids: &["admission_read"],
517 },
518 ActionAuthorizationContract {
519 action: Action::AdmissionAdmin,
520 any_of_permission_ids: &["admission_admin"],
521 },
522 ActionAuthorizationContract {
523 action: Action::UsageRead,
524 any_of_permission_ids: &["usage_read"],
525 },
526 ActionAuthorizationContract {
527 action: Action::OperationRead,
528 any_of_permission_ids: &[
529 "catalog_read",
530 "task_read",
531 "security_read",
532 "diagnostics_read",
533 "collection_export",
534 "collection_restore",
535 "index_export",
536 "index_import",
537 ],
538 },
539 ActionAuthorizationContract {
540 action: Action::OperationCancel,
541 any_of_permission_ids: &[
542 "index_admin",
543 "task_admin",
544 "security_admin",
545 "diagnostics_create",
546 "collection_export",
547 "index_export",
548 ],
549 },
550 ActionAuthorizationContract {
551 action: Action::CollectionExport,
552 any_of_permission_ids: &["collection_export"],
553 },
554 ActionAuthorizationContract {
555 action: Action::CollectionRestore,
556 any_of_permission_ids: &["collection_restore"],
557 },
558 ActionAuthorizationContract {
559 action: Action::CollectionTransferExport,
560 any_of_permission_ids: &["collection_export"],
561 },
562 ActionAuthorizationContract {
563 action: Action::CollectionTransferRestore,
564 any_of_permission_ids: &["collection_restore"],
565 },
566 ActionAuthorizationContract {
567 action: Action::IndexExport,
568 any_of_permission_ids: &["index_export"],
569 },
570 ActionAuthorizationContract {
571 action: Action::IndexImport,
572 any_of_permission_ids: &["index_import"],
573 },
574];
575pub fn action_authorization(action: Action) -> Option<&'static ActionAuthorizationContract> {
576 LODESTONE_API_ACTION_AUTHORIZATION
577 .iter()
578 .find(|contract| contract.action == action)
579}
580
581#[derive(Clone, Copy, Debug, Eq, PartialEq)]
582pub struct RuntimeCapabilityAuthorizationContract {
583 pub capability_id: &'static str,
584 pub required_permission_ids: &'static [&'static str],
585}
586pub const LODESTONE_API_RUNTIME_CAPABILITY_AUTHORIZATION: &[RuntimeCapabilityAuthorizationContract] = &[
587 RuntimeCapabilityAuthorizationContract {
588 capability_id: "search_and_append_log",
589 required_permission_ids: &["data_read", "data_write"],
590 },
591 RuntimeCapabilityAuthorizationContract {
592 capability_id: "native_metric_records_and_time_series",
593 required_permission_ids: &["data_read", "append"],
594 },
595 RuntimeCapabilityAuthorizationContract {
596 capability_id: "historical_temporal_evidence",
597 required_permission_ids: &["data_read"],
598 },
599 RuntimeCapabilityAuthorizationContract {
600 capability_id: "continuous_temporal_evidence",
601 required_permission_ids: &["data_read", "lifecycle_admin"],
602 },
603 RuntimeCapabilityAuthorizationContract {
604 capability_id: "bounded_relationship_traversal",
605 required_permission_ids: &["data_read", "data_write", "append"],
606 },
607 RuntimeCapabilityAuthorizationContract {
608 capability_id: "native_continuous_profiles",
609 required_permission_ids: &["data_read", "append"],
610 },
611 RuntimeCapabilityAuthorizationContract {
612 capability_id: "committed_vector_and_hybrid",
613 required_permission_ids: &["data_read"],
614 },
615 RuntimeCapabilityAuthorizationContract {
616 capability_id: "realtime_or_pit_vector",
617 required_permission_ids: &["data_read"],
618 },
619 RuntimeCapabilityAuthorizationContract {
620 capability_id: "state_standard_express_ephemeral",
621 required_permission_ids: &["data_read", "data_write"],
622 },
623 RuntimeCapabilityAuthorizationContract {
624 capability_id: "state_relaxed",
625 required_permission_ids: &[],
626 },
627 RuntimeCapabilityAuthorizationContract {
628 capability_id: "bounded_resp",
629 required_permission_ids: &["data_read", "data_write"],
630 },
631 RuntimeCapabilityAuthorizationContract {
632 capability_id: "lodestone_rust_client",
633 required_permission_ids: &[],
634 },
635 RuntimeCapabilityAuthorizationContract {
636 capability_id: "replayable_source_indexes",
637 required_permission_ids: &["index_admin"],
638 },
639 RuntimeCapabilityAuthorizationContract {
640 capability_id: "zero_copy_clones",
641 required_permission_ids: &["index_admin"],
642 },
643 RuntimeCapabilityAuthorizationContract {
644 capability_id: "retained_history",
645 required_permission_ids: &["data_read"],
646 },
647 RuntimeCapabilityAuthorizationContract {
648 capability_id: "generation_result_cache",
649 required_permission_ids: &["data_read"],
650 },
651 RuntimeCapabilityAuthorizationContract {
652 capability_id: "adaptive_field_promotion",
653 required_permission_ids: &["index_admin"],
654 },
655 RuntimeCapabilityAuthorizationContract {
656 capability_id: "durable_overload_buffering",
657 required_permission_ids: &["data_read", "data_write"],
658 },
659 RuntimeCapabilityAuthorizationContract {
660 capability_id: "current_table_reader",
661 required_permission_ids: &["data_read"],
662 },
663 RuntimeCapabilityAuthorizationContract {
664 capability_id: "crypto_shred_and_rollup_lifecycle",
665 required_permission_ids: &["lifecycle_admin"],
666 },
667];
668pub fn runtime_capability_authorization(
669 capability_id: &str,
670) -> Option<&'static RuntimeCapabilityAuthorizationContract> {
671 LODESTONE_API_RUNTIME_CAPABILITY_AUTHORIZATION
672 .iter()
673 .find(|contract| contract.capability_id == capability_id)
674}
675
676#[derive(Clone, Copy, Debug, Eq, PartialEq)]
677pub struct ClusterControlActionContract {
678 pub credential_kind: &'static str,
679 pub action: &'static str,
680}
681pub const LODESTONE_API_CLUSTER_CONTROL_FORMAT_VERSION: u16 = 2;
682pub const LODESTONE_API_CLUSTER_CONTROL_TRANSPORT: &str = "isolated_tls_u32_be_length_then_canonical_json";
683pub const LODESTONE_API_CLUSTER_CONTROL_ACTIONS: &[ClusterControlActionContract] = &[
684 ClusterControlActionContract {
685 credential_kind: "collection_provisioner",
686 action: "initialize_collection_authority",
687 },
688 ClusterControlActionContract {
689 credential_kind: "collection_provisioner",
690 action: "activate_collection_authority",
691 },
692 ClusterControlActionContract {
693 credential_kind: "collection_provisioner",
694 action: "resolve_collection_authority",
695 },
696 ClusterControlActionContract {
697 credential_kind: "collection_provisioner",
698 action: "inspect_collection_retirement",
699 },
700 ClusterControlActionContract {
701 credential_kind: "collection_provisioner",
702 action: "retire_collection_authority",
703 },
704 ClusterControlActionContract {
705 credential_kind: "collection_provisioner",
706 action: "reserve_cluster_control_credential_rotation",
707 },
708 ClusterControlActionContract {
709 credential_kind: "collection_provisioner",
710 action: "activate_cluster_control_credential_rotation",
711 },
712 ClusterControlActionContract {
713 credential_kind: "collection_provisioner",
714 action: "revoke_cluster_control_credential",
715 },
716 ClusterControlActionContract {
717 credential_kind: "collection_provisioner",
718 action: "resolve_cluster_control_credential",
719 },
720 ClusterControlActionContract {
721 credential_kind: "capacity_observer",
722 action: "observe_cluster_capacity",
723 },
724 ClusterControlActionContract {
725 credential_kind: "capacity_observer",
726 action: "observe_resource_diagnostics",
727 },
728 ClusterControlActionContract {
729 credential_kind: "recovery_operator",
730 action: "list_cluster_backups",
731 },
732 ClusterControlActionContract {
733 credential_kind: "recovery_operator",
734 action: "get_cluster_backup",
735 },
736 ClusterControlActionContract {
737 credential_kind: "recovery_operator",
738 action: "create_cluster_backup",
739 },
740 ClusterControlActionContract {
741 credential_kind: "recovery_operator",
742 action: "resolve_cluster_backup",
743 },
744 ClusterControlActionContract {
745 credential_kind: "recovery_operator",
746 action: "delete_cluster_backup",
747 },
748 ClusterControlActionContract {
749 credential_kind: "recovery_operator",
750 action: "resolve_cluster_backup_deletion",
751 },
752 ClusterControlActionContract {
753 credential_kind: "recovery_operator",
754 action: "get_cluster_restore_readiness",
755 },
756 ClusterControlActionContract {
757 credential_kind: "recovery_operator",
758 action: "prepare_offline_recovery",
759 },
760 ClusterControlActionContract {
761 credential_kind: "recovery_operator",
762 action: "reserve_cluster_control_credential_rotation",
763 },
764 ClusterControlActionContract {
765 credential_kind: "recovery_operator",
766 action: "activate_cluster_control_credential_rotation",
767 },
768 ClusterControlActionContract {
769 credential_kind: "recovery_operator",
770 action: "revoke_cluster_control_credential",
771 },
772 ClusterControlActionContract {
773 credential_kind: "recovery_operator",
774 action: "resolve_cluster_control_credential",
775 },
776];
777pub const LODESTONE_API_CLUSTER_CONTROL_TYPES: &[&str] = &[
778 "cluster_control_session",
779 "cluster_control_request",
780 "cluster_control_response",
781 "collection_authority_operation",
782 "collection_retirement_operation",
783 "collection_retirement_blockers",
784 "core_capacity_observation",
785 "core_resource_diagnostic_page",
786 "cluster_control_credential_rotation",
787 "cluster_backup_operation",
788 "cluster_restore_readiness",
789];
790
791pub const LODESTONE_API_CURSOR_FORMAT_VERSION: u16 = 1;
792#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
793#[serde(deny_unknown_fields)]
794pub struct Cursor {
795 pub value: String,
796}
797
798pub const LODESTONE_API_LOCATOR_FORMAT_VERSION: u16 = 1;
799#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
800#[serde(deny_unknown_fields)]
801pub struct Locator {
802 pub authority: String,
803 pub value: String,
804}
805
806pub const LODESTONE_API_RESOURCE_FORMAT_VERSION: u16 = 1;
807#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
808#[serde(deny_unknown_fields)]
809pub struct Resource {
810 pub kind: String,
811 pub name: String,
812 pub incarnation: Identity,
813}
814
815pub const LODESTONE_API_READ_CUT_KIND_FORMAT_VERSION: u16 = 1;
816#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
817#[serde(rename_all = "snake_case")]
818pub enum ReadCutKind {
819 Committed,
820}
821
822pub const LODESTONE_API_READ_CUT_INDEX_EVIDENCE_FORMAT_VERSION: u16 = 1;
823#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
824#[serde(deny_unknown_fields)]
825pub struct ReadCutIndexEvidence {
826 pub index: Resource,
827 pub pinned_schema_generation: U64,
828 pub cut_digest: Digest,
829}
830
831pub const LODESTONE_API_READ_CUT_EVIDENCE_SHAPE_VERSION: u16 = 1;
832pub const LODESTONE_API_READ_CUT_EVIDENCE_FORMAT_VERSION: u16 = 1;
833#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
834#[serde(deny_unknown_fields)]
835pub struct ReadCutEvidence {
836 pub format_version: u32,
837 pub kind: ReadCutKind,
838 pub collection_id: Identity,
839 pub recovery_era: Identity,
840 pub catalog_revision: U64,
841 pub indexes: Vec<ReadCutIndexEvidence>,
842 pub aggregate_digest: Digest,
843}
844
845pub const LODESTONE_API_TABLE_SNAPSHOT_OBJECT_ROLE_FORMAT_VERSION: u16 = 1;
846#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
847#[serde(rename_all = "snake_case")]
848pub enum TableSnapshotObjectRole {
849 ScopedManifest,
850 RootSet,
851 Mapping,
852 SegmentFile,
853 AliveBitset,
854 Hotcache,
855 VectorBundleDirectory,
856 VectorBundlePayload,
857 StateSnapshot,
858 PromotedColumn,
859 RollupOutput,
860 VisibilityOverlay,
861}
862
863pub const LODESTONE_API_TABLE_SNAPSHOT_CODEC_FORMAT_VERSION: u16 = 1;
864#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
865#[serde(rename_all = "snake_case")]
866pub enum TableSnapshotCodec {
867 ScopedManifestV3,
868 RootSetSinglePageV2,
869 RootSetPageV2,
870 Mapping,
871 TantivySegmentV0261,
872 AliveBitsetV1,
873 HotcacheV1,
874 VectorBundleDirectoryV1,
875 VectorBundlePayloadV1,
876 StateSnapshotV2,
877 PromotedColumnV1,
878 RollupOutputV2,
879 VisibilityOverlayV1,
880}
881
882pub const LODESTONE_API_TABLE_SNAPSHOT_OBJECT_FORMAT_VERSION: u16 = 1;
883#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
884#[serde(deny_unknown_fields)]
885pub struct TableSnapshotObject {
886 pub object_id: Digest,
887 pub role: TableSnapshotObjectRole,
888 pub codec: TableSnapshotCodec,
889 pub stored_bytes: U64,
890 pub plaintext_bytes: U64,
891}
892
893pub const LODESTONE_API_TABLE_SNAPSHOT_SHAPE_VERSION: u16 = 1;
894pub const LODESTONE_API_TABLE_SNAPSHOT_FORMAT_VERSION: u16 = 1;
895#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
896#[serde(deny_unknown_fields)]
897pub struct TableSnapshot {
898 pub format_version: u32,
899 pub locator: Locator,
900 pub index: Resource,
901 pub snapshot_digest: Digest,
902 pub root_cut_digest: Digest,
903 pub table_format_digest: Digest,
904 pub expires_at: U64,
905 pub maximum_range_bytes: U64,
906 pub objects: Vec<TableSnapshotObject>,
907}
908
909pub const LODESTONE_API_TABLE_SNAPSHOT_RESOLUTION_STATE_FORMAT_VERSION: u16 = 1;
910#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
911#[serde(rename_all = "snake_case")]
912pub enum TableSnapshotResolutionState {
913 Pending,
914 Succeeded,
915 Failed,
916 ExpiredUnknown,
917}
918
919pub const LODESTONE_API_TABLE_SNAPSHOT_RESOLUTION_FORMAT_VERSION: u16 = 1;
920#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
921#[serde(deny_unknown_fields)]
922pub struct TableSnapshotResolution {
923 pub state: TableSnapshotResolutionState,
924 #[serde(default, skip_serializing_if = "Option::is_none")]
925 pub snapshot: Option<TableSnapshot>,
926 #[serde(default, skip_serializing_if = "Option::is_none")]
927 pub failure: Option<String>,
928}
929
930pub const LODESTONE_API_TABLE_SNAPSHOT_READ_FORMAT_VERSION: u16 = 1;
931#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
932#[serde(deny_unknown_fields)]
933pub struct TableSnapshotRead {
934 pub object_id: Digest,
935 pub offset: U64,
936 pub bytes_base64: String,
937 pub content_digest: Digest,
938 pub complete: bool,
939}
940
941pub const LODESTONE_API_LOGICAL_OCCUPANCY_COUNTS_FORMAT_VERSION: u16 = 1;
942#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
943#[serde(deny_unknown_fields)]
944pub struct LogicalOccupancyCounts {
945 pub live_records: U64,
946 pub indexed_source_bytes: U64,
947 pub dense_vector_values: U64,
948 pub dense_vector_bytes: U64,
949 pub sparse_vector_values: U64,
950 pub sparse_vector_nonzero: U64,
951 pub sparse_vector_bytes: U64,
952 pub vector_set_values: U64,
953 pub vector_set_vectors: U64,
954 pub vector_set_bytes: U64,
955}
956
957pub const LODESTONE_API_LOGICAL_OCCUPANCY_GAP_STATE_FORMAT_VERSION: u16 = 1;
958#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
959#[serde(rename_all = "snake_case")]
960pub enum LogicalOccupancyGapState {
961 None,
962 AuthoritativeLifecycleTransitionsUnavailable,
963}
964
965pub const LODESTONE_API_LOGICAL_OCCUPANCY_SNAPSHOT_EVIDENCE_SHAPE_VERSION: u16 = 1;
966pub const LODESTONE_API_LOGICAL_OCCUPANCY_SNAPSHOT_EVIDENCE_FORMAT_VERSION: u16 = 1;
967#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
968#[serde(deny_unknown_fields)]
969pub struct LogicalOccupancySnapshotEvidence {
970 pub format_version: u32,
971 pub index: Resource,
972 pub mapping_generation: U64,
973 pub read_cut: ReadCutEvidence,
974 pub page_ordinal: u32,
975 pub page: LogicalOccupancyCounts,
976 pub cumulative: LogicalOccupancyCounts,
977 pub record_identity: Digest,
978 pub source_revision: Digest,
979 pub completeness_watermark: Digest,
980 pub complete: bool,
981 pub gap_state: LogicalOccupancyGapState,
982 #[serde(default, skip_serializing_if = "Option::is_none")]
983 pub corrects_record: Option<Digest>,
984}
985
986pub const LODESTONE_API_LOGICAL_OCCUPANCY_WINDOW_GAP_SHAPE_VERSION: u16 = 1;
987pub const LODESTONE_API_LOGICAL_OCCUPANCY_WINDOW_GAP_FORMAT_VERSION: u16 = 1;
988#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
989#[serde(deny_unknown_fields)]
990pub struct LogicalOccupancyWindowGap {
991 pub format_version: u32,
992 pub index: Resource,
993 pub window_start: U64,
994 pub window_end: U64,
995 pub gap_state: LogicalOccupancyGapState,
996}
997
998pub const LODESTONE_API_FIELD_PROMOTION_CONFIGURATION_SHAPE_VERSION: u16 = 1;
999pub const LODESTONE_API_FIELD_PROMOTION_CONFIGURATION_FORMAT_VERSION: u16 = 3;
1000#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1001#[serde(deny_unknown_fields)]
1002pub struct FieldPromotionConfiguration {
1003 pub format_version: u32,
1004 pub enabled: bool,
1005 pub minimum_query_count: u32,
1006 pub maximum_promoted_fields: u32,
1007 pub maximum_cardinality: U64,
1008 pub maximum_extra_bytes: U64,
1009 pub allow_sensitive: bool,
1010}
1011
1012pub const LODESTONE_API_OVERLOAD_CONFIGURATION_SHAPE_VERSION: u16 = 2;
1013pub const LODESTONE_API_OVERLOAD_CONFIGURATION_FORMAT_VERSION: u16 = 3;
1014#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1015#[serde(deny_unknown_fields)]
1016pub struct OverloadConfiguration {
1017 pub format_version: u32,
1018 pub mode: String,
1019 pub maximum_backlog_bytes: U64,
1020 pub maximum_backlog_age_millis: U64,
1021 pub maximum_collection_share_bytes: U64,
1022 pub maximum_recovery_ops_per_pass: u32,
1023 pub maximum_pending_overlay_documents: U64,
1024}
1025
1026pub const LODESTONE_API_INDEX_POLICIES_FORMAT_VERSION: u16 = 1;
1027#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1028#[serde(deny_unknown_fields)]
1029pub struct IndexPolicies {
1030 pub durability: String,
1031 pub storage: String,
1032 pub cache: String,
1033 #[serde(default, skip_serializing_if = "Option::is_none")]
1034 pub default_visibility: Option<String>,
1035 pub field_promotion: FieldPromotionConfiguration,
1036 pub overload: OverloadConfiguration,
1037}
1038
1039pub const LODESTONE_API_MAINTENANCE_BUDGETS_FORMAT_VERSION: u16 = 1;
1040#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1041#[serde(deny_unknown_fields)]
1042pub struct MaintenanceBudgets {
1043 pub memtable_max_bytes: U64,
1044 pub refresh_max_millis: U64,
1045 pub seal_max_bytes: U64,
1046 pub seal_max_millis: U64,
1047 pub merge_max_bytes: U64,
1048 pub delete_resolution_max_bytes: U64,
1049 pub wal_retention_max_bytes: U64,
1050 pub gc_max_keys: u32,
1051 pub fsck_max_objects: u32,
1052 pub deleted_tombstone_retention_millis: U64,
1053}
1054
1055pub const LODESTONE_API_RESOURCE_DURABILITY_CLASS_FORMAT_VERSION: u16 = 1;
1056#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1057#[serde(rename_all = "snake_case")]
1058pub enum ResourceDurabilityClass {
1059 RegionalObject,
1060 ZonalLowLatency,
1061 Relaxed,
1062 Ephemeral,
1063}
1064
1065pub const LODESTONE_API_RESOURCE_STORAGE_CLASS_FORMAT_VERSION: u16 = 1;
1066#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1067#[serde(rename_all = "snake_case")]
1068pub enum ResourceStorageClass {
1069 Standard,
1070 Cold,
1071}
1072
1073pub const LODESTONE_API_VECTOR_QUALITY_OBJECTIVE_FORMAT_VERSION: u16 = 1;
1074#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1075#[serde(rename_all = "snake_case")]
1076pub enum VectorQualityObjective {
1077 Balanced,
1078 HighRecall,
1079 MemoryEfficient,
1080}
1081
1082pub const LODESTONE_API_VECTOR_INDEXING_OBJECTIVE_FORMAT_VERSION: u16 = 1;
1083#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1084#[serde(rename_all = "snake_case")]
1085pub enum VectorIndexingObjective {
1086 FastBuild,
1087 Balanced,
1088 Compact,
1089}
1090
1091pub const LODESTONE_API_VECTOR_RESIDENCY_INTENT_FORMAT_VERSION: u16 = 1;
1092#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1093#[serde(rename_all = "snake_case")]
1094pub enum VectorResidencyIntent {
1095 Automatic,
1096 PreferResident,
1097 RequireResident,
1098}
1099
1100pub const LODESTONE_API_VECTOR_CALIBRATION_BINDING_FORMAT_VERSION: u16 = 1;
1101#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1102#[serde(deny_unknown_fields)]
1103pub struct VectorCalibrationBinding {
1104 pub profile: VectorStrategyProfile,
1105 pub evidence_digest: Digest,
1106}
1107
1108pub const LODESTONE_API_VECTOR_RESOURCE_POLICY_FORMAT_VERSION: u16 = 2;
1109#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1110#[serde(deny_unknown_fields)]
1111pub struct VectorResourcePolicy {
1112 pub quality: VectorQualityObjective,
1113 pub indexing: VectorIndexingObjective,
1114 #[serde(default, skip_serializing_if = "Option::is_none")]
1115 pub residency: Option<VectorResidencyIntent>,
1116 #[serde(default, skip_serializing_if = "Option::is_none")]
1117 pub calibration: Option<VectorCalibrationBinding>,
1118}
1119
1120pub const LODESTONE_API_WORKLOAD_CLASS_FORMAT_VERSION: u16 = 1;
1121#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1122#[serde(rename_all = "snake_case")]
1123pub enum WorkloadClass {
1124 InteractiveSearch,
1125 BatchAnalytics,
1126 StreamingIngest,
1127 BulkBackfill,
1128 InternalMaintenance,
1129}
1130
1131pub const LODESTONE_API_INDEX_RESOURCE_SPEC_SHAPE_VERSION: u16 = 3;
1132pub const LODESTONE_API_INDEX_RESOURCE_SPEC_FORMAT_VERSION: u16 = 3;
1133#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1134#[serde(deny_unknown_fields)]
1135pub struct IndexResourceSpec {
1136 pub format_version: u32,
1137 pub revision: U64,
1138 pub initial_shards: u32,
1139 pub target_shard_bytes: U64,
1140 pub durability: ResourceDurabilityClass,
1141 pub storage_class: ResourceStorageClass,
1142 pub ram_admission_weight: u32,
1143 pub ram_hard_max_bytes: U64,
1144 pub nvme_admission_weight: u32,
1145 pub nvme_hard_max_bytes: U64,
1146 pub refresh_objective_millis: u32,
1147 pub memtable_hard_max_bytes: U64,
1148 pub seal_parallelism: u32,
1149 pub merge_parallelism: u32,
1150 pub vector: VectorResourcePolicy,
1151 #[serde(default, skip_serializing_if = "Option::is_none")]
1152 pub lifecycle_binding: Option<Identity>,
1153 pub encryption_required: bool,
1154 #[serde(default, skip_serializing_if = "Option::is_none")]
1155 pub resolver_capability: Option<Identity>,
1156}
1157
1158pub const LODESTONE_API_INDEX_SUMMARY_FORMAT_VERSION: u16 = 1;
1159#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1160#[serde(deny_unknown_fields)]
1161pub struct IndexSummary {
1162 pub name: String,
1163 pub incarnation: Identity,
1164 pub revision: U64,
1165 pub mode: String,
1166 pub retained_event_identity: bool,
1167 pub state: String,
1168 pub schema_generation: U64,
1169 pub routing_revision: U64,
1170 pub shard_count: u32,
1171 pub policies: IndexPolicies,
1172 pub management_mode: String,
1173}
1174
1175pub const LODESTONE_API_MAPPING_MODE_FORMAT_VERSION: u16 = 1;
1176#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1177#[serde(rename_all = "snake_case")]
1178pub enum MappingMode {
1179 Mutable,
1180 AppendLog,
1181 State,
1182}
1183
1184pub const LODESTONE_API_DYNAMIC_MAPPING_POLICY_FORMAT_VERSION: u16 = 1;
1185#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1186#[serde(rename_all = "snake_case")]
1187pub enum DynamicMappingPolicy {
1188 True,
1189 False,
1190 Strict,
1191}
1192
1193pub const LODESTONE_API_MAPPING_ANALYZER_FORMAT_VERSION: u16 = 1;
1194#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1195#[serde(rename_all = "snake_case")]
1196pub enum MappingAnalyzer {
1197 Keyword,
1198 Simple,
1199 Standard,
1200 Whitespace,
1201}
1202
1203pub const LODESTONE_API_KEYWORD_NORMALIZER_FORMAT_VERSION: u16 = 1;
1204#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1205#[serde(rename_all = "snake_case")]
1206pub enum KeywordNormalizer {
1207 Keyword,
1208 Lowercase,
1209}
1210
1211pub const LODESTONE_API_VECTOR_METRIC_FORMAT_VERSION: u16 = 1;
1212#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1213#[serde(rename_all = "snake_case")]
1214pub enum VectorMetric {
1215 Cosine,
1216 DotProduct,
1217 SquaredL2,
1218}
1219
1220pub const LODESTONE_API_MAPPING_SCALAR_FORMAT_VERSION: u16 = 1;
1221#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1222#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1223pub enum MappingScalar {
1224 Boolean { value: bool },
1225 I64 { value: I64 },
1226 U64 { value: U64 },
1227 F64Bits { value: U64 },
1228 Keyword { value: String },
1229}
1230
1231pub const LODESTONE_API_SPARSE_VECTOR_WEIGHT_TYPE_FORMAT_VERSION: u16 = 1;
1232#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1233#[serde(rename_all = "snake_case")]
1234pub enum SparseVectorWeightType {
1235 F32,
1236 F16,
1237}
1238
1239pub const LODESTONE_API_MAPPING_FIELD_TYPE_SHAPE_VERSION: u16 = 3;
1240pub const LODESTONE_API_MAPPING_FIELD_TYPE_VECTOR_FORMAT_VERSION: u16 = 2;
1241pub const LODESTONE_API_MAPPING_FIELD_TYPE_SPARSE_VECTOR_FORMAT_VERSION: u16 = 1;
1242pub const LODESTONE_API_MAPPING_FIELD_TYPE_VECTOR_SET_FORMAT_VERSION: u16 = 1;
1243#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1244#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1245pub enum MappingFieldType {
1246 Text,
1247 Keyword,
1248 U64,
1249 Date,
1250 I64,
1251 F64,
1252 Bool,
1253 Nested,
1254 Vector {
1255 format_version: u32,
1256 field_id: u32,
1257 dimensions: u32,
1258 metric: VectorMetric,
1259 element_type: DenseVectorElementType,
1260 #[serde(default, skip_serializing_if = "Option::is_none")]
1261 quantization_scale: Option<ApproximateNumber>,
1262 },
1263 SparseVector {
1264 format_version: u32,
1265 field_id: u32,
1266 maximum_dimension: u32,
1267 weight_type: SparseVectorWeightType,
1268 },
1269 VectorSet {
1270 format_version: u32,
1271 field_id: u32,
1272 dimensions: u32,
1273 metric: VectorMetric,
1274 element_type: DenseVectorElementType,
1275 #[serde(default, skip_serializing_if = "Option::is_none")]
1276 quantization_scale: Option<ApproximateNumber>,
1277 maximum_vectors: u32,
1278 },
1279}
1280
1281pub const LODESTONE_API_MAPPING_FIELD_FORMAT_VERSION: u16 = 1;
1282#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1283#[serde(deny_unknown_fields)]
1284pub struct MappingField {
1285 pub path: String,
1286 pub field_type: MappingFieldType,
1287 pub stored: bool,
1288 #[serde(default, skip_serializing_if = "Option::is_none")]
1289 pub null_value: Option<MappingScalar>,
1290}
1291
1292pub const LODESTONE_API_MULTI_FIELD_PROJECTION_FORMAT_VERSION: u16 = 1;
1293#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1294#[serde(deny_unknown_fields)]
1295pub struct MultiFieldProjection {
1296 pub parent: String,
1297 pub child: String,
1298}
1299
1300pub const LODESTONE_API_ANALYZER_IDENTITY_FORMAT_VERSION: u16 = 1;
1301#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1302#[serde(deny_unknown_fields)]
1303pub struct AnalyzerIdentity {
1304 pub field: String,
1305 pub index_analyzer: MappingAnalyzer,
1306 pub search_analyzer: MappingAnalyzer,
1307}
1308
1309pub const LODESTONE_API_KEYWORD_LIMIT_FORMAT_VERSION: u16 = 1;
1310#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1311#[serde(deny_unknown_fields)]
1312pub struct KeywordLimit {
1313 pub field: String,
1314 pub max_bytes: u32,
1315 pub normalizer: KeywordNormalizer,
1316}
1317
1318pub const LODESTONE_API_PROFILE_PRIVACY_ACTION_FORMAT_VERSION: u16 = 1;
1319#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1320#[serde(rename_all = "snake_case")]
1321pub enum ProfilePrivacyAction {
1322 Allow,
1323 Drop,
1324 Redact,
1325 Reject,
1326}
1327
1328pub const LODESTONE_API_PROFILE_PRIVACY_FIELD_FORMAT_VERSION: u16 = 1;
1329#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1330#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1331pub enum ProfilePrivacyField {
1332 ResourceAttribute { key: String },
1333 ScopeAttribute { key: String },
1334 SampleLabel { key: String },
1335 FunctionName,
1336 FunctionSystemName,
1337 FunctionFilename,
1338 MappingFilename,
1339}
1340
1341pub const LODESTONE_API_PROFILE_PRIVACY_RULE_FORMAT_VERSION: u16 = 1;
1342#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1343#[serde(deny_unknown_fields)]
1344pub struct ProfilePrivacyRule {
1345 pub field: ProfilePrivacyField,
1346 pub action: ProfilePrivacyAction,
1347}
1348
1349pub const LODESTONE_API_PROFILE_PRIVACY_POLICY_SHAPE_VERSION: u16 = 1;
1350pub const LODESTONE_API_PROFILE_PRIVACY_POLICY_FORMAT_VERSION: u16 = 1;
1351#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1352#[serde(deny_unknown_fields)]
1353pub struct ProfilePrivacyPolicy {
1354 pub format_version: u32,
1355 pub rules: Vec<ProfilePrivacyRule>,
1356}
1357
1358pub const LODESTONE_API_MAPPING_RECORD_MODEL_SHAPE_VERSION: u16 = 3;
1359pub const LODESTONE_API_MAPPING_RECORD_MODEL_METRIC_V1_FORMAT_VERSION: u16 = 1;
1360pub const LODESTONE_API_MAPPING_RECORD_MODEL_RELATIONSHIP_V1_FORMAT_VERSION: u16 = 1;
1361pub const LODESTONE_API_MAPPING_RECORD_MODEL_PROFILE_V1_FORMAT_VERSION: u16 = 1;
1362#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1363#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1364pub enum MappingRecordModel {
1365 Document,
1366 MetricV1 {
1367 format_version: u32,
1368 grouping_attributes: Vec<String>,
1369 },
1370 RelationshipV1 {
1371 format_version: u32,
1372 },
1373 ProfileV1 {
1374 format_version: u32,
1375 privacy: ProfilePrivacyPolicy,
1376 },
1377}
1378
1379pub const LODESTONE_API_MAPPING_SHAPE_VERSION: u16 = 4;
1380pub const LODESTONE_API_MAPPING_FORMAT_VERSION: u16 = 10;
1381#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1382#[serde(deny_unknown_fields)]
1383pub struct Mapping {
1384 pub format_version: u32,
1385 pub generation: U64,
1386 pub mode: MappingMode,
1387 pub record_model: MappingRecordModel,
1388 pub dynamic_policy: DynamicMappingPolicy,
1389 pub fields: Vec<MappingField>,
1390 pub multi_field_projections: Vec<MultiFieldProjection>,
1391 pub analyzer_identities: Vec<AnalyzerIdentity>,
1392 pub keyword_limits: Vec<KeywordLimit>,
1393 pub nested_paths: Vec<String>,
1394}
1395
1396pub const LODESTONE_API_INDEX_DETAIL_FORMAT_VERSION: u16 = 1;
1397#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1398#[serde(deny_unknown_fields)]
1399pub struct IndexDetail {
1400 pub summary: IndexSummary,
1401 pub current_mapping: Mapping,
1402 pub budgets: MaintenanceBudgets,
1403 pub resource_spec: IndexResourceSpec,
1404 pub aliases: Vec<String>,
1405 pub data_streams: Vec<String>,
1406}
1407
1408pub const LODESTONE_API_SOURCE_PROVIDER_FORMAT_VERSION: u16 = 1;
1409#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1410#[serde(rename_all = "snake_case")]
1411pub enum SourceProvider {
1412 Kafka,
1413 ObjectLog,
1414 HttpReplay,
1415 GrpcReplay,
1416}
1417
1418pub const LODESTONE_API_SOURCE_DECODER_FORMAT_VERSION: u16 = 1;
1419#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1420#[serde(rename_all = "snake_case")]
1421pub enum SourceDecoder {
1422 LodestoneDocumentJson,
1423 DebeziumPostgresJson,
1424}
1425
1426pub const LODESTONE_API_SOURCE_REPLAY_GUARANTEES_FORMAT_VERSION: u16 = 1;
1427#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1428#[serde(deny_unknown_fields)]
1429pub struct SourceReplayGuarantees {
1430 pub durable_replay: bool,
1431 pub stable_partition_identity: bool,
1432 pub stable_operation_identity: bool,
1433 pub ordered_positions: bool,
1434 pub bounded_reads: bool,
1435 pub explicit_retention: bool,
1436 pub explicit_rewind: bool,
1437 pub minimum_replay_window_millis: U64,
1438}
1439
1440pub const LODESTONE_API_SOURCE_PARTITION_CONFIGURATION_FORMAT_VERSION: u16 = 1;
1441#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1442#[serde(deny_unknown_fields)]
1443pub struct SourcePartitionConfiguration {
1444 pub partition_id: u32,
1445 pub partition_incarnation: U64,
1446 pub initial_next_ordinal: U64,
1447 pub initial_resume_token_base64: String,
1448}
1449
1450pub const LODESTONE_API_REPLAYABLE_SOURCE_CONFIGURATION_FORMAT_VERSION: u16 = 1;
1451#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1452#[serde(deny_unknown_fields)]
1453pub struct ReplayableSourceConfiguration {
1454 pub source_incarnation: U64,
1455 pub source_identity_digest: Digest,
1456 pub provider: SourceProvider,
1457 pub decoder: SourceDecoder,
1458 pub partitions: Vec<SourcePartitionConfiguration>,
1459 pub guarantees: SourceReplayGuarantees,
1460}
1461
1462pub const LODESTONE_API_SOURCE_PARTITION_STATUS_FORMAT_VERSION: u16 = 1;
1463#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1464#[serde(deny_unknown_fields)]
1465pub struct SourcePartitionStatus {
1466 pub partition_id: u32,
1467 pub partition_incarnation: U64,
1468 pub indexed_next_ordinal: U64,
1469 #[serde(default, skip_serializing_if = "Option::is_none")]
1470 pub provider_high_watermark_next_ordinal: Option<U64>,
1471 #[serde(default, skip_serializing_if = "Option::is_none")]
1472 pub retention_floor_next_ordinal: Option<U64>,
1473 #[serde(default, skip_serializing_if = "Option::is_none")]
1474 pub lag_records: Option<U64>,
1475}
1476
1477pub const LODESTONE_API_REPLAYABLE_SOURCE_STATUS_FORMAT_VERSION: u16 = 1;
1478#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1479#[serde(deny_unknown_fields)]
1480pub struct ReplayableSourceStatus {
1481 pub index: Resource,
1482 pub provider: SourceProvider,
1483 pub decoder: SourceDecoder,
1484 pub source_incarnation: U64,
1485 pub source_identity_digest: Digest,
1486 pub lifecycle: String,
1487 pub lifecycle_generation: U64,
1488 #[serde(default, skip_serializing_if = "Option::is_none")]
1489 pub pause_reason: Option<String>,
1490 #[serde(default, skip_serializing_if = "Option::is_none")]
1491 pub rebuild_reason: Option<String>,
1492 pub retry_state: String,
1493 pub retention_risk: String,
1494 #[serde(default, skip_serializing_if = "Option::is_none")]
1495 pub last_batch_identity: Option<Identity>,
1496 pub partitions: Vec<SourcePartitionStatus>,
1497}
1498
1499pub const LODESTONE_API_SOURCE_CONTROL_TRANSITION_FORMAT_VERSION: u16 = 1;
1500#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1501#[serde(rename_all = "snake_case")]
1502pub enum SourceControlTransition {
1503 Pause,
1504 Resume,
1505 RequireRebuild,
1506}
1507
1508pub const LODESTONE_API_HISTORY_LEDGER_PRECONDITION_FORMAT_VERSION: u16 = 1;
1509#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1510#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1511pub enum HistoryLedgerPrecondition {
1512 Absent,
1513 Exact { revision: U64 },
1514}
1515
1516pub const LODESTONE_API_HISTORY_RETENTION_POLICY_FORMAT_VERSION: u16 = 1;
1517#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1518#[serde(deny_unknown_fields)]
1519pub struct HistoryRetentionPolicy {
1520 pub keep_for_millis: U64,
1521 pub capture_interval_millis: U64,
1522 pub maximum_cuts: u32,
1523 pub privacy_overlay_identity_limit: u32,
1524}
1525
1526pub const LODESTONE_API_HISTORY_SELECTOR_FORMAT_VERSION: u16 = 1;
1527#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1528#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1529pub enum HistorySelector {
1530 ExactCut { cut_id: Identity },
1531 AtOrBeforeCommitTime { unix_millis: U64 },
1532}
1533
1534pub const LODESTONE_API_HISTORY_HOLD_FORMAT_VERSION: u16 = 1;
1535#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1536#[serde(deny_unknown_fields)]
1537pub struct HistoryHold {
1538 pub hold_id: Identity,
1539 pub cut_ids: Vec<Identity>,
1540}
1541
1542pub const LODESTONE_API_HISTORY_STATUS_FORMAT_VERSION: u16 = 1;
1543#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1544#[serde(deny_unknown_fields)]
1545pub struct HistoryStatus {
1546 pub index: Resource,
1547 pub revision: U64,
1548 pub policy: HistoryRetentionPolicy,
1549 pub page_count: u32,
1550 pub cut_count: u32,
1551 pub holds: Vec<HistoryHold>,
1552}
1553
1554pub const LODESTONE_API_HISTORY_RESOLUTION_FORMAT_VERSION: u16 = 1;
1555#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1556#[serde(deny_unknown_fields)]
1557pub struct HistoryResolution {
1558 pub index: Resource,
1559 pub selector: HistorySelector,
1560 pub cut_id: Identity,
1561 pub committed_at_unix_millis: U64,
1562 pub uncertainty_millis: U64,
1563 pub shard_count: u32,
1564 pub security_policy_revision: U64,
1565}
1566
1567pub const LODESTONE_API_INDEX_REFERENCE_FORMAT_VERSION: u16 = 1;
1568#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1569#[serde(deny_unknown_fields)]
1570pub struct IndexReference {
1571 pub name: String,
1572 pub incarnation: Identity,
1573}
1574
1575pub const LODESTONE_API_ALIAS_TARGET_FORMAT_VERSION: u16 = 1;
1576#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1577#[serde(deny_unknown_fields)]
1578pub struct AliasTarget {
1579 pub index: IndexReference,
1580 pub write_index: bool,
1581}
1582
1583pub const LODESTONE_API_ALIAS_SUMMARY_FORMAT_VERSION: u16 = 1;
1584#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1585#[serde(deny_unknown_fields)]
1586pub struct AliasSummary {
1587 pub name: String,
1588 pub revision: U64,
1589 pub visible_target_count: u32,
1590}
1591
1592pub const LODESTONE_API_ALIAS_DETAIL_FORMAT_VERSION: u16 = 1;
1593#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1594#[serde(deny_unknown_fields)]
1595pub struct AliasDetail {
1596 pub summary: AliasSummary,
1597 pub visible_targets: Vec<AliasTarget>,
1598 #[serde(default, skip_serializing_if = "Option::is_none")]
1599 pub filter: Option<RawJson>,
1600 #[serde(default, skip_serializing_if = "Option::is_none")]
1601 pub index_routing: Option<String>,
1602 #[serde(default, skip_serializing_if = "Option::is_none")]
1603 pub search_routing: Option<String>,
1604}
1605
1606pub const LODESTONE_API_DATA_STREAM_SUMMARY_FORMAT_VERSION: u16 = 1;
1607#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1608#[serde(deny_unknown_fields)]
1609pub struct DataStreamSummary {
1610 pub name: String,
1611 pub incarnation: Identity,
1612 pub revision: U64,
1613 pub generation: U64,
1614 pub state: String,
1615 pub visible_backing_count: u32,
1616}
1617
1618pub const LODESTONE_API_COMPONENT_TEMPLATE_BINDING_FORMAT_VERSION: u16 = 1;
1619#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1620#[serde(deny_unknown_fields)]
1621pub struct ComponentTemplateBinding {
1622 pub name: String,
1623 pub incarnation: Identity,
1624 pub revision: U64,
1625}
1626
1627pub const LODESTONE_API_INDEX_TEMPLATE_BINDING_FORMAT_VERSION: u16 = 1;
1628#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1629#[serde(deny_unknown_fields)]
1630pub struct IndexTemplateBinding {
1631 pub name: String,
1632 pub incarnation: Identity,
1633 pub revision: U64,
1634}
1635
1636pub const LODESTONE_API_LIFECYCLE_POLICY_BINDING_FORMAT_VERSION: u16 = 1;
1637#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1638#[serde(deny_unknown_fields)]
1639pub struct LifecyclePolicyBinding {
1640 pub name: String,
1641 pub incarnation: Identity,
1642 pub revision: U64,
1643}
1644
1645pub const LODESTONE_API_DATA_STREAM_DETAIL_FORMAT_VERSION: u16 = 1;
1646#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1647#[serde(deny_unknown_fields)]
1648pub struct DataStreamDetail {
1649 pub summary: DataStreamSummary,
1650 pub visible_backing_indices: Vec<IndexReference>,
1651 #[serde(default, skip_serializing_if = "Option::is_none")]
1652 pub write_index: Option<IndexReference>,
1653 pub timestamp_field: String,
1654 pub index_template: IndexTemplateBinding,
1655 #[serde(default, skip_serializing_if = "Option::is_none")]
1656 pub lifecycle_policy: Option<LifecyclePolicyBinding>,
1657}
1658
1659pub const LODESTONE_API_COMPONENT_TEMPLATE_SUMMARY_FORMAT_VERSION: u16 = 1;
1660#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1661#[serde(deny_unknown_fields)]
1662pub struct ComponentTemplateSummary {
1663 pub name: String,
1664 pub incarnation: Identity,
1665 pub revision: U64,
1666}
1667
1668pub const LODESTONE_API_COMPONENT_TEMPLATE_DETAIL_FORMAT_VERSION: u16 = 1;
1669#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1670#[serde(deny_unknown_fields)]
1671pub struct ComponentTemplateDetail {
1672 pub summary: ComponentTemplateSummary,
1673 pub mapping: Mapping,
1674 pub settings: RawJson,
1675 #[serde(default, skip_serializing_if = "Option::is_none")]
1676 pub resource_spec: Option<IndexResourceSpec>,
1677}
1678
1679pub const LODESTONE_API_INDEX_TEMPLATE_SUMMARY_FORMAT_VERSION: u16 = 1;
1680#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1681#[serde(deny_unknown_fields)]
1682pub struct IndexTemplateSummary {
1683 pub name: String,
1684 pub incarnation: Identity,
1685 pub revision: U64,
1686 pub priority: i32,
1687 pub data_stream: bool,
1688}
1689
1690pub const LODESTONE_API_INDEX_TEMPLATE_DETAIL_FORMAT_VERSION: u16 = 1;
1691#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1692#[serde(deny_unknown_fields)]
1693pub struct IndexTemplateDetail {
1694 pub summary: IndexTemplateSummary,
1695 pub index_patterns: Vec<String>,
1696 pub components: Vec<ComponentTemplateBinding>,
1697 pub mapping: Mapping,
1698 pub settings: RawJson,
1699 #[serde(default, skip_serializing_if = "Option::is_none")]
1700 pub resource_spec: Option<IndexResourceSpec>,
1701}
1702
1703pub const LODESTONE_API_INGEST_PIPELINE_SUMMARY_FORMAT_VERSION: u16 = 1;
1704#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1705#[serde(deny_unknown_fields)]
1706pub struct IngestPipelineSummary {
1707 pub name: String,
1708 pub incarnation: Identity,
1709 pub revision: U64,
1710 pub digest: Digest,
1711}
1712
1713pub const LODESTONE_API_INGEST_PIPELINE_DETAIL_FORMAT_VERSION: u16 = 1;
1714#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1715#[serde(deny_unknown_fields)]
1716pub struct IngestPipelineDetail {
1717 pub summary: IngestPipelineSummary,
1718 pub definition: RawJson,
1719}
1720
1721pub const LODESTONE_API_INGEST_PIPELINE_SELECTION_FORMAT_VERSION: u16 = 1;
1722#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1723#[serde(deny_unknown_fields)]
1724pub struct IngestPipelineSelection {
1725 pub name: String,
1726 pub expected: ExpectedBinding,
1727}
1728
1729pub const LODESTONE_API_LIFECYCLE_POLICY_SUMMARY_FORMAT_VERSION: u16 = 1;
1730#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1731#[serde(deny_unknown_fields)]
1732pub struct LifecyclePolicySummary {
1733 pub name: String,
1734 pub incarnation: Identity,
1735 pub revision: U64,
1736}
1737
1738pub const LODESTONE_API_ROLLOVER_THRESHOLDS_FORMAT_VERSION: u16 = 1;
1739#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1740#[serde(deny_unknown_fields)]
1741pub struct RolloverThresholds {
1742 #[serde(default, skip_serializing_if = "Option::is_none")]
1743 pub max_primary_docs: Option<U64>,
1744 #[serde(default, skip_serializing_if = "Option::is_none")]
1745 pub max_primary_bytes: Option<U64>,
1746 #[serde(default, skip_serializing_if = "Option::is_none")]
1747 pub max_age_millis: Option<U64>,
1748}
1749
1750pub const LODESTONE_API_RETENTION_POLICY_FORMAT_VERSION: u16 = 1;
1751#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1752#[serde(deny_unknown_fields)]
1753pub struct RetentionPolicy {
1754 #[serde(default, skip_serializing_if = "Option::is_none")]
1755 pub document_max_age_millis: Option<U64>,
1756 #[serde(default, skip_serializing_if = "Option::is_none")]
1757 pub backing_index_max_age_millis: Option<U64>,
1758}
1759
1760pub const LODESTONE_API_LIFECYCLE_POLICY_DETAIL_FORMAT_VERSION: u16 = 1;
1761#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1762#[serde(deny_unknown_fields)]
1763pub struct LifecyclePolicyDetail {
1764 pub summary: LifecyclePolicySummary,
1765 pub rollover: RolloverThresholds,
1766 pub retention: RetentionPolicy,
1767 pub merge_hint: bool,
1768 pub freeze_hint: bool,
1769 pub delete_expired: bool,
1770}
1771
1772pub const LODESTONE_API_TEXT_QUERY_OPERATOR_FORMAT_VERSION: u16 = 1;
1773#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1774#[serde(rename_all = "snake_case")]
1775pub enum TextQueryOperator {
1776 Or,
1777 And,
1778}
1779
1780pub const LODESTONE_API_TEXT_QUERY_ANALYZER_FORMAT_VERSION: u16 = 1;
1781#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1782#[serde(rename_all = "snake_case")]
1783pub enum TextQueryAnalyzer {
1784 Mapping,
1785 Standard,
1786 Simple,
1787 Whitespace,
1788 Keyword,
1789}
1790
1791pub const LODESTONE_API_ZERO_TERMS_QUERY_FORMAT_VERSION: u16 = 1;
1792#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1793#[serde(rename_all = "snake_case")]
1794pub enum ZeroTermsQuery {
1795 None,
1796 All,
1797}
1798
1799pub const LODESTONE_API_TEXT_QUERY_OPTIONS_FORMAT_VERSION: u16 = 1;
1800#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1801#[serde(deny_unknown_fields)]
1802pub struct TextQueryOptions {
1803 pub operator: TextQueryOperator,
1804 #[serde(default, skip_serializing_if = "Option::is_none")]
1805 pub minimum_should_match: Option<u32>,
1806 pub analyzer: TextQueryAnalyzer,
1807 pub zero_terms_query: ZeroTermsQuery,
1808}
1809
1810pub const LODESTONE_API_MULTI_MATCH_MODE_FORMAT_VERSION: u16 = 1;
1811#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1812#[serde(rename_all = "snake_case")]
1813pub enum MultiMatchMode {
1814 BestFields,
1815 MostFields,
1816 Phrase,
1817 PhrasePrefix,
1818 CrossFields,
1819}
1820
1821pub const LODESTONE_API_MULTI_MATCH_FIELD_FORMAT_VERSION: u16 = 1;
1822#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1823#[serde(deny_unknown_fields)]
1824pub struct MultiMatchField {
1825 pub field: String,
1826 pub boost: ApproximateNumber,
1827}
1828
1829pub const LODESTONE_API_MULTI_MATCH_OPTIONS_FORMAT_VERSION: u16 = 1;
1830#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1831#[serde(deny_unknown_fields)]
1832pub struct MultiMatchOptions {
1833 pub mode: MultiMatchMode,
1834 pub operator: TextQueryOperator,
1835 #[serde(default, skip_serializing_if = "Option::is_none")]
1836 pub minimum_should_match: Option<u32>,
1837 pub analyzer: TextQueryAnalyzer,
1838 pub zero_terms_query: ZeroTermsQuery,
1839 pub slop: u32,
1840}
1841
1842pub const LODESTONE_API_SORT_ORDER_FORMAT_VERSION: u16 = 1;
1843#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1844#[serde(rename_all = "snake_case")]
1845pub enum SortOrder {
1846 Asc,
1847 Desc,
1848}
1849
1850pub const LODESTONE_API_SORT_MODE_FORMAT_VERSION: u16 = 1;
1851#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1852#[serde(rename_all = "snake_case")]
1853pub enum SortMode {
1854 Auto,
1855 Min,
1856 Max,
1857}
1858
1859pub const LODESTONE_API_MISSING_ORDER_FORMAT_VERSION: u16 = 1;
1860#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1861#[serde(rename_all = "snake_case")]
1862pub enum MissingOrder {
1863 First,
1864 Last,
1865}
1866
1867pub const LODESTONE_API_NESTED_SCORE_MODE_FORMAT_VERSION: u16 = 1;
1868#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1869#[serde(rename_all = "snake_case")]
1870pub enum NestedScoreMode {
1871 Avg,
1872 Max,
1873 Min,
1874 None,
1875 Sum,
1876}
1877
1878pub const LODESTONE_API_NESTED_INNER_HITS_FORMAT_VERSION: u16 = 1;
1879#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1880#[serde(deny_unknown_fields)]
1881pub struct NestedInnerHits {
1882 #[serde(default, skip_serializing_if = "Option::is_none")]
1883 pub name: Option<String>,
1884 pub from: u32,
1885 pub size: u32,
1886 pub sort: Vec<SortSpec>,
1887}
1888
1889pub const LODESTONE_API_SORT_SPEC_FORMAT_VERSION: u16 = 1;
1890#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1891#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1892pub enum SortSpec {
1893 Score {
1894 order: SortOrder,
1895 },
1896 Field {
1897 field: String,
1898 order: SortOrder,
1899 #[serde(default, skip_serializing_if = "Option::is_none")]
1900 missing: Option<MissingOrder>,
1901 mode: SortMode,
1902 },
1903 NestedField {
1904 path: String,
1905 field: String,
1906 #[serde(default, skip_serializing_if = "Option::is_none")]
1907 filter: Option<Box<Query>>,
1908 order: SortOrder,
1909 #[serde(default, skip_serializing_if = "Option::is_none")]
1910 missing: Option<MissingOrder>,
1911 mode: SortMode,
1912 },
1913}
1914
1915pub const LODESTONE_API_QUERY_FORMAT_VERSION: u16 = 1;
1916#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
1917#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
1918pub enum Query {
1919 MatchAll,
1920 Term {
1921 field: String,
1922 value: JsonValue,
1923 },
1924 Terms {
1925 field: String,
1926 values: Vec<JsonValue>,
1927 },
1928 Range {
1929 field: String,
1930 #[serde(default, skip_serializing_if = "Option::is_none")]
1931 lower: Option<JsonValue>,
1932 #[serde(default, skip_serializing_if = "Option::is_none")]
1933 upper: Option<JsonValue>,
1934 include_lower: bool,
1935 include_upper: bool,
1936 },
1937 Text {
1938 field: String,
1939 text: String,
1940 #[serde(default, skip_serializing_if = "Option::is_none")]
1941 options: Option<TextQueryOptions>,
1942 },
1943 MultiMatch {
1944 fields: Vec<MultiMatchField>,
1945 text: String,
1946 #[serde(default, skip_serializing_if = "Option::is_none")]
1947 options: Option<MultiMatchOptions>,
1948 },
1949 Exists {
1950 field: String,
1951 },
1952 Prefix {
1953 field: String,
1954 prefix: String,
1955 #[serde(default, skip_serializing_if = "Option::is_none")]
1956 analyzer: Option<TextQueryAnalyzer>,
1957 analyze_wildcard: bool,
1958 },
1959 Fuzzy {
1960 field: String,
1961 value: String,
1962 distance: u32,
1963 #[serde(default, skip_serializing_if = "Option::is_none")]
1964 analyzer: Option<TextQueryAnalyzer>,
1965 },
1966 Boost {
1967 query: Box<Query>,
1968 boost: ApproximateNumber,
1969 },
1970 Bool {
1971 must: Vec<Query>,
1972 filter: Vec<Query>,
1973 should: Vec<Query>,
1974 must_not: Vec<Query>,
1975 minimum_should_match: u32,
1976 },
1977 Nested {
1978 path: String,
1979 query: Box<Query>,
1980 score_mode: NestedScoreMode,
1981 ignore_unmapped: bool,
1982 #[serde(default, skip_serializing_if = "Option::is_none")]
1983 inner_hits: Option<NestedInnerHits>,
1984 },
1985}
1986
1987pub const LODESTONE_API_DENSE_RETRIEVAL_MODE_FORMAT_VERSION: u16 = 1;
1988#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1989#[serde(rename_all = "snake_case")]
1990pub enum DenseRetrievalMode {
1991 Auto,
1992 Ann,
1993 Exact,
1994}
1995
1996pub const LODESTONE_API_VECTOR_ACHIEVED_MODE_FORMAT_VERSION: u16 = 1;
1997#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
1998#[serde(rename_all = "snake_case")]
1999pub enum VectorAchievedMode {
2000 Exact,
2001 Ann,
2002 Mixed,
2003}
2004
2005pub const LODESTONE_API_VECTOR_BRANCH_DIAGNOSTICS_FORMAT_VERSION: u16 = 2;
2006#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2007#[serde(deny_unknown_fields)]
2008pub struct VectorBranchDiagnostics {
2009 pub name: String,
2010 pub requested_mode: DenseRetrievalMode,
2011 pub achieved_mode: VectorAchievedMode,
2012 pub result_count: U64,
2013 pub exact_segments: U64,
2014 pub ann_segments: U64,
2015 pub exact_fallback_segments: U64,
2016 pub distance_evaluations: U64,
2017 pub peak_scratch_bytes: U64,
2018 pub fresh_vectors_scanned: U64,
2019 pub realtime_overlay_queries: U64,
2020 pub realtime_overlay_candidates: U64,
2021 pub bundle_roots: U64,
2022 pub object_read_requests: U64,
2023 pub object_bytes_read: U64,
2024 pub cache_hits: U64,
2025 pub cache_misses: U64,
2026 pub snapshot_digests: Vec<Digest>,
2027}
2028
2029pub const LODESTONE_API_DENSE_VECTOR_ELEMENT_TYPE_FORMAT_VERSION: u16 = 1;
2030#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2031#[serde(rename_all = "snake_case")]
2032pub enum DenseVectorElementType {
2033 F32,
2034 F16,
2035 I8,
2036}
2037
2038pub const LODESTONE_API_DENSE_VECTOR_BYTE_ORDER_FORMAT_VERSION: u16 = 1;
2039#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2040#[serde(rename_all = "snake_case")]
2041pub enum DenseVectorByteOrder {
2042 LittleEndian,
2043}
2044
2045pub const LODESTONE_API_VECTOR_VALUE_FORMAT_VERSION: u16 = 1;
2046#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2047#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2048pub enum VectorValue {
2049 Numeric {
2050 values: Vec<ApproximateNumber>,
2051 },
2052 Binary {
2053 element_type: DenseVectorElementType,
2054 byte_order: DenseVectorByteOrder,
2055 data_base64: String,
2056 #[serde(default, skip_serializing_if = "Option::is_none")]
2057 quantization_scale: Option<ApproximateNumber>,
2058 },
2059}
2060
2061pub const LODESTONE_API_SPARSE_VECTOR_ENTRY_FORMAT_VERSION: u16 = 1;
2062#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2063#[serde(deny_unknown_fields)]
2064pub struct SparseVectorEntry {
2065 pub dimension: u32,
2066 pub weight: ApproximateNumber,
2067}
2068
2069pub const LODESTONE_API_SPARSE_VECTOR_VALUE_FORMAT_VERSION: u16 = 1;
2070#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2071#[serde(deny_unknown_fields)]
2072pub struct SparseVectorValue {
2073 pub entries: Vec<SparseVectorEntry>,
2074}
2075
2076pub const LODESTONE_API_VECTOR_SET_VALUE_FORMAT_VERSION: u16 = 1;
2077#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2078#[serde(deny_unknown_fields)]
2079pub struct VectorSetValue {
2080 pub vectors: Vec<VectorValue>,
2081}
2082
2083pub const LODESTONE_API_VECTOR_EVALUATION_SNAPSHOT_FORMAT_VERSION: u16 = 1;
2084#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2085#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2086pub enum VectorEvaluationSnapshot {
2087 CommittedCut { digest: Digest },
2088 Pit { pit: Cursor },
2089}
2090
2091pub const LODESTONE_API_VECTOR_EVALUATION_QUERY_SET_FORMAT_VERSION: u16 = 1;
2092#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2093#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2094pub enum VectorEvaluationQuerySet {
2095 Sample { seed: U64, sample_count: u32 },
2096 Supplied { digest: Digest, queries: Vec<VectorValue> },
2097}
2098
2099pub const LODESTONE_API_VECTOR_EVALUATION_BUDGET_FORMAT_VERSION: u16 = 1;
2100#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2101#[serde(deny_unknown_fields)]
2102pub struct VectorEvaluationBudget {
2103 pub maximum_distance_evaluations: U64,
2104 pub maximum_elapsed_work_units: U64,
2105 pub maximum_peak_memory_bytes: U64,
2106 pub maximum_object_reads: U64,
2107 pub maximum_object_bytes: U64,
2108 pub maximum_build_scratch_bytes: U64,
2109 pub maximum_profile_comparisons: u32,
2110}
2111
2112pub const LODESTONE_API_VECTOR_CANDIDATE_POLICY_FORMAT_VERSION: u16 = 1;
2113#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2114#[serde(rename_all = "snake_case")]
2115pub enum VectorCandidatePolicy {
2116 Balanced,
2117 HighRecall,
2118 MemoryEfficient,
2119}
2120
2121pub const LODESTONE_API_VECTOR_CALIBRATION_OBJECTIVE_FORMAT_VERSION: u16 = 1;
2122#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2123#[serde(rename_all = "snake_case")]
2124pub enum VectorCalibrationObjective {
2125 Balanced,
2126 HighRecall,
2127 MemoryEfficient,
2128}
2129
2130pub const LODESTONE_API_VECTOR_STRATEGY_PROFILE_FORMAT_VERSION: u16 = 1;
2131#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2132#[serde(rename_all = "snake_case")]
2133pub enum VectorStrategyProfile {
2134 BalancedV1,
2135 HighRecallV1,
2136 MemoryEfficientV1,
2137}
2138
2139pub const LODESTONE_API_VECTOR_EVALUATION_WORK_FORMAT_VERSION: u16 = 1;
2140#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2141#[serde(deny_unknown_fields)]
2142pub struct VectorEvaluationWork {
2143 pub distance_evaluations: U64,
2144 pub elapsed_work_units: U64,
2145 pub peak_memory_bytes: U64,
2146 pub object_reads: U64,
2147 pub object_bytes: U64,
2148}
2149
2150pub const LODESTONE_API_VECTOR_EVALUATION_ERROR_CODE_FORMAT_VERSION: u16 = 1;
2151#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2152#[serde(rename_all = "snake_case")]
2153pub enum VectorEvaluationErrorCode {
2154 AnnRefused,
2155 ExhaustiveRefused,
2156 TimedOut,
2157 Cancelled,
2158 Internal,
2159}
2160
2161pub const LODESTONE_API_VECTOR_EVALUATION_ERROR_FORMAT_VERSION: u16 = 1;
2162#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2163#[serde(deny_unknown_fields)]
2164pub struct VectorEvaluationError {
2165 pub sample_ordinal: u32,
2166 pub code: VectorEvaluationErrorCode,
2167}
2168
2169pub const LODESTONE_API_VECTOR_RECALL_RESULT_SHAPE_VERSION: u16 = 1;
2170pub const LODESTONE_API_VECTOR_RECALL_RESULT_FORMAT_VERSION: u16 = 1;
2171#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2172#[serde(deny_unknown_fields)]
2173pub struct VectorRecallResult {
2174 pub format_version: u32,
2175 pub index: Resource,
2176 pub field: String,
2177 pub mapping_generation: U64,
2178 pub snapshot_digest: Digest,
2179 pub query_set_digest: Digest,
2180 pub metric: VectorMetric,
2181 pub k: u32,
2182 pub candidate_policy: VectorCandidatePolicy,
2183 pub strategy_identity: String,
2184 pub completed_samples: u32,
2185 pub ann_result_count: U64,
2186 pub exhaustive_result_count: U64,
2187 pub mean_recall_basis_points: u32,
2188 pub minimum_recall_basis_points: u32,
2189 pub p05_recall_basis_points: u32,
2190 pub p50_recall_basis_points: u32,
2191 pub p90_recall_basis_points: u32,
2192 pub p99_recall_basis_points: u32,
2193 pub ann_work: VectorEvaluationWork,
2194 pub exhaustive_work: VectorEvaluationWork,
2195 pub errors: Vec<VectorEvaluationError>,
2196}
2197
2198pub const LODESTONE_API_VECTOR_CALIBRATION_CANDIDATE_FORMAT_VERSION: u16 = 1;
2199#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2200#[serde(deny_unknown_fields)]
2201pub struct VectorCalibrationCandidate {
2202 pub profile: VectorStrategyProfile,
2203 pub recall: VectorRecallResult,
2204 pub build_scratch_bytes: U64,
2205 pub resident_bytes: U64,
2206 pub evidence_digest: Digest,
2207}
2208
2209pub const LODESTONE_API_VECTOR_CALIBRATION_RESULT_SHAPE_VERSION: u16 = 1;
2210pub const LODESTONE_API_VECTOR_CALIBRATION_RESULT_FORMAT_VERSION: u16 = 1;
2211#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2212#[serde(deny_unknown_fields)]
2213pub struct VectorCalibrationResult {
2214 pub format_version: u32,
2215 pub objective: VectorCalibrationObjective,
2216 pub candidates: Vec<VectorCalibrationCandidate>,
2217 pub recommended_profile: VectorStrategyProfile,
2218 pub recommended_evidence_digest: Digest,
2219 pub requires_explicit_resource_revision_and_rebuild: bool,
2220}
2221
2222pub const LODESTONE_API_VECTOR_DIAGNOSTIC_RESULT_FORMAT_VERSION: u16 = 1;
2223#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2224#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2225pub enum VectorDiagnosticResult {
2226 Recall { result: Box<VectorRecallResult> },
2227 Calibration { result: Box<VectorCalibrationResult> },
2228}
2229
2230pub const LODESTONE_API_VECTOR_WARM_COMPONENT_FORMAT_VERSION: u16 = 1;
2231#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2232#[serde(rename_all = "snake_case")]
2233pub enum VectorWarmComponent {
2234 Directory,
2235 Approximate,
2236 Exact,
2237}
2238
2239pub const LODESTONE_API_VECTOR_WARM_STATE_FORMAT_VERSION: u16 = 1;
2240#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2241#[serde(rename_all = "snake_case")]
2242pub enum VectorWarmState {
2243 Warmed,
2244 Partial,
2245 Stale,
2246}
2247
2248pub const LODESTONE_API_VECTOR_WARM_ACHIEVEMENT_FORMAT_VERSION: u16 = 1;
2249#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2250#[serde(deny_unknown_fields)]
2251pub struct VectorWarmAchievement {
2252 pub component: VectorWarmComponent,
2253 pub cache_identity: Digest,
2254 pub resident_bytes: U64,
2255}
2256
2257pub const LODESTONE_API_VECTOR_WARM_RESULT_SHAPE_VERSION: u16 = 1;
2258pub const LODESTONE_API_VECTOR_WARM_RESULT_FORMAT_VERSION: u16 = 1;
2259#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2260#[serde(deny_unknown_fields)]
2261pub struct VectorWarmResult {
2262 pub format_version: u32,
2263 pub operation_identity: Digest,
2264 pub index: Resource,
2265 pub root_digest: Digest,
2266 pub state: VectorWarmState,
2267 pub progress: ExactDecimal,
2268 pub achieved: Vec<VectorWarmAchievement>,
2269 pub object_requests: U64,
2270 pub object_bytes: U64,
2271 pub cache_hits: U64,
2272 pub cache_misses: U64,
2273 pub started_at: U64,
2274 pub completed_at: U64,
2275 pub expires_at: U64,
2276 #[serde(default, skip_serializing_if = "Option::is_none")]
2277 pub residency_intent: Option<VectorResidencyIntent>,
2278}
2279
2280pub const LODESTONE_API_DENSE_RETRIEVAL_THRESHOLD_FORMAT_VERSION: u16 = 1;
2281#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2282#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2283pub enum DenseRetrievalThreshold {
2284 MinimumScore { value: ApproximateNumber },
2285 MaximumDistance { value: ApproximateNumber },
2286}
2287
2288pub const LODESTONE_API_RETRIEVAL_BRANCH_FORMAT_VERSION: u16 = 3;
2289#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2290#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2291pub enum RetrievalBranch {
2292 Lexical {
2293 name: String,
2294 query: Box<Query>,
2295 #[serde(default, skip_serializing_if = "Option::is_none")]
2296 filter: Option<Box<Query>>,
2297 window: u32,
2298 weight: ApproximateNumber,
2299 },
2300 Dense {
2301 name: String,
2302 field: String,
2303 query_vector: VectorValue,
2304 #[serde(default, skip_serializing_if = "Option::is_none")]
2305 filter: Option<Box<Query>>,
2306 window: u32,
2307 #[serde(default, skip_serializing_if = "Option::is_none")]
2308 candidates: Option<u32>,
2309 weight: ApproximateNumber,
2310 mode: DenseRetrievalMode,
2311 #[serde(default, skip_serializing_if = "Option::is_none")]
2312 threshold: Option<DenseRetrievalThreshold>,
2313 },
2314 Sparse {
2315 name: String,
2316 field: String,
2317 query_vector: SparseVectorValue,
2318 #[serde(default, skip_serializing_if = "Option::is_none")]
2319 filter: Option<Box<Query>>,
2320 window: u32,
2321 weight: ApproximateNumber,
2322 },
2323 LateInteraction {
2324 name: String,
2325 field: String,
2326 query_vectors: VectorSetValue,
2327 #[serde(default, skip_serializing_if = "Option::is_none")]
2328 filter: Option<Box<Query>>,
2329 window: u32,
2330 candidates: u32,
2331 weight: ApproximateNumber,
2332 },
2333}
2334
2335pub const LODESTONE_API_WEIGHTED_RRF_FUSION_FORMAT_VERSION: u16 = 1;
2336#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2337#[serde(deny_unknown_fields)]
2338pub struct WeightedRrfFusion {
2339 pub rank_constant: u32,
2340}
2341
2342pub const LODESTONE_API_RETRIEVAL_PLAN_SHAPE_VERSION: u16 = 1;
2343pub const LODESTONE_API_RETRIEVAL_PLAN_FORMAT_VERSION: u16 = 1;
2344#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2345#[serde(deny_unknown_fields)]
2346pub struct RetrievalPlan {
2347 pub format_version: u32,
2348 #[serde(default, skip_serializing_if = "Option::is_none")]
2349 pub global_filter: Option<Box<Query>>,
2350 pub branches: Vec<RetrievalBranch>,
2351 pub fusion: WeightedRrfFusion,
2352 pub result_window: u32,
2353}
2354
2355pub const LODESTONE_API_HISTOGRAM_BOUNDS_FORMAT_VERSION: u16 = 1;
2356#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2357#[serde(deny_unknown_fields)]
2358pub struct HistogramBounds {
2359 #[serde(default, skip_serializing_if = "Option::is_none")]
2360 pub min: Option<ApproximateNumber>,
2361 #[serde(default, skip_serializing_if = "Option::is_none")]
2362 pub max: Option<ApproximateNumber>,
2363}
2364
2365pub const LODESTONE_API_DATE_HISTOGRAM_BOUNDS_FORMAT_VERSION: u16 = 1;
2366#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2367#[serde(deny_unknown_fields)]
2368pub struct DateHistogramBounds {
2369 #[serde(default, skip_serializing_if = "Option::is_none")]
2370 pub min: Option<I64>,
2371 #[serde(default, skip_serializing_if = "Option::is_none")]
2372 pub max: Option<I64>,
2373}
2374
2375pub const LODESTONE_API_APPROXIMATION_ALGORITHM_FORMAT_VERSION: u16 = 1;
2376#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2377#[serde(rename_all = "snake_case")]
2378pub enum ApproximationAlgorithm {
2379 HyperloglogV1,
2380 FloatPrefixHistogramV1,
2381}
2382
2383pub const LODESTONE_API_APPROXIMATION_FORMAT_VERSION: u16 = 1;
2384#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2385#[serde(deny_unknown_fields)]
2386pub struct Approximation {
2387 pub algorithm: ApproximationAlgorithm,
2388 pub algorithm_version: u32,
2389 pub precision: u32,
2390 pub state_bytes: U64,
2391 #[serde(default, skip_serializing_if = "Option::is_none")]
2392 pub relative_standard_error: Option<ApproximateNumber>,
2393 #[serde(default, skip_serializing_if = "Option::is_none")]
2394 pub maximum_rank_error: Option<ApproximateNumber>,
2395}
2396
2397pub const LODESTONE_API_PERCENTILE_VALUE_FORMAT_VERSION: u16 = 1;
2398#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2399#[serde(deny_unknown_fields)]
2400pub struct PercentileValue {
2401 pub percent: ApproximateNumber,
2402 #[serde(default, skip_serializing_if = "Option::is_none")]
2403 pub value: Option<ApproximateNumber>,
2404}
2405
2406pub const LODESTONE_API_APPROXIMATE_PERCENTILE_VALUE_FORMAT_VERSION: u16 = 1;
2407#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2408#[serde(deny_unknown_fields)]
2409pub struct ApproximatePercentileValue {
2410 pub percent: ApproximateNumber,
2411 pub value: ApproximateNumber,
2412 pub lower_bound: ApproximateNumber,
2413 pub upper_bound: ApproximateNumber,
2414 pub maximum_rank_error: ApproximateNumber,
2415}
2416
2417pub const LODESTONE_API_TIME_SERIES_OPERATOR_FORMAT_VERSION: u16 = 1;
2418#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2419#[serde(rename_all = "snake_case")]
2420pub enum TimeSeriesOperator {
2421 Raw,
2422 Sum,
2423 Count,
2424 Min,
2425 Max,
2426 Average,
2427 Delta,
2428 Increase,
2429 Rate,
2430 HistogramMerge,
2431 Quantiles,
2432}
2433
2434pub const LODESTONE_API_TIME_SERIES_MISSING_DATA_FORMAT_VERSION: u16 = 1;
2435#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2436#[serde(rename_all = "snake_case")]
2437pub enum TimeSeriesMissingData {
2438 Omit,
2439 ExplicitEmpty,
2440}
2441
2442pub const LODESTONE_API_TIME_SERIES_QUANTILE_MODE_FORMAT_VERSION: u16 = 1;
2443#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2444#[serde(rename_all = "snake_case")]
2445pub enum TimeSeriesQuantileMode {
2446 Exact,
2447 Approximate,
2448}
2449
2450pub const LODESTONE_API_TIME_SERIES_BUCKET_STATE_FORMAT_VERSION: u16 = 1;
2451#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2452#[serde(rename_all = "snake_case")]
2453pub enum TimeSeriesBucketState {
2454 Observed,
2455 ExplicitEmpty,
2456}
2457
2458pub const LODESTONE_API_TIME_SERIES_QUANTILE_VALUE_FORMAT_VERSION: u16 = 1;
2459#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2460#[serde(deny_unknown_fields)]
2461pub struct TimeSeriesQuantileValue {
2462 pub quantile: ApproximateNumber,
2463 #[serde(default, skip_serializing_if = "Option::is_none")]
2464 pub value: Option<MetricNumber>,
2465 #[serde(default, skip_serializing_if = "Option::is_none")]
2466 pub lower_bound: Option<MetricNumber>,
2467 #[serde(default, skip_serializing_if = "Option::is_none")]
2468 pub upper_bound: Option<MetricNumber>,
2469 #[serde(default, skip_serializing_if = "Option::is_none")]
2470 pub maximum_rank_error: Option<ApproximateNumber>,
2471}
2472
2473pub const LODESTONE_API_TIME_SERIES_VALUE_FORMAT_VERSION: u16 = 1;
2474#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2475#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2476pub enum TimeSeriesValue {
2477 Raw {
2478 values: Vec<MetricNumber>,
2479 },
2480 Number {
2481 value: MetricNumber,
2482 algorithm: String,
2483 },
2484 Count {
2485 value: U64,
2486 },
2487 ExplicitHistogram {
2488 count: U64,
2489 #[serde(default, skip_serializing_if = "Option::is_none")]
2490 sum: Option<MetricNumber>,
2491 bounds_f64_bits: Vec<U64>,
2492 bucket_counts: Vec<U64>,
2493 },
2494 ExponentialHistogram {
2495 count: U64,
2496 #[serde(default, skip_serializing_if = "Option::is_none")]
2497 sum: Option<MetricNumber>,
2498 scale: i32,
2499 zero_count: U64,
2500 positive: MetricExponentialBuckets,
2501 negative: MetricExponentialBuckets,
2502 },
2503 Quantiles {
2504 values: Vec<TimeSeriesQuantileValue>,
2505 exact: bool,
2506 algorithm: String,
2507 algorithm_version: u32,
2508 state_bytes: U64,
2509 },
2510}
2511
2512pub const LODESTONE_API_TIME_SERIES_BUCKET_FORMAT_VERSION: u16 = 1;
2513#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2514#[serde(deny_unknown_fields)]
2515pub struct TimeSeriesBucket {
2516 pub start_unix_nanos: U64,
2517 pub end_unix_nanos: U64,
2518 pub group: Vec<MetricAttribute>,
2519 pub state: TimeSeriesBucketState,
2520 pub reset: bool,
2521 #[serde(default, skip_serializing_if = "Option::is_none")]
2522 pub value: Option<TimeSeriesValue>,
2523 pub exemplars: Vec<MetricExemplar>,
2524}
2525
2526pub const LODESTONE_API_RELATIONSHIP_TRAVERSAL_DIRECTION_FORMAT_VERSION: u16 = 1;
2527#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2528#[serde(rename_all = "snake_case")]
2529pub enum RelationshipTraversalDirection {
2530 Inbound,
2531 Outbound,
2532 Both,
2533}
2534
2535pub const LODESTONE_API_RELATIONSHIP_TRAVERSAL_FILTER_FORMAT_VERSION: u16 = 1;
2536#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2537#[serde(deny_unknown_fields)]
2538pub struct RelationshipTraversalFilter {
2539 pub relationship_types: Vec<String>,
2540 pub assertion_classes: Vec<String>,
2541 pub provenance: Vec<String>,
2542 #[serde(default, skip_serializing_if = "Option::is_none")]
2543 pub valid_from_unix_nanos: Option<U64>,
2544 #[serde(default, skip_serializing_if = "Option::is_none")]
2545 pub valid_through_unix_nanos: Option<U64>,
2546}
2547
2548pub const LODESTONE_API_RELATIONSHIP_TRAVERSAL_BUDGET_FORMAT_VERSION: u16 = 1;
2549#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2550#[serde(deny_unknown_fields)]
2551pub struct RelationshipTraversalBudget {
2552 pub maximum_depth: u32,
2553 pub maximum_fan_out: u32,
2554 pub maximum_visited_entities: u32,
2555 pub maximum_visited_relationships: u32,
2556 pub maximum_returned_relationships: u32,
2557 pub maximum_memory_bytes: U64,
2558}
2559
2560pub const LODESTONE_API_TRAVERSED_RELATIONSHIP_FORMAT_VERSION: u16 = 1;
2561#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2562#[serde(deny_unknown_fields)]
2563pub struct TraversedRelationship {
2564 pub depth: u32,
2565 pub from: EntityRef,
2566 pub to: EntityRef,
2567 pub relationship: RelationshipRecord,
2568}
2569
2570pub const LODESTONE_API_PROFILE_QUERY_OPERATION_FORMAT_VERSION: u16 = 1;
2571#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2572#[serde(rename_all = "snake_case")]
2573pub enum ProfileQueryOperation {
2574 Flamegraph,
2575 TopStacks,
2576 TopFunctions,
2577 SampleTable,
2578}
2579
2580pub const LODESTONE_API_PROFILE_GROUP_BY_FORMAT_VERSION: u16 = 1;
2581#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2582#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2583pub enum ProfileGroupBy {
2584 ResourceAttribute { key: String },
2585 SampleLabel { key: String },
2586 BuildId,
2587 ModuleId,
2588}
2589
2590pub const LODESTONE_API_PROFILE_QUERY_FILTER_FORMAT_VERSION: u16 = 1;
2591#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2592#[serde(deny_unknown_fields)]
2593pub struct ProfileQueryFilter {
2594 pub profile_ids: Vec<String>,
2595 pub build_ids: Vec<String>,
2596 pub module_ids: Vec<String>,
2597 pub function_ids: Vec<String>,
2598 pub trace_ids: Vec<String>,
2599 pub span_ids: Vec<String>,
2600}
2601
2602pub const LODESTONE_API_PROFILE_QUERY_BUDGET_FORMAT_VERSION: u16 = 1;
2603#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2604#[serde(deny_unknown_fields)]
2605pub struct ProfileQueryBudget {
2606 pub maximum_batches: u32,
2607 pub maximum_samples: u32,
2608 pub maximum_results: u32,
2609 pub maximum_memory_bytes: U64,
2610}
2611
2612pub const LODESTONE_API_PROFILE_QUERY_ROW_FORMAT_VERSION: u16 = 1;
2613#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2614#[serde(deny_unknown_fields)]
2615pub struct ProfileQueryRow {
2616 pub key: String,
2617 pub stack: Vec<String>,
2618 pub value: MetricNumber,
2619 pub sample_count: U64,
2620}
2621
2622pub const LODESTONE_API_TEMPORAL_INPUT_FORMAT_VERSION: u16 = 1;
2623#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2624#[serde(deny_unknown_fields)]
2625pub struct TemporalInput {
2626 pub index: Resource,
2627 pub schema_generation: U64,
2628}
2629
2630pub const LODESTONE_API_TEMPORAL_PATTERN_FORMAT_VERSION: u16 = 1;
2631#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2632#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2633pub enum TemporalPattern {
2634 Event {
2635 node_id: String,
2636 query: Box<Query>,
2637 },
2638 Sequence {
2639 node_id: String,
2640 branches: Vec<TemporalPattern>,
2641 within_nanos: U64,
2642 },
2643 AllOf {
2644 node_id: String,
2645 branches: Vec<TemporalPattern>,
2646 within_nanos: U64,
2647 },
2648 AnyOf {
2649 node_id: String,
2650 branches: Vec<TemporalPattern>,
2651 },
2652 Count {
2653 node_id: String,
2654 pattern: Box<TemporalPattern>,
2655 minimum: u32,
2656 within_nanos: U64,
2657 },
2658 Repetition {
2659 node_id: String,
2660 pattern: Box<TemporalPattern>,
2661 count: u32,
2662 within_nanos: U64,
2663 },
2664 NotFollowedBy {
2665 node_id: String,
2666 anchor: Box<TemporalPattern>,
2667 forbidden: Box<TemporalPattern>,
2668 within_nanos: U64,
2669 },
2670}
2671
2672pub const LODESTONE_API_HISTORICAL_TEMPORAL_DEFINITION_SHAPE_VERSION: u16 = 1;
2673pub const LODESTONE_API_HISTORICAL_TEMPORAL_DEFINITION_FORMAT_VERSION: u16 = 1;
2674#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2675#[serde(deny_unknown_fields)]
2676pub struct HistoricalTemporalDefinition {
2677 pub format_version: u32,
2678 pub pattern_generation: U64,
2679 pub inputs: Vec<TemporalInput>,
2680 pub event_time_field: String,
2681 pub correlation_fields: Vec<String>,
2682 pub pattern: TemporalPattern,
2683 pub watermark_unix_nanos: U64,
2684 pub maximum_events: u32,
2685 pub maximum_states: u32,
2686 pub maximum_captured_events: u32,
2687 pub maximum_results: u32,
2688 pub maximum_state_bytes: U64,
2689}
2690
2691pub const LODESTONE_API_TEMPORAL_EVIDENCE_STATUS_FORMAT_VERSION: u16 = 2;
2692#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2693#[serde(rename_all = "snake_case")]
2694pub enum TemporalEvidenceStatus {
2695 Provisional,
2696 Final,
2697 Correction,
2698 Retraction,
2699}
2700
2701pub const LODESTONE_API_TEMPORAL_SOURCE_EVENT_FORMAT_VERSION: u16 = 1;
2702#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2703#[serde(deny_unknown_fields)]
2704pub struct TemporalSourceEvent {
2705 pub index: Resource,
2706 pub shard_id: u32,
2707 pub recovery_era: Identity,
2708 pub sequence: U64,
2709 pub document_id: String,
2710}
2711
2712pub const LODESTONE_API_TEMPORAL_EVIDENCE_FORMAT_VERSION: u16 = 2;
2713#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2714#[serde(deny_unknown_fields)]
2715pub struct TemporalEvidence {
2716 pub evidence_id: Digest,
2717 pub pattern_generation: U64,
2718 pub pattern_digest: Digest,
2719 pub correlation_key: Vec<JsonValue>,
2720 pub matched_node_id: String,
2721 pub interval_start_unix_nanos: U64,
2722 pub interval_end_unix_nanos: U64,
2723 pub watermark_unix_nanos: U64,
2724 pub source_events: Vec<TemporalSourceEvent>,
2725 pub input_cut_digest: Digest,
2726 pub status: TemporalEvidenceStatus,
2727 #[serde(default, skip_serializing_if = "Option::is_none")]
2728 pub predecessor_evidence_id: Option<Digest>,
2729}
2730
2731pub const LODESTONE_API_CONTINUOUS_TEMPORAL_START_FORMAT_VERSION: u16 = 1;
2732#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2733#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2734pub enum ContinuousTemporalStart {
2735 FromCurrentHeads,
2736 HistoricalThenFollow { pit: Cursor },
2737}
2738
2739pub const LODESTONE_API_CONTINUOUS_TEMPORAL_WATERMARK_POLICY_FORMAT_VERSION: u16 = 1;
2740#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2741#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2742pub enum ContinuousTemporalWatermarkPolicy {
2743 MaximumObservedMinusOutOfOrder {
2744 allowed_out_of_orderness_nanos: U64,
2745 },
2746 MappingBoundEvent {
2747 allowed_out_of_orderness_nanos: U64,
2748 predicate: Box<Query>,
2749 timestamp_field: String,
2750 },
2751}
2752
2753pub const LODESTONE_API_CONTINUOUS_TEMPORAL_LATE_DATA_POLICY_FORMAT_VERSION: u16 = 1;
2754#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2755#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2756pub enum ContinuousTemporalLateDataPolicy {
2757 RecomputeWithinHorizon { correction_horizon_nanos: U64 },
2758 PauseWithGap,
2759}
2760
2761pub const LODESTONE_API_CONTINUOUS_TEMPORAL_OUTPUT_FORMAT_VERSION: u16 = 1;
2762#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2763#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2764pub enum ContinuousTemporalOutput {
2765 InternalResults {
2766 maximum_retained_records: U64,
2767 maximum_retained_bytes: U64,
2768 maximum_retained_event_age_nanos: U64,
2769 },
2770 MaterializedIndex {
2771 index: Resource,
2772 schema_generation: U64,
2773 },
2774}
2775
2776pub const LODESTONE_API_CONTINUOUS_TEMPORAL_DEFINITION_SHAPE_VERSION: u16 = 1;
2777pub const LODESTONE_API_CONTINUOUS_TEMPORAL_DEFINITION_FORMAT_VERSION: u16 = 1;
2778#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2779#[serde(deny_unknown_fields)]
2780pub struct ContinuousTemporalDefinition {
2781 pub format_version: u32,
2782 pub evaluation_id: Identity,
2783 pub pattern_generation: U64,
2784 pub inputs: Vec<TemporalInput>,
2785 pub event_time_field: String,
2786 pub correlation_fields: Vec<String>,
2787 pub pattern: TemporalPattern,
2788 pub start: ContinuousTemporalStart,
2789 pub watermark_policy: ContinuousTemporalWatermarkPolicy,
2790 pub late_data_policy: ContinuousTemporalLateDataPolicy,
2791 pub maximum_events_per_step: u32,
2792 pub maximum_states: u32,
2793 pub maximum_captured_events: u32,
2794 pub maximum_results: u32,
2795 pub maximum_state_bytes: U64,
2796 pub maximum_lag_bytes: U64,
2797 pub maximum_lag_events: U64,
2798 pub maximum_lag_event_age_nanos: U64,
2799 pub output: ContinuousTemporalOutput,
2800}
2801
2802pub const LODESTONE_API_CONTINUOUS_TEMPORAL_FRONTIER_FORMAT_VERSION: u16 = 1;
2803#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2804#[serde(deny_unknown_fields)]
2805pub struct ContinuousTemporalFrontier {
2806 pub index: Resource,
2807 pub shard_id: u32,
2808 pub recovery_era: Identity,
2809 pub routing_revision: U64,
2810 pub registered_wal_frontier: U64,
2811 #[serde(default, skip_serializing_if = "Option::is_none")]
2812 pub watermark_unix_nanos: Option<U64>,
2813}
2814
2815pub const LODESTONE_API_CONTINUOUS_TEMPORAL_AVAILABLE_FRONTIER_FORMAT_VERSION: u16 = 1;
2816#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2817#[serde(deny_unknown_fields)]
2818pub struct ContinuousTemporalAvailableFrontier {
2819 pub index: Resource,
2820 pub shard_id: u32,
2821 pub sequence: U64,
2822}
2823
2824pub const LODESTONE_API_CONTINUOUS_TEMPORAL_GAP_REASON_FORMAT_VERSION: u16 = 1;
2825#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2826#[serde(rename_all = "snake_case")]
2827pub enum ContinuousTemporalGapReason {
2828 RetentionGap,
2829 LateDataGap,
2830 SchemaGap,
2831 RouteGap,
2832 OutputGap,
2833}
2834
2835pub const LODESTONE_API_CONTINUOUS_TEMPORAL_GAP_FORMAT_VERSION: u16 = 1;
2836#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2837#[serde(deny_unknown_fields)]
2838pub struct ContinuousTemporalGap {
2839 pub reason: ContinuousTemporalGapReason,
2840 pub last_complete_frontiers: Vec<ContinuousTemporalFrontier>,
2841 pub earliest_available_frontiers: Vec<ContinuousTemporalAvailableFrontier>,
2842}
2843
2844pub const LODESTONE_API_CONTINUOUS_TEMPORAL_EVALUATION_SHAPE_VERSION: u16 = 1;
2845pub const LODESTONE_API_CONTINUOUS_TEMPORAL_EVALUATION_FORMAT_VERSION: u16 = 1;
2846#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2847#[serde(deny_unknown_fields)]
2848pub struct ContinuousTemporalEvaluation {
2849 pub format_version: u32,
2850 pub evaluation_id: Identity,
2851 pub generation: U64,
2852 pub revision: U64,
2853 pub definition_digest: Digest,
2854 pub definition: ContinuousTemporalDefinition,
2855 pub lifecycle: String,
2856 pub frontiers: Vec<ContinuousTemporalFrontier>,
2857 #[serde(default, skip_serializing_if = "Option::is_none")]
2858 pub global_watermark_unix_nanos: Option<U64>,
2859 pub state_bytes: U64,
2860 pub active_states: U64,
2861 pub active_timers: U64,
2862 pub retained_results: U64,
2863 pub pending_emissions: U64,
2864 #[serde(default, skip_serializing_if = "Option::is_none")]
2865 pub last_materialized_frontier_digest: Option<Digest>,
2866 pub retry_count: u32,
2867 #[serde(default, skip_serializing_if = "Option::is_none")]
2868 pub gap: Option<ContinuousTemporalGap>,
2869}
2870
2871pub const LODESTONE_API_COMPOSITE_ORDER_FORMAT_VERSION: u16 = 1;
2872#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
2873#[serde(rename_all = "snake_case")]
2874pub enum CompositeOrder {
2875 Asc,
2876 Desc,
2877}
2878
2879pub const LODESTONE_API_COMPOSITE_SOURCE_FORMAT_VERSION: u16 = 1;
2880#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2881#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2882pub enum CompositeSource {
2883 Terms {
2884 name: String,
2885 field: String,
2886 order: CompositeOrder,
2887 },
2888 DateHistogram {
2889 name: String,
2890 field: String,
2891 #[serde(default, skip_serializing_if = "Option::is_none")]
2892 fixed_interval_millis: Option<U64>,
2893 #[serde(default, skip_serializing_if = "Option::is_none")]
2894 calendar_interval: Option<String>,
2895 #[serde(default, skip_serializing_if = "Option::is_none")]
2896 time_zone: Option<String>,
2897 offset_millis: I64,
2898 order: CompositeOrder,
2899 },
2900}
2901
2902pub const LODESTONE_API_AGGREGATION_FORMAT_VERSION: u16 = 3;
2903#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
2904#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
2905pub enum Aggregation {
2906 Terms {
2907 name: String,
2908 field: String,
2909 size: u32,
2910 sub_aggregations: Vec<Aggregation>,
2911 },
2912 Histogram {
2913 name: String,
2914 field: String,
2915 interval: ApproximateNumber,
2916 min_doc_count: U64,
2917 #[serde(default, skip_serializing_if = "Option::is_none")]
2918 extended_bounds: Option<HistogramBounds>,
2919 #[serde(default, skip_serializing_if = "Option::is_none")]
2920 hard_bounds: Option<HistogramBounds>,
2921 offset: ApproximateNumber,
2922 #[serde(default, skip_serializing_if = "Option::is_none")]
2923 missing: Option<ApproximateNumber>,
2924 sub_aggregations: Vec<Aggregation>,
2925 },
2926 Cardinality {
2927 name: String,
2928 field: String,
2929 },
2930 Percentiles {
2931 name: String,
2932 field: String,
2933 percents: Vec<ApproximateNumber>,
2934 },
2935 ApproximateCardinality {
2936 name: String,
2937 field: String,
2938 precision: u32,
2939 },
2940 ApproximatePercentiles {
2941 name: String,
2942 field: String,
2943 percents: Vec<ApproximateNumber>,
2944 precision: u32,
2945 },
2946 Sum {
2947 name: String,
2948 field: String,
2949 },
2950 Avg {
2951 name: String,
2952 field: String,
2953 },
2954 Min {
2955 name: String,
2956 field: String,
2957 },
2958 Max {
2959 name: String,
2960 field: String,
2961 },
2962 Stats {
2963 name: String,
2964 field: String,
2965 },
2966 DateHistogram {
2967 name: String,
2968 field: String,
2969 #[serde(default, skip_serializing_if = "Option::is_none")]
2970 fixed_interval_millis: Option<U64>,
2971 #[serde(default, skip_serializing_if = "Option::is_none")]
2972 calendar_interval: Option<String>,
2973 #[serde(default, skip_serializing_if = "Option::is_none")]
2974 time_zone: Option<String>,
2975 min_doc_count: U64,
2976 #[serde(default, skip_serializing_if = "Option::is_none")]
2977 extended_bounds: Option<DateHistogramBounds>,
2978 #[serde(default, skip_serializing_if = "Option::is_none")]
2979 hard_bounds: Option<DateHistogramBounds>,
2980 offset_millis: I64,
2981 #[serde(default, skip_serializing_if = "Option::is_none")]
2982 missing: Option<I64>,
2983 sub_aggregations: Vec<Aggregation>,
2984 },
2985 Composite {
2986 name: String,
2987 size: u32,
2988 sources: Vec<CompositeSource>,
2989 #[serde(default, skip_serializing_if = "Option::is_none")]
2990 after: Option<Cursor>,
2991 sub_aggregations: Vec<Aggregation>,
2992 },
2993 Filter {
2994 name: String,
2995 query: Box<Query>,
2996 sub_aggregations: Vec<Aggregation>,
2997 },
2998 Nested {
2999 name: String,
3000 path: String,
3001 sub_aggregations: Vec<Aggregation>,
3002 },
3003 ReverseNested {
3004 name: String,
3005 #[serde(default, skip_serializing_if = "Option::is_none")]
3006 path: Option<String>,
3007 sub_aggregations: Vec<Aggregation>,
3008 },
3009 TimeSeriesV1 {
3010 name: String,
3011 metric_name: String,
3012 unit: String,
3013 point_kind: MetricPointKind,
3014 #[serde(default, skip_serializing_if = "Option::is_none")]
3015 temporality: Option<MetricTemporality>,
3016 #[serde(default, skip_serializing_if = "Option::is_none")]
3017 monotonic: Option<bool>,
3018 range_start_unix_nanos: U64,
3019 range_end_unix_nanos: U64,
3020 bucket_width_nanos: U64,
3021 alignment_origin_unix_nanos: U64,
3022 group_by: Vec<String>,
3023 operator: TimeSeriesOperator,
3024 missing_data: TimeSeriesMissingData,
3025 quantiles: Vec<ApproximateNumber>,
3026 quantile_mode: TimeSeriesQuantileMode,
3027 maximum_exemplars: u32,
3028 maximum_points: u32,
3029 maximum_series: u32,
3030 maximum_buckets: u32,
3031 maximum_results: u32,
3032 maximum_state_bytes: U64,
3033 },
3034}
3035
3036pub const LODESTONE_API_NESTED_SEARCH_HIT_FORMAT_VERSION: u16 = 2;
3037#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3038#[serde(deny_unknown_fields)]
3039pub struct NestedSearchHit {
3040 pub path: String,
3041 pub ordinal: u32,
3042 #[serde(default, skip_serializing_if = "Option::is_none")]
3043 pub score: Option<ApproximateNumber>,
3044 #[serde(default, skip_serializing_if = "Option::is_none")]
3045 pub source: Option<RawJson>,
3046 pub sort: Vec<JsonValue>,
3047}
3048
3049pub const LODESTONE_API_NAMED_NESTED_INNER_HITS_RESULT_FORMAT_VERSION: u16 = 1;
3050#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3051#[serde(deny_unknown_fields)]
3052pub struct NamedNestedInnerHitsResult {
3053 pub name: String,
3054 pub total: U64,
3055 pub hits: Vec<NestedSearchHit>,
3056}
3057
3058pub const LODESTONE_API_FRAGMENT_BOUNDARY_FORMAT_VERSION: u16 = 1;
3059#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3060#[serde(rename_all = "snake_case")]
3061pub enum FragmentBoundary {
3062 Word,
3063 Sentence,
3064 Paragraph,
3065 WholeField,
3066}
3067
3068pub const LODESTONE_API_FRAGMENT_OFFSET_ENCODING_FORMAT_VERSION: u16 = 1;
3069#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3070#[serde(rename_all = "snake_case")]
3071pub enum FragmentOffsetEncoding {
3072 Utf8Bytes,
3073 Utf16CodeUnits,
3074 UnicodeCodepoints,
3075}
3076
3077pub const LODESTONE_API_FRAGMENT_RANKER_FORMAT_VERSION: u16 = 1;
3078#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3079#[serde(rename_all = "snake_case")]
3080pub enum FragmentRanker {
3081 LexicalMatchCountV1,
3082}
3083
3084pub const LODESTONE_API_FRAGMENT_REQUEST_FORMAT_VERSION: u16 = 1;
3085#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3086#[serde(deny_unknown_fields)]
3087pub struct FragmentRequest {
3088 pub fields: Vec<String>,
3089 pub max_fragment_bytes: u32,
3090 pub max_fragments: u32,
3091 pub boundary: FragmentBoundary,
3092 pub offset_encoding: FragmentOffsetEncoding,
3093 pub ranker: FragmentRanker,
3094}
3095
3096pub const LODESTONE_API_SEARCH_FRAGMENT_FORMAT_VERSION: u16 = 1;
3097#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3098#[serde(deny_unknown_fields)]
3099pub struct SearchFragment {
3100 pub field: String,
3101 pub text: String,
3102 pub start: u32,
3103 pub end: u32,
3104 pub offset_encoding: FragmentOffsetEncoding,
3105 pub rank: u32,
3106 pub match_count: u32,
3107 pub truncated: bool,
3108 pub partial: bool,
3109}
3110
3111pub const LODESTONE_API_NUMERIC_FEATURE_TRANSFORM_FORMAT_VERSION: u16 = 1;
3112#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3113#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3114pub enum NumericFeatureTransform {
3115 Identity,
3116 Log1p,
3117 Clamp {
3118 minimum: ApproximateNumber,
3119 maximum: ApproximateNumber,
3120 },
3121}
3122
3123pub const LODESTONE_API_NUMERIC_RESULT_FEATURE_FORMAT_VERSION: u16 = 1;
3124#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3125#[serde(deny_unknown_fields)]
3126pub struct NumericResultFeature {
3127 pub name: String,
3128 pub field: String,
3129 pub transform: NumericFeatureTransform,
3130}
3131
3132pub const LODESTONE_API_RESULT_FEATURE_REQUEST_FORMAT_VERSION: u16 = 1;
3133#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3134#[serde(deny_unknown_fields)]
3135pub struct ResultFeatureRequest {
3136 pub top_n: u32,
3137 pub include_branch_components: bool,
3138 pub numeric: Vec<NumericResultFeature>,
3139}
3140
3141pub const LODESTONE_API_RESULT_DIVERSIFICATION_FORMAT_VERSION: u16 = 1;
3142#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3143#[serde(deny_unknown_fields)]
3144pub struct ResultDiversification {
3145 pub fields: Vec<String>,
3146 pub max_per_group: u32,
3147}
3148
3149pub const LODESTONE_API_SOURCE_PROJECTION_FORMAT_VERSION: u16 = 1;
3150#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3151#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3152pub enum SourceProjection {
3153 Full,
3154 Omit,
3155 Filter {
3156 includes: Vec<String>,
3157 excludes: Vec<String>,
3158 },
3159}
3160
3161pub const LODESTONE_API_BRANCH_SCORE_KIND_FORMAT_VERSION: u16 = 2;
3162#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3163#[serde(rename_all = "snake_case")]
3164pub enum BranchScoreKind {
3165 LexicalScore,
3166 DenseSimilarity,
3167 SparseDotProduct,
3168 LateInteractionMaxsim,
3169}
3170
3171pub const LODESTONE_API_RESULT_FEATURE_FORMAT_VERSION: u16 = 1;
3172#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3173#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3174pub enum ResultFeature {
3175 Branch {
3176 branch: String,
3177 score_kind: BranchScoreKind,
3178 rank: u32,
3179 score: ApproximateNumber,
3180 },
3181 Numeric {
3182 name: String,
3183 field: String,
3184 value: ApproximateNumber,
3185 },
3186}
3187
3188pub const LODESTONE_API_SEARCH_HIT_FORMAT_VERSION: u16 = 2;
3189#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3190#[serde(deny_unknown_fields)]
3191pub struct SearchHit {
3192 pub index: Resource,
3193 pub document_id: String,
3194 #[serde(default, skip_serializing_if = "Option::is_none")]
3195 pub score: Option<ApproximateNumber>,
3196 #[serde(default, skip_serializing_if = "Option::is_none")]
3197 pub source: Option<RawJson>,
3198 pub sort: Vec<JsonValue>,
3199 pub fragments: Vec<SearchFragment>,
3200 pub features: Vec<ResultFeature>,
3201 pub group_values: Vec<JsonValue>,
3202 pub inner_hits: Vec<NamedNestedInnerHitsResult>,
3203}
3204
3205pub const LODESTONE_API_AGGREGATION_BUCKET_FORMAT_VERSION: u16 = 1;
3206#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3207#[serde(deny_unknown_fields)]
3208pub struct AggregationBucket {
3209 pub key: JsonValue,
3210 pub document_count: U64,
3211 pub sub_aggregations: Vec<AggregationResult>,
3212}
3213
3214pub const LODESTONE_API_AGGREGATION_RESULT_FORMAT_VERSION: u16 = 3;
3215#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3216#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3217pub enum AggregationResult {
3218 Terms {
3219 name: String,
3220 buckets: Vec<AggregationBucket>,
3221 partial: bool,
3222 },
3223 Histogram {
3224 name: String,
3225 buckets: Vec<AggregationBucket>,
3226 partial: bool,
3227 },
3228 DateHistogram {
3229 name: String,
3230 buckets: Vec<AggregationBucket>,
3231 partial: bool,
3232 },
3233 Composite {
3234 name: String,
3235 buckets: Vec<AggregationBucket>,
3236 #[serde(default, skip_serializing_if = "Option::is_none")]
3237 after: Option<Cursor>,
3238 partial: bool,
3239 },
3240 Filter {
3241 name: String,
3242 buckets: Vec<AggregationBucket>,
3243 partial: bool,
3244 },
3245 SingleBucket {
3246 name: String,
3247 document_count: U64,
3248 sub_aggregations: Vec<AggregationResult>,
3249 partial: bool,
3250 },
3251 Cardinality {
3252 name: String,
3253 #[serde(default, skip_serializing_if = "Option::is_none")]
3254 value: Option<ApproximateNumber>,
3255 partial: bool,
3256 },
3257 Percentiles {
3258 name: String,
3259 values: Vec<PercentileValue>,
3260 partial: bool,
3261 },
3262 ApproximateCardinality {
3263 name: String,
3264 value: ApproximateNumber,
3265 approximation: Approximation,
3266 partial: bool,
3267 },
3268 ApproximatePercentiles {
3269 name: String,
3270 values: Vec<ApproximatePercentileValue>,
3271 approximation: Approximation,
3272 partial: bool,
3273 },
3274 Sum {
3275 name: String,
3276 #[serde(default, skip_serializing_if = "Option::is_none")]
3277 value: Option<ApproximateNumber>,
3278 partial: bool,
3279 },
3280 Avg {
3281 name: String,
3282 #[serde(default, skip_serializing_if = "Option::is_none")]
3283 value: Option<ApproximateNumber>,
3284 partial: bool,
3285 },
3286 Min {
3287 name: String,
3288 #[serde(default, skip_serializing_if = "Option::is_none")]
3289 value: Option<ApproximateNumber>,
3290 partial: bool,
3291 },
3292 Max {
3293 name: String,
3294 #[serde(default, skip_serializing_if = "Option::is_none")]
3295 value: Option<ApproximateNumber>,
3296 partial: bool,
3297 },
3298 Stats {
3299 name: String,
3300 count: U64,
3301 #[serde(default, skip_serializing_if = "Option::is_none")]
3302 min: Option<ApproximateNumber>,
3303 #[serde(default, skip_serializing_if = "Option::is_none")]
3304 max: Option<ApproximateNumber>,
3305 #[serde(default, skip_serializing_if = "Option::is_none")]
3306 avg: Option<ApproximateNumber>,
3307 sum: ApproximateNumber,
3308 partial: bool,
3309 },
3310 TimeSeriesV1 {
3311 name: String,
3312 buckets: Vec<TimeSeriesBucket>,
3313 partial: bool,
3314 },
3315}
3316
3317pub const LODESTONE_API_SHARD_COUNTS_FORMAT_VERSION: u16 = 1;
3318#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3319#[serde(deny_unknown_fields)]
3320pub struct ShardCounts {
3321 pub total: u32,
3322 pub successful: u32,
3323 pub skipped: u32,
3324 pub failed: u32,
3325}
3326
3327pub const LODESTONE_API_TOTAL_HITS_RELATION_FORMAT_VERSION: u16 = 1;
3328#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3329#[serde(rename_all = "snake_case")]
3330pub enum TotalHitsRelation {
3331 Exact,
3332 LowerBound,
3333 Incomplete,
3334}
3335
3336pub const LODESTONE_API_SEARCH_TOTAL_FORMAT_VERSION: u16 = 1;
3337#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3338#[serde(deny_unknown_fields)]
3339pub struct SearchTotal {
3340 pub value: U64,
3341 pub relation: TotalHitsRelation,
3342 pub partial: bool,
3343}
3344
3345pub const LODESTONE_API_SEARCH_EXECUTION_FRESHNESS_FORMAT_VERSION: u16 = 1;
3346#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3347#[serde(rename_all = "snake_case")]
3348pub enum SearchExecutionFreshness {
3349 Realtime,
3350 Committed,
3351}
3352
3353pub const LODESTONE_API_SEARCH_FRESHNESS_FORMAT_VERSION: u16 = 1;
3354#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3355#[serde(rename_all = "snake_case")]
3356pub enum SearchFreshness {
3357 Auto,
3358 Realtime,
3359 Committed,
3360}
3361
3362pub const LODESTONE_API_SEARCH_DEGRADATION_REASON_FORMAT_VERSION: u16 = 1;
3363#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3364#[serde(rename_all = "snake_case")]
3365pub enum SearchDegradationReason {
3366 WriterUnavailable,
3367}
3368
3369pub const LODESTONE_API_SEARCH_ACHIEVEMENT_FORMAT_VERSION: u16 = 1;
3370#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3371#[serde(deny_unknown_fields)]
3372pub struct SearchAchievement {
3373 pub freshness: SearchExecutionFreshness,
3374 pub degradation_reasons: Vec<SearchDegradationReason>,
3375}
3376
3377pub const LODESTONE_API_SEARCH_FAILURE_STAGE_FORMAT_VERSION: u16 = 1;
3378#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3379#[serde(rename_all = "snake_case")]
3380pub enum SearchFailureStage {
3381 Preflight,
3382 Dispatch,
3383}
3384
3385pub const LODESTONE_API_SEARCH_FAILURE_REASON_FORMAT_VERSION: u16 = 1;
3386#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3387#[serde(rename_all = "snake_case")]
3388pub enum SearchFailureReason {
3389 Cancelled,
3390 Overloaded,
3391 ResourceLimit,
3392 DeadlineExceeded,
3393 Unavailable,
3394 InvalidResponse,
3395}
3396
3397pub const LODESTONE_API_COLLECTION_SHARD_FORMAT_VERSION: u16 = 1;
3398#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3399#[serde(deny_unknown_fields)]
3400pub struct CollectionShard {
3401 pub collection_id: Identity,
3402 pub index_id: Identity,
3403 pub shard_id: u32,
3404}
3405
3406pub const LODESTONE_API_SEARCH_PARTIAL_FAILURE_FORMAT_VERSION: u16 = 1;
3407#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3408#[serde(deny_unknown_fields)]
3409pub struct SearchPartialFailure {
3410 pub shard: CollectionShard,
3411 pub stage: SearchFailureStage,
3412 pub reason: SearchFailureReason,
3413 pub recovery: RecoveryAction,
3414}
3415
3416pub const LODESTONE_API_ARTIFACT_FORMAT_VERSION: u16 = 1;
3417#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3418#[serde(deny_unknown_fields)]
3419pub struct Artifact {
3420 pub locator: Locator,
3421 pub bytes: U64,
3422 pub sha256: Digest,
3423 pub expires_at: U64,
3424}
3425
3426pub const LODESTONE_API_PORTABILITY_STORAGE_CAPABILITY_FORMAT_VERSION: u16 = 1;
3427#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3428#[serde(deny_unknown_fields)]
3429pub struct PortabilityStorageCapability {
3430 pub backend_authority: String,
3431 pub object_prefix: String,
3432 pub maximum_bytes: U64,
3433 #[serde(default, skip_serializing_if = "Option::is_none")]
3434 pub key_capability_digest: Option<Digest>,
3435}
3436
3437pub const LODESTONE_API_COLLECTION_EXPORT_ARTIFACT_FORMAT_VERSION: u16 = 1;
3438#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3439#[serde(deny_unknown_fields)]
3440pub struct CollectionExportArtifact {
3441 pub artifact: Artifact,
3442 pub backend_authority: String,
3443 pub object_key: String,
3444 pub source_collection_id: Identity,
3445 pub source_catalog_revision: U64,
3446}
3447
3448pub const LODESTONE_API_COLLECTION_TRANSFER_SEQUENCE_FORMAT_VERSION: u16 = 1;
3449#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3450#[serde(deny_unknown_fields)]
3451pub struct CollectionTransferSequence {
3452 pub source_index_incarnation: Identity,
3453 pub shard_id: u32,
3454 #[serde(default, skip_serializing_if = "Option::is_none")]
3455 pub registered_through: Option<U64>,
3456}
3457
3458pub const LODESTONE_API_COLLECTION_TRANSFER_ARTIFACT_FORMAT_VERSION: u16 = 1;
3459#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3460#[serde(deny_unknown_fields)]
3461pub struct CollectionTransferArtifact {
3462 pub artifact: Artifact,
3463 pub backend_authority: String,
3464 pub object_key: String,
3465 pub source_collection_id: Identity,
3466 pub base_catalog_revision: U64,
3467 pub final_catalog_revision: U64,
3468 pub admitted_security_generation: U64,
3469 pub fenced_security_generation: U64,
3470 pub base_content_digest: Digest,
3471 pub final_content_digest: Digest,
3472 pub final_sequence_digest: Digest,
3473 pub final_sequences: Vec<CollectionTransferSequence>,
3474 pub delta_entries: u32,
3475}
3476
3477pub const LODESTONE_API_PORTABILITY_KEY_CAPABILITY_REFERENCE_STATE_FORMAT_VERSION: u16 = 1;
3478#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3479#[serde(rename_all = "snake_case")]
3480pub enum PortabilityKeyCapabilityReferenceState {
3481 NotApplicable,
3482 Released,
3483}
3484
3485pub const LODESTONE_API_COLLECTION_EXPORT_RETIREMENT_FORMAT_VERSION: u16 = 1;
3486#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3487#[serde(deny_unknown_fields)]
3488pub struct CollectionExportRetirement {
3489 pub artifact: CollectionExportArtifact,
3490 pub artifact_absent: bool,
3491 pub key_capability_reference_state: PortabilityKeyCapabilityReferenceState,
3492}
3493
3494pub const LODESTONE_API_INDEX_TRANSFER_PAGE_FORMAT_VERSION: u16 = 1;
3495#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3496#[serde(deny_unknown_fields)]
3497pub struct IndexTransferPage {
3498 pub ordinal: u32,
3499 pub object_key: String,
3500 pub bytes: U64,
3501 pub content_digest: Digest,
3502 pub record_count: u32,
3503}
3504
3505pub const LODESTONE_API_INDEX_TRANSFER_ARTIFACT_FORMAT_VERSION: u16 = 1;
3506#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3507#[serde(deny_unknown_fields)]
3508pub struct IndexTransferArtifact {
3509 pub manifest: Artifact,
3510 pub manifest_object_key: String,
3511 pub transfer_identity: Digest,
3512 pub source_cluster_storage_id: Identity,
3513 pub source_collection_id: Identity,
3514 pub source_index: Resource,
3515 pub source_catalog_revision: U64,
3516 pub source_cut_digest: Digest,
3517 pub pages: Vec<IndexTransferPage>,
3518 pub record_count: u32,
3519}
3520
3521pub const LODESTONE_API_SEARCH_VALIDATION_BOUND_FORMAT_VERSION: u16 = 1;
3522#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3523#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3524pub enum SearchValidationBound {
3525 Exact { value: U64 },
3526 UpperBound { value: U64 },
3527 Unknown { reason: String },
3528}
3529
3530pub const LODESTONE_API_SEARCH_VALIDATION_ESTIMATES_FORMAT_VERSION: u16 = 1;
3531#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3532#[serde(deny_unknown_fields)]
3533pub struct SearchValidationEstimates {
3534 pub shard_fanout: SearchValidationBound,
3535 pub candidate_documents: SearchValidationBound,
3536 pub segments: SearchValidationBound,
3537 pub buckets: SearchValidationBound,
3538 pub memory_bytes: SearchValidationBound,
3539 pub object_reads: SearchValidationBound,
3540 pub object_bytes: SearchValidationBound,
3541 pub response_bytes: SearchValidationBound,
3542 pub planning_work: SearchValidationBound,
3543}
3544
3545pub const LODESTONE_API_SEARCH_VALIDATION_LIMIT_FORMAT_VERSION: u16 = 1;
3546#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3547#[serde(deny_unknown_fields)]
3548pub struct SearchValidationLimit {
3549 pub id: String,
3550 pub applied: U64,
3551 pub unit: String,
3552}
3553
3554pub const LODESTONE_API_OPERATION_KIND_FORMAT_VERSION: u16 = 4;
3555#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3556#[serde(rename_all = "snake_case")]
3557pub enum OperationKind {
3558 Catalog,
3559 MaintenanceTask,
3560 Security,
3561 Diagnostic,
3562 CollectionExport,
3563 CollectionExportRetirement,
3564 CollectionRestore,
3565 CollectionTransferExport,
3566 CollectionTransferRestore,
3567 IndexExport,
3568 IndexImport,
3569 VectorEvaluation,
3570 VectorWarm,
3571 Lifecycle,
3572 Quota,
3573 Admission,
3574}
3575
3576pub const LODESTONE_API_OPERATION_AUTHORITY_FORMAT_VERSION: u16 = 1;
3577#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3578#[serde(rename_all = "snake_case")]
3579pub enum OperationAuthority {
3580 Catalog,
3581 Tasks,
3582 Security,
3583 Diagnostics,
3584 Portability,
3585 Lifecycle,
3586 Quota,
3587 Admission,
3588}
3589
3590pub const LODESTONE_API_OPERATION_TARGET_FORMAT_VERSION: u16 = 1;
3591#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3592#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3593pub enum OperationTarget {
3594 Collection { collection_id: Identity },
3595 Resource { resource: Resource },
3596 Artifact { locator: Locator },
3597 None,
3598}
3599
3600pub const LODESTONE_API_OPERATION_STATE_FORMAT_VERSION: u16 = 1;
3601#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3602#[serde(rename_all = "snake_case")]
3603pub enum OperationState {
3604 Pending,
3605 Succeeded,
3606 Failed,
3607 Cancelled,
3608}
3609
3610pub const LODESTONE_API_OPERATION_PENDING_STATE_FORMAT_VERSION: u16 = 1;
3611#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3612#[serde(rename_all = "snake_case")]
3613pub enum OperationPendingState {
3614 Queued,
3615 Running,
3616 CancelRequested,
3617}
3618
3619pub const LODESTONE_API_OPERATION_PROGRESS_UNIT_FORMAT_VERSION: u16 = 1;
3620#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3621#[serde(rename_all = "snake_case")]
3622pub enum OperationProgressUnit {
3623 BasisPoints,
3624 Items,
3625 Bytes,
3626 WorkUnits,
3627}
3628
3629pub const LODESTONE_API_OPERATION_PROGRESS_FORMAT_VERSION: u16 = 1;
3630#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3631#[serde(deny_unknown_fields)]
3632pub struct OperationProgress {
3633 pub completed: U64,
3634 pub total: U64,
3635 pub unit: OperationProgressUnit,
3636}
3637
3638pub const LODESTONE_API_OPERATION_RESULT_FORMAT_VERSION: u16 = 1;
3639#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3640#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3641pub enum OperationResult {
3642 None,
3643 Artifacts { items: Vec<Artifact> },
3644}
3645
3646pub const LODESTONE_API_OPERATION_FAILURE_FORMAT_VERSION: u16 = 1;
3647#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3648#[serde(deny_unknown_fields)]
3649pub struct OperationFailure {
3650 pub error: ErrorBody,
3651}
3652
3653pub const LODESTONE_API_OPERATION_CANCELLATION_FORMAT_VERSION: u16 = 1;
3654#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3655#[serde(rename_all = "snake_case")]
3656pub enum OperationCancellation {
3657 NotCancellable,
3658 Cancellable,
3659 CancelRequested,
3660 Cancelled,
3661}
3662
3663pub const LODESTONE_API_OPERATION_RETENTION_STATE_FORMAT_VERSION: u16 = 1;
3664#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3665#[serde(rename_all = "snake_case")]
3666pub enum OperationRetentionState {
3667 Active,
3668 Retired,
3669}
3670
3671pub const LODESTONE_API_OPERATION_RETENTION_FORMAT_VERSION: u16 = 1;
3672#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3673#[serde(deny_unknown_fields)]
3674pub struct OperationRetention {
3675 pub state: OperationRetentionState,
3676 #[serde(default, skip_serializing_if = "Option::is_none")]
3677 pub retire_after: Option<U64>,
3678}
3679
3680pub const LODESTONE_API_OPERATION_FORMAT_VERSION: u16 = 2;
3681#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3682#[serde(deny_unknown_fields)]
3683pub struct Operation {
3684 pub locator: Locator,
3685 pub kind: OperationKind,
3686 pub authority: OperationAuthority,
3687 pub target: OperationTarget,
3688 pub authority_revision: U64,
3689 pub current_state: OperationState,
3690 #[serde(default, skip_serializing_if = "Option::is_none")]
3691 pub pending_state: Option<OperationPendingState>,
3692 #[serde(default, skip_serializing_if = "Option::is_none")]
3693 pub progress: Option<OperationProgress>,
3694 #[serde(default, skip_serializing_if = "Option::is_none")]
3695 pub result: Option<OperationResult>,
3696 #[serde(default, skip_serializing_if = "Option::is_none")]
3697 pub failure: Option<OperationFailure>,
3698 pub cancellation: OperationCancellation,
3699 pub retention: OperationRetention,
3700 pub submitted_at: U64,
3701 #[serde(default, skip_serializing_if = "Option::is_none")]
3702 pub terminal_at: Option<U64>,
3703}
3704
3705pub const LODESTONE_API_WRITE_DURABILITY_BOUNDARY_FORMAT_VERSION: u16 = 1;
3706#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3707#[serde(rename_all = "snake_case")]
3708pub enum WriteDurabilityBoundary {
3709 Registered,
3710 IncarnationMemory,
3711}
3712
3713pub const LODESTONE_API_WRITE_VISIBILITY_MODE_FORMAT_VERSION: u16 = 1;
3714#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3715#[serde(rename_all = "snake_case")]
3716pub enum WriteVisibilityMode {
3717 Applied,
3718 WaitFor,
3719}
3720
3721pub const LODESTONE_API_WRITE_RESPONSE_STAGE_FORMAT_VERSION: u16 = 1;
3722#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3723#[serde(rename_all = "snake_case")]
3724pub enum WriteResponseStage {
3725 Validated,
3726 Admitted,
3727 Sequenced,
3728 ObjectPut,
3729 Registered,
3730 AppliedToActiveMemtable,
3731 MicroCommitted,
3732 Sealed,
3733}
3734
3735pub const LODESTONE_API_WRITE_ACHIEVEMENT_FORMAT_VERSION: u16 = 1;
3736#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3737#[serde(deny_unknown_fields)]
3738pub struct WriteAchievement {
3739 pub durability_class: ResourceDurabilityClass,
3740 pub durability_boundary: WriteDurabilityBoundary,
3741 pub visibility_mode: WriteVisibilityMode,
3742 pub response_stage: WriteResponseStage,
3743}
3744
3745pub const LODESTONE_API_MUTATION_COMMIT_POSITION_FORMAT_VERSION: u16 = 1;
3746#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3747#[serde(deny_unknown_fields)]
3748pub struct MutationCommitPosition {
3749 pub leader_term: U64,
3750 pub leader_node_id: U64,
3751 pub log_index: U64,
3752}
3753
3754pub const LODESTONE_API_MUTATION_COMMIT_RECEIPT_SHAPE_VERSION: u16 = 1;
3755pub const LODESTONE_API_MUTATION_COMMIT_RECEIPT_FORMAT_VERSION: u16 = 1;
3756#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3757#[serde(deny_unknown_fields)]
3758pub struct MutationCommitReceipt {
3759 pub format_version: u32,
3760 pub registration_position: MutationCommitPosition,
3761 pub sequence: U64,
3762 pub primary_term: U64,
3763 pub mapping_generation: U64,
3764 pub durability_class: ResourceDurabilityClass,
3765 pub durability_boundary: WriteDurabilityBoundary,
3766 pub committed_at_unix_millis: U64,
3767 pub committed_at_uncertainty_millis: U64,
3768}
3769
3770pub const LODESTONE_API_MUTATION_RESOLVER_FORMAT_VERSION: u16 = 2;
3771#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3772#[serde(rename_all = "snake_case")]
3773pub enum MutationResolver {
3774 CloneIndex,
3775 GetHistory,
3776 ResolveAppendBulk,
3777 ResolveCatalogAction,
3778 ResolveDocumentBulk,
3779 ResolveDocumentMutation,
3780 ResolveIndexChange,
3781 ResolveSecurityAction,
3782 ResolveServiceCredentialReservation,
3783 ResolveSourceAuthorizationProjection,
3784 ResolveStateWrite,
3785}
3786
3787pub const LODESTONE_API_MUTATION_OUTCOME_FORMAT_VERSION: u16 = 1;
3788#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3789#[serde(tag = "state", rename_all = "snake_case", deny_unknown_fields)]
3790pub enum MutationOutcome {
3791 Terminal,
3792 Pending {
3793 #[serde(default, skip_serializing_if = "Option::is_none")]
3794 resolver: Option<MutationResolver>,
3795 },
3796 Indeterminate {
3797 #[serde(default, skip_serializing_if = "Option::is_none")]
3798 resolver: Option<MutationResolver>,
3799 },
3800 ResolutionRequired {
3801 resolver: MutationResolver,
3802 },
3803}
3804
3805pub const LODESTONE_API_SUBMISSION_STATE_FORMAT_VERSION: u16 = 1;
3806#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3807#[serde(rename_all = "snake_case")]
3808pub enum SubmissionState {
3809 NotSubmitted,
3810 Submitted,
3811 Resolved,
3812 KnownRetired,
3813 Indeterminate,
3814}
3815
3816pub const LODESTONE_API_EXPECTED_BINDING_FORMAT_VERSION: u16 = 1;
3817#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3818#[serde(deny_unknown_fields)]
3819pub struct ExpectedBinding {
3820 pub incarnation: Identity,
3821 pub revision: U64,
3822}
3823
3824pub const LODESTONE_API_ADMINISTRATION_ALIAS_ACTION_FORMAT_VERSION: u16 = 1;
3825#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3826#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3827pub enum AdministrationAliasAction {
3828 Put {
3829 name: String,
3830 #[serde(default, skip_serializing_if = "Option::is_none")]
3831 expected_revision: Option<U64>,
3832 targets: Vec<AliasTarget>,
3833 #[serde(default, skip_serializing_if = "Option::is_none")]
3834 filter: Option<RawJson>,
3835 #[serde(default, skip_serializing_if = "Option::is_none")]
3836 index_routing: Option<String>,
3837 #[serde(default, skip_serializing_if = "Option::is_none")]
3838 search_routing: Option<String>,
3839 },
3840 Delete {
3841 name: String,
3842 expected_revision: U64,
3843 },
3844}
3845
3846pub const LODESTONE_API_ADMINISTRATION_MUTATION_FORMAT_VERSION: u16 = 2;
3847#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3848#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
3849pub enum AdministrationMutation {
3850 ApplyAliasActions {
3851 actions: Vec<AdministrationAliasAction>,
3852 },
3853 PutComponentTemplate {
3854 name: String,
3855 #[serde(default, skip_serializing_if = "Option::is_none")]
3856 expected: Option<ExpectedBinding>,
3857 mapping: Mapping,
3858 settings: RawJson,
3859 #[serde(default, skip_serializing_if = "Option::is_none")]
3860 resource_spec: Option<IndexResourceSpec>,
3861 },
3862 DeleteComponentTemplate {
3863 name: String,
3864 expected: ExpectedBinding,
3865 },
3866 PutIndexTemplate {
3867 name: String,
3868 #[serde(default, skip_serializing_if = "Option::is_none")]
3869 expected: Option<ExpectedBinding>,
3870 priority: i32,
3871 data_stream: bool,
3872 index_patterns: Vec<String>,
3873 components: Vec<ExpectedBinding>,
3874 mapping: Mapping,
3875 settings: RawJson,
3876 #[serde(default, skip_serializing_if = "Option::is_none")]
3877 resource_spec: Option<IndexResourceSpec>,
3878 },
3879 DeleteIndexTemplate {
3880 name: String,
3881 expected: ExpectedBinding,
3882 },
3883 PutIngestPipeline {
3884 name: String,
3885 #[serde(default, skip_serializing_if = "Option::is_none")]
3886 expected: Option<ExpectedBinding>,
3887 definition: RawJson,
3888 },
3889 DeleteIngestPipeline {
3890 name: String,
3891 expected: ExpectedBinding,
3892 },
3893 PutLifecyclePolicy {
3894 name: String,
3895 #[serde(default, skip_serializing_if = "Option::is_none")]
3896 expected: Option<ExpectedBinding>,
3897 rollover: RolloverThresholds,
3898 retention: RetentionPolicy,
3899 merge_hint: bool,
3900 freeze_hint: bool,
3901 delete_expired: bool,
3902 },
3903 DeleteLifecyclePolicy {
3904 name: String,
3905 expected: ExpectedBinding,
3906 },
3907 CreateDataStream {
3908 name: String,
3909 timestamp_field: String,
3910 index_template: ExpectedBinding,
3911 #[serde(default, skip_serializing_if = "Option::is_none")]
3912 lifecycle_policy: Option<ExpectedBinding>,
3913 },
3914 UpdateDataStream {
3915 name: String,
3916 expected_revision: U64,
3917 timestamp_field: String,
3918 index_template: ExpectedBinding,
3919 #[serde(default, skip_serializing_if = "Option::is_none")]
3920 lifecycle_policy: Option<ExpectedBinding>,
3921 },
3922 DeleteDataStream {
3923 name: String,
3924 expected_revision: U64,
3925 },
3926 RolloverDataStream {
3927 name: String,
3928 expected_revision: U64,
3929 },
3930}
3931
3932pub const LODESTONE_API_ADMINISTRATION_OUTCOME_FORMAT_VERSION: u16 = 1;
3933#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3934#[serde(deny_unknown_fields)]
3935pub struct AdministrationOutcome {
3936 pub action_id: Digest,
3937 pub authority_revision: U64,
3938 pub state: String,
3939 #[serde(default, skip_serializing_if = "Option::is_none")]
3940 pub resource: Option<Resource>,
3941}
3942
3943pub const LODESTONE_API_INDEX_CHANGE_APPLY_RECEIPT_FORMAT_VERSION: u16 = 1;
3944#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3945#[serde(deny_unknown_fields)]
3946pub struct IndexChangeApplyReceipt {
3947 pub action_id: Digest,
3948 pub semantic_digest: Digest,
3949 pub index: Resource,
3950 pub revision: U64,
3951 pub schema_generation: U64,
3952 pub state: String,
3953}
3954
3955pub const LODESTONE_API_INDEX_CHANGE_RESOLUTION_STATE_FORMAT_VERSION: u16 = 1;
3956#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
3957#[serde(rename_all = "snake_case")]
3958pub enum IndexChangeResolutionState {
3959 NotSubmitted,
3960 Prepared,
3961 Pending,
3962 Applied,
3963 Failed,
3964 KnownRetired,
3965 ExpiredUnknown,
3966}
3967
3968pub const LODESTONE_API_BULK_DOCUMENT_ITEM_FORMAT_VERSION: u16 = 2;
3969#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3970#[serde(deny_unknown_fields)]
3971pub struct BulkDocumentItem {
3972 pub item_action_id: Digest,
3973 pub document_id: String,
3974 pub operation: String,
3975 #[serde(default, skip_serializing_if = "Option::is_none")]
3976 pub source: Option<RawJson>,
3977 #[serde(default, skip_serializing_if = "Option::is_none")]
3978 pub record: Option<NativeRecord>,
3979 #[serde(default, skip_serializing_if = "Option::is_none")]
3980 pub routing: Option<String>,
3981 #[serde(default, skip_serializing_if = "Option::is_none")]
3982 pub condition: Option<DocumentMutationCondition>,
3983 #[serde(default, skip_serializing_if = "Option::is_none")]
3984 pub pipeline: Option<IngestPipelineSelection>,
3985 pub semantic_digest: Digest,
3986}
3987
3988pub const LODESTONE_API_BULK_DOCUMENT_ITEM_OUTCOME_FORMAT_VERSION: u16 = 1;
3989#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
3990#[serde(deny_unknown_fields)]
3991pub struct BulkDocumentItemOutcome {
3992 pub item_action_id: Digest,
3993 #[serde(default, skip_serializing_if = "Option::is_none")]
3994 pub locator: Option<Locator>,
3995 pub state: SubmissionState,
3996 #[serde(default, skip_serializing_if = "Option::is_none")]
3997 pub sequence: Option<U64>,
3998 #[serde(default, skip_serializing_if = "Option::is_none")]
3999 pub mapping_generation: Option<U64>,
4000 pub mapping_adopted: bool,
4001 pub no_document_effect: bool,
4002 #[serde(default, skip_serializing_if = "Option::is_none")]
4003 pub error: Option<ErrorBody>,
4004}
4005
4006pub const LODESTONE_API_BULK_DOCUMENT_OUTCOME_FORMAT_VERSION: u16 = 1;
4007#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4008#[serde(deny_unknown_fields)]
4009pub struct BulkDocumentOutcome {
4010 pub batch_id: Digest,
4011 pub index: Resource,
4012 pub items: Vec<BulkDocumentItemOutcome>,
4013 pub complete: bool,
4014 #[serde(default, skip_serializing_if = "Option::is_none")]
4015 pub achievement: Option<WriteAchievement>,
4016}
4017
4018pub const LODESTONE_API_METRIC_ATTRIBUTE_VALUE_FORMAT_VERSION: u16 = 1;
4019#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4020#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4021pub enum MetricAttributeValue {
4022 String { value: String },
4023 Boolean { value: bool },
4024 I64 { value: I64 },
4025 U64 { value: U64 },
4026 F64Bits { value: U64 },
4027}
4028
4029pub const LODESTONE_API_METRIC_ATTRIBUTE_FORMAT_VERSION: u16 = 1;
4030#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4031#[serde(deny_unknown_fields)]
4032pub struct MetricAttribute {
4033 pub key: String,
4034 pub value: MetricAttributeValue,
4035}
4036
4037pub const LODESTONE_API_METRIC_NUMBER_FORMAT_VERSION: u16 = 1;
4038#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4039#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4040pub enum MetricNumber {
4041 I64 { value: I64 },
4042 F64Bits { value: U64 },
4043}
4044
4045pub const LODESTONE_API_METRIC_TEMPORALITY_FORMAT_VERSION: u16 = 1;
4046#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4047#[serde(rename_all = "snake_case")]
4048pub enum MetricTemporality {
4049 Cumulative,
4050 Delta,
4051}
4052
4053pub const LODESTONE_API_METRIC_POINT_KIND_FORMAT_VERSION: u16 = 1;
4054#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4055#[serde(rename_all = "snake_case")]
4056pub enum MetricPointKind {
4057 Gauge,
4058 Sum,
4059 ExplicitHistogram,
4060 ExponentialHistogram,
4061}
4062
4063pub const LODESTONE_API_METRIC_EXPONENTIAL_BUCKETS_FORMAT_VERSION: u16 = 1;
4064#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4065#[serde(deny_unknown_fields)]
4066pub struct MetricExponentialBuckets {
4067 pub offset: i32,
4068 pub counts: Vec<U64>,
4069}
4070
4071pub const LODESTONE_API_METRIC_DATA_FORMAT_VERSION: u16 = 1;
4072#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4073#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4074pub enum MetricData {
4075 Gauge {
4076 value: MetricNumber,
4077 },
4078 Sum {
4079 value: MetricNumber,
4080 temporality: MetricTemporality,
4081 monotonic: bool,
4082 },
4083 ExplicitHistogram {
4084 temporality: MetricTemporality,
4085 count: U64,
4086 #[serde(default, skip_serializing_if = "Option::is_none")]
4087 sum: Option<MetricNumber>,
4088 bounds_f64_bits: Vec<U64>,
4089 bucket_counts: Vec<U64>,
4090 },
4091 ExponentialHistogram {
4092 temporality: MetricTemporality,
4093 count: U64,
4094 #[serde(default, skip_serializing_if = "Option::is_none")]
4095 sum: Option<MetricNumber>,
4096 scale: i32,
4097 zero_count: U64,
4098 positive: MetricExponentialBuckets,
4099 negative: MetricExponentialBuckets,
4100 },
4101}
4102
4103pub const LODESTONE_API_METRIC_INSTRUMENTATION_SCOPE_FORMAT_VERSION: u16 = 1;
4104#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4105#[serde(deny_unknown_fields)]
4106pub struct MetricInstrumentationScope {
4107 pub name: String,
4108 #[serde(default, skip_serializing_if = "Option::is_none")]
4109 pub version: Option<String>,
4110 #[serde(default, skip_serializing_if = "Option::is_none")]
4111 pub schema_url: Option<String>,
4112 pub attributes: Vec<MetricAttribute>,
4113}
4114
4115pub const LODESTONE_API_METRIC_EXEMPLAR_FORMAT_VERSION: u16 = 1;
4116#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4117#[serde(deny_unknown_fields)]
4118pub struct MetricExemplar {
4119 pub timestamp_unix_nanos: U64,
4120 pub value: MetricNumber,
4121 #[serde(default, skip_serializing_if = "Option::is_none")]
4122 pub trace_id: Option<String>,
4123 #[serde(default, skip_serializing_if = "Option::is_none")]
4124 pub span_id: Option<String>,
4125 pub filtered_attributes: Vec<MetricAttribute>,
4126}
4127
4128pub const LODESTONE_API_METRIC_POINT_SHAPE_VERSION: u16 = 1;
4129pub const LODESTONE_API_METRIC_POINT_FORMAT_VERSION: u16 = 1;
4130#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4131#[serde(deny_unknown_fields)]
4132pub struct MetricPoint {
4133 pub format_version: u32,
4134 pub resource_attributes: Vec<MetricAttribute>,
4135 pub instrumentation_scope: MetricInstrumentationScope,
4136 pub metric_name: String,
4137 #[serde(default, skip_serializing_if = "Option::is_none")]
4138 pub description: Option<String>,
4139 pub unit: String,
4140 pub series_attributes: Vec<MetricAttribute>,
4141 pub timestamp_unix_nanos: U64,
4142 #[serde(default, skip_serializing_if = "Option::is_none")]
4143 pub start_timestamp_unix_nanos: Option<U64>,
4144 pub data: MetricData,
4145 pub exemplars: Vec<MetricExemplar>,
4146}
4147
4148pub const LODESTONE_API_ENTITY_REF_FORMAT_VERSION: u16 = 1;
4149#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4150#[serde(deny_unknown_fields)]
4151pub struct EntityRef {
4152 pub entity_kind: String,
4153 pub entity_id: String,
4154}
4155
4156pub const LODESTONE_API_RELATIONSHIP_EVIDENCE_REF_FORMAT_VERSION: u16 = 1;
4157#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4158#[serde(deny_unknown_fields)]
4159pub struct RelationshipEvidenceRef {
4160 pub index: Resource,
4161 pub record_id: String,
4162}
4163
4164pub const LODESTONE_API_RELATIONSHIP_DIRECTIONALITY_FORMAT_VERSION: u16 = 1;
4165#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4166#[serde(rename_all = "snake_case")]
4167pub enum RelationshipDirectionality {
4168 Directed,
4169 Undirected,
4170}
4171
4172pub const LODESTONE_API_RELATIONSHIP_RECORD_SHAPE_VERSION: u16 = 1;
4173pub const LODESTONE_API_RELATIONSHIP_RECORD_FORMAT_VERSION: u16 = 1;
4174#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4175#[serde(deny_unknown_fields)]
4176pub struct RelationshipRecord {
4177 pub format_version: u32,
4178 pub relationship_id: String,
4179 pub source: EntityRef,
4180 pub target: EntityRef,
4181 pub relationship_type: String,
4182 pub directionality: RelationshipDirectionality,
4183 #[serde(default, skip_serializing_if = "Option::is_none")]
4184 pub valid_from_unix_nanos: Option<U64>,
4185 #[serde(default, skip_serializing_if = "Option::is_none")]
4186 pub valid_through_unix_nanos: Option<U64>,
4187 pub provenance: Vec<String>,
4188 pub evidence: Vec<RelationshipEvidenceRef>,
4189 pub assertion_class: String,
4190}
4191
4192pub const LODESTONE_API_PROFILE_LABEL_FORMAT_VERSION: u16 = 1;
4193#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4194#[serde(deny_unknown_fields)]
4195pub struct ProfileLabel {
4196 pub key: String,
4197 pub value: String,
4198}
4199
4200pub const LODESTONE_API_PROFILE_SAMPLE_TYPE_FORMAT_VERSION: u16 = 1;
4201#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4202#[serde(deny_unknown_fields)]
4203pub struct ProfileSampleType {
4204 pub sample_type: String,
4205 pub unit: String,
4206}
4207
4208pub const LODESTONE_API_PROFILE_MAPPING_FORMAT_VERSION: u16 = 1;
4209#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4210#[serde(deny_unknown_fields)]
4211pub struct ProfileMapping {
4212 pub mapping_id: String,
4213 pub build_id: String,
4214 pub module_id: String,
4215 #[serde(default, skip_serializing_if = "Option::is_none")]
4216 pub filename: Option<String>,
4217}
4218
4219pub const LODESTONE_API_PROFILE_FUNCTION_FORMAT_VERSION: u16 = 1;
4220#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4221#[serde(deny_unknown_fields)]
4222pub struct ProfileFunction {
4223 pub function_id: String,
4224 #[serde(default, skip_serializing_if = "Option::is_none")]
4225 pub name: Option<String>,
4226 #[serde(default, skip_serializing_if = "Option::is_none")]
4227 pub system_name: Option<String>,
4228 #[serde(default, skip_serializing_if = "Option::is_none")]
4229 pub filename: Option<String>,
4230 #[serde(default, skip_serializing_if = "Option::is_none")]
4231 pub start_line: Option<U64>,
4232 #[serde(default, skip_serializing_if = "Option::is_none")]
4233 pub symbol_observation_id: Option<String>,
4234}
4235
4236pub const LODESTONE_API_PROFILE_LINE_FORMAT_VERSION: u16 = 1;
4237#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4238#[serde(deny_unknown_fields)]
4239pub struct ProfileLine {
4240 pub function_id: String,
4241 pub line: U64,
4242}
4243
4244pub const LODESTONE_API_PROFILE_LOCATION_FORMAT_VERSION: u16 = 1;
4245#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4246#[serde(deny_unknown_fields)]
4247pub struct ProfileLocation {
4248 pub location_id: String,
4249 #[serde(default, skip_serializing_if = "Option::is_none")]
4250 pub mapping_id: Option<String>,
4251 pub address: U64,
4252 pub lines: Vec<ProfileLine>,
4253}
4254
4255pub const LODESTONE_API_PROFILE_STACK_FORMAT_VERSION: u16 = 1;
4256#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4257#[serde(deny_unknown_fields)]
4258pub struct ProfileStack {
4259 pub stack_id: String,
4260 #[serde(default, skip_serializing_if = "Option::is_none")]
4261 pub parent_stack_id: Option<String>,
4262 pub location_id: String,
4263}
4264
4265pub const LODESTONE_API_PROFILE_SAMPLE_FORMAT_VERSION: u16 = 1;
4266#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4267#[serde(deny_unknown_fields)]
4268pub struct ProfileSample {
4269 pub sample_id: String,
4270 pub stack_id: String,
4271 pub values: Vec<MetricNumber>,
4272 pub labels: Vec<ProfileLabel>,
4273 #[serde(default, skip_serializing_if = "Option::is_none")]
4274 pub trace_id: Option<String>,
4275 #[serde(default, skip_serializing_if = "Option::is_none")]
4276 pub span_id: Option<String>,
4277}
4278
4279pub const LODESTONE_API_PROFILE_INSTRUMENTATION_SCOPE_FORMAT_VERSION: u16 = 1;
4280#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4281#[serde(deny_unknown_fields)]
4282pub struct ProfileInstrumentationScope {
4283 pub name: String,
4284 #[serde(default, skip_serializing_if = "Option::is_none")]
4285 pub version: Option<String>,
4286 pub attributes: Vec<ProfileLabel>,
4287}
4288
4289pub const LODESTONE_API_PROFILE_BATCH_SHAPE_VERSION: u16 = 1;
4290pub const LODESTONE_API_PROFILE_BATCH_FORMAT_VERSION: u16 = 1;
4291#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4292#[serde(deny_unknown_fields)]
4293pub struct ProfileBatch {
4294 pub format_version: u32,
4295 pub profile_id: String,
4296 pub batch_id: String,
4297 pub start_unix_nanos: U64,
4298 pub end_unix_nanos: U64,
4299 pub duration_nanos: U64,
4300 pub period_nanos: U64,
4301 pub sample_types: Vec<ProfileSampleType>,
4302 pub resource_attributes: Vec<ProfileLabel>,
4303 pub instrumentation_scope: ProfileInstrumentationScope,
4304 pub mappings: Vec<ProfileMapping>,
4305 pub functions: Vec<ProfileFunction>,
4306 pub locations: Vec<ProfileLocation>,
4307 pub stacks: Vec<ProfileStack>,
4308 pub samples: Vec<ProfileSample>,
4309}
4310
4311pub const LODESTONE_API_NATIVE_RECORD_FORMAT_VERSION: u16 = 3;
4312#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4313#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4314pub enum NativeRecord {
4315 Document { source: RawJson },
4316 MetricPoint { point: Box<MetricPoint> },
4317 Relationship { relationship: Box<RelationshipRecord> },
4318 ProfileBatch { batch: Box<ProfileBatch> },
4319}
4320
4321pub const LODESTONE_API_RETAINED_APPEND_ITEM_FORMAT_VERSION: u16 = 4;
4322#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4323#[serde(deny_unknown_fields)]
4324pub struct RetainedAppendItem {
4325 pub item_action_id: Digest,
4326 pub document_id: String,
4327 pub record: NativeRecord,
4328}
4329
4330pub const LODESTONE_API_RETAINED_APPEND_STATE_FORMAT_VERSION: u16 = 1;
4331#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4332#[serde(rename_all = "snake_case")]
4333pub enum RetainedAppendState {
4334 Prepared,
4335 Committed,
4336 Replayed,
4337 Conflict,
4338 NotSubmittedRetryable,
4339 NotSubmittedTerminal,
4340 SubmittedIndeterminate,
4341 Retired,
4342}
4343
4344pub const LODESTONE_API_RETAINED_APPEND_RETRY_SAFETY_FORMAT_VERSION: u16 = 1;
4345#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4346#[serde(rename_all = "snake_case")]
4347pub enum RetainedAppendRetrySafety {
4348 Safe,
4349 ResolveOnly,
4350 Terminal,
4351}
4352
4353pub const LODESTONE_API_RETAINED_APPEND_ITEM_OUTCOME_FORMAT_VERSION: u16 = 1;
4354#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4355#[serde(deny_unknown_fields)]
4356pub struct RetainedAppendItemOutcome {
4357 pub item_action_id: Digest,
4358 #[serde(default, skip_serializing_if = "Option::is_none")]
4359 pub locator: Option<Locator>,
4360 #[serde(default, skip_serializing_if = "Option::is_none")]
4361 pub semantic_digest: Option<Digest>,
4362 pub state: RetainedAppendState,
4363 pub retry_safety: RetainedAppendRetrySafety,
4364 #[serde(default, skip_serializing_if = "Option::is_none")]
4365 pub sequence: Option<U64>,
4366 #[serde(default, skip_serializing_if = "Option::is_none")]
4367 pub primary_term: Option<U64>,
4368 #[serde(default, skip_serializing_if = "Option::is_none")]
4369 pub error: Option<ErrorBody>,
4370}
4371
4372pub const LODESTONE_API_RETAINED_APPEND_BULK_OUTCOME_FORMAT_VERSION: u16 = 1;
4373#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4374#[serde(deny_unknown_fields)]
4375pub struct RetainedAppendBulkOutcome {
4376 pub batch_id: Digest,
4377 pub index: Resource,
4378 pub items: Vec<RetainedAppendItemOutcome>,
4379 pub complete: bool,
4380 #[serde(default, skip_serializing_if = "Option::is_none")]
4381 pub achievement: Option<WriteAchievement>,
4382}
4383
4384pub const LODESTONE_API_RETAINED_APPEND_OBSERVATION_STATE_FORMAT_VERSION: u16 = 1;
4385#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4386#[serde(rename_all = "snake_case")]
4387pub enum RetainedAppendObservationState {
4388 Visible,
4389 Pending,
4390 SubmittedIndeterminate,
4391 Conflict,
4392 Retired,
4393}
4394
4395pub const LODESTONE_API_RETAINED_APPEND_OBSERVATION_OUTCOME_FORMAT_VERSION: u16 = 1;
4396#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4397#[serde(deny_unknown_fields)]
4398pub struct RetainedAppendObservationOutcome {
4399 pub index: Resource,
4400 pub locator: Locator,
4401 pub state: RetainedAppendObservationState,
4402 #[serde(default, skip_serializing_if = "Option::is_none")]
4403 pub sequence: Option<U64>,
4404 #[serde(default, skip_serializing_if = "Option::is_none")]
4405 pub primary_term: Option<U64>,
4406}
4407
4408pub const LODESTONE_API_BINARY_VALUE_FORMAT_VERSION: u16 = 1;
4409#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4410#[serde(deny_unknown_fields)]
4411pub struct BinaryValue {
4412 pub bytes_base64: String,
4413}
4414
4415pub const LODESTONE_API_STATE_HASH_FIELD_FORMAT_VERSION: u16 = 1;
4416#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4417#[serde(deny_unknown_fields)]
4418pub struct StateHashField {
4419 pub field: BinaryValue,
4420 pub value: BinaryValue,
4421}
4422
4423pub const LODESTONE_API_STATE_SET_ENTRY_FORMAT_VERSION: u16 = 1;
4424#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4425#[serde(deny_unknown_fields)]
4426pub struct StateSetEntry {
4427 pub key: BinaryValue,
4428 pub value: BinaryValue,
4429}
4430
4431pub const LODESTONE_API_STATE_SET_CONDITION_FORMAT_VERSION: u16 = 1;
4432#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4433#[serde(rename_all = "snake_case")]
4434pub enum StateSetCondition {
4435 Always,
4436 IfAbsent,
4437 IfPresent,
4438}
4439
4440pub const LODESTONE_API_STATE_OPERATION_FORMAT_VERSION: u16 = 1;
4441#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4442#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4443pub enum StateOperation {
4444 Get {
4445 key: BinaryValue,
4446 },
4447 Set {
4448 key: BinaryValue,
4449 value: BinaryValue,
4450 condition: StateSetCondition,
4451 #[serde(default, skip_serializing_if = "Option::is_none")]
4452 expires_at_millis: Option<U64>,
4453 },
4454 Delete {
4455 keys: Vec<BinaryValue>,
4456 },
4457 Exists {
4458 keys: Vec<BinaryValue>,
4459 },
4460 ExpireAt {
4461 key: BinaryValue,
4462 absolute_millis: U64,
4463 },
4464 TtlStatus {
4465 key: BinaryValue,
4466 },
4467 Persist {
4468 key: BinaryValue,
4469 },
4470 MultiGet {
4471 keys: Vec<BinaryValue>,
4472 },
4473 MultiSet {
4474 entries: Vec<StateSetEntry>,
4475 },
4476 Increment {
4477 key: BinaryValue,
4478 delta: I64,
4479 },
4480 HashGet {
4481 key: BinaryValue,
4482 field: BinaryValue,
4483 },
4484 HashSet {
4485 key: BinaryValue,
4486 fields: Vec<StateHashField>,
4487 },
4488 HashGetAll {
4489 key: BinaryValue,
4490 },
4491}
4492
4493pub const LODESTONE_API_STATE_OPTIONAL_VALUE_FORMAT_VERSION: u16 = 1;
4494#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4495#[serde(tag = "state", rename_all = "snake_case", deny_unknown_fields)]
4496pub enum StateOptionalValue {
4497 Missing,
4498 Value { value: BinaryValue },
4499}
4500
4501pub const LODESTONE_API_STATE_COMMAND_RESULT_FORMAT_VERSION: u16 = 1;
4502#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4503#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4504pub enum StateCommandResult {
4505 Get {
4506 value: StateOptionalValue,
4507 },
4508 Set {
4509 applied: bool,
4510 },
4511 Delete {
4512 removed: u32,
4513 },
4514 Exists {
4515 count: u32,
4516 },
4517 Expire {
4518 changed: bool,
4519 },
4520 TtlStatus {
4521 state: String,
4522 #[serde(default, skip_serializing_if = "Option::is_none")]
4523 remaining_millis: Option<U64>,
4524 },
4525 Persist {
4526 changed: bool,
4527 },
4528 MultiGet {
4529 values: Vec<StateOptionalValue>,
4530 },
4531 MultiSet {
4532 written: u32,
4533 },
4534 Increment {
4535 value: I64,
4536 },
4537 HashGet {
4538 value: StateOptionalValue,
4539 },
4540 HashSet {
4541 fields_added: u32,
4542 },
4543 HashGetAll {
4544 fields: Vec<StateHashField>,
4545 },
4546}
4547
4548pub const LODESTONE_API_STATE_WRITE_RESOLUTION_FORMAT_VERSION: u16 = 1;
4549#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4550#[serde(tag = "state", rename_all = "snake_case", deny_unknown_fields)]
4551pub enum StateWriteResolution {
4552 NotSubmitted,
4553 Resolved {
4554 result: StateCommandResult,
4555 sequence: U64,
4556 },
4557 KnownRetired {
4558 retired_through: U64,
4559 },
4560 StateReset {
4561 submitted_reset_epoch: U64,
4562 current_reset_epoch: U64,
4563 },
4564 Indeterminate {
4565 #[serde(default, skip_serializing_if = "Option::is_none")]
4566 observed_high_water: Option<U64>,
4567 #[serde(default, skip_serializing_if = "Option::is_none")]
4568 current_high_water: Option<U64>,
4569 #[serde(default, skip_serializing_if = "Option::is_none")]
4570 retired_through: Option<U64>,
4571 },
4572}
4573
4574pub const LODESTONE_API_SERVICE_CREDENTIAL_RESERVATION_FORMAT_VERSION: u16 = 1;
4575#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4576#[serde(deny_unknown_fields)]
4577pub struct ServiceCredentialReservation {
4578 pub locator: Locator,
4579 pub reservation_action_id: Digest,
4580 pub activation_action_id: Digest,
4581 pub principal_id: Identity,
4582 pub api_key_id: Identity,
4583 pub generation: U64,
4584 pub reservation_expires_at: U64,
4585 pub credential_expires_at: U64,
4586 pub verifier_algorithm: String,
4587 pub verifier_algorithm_version: u32,
4588 pub required_secret_bytes: u32,
4589}
4590
4591pub const LODESTONE_API_SUBSCRIPTION_METADATA_FIELD_FORMAT_VERSION: u16 = 1;
4592#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4593#[serde(rename_all = "snake_case")]
4594pub enum SubscriptionMetadataField {
4595 Id,
4596 RoutingHash,
4597 Operation,
4598 Shard,
4599 Sequence,
4600}
4601
4602pub const LODESTONE_API_SUBSCRIPTION_FIELD_FORMAT_VERSION: u16 = 1;
4603#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4604#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4605pub enum SubscriptionField {
4606 Source { path: String },
4607 Metadata { field: SubscriptionMetadataField },
4608}
4609
4610pub const LODESTONE_API_SUBSCRIPTION_FILTER_FORMAT_VERSION: u16 = 1;
4611#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4612#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4613pub enum SubscriptionFilter {
4614 All,
4615 Bool {
4616 must: Vec<SubscriptionFilter>,
4617 should: Vec<SubscriptionFilter>,
4618 must_not: Vec<SubscriptionFilter>,
4619 minimum_should_match: u32,
4620 },
4621 Term {
4622 field: SubscriptionField,
4623 value: JsonValue,
4624 },
4625 Terms {
4626 field: SubscriptionField,
4627 values: Vec<JsonValue>,
4628 },
4629 Range {
4630 field: SubscriptionField,
4631 #[serde(default, skip_serializing_if = "Option::is_none")]
4632 gt: Option<JsonValue>,
4633 #[serde(default, skip_serializing_if = "Option::is_none")]
4634 gte: Option<JsonValue>,
4635 #[serde(default, skip_serializing_if = "Option::is_none")]
4636 lt: Option<JsonValue>,
4637 #[serde(default, skip_serializing_if = "Option::is_none")]
4638 lte: Option<JsonValue>,
4639 },
4640 Exists {
4641 field: SubscriptionField,
4642 },
4643 Prefix {
4644 field: SubscriptionField,
4645 value: String,
4646 },
4647}
4648
4649pub const LODESTONE_API_SUBSCRIPTION_CURSOR_ENTRY_FORMAT_VERSION: u16 = 1;
4650#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4651#[serde(deny_unknown_fields)]
4652pub struct SubscriptionCursorEntry {
4653 pub index: Resource,
4654 pub routing_revision: U64,
4655 pub recovery_era: Identity,
4656 pub shard_id: U64,
4657 pub sequence: U64,
4658}
4659
4660pub const LODESTONE_API_SUBSCRIPTION_ROUTE_FORMAT_VERSION: u16 = 1;
4661#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4662#[serde(deny_unknown_fields)]
4663pub struct SubscriptionRoute {
4664 pub index: Resource,
4665 pub routing_revision: U64,
4666 pub shard_ids: Vec<U64>,
4667}
4668
4669pub const LODESTONE_API_SUBSCRIPTION_START_POSITION_FORMAT_VERSION: u16 = 1;
4670#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4671#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4672pub enum SubscriptionStartPosition {
4673 FromNow,
4674 Resume {
4675 routes: Vec<SubscriptionRoute>,
4676 cut: Vec<SubscriptionCursorEntry>,
4677 },
4678}
4679
4680pub const LODESTONE_API_SUBSCRIPTION_START_SHAPE_VERSION: u16 = 1;
4681pub const LODESTONE_API_SUBSCRIPTION_START_FORMAT_VERSION: u16 = 1;
4682#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4683#[serde(deny_unknown_fields)]
4684pub struct SubscriptionStart {
4685 pub format_version: u32,
4686 pub request_id: String,
4687 pub index: Resource,
4688 #[serde(default, skip_serializing_if = "Option::is_none")]
4689 pub filter: Option<SubscriptionFilter>,
4690 pub include_deletes: bool,
4691 pub source_projection: Vec<String>,
4692 pub reconnect_attempt: u32,
4693 pub start: SubscriptionStartPosition,
4694 pub heartbeat_millis: U64,
4695 pub schema_digest: Digest,
4696}
4697
4698pub const LODESTONE_API_SUBSCRIPTION_ACCEPTED_SHAPE_VERSION: u16 = 1;
4699pub const LODESTONE_API_SUBSCRIPTION_ACCEPTED_FORMAT_VERSION: u16 = 1;
4700#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4701#[serde(deny_unknown_fields)]
4702pub struct SubscriptionAccepted {
4703 pub format_version: u32,
4704 pub routes: Vec<SubscriptionRoute>,
4705 pub accepted_cut: Vec<SubscriptionCursorEntry>,
4706 pub schema_digest: Digest,
4707}
4708
4709pub const LODESTONE_API_SUBSCRIPTION_WRITER_FENCE_FORMAT_VERSION: u16 = 1;
4710#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4711#[serde(deny_unknown_fields)]
4712pub struct SubscriptionWriterFence {
4713 pub recovery_era: Identity,
4714 pub epoch: u32,
4715}
4716
4717pub const LODESTONE_API_SUBSCRIPTION_EVENT_SHAPE_VERSION: u16 = 1;
4718pub const LODESTONE_API_SUBSCRIPTION_EVENT_FORMAT_VERSION: u16 = 1;
4719#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4720#[serde(deny_unknown_fields)]
4721pub struct SubscriptionEvent {
4722 pub format_version: u32,
4723 pub event_id: Digest,
4724 pub index: Resource,
4725 pub shard_id: U64,
4726 pub recovery_era: Identity,
4727 pub writer_fence: SubscriptionWriterFence,
4728 pub routing_revision: U64,
4729 pub sequence: U64,
4730 pub operation: String,
4731 pub document_id: String,
4732 pub routing_hash: u32,
4733 #[serde(default, skip_serializing_if = "Option::is_none")]
4734 pub source: Option<RawJson>,
4735}
4736
4737pub const LODESTONE_API_SUBSCRIPTION_HEARTBEAT_SHAPE_VERSION: u16 = 1;
4738pub const LODESTONE_API_SUBSCRIPTION_HEARTBEAT_FORMAT_VERSION: u16 = 1;
4739#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4740#[serde(deny_unknown_fields)]
4741pub struct SubscriptionHeartbeat {
4742 pub format_version: u32,
4743 pub confirmed_cut: Vec<SubscriptionCursorEntry>,
4744 pub route_revision: U64,
4745 pub authorization_revision: U64,
4746 pub authorization_valid_until_millis: U64,
4747}
4748
4749pub const LODESTONE_API_SUBSCRIPTION_GAP_SHAPE_VERSION: u16 = 1;
4750pub const LODESTONE_API_SUBSCRIPTION_GAP_FORMAT_VERSION: u16 = 1;
4751#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4752#[serde(deny_unknown_fields)]
4753pub struct SubscriptionGap {
4754 pub format_version: u32,
4755 pub affected: Vec<SubscriptionCursorEntry>,
4756 pub last_confirmed: Vec<SubscriptionCursorEntry>,
4757 pub earliest_available: Vec<SubscriptionCursorEntry>,
4758 pub reason: String,
4759 pub terminal: bool,
4760}
4761
4762pub const LODESTONE_API_SUBSCRIPTION_TERMINAL_REASON_FORMAT_VERSION: u16 = 1;
4763#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4764#[serde(rename_all = "snake_case")]
4765pub enum SubscriptionTerminalReason {
4766 Completed,
4767 Cancelled,
4768 DeadlineExceeded,
4769 StaleCursor,
4770 RetentionGap,
4771 Unavailable,
4772 Internal,
4773}
4774
4775pub const LODESTONE_API_SUBSCRIPTION_TERMINAL_SHAPE_VERSION: u16 = 2;
4776pub const LODESTONE_API_SUBSCRIPTION_TERMINAL_FORMAT_VERSION: u16 = 2;
4777#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4778#[serde(deny_unknown_fields)]
4779pub struct SubscriptionTerminal {
4780 pub format_version: u32,
4781 pub reason: SubscriptionTerminalReason,
4782 pub recovery: RecoveryAction,
4783}
4784
4785pub const LODESTONE_API_SUBSCRIPTION_FRAME_FORMAT_VERSION: u16 = 1;
4786#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4787#[serde(tag = "frame", rename_all = "snake_case", deny_unknown_fields)]
4788pub enum SubscriptionFrame {
4789 Accepted { body: SubscriptionAccepted },
4790 Event { body: SubscriptionEvent },
4791 Heartbeat { body: SubscriptionHeartbeat },
4792 Gap { body: SubscriptionGap },
4793 Terminal { body: SubscriptionTerminal },
4794}
4795
4796pub const LODESTONE_API_STREAM_BINDING_FORMAT_VERSION: u16 = 1;
4797#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4798#[serde(deny_unknown_fields)]
4799pub struct StreamBinding {
4800 pub name: String,
4801 pub transport: String,
4802 pub service: String,
4803 pub method: String,
4804 pub endpoint: String,
4805 pub auth_metadata: String,
4806 pub auth_scheme: String,
4807 pub semantic_format_version: u32,
4808 pub schema_digest: Digest,
4809}
4810
4811pub const LODESTONE_API_CAPABILITY_GRANT_FORMAT_VERSION: u16 = 1;
4812#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4813#[serde(deny_unknown_fields)]
4814pub struct CapabilityGrant {
4815 pub command: String,
4816 pub action: String,
4817 pub state: String,
4818 pub reason: String,
4819 pub mutation_class: String,
4820 pub cancellable: bool,
4821 pub workload_classes: Vec<WorkloadClass>,
4822 pub possible_submission_states: Vec<String>,
4823 pub capability_family: String,
4824 pub effect_class: String,
4825 pub risk_flags: Vec<String>,
4826 pub admissible_errors: Vec<String>,
4827 pub referenced_limits: Vec<String>,
4828 pub retry_safety: String,
4829 pub identity_requirement: String,
4830 #[serde(default, skip_serializing_if = "Option::is_none")]
4831 pub resolver_command: Option<String>,
4832 pub cancellation: String,
4833 pub side_effects: Vec<String>,
4834 pub recovery: String,
4835 pub index_patterns: Vec<String>,
4836 pub exact_index_incarnations: Vec<Identity>,
4837}
4838
4839pub const LODESTONE_API_PROTOCOL_LIMIT_FORMAT_VERSION: u16 = 1;
4840#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4841#[serde(deny_unknown_fields)]
4842pub struct ProtocolLimit {
4843 pub id: String,
4844 pub default: U64,
4845 pub maximum: U64,
4846 pub unit: String,
4847}
4848
4849pub const LODESTONE_API_DOCUMENT_MUTATION_CONDITION_FORMAT_VERSION: u16 = 1;
4850#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4851#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
4852pub enum DocumentMutationCondition {
4853 Any,
4854 MustNotExist,
4855 IfSeqNo { seq_no: U64 },
4856 IfSeqNoAndPrimaryTerm { seq_no: U64, primary_term: U64 },
4857}
4858
4859pub const LODESTONE_API_AUDIT_ADAPTER_FORMAT_VERSION: u16 = 1;
4860#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4861#[serde(rename_all = "snake_case")]
4862pub enum AuditAdapter {
4863 Native,
4864 Elasticsearch,
4865 Otlp,
4866 Jaeger,
4867 Grpc,
4868 WebSocket,
4869 Resp,
4870 InternalRpc,
4871 ControlPlane,
4872}
4873
4874pub const LODESTONE_API_AUDIT_DECISION_FORMAT_VERSION: u16 = 1;
4875#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4876#[serde(rename_all = "snake_case")]
4877pub enum AuditDecision {
4878 Allowed,
4879 DeniedAuthentication,
4880 DeniedAuthorization,
4881 DeniedQuota,
4882 DeniedStalePolicy,
4883}
4884
4885pub const LODESTONE_API_AUDIT_OUTCOME_FORMAT_VERSION: u16 = 1;
4886#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4887#[serde(rename_all = "snake_case")]
4888pub enum AuditOutcome {
4889 AdmissionAccepted,
4890 AuthenticationRefused,
4891 AuthorizationRefused,
4892 QuotaRefused,
4893 PolicyUnavailable,
4894 DecodeFailed,
4895 OperationSucceeded,
4896 OperationFailed,
4897 OperationIndeterminate,
4898 FailedRedacted,
4899}
4900
4901pub const LODESTONE_API_AUDIT_DETAIL_FORMAT_VERSION: u16 = 1;
4902#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4903#[serde(rename_all = "snake_case")]
4904pub enum AuditDetail {
4905 PolicyMutation,
4906 CredentialRotation,
4907 CredentialRevocation,
4908 QuotaAdmission,
4909 RequestAdmission,
4910 ExplicitCrashGap,
4911 BackupLifecycle,
4912 RetentionLifecycle,
4913 FieldPromotion,
4914}
4915
4916pub const LODESTONE_API_AUDIT_GAP_REASON_FORMAT_VERSION: u16 = 1;
4917#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
4918#[serde(rename_all = "snake_case")]
4919pub enum AuditGapReason {
4920 ExplicitCrashGap,
4921 Retention,
4922}
4923
4924pub const LODESTONE_API_AUDIT_EVENT_FORMAT_VERSION: u16 = 2;
4925#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4926#[serde(deny_unknown_fields)]
4927pub struct AuditEvent {
4928 pub event_id: Digest,
4929 pub recovery_era: Identity,
4930 pub sequence: U64,
4931 pub server_time: U64,
4932 #[serde(default, skip_serializing_if = "Option::is_none")]
4933 pub principal_id: Option<Identity>,
4934 #[serde(default, skip_serializing_if = "Option::is_none")]
4935 pub api_key_id: Option<Identity>,
4936 pub policy_revision: U64,
4937 pub adapter: AuditAdapter,
4938 pub action: String,
4939 pub resource_digest: Digest,
4940 pub request_digest: Digest,
4941 #[serde(default, skip_serializing_if = "Option::is_none")]
4942 pub correlation_id: Option<Identity>,
4943 #[serde(default, skip_serializing_if = "Option::is_none")]
4944 pub diagnostic_id: Option<Identity>,
4945 pub decision: AuditDecision,
4946 pub outcome: AuditOutcome,
4947 pub detail: AuditDetail,
4948}
4949
4950pub const LODESTONE_API_AUDIT_GAP_FORMAT_VERSION: u16 = 2;
4951#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4952#[serde(deny_unknown_fields)]
4953pub struct AuditGap {
4954 pub recovery_era: Identity,
4955 pub first_sequence: U64,
4956 pub last_sequence: U64,
4957 pub reason: AuditGapReason,
4958}
4959
4960pub const LODESTONE_API_AUDIT_STREAM_STATE_FORMAT_VERSION: u16 = 1;
4961#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4962#[serde(deny_unknown_fields)]
4963pub struct AuditStreamState {
4964 pub recovery_era: Identity,
4965 pub earliest_available_sequence: U64,
4966 pub snapshot_through: U64,
4967}
4968
4969pub const LODESTONE_API_SERVICE_CREDENTIAL_GRANT_FORMAT_VERSION: u16 = 1;
4970#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4971#[serde(deny_unknown_fields)]
4972pub struct ServiceCredentialGrant {
4973 pub role_name: String,
4974 pub role_version: U64,
4975}
4976
4977pub const LODESTONE_API_SERVICE_CREDENTIAL_SUMMARY_FORMAT_VERSION: u16 = 1;
4978#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4979#[serde(deny_unknown_fields)]
4980pub struct ServiceCredentialSummary {
4981 pub principal_id: Identity,
4982 pub api_key_id: Identity,
4983 pub generation: U64,
4984 pub state: String,
4985 #[serde(default, skip_serializing_if = "Option::is_none")]
4986 pub expires_at: Option<U64>,
4987 pub grants: Vec<ServiceCredentialGrant>,
4988}
4989
4990pub const LODESTONE_API_SECURITY_ROLE_FORMAT_VERSION: u16 = 2;
4991#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4992#[serde(deny_unknown_fields)]
4993pub struct SecurityRole {
4994 pub role_name: String,
4995 pub version: U64,
4996 pub permissions: Vec<String>,
4997 pub delegable_permissions: Vec<String>,
4998 pub allowed_workload_classes: Vec<WorkloadClass>,
4999 pub index_patterns: Vec<String>,
5000 pub append_index_incarnations: Vec<Identity>,
5001}
5002
5003pub const LODESTONE_API_ROLE_APPEND_SCOPE_CHANGE_FORMAT_VERSION: u16 = 1;
5004#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5005#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
5006pub enum RoleAppendScopeChange {
5007 Add { index: Resource },
5008 Remove { index_incarnation: Identity },
5009}
5010
5011pub const LODESTONE_API_ROLE_APPEND_ACCESS_PREPARATION_FORMAT_VERSION: u16 = 1;
5012#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5013#[serde(tag = "state", rename_all = "snake_case", deny_unknown_fields)]
5014pub enum RoleAppendAccessPreparation {
5015 Prepared {
5016 locator: Locator,
5017 semantic_digest: Digest,
5018 expires_at: U64,
5019 predecessor_role_version: U64,
5020 successor_role_version: U64,
5021 },
5022 AlreadySatisfied {
5023 role: SecurityRole,
5024 },
5025}
5026
5027pub const LODESTONE_API_SOURCE_AUTHORIZATION_SUBJECT_KIND_FORMAT_VERSION: u16 = 1;
5028#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5029#[serde(rename_all = "snake_case")]
5030pub enum SourceAuthorizationSubjectKind {
5031 Principal,
5032 Group,
5033}
5034
5035pub const LODESTONE_API_SOURCE_AUTHORIZATION_SUBJECT_FORMAT_VERSION: u16 = 1;
5036#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5037#[serde(deny_unknown_fields)]
5038pub struct SourceAuthorizationSubject {
5039 pub kind: SourceAuthorizationSubjectKind,
5040 pub id: String,
5041}
5042
5043pub const LODESTONE_API_DELEGATED_QUERY_SOURCE_SUBJECT_FORMAT_VERSION: u16 = 1;
5044#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5045#[serde(deny_unknown_fields)]
5046pub struct DelegatedQuerySourceSubject {
5047 pub owner_subject_namespace: String,
5048 pub subject_id: String,
5049}
5050
5051pub const LODESTONE_API_DELEGATED_QUERY_SUBJECT_CLAIMS_SHAPE_VERSION: u16 = 1;
5052pub const LODESTONE_API_DELEGATED_QUERY_SUBJECT_CLAIMS_FORMAT_VERSION: u16 = 1;
5053#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5054#[serde(deny_unknown_fields)]
5055pub struct DelegatedQuerySubjectClaims {
5056 pub format_version: u32,
5057 pub issuer_id: String,
5058 pub key_id: String,
5059 pub key_generation: U64,
5060 pub query_subject_id: Identity,
5061 pub collection_id: Identity,
5062 pub workload_principal_id: Identity,
5063 pub workload_api_key_id: Identity,
5064 pub audience: String,
5065 pub source_subjects: Vec<DelegatedQuerySourceSubject>,
5066 pub issued_at_unix_millis: U64,
5067 pub expires_at_unix_millis: U64,
5068}
5069
5070pub const LODESTONE_API_SIGNED_DELEGATED_QUERY_SUBJECT_FORMAT_VERSION: u16 = 1;
5071#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5072#[serde(deny_unknown_fields)]
5073pub struct SignedDelegatedQuerySubject {
5074 pub claims: DelegatedQuerySubjectClaims,
5075 pub signature_base64url: String,
5076}
5077
5078pub const LODESTONE_API_SOURCE_AUTHORIZATION_PRINCIPAL_CHANGE_FORMAT_VERSION: u16 = 1;
5079#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5080#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
5081pub enum SourceAuthorizationPrincipalChange {
5082 Upsert {
5083 subject: SourceAuthorizationSubject,
5084 core_principal_id: Identity,
5085 },
5086 Revoke {
5087 subject: SourceAuthorizationSubject,
5088 },
5089 Delete {
5090 subject: SourceAuthorizationSubject,
5091 },
5092}
5093
5094pub const LODESTONE_API_SOURCE_AUTHORIZATION_GROUP_CHANGE_FORMAT_VERSION: u16 = 1;
5095#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5096#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
5097pub enum SourceAuthorizationGroupChange {
5098 Upsert { subject: SourceAuthorizationSubject },
5099 Delete { subject: SourceAuthorizationSubject },
5100}
5101
5102pub const LODESTONE_API_SOURCE_AUTHORIZATION_MEMBERSHIP_REPLACEMENT_FORMAT_VERSION: u16 = 1;
5103#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5104#[serde(deny_unknown_fields)]
5105pub struct SourceAuthorizationMembershipReplacement {
5106 pub principal: SourceAuthorizationSubject,
5107 pub groups: Vec<SourceAuthorizationSubject>,
5108}
5109
5110pub const LODESTONE_API_SOURCE_AUTHORIZATION_DOCUMENT_ACL_REPLACEMENT_FORMAT_VERSION: u16 = 1;
5111#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5112#[serde(deny_unknown_fields)]
5113pub struct SourceAuthorizationDocumentAclReplacement {
5114 pub document_id: String,
5115 pub principals: Vec<SourceAuthorizationSubject>,
5116 pub groups: Vec<SourceAuthorizationSubject>,
5117}
5118
5119pub const LODESTONE_API_SOURCE_AUTHORIZATION_BATCH_SHAPE_VERSION: u16 = 1;
5120pub const LODESTONE_API_SOURCE_AUTHORIZATION_BATCH_FORMAT_VERSION: u16 = 1;
5121#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5122#[serde(deny_unknown_fields)]
5123pub struct SourceAuthorizationBatch {
5124 pub format_version: u32,
5125 pub action_id: Digest,
5126 pub index: Resource,
5127 pub owner_subject_namespace: String,
5128 pub acl_encoding_digest: Digest,
5129 #[serde(default, skip_serializing_if = "Option::is_none")]
5130 pub predecessor_generation: Option<U64>,
5131 pub successor_generation: U64,
5132 pub source_checkpoint_digest: Digest,
5133 pub issued_at: U64,
5134 pub expires_at: U64,
5135 pub maximum_staleness_millis: U64,
5136 pub principal_changes: Vec<SourceAuthorizationPrincipalChange>,
5137 pub group_changes: Vec<SourceAuthorizationGroupChange>,
5138 pub membership_replacements: Vec<SourceAuthorizationMembershipReplacement>,
5139 pub document_acl_replacements: Vec<SourceAuthorizationDocumentAclReplacement>,
5140 pub document_deletions: Vec<String>,
5141}
5142
5143pub const LODESTONE_API_SOURCE_AUTHORIZATION_APPLIED_COUNTS_FORMAT_VERSION: u16 = 1;
5144#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5145#[serde(deny_unknown_fields)]
5146pub struct SourceAuthorizationAppliedCounts {
5147 pub principal_changes: u32,
5148 pub group_changes: u32,
5149 pub membership_replacements: u32,
5150 pub document_acl_replacements: u32,
5151 pub document_deletions: u32,
5152}
5153
5154pub const LODESTONE_API_SOURCE_AUTHORIZATION_RECEIPT_SHAPE_VERSION: u16 = 1;
5155pub const LODESTONE_API_SOURCE_AUTHORIZATION_RECEIPT_FORMAT_VERSION: u16 = 1;
5156#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5157#[serde(deny_unknown_fields)]
5158pub struct SourceAuthorizationReceipt {
5159 pub format_version: u32,
5160 pub action_id: Digest,
5161 pub index: Resource,
5162 #[serde(default, skip_serializing_if = "Option::is_none")]
5163 pub predecessor_generation: Option<U64>,
5164 pub current_generation: U64,
5165 pub batch_digest: Digest,
5166 pub projection_digest: Digest,
5167 pub applied_at: U64,
5168 pub expires_at: U64,
5169 pub counts: SourceAuthorizationAppliedCounts,
5170}
5171
5172pub const LODESTONE_API_SOURCE_AUTHORIZATION_PREPARATION_FORMAT_VERSION: u16 = 1;
5173#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5174#[serde(deny_unknown_fields)]
5175pub struct SourceAuthorizationPreparation {
5176 pub action_id: Digest,
5177 pub semantic_digest: Digest,
5178 pub index: Resource,
5179 #[serde(default, skip_serializing_if = "Option::is_none")]
5180 pub predecessor_generation: Option<U64>,
5181 pub successor_generation: U64,
5182 pub receipt: SourceAuthorizationReceipt,
5183}
5184
5185pub const LODESTONE_API_SOURCE_AUTHORIZATION_RESOLUTION_STATE_FORMAT_VERSION: u16 = 1;
5186#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5187#[serde(rename_all = "snake_case")]
5188pub enum SourceAuthorizationResolutionState {
5189 NotSubmitted,
5190 Pending,
5191 Applied,
5192 ExpiredUnknown,
5193}
5194
5195pub const LODESTONE_API_SOURCE_AUTHORIZATION_RESOLUTION_FORMAT_VERSION: u16 = 1;
5196#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5197#[serde(deny_unknown_fields)]
5198pub struct SourceAuthorizationResolution {
5199 pub action_id: Digest,
5200 pub semantic_digest: Digest,
5201 pub state: SourceAuthorizationResolutionState,
5202 #[serde(default, skip_serializing_if = "Option::is_none")]
5203 pub receipt: Option<SourceAuthorizationReceipt>,
5204}
5205
5206pub const LODESTONE_API_SECURITY_ACTION_OUTCOME_FORMAT_VERSION: u16 = 1;
5207#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5208#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
5209pub enum SecurityActionOutcome {
5210 Reserved {
5211 principal_id: Identity,
5212 api_key_id: Identity,
5213 generation: U64,
5214 },
5215 Activated {
5216 principal_id: Identity,
5217 api_key_id: Identity,
5218 generation: U64,
5219 },
5220 Revoked {
5221 principal_id: Identity,
5222 api_key_id: Identity,
5223 generation: U64,
5224 },
5225 Retired {
5226 principal_id: Identity,
5227 api_key_id: Identity,
5228 generation: U64,
5229 },
5230}
5231
5232pub const LODESTONE_API_MAINTENANCE_WORK_STATE_FORMAT_VERSION: u16 = 1;
5233#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5234#[serde(rename_all = "snake_case")]
5235pub enum MaintenanceWorkState {
5236 ParkedOperatorRequired,
5237 RetryWait,
5238 RetryReady,
5239 Leased,
5240 Deferred,
5241 Runnable,
5242}
5243
5244pub const LODESTONE_API_MAINTENANCE_ATTEMPT_STATE_FORMAT_VERSION: u16 = 1;
5245#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5246#[serde(rename_all = "snake_case")]
5247pub enum MaintenanceAttemptState {
5248 Running,
5249 DeadlineExceededDraining,
5250 DeadlineExceededReclaimPending,
5251 CancellationDraining,
5252 ClaimRecoveryPending,
5253}
5254
5255pub const LODESTONE_API_MAINTENANCE_FAILURE_CLASS_FORMAT_VERSION: u16 = 1;
5256#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5257#[serde(rename_all = "snake_case")]
5258pub enum MaintenanceFailureClass {
5259 Corruption,
5260 AttemptBudget,
5261 StructuralLimit,
5262 Execution,
5263 Other,
5264}
5265
5266pub const LODESTONE_API_MAINTENANCE_FAILURE_CLASS_COUNT_FORMAT_VERSION: u16 = 1;
5267#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5268#[serde(deny_unknown_fields)]
5269pub struct MaintenanceFailureClassCount {
5270 pub class: MaintenanceFailureClass,
5271 pub count: U64,
5272}
5273
5274pub const LODESTONE_API_MAINTENANCE_ATTEMPT_OBSERVATION_FORMAT_VERSION: u16 = 1;
5275#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5276#[serde(deny_unknown_fields)]
5277pub struct MaintenanceAttemptObservation {
5278 pub state: MaintenanceAttemptState,
5279 pub lease_epoch: U64,
5280 pub lease_expires_at: U64,
5281 pub observed_at_millis: U64,
5282}
5283
5284pub const LODESTONE_API_MAINTENANCE_TASK_SCOPE_FORMAT_VERSION: u16 = 1;
5285#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5286#[serde(deny_unknown_fields)]
5287pub struct MaintenanceTaskScope {
5288 pub kind: String,
5289 #[serde(default, skip_serializing_if = "Option::is_none")]
5290 pub index: Option<Resource>,
5291 #[serde(default, skip_serializing_if = "Option::is_none")]
5292 pub shard_id: Option<u32>,
5293}
5294
5295pub const LODESTONE_API_MAINTENANCE_TASK_STATUS_FORMAT_VERSION: u16 = 1;
5296#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5297#[serde(deny_unknown_fields)]
5298pub struct MaintenanceTaskStatus {
5299 pub task_id: Identity,
5300 pub kind: String,
5301 pub scope: MaintenanceTaskScope,
5302 pub checkpoint_generation: U64,
5303 pub attempt_count: u32,
5304 pub admitted_at: U64,
5305 pub last_transition_at: U64,
5306 pub last_progress_at: U64,
5307 pub work_state: MaintenanceWorkState,
5308 pub state_since: U64,
5309 #[serde(default, skip_serializing_if = "Option::is_none")]
5310 pub defer_reason: Option<String>,
5311 pub cancellation_requested: bool,
5312 #[serde(default, skip_serializing_if = "Option::is_none")]
5313 pub retry_not_before: Option<U64>,
5314 #[serde(default, skip_serializing_if = "Option::is_none")]
5315 pub failure_at: Option<U64>,
5316 #[serde(default, skip_serializing_if = "Option::is_none")]
5317 pub lease_acquired_at: Option<U64>,
5318 #[serde(default, skip_serializing_if = "Option::is_none")]
5319 pub lease_expires_at: Option<U64>,
5320 #[serde(default, skip_serializing_if = "Option::is_none")]
5321 pub failure_class: Option<MaintenanceFailureClass>,
5322 #[serde(default, skip_serializing_if = "Option::is_none")]
5323 pub failure_code: Option<String>,
5324 pub operator_action_required: bool,
5325 #[serde(default, skip_serializing_if = "Option::is_none")]
5326 pub local_attempt: Option<MaintenanceAttemptObservation>,
5327}
5328
5329pub const LODESTONE_API_MAINTENANCE_STATUS_AGGREGATE_SHAPE_VERSION: u16 = 1;
5330pub const LODESTONE_API_MAINTENANCE_STATUS_AGGREGATE_FORMAT_VERSION: u16 = 2;
5331#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5332#[serde(deny_unknown_fields)]
5333pub struct MaintenanceStatusAggregate {
5334 pub format_version: u32,
5335 pub recovery_era: Identity,
5336 pub source_revision: U64,
5337 pub root_revision: U64,
5338 pub logical_observation_time: U64,
5339 #[serde(default, skip_serializing_if = "Option::is_none")]
5340 pub local_observation_millis: Option<U64>,
5341 pub total_incomplete: U64,
5342 pub parked_operator_required: U64,
5343 pub retry_wait: U64,
5344 pub retry_ready: U64,
5345 pub leased: U64,
5346 pub deferred: U64,
5347 pub runnable: U64,
5348 pub eligible_backlog: U64,
5349 pub cancellation_requested: U64,
5350 #[serde(default, skip_serializing_if = "Option::is_none")]
5351 pub oldest_backlog_age: Option<U64>,
5352 #[serde(default, skip_serializing_if = "Option::is_none")]
5353 pub oldest_runnable_age: Option<U64>,
5354 #[serde(default, skip_serializing_if = "Option::is_none")]
5355 pub oldest_retry_wait_age: Option<U64>,
5356 #[serde(default, skip_serializing_if = "Option::is_none")]
5357 pub oldest_parked_age: Option<U64>,
5358 #[serde(default, skip_serializing_if = "Option::is_none")]
5359 pub oldest_no_progress_age: Option<U64>,
5360 pub current_action_capacity: u32,
5361 pub maximum_action_capacity: u32,
5362 pub active_passes: U64,
5363 pub local_in_flight: U64,
5364 pub deadline_draining: U64,
5365 pub cancellation_draining: U64,
5366 pub claim_recovery_pending: U64,
5367 pub projection_refresh_pending: bool,
5368 #[serde(default, skip_serializing_if = "Option::is_none")]
5369 pub durable_last_progress_at: Option<U64>,
5370 pub tasks_claimed_total: U64,
5371 pub tasks_progressed_total: U64,
5372 pub tasks_completed_total: U64,
5373 pub task_retries_total: U64,
5374 pub task_failures_total: U64,
5375 pub deadline_failures_total: U64,
5376 pub cancellations_total: U64,
5377 pub overlay_capacity_exhaustions_total: U64,
5378 pub failure_classes: Vec<MaintenanceFailureClassCount>,
5379}
5380
5381pub const LODESTONE_API_RUNTIME_STATUS_DETAIL_FORMAT_VERSION: u16 = 1;
5382#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5383#[serde(deny_unknown_fields)]
5384pub struct RuntimeStatusDetail {
5385 pub metastore_revision: U64,
5386 pub root_revision: U64,
5387 pub logical_time: U64,
5388 pub degraded_dependencies: Vec<String>,
5389}
5390
5391pub const LODESTONE_API_RESULT_CACHE_STATUS_SHAPE_VERSION: u16 = 2;
5392pub const LODESTONE_API_RESULT_CACHE_STATUS_FORMAT_VERSION: u16 = 3;
5393#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5394#[serde(deny_unknown_fields)]
5395pub struct ResultCacheStatus {
5396 pub format_version: u32,
5397 pub hits: U64,
5398 pub misses: U64,
5399 pub admissions: U64,
5400 pub bypasses: U64,
5401 pub evictions: U64,
5402 pub collection_bytes: U64,
5403 pub collection_entries: u32,
5404}
5405
5406pub const LODESTONE_API_FIELD_PROMOTION_STATUS_SHAPE_VERSION: u16 = 1;
5407pub const LODESTONE_API_FIELD_PROMOTION_STATUS_FORMAT_VERSION: u16 = 3;
5408#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5409#[serde(deny_unknown_fields)]
5410pub struct FieldPromotionStatus {
5411 pub format_version: u32,
5412 pub index: Resource,
5413 pub mapping_generation: U64,
5414 pub policy_generation: U64,
5415 #[serde(default, skip_serializing_if = "Option::is_none")]
5416 pub last_decision_generation: Option<U64>,
5417 pub heat_records: u32,
5418 pub promoted_fields: u32,
5419 pub extra_bytes: U64,
5420 pub enabled: bool,
5421}
5422
5423pub const LODESTONE_API_OVERLOAD_SHARD_STATUS_SHAPE_VERSION: u16 = 2;
5424pub const LODESTONE_API_OVERLOAD_SHARD_STATUS_FORMAT_VERSION: u16 = 3;
5425#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5426#[serde(deny_unknown_fields)]
5427pub struct OverloadShardStatus {
5428 pub format_version: u32,
5429 pub shard_id: u32,
5430 pub writer_epoch: U64,
5431 pub configured_mode: String,
5432 pub effective_disposition: String,
5433 pub registered_through: U64,
5434 pub indexed_through: U64,
5435 pub lag_operations: U64,
5436 pub backlog_bytes: U64,
5437 pub oldest_age_millis: U64,
5438 pub collection_share_bytes: U64,
5439 pub recovery_ops_this_pass: u32,
5440 pub pending_overlay_documents: U64,
5441 #[serde(default, skip_serializing_if = "Option::is_none")]
5442 pub shed_reason: Option<String>,
5443}
5444
5445pub const LODESTONE_API_EXTERNAL_KEY_BINDING_FORMAT_VERSION: u16 = 1;
5446#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5447#[serde(deny_unknown_fields)]
5448pub struct ExternalKeyBinding {
5449 pub content_key_id: Identity,
5450 pub content_key_generation: U64,
5451 pub binding_id: Identity,
5452 pub binding_generation: U64,
5453 pub access_generation: U64,
5454 pub opaque_binding_base64: String,
5455 pub object_context_digest: Digest,
5456}
5457
5458pub const LODESTONE_API_EXTERNAL_KEY_RETIREMENT_TARGET_FORMAT_VERSION: u16 = 1;
5459#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5460#[serde(deny_unknown_fields)]
5461pub struct ExternalKeyRetirementTarget {
5462 pub content_key_id: Identity,
5463 pub content_key_generation: U64,
5464 pub binding_id: Identity,
5465 pub binding_generation: U64,
5466 pub access_generation: U64,
5467 pub object_context_digest: Digest,
5468}
5469
5470pub const LODESTONE_API_EXTERNAL_KEY_RETIREMENT_OUTCOME_FORMAT_VERSION: u16 = 1;
5471#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5472#[serde(rename_all = "snake_case")]
5473pub enum ExternalKeyRetirementOutcome {
5474 Retired,
5475 AlreadyAbsent,
5476}
5477
5478pub const LODESTONE_API_EXTERNAL_KEY_RETIREMENT_RECEIPT_SHAPE_VERSION: u16 = 1;
5479pub const LODESTONE_API_EXTERNAL_KEY_RETIREMENT_RECEIPT_FORMAT_VERSION: u16 = 1;
5480#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5481#[serde(deny_unknown_fields)]
5482pub struct ExternalKeyRetirementReceipt {
5483 pub format_version: u32,
5484 pub action_id: Digest,
5485 pub index: Resource,
5486 pub target: ExternalKeyRetirementTarget,
5487 pub outcome: ExternalKeyRetirementOutcome,
5488 pub authority_revision: U64,
5489 pub authority_digest: Digest,
5490}
5491
5492pub const LODESTONE_API_EXTERNAL_KEY_RETIREMENT_RESOLUTION_STATE_FORMAT_VERSION: u16 = 1;
5493#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5494#[serde(rename_all = "snake_case")]
5495pub enum ExternalKeyRetirementResolutionState {
5496 NotSubmitted,
5497 Pending,
5498 Retired,
5499 AlreadyAbsent,
5500 KnownRetired,
5501 ExpiredUnknown,
5502}
5503
5504pub const LODESTONE_API_ROLLUP_MEASURE_FORMAT_VERSION: u16 = 1;
5505#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5506#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)]
5507pub enum RollupMeasure {
5508 Count,
5509 Sum { field_path_digest: Digest },
5510 Min { field_path_digest: Digest },
5511 Max { field_path_digest: Digest },
5512}
5513
5514pub const LODESTONE_API_AGGREGATE_THEN_DELETE_POLICY_FORMAT_VERSION: u16 = 1;
5515#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5516#[serde(deny_unknown_fields)]
5517pub struct AggregateThenDeletePolicy {
5518 pub policy_id: Identity,
5519 pub policy_generation: U64,
5520 pub detail_retirement_acknowledged: bool,
5521 #[serde(default, skip_serializing_if = "Option::is_none")]
5522 pub expected_policy_generation: Option<U64>,
5523 pub timestamp_field_digest: Digest,
5524 pub bucket_width_millis: U64,
5525 pub bucket_alignment_millis: U64,
5526 pub dimensions: Vec<Digest>,
5527 pub measures: Vec<RollupMeasure>,
5528}
5529
5530pub const LODESTONE_API_LIFECYCLE_BINDING_STATUS_FORMAT_VERSION: u16 = 1;
5531#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5532#[serde(deny_unknown_fields)]
5533pub struct LifecycleBindingStatus {
5534 pub content_key_id: Identity,
5535 pub content_key_generation: U64,
5536 pub binding_id: Identity,
5537 pub binding_generation: U64,
5538 pub access_generation: U64,
5539}
5540
5541pub const LODESTONE_API_LIFECYCLE_ROLLUP_STATUS_FORMAT_VERSION: u16 = 1;
5542#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5543#[serde(deny_unknown_fields)]
5544pub struct LifecycleRollupStatus {
5545 pub policy_id: Identity,
5546 pub policy_generation: U64,
5547 pub ledger_revision: U64,
5548 pub coverages: u32,
5549 pub raw_retired_coverages: u32,
5550 pub detail_retirement_acknowledged: bool,
5551 pub query_contract_version: u32,
5552 pub timestamp_field_digest: Digest,
5553 pub bucket_width_millis: U64,
5554 pub bucket_alignment_millis: U64,
5555 pub dimensions: Vec<Digest>,
5556 pub measures: Vec<RollupMeasure>,
5557}
5558
5559pub const LODESTONE_API_LIFECYCLE_STATUS_SHAPE_VERSION: u16 = 2;
5560pub const LODESTONE_API_LIFECYCLE_STATUS_FORMAT_VERSION: u16 = 4;
5561#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5562#[serde(deny_unknown_fields)]
5563pub struct LifecycleStatus {
5564 pub format_version: u32,
5565 pub index: Resource,
5566 pub authority_revision: U64,
5567 pub active_bindings: Vec<LifecycleBindingStatus>,
5568 #[serde(default, skip_serializing_if = "Option::is_none")]
5569 pub rollup: Option<LifecycleRollupStatus>,
5570}
5571
5572pub const LODESTONE_API_QUOTA_LIMIT_FORMAT_VERSION: u16 = 1;
5573#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5574#[serde(deny_unknown_fields)]
5575pub struct QuotaLimit {
5576 pub dimension: String,
5577 pub maximum: U64,
5578 pub window_millis: U64,
5579}
5580
5581pub const LODESTONE_API_QUOTA_CONSUMPTION_FORMAT_VERSION: u16 = 1;
5582#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5583#[serde(deny_unknown_fields)]
5584pub struct QuotaConsumption {
5585 pub dimension: String,
5586 pub consumed: U64,
5587 pub window_millis: U64,
5588}
5589
5590pub const LODESTONE_API_QUOTA_UPDATE_FORMAT_VERSION: u16 = 1;
5591#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5592#[serde(deny_unknown_fields)]
5593pub struct QuotaUpdate {
5594 pub revision: U64,
5595 pub state: String,
5596}
5597
5598pub const LODESTONE_API_STORAGE_OVERALL_POSTURE_FORMAT_VERSION: u16 = 1;
5599#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5600#[serde(rename_all = "snake_case")]
5601pub enum StorageOverallPosture {
5602 FilesystemDevelopment,
5603 ProviderObjectStorage,
5604 S3CompatibleDevelopment,
5605 Mixed,
5606}
5607
5608pub const LODESTONE_API_STORAGE_PROFILE_ROLE_FORMAT_VERSION: u16 = 1;
5609#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5610#[serde(rename_all = "snake_case")]
5611pub enum StorageProfileRole {
5612 Control,
5613 DefaultWal,
5614 DefaultData,
5615}
5616
5617pub const LODESTONE_API_STORAGE_PROVIDER_POSTURE_FORMAT_VERSION: u16 = 1;
5618#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5619#[serde(rename_all = "snake_case")]
5620pub enum StorageProviderPosture {
5621 Aws,
5622 GoogleCloudStorage,
5623 AzureBlob,
5624 S3CompatibleDevelopment,
5625 FilesystemDevelopment,
5626}
5627
5628pub const LODESTONE_API_STORAGE_BACKEND_SERVICE_CLASS_FORMAT_VERSION: u16 = 1;
5629#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5630#[serde(rename_all = "snake_case")]
5631pub enum StorageBackendServiceClass {
5632 RegionalObject,
5633 ZonalLowLatency,
5634}
5635
5636pub const LODESTONE_API_STORAGE_PROFILE_ROLE_BINDING_FORMAT_VERSION: u16 = 1;
5637#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5638#[serde(deny_unknown_fields)]
5639pub struct StorageProfileRoleBinding {
5640 pub role: StorageProfileRole,
5641 pub authority_group: u32,
5642 pub provider: StorageProviderPosture,
5643 pub service_class: StorageBackendServiceClass,
5644}
5645
5646pub const LODESTONE_API_STORAGE_PROFILE_ATTESTATION_SHAPE_VERSION: u16 = 1;
5647pub const LODESTONE_API_STORAGE_PROFILE_ATTESTATION_FORMAT_VERSION: u16 = 1;
5648#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5649#[serde(deny_unknown_fields)]
5650pub struct StorageProfileAttestation {
5651 pub format_version: u32,
5652 pub configuration_generation: U64,
5653 pub overall_posture: StorageOverallPosture,
5654 pub roles: Vec<StorageProfileRoleBinding>,
5655 pub default_durability: ResourceDurabilityClass,
5656 pub default_storage: ResourceStorageClass,
5657 pub default_policy_digest: Digest,
5658 pub storage_profile_digest: Digest,
5659 pub attestation_digest: Digest,
5660}
5661
5662pub const LODESTONE_API_STORAGE_PROFILE_EXPECTATION_SHAPE_VERSION: u16 = 1;
5663pub const LODESTONE_API_STORAGE_PROFILE_EXPECTATION_FORMAT_VERSION: u16 = 1;
5664#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5665#[serde(deny_unknown_fields)]
5666pub struct StorageProfileExpectation {
5667 pub format_version: u32,
5668 #[serde(default, skip_serializing_if = "Option::is_none")]
5669 pub required_posture: Option<StorageOverallPosture>,
5670 #[serde(default, skip_serializing_if = "Option::is_none")]
5671 pub expected_storage_profile_digest: Option<Digest>,
5672}
5673
5674pub const LODESTONE_API_CORE_BINDING_FORMAT_VERSION: u16 = 3;
5675#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5676#[serde(deny_unknown_fields)]
5677pub struct CoreBinding {
5678 pub cluster_id: Identity,
5679 pub collection_id: Identity,
5680 pub configuration_generation: U64,
5681 pub native_endpoints: Vec<String>,
5682 pub selected_stream_endpoint: String,
5683 pub schema_id: String,
5684 pub schema_digest: Digest,
5685 pub storage_profile: StorageProfileAttestation,
5686}
5687
5688pub const LODESTONE_API_READINESS_OBSERVATION_FORMAT_VERSION: u16 = 1;
5689#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5690#[serde(deny_unknown_fields)]
5691pub struct ReadinessObservation {
5692 pub subject: String,
5693 pub state: String,
5694 #[serde(default, skip_serializing_if = "Option::is_none")]
5695 pub reason: Option<String>,
5696 pub revision: U64,
5697 pub observed_cut: U64,
5698}
5699
5700pub const LODESTONE_API_USAGE_DIMENSION_FORMAT_VERSION: u16 = 1;
5701#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5702#[serde(deny_unknown_fields)]
5703pub struct UsageDimension {
5704 pub name: String,
5705 pub value: String,
5706}
5707
5708pub const LODESTONE_API_PHYSICAL_USAGE_VALUE_FORMAT_VERSION: u16 = 2;
5709#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5710#[serde(deny_unknown_fields)]
5711pub struct PhysicalUsageValue {
5712 pub meter: String,
5713 pub unit: String,
5714 pub value: ExactDecimal,
5715}
5716
5717pub const LODESTONE_API_CORE_USAGE_UNITS_FORMAT_VERSION: u16 = 2;
5718#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5719#[serde(deny_unknown_fields)]
5720pub struct CoreUsageUnits {
5721 pub sequence: U64,
5722 pub record_identity: Digest,
5723 pub index_id: Identity,
5724 pub workload_class: WorkloadClass,
5725 pub window_start: U64,
5726 pub window_end: U64,
5727 pub meter_set_version: u32,
5728 pub dimensions: Vec<UsageDimension>,
5729 pub values: Vec<PhysicalUsageValue>,
5730 pub authority_revision: U64,
5731 pub source_digest: Digest,
5732}
5733
5734pub const LODESTONE_API_CORE_USAGE_CORRECTION_FORMAT_VERSION: u16 = 2;
5735#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5736#[serde(deny_unknown_fields)]
5737pub struct CoreUsageCorrection {
5738 pub sequence: U64,
5739 pub correction_sequence: U64,
5740 pub correction_identity: Digest,
5741 pub target_record_identity: Digest,
5742 pub index_id: Identity,
5743 pub workload_class: WorkloadClass,
5744 pub window_start: U64,
5745 pub window_end: U64,
5746 pub meter_set_version: u32,
5747 pub dimensions: Vec<UsageDimension>,
5748 pub values: Vec<PhysicalUsageValue>,
5749 pub reason_digest: Digest,
5750 pub authority_revision: U64,
5751 pub source_digest: Digest,
5752}
5753
5754pub const LODESTONE_API_RESPONSE_META_SHAPE_VERSION: u16 = 1;
5755pub const LODESTONE_API_RESPONSE_META_FORMAT_VERSION: u16 = 1;
5756#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5757#[serde(deny_unknown_fields)]
5758pub struct ResponseMeta {
5759 pub format_version: u32,
5760 pub request_id: String,
5761 pub correlation_id: Identity,
5762 pub diagnostic_id: Identity,
5763}
5764
5765pub const LODESTONE_API_ERROR_DISPOSITION_FORMAT_VERSION: u16 = 1;
5766#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5767#[serde(rename_all = "snake_case")]
5768pub enum ErrorDisposition {
5769 NotSubmitted,
5770 Submitted,
5771 Resolved,
5772 KnownRetired,
5773 Indeterminate,
5774}
5775
5776pub const LODESTONE_API_RECOVERY_ACTION_FORMAT_VERSION: u16 = 1;
5777#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5778#[serde(rename_all = "snake_case")]
5779pub enum RecoveryAction {
5780 Retry,
5781 RetryAfter,
5782 RefreshCredential,
5783 RestartPage,
5784 ReduceRequest,
5785 Resolve,
5786 RefreshPrecondition,
5787 CorrectRange,
5788 Stop,
5789}
5790
5791pub const LODESTONE_API_LIMIT_CLASS_FORMAT_VERSION: u16 = 1;
5792#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
5793#[serde(rename_all = "snake_case")]
5794pub enum LimitClass {
5795 RequestBound,
5796 CollectionQuota,
5797 EngineSafety,
5798}
5799
5800pub const LODESTONE_API_ERROR_DETAIL_FORMAT_VERSION: u16 = 3;
5801#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5802#[serde(tag = "code", rename_all = "snake_case", deny_unknown_fields)]
5803pub enum ErrorDetail {
5804 Aborted {
5805 reason: String,
5806 },
5807 DeadlineExceeded,
5808 InvalidRequest {
5809 #[serde(default, skip_serializing_if = "Option::is_none")]
5810 field: Option<String>,
5811 reason: String,
5812 },
5813 UnsupportedVersion {
5814 observed: u32,
5815 maximum_supported: u32,
5816 },
5817 Unauthenticated,
5818 PermissionDenied {
5819 #[serde(default, skip_serializing_if = "Option::is_none")]
5820 action: Option<String>,
5821 #[serde(default, skip_serializing_if = "Option::is_none")]
5822 workload_class: Option<WorkloadClass>,
5823 },
5824 NotFound {
5825 #[serde(default, skip_serializing_if = "Option::is_none")]
5826 resource: Option<String>,
5827 },
5828 Conflict {
5829 #[serde(default, skip_serializing_if = "Option::is_none")]
5830 expected_revision: Option<U64>,
5831 #[serde(default, skip_serializing_if = "Option::is_none")]
5832 observed_revision: Option<U64>,
5833 },
5834 StaleCursor {
5835 restart_count: u32,
5836 },
5837 RestartBudgetExhausted {
5838 maximum_restarts: u32,
5839 },
5840 LimitExceeded {
5841 class: LimitClass,
5842 limit_id: String,
5843 maximum: U64,
5844 },
5845 CapabilityUnavailable {
5846 #[serde(default, skip_serializing_if = "Option::is_none")]
5847 capability: Option<String>,
5848 },
5849 NotSubmitted {
5850 #[serde(default, skip_serializing_if = "Option::is_none")]
5851 retry_after_millis: Option<U64>,
5852 },
5853 SubmittedIndeterminate {
5854 #[serde(default, skip_serializing_if = "Option::is_none")]
5855 locator: Option<Locator>,
5856 },
5857 ExpiredUnknown {
5858 #[serde(default, skip_serializing_if = "Option::is_none")]
5859 locator: Option<Locator>,
5860 },
5861 SecretNotEscrowed,
5862 RetentionGap {
5863 retired_through: U64,
5864 },
5865 ArtifactRangeInvalid {
5866 maximum_bytes: U64,
5867 },
5868 ChecksumMismatch {
5869 expected: Digest,
5870 observed: Digest,
5871 },
5872 TemporarilyUnavailable {
5873 #[serde(default, skip_serializing_if = "Option::is_none")]
5874 retry_after_millis: Option<U64>,
5875 },
5876 Internal,
5877}
5878
5879pub const LODESTONE_API_CONNECTION_PROFILE_SHAPE_VERSION: u16 = 4;
5880pub const LODESTONE_API_CONNECTION_PROFILE_FORMAT_VERSION: u16 = 4;
5881#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
5882#[serde(deny_unknown_fields)]
5883pub struct ConnectionProfile {
5884 pub format_version: u32,
5885 pub profile_generation: U64,
5886 pub native_endpoints: Vec<String>,
5887 pub selected_stream_endpoint: String,
5888 pub tls_server_name: String,
5889 pub tls_trust_sha256: Digest,
5890 pub expected_cluster_id: Identity,
5891 pub expected_collection_id: Identity,
5892 pub expected_principal_id: Identity,
5893 pub schema_id: String,
5894 pub schema_digest: Digest,
5895 pub credential_id: Identity,
5896 pub credential_generation: U64,
5897 #[serde(default, skip_serializing_if = "Option::is_none")]
5898 pub credential_expires_at: Option<U64>,
5899 pub secret_reference: String,
5900 #[serde(default, skip_serializing_if = "Option::is_none")]
5901 pub storage_profile_expectation: Option<StorageProfileExpectation>,
5902}
5903
5904#[derive(Clone, Copy, Debug, Eq, PartialEq)]
5905pub enum TypeKind {
5906 Enum,
5907 Struct,
5908 TaggedUnion,
5909}
5910#[derive(Clone, Copy, Debug, Eq, PartialEq)]
5911pub struct TypeContract {
5912 pub name: &'static str,
5913 pub shape_version: u16,
5914 pub instance_format_version: Option<u16>,
5915 pub kind: TypeKind,
5916 pub wire: bool,
5917}
5918pub const LODESTONE_API_TYPE_CONTRACTS: &[TypeContract] = &[
5919 TypeContract {
5920 name: "cursor",
5921 shape_version: 1,
5922 instance_format_version: None,
5923 kind: TypeKind::Struct,
5924 wire: true,
5925 },
5926 TypeContract {
5927 name: "locator",
5928 shape_version: 1,
5929 instance_format_version: None,
5930 kind: TypeKind::Struct,
5931 wire: true,
5932 },
5933 TypeContract {
5934 name: "resource",
5935 shape_version: 1,
5936 instance_format_version: None,
5937 kind: TypeKind::Struct,
5938 wire: true,
5939 },
5940 TypeContract {
5941 name: "read_cut_kind",
5942 shape_version: 1,
5943 instance_format_version: None,
5944 kind: TypeKind::Enum,
5945 wire: true,
5946 },
5947 TypeContract {
5948 name: "read_cut_index_evidence",
5949 shape_version: 1,
5950 instance_format_version: None,
5951 kind: TypeKind::Struct,
5952 wire: true,
5953 },
5954 TypeContract {
5955 name: "read_cut_evidence",
5956 shape_version: 1,
5957 instance_format_version: Some(1),
5958 kind: TypeKind::Struct,
5959 wire: true,
5960 },
5961 TypeContract {
5962 name: "table_snapshot_object_role",
5963 shape_version: 1,
5964 instance_format_version: None,
5965 kind: TypeKind::Enum,
5966 wire: true,
5967 },
5968 TypeContract {
5969 name: "table_snapshot_codec",
5970 shape_version: 1,
5971 instance_format_version: None,
5972 kind: TypeKind::Enum,
5973 wire: true,
5974 },
5975 TypeContract {
5976 name: "table_snapshot_object",
5977 shape_version: 1,
5978 instance_format_version: None,
5979 kind: TypeKind::Struct,
5980 wire: true,
5981 },
5982 TypeContract {
5983 name: "table_snapshot",
5984 shape_version: 1,
5985 instance_format_version: Some(1),
5986 kind: TypeKind::Struct,
5987 wire: true,
5988 },
5989 TypeContract {
5990 name: "table_snapshot_resolution_state",
5991 shape_version: 1,
5992 instance_format_version: None,
5993 kind: TypeKind::Enum,
5994 wire: true,
5995 },
5996 TypeContract {
5997 name: "table_snapshot_resolution",
5998 shape_version: 1,
5999 instance_format_version: None,
6000 kind: TypeKind::Struct,
6001 wire: true,
6002 },
6003 TypeContract {
6004 name: "table_snapshot_read",
6005 shape_version: 1,
6006 instance_format_version: None,
6007 kind: TypeKind::Struct,
6008 wire: true,
6009 },
6010 TypeContract {
6011 name: "logical_occupancy_counts",
6012 shape_version: 1,
6013 instance_format_version: None,
6014 kind: TypeKind::Struct,
6015 wire: true,
6016 },
6017 TypeContract {
6018 name: "logical_occupancy_gap_state",
6019 shape_version: 1,
6020 instance_format_version: None,
6021 kind: TypeKind::Enum,
6022 wire: true,
6023 },
6024 TypeContract {
6025 name: "logical_occupancy_snapshot_evidence",
6026 shape_version: 1,
6027 instance_format_version: Some(1),
6028 kind: TypeKind::Struct,
6029 wire: true,
6030 },
6031 TypeContract {
6032 name: "logical_occupancy_window_gap",
6033 shape_version: 1,
6034 instance_format_version: Some(1),
6035 kind: TypeKind::Struct,
6036 wire: true,
6037 },
6038 TypeContract {
6039 name: "field_promotion_configuration",
6040 shape_version: 1,
6041 instance_format_version: Some(3),
6042 kind: TypeKind::Struct,
6043 wire: true,
6044 },
6045 TypeContract {
6046 name: "overload_configuration",
6047 shape_version: 2,
6048 instance_format_version: Some(3),
6049 kind: TypeKind::Struct,
6050 wire: true,
6051 },
6052 TypeContract {
6053 name: "index_policies",
6054 shape_version: 1,
6055 instance_format_version: None,
6056 kind: TypeKind::Struct,
6057 wire: true,
6058 },
6059 TypeContract {
6060 name: "maintenance_budgets",
6061 shape_version: 1,
6062 instance_format_version: None,
6063 kind: TypeKind::Struct,
6064 wire: true,
6065 },
6066 TypeContract {
6067 name: "resource_durability_class",
6068 shape_version: 1,
6069 instance_format_version: None,
6070 kind: TypeKind::Enum,
6071 wire: true,
6072 },
6073 TypeContract {
6074 name: "resource_storage_class",
6075 shape_version: 1,
6076 instance_format_version: None,
6077 kind: TypeKind::Enum,
6078 wire: true,
6079 },
6080 TypeContract {
6081 name: "vector_quality_objective",
6082 shape_version: 1,
6083 instance_format_version: None,
6084 kind: TypeKind::Enum,
6085 wire: true,
6086 },
6087 TypeContract {
6088 name: "vector_indexing_objective",
6089 shape_version: 1,
6090 instance_format_version: None,
6091 kind: TypeKind::Enum,
6092 wire: true,
6093 },
6094 TypeContract {
6095 name: "vector_residency_intent",
6096 shape_version: 1,
6097 instance_format_version: None,
6098 kind: TypeKind::Enum,
6099 wire: true,
6100 },
6101 TypeContract {
6102 name: "vector_calibration_binding",
6103 shape_version: 1,
6104 instance_format_version: None,
6105 kind: TypeKind::Struct,
6106 wire: true,
6107 },
6108 TypeContract {
6109 name: "vector_resource_policy",
6110 shape_version: 2,
6111 instance_format_version: None,
6112 kind: TypeKind::Struct,
6113 wire: true,
6114 },
6115 TypeContract {
6116 name: "workload_class",
6117 shape_version: 1,
6118 instance_format_version: None,
6119 kind: TypeKind::Enum,
6120 wire: true,
6121 },
6122 TypeContract {
6123 name: "index_resource_spec",
6124 shape_version: 3,
6125 instance_format_version: Some(3),
6126 kind: TypeKind::Struct,
6127 wire: true,
6128 },
6129 TypeContract {
6130 name: "index_summary",
6131 shape_version: 1,
6132 instance_format_version: None,
6133 kind: TypeKind::Struct,
6134 wire: true,
6135 },
6136 TypeContract {
6137 name: "mapping_mode",
6138 shape_version: 1,
6139 instance_format_version: None,
6140 kind: TypeKind::Enum,
6141 wire: true,
6142 },
6143 TypeContract {
6144 name: "dynamic_mapping_policy",
6145 shape_version: 1,
6146 instance_format_version: None,
6147 kind: TypeKind::Enum,
6148 wire: true,
6149 },
6150 TypeContract {
6151 name: "mapping_analyzer",
6152 shape_version: 1,
6153 instance_format_version: None,
6154 kind: TypeKind::Enum,
6155 wire: true,
6156 },
6157 TypeContract {
6158 name: "keyword_normalizer",
6159 shape_version: 1,
6160 instance_format_version: None,
6161 kind: TypeKind::Enum,
6162 wire: true,
6163 },
6164 TypeContract {
6165 name: "vector_metric",
6166 shape_version: 1,
6167 instance_format_version: None,
6168 kind: TypeKind::Enum,
6169 wire: true,
6170 },
6171 TypeContract {
6172 name: "mapping_scalar",
6173 shape_version: 1,
6174 instance_format_version: None,
6175 kind: TypeKind::TaggedUnion,
6176 wire: true,
6177 },
6178 TypeContract {
6179 name: "sparse_vector_weight_type",
6180 shape_version: 1,
6181 instance_format_version: None,
6182 kind: TypeKind::Enum,
6183 wire: true,
6184 },
6185 TypeContract {
6186 name: "mapping_field_type",
6187 shape_version: 3,
6188 instance_format_version: None,
6189 kind: TypeKind::TaggedUnion,
6190 wire: true,
6191 },
6192 TypeContract {
6193 name: "mapping_field",
6194 shape_version: 1,
6195 instance_format_version: None,
6196 kind: TypeKind::Struct,
6197 wire: true,
6198 },
6199 TypeContract {
6200 name: "multi_field_projection",
6201 shape_version: 1,
6202 instance_format_version: None,
6203 kind: TypeKind::Struct,
6204 wire: true,
6205 },
6206 TypeContract {
6207 name: "analyzer_identity",
6208 shape_version: 1,
6209 instance_format_version: None,
6210 kind: TypeKind::Struct,
6211 wire: true,
6212 },
6213 TypeContract {
6214 name: "keyword_limit",
6215 shape_version: 1,
6216 instance_format_version: None,
6217 kind: TypeKind::Struct,
6218 wire: true,
6219 },
6220 TypeContract {
6221 name: "profile_privacy_action",
6222 shape_version: 1,
6223 instance_format_version: None,
6224 kind: TypeKind::Enum,
6225 wire: true,
6226 },
6227 TypeContract {
6228 name: "profile_privacy_field",
6229 shape_version: 1,
6230 instance_format_version: None,
6231 kind: TypeKind::TaggedUnion,
6232 wire: true,
6233 },
6234 TypeContract {
6235 name: "profile_privacy_rule",
6236 shape_version: 1,
6237 instance_format_version: None,
6238 kind: TypeKind::Struct,
6239 wire: true,
6240 },
6241 TypeContract {
6242 name: "profile_privacy_policy",
6243 shape_version: 1,
6244 instance_format_version: Some(1),
6245 kind: TypeKind::Struct,
6246 wire: true,
6247 },
6248 TypeContract {
6249 name: "mapping_record_model",
6250 shape_version: 3,
6251 instance_format_version: None,
6252 kind: TypeKind::TaggedUnion,
6253 wire: true,
6254 },
6255 TypeContract {
6256 name: "mapping",
6257 shape_version: 4,
6258 instance_format_version: Some(10),
6259 kind: TypeKind::Struct,
6260 wire: true,
6261 },
6262 TypeContract {
6263 name: "index_detail",
6264 shape_version: 1,
6265 instance_format_version: None,
6266 kind: TypeKind::Struct,
6267 wire: true,
6268 },
6269 TypeContract {
6270 name: "source_provider",
6271 shape_version: 1,
6272 instance_format_version: None,
6273 kind: TypeKind::Enum,
6274 wire: true,
6275 },
6276 TypeContract {
6277 name: "source_decoder",
6278 shape_version: 1,
6279 instance_format_version: None,
6280 kind: TypeKind::Enum,
6281 wire: true,
6282 },
6283 TypeContract {
6284 name: "source_replay_guarantees",
6285 shape_version: 1,
6286 instance_format_version: None,
6287 kind: TypeKind::Struct,
6288 wire: true,
6289 },
6290 TypeContract {
6291 name: "source_partition_configuration",
6292 shape_version: 1,
6293 instance_format_version: None,
6294 kind: TypeKind::Struct,
6295 wire: true,
6296 },
6297 TypeContract {
6298 name: "replayable_source_configuration",
6299 shape_version: 1,
6300 instance_format_version: None,
6301 kind: TypeKind::Struct,
6302 wire: true,
6303 },
6304 TypeContract {
6305 name: "source_partition_status",
6306 shape_version: 1,
6307 instance_format_version: None,
6308 kind: TypeKind::Struct,
6309 wire: true,
6310 },
6311 TypeContract {
6312 name: "replayable_source_status",
6313 shape_version: 1,
6314 instance_format_version: None,
6315 kind: TypeKind::Struct,
6316 wire: true,
6317 },
6318 TypeContract {
6319 name: "source_control_transition",
6320 shape_version: 1,
6321 instance_format_version: None,
6322 kind: TypeKind::Enum,
6323 wire: true,
6324 },
6325 TypeContract {
6326 name: "history_ledger_precondition",
6327 shape_version: 1,
6328 instance_format_version: None,
6329 kind: TypeKind::TaggedUnion,
6330 wire: true,
6331 },
6332 TypeContract {
6333 name: "history_retention_policy",
6334 shape_version: 1,
6335 instance_format_version: None,
6336 kind: TypeKind::Struct,
6337 wire: true,
6338 },
6339 TypeContract {
6340 name: "history_selector",
6341 shape_version: 1,
6342 instance_format_version: None,
6343 kind: TypeKind::TaggedUnion,
6344 wire: true,
6345 },
6346 TypeContract {
6347 name: "history_hold",
6348 shape_version: 1,
6349 instance_format_version: None,
6350 kind: TypeKind::Struct,
6351 wire: true,
6352 },
6353 TypeContract {
6354 name: "history_status",
6355 shape_version: 1,
6356 instance_format_version: None,
6357 kind: TypeKind::Struct,
6358 wire: true,
6359 },
6360 TypeContract {
6361 name: "history_resolution",
6362 shape_version: 1,
6363 instance_format_version: None,
6364 kind: TypeKind::Struct,
6365 wire: true,
6366 },
6367 TypeContract {
6368 name: "index_reference",
6369 shape_version: 1,
6370 instance_format_version: None,
6371 kind: TypeKind::Struct,
6372 wire: true,
6373 },
6374 TypeContract {
6375 name: "alias_target",
6376 shape_version: 1,
6377 instance_format_version: None,
6378 kind: TypeKind::Struct,
6379 wire: true,
6380 },
6381 TypeContract {
6382 name: "alias_summary",
6383 shape_version: 1,
6384 instance_format_version: None,
6385 kind: TypeKind::Struct,
6386 wire: true,
6387 },
6388 TypeContract {
6389 name: "alias_detail",
6390 shape_version: 1,
6391 instance_format_version: None,
6392 kind: TypeKind::Struct,
6393 wire: true,
6394 },
6395 TypeContract {
6396 name: "data_stream_summary",
6397 shape_version: 1,
6398 instance_format_version: None,
6399 kind: TypeKind::Struct,
6400 wire: true,
6401 },
6402 TypeContract {
6403 name: "component_template_binding",
6404 shape_version: 1,
6405 instance_format_version: None,
6406 kind: TypeKind::Struct,
6407 wire: true,
6408 },
6409 TypeContract {
6410 name: "index_template_binding",
6411 shape_version: 1,
6412 instance_format_version: None,
6413 kind: TypeKind::Struct,
6414 wire: true,
6415 },
6416 TypeContract {
6417 name: "lifecycle_policy_binding",
6418 shape_version: 1,
6419 instance_format_version: None,
6420 kind: TypeKind::Struct,
6421 wire: true,
6422 },
6423 TypeContract {
6424 name: "data_stream_detail",
6425 shape_version: 1,
6426 instance_format_version: None,
6427 kind: TypeKind::Struct,
6428 wire: true,
6429 },
6430 TypeContract {
6431 name: "component_template_summary",
6432 shape_version: 1,
6433 instance_format_version: None,
6434 kind: TypeKind::Struct,
6435 wire: true,
6436 },
6437 TypeContract {
6438 name: "component_template_detail",
6439 shape_version: 1,
6440 instance_format_version: None,
6441 kind: TypeKind::Struct,
6442 wire: true,
6443 },
6444 TypeContract {
6445 name: "index_template_summary",
6446 shape_version: 1,
6447 instance_format_version: None,
6448 kind: TypeKind::Struct,
6449 wire: true,
6450 },
6451 TypeContract {
6452 name: "index_template_detail",
6453 shape_version: 1,
6454 instance_format_version: None,
6455 kind: TypeKind::Struct,
6456 wire: true,
6457 },
6458 TypeContract {
6459 name: "ingest_pipeline_summary",
6460 shape_version: 1,
6461 instance_format_version: None,
6462 kind: TypeKind::Struct,
6463 wire: true,
6464 },
6465 TypeContract {
6466 name: "ingest_pipeline_detail",
6467 shape_version: 1,
6468 instance_format_version: None,
6469 kind: TypeKind::Struct,
6470 wire: true,
6471 },
6472 TypeContract {
6473 name: "ingest_pipeline_selection",
6474 shape_version: 1,
6475 instance_format_version: None,
6476 kind: TypeKind::Struct,
6477 wire: true,
6478 },
6479 TypeContract {
6480 name: "lifecycle_policy_summary",
6481 shape_version: 1,
6482 instance_format_version: None,
6483 kind: TypeKind::Struct,
6484 wire: true,
6485 },
6486 TypeContract {
6487 name: "rollover_thresholds",
6488 shape_version: 1,
6489 instance_format_version: None,
6490 kind: TypeKind::Struct,
6491 wire: true,
6492 },
6493 TypeContract {
6494 name: "retention_policy",
6495 shape_version: 1,
6496 instance_format_version: None,
6497 kind: TypeKind::Struct,
6498 wire: true,
6499 },
6500 TypeContract {
6501 name: "lifecycle_policy_detail",
6502 shape_version: 1,
6503 instance_format_version: None,
6504 kind: TypeKind::Struct,
6505 wire: true,
6506 },
6507 TypeContract {
6508 name: "text_query_operator",
6509 shape_version: 1,
6510 instance_format_version: None,
6511 kind: TypeKind::Enum,
6512 wire: true,
6513 },
6514 TypeContract {
6515 name: "text_query_analyzer",
6516 shape_version: 1,
6517 instance_format_version: None,
6518 kind: TypeKind::Enum,
6519 wire: true,
6520 },
6521 TypeContract {
6522 name: "zero_terms_query",
6523 shape_version: 1,
6524 instance_format_version: None,
6525 kind: TypeKind::Enum,
6526 wire: true,
6527 },
6528 TypeContract {
6529 name: "text_query_options",
6530 shape_version: 1,
6531 instance_format_version: None,
6532 kind: TypeKind::Struct,
6533 wire: true,
6534 },
6535 TypeContract {
6536 name: "multi_match_mode",
6537 shape_version: 1,
6538 instance_format_version: None,
6539 kind: TypeKind::Enum,
6540 wire: true,
6541 },
6542 TypeContract {
6543 name: "multi_match_field",
6544 shape_version: 1,
6545 instance_format_version: None,
6546 kind: TypeKind::Struct,
6547 wire: true,
6548 },
6549 TypeContract {
6550 name: "multi_match_options",
6551 shape_version: 1,
6552 instance_format_version: None,
6553 kind: TypeKind::Struct,
6554 wire: true,
6555 },
6556 TypeContract {
6557 name: "sort_order",
6558 shape_version: 1,
6559 instance_format_version: None,
6560 kind: TypeKind::Enum,
6561 wire: true,
6562 },
6563 TypeContract {
6564 name: "sort_mode",
6565 shape_version: 1,
6566 instance_format_version: None,
6567 kind: TypeKind::Enum,
6568 wire: true,
6569 },
6570 TypeContract {
6571 name: "missing_order",
6572 shape_version: 1,
6573 instance_format_version: None,
6574 kind: TypeKind::Enum,
6575 wire: true,
6576 },
6577 TypeContract {
6578 name: "nested_score_mode",
6579 shape_version: 1,
6580 instance_format_version: None,
6581 kind: TypeKind::Enum,
6582 wire: true,
6583 },
6584 TypeContract {
6585 name: "nested_inner_hits",
6586 shape_version: 1,
6587 instance_format_version: None,
6588 kind: TypeKind::Struct,
6589 wire: true,
6590 },
6591 TypeContract {
6592 name: "sort_spec",
6593 shape_version: 1,
6594 instance_format_version: None,
6595 kind: TypeKind::TaggedUnion,
6596 wire: true,
6597 },
6598 TypeContract {
6599 name: "query",
6600 shape_version: 1,
6601 instance_format_version: None,
6602 kind: TypeKind::TaggedUnion,
6603 wire: true,
6604 },
6605 TypeContract {
6606 name: "dense_retrieval_mode",
6607 shape_version: 1,
6608 instance_format_version: None,
6609 kind: TypeKind::Enum,
6610 wire: true,
6611 },
6612 TypeContract {
6613 name: "vector_achieved_mode",
6614 shape_version: 1,
6615 instance_format_version: None,
6616 kind: TypeKind::Enum,
6617 wire: true,
6618 },
6619 TypeContract {
6620 name: "vector_branch_diagnostics",
6621 shape_version: 2,
6622 instance_format_version: None,
6623 kind: TypeKind::Struct,
6624 wire: true,
6625 },
6626 TypeContract {
6627 name: "dense_vector_element_type",
6628 shape_version: 1,
6629 instance_format_version: None,
6630 kind: TypeKind::Enum,
6631 wire: true,
6632 },
6633 TypeContract {
6634 name: "dense_vector_byte_order",
6635 shape_version: 1,
6636 instance_format_version: None,
6637 kind: TypeKind::Enum,
6638 wire: true,
6639 },
6640 TypeContract {
6641 name: "vector_value",
6642 shape_version: 1,
6643 instance_format_version: None,
6644 kind: TypeKind::TaggedUnion,
6645 wire: true,
6646 },
6647 TypeContract {
6648 name: "sparse_vector_entry",
6649 shape_version: 1,
6650 instance_format_version: None,
6651 kind: TypeKind::Struct,
6652 wire: true,
6653 },
6654 TypeContract {
6655 name: "sparse_vector_value",
6656 shape_version: 1,
6657 instance_format_version: None,
6658 kind: TypeKind::Struct,
6659 wire: true,
6660 },
6661 TypeContract {
6662 name: "vector_set_value",
6663 shape_version: 1,
6664 instance_format_version: None,
6665 kind: TypeKind::Struct,
6666 wire: true,
6667 },
6668 TypeContract {
6669 name: "vector_evaluation_snapshot",
6670 shape_version: 1,
6671 instance_format_version: None,
6672 kind: TypeKind::TaggedUnion,
6673 wire: true,
6674 },
6675 TypeContract {
6676 name: "vector_evaluation_query_set",
6677 shape_version: 1,
6678 instance_format_version: None,
6679 kind: TypeKind::TaggedUnion,
6680 wire: true,
6681 },
6682 TypeContract {
6683 name: "vector_evaluation_budget",
6684 shape_version: 1,
6685 instance_format_version: None,
6686 kind: TypeKind::Struct,
6687 wire: true,
6688 },
6689 TypeContract {
6690 name: "vector_candidate_policy",
6691 shape_version: 1,
6692 instance_format_version: None,
6693 kind: TypeKind::Enum,
6694 wire: true,
6695 },
6696 TypeContract {
6697 name: "vector_calibration_objective",
6698 shape_version: 1,
6699 instance_format_version: None,
6700 kind: TypeKind::Enum,
6701 wire: true,
6702 },
6703 TypeContract {
6704 name: "vector_strategy_profile",
6705 shape_version: 1,
6706 instance_format_version: None,
6707 kind: TypeKind::Enum,
6708 wire: true,
6709 },
6710 TypeContract {
6711 name: "vector_evaluation_work",
6712 shape_version: 1,
6713 instance_format_version: None,
6714 kind: TypeKind::Struct,
6715 wire: true,
6716 },
6717 TypeContract {
6718 name: "vector_evaluation_error_code",
6719 shape_version: 1,
6720 instance_format_version: None,
6721 kind: TypeKind::Enum,
6722 wire: true,
6723 },
6724 TypeContract {
6725 name: "vector_evaluation_error",
6726 shape_version: 1,
6727 instance_format_version: None,
6728 kind: TypeKind::Struct,
6729 wire: true,
6730 },
6731 TypeContract {
6732 name: "vector_recall_result",
6733 shape_version: 1,
6734 instance_format_version: Some(1),
6735 kind: TypeKind::Struct,
6736 wire: true,
6737 },
6738 TypeContract {
6739 name: "vector_calibration_candidate",
6740 shape_version: 1,
6741 instance_format_version: None,
6742 kind: TypeKind::Struct,
6743 wire: true,
6744 },
6745 TypeContract {
6746 name: "vector_calibration_result",
6747 shape_version: 1,
6748 instance_format_version: Some(1),
6749 kind: TypeKind::Struct,
6750 wire: true,
6751 },
6752 TypeContract {
6753 name: "vector_diagnostic_result",
6754 shape_version: 1,
6755 instance_format_version: None,
6756 kind: TypeKind::TaggedUnion,
6757 wire: true,
6758 },
6759 TypeContract {
6760 name: "vector_warm_component",
6761 shape_version: 1,
6762 instance_format_version: None,
6763 kind: TypeKind::Enum,
6764 wire: true,
6765 },
6766 TypeContract {
6767 name: "vector_warm_state",
6768 shape_version: 1,
6769 instance_format_version: None,
6770 kind: TypeKind::Enum,
6771 wire: true,
6772 },
6773 TypeContract {
6774 name: "vector_warm_achievement",
6775 shape_version: 1,
6776 instance_format_version: None,
6777 kind: TypeKind::Struct,
6778 wire: true,
6779 },
6780 TypeContract {
6781 name: "vector_warm_result",
6782 shape_version: 1,
6783 instance_format_version: Some(1),
6784 kind: TypeKind::Struct,
6785 wire: true,
6786 },
6787 TypeContract {
6788 name: "dense_retrieval_threshold",
6789 shape_version: 1,
6790 instance_format_version: None,
6791 kind: TypeKind::TaggedUnion,
6792 wire: true,
6793 },
6794 TypeContract {
6795 name: "retrieval_branch",
6796 shape_version: 3,
6797 instance_format_version: None,
6798 kind: TypeKind::TaggedUnion,
6799 wire: true,
6800 },
6801 TypeContract {
6802 name: "weighted_rrf_fusion",
6803 shape_version: 1,
6804 instance_format_version: None,
6805 kind: TypeKind::Struct,
6806 wire: true,
6807 },
6808 TypeContract {
6809 name: "retrieval_plan",
6810 shape_version: 1,
6811 instance_format_version: Some(1),
6812 kind: TypeKind::Struct,
6813 wire: true,
6814 },
6815 TypeContract {
6816 name: "histogram_bounds",
6817 shape_version: 1,
6818 instance_format_version: None,
6819 kind: TypeKind::Struct,
6820 wire: true,
6821 },
6822 TypeContract {
6823 name: "date_histogram_bounds",
6824 shape_version: 1,
6825 instance_format_version: None,
6826 kind: TypeKind::Struct,
6827 wire: true,
6828 },
6829 TypeContract {
6830 name: "approximation_algorithm",
6831 shape_version: 1,
6832 instance_format_version: None,
6833 kind: TypeKind::Enum,
6834 wire: true,
6835 },
6836 TypeContract {
6837 name: "approximation",
6838 shape_version: 1,
6839 instance_format_version: None,
6840 kind: TypeKind::Struct,
6841 wire: true,
6842 },
6843 TypeContract {
6844 name: "percentile_value",
6845 shape_version: 1,
6846 instance_format_version: None,
6847 kind: TypeKind::Struct,
6848 wire: true,
6849 },
6850 TypeContract {
6851 name: "approximate_percentile_value",
6852 shape_version: 1,
6853 instance_format_version: None,
6854 kind: TypeKind::Struct,
6855 wire: true,
6856 },
6857 TypeContract {
6858 name: "time_series_operator",
6859 shape_version: 1,
6860 instance_format_version: None,
6861 kind: TypeKind::Enum,
6862 wire: true,
6863 },
6864 TypeContract {
6865 name: "time_series_missing_data",
6866 shape_version: 1,
6867 instance_format_version: None,
6868 kind: TypeKind::Enum,
6869 wire: true,
6870 },
6871 TypeContract {
6872 name: "time_series_quantile_mode",
6873 shape_version: 1,
6874 instance_format_version: None,
6875 kind: TypeKind::Enum,
6876 wire: true,
6877 },
6878 TypeContract {
6879 name: "time_series_bucket_state",
6880 shape_version: 1,
6881 instance_format_version: None,
6882 kind: TypeKind::Enum,
6883 wire: true,
6884 },
6885 TypeContract {
6886 name: "time_series_quantile_value",
6887 shape_version: 1,
6888 instance_format_version: None,
6889 kind: TypeKind::Struct,
6890 wire: true,
6891 },
6892 TypeContract {
6893 name: "time_series_value",
6894 shape_version: 1,
6895 instance_format_version: None,
6896 kind: TypeKind::TaggedUnion,
6897 wire: true,
6898 },
6899 TypeContract {
6900 name: "time_series_bucket",
6901 shape_version: 1,
6902 instance_format_version: None,
6903 kind: TypeKind::Struct,
6904 wire: true,
6905 },
6906 TypeContract {
6907 name: "relationship_traversal_direction",
6908 shape_version: 1,
6909 instance_format_version: None,
6910 kind: TypeKind::Enum,
6911 wire: true,
6912 },
6913 TypeContract {
6914 name: "relationship_traversal_filter",
6915 shape_version: 1,
6916 instance_format_version: None,
6917 kind: TypeKind::Struct,
6918 wire: true,
6919 },
6920 TypeContract {
6921 name: "relationship_traversal_budget",
6922 shape_version: 1,
6923 instance_format_version: None,
6924 kind: TypeKind::Struct,
6925 wire: true,
6926 },
6927 TypeContract {
6928 name: "traversed_relationship",
6929 shape_version: 1,
6930 instance_format_version: None,
6931 kind: TypeKind::Struct,
6932 wire: true,
6933 },
6934 TypeContract {
6935 name: "profile_query_operation",
6936 shape_version: 1,
6937 instance_format_version: None,
6938 kind: TypeKind::Enum,
6939 wire: true,
6940 },
6941 TypeContract {
6942 name: "profile_group_by",
6943 shape_version: 1,
6944 instance_format_version: None,
6945 kind: TypeKind::TaggedUnion,
6946 wire: true,
6947 },
6948 TypeContract {
6949 name: "profile_query_filter",
6950 shape_version: 1,
6951 instance_format_version: None,
6952 kind: TypeKind::Struct,
6953 wire: true,
6954 },
6955 TypeContract {
6956 name: "profile_query_budget",
6957 shape_version: 1,
6958 instance_format_version: None,
6959 kind: TypeKind::Struct,
6960 wire: true,
6961 },
6962 TypeContract {
6963 name: "profile_query_row",
6964 shape_version: 1,
6965 instance_format_version: None,
6966 kind: TypeKind::Struct,
6967 wire: true,
6968 },
6969 TypeContract {
6970 name: "temporal_input",
6971 shape_version: 1,
6972 instance_format_version: None,
6973 kind: TypeKind::Struct,
6974 wire: true,
6975 },
6976 TypeContract {
6977 name: "temporal_pattern",
6978 shape_version: 1,
6979 instance_format_version: None,
6980 kind: TypeKind::TaggedUnion,
6981 wire: true,
6982 },
6983 TypeContract {
6984 name: "historical_temporal_definition",
6985 shape_version: 1,
6986 instance_format_version: Some(1),
6987 kind: TypeKind::Struct,
6988 wire: true,
6989 },
6990 TypeContract {
6991 name: "temporal_evidence_status",
6992 shape_version: 2,
6993 instance_format_version: None,
6994 kind: TypeKind::Enum,
6995 wire: true,
6996 },
6997 TypeContract {
6998 name: "temporal_source_event",
6999 shape_version: 1,
7000 instance_format_version: None,
7001 kind: TypeKind::Struct,
7002 wire: true,
7003 },
7004 TypeContract {
7005 name: "temporal_evidence",
7006 shape_version: 2,
7007 instance_format_version: None,
7008 kind: TypeKind::Struct,
7009 wire: true,
7010 },
7011 TypeContract {
7012 name: "continuous_temporal_start",
7013 shape_version: 1,
7014 instance_format_version: None,
7015 kind: TypeKind::TaggedUnion,
7016 wire: true,
7017 },
7018 TypeContract {
7019 name: "continuous_temporal_watermark_policy",
7020 shape_version: 1,
7021 instance_format_version: None,
7022 kind: TypeKind::TaggedUnion,
7023 wire: true,
7024 },
7025 TypeContract {
7026 name: "continuous_temporal_late_data_policy",
7027 shape_version: 1,
7028 instance_format_version: None,
7029 kind: TypeKind::TaggedUnion,
7030 wire: true,
7031 },
7032 TypeContract {
7033 name: "continuous_temporal_output",
7034 shape_version: 1,
7035 instance_format_version: None,
7036 kind: TypeKind::TaggedUnion,
7037 wire: true,
7038 },
7039 TypeContract {
7040 name: "continuous_temporal_definition",
7041 shape_version: 1,
7042 instance_format_version: Some(1),
7043 kind: TypeKind::Struct,
7044 wire: true,
7045 },
7046 TypeContract {
7047 name: "continuous_temporal_frontier",
7048 shape_version: 1,
7049 instance_format_version: None,
7050 kind: TypeKind::Struct,
7051 wire: true,
7052 },
7053 TypeContract {
7054 name: "continuous_temporal_available_frontier",
7055 shape_version: 1,
7056 instance_format_version: None,
7057 kind: TypeKind::Struct,
7058 wire: true,
7059 },
7060 TypeContract {
7061 name: "continuous_temporal_gap_reason",
7062 shape_version: 1,
7063 instance_format_version: None,
7064 kind: TypeKind::Enum,
7065 wire: true,
7066 },
7067 TypeContract {
7068 name: "continuous_temporal_gap",
7069 shape_version: 1,
7070 instance_format_version: None,
7071 kind: TypeKind::Struct,
7072 wire: true,
7073 },
7074 TypeContract {
7075 name: "continuous_temporal_evaluation",
7076 shape_version: 1,
7077 instance_format_version: Some(1),
7078 kind: TypeKind::Struct,
7079 wire: true,
7080 },
7081 TypeContract {
7082 name: "composite_order",
7083 shape_version: 1,
7084 instance_format_version: None,
7085 kind: TypeKind::Enum,
7086 wire: true,
7087 },
7088 TypeContract {
7089 name: "composite_source",
7090 shape_version: 1,
7091 instance_format_version: None,
7092 kind: TypeKind::TaggedUnion,
7093 wire: true,
7094 },
7095 TypeContract {
7096 name: "aggregation",
7097 shape_version: 3,
7098 instance_format_version: None,
7099 kind: TypeKind::TaggedUnion,
7100 wire: true,
7101 },
7102 TypeContract {
7103 name: "nested_search_hit",
7104 shape_version: 2,
7105 instance_format_version: None,
7106 kind: TypeKind::Struct,
7107 wire: true,
7108 },
7109 TypeContract {
7110 name: "named_nested_inner_hits_result",
7111 shape_version: 1,
7112 instance_format_version: None,
7113 kind: TypeKind::Struct,
7114 wire: true,
7115 },
7116 TypeContract {
7117 name: "fragment_boundary",
7118 shape_version: 1,
7119 instance_format_version: None,
7120 kind: TypeKind::Enum,
7121 wire: true,
7122 },
7123 TypeContract {
7124 name: "fragment_offset_encoding",
7125 shape_version: 1,
7126 instance_format_version: None,
7127 kind: TypeKind::Enum,
7128 wire: true,
7129 },
7130 TypeContract {
7131 name: "fragment_ranker",
7132 shape_version: 1,
7133 instance_format_version: None,
7134 kind: TypeKind::Enum,
7135 wire: true,
7136 },
7137 TypeContract {
7138 name: "fragment_request",
7139 shape_version: 1,
7140 instance_format_version: None,
7141 kind: TypeKind::Struct,
7142 wire: true,
7143 },
7144 TypeContract {
7145 name: "search_fragment",
7146 shape_version: 1,
7147 instance_format_version: None,
7148 kind: TypeKind::Struct,
7149 wire: true,
7150 },
7151 TypeContract {
7152 name: "numeric_feature_transform",
7153 shape_version: 1,
7154 instance_format_version: None,
7155 kind: TypeKind::TaggedUnion,
7156 wire: true,
7157 },
7158 TypeContract {
7159 name: "numeric_result_feature",
7160 shape_version: 1,
7161 instance_format_version: None,
7162 kind: TypeKind::Struct,
7163 wire: true,
7164 },
7165 TypeContract {
7166 name: "result_feature_request",
7167 shape_version: 1,
7168 instance_format_version: None,
7169 kind: TypeKind::Struct,
7170 wire: true,
7171 },
7172 TypeContract {
7173 name: "result_diversification",
7174 shape_version: 1,
7175 instance_format_version: None,
7176 kind: TypeKind::Struct,
7177 wire: true,
7178 },
7179 TypeContract {
7180 name: "source_projection",
7181 shape_version: 1,
7182 instance_format_version: None,
7183 kind: TypeKind::TaggedUnion,
7184 wire: true,
7185 },
7186 TypeContract {
7187 name: "branch_score_kind",
7188 shape_version: 2,
7189 instance_format_version: None,
7190 kind: TypeKind::Enum,
7191 wire: true,
7192 },
7193 TypeContract {
7194 name: "result_feature",
7195 shape_version: 1,
7196 instance_format_version: None,
7197 kind: TypeKind::TaggedUnion,
7198 wire: true,
7199 },
7200 TypeContract {
7201 name: "search_hit",
7202 shape_version: 2,
7203 instance_format_version: None,
7204 kind: TypeKind::Struct,
7205 wire: true,
7206 },
7207 TypeContract {
7208 name: "aggregation_bucket",
7209 shape_version: 1,
7210 instance_format_version: None,
7211 kind: TypeKind::Struct,
7212 wire: true,
7213 },
7214 TypeContract {
7215 name: "aggregation_result",
7216 shape_version: 3,
7217 instance_format_version: None,
7218 kind: TypeKind::TaggedUnion,
7219 wire: true,
7220 },
7221 TypeContract {
7222 name: "shard_counts",
7223 shape_version: 1,
7224 instance_format_version: None,
7225 kind: TypeKind::Struct,
7226 wire: true,
7227 },
7228 TypeContract {
7229 name: "total_hits_relation",
7230 shape_version: 1,
7231 instance_format_version: None,
7232 kind: TypeKind::Enum,
7233 wire: true,
7234 },
7235 TypeContract {
7236 name: "search_total",
7237 shape_version: 1,
7238 instance_format_version: None,
7239 kind: TypeKind::Struct,
7240 wire: true,
7241 },
7242 TypeContract {
7243 name: "search_execution_freshness",
7244 shape_version: 1,
7245 instance_format_version: None,
7246 kind: TypeKind::Enum,
7247 wire: true,
7248 },
7249 TypeContract {
7250 name: "search_freshness",
7251 shape_version: 1,
7252 instance_format_version: None,
7253 kind: TypeKind::Enum,
7254 wire: true,
7255 },
7256 TypeContract {
7257 name: "search_degradation_reason",
7258 shape_version: 1,
7259 instance_format_version: None,
7260 kind: TypeKind::Enum,
7261 wire: true,
7262 },
7263 TypeContract {
7264 name: "search_achievement",
7265 shape_version: 1,
7266 instance_format_version: None,
7267 kind: TypeKind::Struct,
7268 wire: true,
7269 },
7270 TypeContract {
7271 name: "search_failure_stage",
7272 shape_version: 1,
7273 instance_format_version: None,
7274 kind: TypeKind::Enum,
7275 wire: true,
7276 },
7277 TypeContract {
7278 name: "search_failure_reason",
7279 shape_version: 1,
7280 instance_format_version: None,
7281 kind: TypeKind::Enum,
7282 wire: true,
7283 },
7284 TypeContract {
7285 name: "collection_shard",
7286 shape_version: 1,
7287 instance_format_version: None,
7288 kind: TypeKind::Struct,
7289 wire: true,
7290 },
7291 TypeContract {
7292 name: "search_partial_failure",
7293 shape_version: 1,
7294 instance_format_version: None,
7295 kind: TypeKind::Struct,
7296 wire: true,
7297 },
7298 TypeContract {
7299 name: "artifact",
7300 shape_version: 1,
7301 instance_format_version: None,
7302 kind: TypeKind::Struct,
7303 wire: true,
7304 },
7305 TypeContract {
7306 name: "portability_storage_capability",
7307 shape_version: 1,
7308 instance_format_version: None,
7309 kind: TypeKind::Struct,
7310 wire: true,
7311 },
7312 TypeContract {
7313 name: "collection_export_artifact",
7314 shape_version: 1,
7315 instance_format_version: None,
7316 kind: TypeKind::Struct,
7317 wire: true,
7318 },
7319 TypeContract {
7320 name: "collection_transfer_sequence",
7321 shape_version: 1,
7322 instance_format_version: None,
7323 kind: TypeKind::Struct,
7324 wire: true,
7325 },
7326 TypeContract {
7327 name: "collection_transfer_artifact",
7328 shape_version: 1,
7329 instance_format_version: None,
7330 kind: TypeKind::Struct,
7331 wire: true,
7332 },
7333 TypeContract {
7334 name: "portability_key_capability_reference_state",
7335 shape_version: 1,
7336 instance_format_version: None,
7337 kind: TypeKind::Enum,
7338 wire: true,
7339 },
7340 TypeContract {
7341 name: "collection_export_retirement",
7342 shape_version: 1,
7343 instance_format_version: None,
7344 kind: TypeKind::Struct,
7345 wire: true,
7346 },
7347 TypeContract {
7348 name: "index_transfer_page",
7349 shape_version: 1,
7350 instance_format_version: None,
7351 kind: TypeKind::Struct,
7352 wire: true,
7353 },
7354 TypeContract {
7355 name: "index_transfer_artifact",
7356 shape_version: 1,
7357 instance_format_version: None,
7358 kind: TypeKind::Struct,
7359 wire: true,
7360 },
7361 TypeContract {
7362 name: "search_validation_bound",
7363 shape_version: 1,
7364 instance_format_version: None,
7365 kind: TypeKind::TaggedUnion,
7366 wire: true,
7367 },
7368 TypeContract {
7369 name: "search_validation_estimates",
7370 shape_version: 1,
7371 instance_format_version: None,
7372 kind: TypeKind::Struct,
7373 wire: true,
7374 },
7375 TypeContract {
7376 name: "search_validation_limit",
7377 shape_version: 1,
7378 instance_format_version: None,
7379 kind: TypeKind::Struct,
7380 wire: true,
7381 },
7382 TypeContract {
7383 name: "operation_kind",
7384 shape_version: 4,
7385 instance_format_version: None,
7386 kind: TypeKind::Enum,
7387 wire: true,
7388 },
7389 TypeContract {
7390 name: "operation_authority",
7391 shape_version: 1,
7392 instance_format_version: None,
7393 kind: TypeKind::Enum,
7394 wire: true,
7395 },
7396 TypeContract {
7397 name: "operation_target",
7398 shape_version: 1,
7399 instance_format_version: None,
7400 kind: TypeKind::TaggedUnion,
7401 wire: true,
7402 },
7403 TypeContract {
7404 name: "operation_state",
7405 shape_version: 1,
7406 instance_format_version: None,
7407 kind: TypeKind::Enum,
7408 wire: true,
7409 },
7410 TypeContract {
7411 name: "operation_pending_state",
7412 shape_version: 1,
7413 instance_format_version: None,
7414 kind: TypeKind::Enum,
7415 wire: true,
7416 },
7417 TypeContract {
7418 name: "operation_progress_unit",
7419 shape_version: 1,
7420 instance_format_version: None,
7421 kind: TypeKind::Enum,
7422 wire: true,
7423 },
7424 TypeContract {
7425 name: "operation_progress",
7426 shape_version: 1,
7427 instance_format_version: None,
7428 kind: TypeKind::Struct,
7429 wire: true,
7430 },
7431 TypeContract {
7432 name: "operation_result",
7433 shape_version: 1,
7434 instance_format_version: None,
7435 kind: TypeKind::TaggedUnion,
7436 wire: true,
7437 },
7438 TypeContract {
7439 name: "operation_failure",
7440 shape_version: 1,
7441 instance_format_version: None,
7442 kind: TypeKind::Struct,
7443 wire: true,
7444 },
7445 TypeContract {
7446 name: "operation_cancellation",
7447 shape_version: 1,
7448 instance_format_version: None,
7449 kind: TypeKind::Enum,
7450 wire: true,
7451 },
7452 TypeContract {
7453 name: "operation_retention_state",
7454 shape_version: 1,
7455 instance_format_version: None,
7456 kind: TypeKind::Enum,
7457 wire: true,
7458 },
7459 TypeContract {
7460 name: "operation_retention",
7461 shape_version: 1,
7462 instance_format_version: None,
7463 kind: TypeKind::Struct,
7464 wire: true,
7465 },
7466 TypeContract {
7467 name: "operation",
7468 shape_version: 2,
7469 instance_format_version: None,
7470 kind: TypeKind::Struct,
7471 wire: true,
7472 },
7473 TypeContract {
7474 name: "write_durability_boundary",
7475 shape_version: 1,
7476 instance_format_version: None,
7477 kind: TypeKind::Enum,
7478 wire: true,
7479 },
7480 TypeContract {
7481 name: "write_visibility_mode",
7482 shape_version: 1,
7483 instance_format_version: None,
7484 kind: TypeKind::Enum,
7485 wire: true,
7486 },
7487 TypeContract {
7488 name: "write_response_stage",
7489 shape_version: 1,
7490 instance_format_version: None,
7491 kind: TypeKind::Enum,
7492 wire: true,
7493 },
7494 TypeContract {
7495 name: "write_achievement",
7496 shape_version: 1,
7497 instance_format_version: None,
7498 kind: TypeKind::Struct,
7499 wire: true,
7500 },
7501 TypeContract {
7502 name: "mutation_commit_position",
7503 shape_version: 1,
7504 instance_format_version: None,
7505 kind: TypeKind::Struct,
7506 wire: true,
7507 },
7508 TypeContract {
7509 name: "mutation_commit_receipt",
7510 shape_version: 1,
7511 instance_format_version: Some(1),
7512 kind: TypeKind::Struct,
7513 wire: true,
7514 },
7515 TypeContract {
7516 name: "mutation_resolver",
7517 shape_version: 2,
7518 instance_format_version: None,
7519 kind: TypeKind::Enum,
7520 wire: true,
7521 },
7522 TypeContract {
7523 name: "mutation_outcome",
7524 shape_version: 1,
7525 instance_format_version: None,
7526 kind: TypeKind::TaggedUnion,
7527 wire: true,
7528 },
7529 TypeContract {
7530 name: "submission_state",
7531 shape_version: 1,
7532 instance_format_version: None,
7533 kind: TypeKind::Enum,
7534 wire: true,
7535 },
7536 TypeContract {
7537 name: "expected_binding",
7538 shape_version: 1,
7539 instance_format_version: None,
7540 kind: TypeKind::Struct,
7541 wire: true,
7542 },
7543 TypeContract {
7544 name: "administration_alias_action",
7545 shape_version: 1,
7546 instance_format_version: None,
7547 kind: TypeKind::TaggedUnion,
7548 wire: true,
7549 },
7550 TypeContract {
7551 name: "administration_mutation",
7552 shape_version: 2,
7553 instance_format_version: None,
7554 kind: TypeKind::TaggedUnion,
7555 wire: true,
7556 },
7557 TypeContract {
7558 name: "administration_outcome",
7559 shape_version: 1,
7560 instance_format_version: None,
7561 kind: TypeKind::Struct,
7562 wire: true,
7563 },
7564 TypeContract {
7565 name: "index_change_apply_receipt",
7566 shape_version: 1,
7567 instance_format_version: None,
7568 kind: TypeKind::Struct,
7569 wire: true,
7570 },
7571 TypeContract {
7572 name: "index_change_resolution_state",
7573 shape_version: 1,
7574 instance_format_version: None,
7575 kind: TypeKind::Enum,
7576 wire: true,
7577 },
7578 TypeContract {
7579 name: "bulk_document_item",
7580 shape_version: 2,
7581 instance_format_version: None,
7582 kind: TypeKind::Struct,
7583 wire: true,
7584 },
7585 TypeContract {
7586 name: "bulk_document_item_outcome",
7587 shape_version: 1,
7588 instance_format_version: None,
7589 kind: TypeKind::Struct,
7590 wire: true,
7591 },
7592 TypeContract {
7593 name: "bulk_document_outcome",
7594 shape_version: 1,
7595 instance_format_version: None,
7596 kind: TypeKind::Struct,
7597 wire: true,
7598 },
7599 TypeContract {
7600 name: "metric_attribute_value",
7601 shape_version: 1,
7602 instance_format_version: None,
7603 kind: TypeKind::TaggedUnion,
7604 wire: true,
7605 },
7606 TypeContract {
7607 name: "metric_attribute",
7608 shape_version: 1,
7609 instance_format_version: None,
7610 kind: TypeKind::Struct,
7611 wire: true,
7612 },
7613 TypeContract {
7614 name: "metric_number",
7615 shape_version: 1,
7616 instance_format_version: None,
7617 kind: TypeKind::TaggedUnion,
7618 wire: true,
7619 },
7620 TypeContract {
7621 name: "metric_temporality",
7622 shape_version: 1,
7623 instance_format_version: None,
7624 kind: TypeKind::Enum,
7625 wire: true,
7626 },
7627 TypeContract {
7628 name: "metric_point_kind",
7629 shape_version: 1,
7630 instance_format_version: None,
7631 kind: TypeKind::Enum,
7632 wire: true,
7633 },
7634 TypeContract {
7635 name: "metric_exponential_buckets",
7636 shape_version: 1,
7637 instance_format_version: None,
7638 kind: TypeKind::Struct,
7639 wire: true,
7640 },
7641 TypeContract {
7642 name: "metric_data",
7643 shape_version: 1,
7644 instance_format_version: None,
7645 kind: TypeKind::TaggedUnion,
7646 wire: true,
7647 },
7648 TypeContract {
7649 name: "metric_instrumentation_scope",
7650 shape_version: 1,
7651 instance_format_version: None,
7652 kind: TypeKind::Struct,
7653 wire: true,
7654 },
7655 TypeContract {
7656 name: "metric_exemplar",
7657 shape_version: 1,
7658 instance_format_version: None,
7659 kind: TypeKind::Struct,
7660 wire: true,
7661 },
7662 TypeContract {
7663 name: "metric_point",
7664 shape_version: 1,
7665 instance_format_version: Some(1),
7666 kind: TypeKind::Struct,
7667 wire: true,
7668 },
7669 TypeContract {
7670 name: "entity_ref",
7671 shape_version: 1,
7672 instance_format_version: None,
7673 kind: TypeKind::Struct,
7674 wire: true,
7675 },
7676 TypeContract {
7677 name: "relationship_evidence_ref",
7678 shape_version: 1,
7679 instance_format_version: None,
7680 kind: TypeKind::Struct,
7681 wire: true,
7682 },
7683 TypeContract {
7684 name: "relationship_directionality",
7685 shape_version: 1,
7686 instance_format_version: None,
7687 kind: TypeKind::Enum,
7688 wire: true,
7689 },
7690 TypeContract {
7691 name: "relationship_record",
7692 shape_version: 1,
7693 instance_format_version: Some(1),
7694 kind: TypeKind::Struct,
7695 wire: true,
7696 },
7697 TypeContract {
7698 name: "profile_label",
7699 shape_version: 1,
7700 instance_format_version: None,
7701 kind: TypeKind::Struct,
7702 wire: true,
7703 },
7704 TypeContract {
7705 name: "profile_sample_type",
7706 shape_version: 1,
7707 instance_format_version: None,
7708 kind: TypeKind::Struct,
7709 wire: true,
7710 },
7711 TypeContract {
7712 name: "profile_mapping",
7713 shape_version: 1,
7714 instance_format_version: None,
7715 kind: TypeKind::Struct,
7716 wire: true,
7717 },
7718 TypeContract {
7719 name: "profile_function",
7720 shape_version: 1,
7721 instance_format_version: None,
7722 kind: TypeKind::Struct,
7723 wire: true,
7724 },
7725 TypeContract {
7726 name: "profile_line",
7727 shape_version: 1,
7728 instance_format_version: None,
7729 kind: TypeKind::Struct,
7730 wire: true,
7731 },
7732 TypeContract {
7733 name: "profile_location",
7734 shape_version: 1,
7735 instance_format_version: None,
7736 kind: TypeKind::Struct,
7737 wire: true,
7738 },
7739 TypeContract {
7740 name: "profile_stack",
7741 shape_version: 1,
7742 instance_format_version: None,
7743 kind: TypeKind::Struct,
7744 wire: true,
7745 },
7746 TypeContract {
7747 name: "profile_sample",
7748 shape_version: 1,
7749 instance_format_version: None,
7750 kind: TypeKind::Struct,
7751 wire: true,
7752 },
7753 TypeContract {
7754 name: "profile_instrumentation_scope",
7755 shape_version: 1,
7756 instance_format_version: None,
7757 kind: TypeKind::Struct,
7758 wire: true,
7759 },
7760 TypeContract {
7761 name: "profile_batch",
7762 shape_version: 1,
7763 instance_format_version: Some(1),
7764 kind: TypeKind::Struct,
7765 wire: true,
7766 },
7767 TypeContract {
7768 name: "native_record",
7769 shape_version: 3,
7770 instance_format_version: None,
7771 kind: TypeKind::TaggedUnion,
7772 wire: true,
7773 },
7774 TypeContract {
7775 name: "retained_append_item",
7776 shape_version: 4,
7777 instance_format_version: None,
7778 kind: TypeKind::Struct,
7779 wire: true,
7780 },
7781 TypeContract {
7782 name: "retained_append_state",
7783 shape_version: 1,
7784 instance_format_version: None,
7785 kind: TypeKind::Enum,
7786 wire: true,
7787 },
7788 TypeContract {
7789 name: "retained_append_retry_safety",
7790 shape_version: 1,
7791 instance_format_version: None,
7792 kind: TypeKind::Enum,
7793 wire: true,
7794 },
7795 TypeContract {
7796 name: "retained_append_item_outcome",
7797 shape_version: 1,
7798 instance_format_version: None,
7799 kind: TypeKind::Struct,
7800 wire: true,
7801 },
7802 TypeContract {
7803 name: "retained_append_bulk_outcome",
7804 shape_version: 1,
7805 instance_format_version: None,
7806 kind: TypeKind::Struct,
7807 wire: true,
7808 },
7809 TypeContract {
7810 name: "retained_append_observation_state",
7811 shape_version: 1,
7812 instance_format_version: None,
7813 kind: TypeKind::Enum,
7814 wire: true,
7815 },
7816 TypeContract {
7817 name: "retained_append_observation_outcome",
7818 shape_version: 1,
7819 instance_format_version: None,
7820 kind: TypeKind::Struct,
7821 wire: true,
7822 },
7823 TypeContract {
7824 name: "binary_value",
7825 shape_version: 1,
7826 instance_format_version: None,
7827 kind: TypeKind::Struct,
7828 wire: true,
7829 },
7830 TypeContract {
7831 name: "state_hash_field",
7832 shape_version: 1,
7833 instance_format_version: None,
7834 kind: TypeKind::Struct,
7835 wire: true,
7836 },
7837 TypeContract {
7838 name: "state_set_entry",
7839 shape_version: 1,
7840 instance_format_version: None,
7841 kind: TypeKind::Struct,
7842 wire: true,
7843 },
7844 TypeContract {
7845 name: "state_set_condition",
7846 shape_version: 1,
7847 instance_format_version: None,
7848 kind: TypeKind::Enum,
7849 wire: true,
7850 },
7851 TypeContract {
7852 name: "state_operation",
7853 shape_version: 1,
7854 instance_format_version: None,
7855 kind: TypeKind::TaggedUnion,
7856 wire: true,
7857 },
7858 TypeContract {
7859 name: "state_optional_value",
7860 shape_version: 1,
7861 instance_format_version: None,
7862 kind: TypeKind::TaggedUnion,
7863 wire: true,
7864 },
7865 TypeContract {
7866 name: "state_command_result",
7867 shape_version: 1,
7868 instance_format_version: None,
7869 kind: TypeKind::TaggedUnion,
7870 wire: true,
7871 },
7872 TypeContract {
7873 name: "state_write_resolution",
7874 shape_version: 1,
7875 instance_format_version: None,
7876 kind: TypeKind::TaggedUnion,
7877 wire: true,
7878 },
7879 TypeContract {
7880 name: "service_credential_reservation",
7881 shape_version: 1,
7882 instance_format_version: None,
7883 kind: TypeKind::Struct,
7884 wire: true,
7885 },
7886 TypeContract {
7887 name: "subscription_metadata_field",
7888 shape_version: 1,
7889 instance_format_version: None,
7890 kind: TypeKind::Enum,
7891 wire: true,
7892 },
7893 TypeContract {
7894 name: "subscription_field",
7895 shape_version: 1,
7896 instance_format_version: None,
7897 kind: TypeKind::TaggedUnion,
7898 wire: true,
7899 },
7900 TypeContract {
7901 name: "subscription_filter",
7902 shape_version: 1,
7903 instance_format_version: None,
7904 kind: TypeKind::TaggedUnion,
7905 wire: true,
7906 },
7907 TypeContract {
7908 name: "subscription_cursor_entry",
7909 shape_version: 1,
7910 instance_format_version: None,
7911 kind: TypeKind::Struct,
7912 wire: true,
7913 },
7914 TypeContract {
7915 name: "subscription_route",
7916 shape_version: 1,
7917 instance_format_version: None,
7918 kind: TypeKind::Struct,
7919 wire: true,
7920 },
7921 TypeContract {
7922 name: "subscription_start_position",
7923 shape_version: 1,
7924 instance_format_version: None,
7925 kind: TypeKind::TaggedUnion,
7926 wire: true,
7927 },
7928 TypeContract {
7929 name: "subscription_start",
7930 shape_version: 1,
7931 instance_format_version: Some(1),
7932 kind: TypeKind::Struct,
7933 wire: true,
7934 },
7935 TypeContract {
7936 name: "subscription_accepted",
7937 shape_version: 1,
7938 instance_format_version: Some(1),
7939 kind: TypeKind::Struct,
7940 wire: true,
7941 },
7942 TypeContract {
7943 name: "subscription_writer_fence",
7944 shape_version: 1,
7945 instance_format_version: None,
7946 kind: TypeKind::Struct,
7947 wire: true,
7948 },
7949 TypeContract {
7950 name: "subscription_event",
7951 shape_version: 1,
7952 instance_format_version: Some(1),
7953 kind: TypeKind::Struct,
7954 wire: true,
7955 },
7956 TypeContract {
7957 name: "subscription_heartbeat",
7958 shape_version: 1,
7959 instance_format_version: Some(1),
7960 kind: TypeKind::Struct,
7961 wire: true,
7962 },
7963 TypeContract {
7964 name: "subscription_gap",
7965 shape_version: 1,
7966 instance_format_version: Some(1),
7967 kind: TypeKind::Struct,
7968 wire: true,
7969 },
7970 TypeContract {
7971 name: "subscription_terminal_reason",
7972 shape_version: 1,
7973 instance_format_version: None,
7974 kind: TypeKind::Enum,
7975 wire: true,
7976 },
7977 TypeContract {
7978 name: "subscription_terminal",
7979 shape_version: 2,
7980 instance_format_version: Some(2),
7981 kind: TypeKind::Struct,
7982 wire: true,
7983 },
7984 TypeContract {
7985 name: "subscription_frame",
7986 shape_version: 1,
7987 instance_format_version: None,
7988 kind: TypeKind::TaggedUnion,
7989 wire: true,
7990 },
7991 TypeContract {
7992 name: "stream_binding",
7993 shape_version: 1,
7994 instance_format_version: None,
7995 kind: TypeKind::Struct,
7996 wire: true,
7997 },
7998 TypeContract {
7999 name: "capability_grant",
8000 shape_version: 1,
8001 instance_format_version: None,
8002 kind: TypeKind::Struct,
8003 wire: true,
8004 },
8005 TypeContract {
8006 name: "protocol_limit",
8007 shape_version: 1,
8008 instance_format_version: None,
8009 kind: TypeKind::Struct,
8010 wire: true,
8011 },
8012 TypeContract {
8013 name: "document_mutation_condition",
8014 shape_version: 1,
8015 instance_format_version: None,
8016 kind: TypeKind::TaggedUnion,
8017 wire: true,
8018 },
8019 TypeContract {
8020 name: "audit_adapter",
8021 shape_version: 1,
8022 instance_format_version: None,
8023 kind: TypeKind::Enum,
8024 wire: true,
8025 },
8026 TypeContract {
8027 name: "audit_decision",
8028 shape_version: 1,
8029 instance_format_version: None,
8030 kind: TypeKind::Enum,
8031 wire: true,
8032 },
8033 TypeContract {
8034 name: "audit_outcome",
8035 shape_version: 1,
8036 instance_format_version: None,
8037 kind: TypeKind::Enum,
8038 wire: true,
8039 },
8040 TypeContract {
8041 name: "audit_detail",
8042 shape_version: 1,
8043 instance_format_version: None,
8044 kind: TypeKind::Enum,
8045 wire: true,
8046 },
8047 TypeContract {
8048 name: "audit_gap_reason",
8049 shape_version: 1,
8050 instance_format_version: None,
8051 kind: TypeKind::Enum,
8052 wire: true,
8053 },
8054 TypeContract {
8055 name: "audit_event",
8056 shape_version: 2,
8057 instance_format_version: None,
8058 kind: TypeKind::Struct,
8059 wire: true,
8060 },
8061 TypeContract {
8062 name: "audit_gap",
8063 shape_version: 2,
8064 instance_format_version: None,
8065 kind: TypeKind::Struct,
8066 wire: true,
8067 },
8068 TypeContract {
8069 name: "audit_stream_state",
8070 shape_version: 1,
8071 instance_format_version: None,
8072 kind: TypeKind::Struct,
8073 wire: true,
8074 },
8075 TypeContract {
8076 name: "service_credential_grant",
8077 shape_version: 1,
8078 instance_format_version: None,
8079 kind: TypeKind::Struct,
8080 wire: true,
8081 },
8082 TypeContract {
8083 name: "service_credential_summary",
8084 shape_version: 1,
8085 instance_format_version: None,
8086 kind: TypeKind::Struct,
8087 wire: true,
8088 },
8089 TypeContract {
8090 name: "security_role",
8091 shape_version: 2,
8092 instance_format_version: None,
8093 kind: TypeKind::Struct,
8094 wire: true,
8095 },
8096 TypeContract {
8097 name: "role_append_scope_change",
8098 shape_version: 1,
8099 instance_format_version: None,
8100 kind: TypeKind::TaggedUnion,
8101 wire: true,
8102 },
8103 TypeContract {
8104 name: "role_append_access_preparation",
8105 shape_version: 1,
8106 instance_format_version: None,
8107 kind: TypeKind::TaggedUnion,
8108 wire: true,
8109 },
8110 TypeContract {
8111 name: "source_authorization_subject_kind",
8112 shape_version: 1,
8113 instance_format_version: None,
8114 kind: TypeKind::Enum,
8115 wire: true,
8116 },
8117 TypeContract {
8118 name: "source_authorization_subject",
8119 shape_version: 1,
8120 instance_format_version: None,
8121 kind: TypeKind::Struct,
8122 wire: true,
8123 },
8124 TypeContract {
8125 name: "delegated_query_source_subject",
8126 shape_version: 1,
8127 instance_format_version: None,
8128 kind: TypeKind::Struct,
8129 wire: true,
8130 },
8131 TypeContract {
8132 name: "delegated_query_subject_claims",
8133 shape_version: 1,
8134 instance_format_version: Some(1),
8135 kind: TypeKind::Struct,
8136 wire: true,
8137 },
8138 TypeContract {
8139 name: "signed_delegated_query_subject",
8140 shape_version: 1,
8141 instance_format_version: None,
8142 kind: TypeKind::Struct,
8143 wire: true,
8144 },
8145 TypeContract {
8146 name: "source_authorization_principal_change",
8147 shape_version: 1,
8148 instance_format_version: None,
8149 kind: TypeKind::TaggedUnion,
8150 wire: true,
8151 },
8152 TypeContract {
8153 name: "source_authorization_group_change",
8154 shape_version: 1,
8155 instance_format_version: None,
8156 kind: TypeKind::TaggedUnion,
8157 wire: true,
8158 },
8159 TypeContract {
8160 name: "source_authorization_membership_replacement",
8161 shape_version: 1,
8162 instance_format_version: None,
8163 kind: TypeKind::Struct,
8164 wire: true,
8165 },
8166 TypeContract {
8167 name: "source_authorization_document_acl_replacement",
8168 shape_version: 1,
8169 instance_format_version: None,
8170 kind: TypeKind::Struct,
8171 wire: true,
8172 },
8173 TypeContract {
8174 name: "source_authorization_batch",
8175 shape_version: 1,
8176 instance_format_version: Some(1),
8177 kind: TypeKind::Struct,
8178 wire: true,
8179 },
8180 TypeContract {
8181 name: "source_authorization_applied_counts",
8182 shape_version: 1,
8183 instance_format_version: None,
8184 kind: TypeKind::Struct,
8185 wire: true,
8186 },
8187 TypeContract {
8188 name: "source_authorization_receipt",
8189 shape_version: 1,
8190 instance_format_version: Some(1),
8191 kind: TypeKind::Struct,
8192 wire: true,
8193 },
8194 TypeContract {
8195 name: "source_authorization_preparation",
8196 shape_version: 1,
8197 instance_format_version: None,
8198 kind: TypeKind::Struct,
8199 wire: true,
8200 },
8201 TypeContract {
8202 name: "source_authorization_resolution_state",
8203 shape_version: 1,
8204 instance_format_version: None,
8205 kind: TypeKind::Enum,
8206 wire: true,
8207 },
8208 TypeContract {
8209 name: "source_authorization_resolution",
8210 shape_version: 1,
8211 instance_format_version: None,
8212 kind: TypeKind::Struct,
8213 wire: true,
8214 },
8215 TypeContract {
8216 name: "security_action_outcome",
8217 shape_version: 1,
8218 instance_format_version: None,
8219 kind: TypeKind::TaggedUnion,
8220 wire: true,
8221 },
8222 TypeContract {
8223 name: "maintenance_work_state",
8224 shape_version: 1,
8225 instance_format_version: None,
8226 kind: TypeKind::Enum,
8227 wire: true,
8228 },
8229 TypeContract {
8230 name: "maintenance_attempt_state",
8231 shape_version: 1,
8232 instance_format_version: None,
8233 kind: TypeKind::Enum,
8234 wire: true,
8235 },
8236 TypeContract {
8237 name: "maintenance_failure_class",
8238 shape_version: 1,
8239 instance_format_version: None,
8240 kind: TypeKind::Enum,
8241 wire: true,
8242 },
8243 TypeContract {
8244 name: "maintenance_failure_class_count",
8245 shape_version: 1,
8246 instance_format_version: None,
8247 kind: TypeKind::Struct,
8248 wire: true,
8249 },
8250 TypeContract {
8251 name: "maintenance_attempt_observation",
8252 shape_version: 1,
8253 instance_format_version: None,
8254 kind: TypeKind::Struct,
8255 wire: true,
8256 },
8257 TypeContract {
8258 name: "maintenance_task_scope",
8259 shape_version: 1,
8260 instance_format_version: None,
8261 kind: TypeKind::Struct,
8262 wire: true,
8263 },
8264 TypeContract {
8265 name: "maintenance_task_status",
8266 shape_version: 1,
8267 instance_format_version: None,
8268 kind: TypeKind::Struct,
8269 wire: true,
8270 },
8271 TypeContract {
8272 name: "maintenance_status_aggregate",
8273 shape_version: 1,
8274 instance_format_version: Some(2),
8275 kind: TypeKind::Struct,
8276 wire: true,
8277 },
8278 TypeContract {
8279 name: "runtime_status_detail",
8280 shape_version: 1,
8281 instance_format_version: None,
8282 kind: TypeKind::Struct,
8283 wire: true,
8284 },
8285 TypeContract {
8286 name: "result_cache_status",
8287 shape_version: 2,
8288 instance_format_version: Some(3),
8289 kind: TypeKind::Struct,
8290 wire: true,
8291 },
8292 TypeContract {
8293 name: "field_promotion_status",
8294 shape_version: 1,
8295 instance_format_version: Some(3),
8296 kind: TypeKind::Struct,
8297 wire: true,
8298 },
8299 TypeContract {
8300 name: "overload_shard_status",
8301 shape_version: 2,
8302 instance_format_version: Some(3),
8303 kind: TypeKind::Struct,
8304 wire: true,
8305 },
8306 TypeContract {
8307 name: "external_key_binding",
8308 shape_version: 1,
8309 instance_format_version: None,
8310 kind: TypeKind::Struct,
8311 wire: true,
8312 },
8313 TypeContract {
8314 name: "external_key_retirement_target",
8315 shape_version: 1,
8316 instance_format_version: None,
8317 kind: TypeKind::Struct,
8318 wire: true,
8319 },
8320 TypeContract {
8321 name: "external_key_retirement_outcome",
8322 shape_version: 1,
8323 instance_format_version: None,
8324 kind: TypeKind::Enum,
8325 wire: true,
8326 },
8327 TypeContract {
8328 name: "external_key_retirement_receipt",
8329 shape_version: 1,
8330 instance_format_version: Some(1),
8331 kind: TypeKind::Struct,
8332 wire: true,
8333 },
8334 TypeContract {
8335 name: "external_key_retirement_resolution_state",
8336 shape_version: 1,
8337 instance_format_version: None,
8338 kind: TypeKind::Enum,
8339 wire: true,
8340 },
8341 TypeContract {
8342 name: "rollup_measure",
8343 shape_version: 1,
8344 instance_format_version: None,
8345 kind: TypeKind::TaggedUnion,
8346 wire: true,
8347 },
8348 TypeContract {
8349 name: "aggregate_then_delete_policy",
8350 shape_version: 1,
8351 instance_format_version: None,
8352 kind: TypeKind::Struct,
8353 wire: true,
8354 },
8355 TypeContract {
8356 name: "lifecycle_binding_status",
8357 shape_version: 1,
8358 instance_format_version: None,
8359 kind: TypeKind::Struct,
8360 wire: true,
8361 },
8362 TypeContract {
8363 name: "lifecycle_rollup_status",
8364 shape_version: 1,
8365 instance_format_version: None,
8366 kind: TypeKind::Struct,
8367 wire: true,
8368 },
8369 TypeContract {
8370 name: "lifecycle_status",
8371 shape_version: 2,
8372 instance_format_version: Some(4),
8373 kind: TypeKind::Struct,
8374 wire: true,
8375 },
8376 TypeContract {
8377 name: "quota_limit",
8378 shape_version: 1,
8379 instance_format_version: None,
8380 kind: TypeKind::Struct,
8381 wire: true,
8382 },
8383 TypeContract {
8384 name: "quota_consumption",
8385 shape_version: 1,
8386 instance_format_version: None,
8387 kind: TypeKind::Struct,
8388 wire: true,
8389 },
8390 TypeContract {
8391 name: "quota_update",
8392 shape_version: 1,
8393 instance_format_version: None,
8394 kind: TypeKind::Struct,
8395 wire: true,
8396 },
8397 TypeContract {
8398 name: "storage_overall_posture",
8399 shape_version: 1,
8400 instance_format_version: None,
8401 kind: TypeKind::Enum,
8402 wire: true,
8403 },
8404 TypeContract {
8405 name: "storage_profile_role",
8406 shape_version: 1,
8407 instance_format_version: None,
8408 kind: TypeKind::Enum,
8409 wire: true,
8410 },
8411 TypeContract {
8412 name: "storage_provider_posture",
8413 shape_version: 1,
8414 instance_format_version: None,
8415 kind: TypeKind::Enum,
8416 wire: true,
8417 },
8418 TypeContract {
8419 name: "storage_backend_service_class",
8420 shape_version: 1,
8421 instance_format_version: None,
8422 kind: TypeKind::Enum,
8423 wire: true,
8424 },
8425 TypeContract {
8426 name: "storage_profile_role_binding",
8427 shape_version: 1,
8428 instance_format_version: None,
8429 kind: TypeKind::Struct,
8430 wire: true,
8431 },
8432 TypeContract {
8433 name: "storage_profile_attestation",
8434 shape_version: 1,
8435 instance_format_version: Some(1),
8436 kind: TypeKind::Struct,
8437 wire: true,
8438 },
8439 TypeContract {
8440 name: "storage_profile_expectation",
8441 shape_version: 1,
8442 instance_format_version: Some(1),
8443 kind: TypeKind::Struct,
8444 wire: true,
8445 },
8446 TypeContract {
8447 name: "core_binding",
8448 shape_version: 3,
8449 instance_format_version: None,
8450 kind: TypeKind::Struct,
8451 wire: true,
8452 },
8453 TypeContract {
8454 name: "readiness_observation",
8455 shape_version: 1,
8456 instance_format_version: None,
8457 kind: TypeKind::Struct,
8458 wire: true,
8459 },
8460 TypeContract {
8461 name: "usage_dimension",
8462 shape_version: 1,
8463 instance_format_version: None,
8464 kind: TypeKind::Struct,
8465 wire: true,
8466 },
8467 TypeContract {
8468 name: "physical_usage_value",
8469 shape_version: 2,
8470 instance_format_version: None,
8471 kind: TypeKind::Struct,
8472 wire: true,
8473 },
8474 TypeContract {
8475 name: "core_usage_units",
8476 shape_version: 2,
8477 instance_format_version: None,
8478 kind: TypeKind::Struct,
8479 wire: true,
8480 },
8481 TypeContract {
8482 name: "core_usage_correction",
8483 shape_version: 2,
8484 instance_format_version: None,
8485 kind: TypeKind::Struct,
8486 wire: true,
8487 },
8488 TypeContract {
8489 name: "response_meta",
8490 shape_version: 1,
8491 instance_format_version: Some(1),
8492 kind: TypeKind::Struct,
8493 wire: true,
8494 },
8495 TypeContract {
8496 name: "error_disposition",
8497 shape_version: 1,
8498 instance_format_version: None,
8499 kind: TypeKind::Enum,
8500 wire: true,
8501 },
8502 TypeContract {
8503 name: "recovery_action",
8504 shape_version: 1,
8505 instance_format_version: None,
8506 kind: TypeKind::Enum,
8507 wire: true,
8508 },
8509 TypeContract {
8510 name: "limit_class",
8511 shape_version: 1,
8512 instance_format_version: None,
8513 kind: TypeKind::Enum,
8514 wire: true,
8515 },
8516 TypeContract {
8517 name: "error_detail",
8518 shape_version: 3,
8519 instance_format_version: None,
8520 kind: TypeKind::TaggedUnion,
8521 wire: true,
8522 },
8523 TypeContract {
8524 name: "connection_profile",
8525 shape_version: 4,
8526 instance_format_version: Some(4),
8527 kind: TypeKind::Struct,
8528 wire: false,
8529 },
8530];
8531#[derive(Clone, Copy, Debug, Eq, PartialEq)]
8532pub struct StreamContract {
8533 pub name: &'static str,
8534 pub action: Action,
8535 pub transport: &'static str,
8536 pub service: &'static str,
8537 pub method: &'static str,
8538 pub auth_metadata: &'static str,
8539 pub auth_scheme: &'static str,
8540 pub semantic_format_version: u16,
8541 pub start_type: &'static str,
8542 pub frame_type: &'static str,
8543}
8544pub const LODESTONE_API_STREAM_CONTRACTS: &[StreamContract] = &[StreamContract {
8545 name: "subscription",
8546 action: Action::SubscriptionRead,
8547 transport: "grpc_tls",
8548 service: "lodestone.api.FilterSubscription",
8549 method: "/lodestone.api.FilterSubscription/Subscribe",
8550 auth_metadata: "authorization",
8551 auth_scheme: "ApiKey",
8552 semantic_format_version: 1,
8553 start_type: "subscription_start",
8554 frame_type: "subscription_frame",
8555}];
8556#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8557#[serde(deny_unknown_fields)]
8558pub struct ErrorBody {
8559 pub code: ErrorCode,
8560 pub message: String,
8561 pub disposition: ErrorDisposition,
8562 pub recovery: RecoveryAction,
8563 pub details: ErrorDetail,
8564}
8565#[derive(Clone, Copy, Debug, Eq, PartialEq)]
8566pub enum ErrorShapeError {
8567 DetailCodeMismatch,
8568 OutcomeMismatch,
8569 RetryAfterOutOfRange,
8570}
8571impl ErrorBody {
8572 pub fn try_new(
8573 code: ErrorCode,
8574 message: String,
8575 disposition: ErrorDisposition,
8576 recovery: RecoveryAction,
8577 details: ErrorDetail,
8578 ) -> Result<Self, ErrorShapeError> {
8579 let body = Self {
8580 code,
8581 message,
8582 disposition,
8583 recovery,
8584 details,
8585 };
8586 validate_error_body(&body)?;
8587 Ok(body)
8588 }
8589 pub fn retry_safe(&self) -> bool {
8590 self.disposition == ErrorDisposition::NotSubmitted
8591 && matches!(
8592 self.recovery,
8593 RecoveryAction::Retry
8594 | RecoveryAction::RetryAfter
8595 | RecoveryAction::RefreshCredential
8596 | RecoveryAction::RestartPage
8597 | RecoveryAction::ReduceRequest
8598 | RecoveryAction::RefreshPrecondition
8599 | RecoveryAction::CorrectRange
8600 )
8601 }
8602 pub fn submitted(&self) -> bool {
8603 self.disposition != ErrorDisposition::NotSubmitted
8604 }
8605}
8606pub fn validate_error_body(body: &ErrorBody) -> Result<(), ErrorShapeError> {
8607 let detail_matches = matches!(
8608 (&body.code, &body.details),
8609 (ErrorCode::Aborted, ErrorDetail::Aborted { .. })
8610 | (ErrorCode::DeadlineExceeded, ErrorDetail::DeadlineExceeded)
8611 | (ErrorCode::InvalidRequest, ErrorDetail::InvalidRequest { .. })
8612 | (ErrorCode::UnsupportedVersion, ErrorDetail::UnsupportedVersion { .. })
8613 | (ErrorCode::Unauthenticated, ErrorDetail::Unauthenticated)
8614 | (ErrorCode::PermissionDenied, ErrorDetail::PermissionDenied { .. })
8615 | (ErrorCode::NotFound, ErrorDetail::NotFound { .. })
8616 | (ErrorCode::Conflict, ErrorDetail::Conflict { .. })
8617 | (ErrorCode::StaleCursor, ErrorDetail::StaleCursor { .. })
8618 | (
8619 ErrorCode::RestartBudgetExhausted,
8620 ErrorDetail::RestartBudgetExhausted { .. }
8621 )
8622 | (ErrorCode::LimitExceeded, ErrorDetail::LimitExceeded { .. })
8623 | (
8624 ErrorCode::CapabilityUnavailable,
8625 ErrorDetail::CapabilityUnavailable { .. }
8626 )
8627 | (ErrorCode::NotSubmitted, ErrorDetail::NotSubmitted { .. })
8628 | (
8629 ErrorCode::SubmittedIndeterminate,
8630 ErrorDetail::SubmittedIndeterminate { .. }
8631 )
8632 | (ErrorCode::ExpiredUnknown, ErrorDetail::ExpiredUnknown { .. })
8633 | (ErrorCode::SecretNotEscrowed, ErrorDetail::SecretNotEscrowed)
8634 | (ErrorCode::RetentionGap, ErrorDetail::RetentionGap { .. })
8635 | (
8636 ErrorCode::ArtifactRangeInvalid,
8637 ErrorDetail::ArtifactRangeInvalid { .. }
8638 )
8639 | (ErrorCode::ChecksumMismatch, ErrorDetail::ChecksumMismatch { .. })
8640 | (
8641 ErrorCode::TemporarilyUnavailable,
8642 ErrorDetail::TemporarilyUnavailable { .. }
8643 )
8644 | (ErrorCode::Internal, ErrorDetail::Internal)
8645 );
8646 if !detail_matches {
8647 return Err(ErrorShapeError::DetailCodeMismatch);
8648 }
8649 if !LODESTONE_API_ERROR_OUTCOMES.iter().any(|contract| {
8650 contract.code == body.code && contract.disposition == body.disposition && contract.recovery == body.recovery
8651 }) {
8652 return Err(ErrorShapeError::OutcomeMismatch);
8653 }
8654 let retry_after = match &body.details {
8655 ErrorDetail::NotSubmitted { retry_after_millis }
8656 | ErrorDetail::TemporarilyUnavailable { retry_after_millis } => retry_after_millis.as_ref(),
8657 _ => None,
8658 };
8659 if retry_after
8660 .and_then(|value| value.value.parse::<u64>().ok())
8661 .is_some_and(|value| value > 60000)
8662 {
8663 return Err(ErrorShapeError::RetryAfterOutOfRange);
8664 }
8665 Ok(())
8666}
8667#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
8668#[serde(deny_unknown_fields)]
8669pub struct RequestMeta {
8670 pub format_version: u16,
8671 pub request_id: String,
8672 pub correlation_id: Identity,
8673 pub absolute_deadline_unix_millis: U64,
8674 pub workload_class: WorkloadClass,
8675}
8676
8677#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8678#[serde(deny_unknown_fields)]
8679pub struct DiscoverRequest {}
8680
8681#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8682#[serde(deny_unknown_fields)]
8683pub struct DiscoverResult {
8684 pub principal_id: Identity,
8685 pub collection_id: Identity,
8686 pub policy_revision: U64,
8687 pub artifact_version: String,
8688 pub schema_id: String,
8689 pub schema_digest: Digest,
8690 pub streams: Vec<StreamBinding>,
8691 pub capabilities: Vec<CapabilityGrant>,
8692 pub limits: Vec<ProtocolLimit>,
8693}
8694
8695#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8696#[serde(deny_unknown_fields)]
8697pub struct ListIndexesRequest {
8698 pub page_size: u32,
8699 #[serde(default, skip_serializing_if = "Option::is_none")]
8700 pub cursor: Option<Cursor>,
8701 #[serde(default, skip_serializing_if = "Option::is_none")]
8702 pub name_prefix: Option<String>,
8703 #[serde(default, skip_serializing_if = "Option::is_none")]
8704 pub mode: Option<String>,
8705 #[serde(default, skip_serializing_if = "Option::is_none")]
8706 pub state: Option<String>,
8707 pub restart_count: u32,
8708}
8709
8710#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8711#[serde(deny_unknown_fields)]
8712pub struct ListIndexesResult {
8713 pub items: Vec<IndexSummary>,
8714 #[serde(default, skip_serializing_if = "Option::is_none")]
8715 pub next_cursor: Option<Cursor>,
8716 pub restart_count: u32,
8717}
8718
8719#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8720#[serde(deny_unknown_fields)]
8721pub struct GetIndexRequest {
8722 pub name: String,
8723 #[serde(default, skip_serializing_if = "Option::is_none")]
8724 pub expected_incarnation: Option<Identity>,
8725}
8726
8727#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8728#[serde(deny_unknown_fields)]
8729pub struct GetIndexResult {
8730 pub resource: IndexDetail,
8731}
8732
8733#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8734#[serde(deny_unknown_fields)]
8735pub struct ValidateIndexChangeRequest {
8736 pub action_kind: String,
8737 pub name: String,
8738 #[serde(default, skip_serializing_if = "Option::is_none")]
8739 pub expected_incarnation: Option<Identity>,
8740 #[serde(default, skip_serializing_if = "Option::is_none")]
8741 pub expected_revision: Option<U64>,
8742 #[serde(default, skip_serializing_if = "Option::is_none")]
8743 pub mode: Option<String>,
8744 #[serde(default, skip_serializing_if = "Option::is_none")]
8745 pub mapping: Option<Mapping>,
8746 #[serde(default, skip_serializing_if = "Option::is_none")]
8747 pub policies: Option<IndexPolicies>,
8748}
8749
8750#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8751#[serde(deny_unknown_fields)]
8752pub struct ValidateIndexChangeResult {
8753 pub change_kind: String,
8754 #[serde(default, skip_serializing_if = "Option::is_none")]
8755 pub action_id: Option<Digest>,
8756 pub fields_added: Vec<String>,
8757 pub policy_axes_changed: Vec<String>,
8758 pub required_capabilities: Vec<String>,
8759 pub catalog_revision: U64,
8760 pub policy_revision: U64,
8761}
8762
8763#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8764#[serde(deny_unknown_fields)]
8765pub struct ApplyIndexChangeRequest {
8766 pub action_id: Digest,
8767 pub index: Resource,
8768 pub expected_revision: U64,
8769 #[serde(default, skip_serializing_if = "Option::is_none")]
8770 pub mapping: Option<Mapping>,
8771 #[serde(default, skip_serializing_if = "Option::is_none")]
8772 pub policies: Option<IndexPolicies>,
8773}
8774
8775#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8776#[serde(deny_unknown_fields)]
8777pub struct ApplyIndexChangeResult {
8778 pub receipt: IndexChangeApplyReceipt,
8779}
8780
8781#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8782#[serde(deny_unknown_fields)]
8783pub struct ResolveIndexChangeRequest {
8784 pub action_id: Digest,
8785 pub index: Resource,
8786 pub expected_revision: U64,
8787 #[serde(default, skip_serializing_if = "Option::is_none")]
8788 pub mapping: Option<Mapping>,
8789 #[serde(default, skip_serializing_if = "Option::is_none")]
8790 pub policies: Option<IndexPolicies>,
8791}
8792
8793#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8794#[serde(deny_unknown_fields)]
8795pub struct ResolveIndexChangeResult {
8796 pub state: IndexChangeResolutionState,
8797 #[serde(default, skip_serializing_if = "Option::is_none")]
8798 pub receipt: Option<IndexChangeApplyReceipt>,
8799 #[serde(default, skip_serializing_if = "Option::is_none")]
8800 pub failure: Option<String>,
8801}
8802
8803#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8804#[serde(deny_unknown_fields)]
8805pub struct ApplyAdministrationMutationRequest {
8806 pub action_id: Digest,
8807 pub expected_revision: U64,
8808 pub mutation: AdministrationMutation,
8809}
8810
8811#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8812#[serde(deny_unknown_fields)]
8813pub struct ApplyAdministrationMutationResult {
8814 pub outcome: AdministrationOutcome,
8815}
8816
8817#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8818#[serde(deny_unknown_fields)]
8819pub struct ListAliasesRequest {
8820 pub page_size: u32,
8821 #[serde(default, skip_serializing_if = "Option::is_none")]
8822 pub cursor: Option<Cursor>,
8823 #[serde(default, skip_serializing_if = "Option::is_none")]
8824 pub name_prefix: Option<String>,
8825 pub restart_count: u32,
8826}
8827
8828#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8829#[serde(deny_unknown_fields)]
8830pub struct ListAliasesResult {
8831 pub items: Vec<AliasSummary>,
8832 #[serde(default, skip_serializing_if = "Option::is_none")]
8833 pub next_cursor: Option<Cursor>,
8834 pub restart_count: u32,
8835}
8836
8837#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8838#[serde(deny_unknown_fields)]
8839pub struct GetAliasRequest {
8840 pub name: String,
8841}
8842
8843#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8844#[serde(deny_unknown_fields)]
8845pub struct GetAliasResult {
8846 pub resource: AliasDetail,
8847}
8848
8849#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8850#[serde(deny_unknown_fields)]
8851pub struct ListDataStreamsRequest {
8852 pub page_size: u32,
8853 #[serde(default, skip_serializing_if = "Option::is_none")]
8854 pub cursor: Option<Cursor>,
8855 #[serde(default, skip_serializing_if = "Option::is_none")]
8856 pub name_prefix: Option<String>,
8857 pub restart_count: u32,
8858}
8859
8860#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8861#[serde(deny_unknown_fields)]
8862pub struct ListDataStreamsResult {
8863 pub items: Vec<DataStreamSummary>,
8864 #[serde(default, skip_serializing_if = "Option::is_none")]
8865 pub next_cursor: Option<Cursor>,
8866 pub restart_count: u32,
8867}
8868
8869#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8870#[serde(deny_unknown_fields)]
8871pub struct GetDataStreamRequest {
8872 pub name: String,
8873}
8874
8875#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8876#[serde(deny_unknown_fields)]
8877pub struct GetDataStreamResult {
8878 pub resource: DataStreamDetail,
8879}
8880
8881#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8882#[serde(deny_unknown_fields)]
8883pub struct ListComponentTemplatesRequest {
8884 pub page_size: u32,
8885 #[serde(default, skip_serializing_if = "Option::is_none")]
8886 pub cursor: Option<Cursor>,
8887 #[serde(default, skip_serializing_if = "Option::is_none")]
8888 pub name_prefix: Option<String>,
8889 pub restart_count: u32,
8890}
8891
8892#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8893#[serde(deny_unknown_fields)]
8894pub struct ListComponentTemplatesResult {
8895 pub items: Vec<ComponentTemplateSummary>,
8896 #[serde(default, skip_serializing_if = "Option::is_none")]
8897 pub next_cursor: Option<Cursor>,
8898 pub restart_count: u32,
8899}
8900
8901#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8902#[serde(deny_unknown_fields)]
8903pub struct GetComponentTemplateRequest {
8904 pub name: String,
8905 #[serde(default, skip_serializing_if = "Option::is_none")]
8906 pub expected_incarnation: Option<Identity>,
8907}
8908
8909#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8910#[serde(deny_unknown_fields)]
8911pub struct GetComponentTemplateResult {
8912 pub resource: ComponentTemplateDetail,
8913}
8914
8915#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8916#[serde(deny_unknown_fields)]
8917pub struct ListIndexTemplatesRequest {
8918 pub page_size: u32,
8919 #[serde(default, skip_serializing_if = "Option::is_none")]
8920 pub cursor: Option<Cursor>,
8921 #[serde(default, skip_serializing_if = "Option::is_none")]
8922 pub name_prefix: Option<String>,
8923 pub restart_count: u32,
8924}
8925
8926#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8927#[serde(deny_unknown_fields)]
8928pub struct ListIndexTemplatesResult {
8929 pub items: Vec<IndexTemplateSummary>,
8930 #[serde(default, skip_serializing_if = "Option::is_none")]
8931 pub next_cursor: Option<Cursor>,
8932 pub restart_count: u32,
8933}
8934
8935#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8936#[serde(deny_unknown_fields)]
8937pub struct GetIndexTemplateRequest {
8938 pub name: String,
8939 #[serde(default, skip_serializing_if = "Option::is_none")]
8940 pub expected_incarnation: Option<Identity>,
8941}
8942
8943#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8944#[serde(deny_unknown_fields)]
8945pub struct GetIndexTemplateResult {
8946 pub resource: IndexTemplateDetail,
8947}
8948
8949#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8950#[serde(deny_unknown_fields)]
8951pub struct ListIngestPipelinesRequest {
8952 pub page_size: u32,
8953 #[serde(default, skip_serializing_if = "Option::is_none")]
8954 pub cursor: Option<Cursor>,
8955 #[serde(default, skip_serializing_if = "Option::is_none")]
8956 pub name_prefix: Option<String>,
8957 pub restart_count: u32,
8958}
8959
8960#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8961#[serde(deny_unknown_fields)]
8962pub struct ListIngestPipelinesResult {
8963 pub items: Vec<IngestPipelineSummary>,
8964 #[serde(default, skip_serializing_if = "Option::is_none")]
8965 pub next_cursor: Option<Cursor>,
8966 pub restart_count: u32,
8967}
8968
8969#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8970#[serde(deny_unknown_fields)]
8971pub struct GetIngestPipelineRequest {
8972 pub name: String,
8973 #[serde(default, skip_serializing_if = "Option::is_none")]
8974 pub expected_incarnation: Option<Identity>,
8975}
8976
8977#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8978#[serde(deny_unknown_fields)]
8979pub struct GetIngestPipelineResult {
8980 pub resource: IngestPipelineDetail,
8981}
8982
8983#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8984#[serde(deny_unknown_fields)]
8985pub struct SimulateIngestPipelineRequest {
8986 #[serde(default, skip_serializing_if = "Option::is_none")]
8987 pub name: Option<String>,
8988 #[serde(default, skip_serializing_if = "Option::is_none")]
8989 pub expected: Option<ExpectedBinding>,
8990 #[serde(default, skip_serializing_if = "Option::is_none")]
8991 pub definition: Option<RawJson>,
8992 pub source: RawJson,
8993}
8994
8995#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
8996#[serde(deny_unknown_fields)]
8997pub struct SimulateIngestPipelineResult {
8998 #[serde(default, skip_serializing_if = "Option::is_none")]
8999 pub source: Option<RawJson>,
9000 pub dropped: bool,
9001 pub changed: bool,
9002}
9003
9004#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9005#[serde(deny_unknown_fields)]
9006pub struct ReprocessByQueryRequest {
9007 pub action_id: Digest,
9008 pub index: Resource,
9009 pub query: Query,
9010 #[serde(default, skip_serializing_if = "Option::is_none")]
9011 pub pipeline: Option<IngestPipelineSelection>,
9012 pub batch_size: u32,
9013 pub max_docs: U64,
9014 pub proceed_on_conflict: bool,
9015 pub slices: u32,
9016 pub requests_per_second: u32,
9017 pub wait_for_completion: bool,
9018}
9019
9020#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9021#[serde(deny_unknown_fields)]
9022pub struct ReprocessByQueryResult {
9023 pub task_id: Identity,
9024 pub scanned: U64,
9025 pub updated: U64,
9026 pub noops: U64,
9027 pub version_conflicts: U64,
9028 pub batches: U64,
9029 pub completed: bool,
9030}
9031
9032#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9033#[serde(deny_unknown_fields)]
9034pub struct ListLifecyclePoliciesRequest {
9035 pub page_size: u32,
9036 #[serde(default, skip_serializing_if = "Option::is_none")]
9037 pub cursor: Option<Cursor>,
9038 #[serde(default, skip_serializing_if = "Option::is_none")]
9039 pub name_prefix: Option<String>,
9040 pub restart_count: u32,
9041}
9042
9043#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9044#[serde(deny_unknown_fields)]
9045pub struct ListLifecyclePoliciesResult {
9046 pub items: Vec<LifecyclePolicySummary>,
9047 #[serde(default, skip_serializing_if = "Option::is_none")]
9048 pub next_cursor: Option<Cursor>,
9049 pub restart_count: u32,
9050}
9051
9052#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9053#[serde(deny_unknown_fields)]
9054pub struct GetLifecyclePolicyRequest {
9055 pub name: String,
9056}
9057
9058#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9059#[serde(deny_unknown_fields)]
9060pub struct GetLifecyclePolicyResult {
9061 pub resource: LifecyclePolicyDetail,
9062}
9063
9064#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9065#[serde(deny_unknown_fields)]
9066pub struct PrepareCreateIndexRequest {
9067 pub name: String,
9068 pub mapping: Mapping,
9069 #[serde(default, skip_serializing_if = "Option::is_none")]
9070 pub resource_spec: Option<IndexResourceSpec>,
9071 #[serde(default, skip_serializing_if = "Option::is_none")]
9072 pub retained_event_identity: Option<bool>,
9073}
9074
9075#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9076#[serde(deny_unknown_fields)]
9077pub struct PrepareCreateIndexResult {
9078 pub locator: Locator,
9079 pub expires_at: U64,
9080 pub semantic_digest: Digest,
9081 pub resource_spec: IndexResourceSpec,
9082}
9083
9084#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9085#[serde(deny_unknown_fields)]
9086pub struct PrepareDeleteIndexRequest {
9087 pub name: String,
9088 pub expected_incarnation: Identity,
9089}
9090
9091#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9092#[serde(deny_unknown_fields)]
9093pub struct PrepareDeleteIndexResult {
9094 #[serde(default, skip_serializing_if = "Option::is_none")]
9095 pub locator: Option<Locator>,
9096 #[serde(default, skip_serializing_if = "Option::is_none")]
9097 pub expires_at: Option<U64>,
9098 #[serde(default, skip_serializing_if = "Option::is_none")]
9099 pub semantic_digest: Option<Digest>,
9100 pub impact_digest: Digest,
9101 pub blockers: Vec<String>,
9102 pub scheduled_effects: Vec<String>,
9103 #[serde(default, skip_serializing_if = "Option::is_none")]
9104 pub estimated_documents: Option<U64>,
9105 #[serde(default, skip_serializing_if = "Option::is_none")]
9106 pub estimated_logical_bytes: Option<U64>,
9107}
9108
9109#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9110#[serde(deny_unknown_fields)]
9111pub struct SubmitCatalogActionRequest {
9112 pub locator: Locator,
9113 pub semantic_digest: Digest,
9114 pub action_kind: String,
9115 pub name: String,
9116 #[serde(default, skip_serializing_if = "Option::is_none")]
9117 pub mapping: Option<Mapping>,
9118 #[serde(default, skip_serializing_if = "Option::is_none")]
9119 pub resource_spec: Option<IndexResourceSpec>,
9120 #[serde(default, skip_serializing_if = "Option::is_none")]
9121 pub expected_incarnation: Option<Identity>,
9122}
9123
9124#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9125#[serde(deny_unknown_fields)]
9126pub struct SubmitCatalogActionResult {
9127 pub locator: Locator,
9128 pub state: String,
9129 pub mutation_outcome: MutationOutcome,
9130}
9131
9132#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9133#[serde(deny_unknown_fields)]
9134pub struct ResolveCatalogActionRequest {
9135 pub locator: Locator,
9136}
9137
9138#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9139#[serde(deny_unknown_fields)]
9140pub struct ResolveCatalogActionResult {
9141 pub locator: Locator,
9142 pub state: String,
9143 #[serde(default, skip_serializing_if = "Option::is_none")]
9144 pub resource: Option<Resource>,
9145}
9146
9147#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9148#[serde(deny_unknown_fields)]
9149pub struct PrepareReplayableSourceIndexRequest {
9150 pub name: String,
9151 pub mapping: Mapping,
9152 #[serde(default, skip_serializing_if = "Option::is_none")]
9153 pub resource_spec: Option<IndexResourceSpec>,
9154 pub source: ReplayableSourceConfiguration,
9155}
9156
9157#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9158#[serde(deny_unknown_fields)]
9159pub struct PrepareReplayableSourceIndexResult {
9160 pub locator: Locator,
9161 pub expires_at: U64,
9162 pub semantic_digest: Digest,
9163 pub resource_spec: IndexResourceSpec,
9164}
9165
9166#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9167#[serde(deny_unknown_fields)]
9168pub struct SubmitReplayableSourceIndexRequest {
9169 pub locator: Locator,
9170 pub semantic_digest: Digest,
9171 pub name: String,
9172 pub mapping: Mapping,
9173 pub resource_spec: IndexResourceSpec,
9174 pub source: ReplayableSourceConfiguration,
9175}
9176
9177#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9178#[serde(deny_unknown_fields)]
9179pub struct SubmitReplayableSourceIndexResult {
9180 pub locator: Locator,
9181 pub state: String,
9182 pub mutation_outcome: MutationOutcome,
9183}
9184
9185#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9186#[serde(deny_unknown_fields)]
9187pub struct GetReplayableSourceRequest {
9188 pub index: Resource,
9189}
9190
9191#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9192#[serde(deny_unknown_fields)]
9193pub struct GetReplayableSourceResult {
9194 pub status: ReplayableSourceStatus,
9195}
9196
9197#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9198#[serde(deny_unknown_fields)]
9199pub struct ControlReplayableSourceRequest {
9200 pub index: Resource,
9201 pub expected_generation: U64,
9202 pub transition: SourceControlTransition,
9203}
9204
9205#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9206#[serde(deny_unknown_fields)]
9207pub struct ControlReplayableSourceResult {
9208 pub status: ReplayableSourceStatus,
9209 pub mutation_outcome: MutationOutcome,
9210}
9211
9212#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9213#[serde(deny_unknown_fields)]
9214pub struct CloneIndexRequest {
9215 pub source: Resource,
9216 pub destination_name: String,
9217 pub operation_id: Identity,
9218 pub source_cut_id: Identity,
9219}
9220
9221#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9222#[serde(deny_unknown_fields)]
9223pub struct CloneIndexResult {
9224 pub destination: Resource,
9225 pub source_cut_id: Identity,
9226 pub mutation_outcome: MutationOutcome,
9227}
9228
9229#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9230#[serde(deny_unknown_fields)]
9231pub struct ConfigureHistoryRequest {
9232 pub index: Resource,
9233 pub precondition: HistoryLedgerPrecondition,
9234 pub policy: HistoryRetentionPolicy,
9235}
9236
9237#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9238#[serde(deny_unknown_fields)]
9239pub struct ConfigureHistoryResult {
9240 pub status: HistoryStatus,
9241 pub mutation_outcome: MutationOutcome,
9242}
9243
9244#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9245#[serde(deny_unknown_fields)]
9246pub struct GetHistoryRequest {
9247 pub index: Resource,
9248}
9249
9250#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9251#[serde(deny_unknown_fields)]
9252pub struct GetHistoryResult {
9253 pub status: HistoryStatus,
9254}
9255
9256#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9257#[serde(deny_unknown_fields)]
9258pub struct ResolveHistoryRequest {
9259 pub index: Resource,
9260 pub selector: HistorySelector,
9261}
9262
9263#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9264#[serde(deny_unknown_fields)]
9265pub struct ResolveHistoryResult {
9266 pub resolution: HistoryResolution,
9267}
9268
9269#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9270#[serde(deny_unknown_fields)]
9271pub struct PlaceHistoryHoldRequest {
9272 pub index: Resource,
9273 pub expected_ledger_revision: U64,
9274 pub hold: HistoryHold,
9275}
9276
9277#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9278#[serde(deny_unknown_fields)]
9279pub struct PlaceHistoryHoldResult {
9280 pub status: HistoryStatus,
9281 pub mutation_outcome: MutationOutcome,
9282}
9283
9284#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9285#[serde(deny_unknown_fields)]
9286pub struct ReleaseHistoryHoldRequest {
9287 pub index: Resource,
9288 pub expected_ledger_revision: U64,
9289 pub hold_id: Identity,
9290}
9291
9292#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9293#[serde(deny_unknown_fields)]
9294pub struct ReleaseHistoryHoldResult {
9295 pub status: HistoryStatus,
9296 pub mutation_outcome: MutationOutcome,
9297}
9298
9299#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9300#[serde(deny_unknown_fields)]
9301pub struct PrepareDocumentMutationRequest {
9302 pub index: Resource,
9303 pub document_id: String,
9304 pub operation: String,
9305 #[serde(default, skip_serializing_if = "Option::is_none")]
9306 pub source: Option<RawJson>,
9307 #[serde(default, skip_serializing_if = "Option::is_none")]
9308 pub record: Option<NativeRecord>,
9309 #[serde(default, skip_serializing_if = "Option::is_none")]
9310 pub routing: Option<String>,
9311 #[serde(default, skip_serializing_if = "Option::is_none")]
9312 pub condition: Option<DocumentMutationCondition>,
9313 #[serde(default, skip_serializing_if = "Option::is_none")]
9314 pub pipeline: Option<IngestPipelineSelection>,
9315}
9316
9317#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9318#[serde(deny_unknown_fields)]
9319pub struct PrepareDocumentMutationResult {
9320 pub locator: Locator,
9321 pub semantic_digest: Digest,
9322 pub retention_max_entries: U64,
9323 pub retention_sequence_window: U64,
9324}
9325
9326#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9327#[serde(deny_unknown_fields)]
9328pub struct SubmitDocumentMutationRequest {
9329 pub locator: Locator,
9330 pub semantic_digest: Digest,
9331 pub index: Resource,
9332 pub document_id: String,
9333 pub operation: String,
9334 #[serde(default, skip_serializing_if = "Option::is_none")]
9335 pub source: Option<RawJson>,
9336 #[serde(default, skip_serializing_if = "Option::is_none")]
9337 pub record: Option<NativeRecord>,
9338 #[serde(default, skip_serializing_if = "Option::is_none")]
9339 pub routing: Option<String>,
9340 #[serde(default, skip_serializing_if = "Option::is_none")]
9341 pub condition: Option<DocumentMutationCondition>,
9342 #[serde(default, skip_serializing_if = "Option::is_none")]
9343 pub pipeline: Option<IngestPipelineSelection>,
9344}
9345
9346#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9347#[serde(deny_unknown_fields)]
9348pub struct SubmitDocumentMutationResult {
9349 pub locator: Locator,
9350 pub state: String,
9351 pub mutation_outcome: MutationOutcome,
9352 #[serde(default, skip_serializing_if = "Option::is_none")]
9353 pub achievement: Option<WriteAchievement>,
9354 #[serde(default, skip_serializing_if = "Option::is_none")]
9355 pub sequence: Option<U64>,
9356 #[serde(default, skip_serializing_if = "Option::is_none")]
9357 pub mapping_generation: Option<U64>,
9358 pub mapping_adopted: bool,
9359 #[serde(default, skip_serializing_if = "Option::is_none")]
9360 pub commit_receipt: Option<MutationCommitReceipt>,
9361}
9362
9363#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9364#[serde(deny_unknown_fields)]
9365pub struct PrepareDocumentBulkRequest {
9366 pub batch_id: Digest,
9367 pub index: Resource,
9368 pub items: Vec<BulkDocumentItem>,
9369}
9370
9371#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9372#[serde(deny_unknown_fields)]
9373pub struct PrepareDocumentBulkResult {
9374 pub outcome: BulkDocumentOutcome,
9375}
9376
9377#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9378#[serde(deny_unknown_fields)]
9379pub struct SubmitDocumentBulkRequest {
9380 pub batch_id: Digest,
9381 pub index: Resource,
9382 pub items: Vec<BulkDocumentItem>,
9383 pub preparations: Vec<BulkDocumentItemOutcome>,
9384}
9385
9386#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9387#[serde(deny_unknown_fields)]
9388pub struct SubmitDocumentBulkResult {
9389 pub outcome: BulkDocumentOutcome,
9390}
9391
9392#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9393#[serde(deny_unknown_fields)]
9394pub struct ResolveDocumentBulkRequest {
9395 pub batch_id: Digest,
9396 pub index: Resource,
9397 pub items: Vec<BulkDocumentItemOutcome>,
9398}
9399
9400#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9401#[serde(deny_unknown_fields)]
9402pub struct ResolveDocumentBulkResult {
9403 pub outcome: BulkDocumentOutcome,
9404}
9405
9406#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9407#[serde(deny_unknown_fields)]
9408pub struct PrepareAppendBulkRequest {
9409 pub batch_id: Digest,
9410 pub index: Resource,
9411 pub items: Vec<RetainedAppendItem>,
9412}
9413
9414#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9415#[serde(deny_unknown_fields)]
9416pub struct PrepareAppendBulkResult {
9417 pub outcome: RetainedAppendBulkOutcome,
9418}
9419
9420#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9421#[serde(deny_unknown_fields)]
9422pub struct SubmitAppendBulkRequest {
9423 pub batch_id: Digest,
9424 pub index: Resource,
9425 pub items: Vec<RetainedAppendItem>,
9426 pub preparations: Vec<RetainedAppendItemOutcome>,
9427}
9428
9429#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9430#[serde(deny_unknown_fields)]
9431pub struct SubmitAppendBulkResult {
9432 pub outcome: RetainedAppendBulkOutcome,
9433}
9434
9435#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9436#[serde(deny_unknown_fields)]
9437pub struct ResolveAppendBulkRequest {
9438 pub batch_id: Digest,
9439 pub index: Resource,
9440 pub items: Vec<RetainedAppendItemOutcome>,
9441}
9442
9443#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9444#[serde(deny_unknown_fields)]
9445pub struct ResolveAppendBulkResult {
9446 pub outcome: RetainedAppendBulkOutcome,
9447}
9448
9449#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9450#[serde(deny_unknown_fields)]
9451pub struct ObserveAppendCommittedRequest {
9452 pub index: Resource,
9453 pub locator: Locator,
9454}
9455
9456#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9457#[serde(deny_unknown_fields)]
9458pub struct ObserveAppendCommittedResult {
9459 pub outcome: RetainedAppendObservationOutcome,
9460}
9461
9462#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9463#[serde(deny_unknown_fields)]
9464pub struct ResolveDocumentMutationRequest {
9465 pub locator: Locator,
9466}
9467
9468#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9469#[serde(deny_unknown_fields)]
9470pub struct ResolveDocumentMutationResult {
9471 pub locator: Locator,
9472 pub state: String,
9473 #[serde(default, skip_serializing_if = "Option::is_none")]
9474 pub sequence: Option<U64>,
9475 #[serde(default, skip_serializing_if = "Option::is_none")]
9476 pub mapping_generation: Option<U64>,
9477 pub mapping_adopted: bool,
9478 #[serde(default, skip_serializing_if = "Option::is_none")]
9479 pub source: Option<RawJson>,
9480 #[serde(default, skip_serializing_if = "Option::is_none")]
9481 pub commit_receipt: Option<MutationCommitReceipt>,
9482}
9483
9484#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9485#[serde(deny_unknown_fields)]
9486pub struct GetDocumentRequest {
9487 pub index: Resource,
9488 pub document_id: String,
9489 #[serde(default, skip_serializing_if = "Option::is_none")]
9490 pub routing: Option<String>,
9491}
9492
9493#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9494#[serde(deny_unknown_fields)]
9495pub struct GetDocumentResult {
9496 pub found: bool,
9497 #[serde(default, skip_serializing_if = "Option::is_none")]
9498 pub source: Option<RawJson>,
9499 #[serde(default, skip_serializing_if = "Option::is_none")]
9500 pub sequence: Option<U64>,
9501 #[serde(default, skip_serializing_if = "Option::is_none")]
9502 pub primary_term: Option<U64>,
9503}
9504
9505#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9506#[serde(deny_unknown_fields)]
9507pub struct SearchRequest {
9508 #[serde(default, skip_serializing_if = "Option::is_none")]
9509 pub indexes: Option<Vec<Resource>>,
9510 #[serde(default, skip_serializing_if = "Option::is_none")]
9511 pub query: Option<Query>,
9512 #[serde(default, skip_serializing_if = "Option::is_none")]
9513 pub retrieval: Option<RetrievalPlan>,
9514 #[serde(default, skip_serializing_if = "Option::is_none")]
9515 pub aggregations: Option<Vec<Aggregation>>,
9516 pub sort: Vec<SortSpec>,
9517 #[serde(default, skip_serializing_if = "Option::is_none")]
9518 pub routing: Option<Vec<String>>,
9519 pub freshness: SearchFreshness,
9520 pub page_size: u32,
9521 #[serde(default, skip_serializing_if = "Option::is_none")]
9522 pub cursor: Option<Cursor>,
9523 #[serde(default, skip_serializing_if = "Option::is_none")]
9524 pub pit: Option<Cursor>,
9525 pub allow_partial: bool,
9526 #[serde(default, skip_serializing_if = "Option::is_none")]
9527 pub total_hits_threshold: Option<U64>,
9528 pub diagnostics: bool,
9529 #[serde(default, skip_serializing_if = "Option::is_none")]
9530 pub fragments: Option<FragmentRequest>,
9531 #[serde(default, skip_serializing_if = "Option::is_none")]
9532 pub features: Option<ResultFeatureRequest>,
9533 #[serde(default, skip_serializing_if = "Option::is_none")]
9534 pub diversification: Option<ResultDiversification>,
9535 #[serde(default, skip_serializing_if = "Option::is_none")]
9536 pub source_projection: Option<SourceProjection>,
9537 #[serde(default, skip_serializing_if = "Option::is_none")]
9538 pub delegated_query_subject: Option<SignedDelegatedQuerySubject>,
9539}
9540
9541#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9542#[serde(deny_unknown_fields)]
9543pub struct SearchResult {
9544 pub hits: Vec<SearchHit>,
9545 pub aggregations: Vec<AggregationResult>,
9546 #[serde(default, skip_serializing_if = "Option::is_none")]
9547 pub next_cursor: Option<Cursor>,
9548 pub timed_out: bool,
9549 pub partial: bool,
9550 pub achieved: SearchAchievement,
9551 pub shards: ShardCounts,
9552 pub total: SearchTotal,
9553 pub failures: Vec<SearchPartialFailure>,
9554 pub vector_diagnostics: Vec<VectorBranchDiagnostics>,
9555 #[serde(default, skip_serializing_if = "Option::is_none")]
9556 pub read_cut: Option<ReadCutEvidence>,
9557}
9558
9559#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9560#[serde(deny_unknown_fields)]
9561pub struct TraverseRelationshipsRequest {
9562 pub pit: Cursor,
9563 pub indexes: Vec<Resource>,
9564 pub seeds: Vec<EntityRef>,
9565 pub direction: RelationshipTraversalDirection,
9566 pub filter: RelationshipTraversalFilter,
9567 pub budget: RelationshipTraversalBudget,
9568 pub allow_partial: bool,
9569}
9570
9571#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9572#[serde(deny_unknown_fields)]
9573pub struct TraverseRelationshipsResult {
9574 pub relationships: Vec<TraversedRelationship>,
9575 pub visited_entities: Vec<EntityRef>,
9576 pub input_cut_digest: Digest,
9577 pub partial: bool,
9578 pub incomplete_frontier: Vec<EntityRef>,
9579 pub failures: Vec<SearchPartialFailure>,
9580}
9581
9582#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9583#[serde(deny_unknown_fields)]
9584pub struct QueryProfilesRequest {
9585 pub pit: Cursor,
9586 pub indexes: Vec<Resource>,
9587 pub operation: ProfileQueryOperation,
9588 pub start_unix_nanos: U64,
9589 pub end_unix_nanos: U64,
9590 pub sample_type: String,
9591 pub unit: String,
9592 pub filter: ProfileQueryFilter,
9593 #[serde(default, skip_serializing_if = "Option::is_none")]
9594 pub group_by: Option<ProfileGroupBy>,
9595 pub budget: ProfileQueryBudget,
9596 pub allow_partial: bool,
9597}
9598
9599#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9600#[serde(deny_unknown_fields)]
9601pub struct QueryProfilesResult {
9602 pub rows: Vec<ProfileQueryRow>,
9603 pub evaluated_batches: u32,
9604 pub evaluated_samples: u32,
9605 pub input_cut_digest: Digest,
9606 pub partial: bool,
9607 pub approximate: bool,
9608 pub failures: Vec<SearchPartialFailure>,
9609}
9610
9611#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9612#[serde(deny_unknown_fields)]
9613pub struct EvaluateTemporalEvidenceRequest {
9614 pub pit: Cursor,
9615 pub definition: HistoricalTemporalDefinition,
9616}
9617
9618#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9619#[serde(deny_unknown_fields)]
9620pub struct EvaluateTemporalEvidenceResult {
9621 pub evidence: Vec<TemporalEvidence>,
9622 pub input_cut_digest: Digest,
9623 pub pattern_digest: Digest,
9624 pub evaluated_events: u32,
9625}
9626
9627#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9628#[serde(deny_unknown_fields)]
9629pub struct CreateContinuousTemporalEvaluationRequest {
9630 pub action_id: Digest,
9631 pub definition: ContinuousTemporalDefinition,
9632}
9633
9634#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9635#[serde(deny_unknown_fields)]
9636pub struct CreateContinuousTemporalEvaluationResult {
9637 pub evaluation: ContinuousTemporalEvaluation,
9638 pub mutation_outcome: MutationOutcome,
9639}
9640
9641#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9642#[serde(deny_unknown_fields)]
9643pub struct GetContinuousTemporalEvaluationRequest {
9644 pub evaluation_id: Identity,
9645}
9646
9647#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9648#[serde(deny_unknown_fields)]
9649pub struct GetContinuousTemporalEvaluationResult {
9650 pub evaluation: ContinuousTemporalEvaluation,
9651}
9652
9653#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9654#[serde(deny_unknown_fields)]
9655pub struct PauseContinuousTemporalEvaluationRequest {
9656 pub action_id: Digest,
9657 pub evaluation_id: Identity,
9658 pub expected_revision: U64,
9659}
9660
9661#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9662#[serde(deny_unknown_fields)]
9663pub struct PauseContinuousTemporalEvaluationResult {
9664 pub evaluation: ContinuousTemporalEvaluation,
9665 pub mutation_outcome: MutationOutcome,
9666}
9667
9668#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9669#[serde(deny_unknown_fields)]
9670pub struct ResumeContinuousTemporalEvaluationRequest {
9671 pub action_id: Digest,
9672 pub evaluation_id: Identity,
9673 pub expected_revision: U64,
9674}
9675
9676#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9677#[serde(deny_unknown_fields)]
9678pub struct ResumeContinuousTemporalEvaluationResult {
9679 pub evaluation: ContinuousTemporalEvaluation,
9680 pub mutation_outcome: MutationOutcome,
9681}
9682
9683#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9684#[serde(deny_unknown_fields)]
9685pub struct ReplaceContinuousTemporalEvaluationRequest {
9686 pub action_id: Digest,
9687 pub expected_revision: U64,
9688 pub definition: ContinuousTemporalDefinition,
9689}
9690
9691#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9692#[serde(deny_unknown_fields)]
9693pub struct ReplaceContinuousTemporalEvaluationResult {
9694 pub evaluation: ContinuousTemporalEvaluation,
9695 pub mutation_outcome: MutationOutcome,
9696}
9697
9698#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9699#[serde(deny_unknown_fields)]
9700pub struct RetireContinuousTemporalEvaluationRequest {
9701 pub action_id: Digest,
9702 pub evaluation_id: Identity,
9703 pub expected_revision: U64,
9704}
9705
9706#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9707#[serde(deny_unknown_fields)]
9708pub struct RetireContinuousTemporalEvaluationResult {
9709 #[serde(default, skip_serializing_if = "Option::is_none")]
9710 pub evaluation: Option<ContinuousTemporalEvaluation>,
9711 pub mutation_outcome: MutationOutcome,
9712}
9713
9714#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9715#[serde(deny_unknown_fields)]
9716pub struct ReadContinuousTemporalEvidenceRequest {
9717 pub evaluation_id: Identity,
9718 pub expected_revision: U64,
9719 pub minimum_event_time_unix_nanos: U64,
9720 pub page_size: u32,
9721 #[serde(default, skip_serializing_if = "Option::is_none")]
9722 pub cursor: Option<Cursor>,
9723}
9724
9725#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9726#[serde(deny_unknown_fields)]
9727pub struct ReadContinuousTemporalEvidenceResult {
9728 pub evidence: Vec<TemporalEvidence>,
9729 #[serde(default, skip_serializing_if = "Option::is_none")]
9730 pub next_cursor: Option<Cursor>,
9731 pub retained_floor_unix_nanos: U64,
9732 pub evaluation_revision: U64,
9733}
9734
9735#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9736#[serde(deny_unknown_fields)]
9737pub struct ValidateSearchRequest {
9738 pub indexes: Vec<Resource>,
9739 #[serde(default, skip_serializing_if = "Option::is_none")]
9740 pub query: Option<Query>,
9741 #[serde(default, skip_serializing_if = "Option::is_none")]
9742 pub retrieval: Option<RetrievalPlan>,
9743 #[serde(default, skip_serializing_if = "Option::is_none")]
9744 pub aggregations: Option<Vec<Aggregation>>,
9745 pub sort: Vec<SortSpec>,
9746 #[serde(default, skip_serializing_if = "Option::is_none")]
9747 pub routing: Option<Vec<String>>,
9748 pub freshness: SearchFreshness,
9749 pub page_size: u32,
9750 pub allow_partial: bool,
9751 #[serde(default, skip_serializing_if = "Option::is_none")]
9752 pub total_hits_threshold: Option<U64>,
9753 #[serde(default, skip_serializing_if = "Option::is_none")]
9754 pub fragments: Option<FragmentRequest>,
9755 #[serde(default, skip_serializing_if = "Option::is_none")]
9756 pub features: Option<ResultFeatureRequest>,
9757 #[serde(default, skip_serializing_if = "Option::is_none")]
9758 pub diversification: Option<ResultDiversification>,
9759 #[serde(default, skip_serializing_if = "Option::is_none")]
9760 pub source_projection: Option<SourceProjection>,
9761}
9762
9763#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9764#[serde(deny_unknown_fields)]
9765pub struct ValidateSearchResult {
9766 pub catalog_revision: U64,
9767 pub resolved_indexes: Vec<Resource>,
9768 pub authorized: bool,
9769 pub capabilities: Vec<String>,
9770 pub shape_digest: Digest,
9771 pub warnings: Vec<String>,
9772 pub refusals: Vec<String>,
9773 pub limits: Vec<SearchValidationLimit>,
9774 pub estimates: SearchValidationEstimates,
9775}
9776
9777#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9778#[serde(deny_unknown_fields)]
9779pub struct MaterializeTableSnapshotRequest {
9780 pub action_id: Digest,
9781 pub semantic_digest: Digest,
9782 pub index: Resource,
9783 pub keep_alive_millis: U64,
9784 pub maximum_objects: u32,
9785 pub maximum_range_bytes: U64,
9786}
9787
9788#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9789#[serde(deny_unknown_fields)]
9790pub struct MaterializeTableSnapshotResult {
9791 pub resolution: TableSnapshotResolution,
9792}
9793
9794#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9795#[serde(deny_unknown_fields)]
9796pub struct ResolveTableSnapshotRequest {
9797 pub action_id: Digest,
9798 pub semantic_digest: Digest,
9799 pub index: Resource,
9800 pub keep_alive_millis: U64,
9801 pub maximum_objects: u32,
9802 pub maximum_range_bytes: U64,
9803}
9804
9805#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9806#[serde(deny_unknown_fields)]
9807pub struct ResolveTableSnapshotResult {
9808 pub resolution: TableSnapshotResolution,
9809}
9810
9811#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9812#[serde(deny_unknown_fields)]
9813pub struct ReadTableSnapshotRequest {
9814 pub snapshot: Locator,
9815 pub index: Resource,
9816 pub object_id: Digest,
9817 pub offset: U64,
9818 pub length: u32,
9819}
9820
9821#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9822#[serde(deny_unknown_fields)]
9823pub struct ReadTableSnapshotResult {
9824 pub read: TableSnapshotRead,
9825}
9826
9827#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9828#[serde(deny_unknown_fields)]
9829pub struct OpenPitRequest {
9830 pub indexes: Vec<Resource>,
9831 pub keep_alive_millis: U64,
9832}
9833
9834#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9835#[serde(deny_unknown_fields)]
9836pub struct OpenPitResult {
9837 pub pit: Cursor,
9838 pub expires_at: U64,
9839 pub shard_count: u32,
9840 pub read_cut: ReadCutEvidence,
9841}
9842
9843#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9844#[serde(deny_unknown_fields)]
9845pub struct RenewPitRequest {
9846 pub pit: Cursor,
9847 pub keep_alive_millis: U64,
9848}
9849
9850#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9851#[serde(deny_unknown_fields)]
9852pub struct RenewPitResult {
9853 pub pit: Cursor,
9854 pub expires_at: U64,
9855 pub shard_count: u32,
9856 pub read_cut: ReadCutEvidence,
9857}
9858
9859#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9860#[serde(deny_unknown_fields)]
9861pub struct ClosePitRequest {
9862 pub pit: Cursor,
9863}
9864
9865#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9866#[serde(deny_unknown_fields)]
9867pub struct ClosePitResult {
9868 pub removed: bool,
9869}
9870
9871#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9872#[serde(deny_unknown_fields)]
9873pub struct ListOperationsRequest {
9874 pub page_size: u32,
9875 #[serde(default, skip_serializing_if = "Option::is_none")]
9876 pub cursor: Option<Cursor>,
9877}
9878
9879#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9880#[serde(deny_unknown_fields)]
9881pub struct ListOperationsResult {
9882 pub items: Vec<Operation>,
9883 #[serde(default, skip_serializing_if = "Option::is_none")]
9884 pub next_cursor: Option<Cursor>,
9885}
9886
9887#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9888#[serde(deny_unknown_fields)]
9889pub struct GetOperationRequest {
9890 pub locator: Locator,
9891}
9892
9893#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9894#[serde(deny_unknown_fields)]
9895pub struct GetOperationResult {
9896 pub operation: Operation,
9897}
9898
9899#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9900#[serde(deny_unknown_fields)]
9901pub struct WaitOperationRequest {
9902 pub locator: Locator,
9903 pub after_authority_revision: U64,
9904 pub maximum_attempts: u32,
9905 pub interval_millis: U64,
9906}
9907
9908#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9909#[serde(deny_unknown_fields)]
9910pub struct WaitOperationResult {
9911 pub operation: Operation,
9912 pub attempts: u32,
9913}
9914
9915#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9916#[serde(deny_unknown_fields)]
9917pub struct CancelOperationRequest {
9918 pub locator: Locator,
9919 pub expected_authority_revision: U64,
9920 pub cancel_action: Identity,
9921}
9922
9923#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9924#[serde(deny_unknown_fields)]
9925pub struct CancelOperationResult {
9926 pub locator: Locator,
9927 pub cancel_generation: U64,
9928 pub mutation_outcome: MutationOutcome,
9929}
9930
9931#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9932#[serde(deny_unknown_fields)]
9933pub struct ListAuditEventsRequest {
9934 pub start_time: U64,
9935 pub end_time: U64,
9936 pub actions: Vec<String>,
9937 pub page_size: u32,
9938 #[serde(default, skip_serializing_if = "Option::is_none")]
9939 pub cursor: Option<Cursor>,
9940}
9941
9942#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9943#[serde(deny_unknown_fields)]
9944pub struct ListAuditEventsResult {
9945 pub stream: AuditStreamState,
9946 pub events: Vec<AuditEvent>,
9947 #[serde(default, skip_serializing_if = "Option::is_none")]
9948 pub next_cursor: Option<Cursor>,
9949 pub gaps: Vec<AuditGap>,
9950 pub object_reads: u32,
9951}
9952
9953#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9954#[serde(deny_unknown_fields)]
9955pub struct ExportAuditEventsRequest {
9956 pub start_time: U64,
9957 pub end_time: U64,
9958 pub actions: Vec<String>,
9959 pub page_size: u32,
9960 #[serde(default, skip_serializing_if = "Option::is_none")]
9961 pub cursor: Option<Cursor>,
9962}
9963
9964#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9965#[serde(deny_unknown_fields)]
9966pub struct ExportAuditEventsResult {
9967 pub stream: AuditStreamState,
9968 pub events: Vec<AuditEvent>,
9969 #[serde(default, skip_serializing_if = "Option::is_none")]
9970 pub next_cursor: Option<Cursor>,
9971 pub gaps: Vec<AuditGap>,
9972 pub object_reads: u32,
9973}
9974
9975#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9976#[serde(deny_unknown_fields)]
9977pub struct ReserveServiceCredentialRequest {
9978 pub reservation_action_id: Digest,
9979 pub activation_action_id: Digest,
9980 pub role_grants: Vec<ServiceCredentialGrant>,
9981 pub credential_expires_at: U64,
9982 pub reservation_expires_at: U64,
9983}
9984
9985#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9986#[serde(deny_unknown_fields)]
9987pub struct ReserveServiceCredentialResult {
9988 pub reservation: ServiceCredentialReservation,
9989}
9990
9991#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9992#[serde(deny_unknown_fields)]
9993pub struct ReserveServiceCredentialRotationRequest {
9994 pub reservation_action_id: Digest,
9995 pub activation_action_id: Digest,
9996 pub current_api_key_id: Identity,
9997 pub expected_generation: U64,
9998 pub credential_expires_at: U64,
9999 pub overlap_until: U64,
10000 pub reservation_expires_at: U64,
10001}
10002
10003#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10004#[serde(deny_unknown_fields)]
10005pub struct ReserveServiceCredentialRotationResult {
10006 pub reservation: ServiceCredentialReservation,
10007}
10008
10009#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10010#[serde(deny_unknown_fields)]
10011pub struct ActivateServiceCredentialRequest {
10012 pub reservation: ServiceCredentialReservation,
10013 pub verifier: Digest,
10014}
10015
10016#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10017#[serde(deny_unknown_fields)]
10018pub struct ActivateServiceCredentialResult {
10019 pub locator: Locator,
10020 pub outcome: SecurityActionOutcome,
10021 pub secret_escrowed: bool,
10022}
10023
10024#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10025#[serde(deny_unknown_fields)]
10026pub struct ResolveServiceCredentialReservationRequest {
10027 pub reservation_action_id: Digest,
10028}
10029
10030#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10031#[serde(deny_unknown_fields)]
10032pub struct ResolveServiceCredentialReservationResult {
10033 pub state: String,
10034 #[serde(default, skip_serializing_if = "Option::is_none")]
10035 pub reservation: Option<ServiceCredentialReservation>,
10036 #[serde(default, skip_serializing_if = "Option::is_none")]
10037 pub outcome: Option<SecurityActionOutcome>,
10038}
10039
10040#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10041#[serde(deny_unknown_fields)]
10042pub struct PrepareRevokeServiceCredentialRequest {
10043 pub api_key_id: Identity,
10044 pub expected_generation: U64,
10045}
10046
10047#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10048#[serde(deny_unknown_fields)]
10049pub struct PrepareRevokeServiceCredentialResult {
10050 pub locator: Locator,
10051 pub semantic_digest: Digest,
10052 pub expires_at: U64,
10053}
10054
10055#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10056#[serde(deny_unknown_fields)]
10057pub struct RevokeServiceCredentialRequest {
10058 pub locator: Locator,
10059 pub api_key_id: Identity,
10060 pub expected_generation: U64,
10061}
10062
10063#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10064#[serde(deny_unknown_fields)]
10065pub struct RevokeServiceCredentialResult {
10066 pub locator: Locator,
10067 pub principal_id: Identity,
10068 pub api_key_id: Identity,
10069 pub state: String,
10070}
10071
10072#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10073#[serde(deny_unknown_fields)]
10074pub struct ResolveSecurityActionRequest {
10075 pub locator: Locator,
10076}
10077
10078#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10079#[serde(deny_unknown_fields)]
10080pub struct ResolveSecurityActionResult {
10081 pub locator: Locator,
10082 pub state: String,
10083 #[serde(default, skip_serializing_if = "Option::is_none")]
10084 pub result: Option<SecurityActionOutcome>,
10085 pub secret_escrowed: bool,
10086}
10087
10088#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10089#[serde(deny_unknown_fields)]
10090pub struct GetSecurityRoleRequest {
10091 pub role_name: String,
10092}
10093
10094#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10095#[serde(deny_unknown_fields)]
10096pub struct GetSecurityRoleResult {
10097 pub role: SecurityRole,
10098}
10099
10100#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10101#[serde(deny_unknown_fields)]
10102pub struct PrepareRoleAppendAccessChangeRequest {
10103 pub role_name: String,
10104 pub expected_role_version: U64,
10105 pub changes: Vec<RoleAppendScopeChange>,
10106}
10107
10108#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10109#[serde(deny_unknown_fields)]
10110pub struct PrepareRoleAppendAccessChangeResult {
10111 pub preparation: RoleAppendAccessPreparation,
10112}
10113
10114#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10115#[serde(deny_unknown_fields)]
10116pub struct SubmitRoleAppendAccessChangeRequest {
10117 pub locator: Locator,
10118 pub semantic_digest: Digest,
10119 pub role_name: String,
10120 pub expected_role_version: U64,
10121 pub changes: Vec<RoleAppendScopeChange>,
10122}
10123
10124#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10125#[serde(deny_unknown_fields)]
10126pub struct SubmitRoleAppendAccessChangeResult {
10127 pub locator: Locator,
10128 pub state: String,
10129 pub target_policy_revision: U64,
10130 pub role: SecurityRole,
10131}
10132
10133#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10134#[serde(deny_unknown_fields)]
10135pub struct PrepareSourceAuthorizationProjectionRequest {
10136 pub index: Resource,
10137 pub batch: SourceAuthorizationBatch,
10138}
10139
10140#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10141#[serde(deny_unknown_fields)]
10142pub struct PrepareSourceAuthorizationProjectionResult {
10143 pub preparation: SourceAuthorizationPreparation,
10144}
10145
10146#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10147#[serde(deny_unknown_fields)]
10148pub struct SubmitSourceAuthorizationProjectionRequest {
10149 pub index: Resource,
10150 pub action_id: Digest,
10151 pub semantic_digest: Digest,
10152 pub successor_generation: U64,
10153}
10154
10155#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10156#[serde(deny_unknown_fields)]
10157pub struct SubmitSourceAuthorizationProjectionResult {
10158 pub receipt: SourceAuthorizationReceipt,
10159 pub resolution: SourceAuthorizationResolution,
10160 pub mutation_outcome: MutationOutcome,
10161}
10162
10163#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10164#[serde(deny_unknown_fields)]
10165pub struct ResolveSourceAuthorizationProjectionRequest {
10166 pub index: Resource,
10167 pub action_id: Digest,
10168 pub semantic_digest: Digest,
10169 pub successor_generation: U64,
10170}
10171
10172#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10173#[serde(deny_unknown_fields)]
10174pub struct ResolveSourceAuthorizationProjectionResult {
10175 pub resolution: SourceAuthorizationResolution,
10176}
10177
10178#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10179#[serde(deny_unknown_fields)]
10180pub struct ListServiceCredentialsRequest {
10181 pub page_size: u32,
10182 #[serde(default, skip_serializing_if = "Option::is_none")]
10183 pub cursor: Option<Cursor>,
10184}
10185
10186#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10187#[serde(deny_unknown_fields)]
10188pub struct ListServiceCredentialsResult {
10189 pub items: Vec<ServiceCredentialSummary>,
10190 #[serde(default, skip_serializing_if = "Option::is_none")]
10191 pub next_cursor: Option<Cursor>,
10192}
10193
10194#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10195#[serde(deny_unknown_fields)]
10196pub struct GetRuntimeStatusRequest {}
10197
10198#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10199#[serde(deny_unknown_fields)]
10200pub struct GetRuntimeStatusResult {
10201 pub ready: bool,
10202 pub recovery_era: Identity,
10203 pub catalog_revision: U64,
10204 pub policy_revision: U64,
10205 pub redacted: RuntimeStatusDetail,
10206}
10207
10208#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10209#[serde(deny_unknown_fields)]
10210pub struct GetResultCacheStatusRequest {}
10211
10212#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10213#[serde(deny_unknown_fields)]
10214pub struct GetResultCacheStatusResult {
10215 pub status: ResultCacheStatus,
10216}
10217
10218#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10219#[serde(deny_unknown_fields)]
10220pub struct GetFieldPromotionStatusRequest {
10221 pub index: Resource,
10222}
10223
10224#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10225#[serde(deny_unknown_fields)]
10226pub struct GetFieldPromotionStatusResult {
10227 pub status: FieldPromotionStatus,
10228}
10229
10230#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10231#[serde(deny_unknown_fields)]
10232pub struct GetOverloadStatusRequest {
10233 pub index: Resource,
10234}
10235
10236#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10237#[serde(deny_unknown_fields)]
10238pub struct GetOverloadStatusResult {
10239 pub runtime_observed: bool,
10240 pub shards: Vec<OverloadShardStatus>,
10241}
10242
10243#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10244#[serde(deny_unknown_fields)]
10245pub struct ConfigureExternalKeyRequest {
10246 pub index: Resource,
10247 pub expected_authority_revision: U64,
10248 pub binding: ExternalKeyBinding,
10249}
10250
10251#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10252#[serde(deny_unknown_fields)]
10253pub struct ConfigureExternalKeyResult {
10254 pub status: LifecycleStatus,
10255 pub mutation_outcome: MutationOutcome,
10256}
10257
10258#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10259#[serde(deny_unknown_fields)]
10260pub struct RotateExternalKeyBindingRequest {
10261 pub index: Resource,
10262 pub expected_authority_revision: U64,
10263 pub predecessor_binding_id: Identity,
10264 pub binding: ExternalKeyBinding,
10265}
10266
10267#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10268#[serde(deny_unknown_fields)]
10269pub struct RotateExternalKeyBindingResult {
10270 pub status: LifecycleStatus,
10271 pub mutation_outcome: MutationOutcome,
10272}
10273
10274#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10275#[serde(deny_unknown_fields)]
10276pub struct RetireExternalKeyBindingRequest {
10277 pub action_id: Digest,
10278 pub index: Resource,
10279 pub expected_authority_revision: U64,
10280 pub target: ExternalKeyRetirementTarget,
10281}
10282
10283#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10284#[serde(deny_unknown_fields)]
10285pub struct RetireExternalKeyBindingResult {
10286 pub receipt: ExternalKeyRetirementReceipt,
10287}
10288
10289#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10290#[serde(deny_unknown_fields)]
10291pub struct ResolveExternalKeyBindingRetirementRequest {
10292 pub action_id: Digest,
10293 pub index: Resource,
10294 pub target: ExternalKeyRetirementTarget,
10295}
10296
10297#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10298#[serde(deny_unknown_fields)]
10299pub struct ResolveExternalKeyBindingRetirementResult {
10300 pub state: ExternalKeyRetirementResolutionState,
10301 #[serde(default, skip_serializing_if = "Option::is_none")]
10302 pub receipt: Option<ExternalKeyRetirementReceipt>,
10303 #[serde(default, skip_serializing_if = "Option::is_none")]
10304 pub current_authority_revision: Option<U64>,
10305 #[serde(default, skip_serializing_if = "Option::is_none")]
10306 pub current_authority_digest: Option<Digest>,
10307}
10308
10309#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10310#[serde(deny_unknown_fields)]
10311pub struct ConfigureAggregateThenDeleteRequest {
10312 pub index: Resource,
10313 pub expected_authority_revision: U64,
10314 pub policy: AggregateThenDeletePolicy,
10315}
10316
10317#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10318#[serde(deny_unknown_fields)]
10319pub struct ConfigureAggregateThenDeleteResult {
10320 pub status: LifecycleStatus,
10321 pub mutation_outcome: MutationOutcome,
10322}
10323
10324#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10325#[serde(deny_unknown_fields)]
10326pub struct GetLifecycleStatusRequest {
10327 pub index: Resource,
10328}
10329
10330#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10331#[serde(deny_unknown_fields)]
10332pub struct GetLifecycleStatusResult {
10333 pub status: LifecycleStatus,
10334}
10335
10336#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10337#[serde(deny_unknown_fields)]
10338pub struct GetQuotaRequest {}
10339
10340#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10341#[serde(deny_unknown_fields)]
10342pub struct GetQuotaResult {
10343 pub revision: U64,
10344 pub limits: Vec<QuotaLimit>,
10345 pub usage: Vec<QuotaConsumption>,
10346}
10347
10348#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10349#[serde(deny_unknown_fields)]
10350pub struct UpdateQuotaRequest {
10351 pub expected_revision: U64,
10352 pub limits: Vec<QuotaLimit>,
10353}
10354
10355#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10356#[serde(deny_unknown_fields)]
10357pub struct UpdateQuotaResult {
10358 pub update: QuotaUpdate,
10359}
10360
10361#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10362#[serde(deny_unknown_fields)]
10363pub struct GetBindingRequest {}
10364
10365#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10366#[serde(deny_unknown_fields)]
10367pub struct GetBindingResult {
10368 pub binding: CoreBinding,
10369 pub derived: bool,
10370 pub revision: U64,
10371}
10372
10373#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10374#[serde(deny_unknown_fields)]
10375pub struct GetAdmissionStatusRequest {}
10376
10377#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10378#[serde(deny_unknown_fields)]
10379pub struct GetAdmissionStatusResult {
10380 pub state: String,
10381 pub revision: U64,
10382 pub converged: bool,
10383}
10384
10385#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10386#[serde(deny_unknown_fields)]
10387pub struct SetAdmissionRequest {
10388 pub expected_revision: U64,
10389 pub state: String,
10390}
10391
10392#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10393#[serde(deny_unknown_fields)]
10394pub struct SetAdmissionResult {
10395 pub state: String,
10396 pub revision: U64,
10397 pub converged: bool,
10398}
10399
10400#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10401#[serde(deny_unknown_fields)]
10402pub struct GetQuiesceStatusRequest {}
10403
10404#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10405#[serde(deny_unknown_fields)]
10406pub struct GetQuiesceStatusResult {
10407 pub ready: bool,
10408 pub blockers: Vec<String>,
10409 pub observations: Vec<ReadinessObservation>,
10410 pub recovery_era: Identity,
10411 pub observed_at: U64,
10412 pub expires_at: U64,
10413}
10414
10415#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10416#[serde(deny_unknown_fields)]
10417pub struct GetDecommissionReadinessRequest {}
10418
10419#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10420#[serde(deny_unknown_fields)]
10421pub struct GetDecommissionReadinessResult {
10422 pub ready: bool,
10423 pub blockers: Vec<String>,
10424 pub observations: Vec<ReadinessObservation>,
10425 pub recovery_era: Identity,
10426 pub observed_at: U64,
10427 pub expires_at: U64,
10428}
10429
10430#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10431#[serde(deny_unknown_fields)]
10432pub struct GetUpgradeReadinessRequest {}
10433
10434#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10435#[serde(deny_unknown_fields)]
10436pub struct GetUpgradeReadinessResult {
10437 pub ready: bool,
10438 pub blockers: Vec<String>,
10439 pub observations: Vec<ReadinessObservation>,
10440 pub recovery_era: Identity,
10441 pub observed_at: U64,
10442 pub expires_at: U64,
10443}
10444
10445#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10446#[serde(deny_unknown_fields)]
10447pub struct GetMaintenanceStatusRequest {
10448 pub page_size: u32,
10449 #[serde(default, skip_serializing_if = "Option::is_none")]
10450 pub cursor: Option<Cursor>,
10451 #[serde(default, skip_serializing_if = "Option::is_none")]
10452 pub index: Option<Resource>,
10453}
10454
10455#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10456#[serde(deny_unknown_fields)]
10457pub struct GetMaintenanceStatusResult {
10458 pub aggregate: MaintenanceStatusAggregate,
10459 pub items: Vec<MaintenanceTaskStatus>,
10460 #[serde(default, skip_serializing_if = "Option::is_none")]
10461 pub next_cursor: Option<Cursor>,
10462}
10463
10464#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10465#[serde(deny_unknown_fields)]
10466pub struct WarmVectorIndexRequest {
10467 pub index: Resource,
10468 #[serde(default, skip_serializing_if = "Option::is_none")]
10469 pub expected_root_digest: Option<Digest>,
10470 pub components: Vec<VectorWarmComponent>,
10471 pub maximum_requests: u32,
10472 pub maximum_bytes: U64,
10473 pub maximum_achievements: u32,
10474 pub expires_at: U64,
10475}
10476
10477#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10478#[serde(deny_unknown_fields)]
10479pub struct WarmVectorIndexResult {
10480 pub result: VectorWarmResult,
10481}
10482
10483#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10484#[serde(deny_unknown_fields)]
10485pub struct EvaluateVectorRecallRequest {
10486 pub action_id: Digest,
10487 pub index: Resource,
10488 pub field: String,
10489 pub mapping_generation: U64,
10490 pub snapshot: VectorEvaluationSnapshot,
10491 pub query_set: VectorEvaluationQuerySet,
10492 #[serde(default, skip_serializing_if = "Option::is_none")]
10493 pub filter: Option<Query>,
10494 pub metric: VectorMetric,
10495 pub k: u32,
10496 pub candidate_policy: VectorCandidatePolicy,
10497 pub budget: VectorEvaluationBudget,
10498 pub maximum_bytes: U64,
10499}
10500
10501#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10502#[serde(deny_unknown_fields)]
10503pub struct EvaluateVectorRecallResult {
10504 pub operation: Operation,
10505}
10506
10507#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10508#[serde(deny_unknown_fields)]
10509pub struct CalibrateVectorStrategyRequest {
10510 pub action_id: Digest,
10511 pub index: Resource,
10512 pub field: String,
10513 pub mapping_generation: U64,
10514 pub snapshot: VectorEvaluationSnapshot,
10515 pub query_set: VectorEvaluationQuerySet,
10516 #[serde(default, skip_serializing_if = "Option::is_none")]
10517 pub filter: Option<Query>,
10518 pub metric: VectorMetric,
10519 pub k: u32,
10520 pub objective: VectorCalibrationObjective,
10521 pub minimum_recall_basis_points: u32,
10522 pub budget: VectorEvaluationBudget,
10523 pub maximum_bytes: U64,
10524}
10525
10526#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10527#[serde(deny_unknown_fields)]
10528pub struct CalibrateVectorStrategyResult {
10529 pub operation: Operation,
10530}
10531
10532#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10533#[serde(deny_unknown_fields)]
10534pub struct GetVectorDiagnosticRequest {
10535 pub locator: Locator,
10536}
10537
10538#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10539#[serde(deny_unknown_fields)]
10540pub struct GetVectorDiagnosticResult {
10541 pub operation: Operation,
10542 pub artifacts: Vec<Artifact>,
10543 #[serde(default, skip_serializing_if = "Option::is_none")]
10544 pub result: Option<VectorDiagnosticResult>,
10545}
10546
10547#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10548#[serde(deny_unknown_fields)]
10549pub struct CreateDiagnosticRequest {
10550 pub scope: String,
10551 pub maximum_bytes: U64,
10552}
10553
10554#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10555#[serde(deny_unknown_fields)]
10556pub struct CreateDiagnosticResult {
10557 pub operation: Operation,
10558}
10559
10560#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10561#[serde(deny_unknown_fields)]
10562pub struct GetDiagnosticRequest {
10563 pub locator: Locator,
10564}
10565
10566#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10567#[serde(deny_unknown_fields)]
10568pub struct GetDiagnosticResult {
10569 pub operation: Operation,
10570 pub artifacts: Vec<Artifact>,
10571}
10572
10573#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10574#[serde(deny_unknown_fields)]
10575pub struct PrepareCollectionExportRequest {
10576 pub action_id: Digest,
10577 pub storage: PortabilityStorageCapability,
10578}
10579
10580#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10581#[serde(deny_unknown_fields)]
10582pub struct PrepareCollectionExportResult {
10583 pub semantic_digest: Digest,
10584 pub maximum_bytes: U64,
10585}
10586
10587#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10588#[serde(deny_unknown_fields)]
10589pub struct StartCollectionExportRequest {
10590 pub action_id: Digest,
10591 pub semantic_digest: Digest,
10592 pub storage: PortabilityStorageCapability,
10593}
10594
10595#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10596#[serde(deny_unknown_fields)]
10597pub struct StartCollectionExportResult {
10598 pub operation: Operation,
10599}
10600
10601#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10602#[serde(deny_unknown_fields)]
10603pub struct ResolveCollectionExportRequest {
10604 pub action_id: Digest,
10605 pub semantic_digest: Digest,
10606 pub storage: PortabilityStorageCapability,
10607}
10608
10609#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10610#[serde(deny_unknown_fields)]
10611pub struct ResolveCollectionExportResult {
10612 #[serde(default, skip_serializing_if = "Option::is_none")]
10613 pub operation: Option<Operation>,
10614 #[serde(default, skip_serializing_if = "Option::is_none")]
10615 pub artifact: Option<CollectionExportArtifact>,
10616 pub expired_unknown: bool,
10617}
10618
10619#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10620#[serde(deny_unknown_fields)]
10621pub struct VerifyCollectionExportRequest {
10622 pub artifact: CollectionExportArtifact,
10623 pub storage: PortabilityStorageCapability,
10624}
10625
10626#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10627#[serde(deny_unknown_fields)]
10628pub struct VerifyCollectionExportResult {
10629 pub verified: bool,
10630 pub source_collection_id: Identity,
10631 pub source_catalog_revision: U64,
10632 pub index_count: u32,
10633 pub document_count: U64,
10634}
10635
10636#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10637#[serde(deny_unknown_fields)]
10638pub struct PrepareCollectionExportRetirementRequest {
10639 pub action_id: Digest,
10640 pub artifact: CollectionExportArtifact,
10641 pub storage: PortabilityStorageCapability,
10642}
10643
10644#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10645#[serde(deny_unknown_fields)]
10646pub struct PrepareCollectionExportRetirementResult {
10647 pub semantic_digest: Digest,
10648 pub maximum_bytes: U64,
10649}
10650
10651#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10652#[serde(deny_unknown_fields)]
10653pub struct StartCollectionExportRetirementRequest {
10654 pub action_id: Digest,
10655 pub semantic_digest: Digest,
10656 pub artifact: CollectionExportArtifact,
10657 pub storage: PortabilityStorageCapability,
10658}
10659
10660#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10661#[serde(deny_unknown_fields)]
10662pub struct StartCollectionExportRetirementResult {
10663 pub operation: Operation,
10664}
10665
10666#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10667#[serde(deny_unknown_fields)]
10668pub struct ResolveCollectionExportRetirementRequest {
10669 pub action_id: Digest,
10670 pub semantic_digest: Digest,
10671 pub artifact: CollectionExportArtifact,
10672 pub storage: PortabilityStorageCapability,
10673}
10674
10675#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10676#[serde(deny_unknown_fields)]
10677pub struct ResolveCollectionExportRetirementResult {
10678 #[serde(default, skip_serializing_if = "Option::is_none")]
10679 pub operation: Option<Operation>,
10680 #[serde(default, skip_serializing_if = "Option::is_none")]
10681 pub retirement: Option<CollectionExportRetirement>,
10682 pub expired_unknown: bool,
10683}
10684
10685#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10686#[serde(deny_unknown_fields)]
10687pub struct PrepareCollectionRestoreRequest {
10688 pub action_id: Digest,
10689 pub artifact: CollectionExportArtifact,
10690 pub storage: PortabilityStorageCapability,
10691}
10692
10693#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10694#[serde(deny_unknown_fields)]
10695pub struct PrepareCollectionRestoreResult {
10696 pub semantic_digest: Digest,
10697 pub source_collection_id: Identity,
10698 pub maximum_bytes: U64,
10699}
10700
10701#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10702#[serde(deny_unknown_fields)]
10703pub struct StartCollectionRestoreRequest {
10704 pub action_id: Digest,
10705 pub semantic_digest: Digest,
10706 pub artifact: CollectionExportArtifact,
10707 pub storage: PortabilityStorageCapability,
10708}
10709
10710#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10711#[serde(deny_unknown_fields)]
10712pub struct StartCollectionRestoreResult {
10713 pub operation: Operation,
10714}
10715
10716#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10717#[serde(deny_unknown_fields)]
10718pub struct ResolveCollectionRestoreRequest {
10719 pub action_id: Digest,
10720 pub semantic_digest: Digest,
10721 pub artifact: CollectionExportArtifact,
10722 pub storage: PortabilityStorageCapability,
10723}
10724
10725#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10726#[serde(deny_unknown_fields)]
10727pub struct ResolveCollectionRestoreResult {
10728 #[serde(default, skip_serializing_if = "Option::is_none")]
10729 pub operation: Option<Operation>,
10730 pub expired_unknown: bool,
10731}
10732
10733#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10734#[serde(deny_unknown_fields)]
10735pub struct PrepareCollectionTransferExportRequest {
10736 pub action_id: Digest,
10737 pub expected_security_generation: U64,
10738 pub storage: PortabilityStorageCapability,
10739}
10740
10741#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10742#[serde(deny_unknown_fields)]
10743pub struct PrepareCollectionTransferExportResult {
10744 pub semantic_digest: Digest,
10745 pub maximum_bytes: U64,
10746}
10747
10748#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10749#[serde(deny_unknown_fields)]
10750pub struct StartCollectionTransferExportRequest {
10751 pub action_id: Digest,
10752 pub semantic_digest: Digest,
10753 pub expected_security_generation: U64,
10754 pub storage: PortabilityStorageCapability,
10755}
10756
10757#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10758#[serde(deny_unknown_fields)]
10759pub struct StartCollectionTransferExportResult {
10760 pub operation: Operation,
10761}
10762
10763#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10764#[serde(deny_unknown_fields)]
10765pub struct ResolveCollectionTransferExportRequest {
10766 pub action_id: Digest,
10767 pub semantic_digest: Digest,
10768 pub expected_security_generation: U64,
10769 pub storage: PortabilityStorageCapability,
10770}
10771
10772#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10773#[serde(deny_unknown_fields)]
10774pub struct ResolveCollectionTransferExportResult {
10775 #[serde(default, skip_serializing_if = "Option::is_none")]
10776 pub operation: Option<Operation>,
10777 #[serde(default, skip_serializing_if = "Option::is_none")]
10778 pub artifact: Option<CollectionTransferArtifact>,
10779 pub expired_unknown: bool,
10780}
10781
10782#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10783#[serde(deny_unknown_fields)]
10784pub struct PrepareCollectionTransferRestoreRequest {
10785 pub action_id: Digest,
10786 pub artifact: CollectionTransferArtifact,
10787 pub storage: PortabilityStorageCapability,
10788}
10789
10790#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10791#[serde(deny_unknown_fields)]
10792pub struct PrepareCollectionTransferRestoreResult {
10793 pub semantic_digest: Digest,
10794 pub source_collection_id: Identity,
10795 pub final_content_digest: Digest,
10796 pub maximum_bytes: U64,
10797}
10798
10799#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10800#[serde(deny_unknown_fields)]
10801pub struct StartCollectionTransferRestoreRequest {
10802 pub action_id: Digest,
10803 pub semantic_digest: Digest,
10804 pub artifact: CollectionTransferArtifact,
10805 pub storage: PortabilityStorageCapability,
10806}
10807
10808#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10809#[serde(deny_unknown_fields)]
10810pub struct StartCollectionTransferRestoreResult {
10811 pub operation: Operation,
10812}
10813
10814#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10815#[serde(deny_unknown_fields)]
10816pub struct ResolveCollectionTransferRestoreRequest {
10817 pub action_id: Digest,
10818 pub semantic_digest: Digest,
10819 pub artifact: CollectionTransferArtifact,
10820 pub storage: PortabilityStorageCapability,
10821}
10822
10823#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10824#[serde(deny_unknown_fields)]
10825pub struct ResolveCollectionTransferRestoreResult {
10826 #[serde(default, skip_serializing_if = "Option::is_none")]
10827 pub operation: Option<Operation>,
10828 #[serde(default, skip_serializing_if = "Option::is_none")]
10829 pub verified_content_digest: Option<Digest>,
10830 pub expired_unknown: bool,
10831}
10832
10833#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10834#[serde(deny_unknown_fields)]
10835pub struct PrepareIndexExportRequest {
10836 pub action_id: Digest,
10837 pub index: Resource,
10838 pub storage: PortabilityStorageCapability,
10839 pub maximum_records: u32,
10840 pub maximum_pages: u32,
10841 pub maximum_page_bytes: U64,
10842}
10843
10844#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10845#[serde(deny_unknown_fields)]
10846pub struct PrepareIndexExportResult {
10847 pub semantic_digest: Digest,
10848 pub maximum_bytes: U64,
10849}
10850
10851#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10852#[serde(deny_unknown_fields)]
10853pub struct StartIndexExportRequest {
10854 pub action_id: Digest,
10855 pub semantic_digest: Digest,
10856 pub index: Resource,
10857 pub storage: PortabilityStorageCapability,
10858 pub maximum_records: u32,
10859 pub maximum_pages: u32,
10860 pub maximum_page_bytes: U64,
10861}
10862
10863#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10864#[serde(deny_unknown_fields)]
10865pub struct StartIndexExportResult {
10866 pub operation: Operation,
10867}
10868
10869#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10870#[serde(deny_unknown_fields)]
10871pub struct ResolveIndexExportRequest {
10872 pub action_id: Digest,
10873 pub semantic_digest: Digest,
10874 pub index: Resource,
10875 pub storage: PortabilityStorageCapability,
10876 pub maximum_records: u32,
10877 pub maximum_pages: u32,
10878 pub maximum_page_bytes: U64,
10879}
10880
10881#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10882#[serde(deny_unknown_fields)]
10883pub struct ResolveIndexExportResult {
10884 #[serde(default, skip_serializing_if = "Option::is_none")]
10885 pub operation: Option<Operation>,
10886 #[serde(default, skip_serializing_if = "Option::is_none")]
10887 pub artifact: Option<IndexTransferArtifact>,
10888 pub expired_unknown: bool,
10889}
10890
10891#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10892#[serde(deny_unknown_fields)]
10893pub struct VerifyIndexExportRequest {
10894 pub artifact: IndexTransferArtifact,
10895 pub storage: PortabilityStorageCapability,
10896}
10897
10898#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10899#[serde(deny_unknown_fields)]
10900pub struct VerifyIndexExportResult {
10901 pub verified: bool,
10902 pub source_cluster_storage_id: Identity,
10903 pub source_collection_id: Identity,
10904 pub source_index: Resource,
10905 pub source_catalog_revision: U64,
10906 pub source_cut_digest: Digest,
10907 pub page_count: u32,
10908 pub record_count: u32,
10909}
10910
10911#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10912#[serde(deny_unknown_fields)]
10913pub struct PrepareIndexImportRequest {
10914 pub action_id: Digest,
10915 pub artifact: IndexTransferArtifact,
10916 pub storage: PortabilityStorageCapability,
10917 pub destination_name: String,
10918 pub expected_name_absent: bool,
10919 pub destination_policies: IndexPolicies,
10920 pub destination_resource_spec: IndexResourceSpec,
10921}
10922
10923#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10924#[serde(deny_unknown_fields)]
10925pub struct PrepareIndexImportResult {
10926 pub semantic_digest: Digest,
10927 pub source_cluster_storage_id: Identity,
10928 pub source_collection_id: Identity,
10929 pub source_index: Resource,
10930 pub maximum_bytes: U64,
10931}
10932
10933#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10934#[serde(deny_unknown_fields)]
10935pub struct StartIndexImportRequest {
10936 pub action_id: Digest,
10937 pub semantic_digest: Digest,
10938 pub artifact: IndexTransferArtifact,
10939 pub storage: PortabilityStorageCapability,
10940 pub destination_name: String,
10941 pub expected_name_absent: bool,
10942 pub destination_policies: IndexPolicies,
10943 pub destination_resource_spec: IndexResourceSpec,
10944}
10945
10946#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10947#[serde(deny_unknown_fields)]
10948pub struct StartIndexImportResult {
10949 pub operation: Operation,
10950}
10951
10952#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10953#[serde(deny_unknown_fields)]
10954pub struct ResolveIndexImportRequest {
10955 pub action_id: Digest,
10956 pub semantic_digest: Digest,
10957 pub artifact: IndexTransferArtifact,
10958 pub storage: PortabilityStorageCapability,
10959 pub destination_name: String,
10960 pub expected_name_absent: bool,
10961 pub destination_policies: IndexPolicies,
10962 pub destination_resource_spec: IndexResourceSpec,
10963}
10964
10965#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10966#[serde(deny_unknown_fields)]
10967pub struct ResolveIndexImportResult {
10968 #[serde(default, skip_serializing_if = "Option::is_none")]
10969 pub operation: Option<Operation>,
10970 #[serde(default, skip_serializing_if = "Option::is_none")]
10971 pub destination: Option<Resource>,
10972 pub expired_unknown: bool,
10973}
10974
10975#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10976#[serde(deny_unknown_fields)]
10977pub struct ReadArtifactChunkRequest {
10978 pub artifact: Artifact,
10979 pub offset: U64,
10980 pub length: u32,
10981}
10982
10983#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10984#[serde(deny_unknown_fields)]
10985pub struct ReadArtifactChunkResult {
10986 pub offset: U64,
10987 pub bytes_base64: String,
10988 pub chunk_sha256: String,
10989 pub artifact_sha256: String,
10990 pub complete: bool,
10991}
10992
10993#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10994#[serde(deny_unknown_fields)]
10995pub struct ExportUsageRequest {
10996 pub window_start: U64,
10997 pub window_end: U64,
10998 pub page_size: u32,
10999 #[serde(default, skip_serializing_if = "Option::is_none")]
11000 pub cursor: Option<Cursor>,
11001}
11002
11003#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11004#[serde(deny_unknown_fields)]
11005pub struct ExportUsageResult {
11006 pub units: Vec<CoreUsageUnits>,
11007 pub corrections: Vec<CoreUsageCorrection>,
11008 #[serde(default, skip_serializing_if = "Option::is_none")]
11009 pub next_cursor: Option<Cursor>,
11010 pub cumulative_through: U64,
11011}
11012
11013#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11014#[serde(deny_unknown_fields)]
11015pub struct ReadLogicalOccupancyRequest {
11016 pub index: Resource,
11017 #[serde(default, skip_serializing_if = "Option::is_none")]
11018 pub pit: Option<Cursor>,
11019 #[serde(default, skip_serializing_if = "Option::is_none")]
11020 pub window_start: Option<U64>,
11021 #[serde(default, skip_serializing_if = "Option::is_none")]
11022 pub window_end: Option<U64>,
11023 pub page_size: u32,
11024 #[serde(default, skip_serializing_if = "Option::is_none")]
11025 pub cursor: Option<Cursor>,
11026}
11027
11028#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11029#[serde(deny_unknown_fields)]
11030pub struct ReadLogicalOccupancyResult {
11031 #[serde(default, skip_serializing_if = "Option::is_none")]
11032 pub evidence: Option<LogicalOccupancySnapshotEvidence>,
11033 #[serde(default, skip_serializing_if = "Option::is_none")]
11034 pub window_gap: Option<LogicalOccupancyWindowGap>,
11035 #[serde(default, skip_serializing_if = "Option::is_none")]
11036 pub next_cursor: Option<Cursor>,
11037}
11038
11039#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11040#[serde(deny_unknown_fields)]
11041pub struct ExecuteStateReadRequest {
11042 pub index: Resource,
11043 pub operation: StateOperation,
11044}
11045
11046#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11047#[serde(deny_unknown_fields)]
11048pub struct ExecuteStateReadResult {
11049 pub result: StateCommandResult,
11050}
11051
11052#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11053#[serde(deny_unknown_fields)]
11054pub struct PrepareStateWriteRequest {
11055 pub index: Resource,
11056 pub action_id: Digest,
11057 pub operation: StateOperation,
11058}
11059
11060#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11061#[serde(deny_unknown_fields)]
11062pub struct PrepareStateWriteResult {
11063 pub locator: Locator,
11064 pub semantic_digest: Digest,
11065 pub retention_max_entries: U64,
11066 pub retention_sequence_window: U64,
11067}
11068
11069#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11070#[serde(deny_unknown_fields)]
11071pub struct SubmitStateWriteRequest {
11072 pub index: Resource,
11073 pub action_id: Digest,
11074 pub operation: StateOperation,
11075 pub locator: Locator,
11076 pub semantic_digest: Digest,
11077}
11078
11079#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11080#[serde(deny_unknown_fields)]
11081pub struct SubmitStateWriteResult {
11082 #[serde(default, skip_serializing_if = "Option::is_none")]
11083 pub result: Option<StateCommandResult>,
11084 #[serde(default, skip_serializing_if = "Option::is_none")]
11085 pub resolution: Option<StateWriteResolution>,
11086 pub mutation_outcome: MutationOutcome,
11087 #[serde(default, skip_serializing_if = "Option::is_none")]
11088 pub achievement: Option<WriteAchievement>,
11089}
11090
11091#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11092#[serde(deny_unknown_fields)]
11093pub struct ResolveStateWriteRequest {
11094 pub index: Resource,
11095 pub action_id: Digest,
11096 pub operation: StateOperation,
11097 pub locator: Locator,
11098 pub semantic_digest: Digest,
11099}
11100
11101#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11102#[serde(deny_unknown_fields)]
11103pub struct ResolveStateWriteResult {
11104 pub resolution: StateWriteResolution,
11105}
11106
11107#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11108#[serde(tag = "command", content = "body", rename_all = "snake_case")]
11109pub enum RequestBody {
11110 Discover(DiscoverRequest),
11111 ListIndexes(ListIndexesRequest),
11112 GetIndex(GetIndexRequest),
11113 ValidateIndexChange(ValidateIndexChangeRequest),
11114 ApplyIndexChange(ApplyIndexChangeRequest),
11115 ResolveIndexChange(ResolveIndexChangeRequest),
11116 ApplyAdministrationMutation(ApplyAdministrationMutationRequest),
11117 ListAliases(ListAliasesRequest),
11118 GetAlias(GetAliasRequest),
11119 ListDataStreams(ListDataStreamsRequest),
11120 GetDataStream(GetDataStreamRequest),
11121 ListComponentTemplates(ListComponentTemplatesRequest),
11122 GetComponentTemplate(GetComponentTemplateRequest),
11123 ListIndexTemplates(ListIndexTemplatesRequest),
11124 GetIndexTemplate(GetIndexTemplateRequest),
11125 ListIngestPipelines(ListIngestPipelinesRequest),
11126 GetIngestPipeline(GetIngestPipelineRequest),
11127 SimulateIngestPipeline(SimulateIngestPipelineRequest),
11128 ReprocessByQuery(ReprocessByQueryRequest),
11129 ListLifecyclePolicies(ListLifecyclePoliciesRequest),
11130 GetLifecyclePolicy(GetLifecyclePolicyRequest),
11131 PrepareCreateIndex(PrepareCreateIndexRequest),
11132 PrepareDeleteIndex(PrepareDeleteIndexRequest),
11133 SubmitCatalogAction(SubmitCatalogActionRequest),
11134 ResolveCatalogAction(ResolveCatalogActionRequest),
11135 PrepareReplayableSourceIndex(PrepareReplayableSourceIndexRequest),
11136 SubmitReplayableSourceIndex(SubmitReplayableSourceIndexRequest),
11137 GetReplayableSource(GetReplayableSourceRequest),
11138 ControlReplayableSource(ControlReplayableSourceRequest),
11139 CloneIndex(CloneIndexRequest),
11140 ConfigureHistory(ConfigureHistoryRequest),
11141 GetHistory(GetHistoryRequest),
11142 ResolveHistory(ResolveHistoryRequest),
11143 PlaceHistoryHold(PlaceHistoryHoldRequest),
11144 ReleaseHistoryHold(ReleaseHistoryHoldRequest),
11145 PrepareDocumentMutation(PrepareDocumentMutationRequest),
11146 SubmitDocumentMutation(SubmitDocumentMutationRequest),
11147 PrepareDocumentBulk(PrepareDocumentBulkRequest),
11148 SubmitDocumentBulk(SubmitDocumentBulkRequest),
11149 ResolveDocumentBulk(ResolveDocumentBulkRequest),
11150 PrepareAppendBulk(PrepareAppendBulkRequest),
11151 SubmitAppendBulk(SubmitAppendBulkRequest),
11152 ResolveAppendBulk(ResolveAppendBulkRequest),
11153 ObserveAppendCommitted(ObserveAppendCommittedRequest),
11154 ResolveDocumentMutation(ResolveDocumentMutationRequest),
11155 GetDocument(GetDocumentRequest),
11156 Search(SearchRequest),
11157 TraverseRelationships(TraverseRelationshipsRequest),
11158 QueryProfiles(QueryProfilesRequest),
11159 EvaluateTemporalEvidence(EvaluateTemporalEvidenceRequest),
11160 CreateContinuousTemporalEvaluation(CreateContinuousTemporalEvaluationRequest),
11161 GetContinuousTemporalEvaluation(GetContinuousTemporalEvaluationRequest),
11162 PauseContinuousTemporalEvaluation(PauseContinuousTemporalEvaluationRequest),
11163 ResumeContinuousTemporalEvaluation(ResumeContinuousTemporalEvaluationRequest),
11164 ReplaceContinuousTemporalEvaluation(ReplaceContinuousTemporalEvaluationRequest),
11165 RetireContinuousTemporalEvaluation(RetireContinuousTemporalEvaluationRequest),
11166 ReadContinuousTemporalEvidence(ReadContinuousTemporalEvidenceRequest),
11167 ValidateSearch(ValidateSearchRequest),
11168 MaterializeTableSnapshot(MaterializeTableSnapshotRequest),
11169 ResolveTableSnapshot(ResolveTableSnapshotRequest),
11170 ReadTableSnapshot(ReadTableSnapshotRequest),
11171 OpenPit(OpenPitRequest),
11172 RenewPit(RenewPitRequest),
11173 ClosePit(ClosePitRequest),
11174 ListOperations(ListOperationsRequest),
11175 GetOperation(GetOperationRequest),
11176 WaitOperation(WaitOperationRequest),
11177 CancelOperation(CancelOperationRequest),
11178 ListAuditEvents(ListAuditEventsRequest),
11179 ExportAuditEvents(ExportAuditEventsRequest),
11180 ReserveServiceCredential(ReserveServiceCredentialRequest),
11181 ReserveServiceCredentialRotation(ReserveServiceCredentialRotationRequest),
11182 ActivateServiceCredential(ActivateServiceCredentialRequest),
11183 ResolveServiceCredentialReservation(ResolveServiceCredentialReservationRequest),
11184 PrepareRevokeServiceCredential(PrepareRevokeServiceCredentialRequest),
11185 RevokeServiceCredential(RevokeServiceCredentialRequest),
11186 ResolveSecurityAction(ResolveSecurityActionRequest),
11187 GetSecurityRole(GetSecurityRoleRequest),
11188 PrepareRoleAppendAccessChange(PrepareRoleAppendAccessChangeRequest),
11189 SubmitRoleAppendAccessChange(SubmitRoleAppendAccessChangeRequest),
11190 PrepareSourceAuthorizationProjection(PrepareSourceAuthorizationProjectionRequest),
11191 SubmitSourceAuthorizationProjection(SubmitSourceAuthorizationProjectionRequest),
11192 ResolveSourceAuthorizationProjection(ResolveSourceAuthorizationProjectionRequest),
11193 ListServiceCredentials(ListServiceCredentialsRequest),
11194 GetRuntimeStatus(GetRuntimeStatusRequest),
11195 GetResultCacheStatus(GetResultCacheStatusRequest),
11196 GetFieldPromotionStatus(GetFieldPromotionStatusRequest),
11197 GetOverloadStatus(GetOverloadStatusRequest),
11198 ConfigureExternalKey(ConfigureExternalKeyRequest),
11199 RotateExternalKeyBinding(RotateExternalKeyBindingRequest),
11200 RetireExternalKeyBinding(RetireExternalKeyBindingRequest),
11201 ResolveExternalKeyBindingRetirement(ResolveExternalKeyBindingRetirementRequest),
11202 ConfigureAggregateThenDelete(ConfigureAggregateThenDeleteRequest),
11203 GetLifecycleStatus(GetLifecycleStatusRequest),
11204 GetQuota(GetQuotaRequest),
11205 UpdateQuota(UpdateQuotaRequest),
11206 GetBinding(GetBindingRequest),
11207 GetAdmissionStatus(GetAdmissionStatusRequest),
11208 SetAdmission(SetAdmissionRequest),
11209 GetQuiesceStatus(GetQuiesceStatusRequest),
11210 GetDecommissionReadiness(GetDecommissionReadinessRequest),
11211 GetUpgradeReadiness(GetUpgradeReadinessRequest),
11212 GetMaintenanceStatus(GetMaintenanceStatusRequest),
11213 WarmVectorIndex(WarmVectorIndexRequest),
11214 EvaluateVectorRecall(EvaluateVectorRecallRequest),
11215 CalibrateVectorStrategy(CalibrateVectorStrategyRequest),
11216 GetVectorDiagnostic(GetVectorDiagnosticRequest),
11217 CreateDiagnostic(CreateDiagnosticRequest),
11218 GetDiagnostic(GetDiagnosticRequest),
11219 PrepareCollectionExport(PrepareCollectionExportRequest),
11220 StartCollectionExport(StartCollectionExportRequest),
11221 ResolveCollectionExport(ResolveCollectionExportRequest),
11222 VerifyCollectionExport(VerifyCollectionExportRequest),
11223 PrepareCollectionExportRetirement(PrepareCollectionExportRetirementRequest),
11224 StartCollectionExportRetirement(StartCollectionExportRetirementRequest),
11225 ResolveCollectionExportRetirement(ResolveCollectionExportRetirementRequest),
11226 PrepareCollectionRestore(PrepareCollectionRestoreRequest),
11227 StartCollectionRestore(StartCollectionRestoreRequest),
11228 ResolveCollectionRestore(ResolveCollectionRestoreRequest),
11229 PrepareCollectionTransferExport(PrepareCollectionTransferExportRequest),
11230 StartCollectionTransferExport(StartCollectionTransferExportRequest),
11231 ResolveCollectionTransferExport(ResolveCollectionTransferExportRequest),
11232 PrepareCollectionTransferRestore(PrepareCollectionTransferRestoreRequest),
11233 StartCollectionTransferRestore(StartCollectionTransferRestoreRequest),
11234 ResolveCollectionTransferRestore(ResolveCollectionTransferRestoreRequest),
11235 PrepareIndexExport(PrepareIndexExportRequest),
11236 StartIndexExport(StartIndexExportRequest),
11237 ResolveIndexExport(ResolveIndexExportRequest),
11238 VerifyIndexExport(VerifyIndexExportRequest),
11239 PrepareIndexImport(PrepareIndexImportRequest),
11240 StartIndexImport(StartIndexImportRequest),
11241 ResolveIndexImport(ResolveIndexImportRequest),
11242 ReadArtifactChunk(ReadArtifactChunkRequest),
11243 ExportUsage(ExportUsageRequest),
11244 ReadLogicalOccupancy(ReadLogicalOccupancyRequest),
11245 ExecuteStateRead(ExecuteStateReadRequest),
11246 PrepareStateWrite(PrepareStateWriteRequest),
11247 SubmitStateWrite(SubmitStateWriteRequest),
11248 ResolveStateWrite(ResolveStateWriteRequest),
11249}
11250
11251#[allow(clippy::large_enum_variant)]
11254#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11255#[serde(tag = "command", content = "body", rename_all = "snake_case")]
11256pub enum ResultBody {
11257 Discover(DiscoverResult),
11258 ListIndexes(ListIndexesResult),
11259 GetIndex(GetIndexResult),
11260 ValidateIndexChange(ValidateIndexChangeResult),
11261 ApplyIndexChange(ApplyIndexChangeResult),
11262 ResolveIndexChange(ResolveIndexChangeResult),
11263 ApplyAdministrationMutation(ApplyAdministrationMutationResult),
11264 ListAliases(ListAliasesResult),
11265 GetAlias(GetAliasResult),
11266 ListDataStreams(ListDataStreamsResult),
11267 GetDataStream(GetDataStreamResult),
11268 ListComponentTemplates(ListComponentTemplatesResult),
11269 GetComponentTemplate(GetComponentTemplateResult),
11270 ListIndexTemplates(ListIndexTemplatesResult),
11271 GetIndexTemplate(GetIndexTemplateResult),
11272 ListIngestPipelines(ListIngestPipelinesResult),
11273 GetIngestPipeline(GetIngestPipelineResult),
11274 SimulateIngestPipeline(SimulateIngestPipelineResult),
11275 ReprocessByQuery(ReprocessByQueryResult),
11276 ListLifecyclePolicies(ListLifecyclePoliciesResult),
11277 GetLifecyclePolicy(GetLifecyclePolicyResult),
11278 PrepareCreateIndex(PrepareCreateIndexResult),
11279 PrepareDeleteIndex(PrepareDeleteIndexResult),
11280 SubmitCatalogAction(SubmitCatalogActionResult),
11281 ResolveCatalogAction(ResolveCatalogActionResult),
11282 PrepareReplayableSourceIndex(PrepareReplayableSourceIndexResult),
11283 SubmitReplayableSourceIndex(SubmitReplayableSourceIndexResult),
11284 GetReplayableSource(GetReplayableSourceResult),
11285 ControlReplayableSource(ControlReplayableSourceResult),
11286 CloneIndex(CloneIndexResult),
11287 ConfigureHistory(ConfigureHistoryResult),
11288 GetHistory(GetHistoryResult),
11289 ResolveHistory(ResolveHistoryResult),
11290 PlaceHistoryHold(PlaceHistoryHoldResult),
11291 ReleaseHistoryHold(ReleaseHistoryHoldResult),
11292 PrepareDocumentMutation(PrepareDocumentMutationResult),
11293 SubmitDocumentMutation(SubmitDocumentMutationResult),
11294 PrepareDocumentBulk(PrepareDocumentBulkResult),
11295 SubmitDocumentBulk(SubmitDocumentBulkResult),
11296 ResolveDocumentBulk(ResolveDocumentBulkResult),
11297 PrepareAppendBulk(PrepareAppendBulkResult),
11298 SubmitAppendBulk(SubmitAppendBulkResult),
11299 ResolveAppendBulk(ResolveAppendBulkResult),
11300 ObserveAppendCommitted(ObserveAppendCommittedResult),
11301 ResolveDocumentMutation(ResolveDocumentMutationResult),
11302 GetDocument(GetDocumentResult),
11303 Search(SearchResult),
11304 TraverseRelationships(TraverseRelationshipsResult),
11305 QueryProfiles(QueryProfilesResult),
11306 EvaluateTemporalEvidence(EvaluateTemporalEvidenceResult),
11307 CreateContinuousTemporalEvaluation(CreateContinuousTemporalEvaluationResult),
11308 GetContinuousTemporalEvaluation(GetContinuousTemporalEvaluationResult),
11309 PauseContinuousTemporalEvaluation(PauseContinuousTemporalEvaluationResult),
11310 ResumeContinuousTemporalEvaluation(ResumeContinuousTemporalEvaluationResult),
11311 ReplaceContinuousTemporalEvaluation(ReplaceContinuousTemporalEvaluationResult),
11312 RetireContinuousTemporalEvaluation(RetireContinuousTemporalEvaluationResult),
11313 ReadContinuousTemporalEvidence(ReadContinuousTemporalEvidenceResult),
11314 ValidateSearch(ValidateSearchResult),
11315 MaterializeTableSnapshot(MaterializeTableSnapshotResult),
11316 ResolveTableSnapshot(ResolveTableSnapshotResult),
11317 ReadTableSnapshot(ReadTableSnapshotResult),
11318 OpenPit(OpenPitResult),
11319 RenewPit(RenewPitResult),
11320 ClosePit(ClosePitResult),
11321 ListOperations(ListOperationsResult),
11322 GetOperation(GetOperationResult),
11323 WaitOperation(WaitOperationResult),
11324 CancelOperation(CancelOperationResult),
11325 ListAuditEvents(ListAuditEventsResult),
11326 ExportAuditEvents(ExportAuditEventsResult),
11327 ReserveServiceCredential(ReserveServiceCredentialResult),
11328 ReserveServiceCredentialRotation(ReserveServiceCredentialRotationResult),
11329 ActivateServiceCredential(ActivateServiceCredentialResult),
11330 ResolveServiceCredentialReservation(ResolveServiceCredentialReservationResult),
11331 PrepareRevokeServiceCredential(PrepareRevokeServiceCredentialResult),
11332 RevokeServiceCredential(RevokeServiceCredentialResult),
11333 ResolveSecurityAction(ResolveSecurityActionResult),
11334 GetSecurityRole(GetSecurityRoleResult),
11335 PrepareRoleAppendAccessChange(PrepareRoleAppendAccessChangeResult),
11336 SubmitRoleAppendAccessChange(SubmitRoleAppendAccessChangeResult),
11337 PrepareSourceAuthorizationProjection(PrepareSourceAuthorizationProjectionResult),
11338 SubmitSourceAuthorizationProjection(SubmitSourceAuthorizationProjectionResult),
11339 ResolveSourceAuthorizationProjection(ResolveSourceAuthorizationProjectionResult),
11340 ListServiceCredentials(ListServiceCredentialsResult),
11341 GetRuntimeStatus(GetRuntimeStatusResult),
11342 GetResultCacheStatus(GetResultCacheStatusResult),
11343 GetFieldPromotionStatus(GetFieldPromotionStatusResult),
11344 GetOverloadStatus(GetOverloadStatusResult),
11345 ConfigureExternalKey(ConfigureExternalKeyResult),
11346 RotateExternalKeyBinding(RotateExternalKeyBindingResult),
11347 RetireExternalKeyBinding(RetireExternalKeyBindingResult),
11348 ResolveExternalKeyBindingRetirement(ResolveExternalKeyBindingRetirementResult),
11349 ConfigureAggregateThenDelete(ConfigureAggregateThenDeleteResult),
11350 GetLifecycleStatus(GetLifecycleStatusResult),
11351 GetQuota(GetQuotaResult),
11352 UpdateQuota(UpdateQuotaResult),
11353 GetBinding(GetBindingResult),
11354 GetAdmissionStatus(GetAdmissionStatusResult),
11355 SetAdmission(SetAdmissionResult),
11356 GetQuiesceStatus(GetQuiesceStatusResult),
11357 GetDecommissionReadiness(GetDecommissionReadinessResult),
11358 GetUpgradeReadiness(GetUpgradeReadinessResult),
11359 GetMaintenanceStatus(GetMaintenanceStatusResult),
11360 WarmVectorIndex(WarmVectorIndexResult),
11361 EvaluateVectorRecall(EvaluateVectorRecallResult),
11362 CalibrateVectorStrategy(CalibrateVectorStrategyResult),
11363 GetVectorDiagnostic(GetVectorDiagnosticResult),
11364 CreateDiagnostic(CreateDiagnosticResult),
11365 GetDiagnostic(GetDiagnosticResult),
11366 PrepareCollectionExport(PrepareCollectionExportResult),
11367 StartCollectionExport(StartCollectionExportResult),
11368 ResolveCollectionExport(ResolveCollectionExportResult),
11369 VerifyCollectionExport(VerifyCollectionExportResult),
11370 PrepareCollectionExportRetirement(PrepareCollectionExportRetirementResult),
11371 StartCollectionExportRetirement(StartCollectionExportRetirementResult),
11372 ResolveCollectionExportRetirement(ResolveCollectionExportRetirementResult),
11373 PrepareCollectionRestore(PrepareCollectionRestoreResult),
11374 StartCollectionRestore(StartCollectionRestoreResult),
11375 ResolveCollectionRestore(ResolveCollectionRestoreResult),
11376 PrepareCollectionTransferExport(PrepareCollectionTransferExportResult),
11377 StartCollectionTransferExport(StartCollectionTransferExportResult),
11378 ResolveCollectionTransferExport(ResolveCollectionTransferExportResult),
11379 PrepareCollectionTransferRestore(PrepareCollectionTransferRestoreResult),
11380 StartCollectionTransferRestore(StartCollectionTransferRestoreResult),
11381 ResolveCollectionTransferRestore(ResolveCollectionTransferRestoreResult),
11382 PrepareIndexExport(PrepareIndexExportResult),
11383 StartIndexExport(StartIndexExportResult),
11384 ResolveIndexExport(ResolveIndexExportResult),
11385 VerifyIndexExport(VerifyIndexExportResult),
11386 PrepareIndexImport(PrepareIndexImportResult),
11387 StartIndexImport(StartIndexImportResult),
11388 ResolveIndexImport(ResolveIndexImportResult),
11389 ReadArtifactChunk(ReadArtifactChunkResult),
11390 ExportUsage(ExportUsageResult),
11391 ReadLogicalOccupancy(ReadLogicalOccupancyResult),
11392 ExecuteStateRead(ExecuteStateReadResult),
11393 PrepareStateWrite(PrepareStateWriteResult),
11394 SubmitStateWrite(SubmitStateWriteResult),
11395 ResolveStateWrite(ResolveStateWriteResult),
11396}
11397
11398pub const fn command_for_request(value: &RequestBody) -> Command {
11399 match value {
11400 RequestBody::Discover(_) => Command::Discover,
11401 RequestBody::ListIndexes(_) => Command::ListIndexes,
11402 RequestBody::GetIndex(_) => Command::GetIndex,
11403 RequestBody::ValidateIndexChange(_) => Command::ValidateIndexChange,
11404 RequestBody::ApplyIndexChange(_) => Command::ApplyIndexChange,
11405 RequestBody::ResolveIndexChange(_) => Command::ResolveIndexChange,
11406 RequestBody::ApplyAdministrationMutation(_) => Command::ApplyAdministrationMutation,
11407 RequestBody::ListAliases(_) => Command::ListAliases,
11408 RequestBody::GetAlias(_) => Command::GetAlias,
11409 RequestBody::ListDataStreams(_) => Command::ListDataStreams,
11410 RequestBody::GetDataStream(_) => Command::GetDataStream,
11411 RequestBody::ListComponentTemplates(_) => Command::ListComponentTemplates,
11412 RequestBody::GetComponentTemplate(_) => Command::GetComponentTemplate,
11413 RequestBody::ListIndexTemplates(_) => Command::ListIndexTemplates,
11414 RequestBody::GetIndexTemplate(_) => Command::GetIndexTemplate,
11415 RequestBody::ListIngestPipelines(_) => Command::ListIngestPipelines,
11416 RequestBody::GetIngestPipeline(_) => Command::GetIngestPipeline,
11417 RequestBody::SimulateIngestPipeline(_) => Command::SimulateIngestPipeline,
11418 RequestBody::ReprocessByQuery(_) => Command::ReprocessByQuery,
11419 RequestBody::ListLifecyclePolicies(_) => Command::ListLifecyclePolicies,
11420 RequestBody::GetLifecyclePolicy(_) => Command::GetLifecyclePolicy,
11421 RequestBody::PrepareCreateIndex(_) => Command::PrepareCreateIndex,
11422 RequestBody::PrepareDeleteIndex(_) => Command::PrepareDeleteIndex,
11423 RequestBody::SubmitCatalogAction(_) => Command::SubmitCatalogAction,
11424 RequestBody::ResolveCatalogAction(_) => Command::ResolveCatalogAction,
11425 RequestBody::PrepareReplayableSourceIndex(_) => Command::PrepareReplayableSourceIndex,
11426 RequestBody::SubmitReplayableSourceIndex(_) => Command::SubmitReplayableSourceIndex,
11427 RequestBody::GetReplayableSource(_) => Command::GetReplayableSource,
11428 RequestBody::ControlReplayableSource(_) => Command::ControlReplayableSource,
11429 RequestBody::CloneIndex(_) => Command::CloneIndex,
11430 RequestBody::ConfigureHistory(_) => Command::ConfigureHistory,
11431 RequestBody::GetHistory(_) => Command::GetHistory,
11432 RequestBody::ResolveHistory(_) => Command::ResolveHistory,
11433 RequestBody::PlaceHistoryHold(_) => Command::PlaceHistoryHold,
11434 RequestBody::ReleaseHistoryHold(_) => Command::ReleaseHistoryHold,
11435 RequestBody::PrepareDocumentMutation(_) => Command::PrepareDocumentMutation,
11436 RequestBody::SubmitDocumentMutation(_) => Command::SubmitDocumentMutation,
11437 RequestBody::PrepareDocumentBulk(_) => Command::PrepareDocumentBulk,
11438 RequestBody::SubmitDocumentBulk(_) => Command::SubmitDocumentBulk,
11439 RequestBody::ResolveDocumentBulk(_) => Command::ResolveDocumentBulk,
11440 RequestBody::PrepareAppendBulk(_) => Command::PrepareAppendBulk,
11441 RequestBody::SubmitAppendBulk(_) => Command::SubmitAppendBulk,
11442 RequestBody::ResolveAppendBulk(_) => Command::ResolveAppendBulk,
11443 RequestBody::ObserveAppendCommitted(_) => Command::ObserveAppendCommitted,
11444 RequestBody::ResolveDocumentMutation(_) => Command::ResolveDocumentMutation,
11445 RequestBody::GetDocument(_) => Command::GetDocument,
11446 RequestBody::Search(_) => Command::Search,
11447 RequestBody::TraverseRelationships(_) => Command::TraverseRelationships,
11448 RequestBody::QueryProfiles(_) => Command::QueryProfiles,
11449 RequestBody::EvaluateTemporalEvidence(_) => Command::EvaluateTemporalEvidence,
11450 RequestBody::CreateContinuousTemporalEvaluation(_) => Command::CreateContinuousTemporalEvaluation,
11451 RequestBody::GetContinuousTemporalEvaluation(_) => Command::GetContinuousTemporalEvaluation,
11452 RequestBody::PauseContinuousTemporalEvaluation(_) => Command::PauseContinuousTemporalEvaluation,
11453 RequestBody::ResumeContinuousTemporalEvaluation(_) => Command::ResumeContinuousTemporalEvaluation,
11454 RequestBody::ReplaceContinuousTemporalEvaluation(_) => Command::ReplaceContinuousTemporalEvaluation,
11455 RequestBody::RetireContinuousTemporalEvaluation(_) => Command::RetireContinuousTemporalEvaluation,
11456 RequestBody::ReadContinuousTemporalEvidence(_) => Command::ReadContinuousTemporalEvidence,
11457 RequestBody::ValidateSearch(_) => Command::ValidateSearch,
11458 RequestBody::MaterializeTableSnapshot(_) => Command::MaterializeTableSnapshot,
11459 RequestBody::ResolveTableSnapshot(_) => Command::ResolveTableSnapshot,
11460 RequestBody::ReadTableSnapshot(_) => Command::ReadTableSnapshot,
11461 RequestBody::OpenPit(_) => Command::OpenPit,
11462 RequestBody::RenewPit(_) => Command::RenewPit,
11463 RequestBody::ClosePit(_) => Command::ClosePit,
11464 RequestBody::ListOperations(_) => Command::ListOperations,
11465 RequestBody::GetOperation(_) => Command::GetOperation,
11466 RequestBody::WaitOperation(_) => Command::WaitOperation,
11467 RequestBody::CancelOperation(_) => Command::CancelOperation,
11468 RequestBody::ListAuditEvents(_) => Command::ListAuditEvents,
11469 RequestBody::ExportAuditEvents(_) => Command::ExportAuditEvents,
11470 RequestBody::ReserveServiceCredential(_) => Command::ReserveServiceCredential,
11471 RequestBody::ReserveServiceCredentialRotation(_) => Command::ReserveServiceCredentialRotation,
11472 RequestBody::ActivateServiceCredential(_) => Command::ActivateServiceCredential,
11473 RequestBody::ResolveServiceCredentialReservation(_) => Command::ResolveServiceCredentialReservation,
11474 RequestBody::PrepareRevokeServiceCredential(_) => Command::PrepareRevokeServiceCredential,
11475 RequestBody::RevokeServiceCredential(_) => Command::RevokeServiceCredential,
11476 RequestBody::ResolveSecurityAction(_) => Command::ResolveSecurityAction,
11477 RequestBody::GetSecurityRole(_) => Command::GetSecurityRole,
11478 RequestBody::PrepareRoleAppendAccessChange(_) => Command::PrepareRoleAppendAccessChange,
11479 RequestBody::SubmitRoleAppendAccessChange(_) => Command::SubmitRoleAppendAccessChange,
11480 RequestBody::PrepareSourceAuthorizationProjection(_) => Command::PrepareSourceAuthorizationProjection,
11481 RequestBody::SubmitSourceAuthorizationProjection(_) => Command::SubmitSourceAuthorizationProjection,
11482 RequestBody::ResolveSourceAuthorizationProjection(_) => Command::ResolveSourceAuthorizationProjection,
11483 RequestBody::ListServiceCredentials(_) => Command::ListServiceCredentials,
11484 RequestBody::GetRuntimeStatus(_) => Command::GetRuntimeStatus,
11485 RequestBody::GetResultCacheStatus(_) => Command::GetResultCacheStatus,
11486 RequestBody::GetFieldPromotionStatus(_) => Command::GetFieldPromotionStatus,
11487 RequestBody::GetOverloadStatus(_) => Command::GetOverloadStatus,
11488 RequestBody::ConfigureExternalKey(_) => Command::ConfigureExternalKey,
11489 RequestBody::RotateExternalKeyBinding(_) => Command::RotateExternalKeyBinding,
11490 RequestBody::RetireExternalKeyBinding(_) => Command::RetireExternalKeyBinding,
11491 RequestBody::ResolveExternalKeyBindingRetirement(_) => Command::ResolveExternalKeyBindingRetirement,
11492 RequestBody::ConfigureAggregateThenDelete(_) => Command::ConfigureAggregateThenDelete,
11493 RequestBody::GetLifecycleStatus(_) => Command::GetLifecycleStatus,
11494 RequestBody::GetQuota(_) => Command::GetQuota,
11495 RequestBody::UpdateQuota(_) => Command::UpdateQuota,
11496 RequestBody::GetBinding(_) => Command::GetBinding,
11497 RequestBody::GetAdmissionStatus(_) => Command::GetAdmissionStatus,
11498 RequestBody::SetAdmission(_) => Command::SetAdmission,
11499 RequestBody::GetQuiesceStatus(_) => Command::GetQuiesceStatus,
11500 RequestBody::GetDecommissionReadiness(_) => Command::GetDecommissionReadiness,
11501 RequestBody::GetUpgradeReadiness(_) => Command::GetUpgradeReadiness,
11502 RequestBody::GetMaintenanceStatus(_) => Command::GetMaintenanceStatus,
11503 RequestBody::WarmVectorIndex(_) => Command::WarmVectorIndex,
11504 RequestBody::EvaluateVectorRecall(_) => Command::EvaluateVectorRecall,
11505 RequestBody::CalibrateVectorStrategy(_) => Command::CalibrateVectorStrategy,
11506 RequestBody::GetVectorDiagnostic(_) => Command::GetVectorDiagnostic,
11507 RequestBody::CreateDiagnostic(_) => Command::CreateDiagnostic,
11508 RequestBody::GetDiagnostic(_) => Command::GetDiagnostic,
11509 RequestBody::PrepareCollectionExport(_) => Command::PrepareCollectionExport,
11510 RequestBody::StartCollectionExport(_) => Command::StartCollectionExport,
11511 RequestBody::ResolveCollectionExport(_) => Command::ResolveCollectionExport,
11512 RequestBody::VerifyCollectionExport(_) => Command::VerifyCollectionExport,
11513 RequestBody::PrepareCollectionExportRetirement(_) => Command::PrepareCollectionExportRetirement,
11514 RequestBody::StartCollectionExportRetirement(_) => Command::StartCollectionExportRetirement,
11515 RequestBody::ResolveCollectionExportRetirement(_) => Command::ResolveCollectionExportRetirement,
11516 RequestBody::PrepareCollectionRestore(_) => Command::PrepareCollectionRestore,
11517 RequestBody::StartCollectionRestore(_) => Command::StartCollectionRestore,
11518 RequestBody::ResolveCollectionRestore(_) => Command::ResolveCollectionRestore,
11519 RequestBody::PrepareCollectionTransferExport(_) => Command::PrepareCollectionTransferExport,
11520 RequestBody::StartCollectionTransferExport(_) => Command::StartCollectionTransferExport,
11521 RequestBody::ResolveCollectionTransferExport(_) => Command::ResolveCollectionTransferExport,
11522 RequestBody::PrepareCollectionTransferRestore(_) => Command::PrepareCollectionTransferRestore,
11523 RequestBody::StartCollectionTransferRestore(_) => Command::StartCollectionTransferRestore,
11524 RequestBody::ResolveCollectionTransferRestore(_) => Command::ResolveCollectionTransferRestore,
11525 RequestBody::PrepareIndexExport(_) => Command::PrepareIndexExport,
11526 RequestBody::StartIndexExport(_) => Command::StartIndexExport,
11527 RequestBody::ResolveIndexExport(_) => Command::ResolveIndexExport,
11528 RequestBody::VerifyIndexExport(_) => Command::VerifyIndexExport,
11529 RequestBody::PrepareIndexImport(_) => Command::PrepareIndexImport,
11530 RequestBody::StartIndexImport(_) => Command::StartIndexImport,
11531 RequestBody::ResolveIndexImport(_) => Command::ResolveIndexImport,
11532 RequestBody::ReadArtifactChunk(_) => Command::ReadArtifactChunk,
11533 RequestBody::ExportUsage(_) => Command::ExportUsage,
11534 RequestBody::ReadLogicalOccupancy(_) => Command::ReadLogicalOccupancy,
11535 RequestBody::ExecuteStateRead(_) => Command::ExecuteStateRead,
11536 RequestBody::PrepareStateWrite(_) => Command::PrepareStateWrite,
11537 RequestBody::SubmitStateWrite(_) => Command::SubmitStateWrite,
11538 RequestBody::ResolveStateWrite(_) => Command::ResolveStateWrite,
11539 }
11540}
11541
11542pub const fn command_for_result(value: &ResultBody) -> Command {
11543 match value {
11544 ResultBody::Discover(_) => Command::Discover,
11545 ResultBody::ListIndexes(_) => Command::ListIndexes,
11546 ResultBody::GetIndex(_) => Command::GetIndex,
11547 ResultBody::ValidateIndexChange(_) => Command::ValidateIndexChange,
11548 ResultBody::ApplyIndexChange(_) => Command::ApplyIndexChange,
11549 ResultBody::ResolveIndexChange(_) => Command::ResolveIndexChange,
11550 ResultBody::ApplyAdministrationMutation(_) => Command::ApplyAdministrationMutation,
11551 ResultBody::ListAliases(_) => Command::ListAliases,
11552 ResultBody::GetAlias(_) => Command::GetAlias,
11553 ResultBody::ListDataStreams(_) => Command::ListDataStreams,
11554 ResultBody::GetDataStream(_) => Command::GetDataStream,
11555 ResultBody::ListComponentTemplates(_) => Command::ListComponentTemplates,
11556 ResultBody::GetComponentTemplate(_) => Command::GetComponentTemplate,
11557 ResultBody::ListIndexTemplates(_) => Command::ListIndexTemplates,
11558 ResultBody::GetIndexTemplate(_) => Command::GetIndexTemplate,
11559 ResultBody::ListIngestPipelines(_) => Command::ListIngestPipelines,
11560 ResultBody::GetIngestPipeline(_) => Command::GetIngestPipeline,
11561 ResultBody::SimulateIngestPipeline(_) => Command::SimulateIngestPipeline,
11562 ResultBody::ReprocessByQuery(_) => Command::ReprocessByQuery,
11563 ResultBody::ListLifecyclePolicies(_) => Command::ListLifecyclePolicies,
11564 ResultBody::GetLifecyclePolicy(_) => Command::GetLifecyclePolicy,
11565 ResultBody::PrepareCreateIndex(_) => Command::PrepareCreateIndex,
11566 ResultBody::PrepareDeleteIndex(_) => Command::PrepareDeleteIndex,
11567 ResultBody::SubmitCatalogAction(_) => Command::SubmitCatalogAction,
11568 ResultBody::ResolveCatalogAction(_) => Command::ResolveCatalogAction,
11569 ResultBody::PrepareReplayableSourceIndex(_) => Command::PrepareReplayableSourceIndex,
11570 ResultBody::SubmitReplayableSourceIndex(_) => Command::SubmitReplayableSourceIndex,
11571 ResultBody::GetReplayableSource(_) => Command::GetReplayableSource,
11572 ResultBody::ControlReplayableSource(_) => Command::ControlReplayableSource,
11573 ResultBody::CloneIndex(_) => Command::CloneIndex,
11574 ResultBody::ConfigureHistory(_) => Command::ConfigureHistory,
11575 ResultBody::GetHistory(_) => Command::GetHistory,
11576 ResultBody::ResolveHistory(_) => Command::ResolveHistory,
11577 ResultBody::PlaceHistoryHold(_) => Command::PlaceHistoryHold,
11578 ResultBody::ReleaseHistoryHold(_) => Command::ReleaseHistoryHold,
11579 ResultBody::PrepareDocumentMutation(_) => Command::PrepareDocumentMutation,
11580 ResultBody::SubmitDocumentMutation(_) => Command::SubmitDocumentMutation,
11581 ResultBody::PrepareDocumentBulk(_) => Command::PrepareDocumentBulk,
11582 ResultBody::SubmitDocumentBulk(_) => Command::SubmitDocumentBulk,
11583 ResultBody::ResolveDocumentBulk(_) => Command::ResolveDocumentBulk,
11584 ResultBody::PrepareAppendBulk(_) => Command::PrepareAppendBulk,
11585 ResultBody::SubmitAppendBulk(_) => Command::SubmitAppendBulk,
11586 ResultBody::ResolveAppendBulk(_) => Command::ResolveAppendBulk,
11587 ResultBody::ObserveAppendCommitted(_) => Command::ObserveAppendCommitted,
11588 ResultBody::ResolveDocumentMutation(_) => Command::ResolveDocumentMutation,
11589 ResultBody::GetDocument(_) => Command::GetDocument,
11590 ResultBody::Search(_) => Command::Search,
11591 ResultBody::TraverseRelationships(_) => Command::TraverseRelationships,
11592 ResultBody::QueryProfiles(_) => Command::QueryProfiles,
11593 ResultBody::EvaluateTemporalEvidence(_) => Command::EvaluateTemporalEvidence,
11594 ResultBody::CreateContinuousTemporalEvaluation(_) => Command::CreateContinuousTemporalEvaluation,
11595 ResultBody::GetContinuousTemporalEvaluation(_) => Command::GetContinuousTemporalEvaluation,
11596 ResultBody::PauseContinuousTemporalEvaluation(_) => Command::PauseContinuousTemporalEvaluation,
11597 ResultBody::ResumeContinuousTemporalEvaluation(_) => Command::ResumeContinuousTemporalEvaluation,
11598 ResultBody::ReplaceContinuousTemporalEvaluation(_) => Command::ReplaceContinuousTemporalEvaluation,
11599 ResultBody::RetireContinuousTemporalEvaluation(_) => Command::RetireContinuousTemporalEvaluation,
11600 ResultBody::ReadContinuousTemporalEvidence(_) => Command::ReadContinuousTemporalEvidence,
11601 ResultBody::ValidateSearch(_) => Command::ValidateSearch,
11602 ResultBody::MaterializeTableSnapshot(_) => Command::MaterializeTableSnapshot,
11603 ResultBody::ResolveTableSnapshot(_) => Command::ResolveTableSnapshot,
11604 ResultBody::ReadTableSnapshot(_) => Command::ReadTableSnapshot,
11605 ResultBody::OpenPit(_) => Command::OpenPit,
11606 ResultBody::RenewPit(_) => Command::RenewPit,
11607 ResultBody::ClosePit(_) => Command::ClosePit,
11608 ResultBody::ListOperations(_) => Command::ListOperations,
11609 ResultBody::GetOperation(_) => Command::GetOperation,
11610 ResultBody::WaitOperation(_) => Command::WaitOperation,
11611 ResultBody::CancelOperation(_) => Command::CancelOperation,
11612 ResultBody::ListAuditEvents(_) => Command::ListAuditEvents,
11613 ResultBody::ExportAuditEvents(_) => Command::ExportAuditEvents,
11614 ResultBody::ReserveServiceCredential(_) => Command::ReserveServiceCredential,
11615 ResultBody::ReserveServiceCredentialRotation(_) => Command::ReserveServiceCredentialRotation,
11616 ResultBody::ActivateServiceCredential(_) => Command::ActivateServiceCredential,
11617 ResultBody::ResolveServiceCredentialReservation(_) => Command::ResolveServiceCredentialReservation,
11618 ResultBody::PrepareRevokeServiceCredential(_) => Command::PrepareRevokeServiceCredential,
11619 ResultBody::RevokeServiceCredential(_) => Command::RevokeServiceCredential,
11620 ResultBody::ResolveSecurityAction(_) => Command::ResolveSecurityAction,
11621 ResultBody::GetSecurityRole(_) => Command::GetSecurityRole,
11622 ResultBody::PrepareRoleAppendAccessChange(_) => Command::PrepareRoleAppendAccessChange,
11623 ResultBody::SubmitRoleAppendAccessChange(_) => Command::SubmitRoleAppendAccessChange,
11624 ResultBody::PrepareSourceAuthorizationProjection(_) => Command::PrepareSourceAuthorizationProjection,
11625 ResultBody::SubmitSourceAuthorizationProjection(_) => Command::SubmitSourceAuthorizationProjection,
11626 ResultBody::ResolveSourceAuthorizationProjection(_) => Command::ResolveSourceAuthorizationProjection,
11627 ResultBody::ListServiceCredentials(_) => Command::ListServiceCredentials,
11628 ResultBody::GetRuntimeStatus(_) => Command::GetRuntimeStatus,
11629 ResultBody::GetResultCacheStatus(_) => Command::GetResultCacheStatus,
11630 ResultBody::GetFieldPromotionStatus(_) => Command::GetFieldPromotionStatus,
11631 ResultBody::GetOverloadStatus(_) => Command::GetOverloadStatus,
11632 ResultBody::ConfigureExternalKey(_) => Command::ConfigureExternalKey,
11633 ResultBody::RotateExternalKeyBinding(_) => Command::RotateExternalKeyBinding,
11634 ResultBody::RetireExternalKeyBinding(_) => Command::RetireExternalKeyBinding,
11635 ResultBody::ResolveExternalKeyBindingRetirement(_) => Command::ResolveExternalKeyBindingRetirement,
11636 ResultBody::ConfigureAggregateThenDelete(_) => Command::ConfigureAggregateThenDelete,
11637 ResultBody::GetLifecycleStatus(_) => Command::GetLifecycleStatus,
11638 ResultBody::GetQuota(_) => Command::GetQuota,
11639 ResultBody::UpdateQuota(_) => Command::UpdateQuota,
11640 ResultBody::GetBinding(_) => Command::GetBinding,
11641 ResultBody::GetAdmissionStatus(_) => Command::GetAdmissionStatus,
11642 ResultBody::SetAdmission(_) => Command::SetAdmission,
11643 ResultBody::GetQuiesceStatus(_) => Command::GetQuiesceStatus,
11644 ResultBody::GetDecommissionReadiness(_) => Command::GetDecommissionReadiness,
11645 ResultBody::GetUpgradeReadiness(_) => Command::GetUpgradeReadiness,
11646 ResultBody::GetMaintenanceStatus(_) => Command::GetMaintenanceStatus,
11647 ResultBody::WarmVectorIndex(_) => Command::WarmVectorIndex,
11648 ResultBody::EvaluateVectorRecall(_) => Command::EvaluateVectorRecall,
11649 ResultBody::CalibrateVectorStrategy(_) => Command::CalibrateVectorStrategy,
11650 ResultBody::GetVectorDiagnostic(_) => Command::GetVectorDiagnostic,
11651 ResultBody::CreateDiagnostic(_) => Command::CreateDiagnostic,
11652 ResultBody::GetDiagnostic(_) => Command::GetDiagnostic,
11653 ResultBody::PrepareCollectionExport(_) => Command::PrepareCollectionExport,
11654 ResultBody::StartCollectionExport(_) => Command::StartCollectionExport,
11655 ResultBody::ResolveCollectionExport(_) => Command::ResolveCollectionExport,
11656 ResultBody::VerifyCollectionExport(_) => Command::VerifyCollectionExport,
11657 ResultBody::PrepareCollectionExportRetirement(_) => Command::PrepareCollectionExportRetirement,
11658 ResultBody::StartCollectionExportRetirement(_) => Command::StartCollectionExportRetirement,
11659 ResultBody::ResolveCollectionExportRetirement(_) => Command::ResolveCollectionExportRetirement,
11660 ResultBody::PrepareCollectionRestore(_) => Command::PrepareCollectionRestore,
11661 ResultBody::StartCollectionRestore(_) => Command::StartCollectionRestore,
11662 ResultBody::ResolveCollectionRestore(_) => Command::ResolveCollectionRestore,
11663 ResultBody::PrepareCollectionTransferExport(_) => Command::PrepareCollectionTransferExport,
11664 ResultBody::StartCollectionTransferExport(_) => Command::StartCollectionTransferExport,
11665 ResultBody::ResolveCollectionTransferExport(_) => Command::ResolveCollectionTransferExport,
11666 ResultBody::PrepareCollectionTransferRestore(_) => Command::PrepareCollectionTransferRestore,
11667 ResultBody::StartCollectionTransferRestore(_) => Command::StartCollectionTransferRestore,
11668 ResultBody::ResolveCollectionTransferRestore(_) => Command::ResolveCollectionTransferRestore,
11669 ResultBody::PrepareIndexExport(_) => Command::PrepareIndexExport,
11670 ResultBody::StartIndexExport(_) => Command::StartIndexExport,
11671 ResultBody::ResolveIndexExport(_) => Command::ResolveIndexExport,
11672 ResultBody::VerifyIndexExport(_) => Command::VerifyIndexExport,
11673 ResultBody::PrepareIndexImport(_) => Command::PrepareIndexImport,
11674 ResultBody::StartIndexImport(_) => Command::StartIndexImport,
11675 ResultBody::ResolveIndexImport(_) => Command::ResolveIndexImport,
11676 ResultBody::ReadArtifactChunk(_) => Command::ReadArtifactChunk,
11677 ResultBody::ExportUsage(_) => Command::ExportUsage,
11678 ResultBody::ReadLogicalOccupancy(_) => Command::ReadLogicalOccupancy,
11679 ResultBody::ExecuteStateRead(_) => Command::ExecuteStateRead,
11680 ResultBody::PrepareStateWrite(_) => Command::PrepareStateWrite,
11681 ResultBody::SubmitStateWrite(_) => Command::SubmitStateWrite,
11682 ResultBody::ResolveStateWrite(_) => Command::ResolveStateWrite,
11683 }
11684}
11685
11686#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11687#[serde(deny_unknown_fields)]
11688pub struct RequestEnvelope {
11689 pub meta: RequestMeta,
11690 pub request: RequestBody,
11691}
11692#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11693#[serde(tag = "outcome", rename_all = "snake_case")]
11694pub enum ResponseEnvelope {
11695 Success {
11696 meta: ResponseMeta,
11697 result: Box<ResultBody>,
11698 },
11699 Error {
11700 meta: ResponseMeta,
11701 error: ErrorBody,
11702 },
11703}
11704
11705#[derive(Clone, Copy, Debug, Eq, PartialEq)]
11706pub struct CommandContract {
11707 pub command: Command,
11708 pub action: Action,
11709 pub cancellable: bool,
11710 pub mutation: &'static str,
11711}
11712pub const LODESTONE_API_COMMAND_CONTRACTS: &[CommandContract] = &[
11713 CommandContract {
11714 command: Command::Discover,
11715 action: Action::IdentityDiscovery,
11716 cancellable: true,
11717 mutation: "read_only",
11718 },
11719 CommandContract {
11720 command: Command::ListIndexes,
11721 action: Action::CatalogRead,
11722 cancellable: true,
11723 mutation: "read_only",
11724 },
11725 CommandContract {
11726 command: Command::GetIndex,
11727 action: Action::CatalogRead,
11728 cancellable: true,
11729 mutation: "read_only",
11730 },
11731 CommandContract {
11732 command: Command::ValidateIndexChange,
11733 action: Action::IndexAdmin,
11734 cancellable: true,
11735 mutation: "read_only",
11736 },
11737 CommandContract {
11738 command: Command::ApplyIndexChange,
11739 action: Action::IndexAdmin,
11740 cancellable: true,
11741 mutation: "catalog_submit",
11742 },
11743 CommandContract {
11744 command: Command::ResolveIndexChange,
11745 action: Action::IndexAdmin,
11746 cancellable: true,
11747 mutation: "read_only",
11748 },
11749 CommandContract {
11750 command: Command::ApplyAdministrationMutation,
11751 action: Action::LifecycleAdmin,
11752 cancellable: true,
11753 mutation: "administration_submit",
11754 },
11755 CommandContract {
11756 command: Command::ListAliases,
11757 action: Action::CatalogRead,
11758 cancellable: true,
11759 mutation: "read_only",
11760 },
11761 CommandContract {
11762 command: Command::GetAlias,
11763 action: Action::CatalogRead,
11764 cancellable: true,
11765 mutation: "read_only",
11766 },
11767 CommandContract {
11768 command: Command::ListDataStreams,
11769 action: Action::CatalogRead,
11770 cancellable: true,
11771 mutation: "read_only",
11772 },
11773 CommandContract {
11774 command: Command::GetDataStream,
11775 action: Action::CatalogRead,
11776 cancellable: true,
11777 mutation: "read_only",
11778 },
11779 CommandContract {
11780 command: Command::ListComponentTemplates,
11781 action: Action::CatalogRead,
11782 cancellable: true,
11783 mutation: "read_only",
11784 },
11785 CommandContract {
11786 command: Command::GetComponentTemplate,
11787 action: Action::CatalogRead,
11788 cancellable: true,
11789 mutation: "read_only",
11790 },
11791 CommandContract {
11792 command: Command::ListIndexTemplates,
11793 action: Action::CatalogRead,
11794 cancellable: true,
11795 mutation: "read_only",
11796 },
11797 CommandContract {
11798 command: Command::GetIndexTemplate,
11799 action: Action::CatalogRead,
11800 cancellable: true,
11801 mutation: "read_only",
11802 },
11803 CommandContract {
11804 command: Command::ListIngestPipelines,
11805 action: Action::LifecycleAdmin,
11806 cancellable: true,
11807 mutation: "read_only",
11808 },
11809 CommandContract {
11810 command: Command::GetIngestPipeline,
11811 action: Action::LifecycleAdmin,
11812 cancellable: true,
11813 mutation: "read_only",
11814 },
11815 CommandContract {
11816 command: Command::SimulateIngestPipeline,
11817 action: Action::LifecycleAdmin,
11818 cancellable: true,
11819 mutation: "read_only",
11820 },
11821 CommandContract {
11822 command: Command::ReprocessByQuery,
11823 action: Action::DataWrite,
11824 cancellable: true,
11825 mutation: "authority_submit",
11826 },
11827 CommandContract {
11828 command: Command::ListLifecyclePolicies,
11829 action: Action::CatalogRead,
11830 cancellable: true,
11831 mutation: "read_only",
11832 },
11833 CommandContract {
11834 command: Command::GetLifecyclePolicy,
11835 action: Action::CatalogRead,
11836 cancellable: true,
11837 mutation: "read_only",
11838 },
11839 CommandContract {
11840 command: Command::PrepareCreateIndex,
11841 action: Action::IndexAdmin,
11842 cancellable: true,
11843 mutation: "catalog_prepare",
11844 },
11845 CommandContract {
11846 command: Command::PrepareDeleteIndex,
11847 action: Action::IndexAdmin,
11848 cancellable: true,
11849 mutation: "catalog_prepare",
11850 },
11851 CommandContract {
11852 command: Command::SubmitCatalogAction,
11853 action: Action::IndexAdmin,
11854 cancellable: true,
11855 mutation: "catalog_submit",
11856 },
11857 CommandContract {
11858 command: Command::ResolveCatalogAction,
11859 action: Action::IndexAdmin,
11860 cancellable: true,
11861 mutation: "read_only",
11862 },
11863 CommandContract {
11864 command: Command::PrepareReplayableSourceIndex,
11865 action: Action::IndexAdmin,
11866 cancellable: true,
11867 mutation: "catalog_prepare",
11868 },
11869 CommandContract {
11870 command: Command::SubmitReplayableSourceIndex,
11871 action: Action::IndexAdmin,
11872 cancellable: true,
11873 mutation: "catalog_submit",
11874 },
11875 CommandContract {
11876 command: Command::GetReplayableSource,
11877 action: Action::CatalogRead,
11878 cancellable: true,
11879 mutation: "read_only",
11880 },
11881 CommandContract {
11882 command: Command::ControlReplayableSource,
11883 action: Action::IndexAdmin,
11884 cancellable: true,
11885 mutation: "catalog_submit",
11886 },
11887 CommandContract {
11888 command: Command::CloneIndex,
11889 action: Action::IndexAdmin,
11890 cancellable: true,
11891 mutation: "catalog_submit",
11892 },
11893 CommandContract {
11894 command: Command::ConfigureHistory,
11895 action: Action::IndexAdmin,
11896 cancellable: true,
11897 mutation: "catalog_submit",
11898 },
11899 CommandContract {
11900 command: Command::GetHistory,
11901 action: Action::CatalogRead,
11902 cancellable: true,
11903 mutation: "read_only",
11904 },
11905 CommandContract {
11906 command: Command::ResolveHistory,
11907 action: Action::DataRead,
11908 cancellable: true,
11909 mutation: "read_only",
11910 },
11911 CommandContract {
11912 command: Command::PlaceHistoryHold,
11913 action: Action::IndexAdmin,
11914 cancellable: true,
11915 mutation: "catalog_submit",
11916 },
11917 CommandContract {
11918 command: Command::ReleaseHistoryHold,
11919 action: Action::IndexAdmin,
11920 cancellable: true,
11921 mutation: "catalog_submit",
11922 },
11923 CommandContract {
11924 command: Command::PrepareDocumentMutation,
11925 action: Action::DataWrite,
11926 cancellable: true,
11927 mutation: "read_only_prepare",
11928 },
11929 CommandContract {
11930 command: Command::SubmitDocumentMutation,
11931 action: Action::DataWrite,
11932 cancellable: true,
11933 mutation: "wal_submit",
11934 },
11935 CommandContract {
11936 command: Command::PrepareDocumentBulk,
11937 action: Action::DataWrite,
11938 cancellable: true,
11939 mutation: "read_only_prepare",
11940 },
11941 CommandContract {
11942 command: Command::SubmitDocumentBulk,
11943 action: Action::DataWrite,
11944 cancellable: true,
11945 mutation: "wal_submit",
11946 },
11947 CommandContract {
11948 command: Command::ResolveDocumentBulk,
11949 action: Action::DataRead,
11950 cancellable: true,
11951 mutation: "read_only",
11952 },
11953 CommandContract {
11954 command: Command::PrepareAppendBulk,
11955 action: Action::Append,
11956 cancellable: true,
11957 mutation: "read_only_prepare",
11958 },
11959 CommandContract {
11960 command: Command::SubmitAppendBulk,
11961 action: Action::Append,
11962 cancellable: true,
11963 mutation: "wal_submit",
11964 },
11965 CommandContract {
11966 command: Command::ResolveAppendBulk,
11967 action: Action::ResolveAppend,
11968 cancellable: true,
11969 mutation: "read_only",
11970 },
11971 CommandContract {
11972 command: Command::ObserveAppendCommitted,
11973 action: Action::ResolveAppend,
11974 cancellable: true,
11975 mutation: "read_only",
11976 },
11977 CommandContract {
11978 command: Command::ResolveDocumentMutation,
11979 action: Action::DataRead,
11980 cancellable: true,
11981 mutation: "read_only",
11982 },
11983 CommandContract {
11984 command: Command::GetDocument,
11985 action: Action::DataRead,
11986 cancellable: true,
11987 mutation: "read_only",
11988 },
11989 CommandContract {
11990 command: Command::Search,
11991 action: Action::DataRead,
11992 cancellable: true,
11993 mutation: "read_only",
11994 },
11995 CommandContract {
11996 command: Command::TraverseRelationships,
11997 action: Action::DataRead,
11998 cancellable: true,
11999 mutation: "read_only",
12000 },
12001 CommandContract {
12002 command: Command::QueryProfiles,
12003 action: Action::DataRead,
12004 cancellable: true,
12005 mutation: "read_only",
12006 },
12007 CommandContract {
12008 command: Command::EvaluateTemporalEvidence,
12009 action: Action::DataRead,
12010 cancellable: true,
12011 mutation: "read_only",
12012 },
12013 CommandContract {
12014 command: Command::CreateContinuousTemporalEvaluation,
12015 action: Action::LifecycleAdmin,
12016 cancellable: true,
12017 mutation: "catalog_submit",
12018 },
12019 CommandContract {
12020 command: Command::GetContinuousTemporalEvaluation,
12021 action: Action::CatalogRead,
12022 cancellable: true,
12023 mutation: "read_only",
12024 },
12025 CommandContract {
12026 command: Command::PauseContinuousTemporalEvaluation,
12027 action: Action::LifecycleAdmin,
12028 cancellable: true,
12029 mutation: "catalog_submit",
12030 },
12031 CommandContract {
12032 command: Command::ResumeContinuousTemporalEvaluation,
12033 action: Action::LifecycleAdmin,
12034 cancellable: true,
12035 mutation: "catalog_submit",
12036 },
12037 CommandContract {
12038 command: Command::ReplaceContinuousTemporalEvaluation,
12039 action: Action::LifecycleAdmin,
12040 cancellable: true,
12041 mutation: "catalog_submit",
12042 },
12043 CommandContract {
12044 command: Command::RetireContinuousTemporalEvaluation,
12045 action: Action::LifecycleAdmin,
12046 cancellable: true,
12047 mutation: "catalog_submit",
12048 },
12049 CommandContract {
12050 command: Command::ReadContinuousTemporalEvidence,
12051 action: Action::DataRead,
12052 cancellable: true,
12053 mutation: "read_only",
12054 },
12055 CommandContract {
12056 command: Command::ValidateSearch,
12057 action: Action::DataRead,
12058 cancellable: true,
12059 mutation: "read_only",
12060 },
12061 CommandContract {
12062 command: Command::MaterializeTableSnapshot,
12063 action: Action::DataRead,
12064 cancellable: true,
12065 mutation: "catalog_submit",
12066 },
12067 CommandContract {
12068 command: Command::ResolveTableSnapshot,
12069 action: Action::DataRead,
12070 cancellable: true,
12071 mutation: "read_only",
12072 },
12073 CommandContract {
12074 command: Command::ReadTableSnapshot,
12075 action: Action::DataRead,
12076 cancellable: true,
12077 mutation: "read_only",
12078 },
12079 CommandContract {
12080 command: Command::OpenPit,
12081 action: Action::DataRead,
12082 cancellable: true,
12083 mutation: "authority_submit",
12084 },
12085 CommandContract {
12086 command: Command::RenewPit,
12087 action: Action::DataRead,
12088 cancellable: true,
12089 mutation: "authority_submit",
12090 },
12091 CommandContract {
12092 command: Command::ClosePit,
12093 action: Action::DataRead,
12094 cancellable: true,
12095 mutation: "authority_submit",
12096 },
12097 CommandContract {
12098 command: Command::ListOperations,
12099 action: Action::OperationRead,
12100 cancellable: true,
12101 mutation: "read_only",
12102 },
12103 CommandContract {
12104 command: Command::GetOperation,
12105 action: Action::OperationRead,
12106 cancellable: true,
12107 mutation: "read_only",
12108 },
12109 CommandContract {
12110 command: Command::WaitOperation,
12111 action: Action::OperationRead,
12112 cancellable: true,
12113 mutation: "read_only",
12114 },
12115 CommandContract {
12116 command: Command::CancelOperation,
12117 action: Action::OperationCancel,
12118 cancellable: true,
12119 mutation: "authority_submit",
12120 },
12121 CommandContract {
12122 command: Command::ListAuditEvents,
12123 action: Action::AuditRead,
12124 cancellable: true,
12125 mutation: "read_only",
12126 },
12127 CommandContract {
12128 command: Command::ExportAuditEvents,
12129 action: Action::AuditRead,
12130 cancellable: true,
12131 mutation: "read_only",
12132 },
12133 CommandContract {
12134 command: Command::ReserveServiceCredential,
12135 action: Action::SecurityAdmin,
12136 cancellable: true,
12137 mutation: "security_reserve",
12138 },
12139 CommandContract {
12140 command: Command::ReserveServiceCredentialRotation,
12141 action: Action::SecurityAdmin,
12142 cancellable: true,
12143 mutation: "security_reserve",
12144 },
12145 CommandContract {
12146 command: Command::ActivateServiceCredential,
12147 action: Action::SecurityAdmin,
12148 cancellable: true,
12149 mutation: "security_submit",
12150 },
12151 CommandContract {
12152 command: Command::ResolveServiceCredentialReservation,
12153 action: Action::SecurityRead,
12154 cancellable: true,
12155 mutation: "read_only",
12156 },
12157 CommandContract {
12158 command: Command::PrepareRevokeServiceCredential,
12159 action: Action::SecurityAdmin,
12160 cancellable: true,
12161 mutation: "read_only_prepare",
12162 },
12163 CommandContract {
12164 command: Command::RevokeServiceCredential,
12165 action: Action::SecurityAdmin,
12166 cancellable: true,
12167 mutation: "security_submit",
12168 },
12169 CommandContract {
12170 command: Command::ResolveSecurityAction,
12171 action: Action::SecurityRead,
12172 cancellable: true,
12173 mutation: "read_only",
12174 },
12175 CommandContract {
12176 command: Command::GetSecurityRole,
12177 action: Action::SecurityRead,
12178 cancellable: true,
12179 mutation: "read_only",
12180 },
12181 CommandContract {
12182 command: Command::PrepareRoleAppendAccessChange,
12183 action: Action::SecurityAdmin,
12184 cancellable: true,
12185 mutation: "read_only_prepare",
12186 },
12187 CommandContract {
12188 command: Command::SubmitRoleAppendAccessChange,
12189 action: Action::SecurityAdmin,
12190 cancellable: true,
12191 mutation: "security_submit",
12192 },
12193 CommandContract {
12194 command: Command::PrepareSourceAuthorizationProjection,
12195 action: Action::IndexAdmin,
12196 cancellable: true,
12197 mutation: "read_only_prepare",
12198 },
12199 CommandContract {
12200 command: Command::SubmitSourceAuthorizationProjection,
12201 action: Action::IndexAdmin,
12202 cancellable: true,
12203 mutation: "security_submit",
12204 },
12205 CommandContract {
12206 command: Command::ResolveSourceAuthorizationProjection,
12207 action: Action::IndexAdmin,
12208 cancellable: true,
12209 mutation: "read_only",
12210 },
12211 CommandContract {
12212 command: Command::ListServiceCredentials,
12213 action: Action::SecurityRead,
12214 cancellable: true,
12215 mutation: "read_only",
12216 },
12217 CommandContract {
12218 command: Command::GetRuntimeStatus,
12219 action: Action::CatalogRead,
12220 cancellable: true,
12221 mutation: "read_only",
12222 },
12223 CommandContract {
12224 command: Command::GetResultCacheStatus,
12225 action: Action::CatalogRead,
12226 cancellable: true,
12227 mutation: "read_only",
12228 },
12229 CommandContract {
12230 command: Command::GetFieldPromotionStatus,
12231 action: Action::CatalogRead,
12232 cancellable: true,
12233 mutation: "read_only",
12234 },
12235 CommandContract {
12236 command: Command::GetOverloadStatus,
12237 action: Action::CatalogRead,
12238 cancellable: true,
12239 mutation: "read_only",
12240 },
12241 CommandContract {
12242 command: Command::ConfigureExternalKey,
12243 action: Action::LifecycleAdmin,
12244 cancellable: true,
12245 mutation: "authority_submit",
12246 },
12247 CommandContract {
12248 command: Command::RotateExternalKeyBinding,
12249 action: Action::LifecycleAdmin,
12250 cancellable: true,
12251 mutation: "authority_submit",
12252 },
12253 CommandContract {
12254 command: Command::RetireExternalKeyBinding,
12255 action: Action::LifecycleAdmin,
12256 cancellable: true,
12257 mutation: "authority_submit",
12258 },
12259 CommandContract {
12260 command: Command::ResolveExternalKeyBindingRetirement,
12261 action: Action::LifecycleAdmin,
12262 cancellable: true,
12263 mutation: "read_only",
12264 },
12265 CommandContract {
12266 command: Command::ConfigureAggregateThenDelete,
12267 action: Action::LifecycleAdmin,
12268 cancellable: true,
12269 mutation: "authority_submit",
12270 },
12271 CommandContract {
12272 command: Command::GetLifecycleStatus,
12273 action: Action::CatalogRead,
12274 cancellable: true,
12275 mutation: "read_only",
12276 },
12277 CommandContract {
12278 command: Command::GetQuota,
12279 action: Action::QuotaRead,
12280 cancellable: true,
12281 mutation: "read_only",
12282 },
12283 CommandContract {
12284 command: Command::UpdateQuota,
12285 action: Action::QuotaAdmin,
12286 cancellable: true,
12287 mutation: "quota_submit",
12288 },
12289 CommandContract {
12290 command: Command::GetBinding,
12291 action: Action::BindingRead,
12292 cancellable: true,
12293 mutation: "read_only",
12294 },
12295 CommandContract {
12296 command: Command::GetAdmissionStatus,
12297 action: Action::AdmissionRead,
12298 cancellable: true,
12299 mutation: "read_only",
12300 },
12301 CommandContract {
12302 command: Command::SetAdmission,
12303 action: Action::AdmissionAdmin,
12304 cancellable: true,
12305 mutation: "admission_submit",
12306 },
12307 CommandContract {
12308 command: Command::GetQuiesceStatus,
12309 action: Action::AdmissionRead,
12310 cancellable: true,
12311 mutation: "read_only",
12312 },
12313 CommandContract {
12314 command: Command::GetDecommissionReadiness,
12315 action: Action::AdmissionRead,
12316 cancellable: true,
12317 mutation: "read_only",
12318 },
12319 CommandContract {
12320 command: Command::GetUpgradeReadiness,
12321 action: Action::TaskRead,
12322 cancellable: true,
12323 mutation: "read_only",
12324 },
12325 CommandContract {
12326 command: Command::GetMaintenanceStatus,
12327 action: Action::TaskRead,
12328 cancellable: true,
12329 mutation: "read_only",
12330 },
12331 CommandContract {
12332 command: Command::WarmVectorIndex,
12333 action: Action::DataRead,
12334 cancellable: true,
12335 mutation: "read_only",
12336 },
12337 CommandContract {
12338 command: Command::EvaluateVectorRecall,
12339 action: Action::DiagnosticsCreate,
12340 cancellable: true,
12341 mutation: "diagnostic_submit",
12342 },
12343 CommandContract {
12344 command: Command::CalibrateVectorStrategy,
12345 action: Action::DiagnosticsCreate,
12346 cancellable: true,
12347 mutation: "diagnostic_submit",
12348 },
12349 CommandContract {
12350 command: Command::GetVectorDiagnostic,
12351 action: Action::DiagnosticsRead,
12352 cancellable: true,
12353 mutation: "read_only",
12354 },
12355 CommandContract {
12356 command: Command::CreateDiagnostic,
12357 action: Action::DiagnosticsCreate,
12358 cancellable: true,
12359 mutation: "diagnostic_submit",
12360 },
12361 CommandContract {
12362 command: Command::GetDiagnostic,
12363 action: Action::DiagnosticsRead,
12364 cancellable: true,
12365 mutation: "read_only",
12366 },
12367 CommandContract {
12368 command: Command::PrepareCollectionExport,
12369 action: Action::CollectionExport,
12370 cancellable: true,
12371 mutation: "read_only_prepare",
12372 },
12373 CommandContract {
12374 command: Command::StartCollectionExport,
12375 action: Action::CollectionExport,
12376 cancellable: true,
12377 mutation: "portability_submit",
12378 },
12379 CommandContract {
12380 command: Command::ResolveCollectionExport,
12381 action: Action::CollectionExport,
12382 cancellable: true,
12383 mutation: "read_only",
12384 },
12385 CommandContract {
12386 command: Command::VerifyCollectionExport,
12387 action: Action::CollectionExport,
12388 cancellable: true,
12389 mutation: "read_only",
12390 },
12391 CommandContract {
12392 command: Command::PrepareCollectionExportRetirement,
12393 action: Action::CollectionExport,
12394 cancellable: true,
12395 mutation: "read_only_prepare",
12396 },
12397 CommandContract {
12398 command: Command::StartCollectionExportRetirement,
12399 action: Action::CollectionExport,
12400 cancellable: true,
12401 mutation: "portability_submit",
12402 },
12403 CommandContract {
12404 command: Command::ResolveCollectionExportRetirement,
12405 action: Action::CollectionExport,
12406 cancellable: true,
12407 mutation: "read_only",
12408 },
12409 CommandContract {
12410 command: Command::PrepareCollectionRestore,
12411 action: Action::CollectionRestore,
12412 cancellable: true,
12413 mutation: "read_only_prepare",
12414 },
12415 CommandContract {
12416 command: Command::StartCollectionRestore,
12417 action: Action::CollectionRestore,
12418 cancellable: true,
12419 mutation: "portability_submit",
12420 },
12421 CommandContract {
12422 command: Command::ResolveCollectionRestore,
12423 action: Action::CollectionRestore,
12424 cancellable: true,
12425 mutation: "read_only",
12426 },
12427 CommandContract {
12428 command: Command::PrepareCollectionTransferExport,
12429 action: Action::CollectionTransferExport,
12430 cancellable: true,
12431 mutation: "read_only_prepare",
12432 },
12433 CommandContract {
12434 command: Command::StartCollectionTransferExport,
12435 action: Action::CollectionTransferExport,
12436 cancellable: true,
12437 mutation: "portability_submit",
12438 },
12439 CommandContract {
12440 command: Command::ResolveCollectionTransferExport,
12441 action: Action::CollectionTransferExport,
12442 cancellable: true,
12443 mutation: "read_only",
12444 },
12445 CommandContract {
12446 command: Command::PrepareCollectionTransferRestore,
12447 action: Action::CollectionTransferRestore,
12448 cancellable: true,
12449 mutation: "read_only_prepare",
12450 },
12451 CommandContract {
12452 command: Command::StartCollectionTransferRestore,
12453 action: Action::CollectionTransferRestore,
12454 cancellable: true,
12455 mutation: "portability_submit",
12456 },
12457 CommandContract {
12458 command: Command::ResolveCollectionTransferRestore,
12459 action: Action::CollectionTransferRestore,
12460 cancellable: true,
12461 mutation: "read_only",
12462 },
12463 CommandContract {
12464 command: Command::PrepareIndexExport,
12465 action: Action::IndexExport,
12466 cancellable: true,
12467 mutation: "read_only_prepare",
12468 },
12469 CommandContract {
12470 command: Command::StartIndexExport,
12471 action: Action::IndexExport,
12472 cancellable: true,
12473 mutation: "portability_submit",
12474 },
12475 CommandContract {
12476 command: Command::ResolveIndexExport,
12477 action: Action::IndexExport,
12478 cancellable: true,
12479 mutation: "read_only",
12480 },
12481 CommandContract {
12482 command: Command::VerifyIndexExport,
12483 action: Action::IndexExport,
12484 cancellable: true,
12485 mutation: "read_only",
12486 },
12487 CommandContract {
12488 command: Command::PrepareIndexImport,
12489 action: Action::IndexImport,
12490 cancellable: true,
12491 mutation: "read_only_prepare",
12492 },
12493 CommandContract {
12494 command: Command::StartIndexImport,
12495 action: Action::IndexImport,
12496 cancellable: true,
12497 mutation: "portability_submit",
12498 },
12499 CommandContract {
12500 command: Command::ResolveIndexImport,
12501 action: Action::IndexImport,
12502 cancellable: true,
12503 mutation: "read_only",
12504 },
12505 CommandContract {
12506 command: Command::ReadArtifactChunk,
12507 action: Action::OperationRead,
12508 cancellable: true,
12509 mutation: "read_only",
12510 },
12511 CommandContract {
12512 command: Command::ExportUsage,
12513 action: Action::UsageRead,
12514 cancellable: true,
12515 mutation: "read_only",
12516 },
12517 CommandContract {
12518 command: Command::ReadLogicalOccupancy,
12519 action: Action::UsageRead,
12520 cancellable: true,
12521 mutation: "read_only",
12522 },
12523 CommandContract {
12524 command: Command::ExecuteStateRead,
12525 action: Action::DataRead,
12526 cancellable: true,
12527 mutation: "read_only",
12528 },
12529 CommandContract {
12530 command: Command::PrepareStateWrite,
12531 action: Action::DataWrite,
12532 cancellable: true,
12533 mutation: "read_only_prepare",
12534 },
12535 CommandContract {
12536 command: Command::SubmitStateWrite,
12537 action: Action::DataWrite,
12538 cancellable: true,
12539 mutation: "state_submit",
12540 },
12541 CommandContract {
12542 command: Command::ResolveStateWrite,
12543 action: Action::DataRead,
12544 cancellable: true,
12545 mutation: "read_only",
12546 },
12547];
12548#[derive(Clone, Copy, Debug, Eq, PartialEq)]
12549pub struct CommandSemanticContract {
12550 pub command: Command,
12551 pub admissible_errors: &'static [ErrorCode],
12552 pub limit_ids: &'static [&'static str],
12553 pub effect_class: &'static str,
12554 pub risk_flags: &'static [&'static str],
12555 pub capability_family: &'static str,
12556 pub retry_safety: &'static str,
12557 pub identity_requirement: &'static str,
12558 pub resolver: Option<Command>,
12559 pub cancellation: &'static str,
12560 pub side_effects: &'static [&'static str],
12561 pub recovery: &'static str,
12562 pub collection_index_ref: &'static str,
12563}
12564pub const LODESTONE_API_COMMAND_SEMANTICS: &[CommandSemanticContract] = &[
12565 CommandSemanticContract {
12566 command: Command::Discover,
12567 admissible_errors: &[
12568 ErrorCode::Aborted,
12569 ErrorCode::DeadlineExceeded,
12570 ErrorCode::InvalidRequest,
12571 ErrorCode::UnsupportedVersion,
12572 ErrorCode::Unauthenticated,
12573 ErrorCode::PermissionDenied,
12574 ErrorCode::NotFound,
12575 ErrorCode::LimitExceeded,
12576 ErrorCode::CapabilityUnavailable,
12577 ErrorCode::TemporarilyUnavailable,
12578 ErrorCode::Internal,
12579 ],
12580 limit_ids: &["request_bytes", "response_bytes"],
12581 effect_class: "read_only",
12582 risk_flags: &[],
12583 capability_family: "discovery",
12584 retry_safety: "safe",
12585 identity_requirement: "none",
12586 resolver: None,
12587 cancellation: "per_call",
12588 side_effects: &[],
12589 recovery: "retry",
12590 collection_index_ref: "none",
12591 },
12592 CommandSemanticContract {
12593 command: Command::ListIndexes,
12594 admissible_errors: &[
12595 ErrorCode::Aborted,
12596 ErrorCode::DeadlineExceeded,
12597 ErrorCode::InvalidRequest,
12598 ErrorCode::UnsupportedVersion,
12599 ErrorCode::Unauthenticated,
12600 ErrorCode::PermissionDenied,
12601 ErrorCode::NotFound,
12602 ErrorCode::StaleCursor,
12603 ErrorCode::RestartBudgetExhausted,
12604 ErrorCode::LimitExceeded,
12605 ErrorCode::CapabilityUnavailable,
12606 ErrorCode::TemporarilyUnavailable,
12607 ErrorCode::Internal,
12608 ],
12609 limit_ids: &[
12610 "request_bytes",
12611 "response_bytes",
12612 "page_size",
12613 "catalog_page_size",
12614 "catalog_restart_budget",
12615 ],
12616 effect_class: "read_only",
12617 risk_flags: &[],
12618 capability_family: "catalog",
12619 retry_safety: "safe",
12620 identity_requirement: "none",
12621 resolver: None,
12622 cancellation: "per_call",
12623 side_effects: &[],
12624 recovery: "retry",
12625 collection_index_ref: "none",
12626 },
12627 CommandSemanticContract {
12628 command: Command::GetIndex,
12629 admissible_errors: &[
12630 ErrorCode::Aborted,
12631 ErrorCode::DeadlineExceeded,
12632 ErrorCode::InvalidRequest,
12633 ErrorCode::UnsupportedVersion,
12634 ErrorCode::Unauthenticated,
12635 ErrorCode::PermissionDenied,
12636 ErrorCode::NotFound,
12637 ErrorCode::LimitExceeded,
12638 ErrorCode::CapabilityUnavailable,
12639 ErrorCode::TemporarilyUnavailable,
12640 ErrorCode::Internal,
12641 ],
12642 limit_ids: &["request_bytes", "response_bytes"],
12643 effect_class: "read_only",
12644 risk_flags: &[],
12645 capability_family: "catalog",
12646 retry_safety: "safe",
12647 identity_requirement: "none",
12648 resolver: None,
12649 cancellation: "per_call",
12650 side_effects: &[],
12651 recovery: "retry",
12652 collection_index_ref: "none",
12653 },
12654 CommandSemanticContract {
12655 command: Command::ValidateIndexChange,
12656 admissible_errors: &[
12657 ErrorCode::Aborted,
12658 ErrorCode::DeadlineExceeded,
12659 ErrorCode::InvalidRequest,
12660 ErrorCode::UnsupportedVersion,
12661 ErrorCode::Unauthenticated,
12662 ErrorCode::PermissionDenied,
12663 ErrorCode::NotFound,
12664 ErrorCode::LimitExceeded,
12665 ErrorCode::CapabilityUnavailable,
12666 ErrorCode::TemporarilyUnavailable,
12667 ErrorCode::Internal,
12668 ],
12669 limit_ids: &["request_bytes", "response_bytes"],
12670 effect_class: "read_only",
12671 risk_flags: &[],
12672 capability_family: "catalog",
12673 retry_safety: "safe",
12674 identity_requirement: "none",
12675 resolver: None,
12676 cancellation: "per_call",
12677 side_effects: &[],
12678 recovery: "retry",
12679 collection_index_ref: "request_name",
12680 },
12681 CommandSemanticContract {
12682 command: Command::ApplyIndexChange,
12683 admissible_errors: &[
12684 ErrorCode::Aborted,
12685 ErrorCode::DeadlineExceeded,
12686 ErrorCode::InvalidRequest,
12687 ErrorCode::UnsupportedVersion,
12688 ErrorCode::Unauthenticated,
12689 ErrorCode::PermissionDenied,
12690 ErrorCode::NotFound,
12691 ErrorCode::Conflict,
12692 ErrorCode::LimitExceeded,
12693 ErrorCode::CapabilityUnavailable,
12694 ErrorCode::NotSubmitted,
12695 ErrorCode::SubmittedIndeterminate,
12696 ErrorCode::ExpiredUnknown,
12697 ErrorCode::TemporarilyUnavailable,
12698 ErrorCode::Internal,
12699 ],
12700 limit_ids: &["request_bytes", "response_bytes"],
12701 effect_class: "durable_submit",
12702 risk_flags: &[],
12703 capability_family: "catalog",
12704 retry_safety: "safe",
12705 identity_requirement: "caller_action_id",
12706 resolver: Some(Command::ResolveIndexChange),
12707 cancellation: "per_call_until_submission_then_resolve",
12708 side_effects: &["commits_authoritative_state"],
12709 recovery: "resolve_with_resolve_index_change",
12710 collection_index_ref: "request_index",
12711 },
12712 CommandSemanticContract {
12713 command: Command::ResolveIndexChange,
12714 admissible_errors: &[
12715 ErrorCode::Aborted,
12716 ErrorCode::DeadlineExceeded,
12717 ErrorCode::InvalidRequest,
12718 ErrorCode::UnsupportedVersion,
12719 ErrorCode::Unauthenticated,
12720 ErrorCode::PermissionDenied,
12721 ErrorCode::NotFound,
12722 ErrorCode::LimitExceeded,
12723 ErrorCode::CapabilityUnavailable,
12724 ErrorCode::TemporarilyUnavailable,
12725 ErrorCode::Internal,
12726 ],
12727 limit_ids: &["request_bytes", "response_bytes"],
12728 effect_class: "read_only",
12729 risk_flags: &[],
12730 capability_family: "catalog",
12731 retry_safety: "safe",
12732 identity_requirement: "caller_action_id",
12733 resolver: None,
12734 cancellation: "per_call",
12735 side_effects: &[],
12736 recovery: "retry",
12737 collection_index_ref: "request_index",
12738 },
12739 CommandSemanticContract {
12740 command: Command::ApplyAdministrationMutation,
12741 admissible_errors: &[
12742 ErrorCode::Aborted,
12743 ErrorCode::DeadlineExceeded,
12744 ErrorCode::InvalidRequest,
12745 ErrorCode::UnsupportedVersion,
12746 ErrorCode::Unauthenticated,
12747 ErrorCode::PermissionDenied,
12748 ErrorCode::NotFound,
12749 ErrorCode::Conflict,
12750 ErrorCode::LimitExceeded,
12751 ErrorCode::CapabilityUnavailable,
12752 ErrorCode::NotSubmitted,
12753 ErrorCode::SubmittedIndeterminate,
12754 ErrorCode::ExpiredUnknown,
12755 ErrorCode::TemporarilyUnavailable,
12756 ErrorCode::Internal,
12757 ],
12758 limit_ids: &["request_bytes", "response_bytes"],
12759 effect_class: "control_write",
12760 risk_flags: &[],
12761 capability_family: "lifecycle",
12762 retry_safety: "pre_submit_only",
12763 identity_requirement: "caller_action_id",
12764 resolver: None,
12765 cancellation: "per_call_until_submission_then_resolve",
12766 side_effects: &["commits_authoritative_state"],
12767 recovery: "retry_if_not_submitted",
12768 collection_index_ref: "none",
12769 },
12770 CommandSemanticContract {
12771 command: Command::ListAliases,
12772 admissible_errors: &[
12773 ErrorCode::Aborted,
12774 ErrorCode::DeadlineExceeded,
12775 ErrorCode::InvalidRequest,
12776 ErrorCode::UnsupportedVersion,
12777 ErrorCode::Unauthenticated,
12778 ErrorCode::PermissionDenied,
12779 ErrorCode::NotFound,
12780 ErrorCode::StaleCursor,
12781 ErrorCode::RestartBudgetExhausted,
12782 ErrorCode::LimitExceeded,
12783 ErrorCode::CapabilityUnavailable,
12784 ErrorCode::TemporarilyUnavailable,
12785 ErrorCode::Internal,
12786 ],
12787 limit_ids: &[
12788 "request_bytes",
12789 "response_bytes",
12790 "page_size",
12791 "catalog_page_size",
12792 "catalog_restart_budget",
12793 ],
12794 effect_class: "read_only",
12795 risk_flags: &[],
12796 capability_family: "catalog",
12797 retry_safety: "safe",
12798 identity_requirement: "none",
12799 resolver: None,
12800 cancellation: "per_call",
12801 side_effects: &[],
12802 recovery: "retry",
12803 collection_index_ref: "none",
12804 },
12805 CommandSemanticContract {
12806 command: Command::GetAlias,
12807 admissible_errors: &[
12808 ErrorCode::Aborted,
12809 ErrorCode::DeadlineExceeded,
12810 ErrorCode::InvalidRequest,
12811 ErrorCode::UnsupportedVersion,
12812 ErrorCode::Unauthenticated,
12813 ErrorCode::PermissionDenied,
12814 ErrorCode::NotFound,
12815 ErrorCode::LimitExceeded,
12816 ErrorCode::CapabilityUnavailable,
12817 ErrorCode::TemporarilyUnavailable,
12818 ErrorCode::Internal,
12819 ],
12820 limit_ids: &["request_bytes", "response_bytes"],
12821 effect_class: "read_only",
12822 risk_flags: &[],
12823 capability_family: "catalog",
12824 retry_safety: "safe",
12825 identity_requirement: "none",
12826 resolver: None,
12827 cancellation: "per_call",
12828 side_effects: &[],
12829 recovery: "retry",
12830 collection_index_ref: "none",
12831 },
12832 CommandSemanticContract {
12833 command: Command::ListDataStreams,
12834 admissible_errors: &[
12835 ErrorCode::Aborted,
12836 ErrorCode::DeadlineExceeded,
12837 ErrorCode::InvalidRequest,
12838 ErrorCode::UnsupportedVersion,
12839 ErrorCode::Unauthenticated,
12840 ErrorCode::PermissionDenied,
12841 ErrorCode::NotFound,
12842 ErrorCode::StaleCursor,
12843 ErrorCode::RestartBudgetExhausted,
12844 ErrorCode::LimitExceeded,
12845 ErrorCode::CapabilityUnavailable,
12846 ErrorCode::TemporarilyUnavailable,
12847 ErrorCode::Internal,
12848 ],
12849 limit_ids: &[
12850 "request_bytes",
12851 "response_bytes",
12852 "page_size",
12853 "catalog_page_size",
12854 "catalog_restart_budget",
12855 ],
12856 effect_class: "read_only",
12857 risk_flags: &[],
12858 capability_family: "catalog",
12859 retry_safety: "safe",
12860 identity_requirement: "none",
12861 resolver: None,
12862 cancellation: "per_call",
12863 side_effects: &[],
12864 recovery: "retry",
12865 collection_index_ref: "none",
12866 },
12867 CommandSemanticContract {
12868 command: Command::GetDataStream,
12869 admissible_errors: &[
12870 ErrorCode::Aborted,
12871 ErrorCode::DeadlineExceeded,
12872 ErrorCode::InvalidRequest,
12873 ErrorCode::UnsupportedVersion,
12874 ErrorCode::Unauthenticated,
12875 ErrorCode::PermissionDenied,
12876 ErrorCode::NotFound,
12877 ErrorCode::LimitExceeded,
12878 ErrorCode::CapabilityUnavailable,
12879 ErrorCode::TemporarilyUnavailable,
12880 ErrorCode::Internal,
12881 ],
12882 limit_ids: &["request_bytes", "response_bytes"],
12883 effect_class: "read_only",
12884 risk_flags: &[],
12885 capability_family: "catalog",
12886 retry_safety: "safe",
12887 identity_requirement: "none",
12888 resolver: None,
12889 cancellation: "per_call",
12890 side_effects: &[],
12891 recovery: "retry",
12892 collection_index_ref: "none",
12893 },
12894 CommandSemanticContract {
12895 command: Command::ListComponentTemplates,
12896 admissible_errors: &[
12897 ErrorCode::Aborted,
12898 ErrorCode::DeadlineExceeded,
12899 ErrorCode::InvalidRequest,
12900 ErrorCode::UnsupportedVersion,
12901 ErrorCode::Unauthenticated,
12902 ErrorCode::PermissionDenied,
12903 ErrorCode::NotFound,
12904 ErrorCode::StaleCursor,
12905 ErrorCode::RestartBudgetExhausted,
12906 ErrorCode::LimitExceeded,
12907 ErrorCode::CapabilityUnavailable,
12908 ErrorCode::TemporarilyUnavailable,
12909 ErrorCode::Internal,
12910 ],
12911 limit_ids: &[
12912 "request_bytes",
12913 "response_bytes",
12914 "page_size",
12915 "catalog_page_size",
12916 "catalog_restart_budget",
12917 ],
12918 effect_class: "read_only",
12919 risk_flags: &[],
12920 capability_family: "catalog",
12921 retry_safety: "safe",
12922 identity_requirement: "none",
12923 resolver: None,
12924 cancellation: "per_call",
12925 side_effects: &[],
12926 recovery: "retry",
12927 collection_index_ref: "none",
12928 },
12929 CommandSemanticContract {
12930 command: Command::GetComponentTemplate,
12931 admissible_errors: &[
12932 ErrorCode::Aborted,
12933 ErrorCode::DeadlineExceeded,
12934 ErrorCode::InvalidRequest,
12935 ErrorCode::UnsupportedVersion,
12936 ErrorCode::Unauthenticated,
12937 ErrorCode::PermissionDenied,
12938 ErrorCode::NotFound,
12939 ErrorCode::LimitExceeded,
12940 ErrorCode::CapabilityUnavailable,
12941 ErrorCode::TemporarilyUnavailable,
12942 ErrorCode::Internal,
12943 ],
12944 limit_ids: &["request_bytes", "response_bytes"],
12945 effect_class: "read_only",
12946 risk_flags: &[],
12947 capability_family: "catalog",
12948 retry_safety: "safe",
12949 identity_requirement: "none",
12950 resolver: None,
12951 cancellation: "per_call",
12952 side_effects: &[],
12953 recovery: "retry",
12954 collection_index_ref: "none",
12955 },
12956 CommandSemanticContract {
12957 command: Command::ListIndexTemplates,
12958 admissible_errors: &[
12959 ErrorCode::Aborted,
12960 ErrorCode::DeadlineExceeded,
12961 ErrorCode::InvalidRequest,
12962 ErrorCode::UnsupportedVersion,
12963 ErrorCode::Unauthenticated,
12964 ErrorCode::PermissionDenied,
12965 ErrorCode::NotFound,
12966 ErrorCode::StaleCursor,
12967 ErrorCode::RestartBudgetExhausted,
12968 ErrorCode::LimitExceeded,
12969 ErrorCode::CapabilityUnavailable,
12970 ErrorCode::TemporarilyUnavailable,
12971 ErrorCode::Internal,
12972 ],
12973 limit_ids: &[
12974 "request_bytes",
12975 "response_bytes",
12976 "page_size",
12977 "catalog_page_size",
12978 "catalog_restart_budget",
12979 ],
12980 effect_class: "read_only",
12981 risk_flags: &[],
12982 capability_family: "catalog",
12983 retry_safety: "safe",
12984 identity_requirement: "none",
12985 resolver: None,
12986 cancellation: "per_call",
12987 side_effects: &[],
12988 recovery: "retry",
12989 collection_index_ref: "none",
12990 },
12991 CommandSemanticContract {
12992 command: Command::GetIndexTemplate,
12993 admissible_errors: &[
12994 ErrorCode::Aborted,
12995 ErrorCode::DeadlineExceeded,
12996 ErrorCode::InvalidRequest,
12997 ErrorCode::UnsupportedVersion,
12998 ErrorCode::Unauthenticated,
12999 ErrorCode::PermissionDenied,
13000 ErrorCode::NotFound,
13001 ErrorCode::LimitExceeded,
13002 ErrorCode::CapabilityUnavailable,
13003 ErrorCode::TemporarilyUnavailable,
13004 ErrorCode::Internal,
13005 ],
13006 limit_ids: &["request_bytes", "response_bytes"],
13007 effect_class: "read_only",
13008 risk_flags: &[],
13009 capability_family: "catalog",
13010 retry_safety: "safe",
13011 identity_requirement: "none",
13012 resolver: None,
13013 cancellation: "per_call",
13014 side_effects: &[],
13015 recovery: "retry",
13016 collection_index_ref: "none",
13017 },
13018 CommandSemanticContract {
13019 command: Command::ListIngestPipelines,
13020 admissible_errors: &[
13021 ErrorCode::Aborted,
13022 ErrorCode::DeadlineExceeded,
13023 ErrorCode::InvalidRequest,
13024 ErrorCode::UnsupportedVersion,
13025 ErrorCode::Unauthenticated,
13026 ErrorCode::PermissionDenied,
13027 ErrorCode::NotFound,
13028 ErrorCode::StaleCursor,
13029 ErrorCode::RestartBudgetExhausted,
13030 ErrorCode::LimitExceeded,
13031 ErrorCode::CapabilityUnavailable,
13032 ErrorCode::TemporarilyUnavailable,
13033 ErrorCode::Internal,
13034 ],
13035 limit_ids: &[
13036 "request_bytes",
13037 "response_bytes",
13038 "page_size",
13039 "catalog_page_size",
13040 "catalog_restart_budget",
13041 ],
13042 effect_class: "read_only",
13043 risk_flags: &[],
13044 capability_family: "lifecycle",
13045 retry_safety: "safe",
13046 identity_requirement: "none",
13047 resolver: None,
13048 cancellation: "per_call",
13049 side_effects: &[],
13050 recovery: "retry",
13051 collection_index_ref: "none",
13052 },
13053 CommandSemanticContract {
13054 command: Command::GetIngestPipeline,
13055 admissible_errors: &[
13056 ErrorCode::Aborted,
13057 ErrorCode::DeadlineExceeded,
13058 ErrorCode::InvalidRequest,
13059 ErrorCode::UnsupportedVersion,
13060 ErrorCode::Unauthenticated,
13061 ErrorCode::PermissionDenied,
13062 ErrorCode::NotFound,
13063 ErrorCode::LimitExceeded,
13064 ErrorCode::CapabilityUnavailable,
13065 ErrorCode::TemporarilyUnavailable,
13066 ErrorCode::Internal,
13067 ],
13068 limit_ids: &["request_bytes", "response_bytes"],
13069 effect_class: "read_only",
13070 risk_flags: &[],
13071 capability_family: "lifecycle",
13072 retry_safety: "safe",
13073 identity_requirement: "none",
13074 resolver: None,
13075 cancellation: "per_call",
13076 side_effects: &[],
13077 recovery: "retry",
13078 collection_index_ref: "none",
13079 },
13080 CommandSemanticContract {
13081 command: Command::SimulateIngestPipeline,
13082 admissible_errors: &[
13083 ErrorCode::Aborted,
13084 ErrorCode::DeadlineExceeded,
13085 ErrorCode::InvalidRequest,
13086 ErrorCode::UnsupportedVersion,
13087 ErrorCode::Unauthenticated,
13088 ErrorCode::PermissionDenied,
13089 ErrorCode::NotFound,
13090 ErrorCode::LimitExceeded,
13091 ErrorCode::CapabilityUnavailable,
13092 ErrorCode::TemporarilyUnavailable,
13093 ErrorCode::Internal,
13094 ],
13095 limit_ids: &["request_bytes", "response_bytes"],
13096 effect_class: "read_only",
13097 risk_flags: &[],
13098 capability_family: "lifecycle",
13099 retry_safety: "safe",
13100 identity_requirement: "none",
13101 resolver: None,
13102 cancellation: "per_call",
13103 side_effects: &[],
13104 recovery: "retry",
13105 collection_index_ref: "none",
13106 },
13107 CommandSemanticContract {
13108 command: Command::ReprocessByQuery,
13109 admissible_errors: &[
13110 ErrorCode::Aborted,
13111 ErrorCode::DeadlineExceeded,
13112 ErrorCode::InvalidRequest,
13113 ErrorCode::UnsupportedVersion,
13114 ErrorCode::Unauthenticated,
13115 ErrorCode::PermissionDenied,
13116 ErrorCode::NotFound,
13117 ErrorCode::Conflict,
13118 ErrorCode::LimitExceeded,
13119 ErrorCode::CapabilityUnavailable,
13120 ErrorCode::NotSubmitted,
13121 ErrorCode::SubmittedIndeterminate,
13122 ErrorCode::ExpiredUnknown,
13123 ErrorCode::TemporarilyUnavailable,
13124 ErrorCode::Internal,
13125 ],
13126 limit_ids: &["request_bytes", "response_bytes"],
13127 effect_class: "durable_submit",
13128 risk_flags: &[],
13129 capability_family: "data",
13130 retry_safety: "safe",
13131 identity_requirement: "caller_action_id",
13132 resolver: None,
13133 cancellation: "per_call_until_submission_then_resolve",
13134 side_effects: &["commits_authoritative_state"],
13135 recovery: "retry",
13136 collection_index_ref: "request_index",
13137 },
13138 CommandSemanticContract {
13139 command: Command::ListLifecyclePolicies,
13140 admissible_errors: &[
13141 ErrorCode::Aborted,
13142 ErrorCode::DeadlineExceeded,
13143 ErrorCode::InvalidRequest,
13144 ErrorCode::UnsupportedVersion,
13145 ErrorCode::Unauthenticated,
13146 ErrorCode::PermissionDenied,
13147 ErrorCode::NotFound,
13148 ErrorCode::StaleCursor,
13149 ErrorCode::RestartBudgetExhausted,
13150 ErrorCode::LimitExceeded,
13151 ErrorCode::CapabilityUnavailable,
13152 ErrorCode::TemporarilyUnavailable,
13153 ErrorCode::Internal,
13154 ],
13155 limit_ids: &[
13156 "request_bytes",
13157 "response_bytes",
13158 "page_size",
13159 "catalog_page_size",
13160 "catalog_restart_budget",
13161 ],
13162 effect_class: "read_only",
13163 risk_flags: &[],
13164 capability_family: "catalog",
13165 retry_safety: "safe",
13166 identity_requirement: "none",
13167 resolver: None,
13168 cancellation: "per_call",
13169 side_effects: &[],
13170 recovery: "retry",
13171 collection_index_ref: "none",
13172 },
13173 CommandSemanticContract {
13174 command: Command::GetLifecyclePolicy,
13175 admissible_errors: &[
13176 ErrorCode::Aborted,
13177 ErrorCode::DeadlineExceeded,
13178 ErrorCode::InvalidRequest,
13179 ErrorCode::UnsupportedVersion,
13180 ErrorCode::Unauthenticated,
13181 ErrorCode::PermissionDenied,
13182 ErrorCode::NotFound,
13183 ErrorCode::LimitExceeded,
13184 ErrorCode::CapabilityUnavailable,
13185 ErrorCode::TemporarilyUnavailable,
13186 ErrorCode::Internal,
13187 ],
13188 limit_ids: &["request_bytes", "response_bytes"],
13189 effect_class: "read_only",
13190 risk_flags: &[],
13191 capability_family: "catalog",
13192 retry_safety: "safe",
13193 identity_requirement: "none",
13194 resolver: None,
13195 cancellation: "per_call",
13196 side_effects: &[],
13197 recovery: "retry",
13198 collection_index_ref: "none",
13199 },
13200 CommandSemanticContract {
13201 command: Command::PrepareCreateIndex,
13202 admissible_errors: &[
13203 ErrorCode::Aborted,
13204 ErrorCode::DeadlineExceeded,
13205 ErrorCode::InvalidRequest,
13206 ErrorCode::UnsupportedVersion,
13207 ErrorCode::Unauthenticated,
13208 ErrorCode::PermissionDenied,
13209 ErrorCode::NotFound,
13210 ErrorCode::LimitExceeded,
13211 ErrorCode::CapabilityUnavailable,
13212 ErrorCode::TemporarilyUnavailable,
13213 ErrorCode::Internal,
13214 ],
13215 limit_ids: &[
13216 "request_bytes",
13217 "response_bytes",
13218 "resource_initial_shards",
13219 "resource_target_shard_bytes",
13220 "resource_admission_weight",
13221 "resource_ram_bytes",
13222 "resource_nvme_bytes",
13223 "resource_refresh_millis",
13224 "resource_memtable_bytes",
13225 "resource_parallelism",
13226 ],
13227 effect_class: "prepare",
13228 risk_flags: &[],
13229 capability_family: "catalog",
13230 retry_safety: "safe",
13231 identity_requirement: "server_locator",
13232 resolver: None,
13233 cancellation: "per_call",
13234 side_effects: &["creates_bounded_preparation"],
13235 recovery: "retry",
13236 collection_index_ref: "request_name",
13237 },
13238 CommandSemanticContract {
13239 command: Command::PrepareDeleteIndex,
13240 admissible_errors: &[
13241 ErrorCode::Aborted,
13242 ErrorCode::DeadlineExceeded,
13243 ErrorCode::InvalidRequest,
13244 ErrorCode::UnsupportedVersion,
13245 ErrorCode::Unauthenticated,
13246 ErrorCode::PermissionDenied,
13247 ErrorCode::NotFound,
13248 ErrorCode::LimitExceeded,
13249 ErrorCode::CapabilityUnavailable,
13250 ErrorCode::TemporarilyUnavailable,
13251 ErrorCode::Internal,
13252 ],
13253 limit_ids: &["request_bytes", "response_bytes"],
13254 effect_class: "prepare",
13255 risk_flags: &["destructive"],
13256 capability_family: "catalog",
13257 retry_safety: "safe",
13258 identity_requirement: "server_locator",
13259 resolver: None,
13260 cancellation: "per_call",
13261 side_effects: &["creates_bounded_preparation"],
13262 recovery: "retry",
13263 collection_index_ref: "request_name",
13264 },
13265 CommandSemanticContract {
13266 command: Command::SubmitCatalogAction,
13267 admissible_errors: &[
13268 ErrorCode::Aborted,
13269 ErrorCode::DeadlineExceeded,
13270 ErrorCode::InvalidRequest,
13271 ErrorCode::UnsupportedVersion,
13272 ErrorCode::Unauthenticated,
13273 ErrorCode::PermissionDenied,
13274 ErrorCode::NotFound,
13275 ErrorCode::Conflict,
13276 ErrorCode::LimitExceeded,
13277 ErrorCode::CapabilityUnavailable,
13278 ErrorCode::NotSubmitted,
13279 ErrorCode::SubmittedIndeterminate,
13280 ErrorCode::ExpiredUnknown,
13281 ErrorCode::TemporarilyUnavailable,
13282 ErrorCode::Internal,
13283 ],
13284 limit_ids: &[
13285 "request_bytes",
13286 "response_bytes",
13287 "resource_initial_shards",
13288 "resource_target_shard_bytes",
13289 "resource_admission_weight",
13290 "resource_ram_bytes",
13291 "resource_nvme_bytes",
13292 "resource_refresh_millis",
13293 "resource_memtable_bytes",
13294 "resource_parallelism",
13295 ],
13296 effect_class: "durable_submit",
13297 risk_flags: &[],
13298 capability_family: "catalog",
13299 retry_safety: "pre_submit_only",
13300 identity_requirement: "request_locator",
13301 resolver: Some(Command::ResolveCatalogAction),
13302 cancellation: "per_call_until_submission_then_resolve",
13303 side_effects: &["commits_authoritative_state"],
13304 recovery: "resolve_with_resolve_catalog_action",
13305 collection_index_ref: "request_name",
13306 },
13307 CommandSemanticContract {
13308 command: Command::ResolveCatalogAction,
13309 admissible_errors: &[
13310 ErrorCode::Aborted,
13311 ErrorCode::DeadlineExceeded,
13312 ErrorCode::InvalidRequest,
13313 ErrorCode::UnsupportedVersion,
13314 ErrorCode::Unauthenticated,
13315 ErrorCode::PermissionDenied,
13316 ErrorCode::NotFound,
13317 ErrorCode::LimitExceeded,
13318 ErrorCode::CapabilityUnavailable,
13319 ErrorCode::TemporarilyUnavailable,
13320 ErrorCode::Internal,
13321 ],
13322 limit_ids: &["request_bytes", "response_bytes"],
13323 effect_class: "read_only",
13324 risk_flags: &[],
13325 capability_family: "catalog",
13326 retry_safety: "safe",
13327 identity_requirement: "request_locator",
13328 resolver: None,
13329 cancellation: "per_call",
13330 side_effects: &[],
13331 recovery: "retry",
13332 collection_index_ref: "caller",
13333 },
13334 CommandSemanticContract {
13335 command: Command::PrepareReplayableSourceIndex,
13336 admissible_errors: &[
13337 ErrorCode::Aborted,
13338 ErrorCode::DeadlineExceeded,
13339 ErrorCode::InvalidRequest,
13340 ErrorCode::UnsupportedVersion,
13341 ErrorCode::Unauthenticated,
13342 ErrorCode::PermissionDenied,
13343 ErrorCode::NotFound,
13344 ErrorCode::LimitExceeded,
13345 ErrorCode::CapabilityUnavailable,
13346 ErrorCode::RetentionGap,
13347 ErrorCode::TemporarilyUnavailable,
13348 ErrorCode::Internal,
13349 ],
13350 limit_ids: &[
13351 "request_bytes",
13352 "response_bytes",
13353 "resource_initial_shards",
13354 "resource_target_shard_bytes",
13355 "resource_admission_weight",
13356 "resource_ram_bytes",
13357 "resource_nvme_bytes",
13358 "resource_refresh_millis",
13359 "resource_memtable_bytes",
13360 "resource_parallelism",
13361 ],
13362 effect_class: "prepare",
13363 risk_flags: &[],
13364 capability_family: "catalog",
13365 retry_safety: "safe",
13366 identity_requirement: "server_locator",
13367 resolver: None,
13368 cancellation: "per_call",
13369 side_effects: &["creates_bounded_preparation"],
13370 recovery: "retry",
13371 collection_index_ref: "request_name",
13372 },
13373 CommandSemanticContract {
13374 command: Command::SubmitReplayableSourceIndex,
13375 admissible_errors: &[
13376 ErrorCode::Aborted,
13377 ErrorCode::DeadlineExceeded,
13378 ErrorCode::InvalidRequest,
13379 ErrorCode::UnsupportedVersion,
13380 ErrorCode::Unauthenticated,
13381 ErrorCode::PermissionDenied,
13382 ErrorCode::NotFound,
13383 ErrorCode::Conflict,
13384 ErrorCode::LimitExceeded,
13385 ErrorCode::CapabilityUnavailable,
13386 ErrorCode::NotSubmitted,
13387 ErrorCode::SubmittedIndeterminate,
13388 ErrorCode::ExpiredUnknown,
13389 ErrorCode::RetentionGap,
13390 ErrorCode::TemporarilyUnavailable,
13391 ErrorCode::Internal,
13392 ],
13393 limit_ids: &[
13394 "request_bytes",
13395 "response_bytes",
13396 "resource_initial_shards",
13397 "resource_target_shard_bytes",
13398 "resource_admission_weight",
13399 "resource_ram_bytes",
13400 "resource_nvme_bytes",
13401 "resource_refresh_millis",
13402 "resource_memtable_bytes",
13403 "resource_parallelism",
13404 ],
13405 effect_class: "durable_submit",
13406 risk_flags: &[],
13407 capability_family: "catalog",
13408 retry_safety: "pre_submit_only",
13409 identity_requirement: "request_locator",
13410 resolver: Some(Command::ResolveCatalogAction),
13411 cancellation: "per_call_until_submission_then_resolve",
13412 side_effects: &["commits_authoritative_state"],
13413 recovery: "resolve_with_resolve_catalog_action",
13414 collection_index_ref: "request_name",
13415 },
13416 CommandSemanticContract {
13417 command: Command::GetReplayableSource,
13418 admissible_errors: &[
13419 ErrorCode::Aborted,
13420 ErrorCode::DeadlineExceeded,
13421 ErrorCode::InvalidRequest,
13422 ErrorCode::UnsupportedVersion,
13423 ErrorCode::Unauthenticated,
13424 ErrorCode::PermissionDenied,
13425 ErrorCode::NotFound,
13426 ErrorCode::LimitExceeded,
13427 ErrorCode::CapabilityUnavailable,
13428 ErrorCode::RetentionGap,
13429 ErrorCode::TemporarilyUnavailable,
13430 ErrorCode::Internal,
13431 ],
13432 limit_ids: &["request_bytes", "response_bytes"],
13433 effect_class: "read_only",
13434 risk_flags: &[],
13435 capability_family: "catalog",
13436 retry_safety: "safe",
13437 identity_requirement: "none",
13438 resolver: None,
13439 cancellation: "per_call",
13440 side_effects: &[],
13441 recovery: "retry",
13442 collection_index_ref: "none",
13443 },
13444 CommandSemanticContract {
13445 command: Command::ControlReplayableSource,
13446 admissible_errors: &[
13447 ErrorCode::Aborted,
13448 ErrorCode::DeadlineExceeded,
13449 ErrorCode::InvalidRequest,
13450 ErrorCode::UnsupportedVersion,
13451 ErrorCode::Unauthenticated,
13452 ErrorCode::PermissionDenied,
13453 ErrorCode::NotFound,
13454 ErrorCode::Conflict,
13455 ErrorCode::LimitExceeded,
13456 ErrorCode::CapabilityUnavailable,
13457 ErrorCode::NotSubmitted,
13458 ErrorCode::SubmittedIndeterminate,
13459 ErrorCode::ExpiredUnknown,
13460 ErrorCode::RetentionGap,
13461 ErrorCode::TemporarilyUnavailable,
13462 ErrorCode::Internal,
13463 ],
13464 limit_ids: &["request_bytes", "response_bytes"],
13465 effect_class: "durable_submit",
13466 risk_flags: &[],
13467 capability_family: "catalog",
13468 retry_safety: "pre_submit_only",
13469 identity_requirement: "none",
13470 resolver: None,
13471 cancellation: "per_call_until_submission_then_resolve",
13472 side_effects: &["commits_authoritative_state"],
13473 recovery: "retry_if_not_submitted",
13474 collection_index_ref: "request_index",
13475 },
13476 CommandSemanticContract {
13477 command: Command::CloneIndex,
13478 admissible_errors: &[
13479 ErrorCode::Aborted,
13480 ErrorCode::DeadlineExceeded,
13481 ErrorCode::InvalidRequest,
13482 ErrorCode::UnsupportedVersion,
13483 ErrorCode::Unauthenticated,
13484 ErrorCode::PermissionDenied,
13485 ErrorCode::NotFound,
13486 ErrorCode::Conflict,
13487 ErrorCode::LimitExceeded,
13488 ErrorCode::CapabilityUnavailable,
13489 ErrorCode::NotSubmitted,
13490 ErrorCode::SubmittedIndeterminate,
13491 ErrorCode::ExpiredUnknown,
13492 ErrorCode::TemporarilyUnavailable,
13493 ErrorCode::Internal,
13494 ],
13495 limit_ids: &["request_bytes", "response_bytes"],
13496 effect_class: "durable_submit",
13497 risk_flags: &[],
13498 capability_family: "catalog",
13499 retry_safety: "pre_submit_only",
13500 identity_requirement: "caller_action_id",
13501 resolver: Some(Command::CloneIndex),
13502 cancellation: "per_call_until_submission_then_resolve",
13503 side_effects: &["commits_authoritative_state"],
13504 recovery: "resolve_with_clone_index",
13505 collection_index_ref: "caller",
13506 },
13507 CommandSemanticContract {
13508 command: Command::ConfigureHistory,
13509 admissible_errors: &[
13510 ErrorCode::Aborted,
13511 ErrorCode::DeadlineExceeded,
13512 ErrorCode::InvalidRequest,
13513 ErrorCode::UnsupportedVersion,
13514 ErrorCode::Unauthenticated,
13515 ErrorCode::PermissionDenied,
13516 ErrorCode::NotFound,
13517 ErrorCode::Conflict,
13518 ErrorCode::LimitExceeded,
13519 ErrorCode::CapabilityUnavailable,
13520 ErrorCode::NotSubmitted,
13521 ErrorCode::SubmittedIndeterminate,
13522 ErrorCode::ExpiredUnknown,
13523 ErrorCode::TemporarilyUnavailable,
13524 ErrorCode::Internal,
13525 ],
13526 limit_ids: &["request_bytes", "response_bytes"],
13527 effect_class: "durable_submit",
13528 risk_flags: &[],
13529 capability_family: "catalog",
13530 retry_safety: "pre_submit_only",
13531 identity_requirement: "none",
13532 resolver: Some(Command::GetHistory),
13533 cancellation: "per_call_until_submission_then_resolve",
13534 side_effects: &["commits_authoritative_state"],
13535 recovery: "resolve_with_get_history",
13536 collection_index_ref: "request_index",
13537 },
13538 CommandSemanticContract {
13539 command: Command::GetHistory,
13540 admissible_errors: &[
13541 ErrorCode::Aborted,
13542 ErrorCode::DeadlineExceeded,
13543 ErrorCode::InvalidRequest,
13544 ErrorCode::UnsupportedVersion,
13545 ErrorCode::Unauthenticated,
13546 ErrorCode::PermissionDenied,
13547 ErrorCode::NotFound,
13548 ErrorCode::LimitExceeded,
13549 ErrorCode::CapabilityUnavailable,
13550 ErrorCode::TemporarilyUnavailable,
13551 ErrorCode::Internal,
13552 ],
13553 limit_ids: &["request_bytes", "response_bytes"],
13554 effect_class: "read_only",
13555 risk_flags: &[],
13556 capability_family: "catalog",
13557 retry_safety: "safe",
13558 identity_requirement: "none",
13559 resolver: None,
13560 cancellation: "per_call",
13561 side_effects: &[],
13562 recovery: "retry",
13563 collection_index_ref: "none",
13564 },
13565 CommandSemanticContract {
13566 command: Command::ResolveHistory,
13567 admissible_errors: &[
13568 ErrorCode::Aborted,
13569 ErrorCode::DeadlineExceeded,
13570 ErrorCode::InvalidRequest,
13571 ErrorCode::UnsupportedVersion,
13572 ErrorCode::Unauthenticated,
13573 ErrorCode::PermissionDenied,
13574 ErrorCode::NotFound,
13575 ErrorCode::LimitExceeded,
13576 ErrorCode::CapabilityUnavailable,
13577 ErrorCode::RetentionGap,
13578 ErrorCode::TemporarilyUnavailable,
13579 ErrorCode::Internal,
13580 ],
13581 limit_ids: &["request_bytes", "response_bytes"],
13582 effect_class: "read_only",
13583 risk_flags: &[],
13584 capability_family: "data",
13585 retry_safety: "safe",
13586 identity_requirement: "none",
13587 resolver: None,
13588 cancellation: "per_call",
13589 side_effects: &[],
13590 recovery: "retry",
13591 collection_index_ref: "request_index",
13592 },
13593 CommandSemanticContract {
13594 command: Command::PlaceHistoryHold,
13595 admissible_errors: &[
13596 ErrorCode::Aborted,
13597 ErrorCode::DeadlineExceeded,
13598 ErrorCode::InvalidRequest,
13599 ErrorCode::UnsupportedVersion,
13600 ErrorCode::Unauthenticated,
13601 ErrorCode::PermissionDenied,
13602 ErrorCode::NotFound,
13603 ErrorCode::Conflict,
13604 ErrorCode::LimitExceeded,
13605 ErrorCode::CapabilityUnavailable,
13606 ErrorCode::NotSubmitted,
13607 ErrorCode::SubmittedIndeterminate,
13608 ErrorCode::ExpiredUnknown,
13609 ErrorCode::TemporarilyUnavailable,
13610 ErrorCode::Internal,
13611 ],
13612 limit_ids: &["request_bytes", "response_bytes"],
13613 effect_class: "durable_submit",
13614 risk_flags: &[],
13615 capability_family: "catalog",
13616 retry_safety: "pre_submit_only",
13617 identity_requirement: "none",
13618 resolver: Some(Command::GetHistory),
13619 cancellation: "per_call_until_submission_then_resolve",
13620 side_effects: &["commits_authoritative_state"],
13621 recovery: "resolve_with_get_history",
13622 collection_index_ref: "request_index",
13623 },
13624 CommandSemanticContract {
13625 command: Command::ReleaseHistoryHold,
13626 admissible_errors: &[
13627 ErrorCode::Aborted,
13628 ErrorCode::DeadlineExceeded,
13629 ErrorCode::InvalidRequest,
13630 ErrorCode::UnsupportedVersion,
13631 ErrorCode::Unauthenticated,
13632 ErrorCode::PermissionDenied,
13633 ErrorCode::NotFound,
13634 ErrorCode::Conflict,
13635 ErrorCode::LimitExceeded,
13636 ErrorCode::CapabilityUnavailable,
13637 ErrorCode::NotSubmitted,
13638 ErrorCode::SubmittedIndeterminate,
13639 ErrorCode::ExpiredUnknown,
13640 ErrorCode::TemporarilyUnavailable,
13641 ErrorCode::Internal,
13642 ],
13643 limit_ids: &["request_bytes", "response_bytes"],
13644 effect_class: "durable_submit",
13645 risk_flags: &[],
13646 capability_family: "catalog",
13647 retry_safety: "pre_submit_only",
13648 identity_requirement: "none",
13649 resolver: Some(Command::GetHistory),
13650 cancellation: "per_call_until_submission_then_resolve",
13651 side_effects: &["commits_authoritative_state"],
13652 recovery: "resolve_with_get_history",
13653 collection_index_ref: "request_index",
13654 },
13655 CommandSemanticContract {
13656 command: Command::PrepareDocumentMutation,
13657 admissible_errors: &[
13658 ErrorCode::Aborted,
13659 ErrorCode::DeadlineExceeded,
13660 ErrorCode::InvalidRequest,
13661 ErrorCode::UnsupportedVersion,
13662 ErrorCode::Unauthenticated,
13663 ErrorCode::PermissionDenied,
13664 ErrorCode::NotFound,
13665 ErrorCode::LimitExceeded,
13666 ErrorCode::CapabilityUnavailable,
13667 ErrorCode::TemporarilyUnavailable,
13668 ErrorCode::Internal,
13669 ],
13670 limit_ids: &["request_bytes", "response_bytes"],
13671 effect_class: "prepare",
13672 risk_flags: &[],
13673 capability_family: "data",
13674 retry_safety: "safe",
13675 identity_requirement: "server_locator",
13676 resolver: None,
13677 cancellation: "per_call",
13678 side_effects: &["creates_bounded_preparation"],
13679 recovery: "retry",
13680 collection_index_ref: "request_index",
13681 },
13682 CommandSemanticContract {
13683 command: Command::SubmitDocumentMutation,
13684 admissible_errors: &[
13685 ErrorCode::Aborted,
13686 ErrorCode::DeadlineExceeded,
13687 ErrorCode::InvalidRequest,
13688 ErrorCode::UnsupportedVersion,
13689 ErrorCode::Unauthenticated,
13690 ErrorCode::PermissionDenied,
13691 ErrorCode::NotFound,
13692 ErrorCode::Conflict,
13693 ErrorCode::LimitExceeded,
13694 ErrorCode::CapabilityUnavailable,
13695 ErrorCode::NotSubmitted,
13696 ErrorCode::SubmittedIndeterminate,
13697 ErrorCode::ExpiredUnknown,
13698 ErrorCode::TemporarilyUnavailable,
13699 ErrorCode::Internal,
13700 ],
13701 limit_ids: &["request_bytes", "response_bytes"],
13702 effect_class: "durable_submit",
13703 risk_flags: &[],
13704 capability_family: "data",
13705 retry_safety: "pre_submit_only",
13706 identity_requirement: "request_locator",
13707 resolver: Some(Command::ResolveDocumentMutation),
13708 cancellation: "per_call_until_submission_then_resolve",
13709 side_effects: &["commits_authoritative_state"],
13710 recovery: "resolve_with_resolve_document_mutation",
13711 collection_index_ref: "request_index",
13712 },
13713 CommandSemanticContract {
13714 command: Command::PrepareDocumentBulk,
13715 admissible_errors: &[
13716 ErrorCode::Aborted,
13717 ErrorCode::DeadlineExceeded,
13718 ErrorCode::InvalidRequest,
13719 ErrorCode::UnsupportedVersion,
13720 ErrorCode::Unauthenticated,
13721 ErrorCode::PermissionDenied,
13722 ErrorCode::NotFound,
13723 ErrorCode::LimitExceeded,
13724 ErrorCode::CapabilityUnavailable,
13725 ErrorCode::TemporarilyUnavailable,
13726 ErrorCode::Internal,
13727 ],
13728 limit_ids: &[
13729 "request_bytes",
13730 "response_bytes",
13731 "bulk_document_items",
13732 "bulk_document_bytes",
13733 ],
13734 effect_class: "prepare",
13735 risk_flags: &[],
13736 capability_family: "data",
13737 retry_safety: "safe",
13738 identity_requirement: "caller_action_id",
13739 resolver: None,
13740 cancellation: "per_call",
13741 side_effects: &["creates_bounded_preparation"],
13742 recovery: "retry",
13743 collection_index_ref: "request_index",
13744 },
13745 CommandSemanticContract {
13746 command: Command::SubmitDocumentBulk,
13747 admissible_errors: &[
13748 ErrorCode::Aborted,
13749 ErrorCode::DeadlineExceeded,
13750 ErrorCode::InvalidRequest,
13751 ErrorCode::UnsupportedVersion,
13752 ErrorCode::Unauthenticated,
13753 ErrorCode::PermissionDenied,
13754 ErrorCode::NotFound,
13755 ErrorCode::Conflict,
13756 ErrorCode::LimitExceeded,
13757 ErrorCode::CapabilityUnavailable,
13758 ErrorCode::NotSubmitted,
13759 ErrorCode::SubmittedIndeterminate,
13760 ErrorCode::ExpiredUnknown,
13761 ErrorCode::TemporarilyUnavailable,
13762 ErrorCode::Internal,
13763 ],
13764 limit_ids: &[
13765 "request_bytes",
13766 "response_bytes",
13767 "bulk_document_items",
13768 "bulk_document_bytes",
13769 ],
13770 effect_class: "durable_submit",
13771 risk_flags: &[],
13772 capability_family: "data",
13773 retry_safety: "pre_submit_only",
13774 identity_requirement: "caller_action_id",
13775 resolver: Some(Command::ResolveDocumentBulk),
13776 cancellation: "per_call_until_submission_then_resolve",
13777 side_effects: &["commits_authoritative_state"],
13778 recovery: "resolve_with_resolve_document_bulk",
13779 collection_index_ref: "request_index",
13780 },
13781 CommandSemanticContract {
13782 command: Command::ResolveDocumentBulk,
13783 admissible_errors: &[
13784 ErrorCode::Aborted,
13785 ErrorCode::DeadlineExceeded,
13786 ErrorCode::InvalidRequest,
13787 ErrorCode::UnsupportedVersion,
13788 ErrorCode::Unauthenticated,
13789 ErrorCode::PermissionDenied,
13790 ErrorCode::NotFound,
13791 ErrorCode::LimitExceeded,
13792 ErrorCode::CapabilityUnavailable,
13793 ErrorCode::TemporarilyUnavailable,
13794 ErrorCode::Internal,
13795 ],
13796 limit_ids: &[
13797 "request_bytes",
13798 "response_bytes",
13799 "bulk_document_items",
13800 "bulk_document_bytes",
13801 ],
13802 effect_class: "read_only",
13803 risk_flags: &[],
13804 capability_family: "data",
13805 retry_safety: "safe",
13806 identity_requirement: "caller_action_id",
13807 resolver: None,
13808 cancellation: "per_call",
13809 side_effects: &[],
13810 recovery: "retry",
13811 collection_index_ref: "request_index",
13812 },
13813 CommandSemanticContract {
13814 command: Command::PrepareAppendBulk,
13815 admissible_errors: &[
13816 ErrorCode::Aborted,
13817 ErrorCode::DeadlineExceeded,
13818 ErrorCode::InvalidRequest,
13819 ErrorCode::UnsupportedVersion,
13820 ErrorCode::Unauthenticated,
13821 ErrorCode::PermissionDenied,
13822 ErrorCode::NotFound,
13823 ErrorCode::LimitExceeded,
13824 ErrorCode::CapabilityUnavailable,
13825 ErrorCode::TemporarilyUnavailable,
13826 ErrorCode::Internal,
13827 ],
13828 limit_ids: &[
13829 "request_bytes",
13830 "response_bytes",
13831 "bulk_document_items",
13832 "bulk_document_bytes",
13833 ],
13834 effect_class: "prepare",
13835 risk_flags: &[],
13836 capability_family: "data",
13837 retry_safety: "safe",
13838 identity_requirement: "caller_action_id",
13839 resolver: None,
13840 cancellation: "per_call",
13841 side_effects: &[],
13842 recovery: "retry",
13843 collection_index_ref: "request_index",
13844 },
13845 CommandSemanticContract {
13846 command: Command::SubmitAppendBulk,
13847 admissible_errors: &[
13848 ErrorCode::Aborted,
13849 ErrorCode::DeadlineExceeded,
13850 ErrorCode::InvalidRequest,
13851 ErrorCode::UnsupportedVersion,
13852 ErrorCode::Unauthenticated,
13853 ErrorCode::PermissionDenied,
13854 ErrorCode::NotFound,
13855 ErrorCode::Conflict,
13856 ErrorCode::LimitExceeded,
13857 ErrorCode::CapabilityUnavailable,
13858 ErrorCode::NotSubmitted,
13859 ErrorCode::SubmittedIndeterminate,
13860 ErrorCode::TemporarilyUnavailable,
13861 ErrorCode::Internal,
13862 ],
13863 limit_ids: &[
13864 "request_bytes",
13865 "response_bytes",
13866 "bulk_document_items",
13867 "bulk_document_bytes",
13868 ],
13869 effect_class: "durable_submit",
13870 risk_flags: &[],
13871 capability_family: "data",
13872 retry_safety: "pre_submit_only",
13873 identity_requirement: "request_locator",
13874 resolver: Some(Command::ResolveAppendBulk),
13875 cancellation: "per_call_until_submission_then_resolve",
13876 side_effects: &["commits_authoritative_state"],
13877 recovery: "resolve_with_resolve_append_bulk",
13878 collection_index_ref: "request_index",
13879 },
13880 CommandSemanticContract {
13881 command: Command::ResolveAppendBulk,
13882 admissible_errors: &[
13883 ErrorCode::Aborted,
13884 ErrorCode::DeadlineExceeded,
13885 ErrorCode::InvalidRequest,
13886 ErrorCode::UnsupportedVersion,
13887 ErrorCode::Unauthenticated,
13888 ErrorCode::PermissionDenied,
13889 ErrorCode::NotFound,
13890 ErrorCode::Conflict,
13891 ErrorCode::LimitExceeded,
13892 ErrorCode::CapabilityUnavailable,
13893 ErrorCode::TemporarilyUnavailable,
13894 ErrorCode::Internal,
13895 ],
13896 limit_ids: &[
13897 "request_bytes",
13898 "response_bytes",
13899 "bulk_document_items",
13900 "bulk_document_bytes",
13901 ],
13902 effect_class: "read_only",
13903 risk_flags: &[],
13904 capability_family: "data",
13905 retry_safety: "safe",
13906 identity_requirement: "request_locator",
13907 resolver: None,
13908 cancellation: "per_call",
13909 side_effects: &[],
13910 recovery: "retry",
13911 collection_index_ref: "request_index",
13912 },
13913 CommandSemanticContract {
13914 command: Command::ObserveAppendCommitted,
13915 admissible_errors: &[
13916 ErrorCode::Aborted,
13917 ErrorCode::DeadlineExceeded,
13918 ErrorCode::InvalidRequest,
13919 ErrorCode::UnsupportedVersion,
13920 ErrorCode::Unauthenticated,
13921 ErrorCode::PermissionDenied,
13922 ErrorCode::NotFound,
13923 ErrorCode::Conflict,
13924 ErrorCode::LimitExceeded,
13925 ErrorCode::CapabilityUnavailable,
13926 ErrorCode::TemporarilyUnavailable,
13927 ErrorCode::Internal,
13928 ],
13929 limit_ids: &["request_bytes", "response_bytes"],
13930 effect_class: "read_only",
13931 risk_flags: &[],
13932 capability_family: "data",
13933 retry_safety: "safe",
13934 identity_requirement: "request_locator",
13935 resolver: None,
13936 cancellation: "per_call",
13937 side_effects: &[],
13938 recovery: "retry",
13939 collection_index_ref: "request_index",
13940 },
13941 CommandSemanticContract {
13942 command: Command::ResolveDocumentMutation,
13943 admissible_errors: &[
13944 ErrorCode::Aborted,
13945 ErrorCode::DeadlineExceeded,
13946 ErrorCode::InvalidRequest,
13947 ErrorCode::UnsupportedVersion,
13948 ErrorCode::Unauthenticated,
13949 ErrorCode::PermissionDenied,
13950 ErrorCode::NotFound,
13951 ErrorCode::LimitExceeded,
13952 ErrorCode::CapabilityUnavailable,
13953 ErrorCode::TemporarilyUnavailable,
13954 ErrorCode::Internal,
13955 ],
13956 limit_ids: &["request_bytes", "response_bytes"],
13957 effect_class: "read_only",
13958 risk_flags: &[],
13959 capability_family: "data",
13960 retry_safety: "safe",
13961 identity_requirement: "request_locator",
13962 resolver: None,
13963 cancellation: "per_call",
13964 side_effects: &[],
13965 recovery: "retry",
13966 collection_index_ref: "caller",
13967 },
13968 CommandSemanticContract {
13969 command: Command::GetDocument,
13970 admissible_errors: &[
13971 ErrorCode::Aborted,
13972 ErrorCode::DeadlineExceeded,
13973 ErrorCode::InvalidRequest,
13974 ErrorCode::UnsupportedVersion,
13975 ErrorCode::Unauthenticated,
13976 ErrorCode::PermissionDenied,
13977 ErrorCode::NotFound,
13978 ErrorCode::LimitExceeded,
13979 ErrorCode::CapabilityUnavailable,
13980 ErrorCode::TemporarilyUnavailable,
13981 ErrorCode::Internal,
13982 ],
13983 limit_ids: &["request_bytes", "response_bytes"],
13984 effect_class: "read_only",
13985 risk_flags: &[],
13986 capability_family: "data",
13987 retry_safety: "safe",
13988 identity_requirement: "none",
13989 resolver: None,
13990 cancellation: "per_call",
13991 side_effects: &[],
13992 recovery: "retry",
13993 collection_index_ref: "request_index",
13994 },
13995 CommandSemanticContract {
13996 command: Command::Search,
13997 admissible_errors: &[
13998 ErrorCode::Aborted,
13999 ErrorCode::DeadlineExceeded,
14000 ErrorCode::InvalidRequest,
14001 ErrorCode::UnsupportedVersion,
14002 ErrorCode::Unauthenticated,
14003 ErrorCode::PermissionDenied,
14004 ErrorCode::NotFound,
14005 ErrorCode::StaleCursor,
14006 ErrorCode::RestartBudgetExhausted,
14007 ErrorCode::LimitExceeded,
14008 ErrorCode::CapabilityUnavailable,
14009 ErrorCode::TemporarilyUnavailable,
14010 ErrorCode::Internal,
14011 ],
14012 limit_ids: &[
14013 "request_bytes",
14014 "response_bytes",
14015 "page_size",
14016 "query_clauses",
14017 "aggregation_nodes",
14018 "aggregation_buckets",
14019 "routing_values",
14020 "routing_value_bytes",
14021 "query_recursion_depth",
14022 "text_query_bytes",
14023 "text_query_fields",
14024 "text_query_slop",
14025 "text_query_boost",
14026 "text_query_fuzzy_expansions",
14027 "text_query_fuzzy_distance",
14028 "text_query_dictionary_scan_terms",
14029 "text_query_dictionary_scan_bytes",
14030 "text_query_fuzzy_work_units",
14031 "vector_dimensions",
14032 "vector_query_bytes",
14033 "vector_request_bytes",
14034 "vector_candidates",
14035 "vector_set_query_vectors",
14036 "vector_set_query_bytes",
14037 "retrieval_branches",
14038 "retrieval_branch_name_bytes",
14039 "retrieval_window",
14040 "fragment_fields",
14041 "fragments_per_field",
14042 "fragment_bytes",
14043 "fragment_total_bytes",
14044 "result_feature_hits",
14045 "result_features",
14046 "diversification_fields",
14047 "diversification_per_group",
14048 "source_projection_patterns",
14049 "source_projection_pattern_bytes",
14050 "search_result_window",
14051 ],
14052 effect_class: "read_only",
14053 risk_flags: &[],
14054 capability_family: "data",
14055 retry_safety: "safe",
14056 identity_requirement: "none",
14057 resolver: None,
14058 cancellation: "per_call",
14059 side_effects: &[],
14060 recovery: "retry",
14061 collection_index_ref: "request_indexes_or_pit_authority",
14062 },
14063 CommandSemanticContract {
14064 command: Command::TraverseRelationships,
14065 admissible_errors: &[
14066 ErrorCode::Aborted,
14067 ErrorCode::DeadlineExceeded,
14068 ErrorCode::InvalidRequest,
14069 ErrorCode::UnsupportedVersion,
14070 ErrorCode::Unauthenticated,
14071 ErrorCode::PermissionDenied,
14072 ErrorCode::NotFound,
14073 ErrorCode::LimitExceeded,
14074 ErrorCode::CapabilityUnavailable,
14075 ErrorCode::TemporarilyUnavailable,
14076 ErrorCode::Internal,
14077 ],
14078 limit_ids: &[
14079 "request_bytes",
14080 "response_bytes",
14081 "relationship_indexes",
14082 "relationship_seeds",
14083 "relationship_filter_values",
14084 "relationship_depth",
14085 "relationship_fan_out",
14086 "relationship_visited_entities",
14087 "relationship_visited_records",
14088 "relationship_returned_records",
14089 "relationship_memory_bytes",
14090 "search_result_window",
14091 ],
14092 effect_class: "read_only",
14093 risk_flags: &[],
14094 capability_family: "data",
14095 retry_safety: "safe",
14096 identity_requirement: "none",
14097 resolver: None,
14098 cancellation: "per_call",
14099 side_effects: &[],
14100 recovery: "retry",
14101 collection_index_ref: "pit_authority",
14102 },
14103 CommandSemanticContract {
14104 command: Command::QueryProfiles,
14105 admissible_errors: &[
14106 ErrorCode::Aborted,
14107 ErrorCode::DeadlineExceeded,
14108 ErrorCode::InvalidRequest,
14109 ErrorCode::UnsupportedVersion,
14110 ErrorCode::Unauthenticated,
14111 ErrorCode::PermissionDenied,
14112 ErrorCode::NotFound,
14113 ErrorCode::LimitExceeded,
14114 ErrorCode::CapabilityUnavailable,
14115 ErrorCode::TemporarilyUnavailable,
14116 ErrorCode::Internal,
14117 ],
14118 limit_ids: &[
14119 "request_bytes",
14120 "response_bytes",
14121 "profile_indexes",
14122 "profile_filter_values",
14123 "profile_batches",
14124 "profile_samples",
14125 "profile_results",
14126 "profile_memory_bytes",
14127 "search_result_window",
14128 ],
14129 effect_class: "read_only",
14130 risk_flags: &[],
14131 capability_family: "data",
14132 retry_safety: "safe",
14133 identity_requirement: "none",
14134 resolver: None,
14135 cancellation: "per_call",
14136 side_effects: &[],
14137 recovery: "retry",
14138 collection_index_ref: "pit_authority",
14139 },
14140 CommandSemanticContract {
14141 command: Command::EvaluateTemporalEvidence,
14142 admissible_errors: &[
14143 ErrorCode::Aborted,
14144 ErrorCode::DeadlineExceeded,
14145 ErrorCode::InvalidRequest,
14146 ErrorCode::UnsupportedVersion,
14147 ErrorCode::Unauthenticated,
14148 ErrorCode::PermissionDenied,
14149 ErrorCode::NotFound,
14150 ErrorCode::LimitExceeded,
14151 ErrorCode::CapabilityUnavailable,
14152 ErrorCode::TemporarilyUnavailable,
14153 ErrorCode::Internal,
14154 ],
14155 limit_ids: &[
14156 "request_bytes",
14157 "response_bytes",
14158 "query_clauses",
14159 "query_recursion_depth",
14160 "search_result_window",
14161 "temporal_inputs",
14162 "temporal_pattern_nodes",
14163 "temporal_pattern_depth",
14164 "temporal_pattern_branches",
14165 "temporal_correlation_keys",
14166 "temporal_events",
14167 "temporal_states",
14168 "temporal_captured_events",
14169 "temporal_results",
14170 "temporal_state_bytes",
14171 "temporal_interval_nanos",
14172 ],
14173 effect_class: "read_only",
14174 risk_flags: &[],
14175 capability_family: "data",
14176 retry_safety: "safe",
14177 identity_requirement: "none",
14178 resolver: None,
14179 cancellation: "per_call",
14180 side_effects: &[],
14181 recovery: "retry",
14182 collection_index_ref: "pit_authority",
14183 },
14184 CommandSemanticContract {
14185 command: Command::CreateContinuousTemporalEvaluation,
14186 admissible_errors: &[
14187 ErrorCode::Aborted,
14188 ErrorCode::DeadlineExceeded,
14189 ErrorCode::InvalidRequest,
14190 ErrorCode::UnsupportedVersion,
14191 ErrorCode::Unauthenticated,
14192 ErrorCode::PermissionDenied,
14193 ErrorCode::NotFound,
14194 ErrorCode::Conflict,
14195 ErrorCode::LimitExceeded,
14196 ErrorCode::CapabilityUnavailable,
14197 ErrorCode::NotSubmitted,
14198 ErrorCode::SubmittedIndeterminate,
14199 ErrorCode::TemporarilyUnavailable,
14200 ErrorCode::Internal,
14201 ],
14202 limit_ids: &[
14203 "request_bytes",
14204 "response_bytes",
14205 "temporal_inputs",
14206 "temporal_pattern_nodes",
14207 "temporal_pattern_depth",
14208 "temporal_pattern_branches",
14209 "temporal_correlation_keys",
14210 "temporal_events",
14211 "temporal_states",
14212 "temporal_captured_events",
14213 "temporal_results",
14214 "temporal_state_bytes",
14215 "temporal_interval_nanos",
14216 ],
14217 effect_class: "durable_submit",
14218 risk_flags: &[],
14219 capability_family: "lifecycle",
14220 retry_safety: "pre_submit_only",
14221 identity_requirement: "caller_action_id",
14222 resolver: Some(Command::GetContinuousTemporalEvaluation),
14223 cancellation: "per_call_until_submission_then_resolve",
14224 side_effects: &["commits_authoritative_state"],
14225 recovery: "resolve_with_get_continuous_temporal_evaluation",
14226 collection_index_ref: "request_temporal_inputs",
14227 },
14228 CommandSemanticContract {
14229 command: Command::GetContinuousTemporalEvaluation,
14230 admissible_errors: &[
14231 ErrorCode::Aborted,
14232 ErrorCode::DeadlineExceeded,
14233 ErrorCode::InvalidRequest,
14234 ErrorCode::UnsupportedVersion,
14235 ErrorCode::Unauthenticated,
14236 ErrorCode::PermissionDenied,
14237 ErrorCode::NotFound,
14238 ErrorCode::LimitExceeded,
14239 ErrorCode::CapabilityUnavailable,
14240 ErrorCode::TemporarilyUnavailable,
14241 ErrorCode::Internal,
14242 ],
14243 limit_ids: &["request_bytes", "response_bytes"],
14244 effect_class: "read_only",
14245 risk_flags: &[],
14246 capability_family: "lifecycle",
14247 retry_safety: "safe",
14248 identity_requirement: "none",
14249 resolver: None,
14250 cancellation: "per_call",
14251 side_effects: &[],
14252 recovery: "retry",
14253 collection_index_ref: "request_evaluation",
14254 },
14255 CommandSemanticContract {
14256 command: Command::PauseContinuousTemporalEvaluation,
14257 admissible_errors: &[
14258 ErrorCode::Aborted,
14259 ErrorCode::DeadlineExceeded,
14260 ErrorCode::InvalidRequest,
14261 ErrorCode::UnsupportedVersion,
14262 ErrorCode::Unauthenticated,
14263 ErrorCode::PermissionDenied,
14264 ErrorCode::NotFound,
14265 ErrorCode::Conflict,
14266 ErrorCode::LimitExceeded,
14267 ErrorCode::CapabilityUnavailable,
14268 ErrorCode::NotSubmitted,
14269 ErrorCode::SubmittedIndeterminate,
14270 ErrorCode::TemporarilyUnavailable,
14271 ErrorCode::Internal,
14272 ],
14273 limit_ids: &["request_bytes", "response_bytes"],
14274 effect_class: "durable_submit",
14275 risk_flags: &[],
14276 capability_family: "lifecycle",
14277 retry_safety: "pre_submit_only",
14278 identity_requirement: "caller_action_id",
14279 resolver: Some(Command::GetContinuousTemporalEvaluation),
14280 cancellation: "per_call_until_submission_then_resolve",
14281 side_effects: &["commits_authoritative_state"],
14282 recovery: "resolve_with_get_continuous_temporal_evaluation",
14283 collection_index_ref: "request_evaluation",
14284 },
14285 CommandSemanticContract {
14286 command: Command::ResumeContinuousTemporalEvaluation,
14287 admissible_errors: &[
14288 ErrorCode::Aborted,
14289 ErrorCode::DeadlineExceeded,
14290 ErrorCode::InvalidRequest,
14291 ErrorCode::UnsupportedVersion,
14292 ErrorCode::Unauthenticated,
14293 ErrorCode::PermissionDenied,
14294 ErrorCode::NotFound,
14295 ErrorCode::Conflict,
14296 ErrorCode::LimitExceeded,
14297 ErrorCode::CapabilityUnavailable,
14298 ErrorCode::NotSubmitted,
14299 ErrorCode::SubmittedIndeterminate,
14300 ErrorCode::TemporarilyUnavailable,
14301 ErrorCode::Internal,
14302 ],
14303 limit_ids: &["request_bytes", "response_bytes"],
14304 effect_class: "durable_submit",
14305 risk_flags: &[],
14306 capability_family: "lifecycle",
14307 retry_safety: "pre_submit_only",
14308 identity_requirement: "caller_action_id",
14309 resolver: Some(Command::GetContinuousTemporalEvaluation),
14310 cancellation: "per_call_until_submission_then_resolve",
14311 side_effects: &["commits_authoritative_state"],
14312 recovery: "resolve_with_get_continuous_temporal_evaluation",
14313 collection_index_ref: "request_evaluation",
14314 },
14315 CommandSemanticContract {
14316 command: Command::ReplaceContinuousTemporalEvaluation,
14317 admissible_errors: &[
14318 ErrorCode::Aborted,
14319 ErrorCode::DeadlineExceeded,
14320 ErrorCode::InvalidRequest,
14321 ErrorCode::UnsupportedVersion,
14322 ErrorCode::Unauthenticated,
14323 ErrorCode::PermissionDenied,
14324 ErrorCode::NotFound,
14325 ErrorCode::Conflict,
14326 ErrorCode::LimitExceeded,
14327 ErrorCode::CapabilityUnavailable,
14328 ErrorCode::NotSubmitted,
14329 ErrorCode::SubmittedIndeterminate,
14330 ErrorCode::TemporarilyUnavailable,
14331 ErrorCode::Internal,
14332 ],
14333 limit_ids: &[
14334 "request_bytes",
14335 "response_bytes",
14336 "temporal_inputs",
14337 "temporal_pattern_nodes",
14338 "temporal_pattern_depth",
14339 "temporal_pattern_branches",
14340 "temporal_correlation_keys",
14341 "temporal_events",
14342 "temporal_states",
14343 "temporal_captured_events",
14344 "temporal_results",
14345 "temporal_state_bytes",
14346 "temporal_interval_nanos",
14347 ],
14348 effect_class: "durable_submit",
14349 risk_flags: &[],
14350 capability_family: "lifecycle",
14351 retry_safety: "pre_submit_only",
14352 identity_requirement: "caller_action_id",
14353 resolver: Some(Command::GetContinuousTemporalEvaluation),
14354 cancellation: "per_call_until_submission_then_resolve",
14355 side_effects: &["commits_authoritative_state"],
14356 recovery: "resolve_with_get_continuous_temporal_evaluation",
14357 collection_index_ref: "request_temporal_inputs",
14358 },
14359 CommandSemanticContract {
14360 command: Command::RetireContinuousTemporalEvaluation,
14361 admissible_errors: &[
14362 ErrorCode::Aborted,
14363 ErrorCode::DeadlineExceeded,
14364 ErrorCode::InvalidRequest,
14365 ErrorCode::UnsupportedVersion,
14366 ErrorCode::Unauthenticated,
14367 ErrorCode::PermissionDenied,
14368 ErrorCode::NotFound,
14369 ErrorCode::Conflict,
14370 ErrorCode::LimitExceeded,
14371 ErrorCode::CapabilityUnavailable,
14372 ErrorCode::NotSubmitted,
14373 ErrorCode::SubmittedIndeterminate,
14374 ErrorCode::TemporarilyUnavailable,
14375 ErrorCode::Internal,
14376 ],
14377 limit_ids: &["request_bytes", "response_bytes"],
14378 effect_class: "durable_submit",
14379 risk_flags: &["destructive"],
14380 capability_family: "lifecycle",
14381 retry_safety: "pre_submit_only",
14382 identity_requirement: "caller_action_id",
14383 resolver: Some(Command::GetContinuousTemporalEvaluation),
14384 cancellation: "per_call_until_submission_then_resolve",
14385 side_effects: &["commits_authoritative_state"],
14386 recovery: "resolve_with_get_continuous_temporal_evaluation",
14387 collection_index_ref: "request_evaluation",
14388 },
14389 CommandSemanticContract {
14390 command: Command::ReadContinuousTemporalEvidence,
14391 admissible_errors: &[
14392 ErrorCode::Aborted,
14393 ErrorCode::DeadlineExceeded,
14394 ErrorCode::InvalidRequest,
14395 ErrorCode::UnsupportedVersion,
14396 ErrorCode::Unauthenticated,
14397 ErrorCode::PermissionDenied,
14398 ErrorCode::NotFound,
14399 ErrorCode::Conflict,
14400 ErrorCode::RetentionGap,
14401 ErrorCode::LimitExceeded,
14402 ErrorCode::CapabilityUnavailable,
14403 ErrorCode::TemporarilyUnavailable,
14404 ErrorCode::Internal,
14405 ],
14406 limit_ids: &["request_bytes", "response_bytes", "page_size", "temporal_results"],
14407 effect_class: "read_only",
14408 risk_flags: &[],
14409 capability_family: "data",
14410 retry_safety: "safe",
14411 identity_requirement: "none",
14412 resolver: None,
14413 cancellation: "per_call",
14414 side_effects: &[],
14415 recovery: "retry",
14416 collection_index_ref: "request_evaluation",
14417 },
14418 CommandSemanticContract {
14419 command: Command::ValidateSearch,
14420 admissible_errors: &[
14421 ErrorCode::Aborted,
14422 ErrorCode::DeadlineExceeded,
14423 ErrorCode::InvalidRequest,
14424 ErrorCode::UnsupportedVersion,
14425 ErrorCode::Unauthenticated,
14426 ErrorCode::PermissionDenied,
14427 ErrorCode::NotFound,
14428 ErrorCode::LimitExceeded,
14429 ErrorCode::CapabilityUnavailable,
14430 ErrorCode::TemporarilyUnavailable,
14431 ErrorCode::Internal,
14432 ],
14433 limit_ids: &[
14434 "request_bytes",
14435 "response_bytes",
14436 "page_size",
14437 "query_clauses",
14438 "aggregation_nodes",
14439 "aggregation_buckets",
14440 "routing_values",
14441 "routing_value_bytes",
14442 "query_recursion_depth",
14443 "source_projection_patterns",
14444 "source_projection_pattern_bytes",
14445 "search_result_window",
14446 ],
14447 effect_class: "read_only",
14448 risk_flags: &[],
14449 capability_family: "data",
14450 retry_safety: "safe",
14451 identity_requirement: "none",
14452 resolver: None,
14453 cancellation: "per_call",
14454 side_effects: &[],
14455 recovery: "retry",
14456 collection_index_ref: "request_indexes_uniform",
14457 },
14458 CommandSemanticContract {
14459 command: Command::MaterializeTableSnapshot,
14460 admissible_errors: &[
14461 ErrorCode::Aborted,
14462 ErrorCode::DeadlineExceeded,
14463 ErrorCode::InvalidRequest,
14464 ErrorCode::UnsupportedVersion,
14465 ErrorCode::Unauthenticated,
14466 ErrorCode::PermissionDenied,
14467 ErrorCode::NotFound,
14468 ErrorCode::Conflict,
14469 ErrorCode::LimitExceeded,
14470 ErrorCode::CapabilityUnavailable,
14471 ErrorCode::NotSubmitted,
14472 ErrorCode::SubmittedIndeterminate,
14473 ErrorCode::ExpiredUnknown,
14474 ErrorCode::ChecksumMismatch,
14475 ErrorCode::TemporarilyUnavailable,
14476 ErrorCode::Internal,
14477 ],
14478 limit_ids: &[
14479 "request_bytes",
14480 "response_bytes",
14481 "table_snapshot_objects",
14482 "table_snapshot_ttl_millis",
14483 "table_snapshot_read_bytes",
14484 ],
14485 effect_class: "durable_submit",
14486 risk_flags: &[],
14487 capability_family: "data",
14488 retry_safety: "pre_submit_only",
14489 identity_requirement: "caller_action_id",
14490 resolver: Some(Command::ResolveTableSnapshot),
14491 cancellation: "per_call_until_submission_then_resolve",
14492 side_effects: &["creates_bounded_preparation", "commits_authoritative_state"],
14493 recovery: "resolve_with_resolve_table_snapshot",
14494 collection_index_ref: "request_index",
14495 },
14496 CommandSemanticContract {
14497 command: Command::ResolveTableSnapshot,
14498 admissible_errors: &[
14499 ErrorCode::Aborted,
14500 ErrorCode::DeadlineExceeded,
14501 ErrorCode::InvalidRequest,
14502 ErrorCode::UnsupportedVersion,
14503 ErrorCode::Unauthenticated,
14504 ErrorCode::PermissionDenied,
14505 ErrorCode::NotFound,
14506 ErrorCode::Conflict,
14507 ErrorCode::LimitExceeded,
14508 ErrorCode::CapabilityUnavailable,
14509 ErrorCode::ExpiredUnknown,
14510 ErrorCode::ChecksumMismatch,
14511 ErrorCode::TemporarilyUnavailable,
14512 ErrorCode::Internal,
14513 ],
14514 limit_ids: &[
14515 "request_bytes",
14516 "response_bytes",
14517 "table_snapshot_objects",
14518 "table_snapshot_ttl_millis",
14519 "table_snapshot_read_bytes",
14520 ],
14521 effect_class: "read_only",
14522 risk_flags: &[],
14523 capability_family: "data",
14524 retry_safety: "safe",
14525 identity_requirement: "caller_action_id",
14526 resolver: None,
14527 cancellation: "per_call",
14528 side_effects: &[],
14529 recovery: "retry",
14530 collection_index_ref: "request_index",
14531 },
14532 CommandSemanticContract {
14533 command: Command::ReadTableSnapshot,
14534 admissible_errors: &[
14535 ErrorCode::Aborted,
14536 ErrorCode::DeadlineExceeded,
14537 ErrorCode::InvalidRequest,
14538 ErrorCode::UnsupportedVersion,
14539 ErrorCode::Unauthenticated,
14540 ErrorCode::PermissionDenied,
14541 ErrorCode::NotFound,
14542 ErrorCode::Conflict,
14543 ErrorCode::LimitExceeded,
14544 ErrorCode::CapabilityUnavailable,
14545 ErrorCode::ArtifactRangeInvalid,
14546 ErrorCode::ChecksumMismatch,
14547 ErrorCode::TemporarilyUnavailable,
14548 ErrorCode::Internal,
14549 ],
14550 limit_ids: &["request_bytes", "response_bytes", "table_snapshot_read_bytes"],
14551 effect_class: "read_only",
14552 risk_flags: &[],
14553 capability_family: "data",
14554 retry_safety: "safe",
14555 identity_requirement: "request_locator",
14556 resolver: None,
14557 cancellation: "per_call",
14558 side_effects: &[],
14559 recovery: "retry",
14560 collection_index_ref: "request_index",
14561 },
14562 CommandSemanticContract {
14563 command: Command::OpenPit,
14564 admissible_errors: &[
14565 ErrorCode::Aborted,
14566 ErrorCode::DeadlineExceeded,
14567 ErrorCode::InvalidRequest,
14568 ErrorCode::UnsupportedVersion,
14569 ErrorCode::Unauthenticated,
14570 ErrorCode::PermissionDenied,
14571 ErrorCode::NotFound,
14572 ErrorCode::Conflict,
14573 ErrorCode::LimitExceeded,
14574 ErrorCode::CapabilityUnavailable,
14575 ErrorCode::NotSubmitted,
14576 ErrorCode::SubmittedIndeterminate,
14577 ErrorCode::ExpiredUnknown,
14578 ErrorCode::TemporarilyUnavailable,
14579 ErrorCode::Internal,
14580 ],
14581 limit_ids: &["request_bytes", "response_bytes"],
14582 effect_class: "lease_renewing_read",
14583 risk_flags: &[],
14584 capability_family: "data",
14585 retry_safety: "pre_submit_only",
14586 identity_requirement: "none",
14587 resolver: None,
14588 cancellation: "per_call_until_submission_then_resolve",
14589 side_effects: &["renews_or_closes_existing_lease"],
14590 recovery: "retry_if_not_submitted",
14591 collection_index_ref: "request_indexes_uniform",
14592 },
14593 CommandSemanticContract {
14594 command: Command::RenewPit,
14595 admissible_errors: &[
14596 ErrorCode::Aborted,
14597 ErrorCode::DeadlineExceeded,
14598 ErrorCode::InvalidRequest,
14599 ErrorCode::UnsupportedVersion,
14600 ErrorCode::Unauthenticated,
14601 ErrorCode::PermissionDenied,
14602 ErrorCode::NotFound,
14603 ErrorCode::Conflict,
14604 ErrorCode::LimitExceeded,
14605 ErrorCode::CapabilityUnavailable,
14606 ErrorCode::NotSubmitted,
14607 ErrorCode::SubmittedIndeterminate,
14608 ErrorCode::ExpiredUnknown,
14609 ErrorCode::TemporarilyUnavailable,
14610 ErrorCode::Internal,
14611 ],
14612 limit_ids: &["request_bytes", "response_bytes"],
14613 effect_class: "lease_renewing_read",
14614 risk_flags: &[],
14615 capability_family: "data",
14616 retry_safety: "pre_submit_only",
14617 identity_requirement: "none",
14618 resolver: None,
14619 cancellation: "per_call_until_submission_then_resolve",
14620 side_effects: &["renews_or_closes_existing_lease"],
14621 recovery: "retry_if_not_submitted",
14622 collection_index_ref: "pit_authority",
14623 },
14624 CommandSemanticContract {
14625 command: Command::ClosePit,
14626 admissible_errors: &[
14627 ErrorCode::Aborted,
14628 ErrorCode::DeadlineExceeded,
14629 ErrorCode::InvalidRequest,
14630 ErrorCode::UnsupportedVersion,
14631 ErrorCode::Unauthenticated,
14632 ErrorCode::PermissionDenied,
14633 ErrorCode::NotFound,
14634 ErrorCode::Conflict,
14635 ErrorCode::LimitExceeded,
14636 ErrorCode::CapabilityUnavailable,
14637 ErrorCode::NotSubmitted,
14638 ErrorCode::SubmittedIndeterminate,
14639 ErrorCode::ExpiredUnknown,
14640 ErrorCode::TemporarilyUnavailable,
14641 ErrorCode::Internal,
14642 ],
14643 limit_ids: &["request_bytes", "response_bytes"],
14644 effect_class: "lease_renewing_read",
14645 risk_flags: &[],
14646 capability_family: "data",
14647 retry_safety: "pre_submit_only",
14648 identity_requirement: "none",
14649 resolver: None,
14650 cancellation: "per_call_until_submission_then_resolve",
14651 side_effects: &["renews_or_closes_existing_lease"],
14652 recovery: "retry_if_not_submitted",
14653 collection_index_ref: "pit_authority",
14654 },
14655 CommandSemanticContract {
14656 command: Command::ListOperations,
14657 admissible_errors: &[
14658 ErrorCode::Aborted,
14659 ErrorCode::DeadlineExceeded,
14660 ErrorCode::InvalidRequest,
14661 ErrorCode::UnsupportedVersion,
14662 ErrorCode::Unauthenticated,
14663 ErrorCode::PermissionDenied,
14664 ErrorCode::NotFound,
14665 ErrorCode::StaleCursor,
14666 ErrorCode::RestartBudgetExhausted,
14667 ErrorCode::LimitExceeded,
14668 ErrorCode::CapabilityUnavailable,
14669 ErrorCode::TemporarilyUnavailable,
14670 ErrorCode::Internal,
14671 ],
14672 limit_ids: &["request_bytes", "response_bytes", "page_size", "operation_page_size"],
14673 effect_class: "read_only",
14674 risk_flags: &[],
14675 capability_family: "operations",
14676 retry_safety: "safe",
14677 identity_requirement: "none",
14678 resolver: None,
14679 cancellation: "per_call",
14680 side_effects: &[],
14681 recovery: "retry",
14682 collection_index_ref: "none",
14683 },
14684 CommandSemanticContract {
14685 command: Command::GetOperation,
14686 admissible_errors: &[
14687 ErrorCode::Aborted,
14688 ErrorCode::DeadlineExceeded,
14689 ErrorCode::InvalidRequest,
14690 ErrorCode::UnsupportedVersion,
14691 ErrorCode::Unauthenticated,
14692 ErrorCode::PermissionDenied,
14693 ErrorCode::NotFound,
14694 ErrorCode::LimitExceeded,
14695 ErrorCode::CapabilityUnavailable,
14696 ErrorCode::TemporarilyUnavailable,
14697 ErrorCode::Internal,
14698 ],
14699 limit_ids: &["request_bytes", "response_bytes"],
14700 effect_class: "read_only",
14701 risk_flags: &[],
14702 capability_family: "operations",
14703 retry_safety: "safe",
14704 identity_requirement: "request_locator",
14705 resolver: None,
14706 cancellation: "per_call",
14707 side_effects: &[],
14708 recovery: "retry",
14709 collection_index_ref: "none",
14710 },
14711 CommandSemanticContract {
14712 command: Command::WaitOperation,
14713 admissible_errors: &[
14714 ErrorCode::Aborted,
14715 ErrorCode::DeadlineExceeded,
14716 ErrorCode::InvalidRequest,
14717 ErrorCode::UnsupportedVersion,
14718 ErrorCode::Unauthenticated,
14719 ErrorCode::PermissionDenied,
14720 ErrorCode::NotFound,
14721 ErrorCode::Conflict,
14722 ErrorCode::LimitExceeded,
14723 ErrorCode::CapabilityUnavailable,
14724 ErrorCode::TemporarilyUnavailable,
14725 ErrorCode::Internal,
14726 ],
14727 limit_ids: &[
14728 "request_bytes",
14729 "response_bytes",
14730 "operation_wait_attempts",
14731 "operation_wait_interval_millis",
14732 ],
14733 effect_class: "read_only",
14734 risk_flags: &[],
14735 capability_family: "operations",
14736 retry_safety: "safe",
14737 identity_requirement: "request_locator",
14738 resolver: None,
14739 cancellation: "per_call",
14740 side_effects: &[],
14741 recovery: "retry",
14742 collection_index_ref: "none",
14743 },
14744 CommandSemanticContract {
14745 command: Command::CancelOperation,
14746 admissible_errors: &[
14747 ErrorCode::Aborted,
14748 ErrorCode::DeadlineExceeded,
14749 ErrorCode::InvalidRequest,
14750 ErrorCode::UnsupportedVersion,
14751 ErrorCode::Unauthenticated,
14752 ErrorCode::PermissionDenied,
14753 ErrorCode::NotFound,
14754 ErrorCode::Conflict,
14755 ErrorCode::LimitExceeded,
14756 ErrorCode::CapabilityUnavailable,
14757 ErrorCode::NotSubmitted,
14758 ErrorCode::SubmittedIndeterminate,
14759 ErrorCode::ExpiredUnknown,
14760 ErrorCode::TemporarilyUnavailable,
14761 ErrorCode::Internal,
14762 ],
14763 limit_ids: &["request_bytes", "response_bytes"],
14764 effect_class: "control_write",
14765 risk_flags: &[],
14766 capability_family: "operations",
14767 retry_safety: "pre_submit_only",
14768 identity_requirement: "request_locator",
14769 resolver: None,
14770 cancellation: "per_call_until_submission_then_resolve",
14771 side_effects: &["commits_authoritative_state"],
14772 recovery: "retry_if_not_submitted",
14773 collection_index_ref: "none",
14774 },
14775 CommandSemanticContract {
14776 command: Command::ListAuditEvents,
14777 admissible_errors: &[
14778 ErrorCode::Aborted,
14779 ErrorCode::DeadlineExceeded,
14780 ErrorCode::InvalidRequest,
14781 ErrorCode::UnsupportedVersion,
14782 ErrorCode::Unauthenticated,
14783 ErrorCode::PermissionDenied,
14784 ErrorCode::NotFound,
14785 ErrorCode::StaleCursor,
14786 ErrorCode::RestartBudgetExhausted,
14787 ErrorCode::LimitExceeded,
14788 ErrorCode::CapabilityUnavailable,
14789 ErrorCode::TemporarilyUnavailable,
14790 ErrorCode::Internal,
14791 ],
14792 limit_ids: &["request_bytes", "response_bytes", "page_size"],
14793 effect_class: "read_only",
14794 risk_flags: &[],
14795 capability_family: "audit",
14796 retry_safety: "safe",
14797 identity_requirement: "none",
14798 resolver: None,
14799 cancellation: "per_call",
14800 side_effects: &[],
14801 recovery: "retry",
14802 collection_index_ref: "none",
14803 },
14804 CommandSemanticContract {
14805 command: Command::ExportAuditEvents,
14806 admissible_errors: &[
14807 ErrorCode::Aborted,
14808 ErrorCode::DeadlineExceeded,
14809 ErrorCode::InvalidRequest,
14810 ErrorCode::UnsupportedVersion,
14811 ErrorCode::Unauthenticated,
14812 ErrorCode::PermissionDenied,
14813 ErrorCode::NotFound,
14814 ErrorCode::StaleCursor,
14815 ErrorCode::RestartBudgetExhausted,
14816 ErrorCode::LimitExceeded,
14817 ErrorCode::CapabilityUnavailable,
14818 ErrorCode::TemporarilyUnavailable,
14819 ErrorCode::Internal,
14820 ],
14821 limit_ids: &["request_bytes", "response_bytes", "page_size"],
14822 effect_class: "read_only",
14823 risk_flags: &[],
14824 capability_family: "audit",
14825 retry_safety: "safe",
14826 identity_requirement: "none",
14827 resolver: None,
14828 cancellation: "per_call",
14829 side_effects: &[],
14830 recovery: "retry",
14831 collection_index_ref: "none",
14832 },
14833 CommandSemanticContract {
14834 command: Command::ReserveServiceCredential,
14835 admissible_errors: &[
14836 ErrorCode::Aborted,
14837 ErrorCode::DeadlineExceeded,
14838 ErrorCode::InvalidRequest,
14839 ErrorCode::UnsupportedVersion,
14840 ErrorCode::Unauthenticated,
14841 ErrorCode::PermissionDenied,
14842 ErrorCode::NotFound,
14843 ErrorCode::Conflict,
14844 ErrorCode::LimitExceeded,
14845 ErrorCode::CapabilityUnavailable,
14846 ErrorCode::NotSubmitted,
14847 ErrorCode::SubmittedIndeterminate,
14848 ErrorCode::ExpiredUnknown,
14849 ErrorCode::SecretNotEscrowed,
14850 ErrorCode::TemporarilyUnavailable,
14851 ErrorCode::Internal,
14852 ],
14853 limit_ids: &["request_bytes", "response_bytes"],
14854 effect_class: "durable_submit",
14855 risk_flags: &["credential_sensitive"],
14856 capability_family: "security",
14857 retry_safety: "pre_submit_only",
14858 identity_requirement: "caller_action_id",
14859 resolver: Some(Command::ResolveServiceCredentialReservation),
14860 cancellation: "per_call_until_submission_then_resolve",
14861 side_effects: &["commits_authoritative_state"],
14862 recovery: "resolve_with_resolve_service_credential_reservation",
14863 collection_index_ref: "none",
14864 },
14865 CommandSemanticContract {
14866 command: Command::ReserveServiceCredentialRotation,
14867 admissible_errors: &[
14868 ErrorCode::Aborted,
14869 ErrorCode::DeadlineExceeded,
14870 ErrorCode::InvalidRequest,
14871 ErrorCode::UnsupportedVersion,
14872 ErrorCode::Unauthenticated,
14873 ErrorCode::PermissionDenied,
14874 ErrorCode::NotFound,
14875 ErrorCode::Conflict,
14876 ErrorCode::LimitExceeded,
14877 ErrorCode::CapabilityUnavailable,
14878 ErrorCode::NotSubmitted,
14879 ErrorCode::SubmittedIndeterminate,
14880 ErrorCode::ExpiredUnknown,
14881 ErrorCode::SecretNotEscrowed,
14882 ErrorCode::TemporarilyUnavailable,
14883 ErrorCode::Internal,
14884 ],
14885 limit_ids: &["request_bytes", "response_bytes"],
14886 effect_class: "durable_submit",
14887 risk_flags: &["credential_sensitive"],
14888 capability_family: "security",
14889 retry_safety: "pre_submit_only",
14890 identity_requirement: "caller_action_id",
14891 resolver: Some(Command::ResolveServiceCredentialReservation),
14892 cancellation: "per_call_until_submission_then_resolve",
14893 side_effects: &["commits_authoritative_state"],
14894 recovery: "resolve_with_resolve_service_credential_reservation",
14895 collection_index_ref: "none",
14896 },
14897 CommandSemanticContract {
14898 command: Command::ActivateServiceCredential,
14899 admissible_errors: &[
14900 ErrorCode::Aborted,
14901 ErrorCode::DeadlineExceeded,
14902 ErrorCode::InvalidRequest,
14903 ErrorCode::UnsupportedVersion,
14904 ErrorCode::Unauthenticated,
14905 ErrorCode::PermissionDenied,
14906 ErrorCode::NotFound,
14907 ErrorCode::Conflict,
14908 ErrorCode::LimitExceeded,
14909 ErrorCode::CapabilityUnavailable,
14910 ErrorCode::NotSubmitted,
14911 ErrorCode::SubmittedIndeterminate,
14912 ErrorCode::ExpiredUnknown,
14913 ErrorCode::SecretNotEscrowed,
14914 ErrorCode::TemporarilyUnavailable,
14915 ErrorCode::Internal,
14916 ],
14917 limit_ids: &["request_bytes", "response_bytes"],
14918 effect_class: "durable_submit",
14919 risk_flags: &["credential_sensitive"],
14920 capability_family: "security",
14921 retry_safety: "pre_submit_only",
14922 identity_requirement: "server_locator",
14923 resolver: Some(Command::ResolveServiceCredentialReservation),
14924 cancellation: "per_call_until_submission_then_resolve",
14925 side_effects: &["commits_authoritative_state"],
14926 recovery: "resolve_with_resolve_service_credential_reservation",
14927 collection_index_ref: "none",
14928 },
14929 CommandSemanticContract {
14930 command: Command::ResolveServiceCredentialReservation,
14931 admissible_errors: &[
14932 ErrorCode::Aborted,
14933 ErrorCode::DeadlineExceeded,
14934 ErrorCode::InvalidRequest,
14935 ErrorCode::UnsupportedVersion,
14936 ErrorCode::Unauthenticated,
14937 ErrorCode::PermissionDenied,
14938 ErrorCode::NotFound,
14939 ErrorCode::LimitExceeded,
14940 ErrorCode::CapabilityUnavailable,
14941 ErrorCode::SecretNotEscrowed,
14942 ErrorCode::TemporarilyUnavailable,
14943 ErrorCode::Internal,
14944 ],
14945 limit_ids: &["request_bytes", "response_bytes"],
14946 effect_class: "read_only",
14947 risk_flags: &["credential_sensitive"],
14948 capability_family: "security",
14949 retry_safety: "safe",
14950 identity_requirement: "caller_action_id",
14951 resolver: None,
14952 cancellation: "per_call",
14953 side_effects: &[],
14954 recovery: "retry",
14955 collection_index_ref: "none",
14956 },
14957 CommandSemanticContract {
14958 command: Command::PrepareRevokeServiceCredential,
14959 admissible_errors: &[
14960 ErrorCode::Aborted,
14961 ErrorCode::DeadlineExceeded,
14962 ErrorCode::InvalidRequest,
14963 ErrorCode::UnsupportedVersion,
14964 ErrorCode::Unauthenticated,
14965 ErrorCode::PermissionDenied,
14966 ErrorCode::NotFound,
14967 ErrorCode::LimitExceeded,
14968 ErrorCode::CapabilityUnavailable,
14969 ErrorCode::SecretNotEscrowed,
14970 ErrorCode::TemporarilyUnavailable,
14971 ErrorCode::Internal,
14972 ],
14973 limit_ids: &["request_bytes", "response_bytes"],
14974 effect_class: "prepare",
14975 risk_flags: &["destructive", "credential_sensitive"],
14976 capability_family: "security",
14977 retry_safety: "safe",
14978 identity_requirement: "server_locator",
14979 resolver: None,
14980 cancellation: "per_call",
14981 side_effects: &["creates_bounded_preparation"],
14982 recovery: "retry",
14983 collection_index_ref: "none",
14984 },
14985 CommandSemanticContract {
14986 command: Command::RevokeServiceCredential,
14987 admissible_errors: &[
14988 ErrorCode::Aborted,
14989 ErrorCode::DeadlineExceeded,
14990 ErrorCode::InvalidRequest,
14991 ErrorCode::UnsupportedVersion,
14992 ErrorCode::Unauthenticated,
14993 ErrorCode::PermissionDenied,
14994 ErrorCode::NotFound,
14995 ErrorCode::Conflict,
14996 ErrorCode::LimitExceeded,
14997 ErrorCode::CapabilityUnavailable,
14998 ErrorCode::NotSubmitted,
14999 ErrorCode::SubmittedIndeterminate,
15000 ErrorCode::ExpiredUnknown,
15001 ErrorCode::SecretNotEscrowed,
15002 ErrorCode::TemporarilyUnavailable,
15003 ErrorCode::Internal,
15004 ],
15005 limit_ids: &["request_bytes", "response_bytes"],
15006 effect_class: "durable_submit",
15007 risk_flags: &["destructive", "credential_sensitive"],
15008 capability_family: "security",
15009 retry_safety: "pre_submit_only",
15010 identity_requirement: "request_locator",
15011 resolver: Some(Command::ResolveSecurityAction),
15012 cancellation: "per_call_until_submission_then_resolve",
15013 side_effects: &["commits_authoritative_state"],
15014 recovery: "resolve_with_resolve_security_action",
15015 collection_index_ref: "none",
15016 },
15017 CommandSemanticContract {
15018 command: Command::ResolveSecurityAction,
15019 admissible_errors: &[
15020 ErrorCode::Aborted,
15021 ErrorCode::DeadlineExceeded,
15022 ErrorCode::InvalidRequest,
15023 ErrorCode::UnsupportedVersion,
15024 ErrorCode::Unauthenticated,
15025 ErrorCode::PermissionDenied,
15026 ErrorCode::NotFound,
15027 ErrorCode::LimitExceeded,
15028 ErrorCode::CapabilityUnavailable,
15029 ErrorCode::SecretNotEscrowed,
15030 ErrorCode::TemporarilyUnavailable,
15031 ErrorCode::Internal,
15032 ],
15033 limit_ids: &["request_bytes", "response_bytes"],
15034 effect_class: "read_only",
15035 risk_flags: &[],
15036 capability_family: "security",
15037 retry_safety: "safe",
15038 identity_requirement: "request_locator",
15039 resolver: None,
15040 cancellation: "per_call",
15041 side_effects: &[],
15042 recovery: "retry",
15043 collection_index_ref: "none",
15044 },
15045 CommandSemanticContract {
15046 command: Command::GetSecurityRole,
15047 admissible_errors: &[
15048 ErrorCode::Aborted,
15049 ErrorCode::DeadlineExceeded,
15050 ErrorCode::InvalidRequest,
15051 ErrorCode::UnsupportedVersion,
15052 ErrorCode::Unauthenticated,
15053 ErrorCode::PermissionDenied,
15054 ErrorCode::NotFound,
15055 ErrorCode::LimitExceeded,
15056 ErrorCode::CapabilityUnavailable,
15057 ErrorCode::TemporarilyUnavailable,
15058 ErrorCode::Internal,
15059 ],
15060 limit_ids: &["request_bytes", "response_bytes"],
15061 effect_class: "read_only",
15062 risk_flags: &[],
15063 capability_family: "security",
15064 retry_safety: "safe",
15065 identity_requirement: "none",
15066 resolver: None,
15067 cancellation: "per_call",
15068 side_effects: &[],
15069 recovery: "retry",
15070 collection_index_ref: "none",
15071 },
15072 CommandSemanticContract {
15073 command: Command::PrepareRoleAppendAccessChange,
15074 admissible_errors: &[
15075 ErrorCode::Aborted,
15076 ErrorCode::DeadlineExceeded,
15077 ErrorCode::InvalidRequest,
15078 ErrorCode::UnsupportedVersion,
15079 ErrorCode::Unauthenticated,
15080 ErrorCode::PermissionDenied,
15081 ErrorCode::NotFound,
15082 ErrorCode::Conflict,
15083 ErrorCode::LimitExceeded,
15084 ErrorCode::CapabilityUnavailable,
15085 ErrorCode::TemporarilyUnavailable,
15086 ErrorCode::Internal,
15087 ],
15088 limit_ids: &["request_bytes", "response_bytes"],
15089 effect_class: "prepare",
15090 risk_flags: &["destructive"],
15091 capability_family: "security",
15092 retry_safety: "safe",
15093 identity_requirement: "server_locator",
15094 resolver: None,
15095 cancellation: "per_call",
15096 side_effects: &["creates_bounded_preparation"],
15097 recovery: "retry",
15098 collection_index_ref: "none",
15099 },
15100 CommandSemanticContract {
15101 command: Command::SubmitRoleAppendAccessChange,
15102 admissible_errors: &[
15103 ErrorCode::Aborted,
15104 ErrorCode::DeadlineExceeded,
15105 ErrorCode::InvalidRequest,
15106 ErrorCode::UnsupportedVersion,
15107 ErrorCode::Unauthenticated,
15108 ErrorCode::PermissionDenied,
15109 ErrorCode::NotFound,
15110 ErrorCode::Conflict,
15111 ErrorCode::LimitExceeded,
15112 ErrorCode::CapabilityUnavailable,
15113 ErrorCode::NotSubmitted,
15114 ErrorCode::SubmittedIndeterminate,
15115 ErrorCode::ExpiredUnknown,
15116 ErrorCode::TemporarilyUnavailable,
15117 ErrorCode::Internal,
15118 ],
15119 limit_ids: &["request_bytes", "response_bytes"],
15120 effect_class: "durable_submit",
15121 risk_flags: &["destructive"],
15122 capability_family: "security",
15123 retry_safety: "pre_submit_only",
15124 identity_requirement: "request_locator",
15125 resolver: Some(Command::ResolveSecurityAction),
15126 cancellation: "per_call_until_submission_then_resolve",
15127 side_effects: &["commits_authoritative_state"],
15128 recovery: "resolve_with_resolve_security_action",
15129 collection_index_ref: "none",
15130 },
15131 CommandSemanticContract {
15132 command: Command::PrepareSourceAuthorizationProjection,
15133 admissible_errors: &[
15134 ErrorCode::Aborted,
15135 ErrorCode::DeadlineExceeded,
15136 ErrorCode::InvalidRequest,
15137 ErrorCode::UnsupportedVersion,
15138 ErrorCode::Unauthenticated,
15139 ErrorCode::PermissionDenied,
15140 ErrorCode::NotFound,
15141 ErrorCode::Conflict,
15142 ErrorCode::LimitExceeded,
15143 ErrorCode::CapabilityUnavailable,
15144 ErrorCode::TemporarilyUnavailable,
15145 ErrorCode::Internal,
15146 ],
15147 limit_ids: &["request_bytes", "response_bytes"],
15148 effect_class: "prepare",
15149 risk_flags: &["destructive"],
15150 capability_family: "security",
15151 retry_safety: "safe",
15152 identity_requirement: "caller_action_id",
15153 resolver: None,
15154 cancellation: "per_call",
15155 side_effects: &["creates_bounded_preparation"],
15156 recovery: "retry",
15157 collection_index_ref: "request_index",
15158 },
15159 CommandSemanticContract {
15160 command: Command::SubmitSourceAuthorizationProjection,
15161 admissible_errors: &[
15162 ErrorCode::Aborted,
15163 ErrorCode::DeadlineExceeded,
15164 ErrorCode::InvalidRequest,
15165 ErrorCode::UnsupportedVersion,
15166 ErrorCode::Unauthenticated,
15167 ErrorCode::PermissionDenied,
15168 ErrorCode::NotFound,
15169 ErrorCode::Conflict,
15170 ErrorCode::LimitExceeded,
15171 ErrorCode::CapabilityUnavailable,
15172 ErrorCode::NotSubmitted,
15173 ErrorCode::SubmittedIndeterminate,
15174 ErrorCode::ExpiredUnknown,
15175 ErrorCode::TemporarilyUnavailable,
15176 ErrorCode::Internal,
15177 ],
15178 limit_ids: &["request_bytes", "response_bytes"],
15179 effect_class: "durable_submit",
15180 risk_flags: &["destructive"],
15181 capability_family: "security",
15182 retry_safety: "pre_submit_only",
15183 identity_requirement: "caller_action_id",
15184 resolver: Some(Command::ResolveSourceAuthorizationProjection),
15185 cancellation: "per_call_until_submission_then_resolve",
15186 side_effects: &["commits_authoritative_state"],
15187 recovery: "resolve_with_resolve_source_authorization_projection",
15188 collection_index_ref: "request_index",
15189 },
15190 CommandSemanticContract {
15191 command: Command::ResolveSourceAuthorizationProjection,
15192 admissible_errors: &[
15193 ErrorCode::Aborted,
15194 ErrorCode::DeadlineExceeded,
15195 ErrorCode::InvalidRequest,
15196 ErrorCode::UnsupportedVersion,
15197 ErrorCode::Unauthenticated,
15198 ErrorCode::PermissionDenied,
15199 ErrorCode::NotFound,
15200 ErrorCode::Conflict,
15201 ErrorCode::LimitExceeded,
15202 ErrorCode::CapabilityUnavailable,
15203 ErrorCode::TemporarilyUnavailable,
15204 ErrorCode::Internal,
15205 ],
15206 limit_ids: &["request_bytes", "response_bytes"],
15207 effect_class: "read_only",
15208 risk_flags: &[],
15209 capability_family: "security",
15210 retry_safety: "safe",
15211 identity_requirement: "caller_action_id",
15212 resolver: None,
15213 cancellation: "per_call",
15214 side_effects: &[],
15215 recovery: "retry",
15216 collection_index_ref: "request_index",
15217 },
15218 CommandSemanticContract {
15219 command: Command::ListServiceCredentials,
15220 admissible_errors: &[
15221 ErrorCode::Aborted,
15222 ErrorCode::DeadlineExceeded,
15223 ErrorCode::InvalidRequest,
15224 ErrorCode::UnsupportedVersion,
15225 ErrorCode::Unauthenticated,
15226 ErrorCode::PermissionDenied,
15227 ErrorCode::NotFound,
15228 ErrorCode::StaleCursor,
15229 ErrorCode::RestartBudgetExhausted,
15230 ErrorCode::LimitExceeded,
15231 ErrorCode::CapabilityUnavailable,
15232 ErrorCode::SecretNotEscrowed,
15233 ErrorCode::TemporarilyUnavailable,
15234 ErrorCode::Internal,
15235 ],
15236 limit_ids: &["request_bytes", "response_bytes", "page_size"],
15237 effect_class: "read_only",
15238 risk_flags: &["credential_sensitive"],
15239 capability_family: "security",
15240 retry_safety: "safe",
15241 identity_requirement: "none",
15242 resolver: None,
15243 cancellation: "per_call",
15244 side_effects: &[],
15245 recovery: "retry",
15246 collection_index_ref: "none",
15247 },
15248 CommandSemanticContract {
15249 command: Command::GetRuntimeStatus,
15250 admissible_errors: &[
15251 ErrorCode::Aborted,
15252 ErrorCode::DeadlineExceeded,
15253 ErrorCode::InvalidRequest,
15254 ErrorCode::UnsupportedVersion,
15255 ErrorCode::Unauthenticated,
15256 ErrorCode::PermissionDenied,
15257 ErrorCode::NotFound,
15258 ErrorCode::LimitExceeded,
15259 ErrorCode::CapabilityUnavailable,
15260 ErrorCode::TemporarilyUnavailable,
15261 ErrorCode::Internal,
15262 ],
15263 limit_ids: &["request_bytes", "response_bytes"],
15264 effect_class: "read_only",
15265 risk_flags: &[],
15266 capability_family: "catalog",
15267 retry_safety: "safe",
15268 identity_requirement: "none",
15269 resolver: None,
15270 cancellation: "per_call",
15271 side_effects: &[],
15272 recovery: "retry",
15273 collection_index_ref: "none",
15274 },
15275 CommandSemanticContract {
15276 command: Command::GetResultCacheStatus,
15277 admissible_errors: &[
15278 ErrorCode::Aborted,
15279 ErrorCode::DeadlineExceeded,
15280 ErrorCode::InvalidRequest,
15281 ErrorCode::UnsupportedVersion,
15282 ErrorCode::Unauthenticated,
15283 ErrorCode::PermissionDenied,
15284 ErrorCode::NotFound,
15285 ErrorCode::LimitExceeded,
15286 ErrorCode::CapabilityUnavailable,
15287 ErrorCode::TemporarilyUnavailable,
15288 ErrorCode::Internal,
15289 ],
15290 limit_ids: &["request_bytes", "response_bytes"],
15291 effect_class: "read_only",
15292 risk_flags: &[],
15293 capability_family: "catalog",
15294 retry_safety: "safe",
15295 identity_requirement: "none",
15296 resolver: None,
15297 cancellation: "per_call",
15298 side_effects: &[],
15299 recovery: "retry",
15300 collection_index_ref: "none",
15301 },
15302 CommandSemanticContract {
15303 command: Command::GetFieldPromotionStatus,
15304 admissible_errors: &[
15305 ErrorCode::Aborted,
15306 ErrorCode::DeadlineExceeded,
15307 ErrorCode::InvalidRequest,
15308 ErrorCode::UnsupportedVersion,
15309 ErrorCode::Unauthenticated,
15310 ErrorCode::PermissionDenied,
15311 ErrorCode::NotFound,
15312 ErrorCode::LimitExceeded,
15313 ErrorCode::CapabilityUnavailable,
15314 ErrorCode::TemporarilyUnavailable,
15315 ErrorCode::Internal,
15316 ],
15317 limit_ids: &["request_bytes", "response_bytes"],
15318 effect_class: "read_only",
15319 risk_flags: &[],
15320 capability_family: "catalog",
15321 retry_safety: "safe",
15322 identity_requirement: "none",
15323 resolver: None,
15324 cancellation: "per_call",
15325 side_effects: &[],
15326 recovery: "retry",
15327 collection_index_ref: "none",
15328 },
15329 CommandSemanticContract {
15330 command: Command::GetOverloadStatus,
15331 admissible_errors: &[
15332 ErrorCode::Aborted,
15333 ErrorCode::DeadlineExceeded,
15334 ErrorCode::InvalidRequest,
15335 ErrorCode::UnsupportedVersion,
15336 ErrorCode::Unauthenticated,
15337 ErrorCode::PermissionDenied,
15338 ErrorCode::NotFound,
15339 ErrorCode::LimitExceeded,
15340 ErrorCode::CapabilityUnavailable,
15341 ErrorCode::TemporarilyUnavailable,
15342 ErrorCode::Internal,
15343 ],
15344 limit_ids: &["request_bytes", "response_bytes"],
15345 effect_class: "read_only",
15346 risk_flags: &[],
15347 capability_family: "catalog",
15348 retry_safety: "safe",
15349 identity_requirement: "none",
15350 resolver: None,
15351 cancellation: "per_call",
15352 side_effects: &[],
15353 recovery: "retry",
15354 collection_index_ref: "none",
15355 },
15356 CommandSemanticContract {
15357 command: Command::ConfigureExternalKey,
15358 admissible_errors: &[
15359 ErrorCode::Aborted,
15360 ErrorCode::DeadlineExceeded,
15361 ErrorCode::InvalidRequest,
15362 ErrorCode::UnsupportedVersion,
15363 ErrorCode::Unauthenticated,
15364 ErrorCode::PermissionDenied,
15365 ErrorCode::NotFound,
15366 ErrorCode::Conflict,
15367 ErrorCode::LimitExceeded,
15368 ErrorCode::CapabilityUnavailable,
15369 ErrorCode::NotSubmitted,
15370 ErrorCode::SubmittedIndeterminate,
15371 ErrorCode::ExpiredUnknown,
15372 ErrorCode::TemporarilyUnavailable,
15373 ErrorCode::Internal,
15374 ],
15375 limit_ids: &["request_bytes", "response_bytes"],
15376 effect_class: "control_write",
15377 risk_flags: &[],
15378 capability_family: "lifecycle",
15379 retry_safety: "pre_submit_only",
15380 identity_requirement: "none",
15381 resolver: None,
15382 cancellation: "per_call_until_submission_then_resolve",
15383 side_effects: &["commits_authoritative_state"],
15384 recovery: "retry_if_not_submitted",
15385 collection_index_ref: "request_index",
15386 },
15387 CommandSemanticContract {
15388 command: Command::RotateExternalKeyBinding,
15389 admissible_errors: &[
15390 ErrorCode::Aborted,
15391 ErrorCode::DeadlineExceeded,
15392 ErrorCode::InvalidRequest,
15393 ErrorCode::UnsupportedVersion,
15394 ErrorCode::Unauthenticated,
15395 ErrorCode::PermissionDenied,
15396 ErrorCode::NotFound,
15397 ErrorCode::Conflict,
15398 ErrorCode::LimitExceeded,
15399 ErrorCode::CapabilityUnavailable,
15400 ErrorCode::NotSubmitted,
15401 ErrorCode::SubmittedIndeterminate,
15402 ErrorCode::ExpiredUnknown,
15403 ErrorCode::TemporarilyUnavailable,
15404 ErrorCode::Internal,
15405 ],
15406 limit_ids: &["request_bytes", "response_bytes"],
15407 effect_class: "control_write",
15408 risk_flags: &[],
15409 capability_family: "lifecycle",
15410 retry_safety: "pre_submit_only",
15411 identity_requirement: "none",
15412 resolver: None,
15413 cancellation: "per_call_until_submission_then_resolve",
15414 side_effects: &["commits_authoritative_state"],
15415 recovery: "retry_if_not_submitted",
15416 collection_index_ref: "request_index",
15417 },
15418 CommandSemanticContract {
15419 command: Command::RetireExternalKeyBinding,
15420 admissible_errors: &[
15421 ErrorCode::Aborted,
15422 ErrorCode::DeadlineExceeded,
15423 ErrorCode::InvalidRequest,
15424 ErrorCode::UnsupportedVersion,
15425 ErrorCode::Unauthenticated,
15426 ErrorCode::PermissionDenied,
15427 ErrorCode::NotFound,
15428 ErrorCode::Conflict,
15429 ErrorCode::LimitExceeded,
15430 ErrorCode::CapabilityUnavailable,
15431 ErrorCode::NotSubmitted,
15432 ErrorCode::SubmittedIndeterminate,
15433 ErrorCode::ExpiredUnknown,
15434 ErrorCode::TemporarilyUnavailable,
15435 ErrorCode::Internal,
15436 ],
15437 limit_ids: &["request_bytes", "response_bytes"],
15438 effect_class: "durable_submit",
15439 risk_flags: &["destructive"],
15440 capability_family: "lifecycle",
15441 retry_safety: "pre_submit_only",
15442 identity_requirement: "caller_action_id",
15443 resolver: Some(Command::ResolveExternalKeyBindingRetirement),
15444 cancellation: "per_call_until_submission_then_resolve",
15445 side_effects: &["commits_authoritative_state"],
15446 recovery: "resolve_with_resolve_external_key_binding_retirement",
15447 collection_index_ref: "request_index",
15448 },
15449 CommandSemanticContract {
15450 command: Command::ResolveExternalKeyBindingRetirement,
15451 admissible_errors: &[
15452 ErrorCode::Aborted,
15453 ErrorCode::DeadlineExceeded,
15454 ErrorCode::InvalidRequest,
15455 ErrorCode::UnsupportedVersion,
15456 ErrorCode::Unauthenticated,
15457 ErrorCode::PermissionDenied,
15458 ErrorCode::NotFound,
15459 ErrorCode::LimitExceeded,
15460 ErrorCode::CapabilityUnavailable,
15461 ErrorCode::TemporarilyUnavailable,
15462 ErrorCode::Internal,
15463 ],
15464 limit_ids: &["request_bytes", "response_bytes"],
15465 effect_class: "read_only",
15466 risk_flags: &[],
15467 capability_family: "lifecycle",
15468 retry_safety: "safe",
15469 identity_requirement: "caller_action_id",
15470 resolver: None,
15471 cancellation: "per_call",
15472 side_effects: &[],
15473 recovery: "retry",
15474 collection_index_ref: "request_index",
15475 },
15476 CommandSemanticContract {
15477 command: Command::ConfigureAggregateThenDelete,
15478 admissible_errors: &[
15479 ErrorCode::Aborted,
15480 ErrorCode::DeadlineExceeded,
15481 ErrorCode::InvalidRequest,
15482 ErrorCode::UnsupportedVersion,
15483 ErrorCode::Unauthenticated,
15484 ErrorCode::PermissionDenied,
15485 ErrorCode::NotFound,
15486 ErrorCode::Conflict,
15487 ErrorCode::LimitExceeded,
15488 ErrorCode::CapabilityUnavailable,
15489 ErrorCode::NotSubmitted,
15490 ErrorCode::SubmittedIndeterminate,
15491 ErrorCode::ExpiredUnknown,
15492 ErrorCode::TemporarilyUnavailable,
15493 ErrorCode::Internal,
15494 ],
15495 limit_ids: &["request_bytes", "response_bytes"],
15496 effect_class: "control_write",
15497 risk_flags: &["destructive"],
15498 capability_family: "lifecycle",
15499 retry_safety: "pre_submit_only",
15500 identity_requirement: "none",
15501 resolver: None,
15502 cancellation: "per_call_until_submission_then_resolve",
15503 side_effects: &["commits_authoritative_state"],
15504 recovery: "retry_if_not_submitted",
15505 collection_index_ref: "request_index",
15506 },
15507 CommandSemanticContract {
15508 command: Command::GetLifecycleStatus,
15509 admissible_errors: &[
15510 ErrorCode::Aborted,
15511 ErrorCode::DeadlineExceeded,
15512 ErrorCode::InvalidRequest,
15513 ErrorCode::UnsupportedVersion,
15514 ErrorCode::Unauthenticated,
15515 ErrorCode::PermissionDenied,
15516 ErrorCode::NotFound,
15517 ErrorCode::LimitExceeded,
15518 ErrorCode::CapabilityUnavailable,
15519 ErrorCode::TemporarilyUnavailable,
15520 ErrorCode::Internal,
15521 ],
15522 limit_ids: &["request_bytes", "response_bytes"],
15523 effect_class: "read_only",
15524 risk_flags: &[],
15525 capability_family: "catalog",
15526 retry_safety: "safe",
15527 identity_requirement: "none",
15528 resolver: None,
15529 cancellation: "per_call",
15530 side_effects: &[],
15531 recovery: "retry",
15532 collection_index_ref: "none",
15533 },
15534 CommandSemanticContract {
15535 command: Command::GetQuota,
15536 admissible_errors: &[
15537 ErrorCode::Aborted,
15538 ErrorCode::DeadlineExceeded,
15539 ErrorCode::InvalidRequest,
15540 ErrorCode::UnsupportedVersion,
15541 ErrorCode::Unauthenticated,
15542 ErrorCode::PermissionDenied,
15543 ErrorCode::NotFound,
15544 ErrorCode::LimitExceeded,
15545 ErrorCode::CapabilityUnavailable,
15546 ErrorCode::TemporarilyUnavailable,
15547 ErrorCode::Internal,
15548 ],
15549 limit_ids: &["request_bytes", "response_bytes"],
15550 effect_class: "read_only",
15551 risk_flags: &[],
15552 capability_family: "quota",
15553 retry_safety: "safe",
15554 identity_requirement: "none",
15555 resolver: None,
15556 cancellation: "per_call",
15557 side_effects: &[],
15558 recovery: "retry",
15559 collection_index_ref: "none",
15560 },
15561 CommandSemanticContract {
15562 command: Command::UpdateQuota,
15563 admissible_errors: &[
15564 ErrorCode::Aborted,
15565 ErrorCode::DeadlineExceeded,
15566 ErrorCode::InvalidRequest,
15567 ErrorCode::UnsupportedVersion,
15568 ErrorCode::Unauthenticated,
15569 ErrorCode::PermissionDenied,
15570 ErrorCode::NotFound,
15571 ErrorCode::Conflict,
15572 ErrorCode::LimitExceeded,
15573 ErrorCode::CapabilityUnavailable,
15574 ErrorCode::NotSubmitted,
15575 ErrorCode::SubmittedIndeterminate,
15576 ErrorCode::ExpiredUnknown,
15577 ErrorCode::TemporarilyUnavailable,
15578 ErrorCode::Internal,
15579 ],
15580 limit_ids: &["request_bytes", "response_bytes"],
15581 effect_class: "control_write",
15582 risk_flags: &[],
15583 capability_family: "quota",
15584 retry_safety: "pre_submit_only",
15585 identity_requirement: "none",
15586 resolver: None,
15587 cancellation: "per_call_until_submission_then_resolve",
15588 side_effects: &["commits_authoritative_state"],
15589 recovery: "retry_if_not_submitted",
15590 collection_index_ref: "none",
15591 },
15592 CommandSemanticContract {
15593 command: Command::GetBinding,
15594 admissible_errors: &[
15595 ErrorCode::Aborted,
15596 ErrorCode::DeadlineExceeded,
15597 ErrorCode::InvalidRequest,
15598 ErrorCode::UnsupportedVersion,
15599 ErrorCode::Unauthenticated,
15600 ErrorCode::PermissionDenied,
15601 ErrorCode::NotFound,
15602 ErrorCode::LimitExceeded,
15603 ErrorCode::CapabilityUnavailable,
15604 ErrorCode::TemporarilyUnavailable,
15605 ErrorCode::Internal,
15606 ],
15607 limit_ids: &["request_bytes", "response_bytes"],
15608 effect_class: "read_only",
15609 risk_flags: &[],
15610 capability_family: "runtime_control",
15611 retry_safety: "safe",
15612 identity_requirement: "none",
15613 resolver: None,
15614 cancellation: "per_call",
15615 side_effects: &[],
15616 recovery: "retry",
15617 collection_index_ref: "none",
15618 },
15619 CommandSemanticContract {
15620 command: Command::GetAdmissionStatus,
15621 admissible_errors: &[
15622 ErrorCode::Aborted,
15623 ErrorCode::DeadlineExceeded,
15624 ErrorCode::InvalidRequest,
15625 ErrorCode::UnsupportedVersion,
15626 ErrorCode::Unauthenticated,
15627 ErrorCode::PermissionDenied,
15628 ErrorCode::NotFound,
15629 ErrorCode::LimitExceeded,
15630 ErrorCode::CapabilityUnavailable,
15631 ErrorCode::TemporarilyUnavailable,
15632 ErrorCode::Internal,
15633 ],
15634 limit_ids: &["request_bytes", "response_bytes"],
15635 effect_class: "read_only",
15636 risk_flags: &[],
15637 capability_family: "runtime_control",
15638 retry_safety: "safe",
15639 identity_requirement: "none",
15640 resolver: None,
15641 cancellation: "per_call",
15642 side_effects: &[],
15643 recovery: "retry",
15644 collection_index_ref: "none",
15645 },
15646 CommandSemanticContract {
15647 command: Command::SetAdmission,
15648 admissible_errors: &[
15649 ErrorCode::Aborted,
15650 ErrorCode::DeadlineExceeded,
15651 ErrorCode::InvalidRequest,
15652 ErrorCode::UnsupportedVersion,
15653 ErrorCode::Unauthenticated,
15654 ErrorCode::PermissionDenied,
15655 ErrorCode::NotFound,
15656 ErrorCode::Conflict,
15657 ErrorCode::LimitExceeded,
15658 ErrorCode::CapabilityUnavailable,
15659 ErrorCode::NotSubmitted,
15660 ErrorCode::SubmittedIndeterminate,
15661 ErrorCode::ExpiredUnknown,
15662 ErrorCode::TemporarilyUnavailable,
15663 ErrorCode::Internal,
15664 ],
15665 limit_ids: &["request_bytes", "response_bytes"],
15666 effect_class: "control_write",
15667 risk_flags: &[],
15668 capability_family: "runtime_control",
15669 retry_safety: "pre_submit_only",
15670 identity_requirement: "none",
15671 resolver: None,
15672 cancellation: "per_call_until_submission_then_resolve",
15673 side_effects: &["commits_authoritative_state"],
15674 recovery: "retry_if_not_submitted",
15675 collection_index_ref: "none",
15676 },
15677 CommandSemanticContract {
15678 command: Command::GetQuiesceStatus,
15679 admissible_errors: &[
15680 ErrorCode::Aborted,
15681 ErrorCode::DeadlineExceeded,
15682 ErrorCode::InvalidRequest,
15683 ErrorCode::UnsupportedVersion,
15684 ErrorCode::Unauthenticated,
15685 ErrorCode::PermissionDenied,
15686 ErrorCode::NotFound,
15687 ErrorCode::LimitExceeded,
15688 ErrorCode::CapabilityUnavailable,
15689 ErrorCode::TemporarilyUnavailable,
15690 ErrorCode::Internal,
15691 ],
15692 limit_ids: &["request_bytes", "response_bytes"],
15693 effect_class: "read_only",
15694 risk_flags: &[],
15695 capability_family: "runtime_control",
15696 retry_safety: "safe",
15697 identity_requirement: "none",
15698 resolver: None,
15699 cancellation: "per_call",
15700 side_effects: &[],
15701 recovery: "retry",
15702 collection_index_ref: "none",
15703 },
15704 CommandSemanticContract {
15705 command: Command::GetDecommissionReadiness,
15706 admissible_errors: &[
15707 ErrorCode::Aborted,
15708 ErrorCode::DeadlineExceeded,
15709 ErrorCode::InvalidRequest,
15710 ErrorCode::UnsupportedVersion,
15711 ErrorCode::Unauthenticated,
15712 ErrorCode::PermissionDenied,
15713 ErrorCode::NotFound,
15714 ErrorCode::LimitExceeded,
15715 ErrorCode::CapabilityUnavailable,
15716 ErrorCode::TemporarilyUnavailable,
15717 ErrorCode::Internal,
15718 ],
15719 limit_ids: &["request_bytes", "response_bytes"],
15720 effect_class: "read_only",
15721 risk_flags: &[],
15722 capability_family: "runtime_control",
15723 retry_safety: "safe",
15724 identity_requirement: "none",
15725 resolver: None,
15726 cancellation: "per_call",
15727 side_effects: &[],
15728 recovery: "retry",
15729 collection_index_ref: "none",
15730 },
15731 CommandSemanticContract {
15732 command: Command::GetUpgradeReadiness,
15733 admissible_errors: &[
15734 ErrorCode::Aborted,
15735 ErrorCode::DeadlineExceeded,
15736 ErrorCode::InvalidRequest,
15737 ErrorCode::UnsupportedVersion,
15738 ErrorCode::Unauthenticated,
15739 ErrorCode::PermissionDenied,
15740 ErrorCode::NotFound,
15741 ErrorCode::LimitExceeded,
15742 ErrorCode::CapabilityUnavailable,
15743 ErrorCode::TemporarilyUnavailable,
15744 ErrorCode::Internal,
15745 ],
15746 limit_ids: &["request_bytes", "response_bytes"],
15747 effect_class: "read_only",
15748 risk_flags: &[],
15749 capability_family: "operations",
15750 retry_safety: "safe",
15751 identity_requirement: "none",
15752 resolver: None,
15753 cancellation: "per_call",
15754 side_effects: &[],
15755 recovery: "retry",
15756 collection_index_ref: "none",
15757 },
15758 CommandSemanticContract {
15759 command: Command::GetMaintenanceStatus,
15760 admissible_errors: &[
15761 ErrorCode::Aborted,
15762 ErrorCode::DeadlineExceeded,
15763 ErrorCode::InvalidRequest,
15764 ErrorCode::UnsupportedVersion,
15765 ErrorCode::Unauthenticated,
15766 ErrorCode::PermissionDenied,
15767 ErrorCode::NotFound,
15768 ErrorCode::StaleCursor,
15769 ErrorCode::LimitExceeded,
15770 ErrorCode::CapabilityUnavailable,
15771 ErrorCode::TemporarilyUnavailable,
15772 ErrorCode::Internal,
15773 ],
15774 limit_ids: &["request_bytes", "response_bytes", "page_size", "operation_page_size"],
15775 effect_class: "read_only",
15776 risk_flags: &[],
15777 capability_family: "operations",
15778 retry_safety: "safe",
15779 identity_requirement: "none",
15780 resolver: None,
15781 cancellation: "per_call",
15782 side_effects: &[],
15783 recovery: "retry",
15784 collection_index_ref: "optional_request_index",
15785 },
15786 CommandSemanticContract {
15787 command: Command::WarmVectorIndex,
15788 admissible_errors: &[
15789 ErrorCode::Aborted,
15790 ErrorCode::DeadlineExceeded,
15791 ErrorCode::InvalidRequest,
15792 ErrorCode::UnsupportedVersion,
15793 ErrorCode::Unauthenticated,
15794 ErrorCode::PermissionDenied,
15795 ErrorCode::NotFound,
15796 ErrorCode::Conflict,
15797 ErrorCode::LimitExceeded,
15798 ErrorCode::CapabilityUnavailable,
15799 ErrorCode::TemporarilyUnavailable,
15800 ErrorCode::Internal,
15801 ],
15802 limit_ids: &[
15803 "request_bytes",
15804 "response_bytes",
15805 "vector_warm_components",
15806 "vector_warm_requests",
15807 "vector_warm_bytes",
15808 "vector_warm_achievements",
15809 "vector_warm_ttl_millis",
15810 ],
15811 effect_class: "read_only",
15812 risk_flags: &[],
15813 capability_family: "data",
15814 retry_safety: "safe",
15815 identity_requirement: "exact_root",
15816 resolver: None,
15817 cancellation: "per_call",
15818 side_effects: &["populates_reconstructible_cache"],
15819 recovery: "retry",
15820 collection_index_ref: "request_index",
15821 },
15822 CommandSemanticContract {
15823 command: Command::EvaluateVectorRecall,
15824 admissible_errors: &[
15825 ErrorCode::Aborted,
15826 ErrorCode::DeadlineExceeded,
15827 ErrorCode::InvalidRequest,
15828 ErrorCode::UnsupportedVersion,
15829 ErrorCode::Unauthenticated,
15830 ErrorCode::PermissionDenied,
15831 ErrorCode::NotFound,
15832 ErrorCode::Conflict,
15833 ErrorCode::LimitExceeded,
15834 ErrorCode::CapabilityUnavailable,
15835 ErrorCode::NotSubmitted,
15836 ErrorCode::SubmittedIndeterminate,
15837 ErrorCode::ExpiredUnknown,
15838 ErrorCode::TemporarilyUnavailable,
15839 ErrorCode::Internal,
15840 ],
15841 limit_ids: &[
15842 "request_bytes",
15843 "response_bytes",
15844 "vector_dimensions",
15845 "vector_query_bytes",
15846 "vector_request_bytes",
15847 "vector_candidates",
15848 "vector_evaluation_queries",
15849 "vector_evaluation_k",
15850 "vector_evaluation_artifact_bytes",
15851 ],
15852 effect_class: "durable_submit",
15853 risk_flags: &[],
15854 capability_family: "diagnostics",
15855 retry_safety: "pre_submit_only",
15856 identity_requirement: "caller_action_id",
15857 resolver: None,
15858 cancellation: "per_call_until_submission_then_resolve",
15859 side_effects: &["commits_authoritative_state"],
15860 recovery: "retry_if_not_submitted",
15861 collection_index_ref: "request_index",
15862 },
15863 CommandSemanticContract {
15864 command: Command::CalibrateVectorStrategy,
15865 admissible_errors: &[
15866 ErrorCode::Aborted,
15867 ErrorCode::DeadlineExceeded,
15868 ErrorCode::InvalidRequest,
15869 ErrorCode::UnsupportedVersion,
15870 ErrorCode::Unauthenticated,
15871 ErrorCode::PermissionDenied,
15872 ErrorCode::NotFound,
15873 ErrorCode::Conflict,
15874 ErrorCode::LimitExceeded,
15875 ErrorCode::CapabilityUnavailable,
15876 ErrorCode::NotSubmitted,
15877 ErrorCode::SubmittedIndeterminate,
15878 ErrorCode::ExpiredUnknown,
15879 ErrorCode::TemporarilyUnavailable,
15880 ErrorCode::Internal,
15881 ],
15882 limit_ids: &[
15883 "request_bytes",
15884 "response_bytes",
15885 "vector_dimensions",
15886 "vector_query_bytes",
15887 "vector_request_bytes",
15888 "vector_candidates",
15889 "vector_evaluation_queries",
15890 "vector_evaluation_k",
15891 "vector_evaluation_profiles",
15892 "vector_evaluation_artifact_bytes",
15893 ],
15894 effect_class: "durable_submit",
15895 risk_flags: &[],
15896 capability_family: "diagnostics",
15897 retry_safety: "pre_submit_only",
15898 identity_requirement: "caller_action_id",
15899 resolver: None,
15900 cancellation: "per_call_until_submission_then_resolve",
15901 side_effects: &["commits_authoritative_state"],
15902 recovery: "retry_if_not_submitted",
15903 collection_index_ref: "request_index",
15904 },
15905 CommandSemanticContract {
15906 command: Command::GetVectorDiagnostic,
15907 admissible_errors: &[
15908 ErrorCode::Aborted,
15909 ErrorCode::DeadlineExceeded,
15910 ErrorCode::InvalidRequest,
15911 ErrorCode::UnsupportedVersion,
15912 ErrorCode::Unauthenticated,
15913 ErrorCode::PermissionDenied,
15914 ErrorCode::NotFound,
15915 ErrorCode::LimitExceeded,
15916 ErrorCode::CapabilityUnavailable,
15917 ErrorCode::TemporarilyUnavailable,
15918 ErrorCode::Internal,
15919 ],
15920 limit_ids: &["request_bytes", "response_bytes"],
15921 effect_class: "read_only",
15922 risk_flags: &[],
15923 capability_family: "diagnostics",
15924 retry_safety: "safe",
15925 identity_requirement: "request_locator",
15926 resolver: None,
15927 cancellation: "per_call",
15928 side_effects: &[],
15929 recovery: "retry",
15930 collection_index_ref: "none",
15931 },
15932 CommandSemanticContract {
15933 command: Command::CreateDiagnostic,
15934 admissible_errors: &[
15935 ErrorCode::Aborted,
15936 ErrorCode::DeadlineExceeded,
15937 ErrorCode::InvalidRequest,
15938 ErrorCode::UnsupportedVersion,
15939 ErrorCode::Unauthenticated,
15940 ErrorCode::PermissionDenied,
15941 ErrorCode::NotFound,
15942 ErrorCode::Conflict,
15943 ErrorCode::LimitExceeded,
15944 ErrorCode::CapabilityUnavailable,
15945 ErrorCode::NotSubmitted,
15946 ErrorCode::SubmittedIndeterminate,
15947 ErrorCode::ExpiredUnknown,
15948 ErrorCode::TemporarilyUnavailable,
15949 ErrorCode::Internal,
15950 ],
15951 limit_ids: &["request_bytes", "response_bytes"],
15952 effect_class: "durable_submit",
15953 risk_flags: &[],
15954 capability_family: "diagnostics",
15955 retry_safety: "pre_submit_only",
15956 identity_requirement: "none",
15957 resolver: None,
15958 cancellation: "per_call_until_submission_then_resolve",
15959 side_effects: &["commits_authoritative_state"],
15960 recovery: "retry_if_not_submitted",
15961 collection_index_ref: "none",
15962 },
15963 CommandSemanticContract {
15964 command: Command::GetDiagnostic,
15965 admissible_errors: &[
15966 ErrorCode::Aborted,
15967 ErrorCode::DeadlineExceeded,
15968 ErrorCode::InvalidRequest,
15969 ErrorCode::UnsupportedVersion,
15970 ErrorCode::Unauthenticated,
15971 ErrorCode::PermissionDenied,
15972 ErrorCode::NotFound,
15973 ErrorCode::LimitExceeded,
15974 ErrorCode::CapabilityUnavailable,
15975 ErrorCode::TemporarilyUnavailable,
15976 ErrorCode::Internal,
15977 ],
15978 limit_ids: &["request_bytes", "response_bytes"],
15979 effect_class: "read_only",
15980 risk_flags: &[],
15981 capability_family: "diagnostics",
15982 retry_safety: "safe",
15983 identity_requirement: "request_locator",
15984 resolver: None,
15985 cancellation: "per_call",
15986 side_effects: &[],
15987 recovery: "retry",
15988 collection_index_ref: "none",
15989 },
15990 CommandSemanticContract {
15991 command: Command::PrepareCollectionExport,
15992 admissible_errors: &[
15993 ErrorCode::Aborted,
15994 ErrorCode::DeadlineExceeded,
15995 ErrorCode::InvalidRequest,
15996 ErrorCode::UnsupportedVersion,
15997 ErrorCode::Unauthenticated,
15998 ErrorCode::PermissionDenied,
15999 ErrorCode::NotFound,
16000 ErrorCode::LimitExceeded,
16001 ErrorCode::CapabilityUnavailable,
16002 ErrorCode::TemporarilyUnavailable,
16003 ErrorCode::Internal,
16004 ],
16005 limit_ids: &[
16006 "request_bytes",
16007 "response_bytes",
16008 "collection_export_bytes",
16009 "portability_prefix_bytes",
16010 ],
16011 effect_class: "prepare",
16012 risk_flags: &[],
16013 capability_family: "portability",
16014 retry_safety: "safe",
16015 identity_requirement: "caller_action_id",
16016 resolver: None,
16017 cancellation: "per_call",
16018 side_effects: &[],
16019 recovery: "retry",
16020 collection_index_ref: "none",
16021 },
16022 CommandSemanticContract {
16023 command: Command::StartCollectionExport,
16024 admissible_errors: &[
16025 ErrorCode::Aborted,
16026 ErrorCode::DeadlineExceeded,
16027 ErrorCode::InvalidRequest,
16028 ErrorCode::UnsupportedVersion,
16029 ErrorCode::Unauthenticated,
16030 ErrorCode::PermissionDenied,
16031 ErrorCode::NotFound,
16032 ErrorCode::Conflict,
16033 ErrorCode::LimitExceeded,
16034 ErrorCode::CapabilityUnavailable,
16035 ErrorCode::NotSubmitted,
16036 ErrorCode::SubmittedIndeterminate,
16037 ErrorCode::ExpiredUnknown,
16038 ErrorCode::TemporarilyUnavailable,
16039 ErrorCode::Internal,
16040 ],
16041 limit_ids: &[
16042 "request_bytes",
16043 "response_bytes",
16044 "collection_export_bytes",
16045 "collection_export_documents",
16046 "portability_prefix_bytes",
16047 ],
16048 effect_class: "durable_submit",
16049 risk_flags: &[],
16050 capability_family: "portability",
16051 retry_safety: "pre_submit_only",
16052 identity_requirement: "caller_action_id",
16053 resolver: Some(Command::ResolveCollectionExport),
16054 cancellation: "per_call_until_submission_then_resolve",
16055 side_effects: &["commits_authoritative_state", "writes_external_artifact"],
16056 recovery: "resolve_with_resolve_collection_export",
16057 collection_index_ref: "none",
16058 },
16059 CommandSemanticContract {
16060 command: Command::ResolveCollectionExport,
16061 admissible_errors: &[
16062 ErrorCode::Aborted,
16063 ErrorCode::DeadlineExceeded,
16064 ErrorCode::InvalidRequest,
16065 ErrorCode::UnsupportedVersion,
16066 ErrorCode::Unauthenticated,
16067 ErrorCode::PermissionDenied,
16068 ErrorCode::NotFound,
16069 ErrorCode::LimitExceeded,
16070 ErrorCode::CapabilityUnavailable,
16071 ErrorCode::TemporarilyUnavailable,
16072 ErrorCode::Internal,
16073 ],
16074 limit_ids: &["request_bytes", "response_bytes", "portability_prefix_bytes"],
16075 effect_class: "read_only",
16076 risk_flags: &[],
16077 capability_family: "portability",
16078 retry_safety: "safe",
16079 identity_requirement: "caller_action_id",
16080 resolver: None,
16081 cancellation: "per_call",
16082 side_effects: &[],
16083 recovery: "retry",
16084 collection_index_ref: "none",
16085 },
16086 CommandSemanticContract {
16087 command: Command::VerifyCollectionExport,
16088 admissible_errors: &[
16089 ErrorCode::Aborted,
16090 ErrorCode::DeadlineExceeded,
16091 ErrorCode::InvalidRequest,
16092 ErrorCode::UnsupportedVersion,
16093 ErrorCode::Unauthenticated,
16094 ErrorCode::PermissionDenied,
16095 ErrorCode::NotFound,
16096 ErrorCode::LimitExceeded,
16097 ErrorCode::CapabilityUnavailable,
16098 ErrorCode::ChecksumMismatch,
16099 ErrorCode::TemporarilyUnavailable,
16100 ErrorCode::Internal,
16101 ],
16102 limit_ids: &[
16103 "request_bytes",
16104 "response_bytes",
16105 "collection_export_bytes",
16106 "portability_prefix_bytes",
16107 ],
16108 effect_class: "read_only",
16109 risk_flags: &[],
16110 capability_family: "portability",
16111 retry_safety: "safe",
16112 identity_requirement: "request_locator",
16113 resolver: None,
16114 cancellation: "per_call",
16115 side_effects: &[],
16116 recovery: "retry",
16117 collection_index_ref: "none",
16118 },
16119 CommandSemanticContract {
16120 command: Command::PrepareCollectionExportRetirement,
16121 admissible_errors: &[
16122 ErrorCode::Aborted,
16123 ErrorCode::DeadlineExceeded,
16124 ErrorCode::InvalidRequest,
16125 ErrorCode::UnsupportedVersion,
16126 ErrorCode::Unauthenticated,
16127 ErrorCode::PermissionDenied,
16128 ErrorCode::NotFound,
16129 ErrorCode::Conflict,
16130 ErrorCode::LimitExceeded,
16131 ErrorCode::CapabilityUnavailable,
16132 ErrorCode::ChecksumMismatch,
16133 ErrorCode::TemporarilyUnavailable,
16134 ErrorCode::Internal,
16135 ],
16136 limit_ids: &[
16137 "request_bytes",
16138 "response_bytes",
16139 "collection_export_bytes",
16140 "portability_prefix_bytes",
16141 ],
16142 effect_class: "prepare",
16143 risk_flags: &["destructive"],
16144 capability_family: "portability",
16145 retry_safety: "safe",
16146 identity_requirement: "caller_action_id",
16147 resolver: None,
16148 cancellation: "per_call",
16149 side_effects: &[],
16150 recovery: "retry",
16151 collection_index_ref: "none",
16152 },
16153 CommandSemanticContract {
16154 command: Command::StartCollectionExportRetirement,
16155 admissible_errors: &[
16156 ErrorCode::Aborted,
16157 ErrorCode::DeadlineExceeded,
16158 ErrorCode::InvalidRequest,
16159 ErrorCode::UnsupportedVersion,
16160 ErrorCode::Unauthenticated,
16161 ErrorCode::PermissionDenied,
16162 ErrorCode::NotFound,
16163 ErrorCode::Conflict,
16164 ErrorCode::LimitExceeded,
16165 ErrorCode::CapabilityUnavailable,
16166 ErrorCode::NotSubmitted,
16167 ErrorCode::SubmittedIndeterminate,
16168 ErrorCode::ExpiredUnknown,
16169 ErrorCode::ChecksumMismatch,
16170 ErrorCode::TemporarilyUnavailable,
16171 ErrorCode::Internal,
16172 ],
16173 limit_ids: &[
16174 "request_bytes",
16175 "response_bytes",
16176 "collection_export_bytes",
16177 "portability_prefix_bytes",
16178 ],
16179 effect_class: "durable_submit",
16180 risk_flags: &["destructive"],
16181 capability_family: "portability",
16182 retry_safety: "pre_submit_only",
16183 identity_requirement: "caller_action_id",
16184 resolver: Some(Command::ResolveCollectionExportRetirement),
16185 cancellation: "per_call_until_submission_then_resolve",
16186 side_effects: &[
16187 "commits_authoritative_state",
16188 "deletes_external_artifact",
16189 "releases_key_capability_reference",
16190 ],
16191 recovery: "resolve_with_resolve_collection_export_retirement",
16192 collection_index_ref: "none",
16193 },
16194 CommandSemanticContract {
16195 command: Command::ResolveCollectionExportRetirement,
16196 admissible_errors: &[
16197 ErrorCode::Aborted,
16198 ErrorCode::DeadlineExceeded,
16199 ErrorCode::InvalidRequest,
16200 ErrorCode::UnsupportedVersion,
16201 ErrorCode::Unauthenticated,
16202 ErrorCode::PermissionDenied,
16203 ErrorCode::NotFound,
16204 ErrorCode::Conflict,
16205 ErrorCode::LimitExceeded,
16206 ErrorCode::CapabilityUnavailable,
16207 ErrorCode::TemporarilyUnavailable,
16208 ErrorCode::Internal,
16209 ],
16210 limit_ids: &["request_bytes", "response_bytes", "portability_prefix_bytes"],
16211 effect_class: "read_only",
16212 risk_flags: &[],
16213 capability_family: "portability",
16214 retry_safety: "safe",
16215 identity_requirement: "caller_action_id",
16216 resolver: None,
16217 cancellation: "per_call",
16218 side_effects: &[],
16219 recovery: "retry",
16220 collection_index_ref: "none",
16221 },
16222 CommandSemanticContract {
16223 command: Command::PrepareCollectionRestore,
16224 admissible_errors: &[
16225 ErrorCode::Aborted,
16226 ErrorCode::DeadlineExceeded,
16227 ErrorCode::InvalidRequest,
16228 ErrorCode::UnsupportedVersion,
16229 ErrorCode::Unauthenticated,
16230 ErrorCode::PermissionDenied,
16231 ErrorCode::NotFound,
16232 ErrorCode::Conflict,
16233 ErrorCode::LimitExceeded,
16234 ErrorCode::CapabilityUnavailable,
16235 ErrorCode::ChecksumMismatch,
16236 ErrorCode::TemporarilyUnavailable,
16237 ErrorCode::Internal,
16238 ],
16239 limit_ids: &[
16240 "request_bytes",
16241 "response_bytes",
16242 "collection_export_bytes",
16243 "portability_prefix_bytes",
16244 ],
16245 effect_class: "prepare",
16246 risk_flags: &[],
16247 capability_family: "portability",
16248 retry_safety: "safe",
16249 identity_requirement: "caller_action_id",
16250 resolver: None,
16251 cancellation: "per_call",
16252 side_effects: &[],
16253 recovery: "retry",
16254 collection_index_ref: "none",
16255 },
16256 CommandSemanticContract {
16257 command: Command::StartCollectionRestore,
16258 admissible_errors: &[
16259 ErrorCode::Aborted,
16260 ErrorCode::DeadlineExceeded,
16261 ErrorCode::InvalidRequest,
16262 ErrorCode::UnsupportedVersion,
16263 ErrorCode::Unauthenticated,
16264 ErrorCode::PermissionDenied,
16265 ErrorCode::NotFound,
16266 ErrorCode::Conflict,
16267 ErrorCode::LimitExceeded,
16268 ErrorCode::CapabilityUnavailable,
16269 ErrorCode::NotSubmitted,
16270 ErrorCode::SubmittedIndeterminate,
16271 ErrorCode::ExpiredUnknown,
16272 ErrorCode::ChecksumMismatch,
16273 ErrorCode::TemporarilyUnavailable,
16274 ErrorCode::Internal,
16275 ],
16276 limit_ids: &[
16277 "request_bytes",
16278 "response_bytes",
16279 "collection_export_bytes",
16280 "collection_export_documents",
16281 "portability_prefix_bytes",
16282 ],
16283 effect_class: "durable_submit",
16284 risk_flags: &[],
16285 capability_family: "portability",
16286 retry_safety: "pre_submit_only",
16287 identity_requirement: "caller_action_id",
16288 resolver: Some(Command::ResolveCollectionRestore),
16289 cancellation: "per_call_until_submission_then_resolve",
16290 side_effects: &["commits_authoritative_state", "creates_destination_owned_data"],
16291 recovery: "resolve_with_resolve_collection_restore",
16292 collection_index_ref: "none",
16293 },
16294 CommandSemanticContract {
16295 command: Command::ResolveCollectionRestore,
16296 admissible_errors: &[
16297 ErrorCode::Aborted,
16298 ErrorCode::DeadlineExceeded,
16299 ErrorCode::InvalidRequest,
16300 ErrorCode::UnsupportedVersion,
16301 ErrorCode::Unauthenticated,
16302 ErrorCode::PermissionDenied,
16303 ErrorCode::NotFound,
16304 ErrorCode::LimitExceeded,
16305 ErrorCode::CapabilityUnavailable,
16306 ErrorCode::TemporarilyUnavailable,
16307 ErrorCode::Internal,
16308 ],
16309 limit_ids: &["request_bytes", "response_bytes", "portability_prefix_bytes"],
16310 effect_class: "read_only",
16311 risk_flags: &[],
16312 capability_family: "portability",
16313 retry_safety: "safe",
16314 identity_requirement: "caller_action_id",
16315 resolver: None,
16316 cancellation: "per_call",
16317 side_effects: &[],
16318 recovery: "retry",
16319 collection_index_ref: "none",
16320 },
16321 CommandSemanticContract {
16322 command: Command::PrepareCollectionTransferExport,
16323 admissible_errors: &[
16324 ErrorCode::Aborted,
16325 ErrorCode::DeadlineExceeded,
16326 ErrorCode::InvalidRequest,
16327 ErrorCode::UnsupportedVersion,
16328 ErrorCode::Unauthenticated,
16329 ErrorCode::PermissionDenied,
16330 ErrorCode::NotFound,
16331 ErrorCode::Conflict,
16332 ErrorCode::LimitExceeded,
16333 ErrorCode::CapabilityUnavailable,
16334 ErrorCode::TemporarilyUnavailable,
16335 ErrorCode::Internal,
16336 ],
16337 limit_ids: &[
16338 "request_bytes",
16339 "response_bytes",
16340 "collection_export_bytes",
16341 "portability_prefix_bytes",
16342 ],
16343 effect_class: "prepare",
16344 risk_flags: &[],
16345 capability_family: "portability",
16346 retry_safety: "safe",
16347 identity_requirement: "caller_action_id",
16348 resolver: None,
16349 cancellation: "per_call",
16350 side_effects: &[],
16351 recovery: "retry",
16352 collection_index_ref: "none",
16353 },
16354 CommandSemanticContract {
16355 command: Command::StartCollectionTransferExport,
16356 admissible_errors: &[
16357 ErrorCode::Aborted,
16358 ErrorCode::DeadlineExceeded,
16359 ErrorCode::InvalidRequest,
16360 ErrorCode::UnsupportedVersion,
16361 ErrorCode::Unauthenticated,
16362 ErrorCode::PermissionDenied,
16363 ErrorCode::NotFound,
16364 ErrorCode::Conflict,
16365 ErrorCode::LimitExceeded,
16366 ErrorCode::CapabilityUnavailable,
16367 ErrorCode::NotSubmitted,
16368 ErrorCode::SubmittedIndeterminate,
16369 ErrorCode::ExpiredUnknown,
16370 ErrorCode::TemporarilyUnavailable,
16371 ErrorCode::Internal,
16372 ],
16373 limit_ids: &[
16374 "request_bytes",
16375 "response_bytes",
16376 "collection_export_bytes",
16377 "collection_export_documents",
16378 "portability_prefix_bytes",
16379 ],
16380 effect_class: "durable_submit",
16381 risk_flags: &[],
16382 capability_family: "portability",
16383 retry_safety: "pre_submit_only",
16384 identity_requirement: "caller_action_id",
16385 resolver: Some(Command::ResolveCollectionTransferExport),
16386 cancellation: "per_call_until_submission_then_resolve",
16387 side_effects: &[
16388 "commits_authoritative_state",
16389 "closes_collection_admission",
16390 "writes_external_artifact",
16391 ],
16392 recovery: "resolve_with_resolve_collection_transfer_export",
16393 collection_index_ref: "none",
16394 },
16395 CommandSemanticContract {
16396 command: Command::ResolveCollectionTransferExport,
16397 admissible_errors: &[
16398 ErrorCode::Aborted,
16399 ErrorCode::DeadlineExceeded,
16400 ErrorCode::InvalidRequest,
16401 ErrorCode::UnsupportedVersion,
16402 ErrorCode::Unauthenticated,
16403 ErrorCode::PermissionDenied,
16404 ErrorCode::NotFound,
16405 ErrorCode::LimitExceeded,
16406 ErrorCode::CapabilityUnavailable,
16407 ErrorCode::ChecksumMismatch,
16408 ErrorCode::TemporarilyUnavailable,
16409 ErrorCode::Internal,
16410 ],
16411 limit_ids: &["request_bytes", "response_bytes", "portability_prefix_bytes"],
16412 effect_class: "read_only",
16413 risk_flags: &[],
16414 capability_family: "portability",
16415 retry_safety: "safe",
16416 identity_requirement: "caller_action_id",
16417 resolver: None,
16418 cancellation: "per_call",
16419 side_effects: &[],
16420 recovery: "retry",
16421 collection_index_ref: "none",
16422 },
16423 CommandSemanticContract {
16424 command: Command::PrepareCollectionTransferRestore,
16425 admissible_errors: &[
16426 ErrorCode::Aborted,
16427 ErrorCode::DeadlineExceeded,
16428 ErrorCode::InvalidRequest,
16429 ErrorCode::UnsupportedVersion,
16430 ErrorCode::Unauthenticated,
16431 ErrorCode::PermissionDenied,
16432 ErrorCode::NotFound,
16433 ErrorCode::Conflict,
16434 ErrorCode::LimitExceeded,
16435 ErrorCode::CapabilityUnavailable,
16436 ErrorCode::ChecksumMismatch,
16437 ErrorCode::TemporarilyUnavailable,
16438 ErrorCode::Internal,
16439 ],
16440 limit_ids: &[
16441 "request_bytes",
16442 "response_bytes",
16443 "collection_export_bytes",
16444 "portability_prefix_bytes",
16445 ],
16446 effect_class: "prepare",
16447 risk_flags: &[],
16448 capability_family: "portability",
16449 retry_safety: "safe",
16450 identity_requirement: "caller_action_id",
16451 resolver: None,
16452 cancellation: "per_call",
16453 side_effects: &[],
16454 recovery: "retry",
16455 collection_index_ref: "none",
16456 },
16457 CommandSemanticContract {
16458 command: Command::StartCollectionTransferRestore,
16459 admissible_errors: &[
16460 ErrorCode::Aborted,
16461 ErrorCode::DeadlineExceeded,
16462 ErrorCode::InvalidRequest,
16463 ErrorCode::UnsupportedVersion,
16464 ErrorCode::Unauthenticated,
16465 ErrorCode::PermissionDenied,
16466 ErrorCode::NotFound,
16467 ErrorCode::Conflict,
16468 ErrorCode::LimitExceeded,
16469 ErrorCode::CapabilityUnavailable,
16470 ErrorCode::NotSubmitted,
16471 ErrorCode::SubmittedIndeterminate,
16472 ErrorCode::ExpiredUnknown,
16473 ErrorCode::ChecksumMismatch,
16474 ErrorCode::TemporarilyUnavailable,
16475 ErrorCode::Internal,
16476 ],
16477 limit_ids: &[
16478 "request_bytes",
16479 "response_bytes",
16480 "collection_export_bytes",
16481 "collection_export_documents",
16482 "portability_prefix_bytes",
16483 ],
16484 effect_class: "durable_submit",
16485 risk_flags: &[],
16486 capability_family: "portability",
16487 retry_safety: "pre_submit_only",
16488 identity_requirement: "caller_action_id",
16489 resolver: Some(Command::ResolveCollectionTransferRestore),
16490 cancellation: "per_call_until_submission_then_resolve",
16491 side_effects: &["commits_authoritative_state", "creates_destination_owned_data"],
16492 recovery: "resolve_with_resolve_collection_transfer_restore",
16493 collection_index_ref: "none",
16494 },
16495 CommandSemanticContract {
16496 command: Command::ResolveCollectionTransferRestore,
16497 admissible_errors: &[
16498 ErrorCode::Aborted,
16499 ErrorCode::DeadlineExceeded,
16500 ErrorCode::InvalidRequest,
16501 ErrorCode::UnsupportedVersion,
16502 ErrorCode::Unauthenticated,
16503 ErrorCode::PermissionDenied,
16504 ErrorCode::NotFound,
16505 ErrorCode::LimitExceeded,
16506 ErrorCode::CapabilityUnavailable,
16507 ErrorCode::ChecksumMismatch,
16508 ErrorCode::TemporarilyUnavailable,
16509 ErrorCode::Internal,
16510 ],
16511 limit_ids: &["request_bytes", "response_bytes", "portability_prefix_bytes"],
16512 effect_class: "read_only",
16513 risk_flags: &[],
16514 capability_family: "portability",
16515 retry_safety: "safe",
16516 identity_requirement: "caller_action_id",
16517 resolver: None,
16518 cancellation: "per_call",
16519 side_effects: &[],
16520 recovery: "retry",
16521 collection_index_ref: "none",
16522 },
16523 CommandSemanticContract {
16524 command: Command::PrepareIndexExport,
16525 admissible_errors: &[
16526 ErrorCode::Aborted,
16527 ErrorCode::DeadlineExceeded,
16528 ErrorCode::InvalidRequest,
16529 ErrorCode::UnsupportedVersion,
16530 ErrorCode::Unauthenticated,
16531 ErrorCode::PermissionDenied,
16532 ErrorCode::NotFound,
16533 ErrorCode::LimitExceeded,
16534 ErrorCode::CapabilityUnavailable,
16535 ErrorCode::TemporarilyUnavailable,
16536 ErrorCode::Internal,
16537 ],
16538 limit_ids: &[
16539 "request_bytes",
16540 "response_bytes",
16541 "index_transfer_bytes",
16542 "index_transfer_records",
16543 "index_transfer_pages",
16544 "portability_prefix_bytes",
16545 ],
16546 effect_class: "prepare",
16547 risk_flags: &[],
16548 capability_family: "portability",
16549 retry_safety: "safe",
16550 identity_requirement: "caller_action_id",
16551 resolver: None,
16552 cancellation: "per_call",
16553 side_effects: &[],
16554 recovery: "retry",
16555 collection_index_ref: "request_index",
16556 },
16557 CommandSemanticContract {
16558 command: Command::StartIndexExport,
16559 admissible_errors: &[
16560 ErrorCode::Aborted,
16561 ErrorCode::DeadlineExceeded,
16562 ErrorCode::InvalidRequest,
16563 ErrorCode::UnsupportedVersion,
16564 ErrorCode::Unauthenticated,
16565 ErrorCode::PermissionDenied,
16566 ErrorCode::NotFound,
16567 ErrorCode::Conflict,
16568 ErrorCode::LimitExceeded,
16569 ErrorCode::CapabilityUnavailable,
16570 ErrorCode::NotSubmitted,
16571 ErrorCode::SubmittedIndeterminate,
16572 ErrorCode::ExpiredUnknown,
16573 ErrorCode::TemporarilyUnavailable,
16574 ErrorCode::Internal,
16575 ],
16576 limit_ids: &[
16577 "request_bytes",
16578 "response_bytes",
16579 "index_transfer_bytes",
16580 "index_transfer_records",
16581 "index_transfer_pages",
16582 "portability_prefix_bytes",
16583 ],
16584 effect_class: "durable_submit",
16585 risk_flags: &[],
16586 capability_family: "portability",
16587 retry_safety: "pre_submit_only",
16588 identity_requirement: "caller_action_id",
16589 resolver: Some(Command::ResolveIndexExport),
16590 cancellation: "per_call_until_submission_then_resolve",
16591 side_effects: &["commits_authoritative_state", "writes_external_artifact"],
16592 recovery: "resolve_with_resolve_index_export",
16593 collection_index_ref: "request_index",
16594 },
16595 CommandSemanticContract {
16596 command: Command::ResolveIndexExport,
16597 admissible_errors: &[
16598 ErrorCode::Aborted,
16599 ErrorCode::DeadlineExceeded,
16600 ErrorCode::InvalidRequest,
16601 ErrorCode::UnsupportedVersion,
16602 ErrorCode::Unauthenticated,
16603 ErrorCode::PermissionDenied,
16604 ErrorCode::NotFound,
16605 ErrorCode::LimitExceeded,
16606 ErrorCode::CapabilityUnavailable,
16607 ErrorCode::ChecksumMismatch,
16608 ErrorCode::TemporarilyUnavailable,
16609 ErrorCode::Internal,
16610 ],
16611 limit_ids: &[
16612 "request_bytes",
16613 "response_bytes",
16614 "index_transfer_bytes",
16615 "index_transfer_pages",
16616 "portability_prefix_bytes",
16617 ],
16618 effect_class: "read_only",
16619 risk_flags: &[],
16620 capability_family: "portability",
16621 retry_safety: "safe",
16622 identity_requirement: "caller_action_id",
16623 resolver: None,
16624 cancellation: "per_call",
16625 side_effects: &[],
16626 recovery: "retry",
16627 collection_index_ref: "request_index",
16628 },
16629 CommandSemanticContract {
16630 command: Command::VerifyIndexExport,
16631 admissible_errors: &[
16632 ErrorCode::Aborted,
16633 ErrorCode::DeadlineExceeded,
16634 ErrorCode::InvalidRequest,
16635 ErrorCode::UnsupportedVersion,
16636 ErrorCode::Unauthenticated,
16637 ErrorCode::PermissionDenied,
16638 ErrorCode::NotFound,
16639 ErrorCode::LimitExceeded,
16640 ErrorCode::CapabilityUnavailable,
16641 ErrorCode::ChecksumMismatch,
16642 ErrorCode::TemporarilyUnavailable,
16643 ErrorCode::Internal,
16644 ],
16645 limit_ids: &[
16646 "request_bytes",
16647 "response_bytes",
16648 "index_transfer_bytes",
16649 "index_transfer_pages",
16650 "portability_prefix_bytes",
16651 ],
16652 effect_class: "read_only",
16653 risk_flags: &[],
16654 capability_family: "portability",
16655 retry_safety: "safe",
16656 identity_requirement: "request_locator",
16657 resolver: None,
16658 cancellation: "per_call",
16659 side_effects: &[],
16660 recovery: "retry",
16661 collection_index_ref: "request_artifact_source_index",
16662 },
16663 CommandSemanticContract {
16664 command: Command::PrepareIndexImport,
16665 admissible_errors: &[
16666 ErrorCode::Aborted,
16667 ErrorCode::DeadlineExceeded,
16668 ErrorCode::InvalidRequest,
16669 ErrorCode::UnsupportedVersion,
16670 ErrorCode::Unauthenticated,
16671 ErrorCode::PermissionDenied,
16672 ErrorCode::NotFound,
16673 ErrorCode::Conflict,
16674 ErrorCode::LimitExceeded,
16675 ErrorCode::CapabilityUnavailable,
16676 ErrorCode::ChecksumMismatch,
16677 ErrorCode::TemporarilyUnavailable,
16678 ErrorCode::Internal,
16679 ],
16680 limit_ids: &[
16681 "request_bytes",
16682 "response_bytes",
16683 "index_transfer_bytes",
16684 "index_transfer_pages",
16685 "portability_prefix_bytes",
16686 "resource_initial_shards",
16687 "resource_target_shard_bytes",
16688 "resource_admission_weight",
16689 "resource_ram_bytes",
16690 "resource_nvme_bytes",
16691 "resource_refresh_millis",
16692 "resource_memtable_bytes",
16693 "resource_parallelism",
16694 ],
16695 effect_class: "prepare",
16696 risk_flags: &[],
16697 capability_family: "portability",
16698 retry_safety: "safe",
16699 identity_requirement: "caller_action_id",
16700 resolver: None,
16701 cancellation: "per_call",
16702 side_effects: &[],
16703 recovery: "retry",
16704 collection_index_ref: "request_destination_name",
16705 },
16706 CommandSemanticContract {
16707 command: Command::StartIndexImport,
16708 admissible_errors: &[
16709 ErrorCode::Aborted,
16710 ErrorCode::DeadlineExceeded,
16711 ErrorCode::InvalidRequest,
16712 ErrorCode::UnsupportedVersion,
16713 ErrorCode::Unauthenticated,
16714 ErrorCode::PermissionDenied,
16715 ErrorCode::NotFound,
16716 ErrorCode::Conflict,
16717 ErrorCode::LimitExceeded,
16718 ErrorCode::CapabilityUnavailable,
16719 ErrorCode::NotSubmitted,
16720 ErrorCode::SubmittedIndeterminate,
16721 ErrorCode::ExpiredUnknown,
16722 ErrorCode::ChecksumMismatch,
16723 ErrorCode::TemporarilyUnavailable,
16724 ErrorCode::Internal,
16725 ],
16726 limit_ids: &[
16727 "request_bytes",
16728 "response_bytes",
16729 "index_transfer_bytes",
16730 "index_transfer_pages",
16731 "portability_prefix_bytes",
16732 "resource_initial_shards",
16733 "resource_target_shard_bytes",
16734 "resource_admission_weight",
16735 "resource_ram_bytes",
16736 "resource_nvme_bytes",
16737 "resource_refresh_millis",
16738 "resource_memtable_bytes",
16739 "resource_parallelism",
16740 ],
16741 effect_class: "durable_submit",
16742 risk_flags: &[],
16743 capability_family: "portability",
16744 retry_safety: "pre_submit_only",
16745 identity_requirement: "caller_action_id",
16746 resolver: Some(Command::ResolveIndexImport),
16747 cancellation: "per_call_until_submission_then_resolve",
16748 side_effects: &["commits_authoritative_state", "creates_destination_owned_data"],
16749 recovery: "resolve_with_resolve_index_import",
16750 collection_index_ref: "request_destination_name",
16751 },
16752 CommandSemanticContract {
16753 command: Command::ResolveIndexImport,
16754 admissible_errors: &[
16755 ErrorCode::Aborted,
16756 ErrorCode::DeadlineExceeded,
16757 ErrorCode::InvalidRequest,
16758 ErrorCode::UnsupportedVersion,
16759 ErrorCode::Unauthenticated,
16760 ErrorCode::PermissionDenied,
16761 ErrorCode::NotFound,
16762 ErrorCode::LimitExceeded,
16763 ErrorCode::CapabilityUnavailable,
16764 ErrorCode::ChecksumMismatch,
16765 ErrorCode::TemporarilyUnavailable,
16766 ErrorCode::Internal,
16767 ],
16768 limit_ids: &[
16769 "request_bytes",
16770 "response_bytes",
16771 "index_transfer_bytes",
16772 "index_transfer_pages",
16773 "portability_prefix_bytes",
16774 ],
16775 effect_class: "read_only",
16776 risk_flags: &[],
16777 capability_family: "portability",
16778 retry_safety: "safe",
16779 identity_requirement: "caller_action_id",
16780 resolver: None,
16781 cancellation: "per_call",
16782 side_effects: &[],
16783 recovery: "retry",
16784 collection_index_ref: "request_destination_name",
16785 },
16786 CommandSemanticContract {
16787 command: Command::ReadArtifactChunk,
16788 admissible_errors: &[
16789 ErrorCode::Aborted,
16790 ErrorCode::DeadlineExceeded,
16791 ErrorCode::InvalidRequest,
16792 ErrorCode::UnsupportedVersion,
16793 ErrorCode::Unauthenticated,
16794 ErrorCode::PermissionDenied,
16795 ErrorCode::NotFound,
16796 ErrorCode::LimitExceeded,
16797 ErrorCode::CapabilityUnavailable,
16798 ErrorCode::ArtifactRangeInvalid,
16799 ErrorCode::ChecksumMismatch,
16800 ErrorCode::TemporarilyUnavailable,
16801 ErrorCode::Internal,
16802 ],
16803 limit_ids: &["request_bytes", "response_bytes", "artifact_chunk_bytes"],
16804 effect_class: "read_only",
16805 risk_flags: &[],
16806 capability_family: "operations",
16807 retry_safety: "safe",
16808 identity_requirement: "none",
16809 resolver: None,
16810 cancellation: "per_call",
16811 side_effects: &[],
16812 recovery: "retry",
16813 collection_index_ref: "none",
16814 },
16815 CommandSemanticContract {
16816 command: Command::ExportUsage,
16817 admissible_errors: &[
16818 ErrorCode::Aborted,
16819 ErrorCode::DeadlineExceeded,
16820 ErrorCode::InvalidRequest,
16821 ErrorCode::UnsupportedVersion,
16822 ErrorCode::Unauthenticated,
16823 ErrorCode::PermissionDenied,
16824 ErrorCode::NotFound,
16825 ErrorCode::StaleCursor,
16826 ErrorCode::RestartBudgetExhausted,
16827 ErrorCode::LimitExceeded,
16828 ErrorCode::CapabilityUnavailable,
16829 ErrorCode::TemporarilyUnavailable,
16830 ErrorCode::Internal,
16831 ],
16832 limit_ids: &["request_bytes", "response_bytes", "page_size"],
16833 effect_class: "read_only",
16834 risk_flags: &[],
16835 capability_family: "usage",
16836 retry_safety: "safe",
16837 identity_requirement: "none",
16838 resolver: None,
16839 cancellation: "per_call",
16840 side_effects: &[],
16841 recovery: "retry",
16842 collection_index_ref: "none",
16843 },
16844 CommandSemanticContract {
16845 command: Command::ReadLogicalOccupancy,
16846 admissible_errors: &[
16847 ErrorCode::Aborted,
16848 ErrorCode::DeadlineExceeded,
16849 ErrorCode::InvalidRequest,
16850 ErrorCode::UnsupportedVersion,
16851 ErrorCode::Unauthenticated,
16852 ErrorCode::PermissionDenied,
16853 ErrorCode::NotFound,
16854 ErrorCode::StaleCursor,
16855 ErrorCode::LimitExceeded,
16856 ErrorCode::CapabilityUnavailable,
16857 ErrorCode::TemporarilyUnavailable,
16858 ErrorCode::Internal,
16859 ],
16860 limit_ids: &["request_bytes", "response_bytes", "page_size", "search_result_window"],
16861 effect_class: "read_only",
16862 risk_flags: &[],
16863 capability_family: "usage",
16864 retry_safety: "safe",
16865 identity_requirement: "none",
16866 resolver: None,
16867 cancellation: "per_call",
16868 side_effects: &[],
16869 recovery: "retry",
16870 collection_index_ref: "request_index",
16871 },
16872 CommandSemanticContract {
16873 command: Command::ExecuteStateRead,
16874 admissible_errors: &[
16875 ErrorCode::Aborted,
16876 ErrorCode::DeadlineExceeded,
16877 ErrorCode::InvalidRequest,
16878 ErrorCode::UnsupportedVersion,
16879 ErrorCode::Unauthenticated,
16880 ErrorCode::PermissionDenied,
16881 ErrorCode::NotFound,
16882 ErrorCode::LimitExceeded,
16883 ErrorCode::CapabilityUnavailable,
16884 ErrorCode::TemporarilyUnavailable,
16885 ErrorCode::Internal,
16886 ],
16887 limit_ids: &[
16888 "request_bytes",
16889 "response_bytes",
16890 "state_command_keys",
16891 "state_command_value_bytes",
16892 ],
16893 effect_class: "read_only",
16894 risk_flags: &[],
16895 capability_family: "data",
16896 retry_safety: "safe",
16897 identity_requirement: "none",
16898 resolver: None,
16899 cancellation: "per_call",
16900 side_effects: &[],
16901 recovery: "retry",
16902 collection_index_ref: "request_index",
16903 },
16904 CommandSemanticContract {
16905 command: Command::PrepareStateWrite,
16906 admissible_errors: &[
16907 ErrorCode::Aborted,
16908 ErrorCode::DeadlineExceeded,
16909 ErrorCode::InvalidRequest,
16910 ErrorCode::UnsupportedVersion,
16911 ErrorCode::Unauthenticated,
16912 ErrorCode::PermissionDenied,
16913 ErrorCode::NotFound,
16914 ErrorCode::LimitExceeded,
16915 ErrorCode::CapabilityUnavailable,
16916 ErrorCode::TemporarilyUnavailable,
16917 ErrorCode::Internal,
16918 ],
16919 limit_ids: &[
16920 "request_bytes",
16921 "response_bytes",
16922 "state_command_keys",
16923 "state_command_value_bytes",
16924 ],
16925 effect_class: "prepare",
16926 risk_flags: &[],
16927 capability_family: "data",
16928 retry_safety: "safe",
16929 identity_requirement: "caller_action_id",
16930 resolver: None,
16931 cancellation: "per_call",
16932 side_effects: &["creates_bounded_preparation"],
16933 recovery: "retry",
16934 collection_index_ref: "request_index",
16935 },
16936 CommandSemanticContract {
16937 command: Command::SubmitStateWrite,
16938 admissible_errors: &[
16939 ErrorCode::Aborted,
16940 ErrorCode::DeadlineExceeded,
16941 ErrorCode::InvalidRequest,
16942 ErrorCode::UnsupportedVersion,
16943 ErrorCode::Unauthenticated,
16944 ErrorCode::PermissionDenied,
16945 ErrorCode::NotFound,
16946 ErrorCode::Conflict,
16947 ErrorCode::LimitExceeded,
16948 ErrorCode::CapabilityUnavailable,
16949 ErrorCode::NotSubmitted,
16950 ErrorCode::SubmittedIndeterminate,
16951 ErrorCode::ExpiredUnknown,
16952 ErrorCode::TemporarilyUnavailable,
16953 ErrorCode::Internal,
16954 ],
16955 limit_ids: &[
16956 "request_bytes",
16957 "response_bytes",
16958 "state_command_keys",
16959 "state_command_value_bytes",
16960 ],
16961 effect_class: "durable_submit",
16962 risk_flags: &[],
16963 capability_family: "data",
16964 retry_safety: "pre_submit_only",
16965 identity_requirement: "request_locator",
16966 resolver: Some(Command::ResolveStateWrite),
16967 cancellation: "per_call_until_submission_then_resolve",
16968 side_effects: &["commits_authoritative_state"],
16969 recovery: "resolve_with_resolve_state_write",
16970 collection_index_ref: "request_index",
16971 },
16972 CommandSemanticContract {
16973 command: Command::ResolveStateWrite,
16974 admissible_errors: &[
16975 ErrorCode::Aborted,
16976 ErrorCode::DeadlineExceeded,
16977 ErrorCode::InvalidRequest,
16978 ErrorCode::UnsupportedVersion,
16979 ErrorCode::Unauthenticated,
16980 ErrorCode::PermissionDenied,
16981 ErrorCode::NotFound,
16982 ErrorCode::LimitExceeded,
16983 ErrorCode::CapabilityUnavailable,
16984 ErrorCode::TemporarilyUnavailable,
16985 ErrorCode::Internal,
16986 ],
16987 limit_ids: &[
16988 "request_bytes",
16989 "response_bytes",
16990 "state_command_keys",
16991 "state_command_value_bytes",
16992 ],
16993 effect_class: "read_only",
16994 risk_flags: &[],
16995 capability_family: "data",
16996 retry_safety: "safe",
16997 identity_requirement: "request_locator",
16998 resolver: None,
16999 cancellation: "per_call",
17000 side_effects: &[],
17001 recovery: "retry",
17002 collection_index_ref: "request_index",
17003 },
17004];
17005#[derive(Clone, Copy, Debug, Eq, PartialEq)]
17006pub struct CommandOutcomeContract {
17007 pub command: Command,
17008 pub possible_submission_states: &'static [&'static str],
17009 pub identity_requirement: &'static str,
17010 pub resolver_command: Option<Command>,
17011 pub cancellation: &'static str,
17012}
17013pub const LODESTONE_API_COMMAND_OUTCOMES: &[CommandOutcomeContract] = &[
17014 CommandOutcomeContract {
17015 command: Command::Discover,
17016 possible_submission_states: &["not_submitted", "resolved"],
17017 identity_requirement: "none",
17018 resolver_command: None,
17019 cancellation: "per_call",
17020 },
17021 CommandOutcomeContract {
17022 command: Command::ListIndexes,
17023 possible_submission_states: &["not_submitted", "resolved"],
17024 identity_requirement: "none",
17025 resolver_command: None,
17026 cancellation: "per_call",
17027 },
17028 CommandOutcomeContract {
17029 command: Command::GetIndex,
17030 possible_submission_states: &["not_submitted", "resolved"],
17031 identity_requirement: "none",
17032 resolver_command: None,
17033 cancellation: "per_call",
17034 },
17035 CommandOutcomeContract {
17036 command: Command::ValidateIndexChange,
17037 possible_submission_states: &["not_submitted", "resolved"],
17038 identity_requirement: "none",
17039 resolver_command: None,
17040 cancellation: "per_call",
17041 },
17042 CommandOutcomeContract {
17043 command: Command::ApplyIndexChange,
17044 possible_submission_states: &[
17045 "not_submitted",
17046 "submitted",
17047 "known_retired",
17048 "indeterminate",
17049 "resolved",
17050 ],
17051 identity_requirement: "caller_action_id",
17052 resolver_command: Some(Command::ResolveIndexChange),
17053 cancellation: "per_call_until_submission_then_resolve",
17054 },
17055 CommandOutcomeContract {
17056 command: Command::ResolveIndexChange,
17057 possible_submission_states: &["not_submitted", "resolved"],
17058 identity_requirement: "caller_action_id",
17059 resolver_command: None,
17060 cancellation: "per_call",
17061 },
17062 CommandOutcomeContract {
17063 command: Command::ApplyAdministrationMutation,
17064 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17065 identity_requirement: "caller_action_id",
17066 resolver_command: None,
17067 cancellation: "per_call_until_submission_then_resolve",
17068 },
17069 CommandOutcomeContract {
17070 command: Command::ListAliases,
17071 possible_submission_states: &["not_submitted", "resolved"],
17072 identity_requirement: "none",
17073 resolver_command: None,
17074 cancellation: "per_call",
17075 },
17076 CommandOutcomeContract {
17077 command: Command::GetAlias,
17078 possible_submission_states: &["not_submitted", "resolved"],
17079 identity_requirement: "none",
17080 resolver_command: None,
17081 cancellation: "per_call",
17082 },
17083 CommandOutcomeContract {
17084 command: Command::ListDataStreams,
17085 possible_submission_states: &["not_submitted", "resolved"],
17086 identity_requirement: "none",
17087 resolver_command: None,
17088 cancellation: "per_call",
17089 },
17090 CommandOutcomeContract {
17091 command: Command::GetDataStream,
17092 possible_submission_states: &["not_submitted", "resolved"],
17093 identity_requirement: "none",
17094 resolver_command: None,
17095 cancellation: "per_call",
17096 },
17097 CommandOutcomeContract {
17098 command: Command::ListComponentTemplates,
17099 possible_submission_states: &["not_submitted", "resolved"],
17100 identity_requirement: "none",
17101 resolver_command: None,
17102 cancellation: "per_call",
17103 },
17104 CommandOutcomeContract {
17105 command: Command::GetComponentTemplate,
17106 possible_submission_states: &["not_submitted", "resolved"],
17107 identity_requirement: "none",
17108 resolver_command: None,
17109 cancellation: "per_call",
17110 },
17111 CommandOutcomeContract {
17112 command: Command::ListIndexTemplates,
17113 possible_submission_states: &["not_submitted", "resolved"],
17114 identity_requirement: "none",
17115 resolver_command: None,
17116 cancellation: "per_call",
17117 },
17118 CommandOutcomeContract {
17119 command: Command::GetIndexTemplate,
17120 possible_submission_states: &["not_submitted", "resolved"],
17121 identity_requirement: "none",
17122 resolver_command: None,
17123 cancellation: "per_call",
17124 },
17125 CommandOutcomeContract {
17126 command: Command::ListIngestPipelines,
17127 possible_submission_states: &["not_submitted", "resolved"],
17128 identity_requirement: "none",
17129 resolver_command: None,
17130 cancellation: "per_call",
17131 },
17132 CommandOutcomeContract {
17133 command: Command::GetIngestPipeline,
17134 possible_submission_states: &["not_submitted", "resolved"],
17135 identity_requirement: "none",
17136 resolver_command: None,
17137 cancellation: "per_call",
17138 },
17139 CommandOutcomeContract {
17140 command: Command::SimulateIngestPipeline,
17141 possible_submission_states: &["not_submitted", "resolved"],
17142 identity_requirement: "none",
17143 resolver_command: None,
17144 cancellation: "per_call",
17145 },
17146 CommandOutcomeContract {
17147 command: Command::ReprocessByQuery,
17148 possible_submission_states: &[
17149 "not_submitted",
17150 "submitted",
17151 "known_retired",
17152 "indeterminate",
17153 "resolved",
17154 ],
17155 identity_requirement: "caller_action_id",
17156 resolver_command: None,
17157 cancellation: "per_call_until_submission_then_resolve",
17158 },
17159 CommandOutcomeContract {
17160 command: Command::ListLifecyclePolicies,
17161 possible_submission_states: &["not_submitted", "resolved"],
17162 identity_requirement: "none",
17163 resolver_command: None,
17164 cancellation: "per_call",
17165 },
17166 CommandOutcomeContract {
17167 command: Command::GetLifecyclePolicy,
17168 possible_submission_states: &["not_submitted", "resolved"],
17169 identity_requirement: "none",
17170 resolver_command: None,
17171 cancellation: "per_call",
17172 },
17173 CommandOutcomeContract {
17174 command: Command::PrepareCreateIndex,
17175 possible_submission_states: &["not_submitted", "resolved"],
17176 identity_requirement: "server_locator",
17177 resolver_command: None,
17178 cancellation: "per_call",
17179 },
17180 CommandOutcomeContract {
17181 command: Command::PrepareDeleteIndex,
17182 possible_submission_states: &["not_submitted", "resolved"],
17183 identity_requirement: "server_locator",
17184 resolver_command: None,
17185 cancellation: "per_call",
17186 },
17187 CommandOutcomeContract {
17188 command: Command::SubmitCatalogAction,
17189 possible_submission_states: &[
17190 "not_submitted",
17191 "submitted",
17192 "known_retired",
17193 "indeterminate",
17194 "resolved",
17195 ],
17196 identity_requirement: "request_locator",
17197 resolver_command: Some(Command::ResolveCatalogAction),
17198 cancellation: "per_call_until_submission_then_resolve",
17199 },
17200 CommandOutcomeContract {
17201 command: Command::ResolveCatalogAction,
17202 possible_submission_states: &["not_submitted", "resolved"],
17203 identity_requirement: "request_locator",
17204 resolver_command: None,
17205 cancellation: "per_call",
17206 },
17207 CommandOutcomeContract {
17208 command: Command::PrepareReplayableSourceIndex,
17209 possible_submission_states: &["not_submitted", "resolved"],
17210 identity_requirement: "server_locator",
17211 resolver_command: None,
17212 cancellation: "per_call",
17213 },
17214 CommandOutcomeContract {
17215 command: Command::SubmitReplayableSourceIndex,
17216 possible_submission_states: &[
17217 "not_submitted",
17218 "submitted",
17219 "known_retired",
17220 "indeterminate",
17221 "resolved",
17222 ],
17223 identity_requirement: "request_locator",
17224 resolver_command: Some(Command::ResolveCatalogAction),
17225 cancellation: "per_call_until_submission_then_resolve",
17226 },
17227 CommandOutcomeContract {
17228 command: Command::GetReplayableSource,
17229 possible_submission_states: &["not_submitted", "resolved"],
17230 identity_requirement: "none",
17231 resolver_command: None,
17232 cancellation: "per_call",
17233 },
17234 CommandOutcomeContract {
17235 command: Command::ControlReplayableSource,
17236 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17237 identity_requirement: "none",
17238 resolver_command: None,
17239 cancellation: "per_call_until_submission_then_resolve",
17240 },
17241 CommandOutcomeContract {
17242 command: Command::CloneIndex,
17243 possible_submission_states: &[
17244 "not_submitted",
17245 "submitted",
17246 "known_retired",
17247 "indeterminate",
17248 "resolved",
17249 ],
17250 identity_requirement: "caller_action_id",
17251 resolver_command: Some(Command::CloneIndex),
17252 cancellation: "per_call_until_submission_then_resolve",
17253 },
17254 CommandOutcomeContract {
17255 command: Command::ConfigureHistory,
17256 possible_submission_states: &[
17257 "not_submitted",
17258 "submitted",
17259 "known_retired",
17260 "indeterminate",
17261 "resolved",
17262 ],
17263 identity_requirement: "none",
17264 resolver_command: Some(Command::GetHistory),
17265 cancellation: "per_call_until_submission_then_resolve",
17266 },
17267 CommandOutcomeContract {
17268 command: Command::GetHistory,
17269 possible_submission_states: &["not_submitted", "resolved"],
17270 identity_requirement: "none",
17271 resolver_command: None,
17272 cancellation: "per_call",
17273 },
17274 CommandOutcomeContract {
17275 command: Command::ResolveHistory,
17276 possible_submission_states: &["not_submitted", "resolved"],
17277 identity_requirement: "none",
17278 resolver_command: None,
17279 cancellation: "per_call",
17280 },
17281 CommandOutcomeContract {
17282 command: Command::PlaceHistoryHold,
17283 possible_submission_states: &[
17284 "not_submitted",
17285 "submitted",
17286 "known_retired",
17287 "indeterminate",
17288 "resolved",
17289 ],
17290 identity_requirement: "none",
17291 resolver_command: Some(Command::GetHistory),
17292 cancellation: "per_call_until_submission_then_resolve",
17293 },
17294 CommandOutcomeContract {
17295 command: Command::ReleaseHistoryHold,
17296 possible_submission_states: &[
17297 "not_submitted",
17298 "submitted",
17299 "known_retired",
17300 "indeterminate",
17301 "resolved",
17302 ],
17303 identity_requirement: "none",
17304 resolver_command: Some(Command::GetHistory),
17305 cancellation: "per_call_until_submission_then_resolve",
17306 },
17307 CommandOutcomeContract {
17308 command: Command::PrepareDocumentMutation,
17309 possible_submission_states: &["not_submitted", "resolved"],
17310 identity_requirement: "server_locator",
17311 resolver_command: None,
17312 cancellation: "per_call",
17313 },
17314 CommandOutcomeContract {
17315 command: Command::SubmitDocumentMutation,
17316 possible_submission_states: &[
17317 "not_submitted",
17318 "submitted",
17319 "known_retired",
17320 "indeterminate",
17321 "resolved",
17322 ],
17323 identity_requirement: "request_locator",
17324 resolver_command: Some(Command::ResolveDocumentMutation),
17325 cancellation: "per_call_until_submission_then_resolve",
17326 },
17327 CommandOutcomeContract {
17328 command: Command::PrepareDocumentBulk,
17329 possible_submission_states: &["not_submitted", "resolved"],
17330 identity_requirement: "caller_action_id",
17331 resolver_command: None,
17332 cancellation: "per_call",
17333 },
17334 CommandOutcomeContract {
17335 command: Command::SubmitDocumentBulk,
17336 possible_submission_states: &[
17337 "not_submitted",
17338 "submitted",
17339 "known_retired",
17340 "indeterminate",
17341 "resolved",
17342 ],
17343 identity_requirement: "caller_action_id",
17344 resolver_command: Some(Command::ResolveDocumentBulk),
17345 cancellation: "per_call_until_submission_then_resolve",
17346 },
17347 CommandOutcomeContract {
17348 command: Command::ResolveDocumentBulk,
17349 possible_submission_states: &["not_submitted", "resolved"],
17350 identity_requirement: "caller_action_id",
17351 resolver_command: None,
17352 cancellation: "per_call",
17353 },
17354 CommandOutcomeContract {
17355 command: Command::PrepareAppendBulk,
17356 possible_submission_states: &["not_submitted", "resolved"],
17357 identity_requirement: "caller_action_id",
17358 resolver_command: None,
17359 cancellation: "per_call",
17360 },
17361 CommandOutcomeContract {
17362 command: Command::SubmitAppendBulk,
17363 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17364 identity_requirement: "request_locator",
17365 resolver_command: Some(Command::ResolveAppendBulk),
17366 cancellation: "per_call_until_submission_then_resolve",
17367 },
17368 CommandOutcomeContract {
17369 command: Command::ResolveAppendBulk,
17370 possible_submission_states: &["not_submitted", "resolved"],
17371 identity_requirement: "request_locator",
17372 resolver_command: None,
17373 cancellation: "per_call",
17374 },
17375 CommandOutcomeContract {
17376 command: Command::ObserveAppendCommitted,
17377 possible_submission_states: &["not_submitted", "resolved"],
17378 identity_requirement: "request_locator",
17379 resolver_command: None,
17380 cancellation: "per_call",
17381 },
17382 CommandOutcomeContract {
17383 command: Command::ResolveDocumentMutation,
17384 possible_submission_states: &["not_submitted", "resolved"],
17385 identity_requirement: "request_locator",
17386 resolver_command: None,
17387 cancellation: "per_call",
17388 },
17389 CommandOutcomeContract {
17390 command: Command::GetDocument,
17391 possible_submission_states: &["not_submitted", "resolved"],
17392 identity_requirement: "none",
17393 resolver_command: None,
17394 cancellation: "per_call",
17395 },
17396 CommandOutcomeContract {
17397 command: Command::Search,
17398 possible_submission_states: &["not_submitted", "resolved"],
17399 identity_requirement: "none",
17400 resolver_command: None,
17401 cancellation: "per_call",
17402 },
17403 CommandOutcomeContract {
17404 command: Command::TraverseRelationships,
17405 possible_submission_states: &["not_submitted", "resolved"],
17406 identity_requirement: "none",
17407 resolver_command: None,
17408 cancellation: "per_call",
17409 },
17410 CommandOutcomeContract {
17411 command: Command::QueryProfiles,
17412 possible_submission_states: &["not_submitted", "resolved"],
17413 identity_requirement: "none",
17414 resolver_command: None,
17415 cancellation: "per_call",
17416 },
17417 CommandOutcomeContract {
17418 command: Command::EvaluateTemporalEvidence,
17419 possible_submission_states: &["not_submitted", "resolved"],
17420 identity_requirement: "none",
17421 resolver_command: None,
17422 cancellation: "per_call",
17423 },
17424 CommandOutcomeContract {
17425 command: Command::CreateContinuousTemporalEvaluation,
17426 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17427 identity_requirement: "caller_action_id",
17428 resolver_command: Some(Command::GetContinuousTemporalEvaluation),
17429 cancellation: "per_call_until_submission_then_resolve",
17430 },
17431 CommandOutcomeContract {
17432 command: Command::GetContinuousTemporalEvaluation,
17433 possible_submission_states: &["not_submitted", "resolved"],
17434 identity_requirement: "none",
17435 resolver_command: None,
17436 cancellation: "per_call",
17437 },
17438 CommandOutcomeContract {
17439 command: Command::PauseContinuousTemporalEvaluation,
17440 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17441 identity_requirement: "caller_action_id",
17442 resolver_command: Some(Command::GetContinuousTemporalEvaluation),
17443 cancellation: "per_call_until_submission_then_resolve",
17444 },
17445 CommandOutcomeContract {
17446 command: Command::ResumeContinuousTemporalEvaluation,
17447 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17448 identity_requirement: "caller_action_id",
17449 resolver_command: Some(Command::GetContinuousTemporalEvaluation),
17450 cancellation: "per_call_until_submission_then_resolve",
17451 },
17452 CommandOutcomeContract {
17453 command: Command::ReplaceContinuousTemporalEvaluation,
17454 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17455 identity_requirement: "caller_action_id",
17456 resolver_command: Some(Command::GetContinuousTemporalEvaluation),
17457 cancellation: "per_call_until_submission_then_resolve",
17458 },
17459 CommandOutcomeContract {
17460 command: Command::RetireContinuousTemporalEvaluation,
17461 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17462 identity_requirement: "caller_action_id",
17463 resolver_command: Some(Command::GetContinuousTemporalEvaluation),
17464 cancellation: "per_call_until_submission_then_resolve",
17465 },
17466 CommandOutcomeContract {
17467 command: Command::ReadContinuousTemporalEvidence,
17468 possible_submission_states: &["not_submitted", "resolved"],
17469 identity_requirement: "none",
17470 resolver_command: None,
17471 cancellation: "per_call",
17472 },
17473 CommandOutcomeContract {
17474 command: Command::ValidateSearch,
17475 possible_submission_states: &["not_submitted", "resolved"],
17476 identity_requirement: "none",
17477 resolver_command: None,
17478 cancellation: "per_call",
17479 },
17480 CommandOutcomeContract {
17481 command: Command::MaterializeTableSnapshot,
17482 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17483 identity_requirement: "caller_action_id",
17484 resolver_command: Some(Command::ResolveTableSnapshot),
17485 cancellation: "per_call_until_submission_then_resolve",
17486 },
17487 CommandOutcomeContract {
17488 command: Command::ResolveTableSnapshot,
17489 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17490 identity_requirement: "caller_action_id",
17491 resolver_command: None,
17492 cancellation: "per_call",
17493 },
17494 CommandOutcomeContract {
17495 command: Command::ReadTableSnapshot,
17496 possible_submission_states: &["not_submitted", "resolved"],
17497 identity_requirement: "request_locator",
17498 resolver_command: None,
17499 cancellation: "per_call",
17500 },
17501 CommandOutcomeContract {
17502 command: Command::OpenPit,
17503 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17504 identity_requirement: "none",
17505 resolver_command: None,
17506 cancellation: "per_call_until_submission_then_resolve",
17507 },
17508 CommandOutcomeContract {
17509 command: Command::RenewPit,
17510 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17511 identity_requirement: "none",
17512 resolver_command: None,
17513 cancellation: "per_call_until_submission_then_resolve",
17514 },
17515 CommandOutcomeContract {
17516 command: Command::ClosePit,
17517 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17518 identity_requirement: "none",
17519 resolver_command: None,
17520 cancellation: "per_call_until_submission_then_resolve",
17521 },
17522 CommandOutcomeContract {
17523 command: Command::ListOperations,
17524 possible_submission_states: &["not_submitted", "resolved"],
17525 identity_requirement: "none",
17526 resolver_command: None,
17527 cancellation: "per_call",
17528 },
17529 CommandOutcomeContract {
17530 command: Command::GetOperation,
17531 possible_submission_states: &["not_submitted", "resolved"],
17532 identity_requirement: "request_locator",
17533 resolver_command: None,
17534 cancellation: "per_call",
17535 },
17536 CommandOutcomeContract {
17537 command: Command::WaitOperation,
17538 possible_submission_states: &["not_submitted", "resolved"],
17539 identity_requirement: "request_locator",
17540 resolver_command: None,
17541 cancellation: "per_call",
17542 },
17543 CommandOutcomeContract {
17544 command: Command::CancelOperation,
17545 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17546 identity_requirement: "request_locator",
17547 resolver_command: None,
17548 cancellation: "per_call_until_submission_then_resolve",
17549 },
17550 CommandOutcomeContract {
17551 command: Command::ListAuditEvents,
17552 possible_submission_states: &["not_submitted", "resolved"],
17553 identity_requirement: "none",
17554 resolver_command: None,
17555 cancellation: "per_call",
17556 },
17557 CommandOutcomeContract {
17558 command: Command::ExportAuditEvents,
17559 possible_submission_states: &["not_submitted", "resolved"],
17560 identity_requirement: "none",
17561 resolver_command: None,
17562 cancellation: "per_call",
17563 },
17564 CommandOutcomeContract {
17565 command: Command::ReserveServiceCredential,
17566 possible_submission_states: &[
17567 "not_submitted",
17568 "submitted",
17569 "known_retired",
17570 "indeterminate",
17571 "resolved",
17572 ],
17573 identity_requirement: "caller_action_id",
17574 resolver_command: Some(Command::ResolveServiceCredentialReservation),
17575 cancellation: "per_call_until_submission_then_resolve",
17576 },
17577 CommandOutcomeContract {
17578 command: Command::ReserveServiceCredentialRotation,
17579 possible_submission_states: &[
17580 "not_submitted",
17581 "submitted",
17582 "known_retired",
17583 "indeterminate",
17584 "resolved",
17585 ],
17586 identity_requirement: "caller_action_id",
17587 resolver_command: Some(Command::ResolveServiceCredentialReservation),
17588 cancellation: "per_call_until_submission_then_resolve",
17589 },
17590 CommandOutcomeContract {
17591 command: Command::ActivateServiceCredential,
17592 possible_submission_states: &[
17593 "not_submitted",
17594 "submitted",
17595 "known_retired",
17596 "indeterminate",
17597 "resolved",
17598 ],
17599 identity_requirement: "server_locator",
17600 resolver_command: Some(Command::ResolveServiceCredentialReservation),
17601 cancellation: "per_call_until_submission_then_resolve",
17602 },
17603 CommandOutcomeContract {
17604 command: Command::ResolveServiceCredentialReservation,
17605 possible_submission_states: &["not_submitted", "resolved"],
17606 identity_requirement: "caller_action_id",
17607 resolver_command: None,
17608 cancellation: "per_call",
17609 },
17610 CommandOutcomeContract {
17611 command: Command::PrepareRevokeServiceCredential,
17612 possible_submission_states: &["not_submitted", "resolved"],
17613 identity_requirement: "server_locator",
17614 resolver_command: None,
17615 cancellation: "per_call",
17616 },
17617 CommandOutcomeContract {
17618 command: Command::RevokeServiceCredential,
17619 possible_submission_states: &[
17620 "not_submitted",
17621 "submitted",
17622 "known_retired",
17623 "indeterminate",
17624 "resolved",
17625 ],
17626 identity_requirement: "request_locator",
17627 resolver_command: Some(Command::ResolveSecurityAction),
17628 cancellation: "per_call_until_submission_then_resolve",
17629 },
17630 CommandOutcomeContract {
17631 command: Command::ResolveSecurityAction,
17632 possible_submission_states: &["not_submitted", "resolved"],
17633 identity_requirement: "request_locator",
17634 resolver_command: None,
17635 cancellation: "per_call",
17636 },
17637 CommandOutcomeContract {
17638 command: Command::GetSecurityRole,
17639 possible_submission_states: &["not_submitted", "resolved"],
17640 identity_requirement: "none",
17641 resolver_command: None,
17642 cancellation: "per_call",
17643 },
17644 CommandOutcomeContract {
17645 command: Command::PrepareRoleAppendAccessChange,
17646 possible_submission_states: &["not_submitted", "resolved"],
17647 identity_requirement: "server_locator",
17648 resolver_command: None,
17649 cancellation: "per_call",
17650 },
17651 CommandOutcomeContract {
17652 command: Command::SubmitRoleAppendAccessChange,
17653 possible_submission_states: &[
17654 "not_submitted",
17655 "submitted",
17656 "known_retired",
17657 "indeterminate",
17658 "resolved",
17659 ],
17660 identity_requirement: "request_locator",
17661 resolver_command: Some(Command::ResolveSecurityAction),
17662 cancellation: "per_call_until_submission_then_resolve",
17663 },
17664 CommandOutcomeContract {
17665 command: Command::PrepareSourceAuthorizationProjection,
17666 possible_submission_states: &["not_submitted", "resolved"],
17667 identity_requirement: "caller_action_id",
17668 resolver_command: None,
17669 cancellation: "per_call",
17670 },
17671 CommandOutcomeContract {
17672 command: Command::SubmitSourceAuthorizationProjection,
17673 possible_submission_states: &[
17674 "not_submitted",
17675 "submitted",
17676 "known_retired",
17677 "indeterminate",
17678 "resolved",
17679 ],
17680 identity_requirement: "caller_action_id",
17681 resolver_command: Some(Command::ResolveSourceAuthorizationProjection),
17682 cancellation: "per_call_until_submission_then_resolve",
17683 },
17684 CommandOutcomeContract {
17685 command: Command::ResolveSourceAuthorizationProjection,
17686 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17687 identity_requirement: "caller_action_id",
17688 resolver_command: None,
17689 cancellation: "per_call",
17690 },
17691 CommandOutcomeContract {
17692 command: Command::ListServiceCredentials,
17693 possible_submission_states: &["not_submitted", "resolved"],
17694 identity_requirement: "none",
17695 resolver_command: None,
17696 cancellation: "per_call",
17697 },
17698 CommandOutcomeContract {
17699 command: Command::GetRuntimeStatus,
17700 possible_submission_states: &["not_submitted", "resolved"],
17701 identity_requirement: "none",
17702 resolver_command: None,
17703 cancellation: "per_call",
17704 },
17705 CommandOutcomeContract {
17706 command: Command::GetResultCacheStatus,
17707 possible_submission_states: &["not_submitted", "resolved"],
17708 identity_requirement: "none",
17709 resolver_command: None,
17710 cancellation: "per_call",
17711 },
17712 CommandOutcomeContract {
17713 command: Command::GetFieldPromotionStatus,
17714 possible_submission_states: &["not_submitted", "resolved"],
17715 identity_requirement: "none",
17716 resolver_command: None,
17717 cancellation: "per_call",
17718 },
17719 CommandOutcomeContract {
17720 command: Command::GetOverloadStatus,
17721 possible_submission_states: &["not_submitted", "resolved"],
17722 identity_requirement: "none",
17723 resolver_command: None,
17724 cancellation: "per_call",
17725 },
17726 CommandOutcomeContract {
17727 command: Command::ConfigureExternalKey,
17728 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17729 identity_requirement: "none",
17730 resolver_command: None,
17731 cancellation: "per_call_until_submission_then_resolve",
17732 },
17733 CommandOutcomeContract {
17734 command: Command::RotateExternalKeyBinding,
17735 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17736 identity_requirement: "none",
17737 resolver_command: None,
17738 cancellation: "per_call_until_submission_then_resolve",
17739 },
17740 CommandOutcomeContract {
17741 command: Command::RetireExternalKeyBinding,
17742 possible_submission_states: &[
17743 "not_submitted",
17744 "submitted",
17745 "known_retired",
17746 "indeterminate",
17747 "resolved",
17748 ],
17749 identity_requirement: "caller_action_id",
17750 resolver_command: Some(Command::ResolveExternalKeyBindingRetirement),
17751 cancellation: "per_call_until_submission_then_resolve",
17752 },
17753 CommandOutcomeContract {
17754 command: Command::ResolveExternalKeyBindingRetirement,
17755 possible_submission_states: &["not_submitted", "resolved"],
17756 identity_requirement: "caller_action_id",
17757 resolver_command: None,
17758 cancellation: "per_call",
17759 },
17760 CommandOutcomeContract {
17761 command: Command::ConfigureAggregateThenDelete,
17762 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17763 identity_requirement: "none",
17764 resolver_command: None,
17765 cancellation: "per_call_until_submission_then_resolve",
17766 },
17767 CommandOutcomeContract {
17768 command: Command::GetLifecycleStatus,
17769 possible_submission_states: &["not_submitted", "resolved"],
17770 identity_requirement: "none",
17771 resolver_command: None,
17772 cancellation: "per_call",
17773 },
17774 CommandOutcomeContract {
17775 command: Command::GetQuota,
17776 possible_submission_states: &["not_submitted", "resolved"],
17777 identity_requirement: "none",
17778 resolver_command: None,
17779 cancellation: "per_call",
17780 },
17781 CommandOutcomeContract {
17782 command: Command::UpdateQuota,
17783 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17784 identity_requirement: "none",
17785 resolver_command: None,
17786 cancellation: "per_call_until_submission_then_resolve",
17787 },
17788 CommandOutcomeContract {
17789 command: Command::GetBinding,
17790 possible_submission_states: &["not_submitted", "resolved"],
17791 identity_requirement: "none",
17792 resolver_command: None,
17793 cancellation: "per_call",
17794 },
17795 CommandOutcomeContract {
17796 command: Command::GetAdmissionStatus,
17797 possible_submission_states: &["not_submitted", "resolved"],
17798 identity_requirement: "none",
17799 resolver_command: None,
17800 cancellation: "per_call",
17801 },
17802 CommandOutcomeContract {
17803 command: Command::SetAdmission,
17804 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17805 identity_requirement: "none",
17806 resolver_command: None,
17807 cancellation: "per_call_until_submission_then_resolve",
17808 },
17809 CommandOutcomeContract {
17810 command: Command::GetQuiesceStatus,
17811 possible_submission_states: &["not_submitted", "resolved"],
17812 identity_requirement: "none",
17813 resolver_command: None,
17814 cancellation: "per_call",
17815 },
17816 CommandOutcomeContract {
17817 command: Command::GetDecommissionReadiness,
17818 possible_submission_states: &["not_submitted", "resolved"],
17819 identity_requirement: "none",
17820 resolver_command: None,
17821 cancellation: "per_call",
17822 },
17823 CommandOutcomeContract {
17824 command: Command::GetUpgradeReadiness,
17825 possible_submission_states: &["not_submitted", "resolved"],
17826 identity_requirement: "none",
17827 resolver_command: None,
17828 cancellation: "per_call",
17829 },
17830 CommandOutcomeContract {
17831 command: Command::GetMaintenanceStatus,
17832 possible_submission_states: &["not_submitted", "resolved"],
17833 identity_requirement: "none",
17834 resolver_command: None,
17835 cancellation: "per_call",
17836 },
17837 CommandOutcomeContract {
17838 command: Command::WarmVectorIndex,
17839 possible_submission_states: &["not_submitted", "resolved"],
17840 identity_requirement: "exact_root",
17841 resolver_command: None,
17842 cancellation: "per_call",
17843 },
17844 CommandOutcomeContract {
17845 command: Command::EvaluateVectorRecall,
17846 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17847 identity_requirement: "caller_action_id",
17848 resolver_command: None,
17849 cancellation: "per_call_until_submission_then_resolve",
17850 },
17851 CommandOutcomeContract {
17852 command: Command::CalibrateVectorStrategy,
17853 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17854 identity_requirement: "caller_action_id",
17855 resolver_command: None,
17856 cancellation: "per_call_until_submission_then_resolve",
17857 },
17858 CommandOutcomeContract {
17859 command: Command::GetVectorDiagnostic,
17860 possible_submission_states: &["not_submitted", "resolved"],
17861 identity_requirement: "request_locator",
17862 resolver_command: None,
17863 cancellation: "per_call",
17864 },
17865 CommandOutcomeContract {
17866 command: Command::CreateDiagnostic,
17867 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17868 identity_requirement: "none",
17869 resolver_command: None,
17870 cancellation: "per_call_until_submission_then_resolve",
17871 },
17872 CommandOutcomeContract {
17873 command: Command::GetDiagnostic,
17874 possible_submission_states: &["not_submitted", "resolved"],
17875 identity_requirement: "request_locator",
17876 resolver_command: None,
17877 cancellation: "per_call",
17878 },
17879 CommandOutcomeContract {
17880 command: Command::PrepareCollectionExport,
17881 possible_submission_states: &["not_submitted", "resolved"],
17882 identity_requirement: "caller_action_id",
17883 resolver_command: None,
17884 cancellation: "per_call",
17885 },
17886 CommandOutcomeContract {
17887 command: Command::StartCollectionExport,
17888 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17889 identity_requirement: "caller_action_id",
17890 resolver_command: Some(Command::ResolveCollectionExport),
17891 cancellation: "per_call_until_submission_then_resolve",
17892 },
17893 CommandOutcomeContract {
17894 command: Command::ResolveCollectionExport,
17895 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17896 identity_requirement: "caller_action_id",
17897 resolver_command: None,
17898 cancellation: "per_call",
17899 },
17900 CommandOutcomeContract {
17901 command: Command::VerifyCollectionExport,
17902 possible_submission_states: &["not_submitted", "resolved"],
17903 identity_requirement: "request_locator",
17904 resolver_command: None,
17905 cancellation: "per_call",
17906 },
17907 CommandOutcomeContract {
17908 command: Command::PrepareCollectionExportRetirement,
17909 possible_submission_states: &["not_submitted", "resolved"],
17910 identity_requirement: "caller_action_id",
17911 resolver_command: None,
17912 cancellation: "per_call",
17913 },
17914 CommandOutcomeContract {
17915 command: Command::StartCollectionExportRetirement,
17916 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17917 identity_requirement: "caller_action_id",
17918 resolver_command: Some(Command::ResolveCollectionExportRetirement),
17919 cancellation: "per_call_until_submission_then_resolve",
17920 },
17921 CommandOutcomeContract {
17922 command: Command::ResolveCollectionExportRetirement,
17923 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17924 identity_requirement: "caller_action_id",
17925 resolver_command: None,
17926 cancellation: "per_call",
17927 },
17928 CommandOutcomeContract {
17929 command: Command::PrepareCollectionRestore,
17930 possible_submission_states: &["not_submitted", "resolved"],
17931 identity_requirement: "caller_action_id",
17932 resolver_command: None,
17933 cancellation: "per_call",
17934 },
17935 CommandOutcomeContract {
17936 command: Command::StartCollectionRestore,
17937 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17938 identity_requirement: "caller_action_id",
17939 resolver_command: Some(Command::ResolveCollectionRestore),
17940 cancellation: "per_call_until_submission_then_resolve",
17941 },
17942 CommandOutcomeContract {
17943 command: Command::ResolveCollectionRestore,
17944 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17945 identity_requirement: "caller_action_id",
17946 resolver_command: None,
17947 cancellation: "per_call",
17948 },
17949 CommandOutcomeContract {
17950 command: Command::PrepareCollectionTransferExport,
17951 possible_submission_states: &["not_submitted", "resolved"],
17952 identity_requirement: "caller_action_id",
17953 resolver_command: None,
17954 cancellation: "per_call",
17955 },
17956 CommandOutcomeContract {
17957 command: Command::StartCollectionTransferExport,
17958 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17959 identity_requirement: "caller_action_id",
17960 resolver_command: Some(Command::ResolveCollectionTransferExport),
17961 cancellation: "per_call_until_submission_then_resolve",
17962 },
17963 CommandOutcomeContract {
17964 command: Command::ResolveCollectionTransferExport,
17965 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17966 identity_requirement: "caller_action_id",
17967 resolver_command: None,
17968 cancellation: "per_call",
17969 },
17970 CommandOutcomeContract {
17971 command: Command::PrepareCollectionTransferRestore,
17972 possible_submission_states: &["not_submitted", "resolved"],
17973 identity_requirement: "caller_action_id",
17974 resolver_command: None,
17975 cancellation: "per_call",
17976 },
17977 CommandOutcomeContract {
17978 command: Command::StartCollectionTransferRestore,
17979 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
17980 identity_requirement: "caller_action_id",
17981 resolver_command: Some(Command::ResolveCollectionTransferRestore),
17982 cancellation: "per_call_until_submission_then_resolve",
17983 },
17984 CommandOutcomeContract {
17985 command: Command::ResolveCollectionTransferRestore,
17986 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
17987 identity_requirement: "caller_action_id",
17988 resolver_command: None,
17989 cancellation: "per_call",
17990 },
17991 CommandOutcomeContract {
17992 command: Command::PrepareIndexExport,
17993 possible_submission_states: &["not_submitted", "resolved"],
17994 identity_requirement: "caller_action_id",
17995 resolver_command: None,
17996 cancellation: "per_call",
17997 },
17998 CommandOutcomeContract {
17999 command: Command::StartIndexExport,
18000 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
18001 identity_requirement: "caller_action_id",
18002 resolver_command: Some(Command::ResolveIndexExport),
18003 cancellation: "per_call_until_submission_then_resolve",
18004 },
18005 CommandOutcomeContract {
18006 command: Command::ResolveIndexExport,
18007 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
18008 identity_requirement: "caller_action_id",
18009 resolver_command: None,
18010 cancellation: "per_call",
18011 },
18012 CommandOutcomeContract {
18013 command: Command::VerifyIndexExport,
18014 possible_submission_states: &["not_submitted", "resolved"],
18015 identity_requirement: "request_locator",
18016 resolver_command: None,
18017 cancellation: "per_call",
18018 },
18019 CommandOutcomeContract {
18020 command: Command::PrepareIndexImport,
18021 possible_submission_states: &["not_submitted", "resolved"],
18022 identity_requirement: "caller_action_id",
18023 resolver_command: None,
18024 cancellation: "per_call",
18025 },
18026 CommandOutcomeContract {
18027 command: Command::StartIndexImport,
18028 possible_submission_states: &["not_submitted", "submitted", "indeterminate", "resolved"],
18029 identity_requirement: "caller_action_id",
18030 resolver_command: Some(Command::ResolveIndexImport),
18031 cancellation: "per_call_until_submission_then_resolve",
18032 },
18033 CommandOutcomeContract {
18034 command: Command::ResolveIndexImport,
18035 possible_submission_states: &["not_submitted", "resolved", "known_retired"],
18036 identity_requirement: "caller_action_id",
18037 resolver_command: None,
18038 cancellation: "per_call",
18039 },
18040 CommandOutcomeContract {
18041 command: Command::ReadArtifactChunk,
18042 possible_submission_states: &["not_submitted", "resolved"],
18043 identity_requirement: "none",
18044 resolver_command: None,
18045 cancellation: "per_call",
18046 },
18047 CommandOutcomeContract {
18048 command: Command::ExportUsage,
18049 possible_submission_states: &["not_submitted", "resolved"],
18050 identity_requirement: "none",
18051 resolver_command: None,
18052 cancellation: "per_call",
18053 },
18054 CommandOutcomeContract {
18055 command: Command::ReadLogicalOccupancy,
18056 possible_submission_states: &["not_submitted", "resolved"],
18057 identity_requirement: "none",
18058 resolver_command: None,
18059 cancellation: "per_call",
18060 },
18061 CommandOutcomeContract {
18062 command: Command::ExecuteStateRead,
18063 possible_submission_states: &["not_submitted", "resolved"],
18064 identity_requirement: "none",
18065 resolver_command: None,
18066 cancellation: "per_call",
18067 },
18068 CommandOutcomeContract {
18069 command: Command::PrepareStateWrite,
18070 possible_submission_states: &["not_submitted", "resolved"],
18071 identity_requirement: "caller_action_id",
18072 resolver_command: None,
18073 cancellation: "per_call",
18074 },
18075 CommandOutcomeContract {
18076 command: Command::SubmitStateWrite,
18077 possible_submission_states: &[
18078 "not_submitted",
18079 "submitted",
18080 "known_retired",
18081 "indeterminate",
18082 "resolved",
18083 ],
18084 identity_requirement: "request_locator",
18085 resolver_command: Some(Command::ResolveStateWrite),
18086 cancellation: "per_call_until_submission_then_resolve",
18087 },
18088 CommandOutcomeContract {
18089 command: Command::ResolveStateWrite,
18090 possible_submission_states: &["not_submitted", "resolved"],
18091 identity_requirement: "request_locator",
18092 resolver_command: None,
18093 cancellation: "per_call",
18094 },
18095];
18096#[derive(Clone, Copy, Debug, Eq, PartialEq)]
18097pub struct ErrorOutcomeContract {
18098 pub code: ErrorCode,
18099 pub disposition: ErrorDisposition,
18100 pub recovery: RecoveryAction,
18101 pub retry_after_limit_id: Option<&'static str>,
18102 pub recovery_identity: &'static str,
18103}
18104pub const LODESTONE_API_ERROR_OUTCOMES: &[ErrorOutcomeContract] = &[
18105 ErrorOutcomeContract {
18106 code: ErrorCode::Aborted,
18107 disposition: ErrorDisposition::NotSubmitted,
18108 recovery: RecoveryAction::Retry,
18109 retry_after_limit_id: None,
18110 recovery_identity: "request_identity",
18111 },
18112 ErrorOutcomeContract {
18113 code: ErrorCode::Aborted,
18114 disposition: ErrorDisposition::Indeterminate,
18115 recovery: RecoveryAction::Resolve,
18116 retry_after_limit_id: None,
18117 recovery_identity: "request_identity",
18118 },
18119 ErrorOutcomeContract {
18120 code: ErrorCode::DeadlineExceeded,
18121 disposition: ErrorDisposition::NotSubmitted,
18122 recovery: RecoveryAction::Retry,
18123 retry_after_limit_id: None,
18124 recovery_identity: "request_identity",
18125 },
18126 ErrorOutcomeContract {
18127 code: ErrorCode::DeadlineExceeded,
18128 disposition: ErrorDisposition::Indeterminate,
18129 recovery: RecoveryAction::Resolve,
18130 retry_after_limit_id: None,
18131 recovery_identity: "request_identity",
18132 },
18133 ErrorOutcomeContract {
18134 code: ErrorCode::InvalidRequest,
18135 disposition: ErrorDisposition::NotSubmitted,
18136 recovery: RecoveryAction::Stop,
18137 retry_after_limit_id: None,
18138 recovery_identity: "none",
18139 },
18140 ErrorOutcomeContract {
18141 code: ErrorCode::UnsupportedVersion,
18142 disposition: ErrorDisposition::NotSubmitted,
18143 recovery: RecoveryAction::Stop,
18144 retry_after_limit_id: None,
18145 recovery_identity: "none",
18146 },
18147 ErrorOutcomeContract {
18148 code: ErrorCode::Unauthenticated,
18149 disposition: ErrorDisposition::NotSubmitted,
18150 recovery: RecoveryAction::RefreshCredential,
18151 retry_after_limit_id: None,
18152 recovery_identity: "none",
18153 },
18154 ErrorOutcomeContract {
18155 code: ErrorCode::PermissionDenied,
18156 disposition: ErrorDisposition::NotSubmitted,
18157 recovery: RecoveryAction::Stop,
18158 retry_after_limit_id: None,
18159 recovery_identity: "none",
18160 },
18161 ErrorOutcomeContract {
18162 code: ErrorCode::NotFound,
18163 disposition: ErrorDisposition::NotSubmitted,
18164 recovery: RecoveryAction::Stop,
18165 retry_after_limit_id: None,
18166 recovery_identity: "request_identity",
18167 },
18168 ErrorOutcomeContract {
18169 code: ErrorCode::NotFound,
18170 disposition: ErrorDisposition::Resolved,
18171 recovery: RecoveryAction::Stop,
18172 retry_after_limit_id: None,
18173 recovery_identity: "request_identity",
18174 },
18175 ErrorOutcomeContract {
18176 code: ErrorCode::Conflict,
18177 disposition: ErrorDisposition::NotSubmitted,
18178 recovery: RecoveryAction::RefreshPrecondition,
18179 retry_after_limit_id: None,
18180 recovery_identity: "request_identity",
18181 },
18182 ErrorOutcomeContract {
18183 code: ErrorCode::Conflict,
18184 disposition: ErrorDisposition::Resolved,
18185 recovery: RecoveryAction::Stop,
18186 retry_after_limit_id: None,
18187 recovery_identity: "request_identity",
18188 },
18189 ErrorOutcomeContract {
18190 code: ErrorCode::StaleCursor,
18191 disposition: ErrorDisposition::NotSubmitted,
18192 recovery: RecoveryAction::RestartPage,
18193 retry_after_limit_id: None,
18194 recovery_identity: "cursor",
18195 },
18196 ErrorOutcomeContract {
18197 code: ErrorCode::RestartBudgetExhausted,
18198 disposition: ErrorDisposition::NotSubmitted,
18199 recovery: RecoveryAction::Stop,
18200 retry_after_limit_id: None,
18201 recovery_identity: "cursor",
18202 },
18203 ErrorOutcomeContract {
18204 code: ErrorCode::LimitExceeded,
18205 disposition: ErrorDisposition::NotSubmitted,
18206 recovery: RecoveryAction::ReduceRequest,
18207 retry_after_limit_id: None,
18208 recovery_identity: "none",
18209 },
18210 ErrorOutcomeContract {
18211 code: ErrorCode::CapabilityUnavailable,
18212 disposition: ErrorDisposition::NotSubmitted,
18213 recovery: RecoveryAction::Stop,
18214 retry_after_limit_id: None,
18215 recovery_identity: "none",
18216 },
18217 ErrorOutcomeContract {
18218 code: ErrorCode::NotSubmitted,
18219 disposition: ErrorDisposition::NotSubmitted,
18220 recovery: RecoveryAction::RetryAfter,
18221 retry_after_limit_id: Some("retry_after_millis"),
18222 recovery_identity: "request_identity",
18223 },
18224 ErrorOutcomeContract {
18225 code: ErrorCode::SubmittedIndeterminate,
18226 disposition: ErrorDisposition::Indeterminate,
18227 recovery: RecoveryAction::Resolve,
18228 retry_after_limit_id: None,
18229 recovery_identity: "locator_or_caller_action_id",
18230 },
18231 ErrorOutcomeContract {
18232 code: ErrorCode::ExpiredUnknown,
18233 disposition: ErrorDisposition::KnownRetired,
18234 recovery: RecoveryAction::Stop,
18235 retry_after_limit_id: None,
18236 recovery_identity: "locator_or_caller_action_id",
18237 },
18238 ErrorOutcomeContract {
18239 code: ErrorCode::SecretNotEscrowed,
18240 disposition: ErrorDisposition::Resolved,
18241 recovery: RecoveryAction::Resolve,
18242 retry_after_limit_id: None,
18243 recovery_identity: "reservation_action_id",
18244 },
18245 ErrorOutcomeContract {
18246 code: ErrorCode::RetentionGap,
18247 disposition: ErrorDisposition::KnownRetired,
18248 recovery: RecoveryAction::Stop,
18249 retry_after_limit_id: None,
18250 recovery_identity: "cursor_or_locator",
18251 },
18252 ErrorOutcomeContract {
18253 code: ErrorCode::ArtifactRangeInvalid,
18254 disposition: ErrorDisposition::NotSubmitted,
18255 recovery: RecoveryAction::CorrectRange,
18256 retry_after_limit_id: None,
18257 recovery_identity: "artifact_identity",
18258 },
18259 ErrorOutcomeContract {
18260 code: ErrorCode::ChecksumMismatch,
18261 disposition: ErrorDisposition::Resolved,
18262 recovery: RecoveryAction::Stop,
18263 retry_after_limit_id: None,
18264 recovery_identity: "artifact_identity",
18265 },
18266 ErrorOutcomeContract {
18267 code: ErrorCode::TemporarilyUnavailable,
18268 disposition: ErrorDisposition::NotSubmitted,
18269 recovery: RecoveryAction::RetryAfter,
18270 retry_after_limit_id: Some("retry_after_millis"),
18271 recovery_identity: "request_identity",
18272 },
18273 ErrorOutcomeContract {
18274 code: ErrorCode::TemporarilyUnavailable,
18275 disposition: ErrorDisposition::Indeterminate,
18276 recovery: RecoveryAction::Resolve,
18277 retry_after_limit_id: Some("retry_after_millis"),
18278 recovery_identity: "request_identity",
18279 },
18280 ErrorOutcomeContract {
18281 code: ErrorCode::Internal,
18282 disposition: ErrorDisposition::NotSubmitted,
18283 recovery: RecoveryAction::Stop,
18284 retry_after_limit_id: None,
18285 recovery_identity: "request_identity",
18286 },
18287 ErrorOutcomeContract {
18288 code: ErrorCode::Internal,
18289 disposition: ErrorDisposition::Resolved,
18290 recovery: RecoveryAction::Stop,
18291 retry_after_limit_id: None,
18292 recovery_identity: "request_identity",
18293 },
18294 ErrorOutcomeContract {
18295 code: ErrorCode::Internal,
18296 disposition: ErrorDisposition::Indeterminate,
18297 recovery: RecoveryAction::Resolve,
18298 retry_after_limit_id: None,
18299 recovery_identity: "request_identity",
18300 },
18301];
18302#[derive(Clone, Copy, Debug, Eq, PartialEq)]
18303pub struct Limit {
18304 pub id: &'static str,
18305 pub default: u64,
18306 pub maximum: u64,
18307 pub unit: &'static str,
18308}
18309pub const LODESTONE_API_LIMITS: &[Limit] = &[
18310 Limit {
18311 id: "request_bytes",
18312 default: 2097152,
18313 maximum: 2097152,
18314 unit: "bytes",
18315 },
18316 Limit {
18317 id: "response_bytes",
18318 default: 2097152,
18319 maximum: 2097152,
18320 unit: "bytes",
18321 },
18322 Limit {
18323 id: "page_size",
18324 default: 100,
18325 maximum: 1000,
18326 unit: "items",
18327 },
18328 Limit {
18329 id: "catalog_page_size",
18330 default: 100,
18331 maximum: 100,
18332 unit: "items",
18333 },
18334 Limit {
18335 id: "catalog_restart_budget",
18336 default: 8,
18337 maximum: 8,
18338 unit: "restarts",
18339 },
18340 Limit {
18341 id: "query_clauses",
18342 default: 256,
18343 maximum: 1024,
18344 unit: "clauses",
18345 },
18346 Limit {
18347 id: "text_query_bytes",
18348 default: 16384,
18349 maximum: 16384,
18350 unit: "bytes",
18351 },
18352 Limit {
18353 id: "text_query_fields",
18354 default: 64,
18355 maximum: 64,
18356 unit: "fields",
18357 },
18358 Limit {
18359 id: "text_query_slop",
18360 default: 64,
18361 maximum: 64,
18362 unit: "positions",
18363 },
18364 Limit {
18365 id: "text_query_boost",
18366 default: 1024,
18367 maximum: 1024,
18368 unit: "multiplier",
18369 },
18370 Limit {
18371 id: "text_query_fuzzy_expansions",
18372 default: 1024,
18373 maximum: 1024,
18374 unit: "terms",
18375 },
18376 Limit {
18377 id: "text_query_fuzzy_distance",
18378 default: 2,
18379 maximum: 2,
18380 unit: "edits",
18381 },
18382 Limit {
18383 id: "text_query_dictionary_scan_terms",
18384 default: 65536,
18385 maximum: 65536,
18386 unit: "terms",
18387 },
18388 Limit {
18389 id: "text_query_dictionary_scan_bytes",
18390 default: 16777216,
18391 maximum: 16777216,
18392 unit: "bytes",
18393 },
18394 Limit {
18395 id: "text_query_fuzzy_work_units",
18396 default: 2000000,
18397 maximum: 2000000,
18398 unit: "distance_cells",
18399 },
18400 Limit {
18401 id: "aggregation_nodes",
18402 default: 64,
18403 maximum: 256,
18404 unit: "nodes",
18405 },
18406 Limit {
18407 id: "aggregation_buckets",
18408 default: 65536,
18409 maximum: 65536,
18410 unit: "buckets",
18411 },
18412 Limit {
18413 id: "metric_point_bytes",
18414 default: 1048576,
18415 maximum: 1048576,
18416 unit: "bytes",
18417 },
18418 Limit {
18419 id: "metric_attributes",
18420 default: 128,
18421 maximum: 128,
18422 unit: "items",
18423 },
18424 Limit {
18425 id: "metric_attribute_bytes",
18426 default: 65536,
18427 maximum: 65536,
18428 unit: "bytes",
18429 },
18430 Limit {
18431 id: "metric_exemplars",
18432 default: 8,
18433 maximum: 8,
18434 unit: "items",
18435 },
18436 Limit {
18437 id: "metric_histogram_buckets",
18438 default: 4097,
18439 maximum: 4097,
18440 unit: "buckets",
18441 },
18442 Limit {
18443 id: "time_series_grouping_keys",
18444 default: 4,
18445 maximum: 16,
18446 unit: "keys",
18447 },
18448 Limit {
18449 id: "time_series_points",
18450 default: 100000,
18451 maximum: 100000,
18452 unit: "points",
18453 },
18454 Limit {
18455 id: "time_series_series",
18456 default: 10000,
18457 maximum: 10000,
18458 unit: "series",
18459 },
18460 Limit {
18461 id: "time_series_buckets",
18462 default: 65536,
18463 maximum: 65536,
18464 unit: "buckets",
18465 },
18466 Limit {
18467 id: "time_series_results",
18468 default: 65536,
18469 maximum: 65536,
18470 unit: "results",
18471 },
18472 Limit {
18473 id: "time_series_quantiles",
18474 default: 10,
18475 maximum: 100,
18476 unit: "quantiles",
18477 },
18478 Limit {
18479 id: "time_series_state_bytes",
18480 default: 67108864,
18481 maximum: 67108864,
18482 unit: "bytes",
18483 },
18484 Limit {
18485 id: "temporal_inputs",
18486 default: 16,
18487 maximum: 16,
18488 unit: "indexes",
18489 },
18490 Limit {
18491 id: "temporal_pattern_nodes",
18492 default: 64,
18493 maximum: 64,
18494 unit: "nodes",
18495 },
18496 Limit {
18497 id: "temporal_pattern_depth",
18498 default: 16,
18499 maximum: 16,
18500 unit: "levels",
18501 },
18502 Limit {
18503 id: "temporal_pattern_branches",
18504 default: 16,
18505 maximum: 16,
18506 unit: "branches",
18507 },
18508 Limit {
18509 id: "temporal_correlation_keys",
18510 default: 4,
18511 maximum: 4,
18512 unit: "fields",
18513 },
18514 Limit {
18515 id: "temporal_events",
18516 default: 4096,
18517 maximum: 4096,
18518 unit: "events",
18519 },
18520 Limit {
18521 id: "temporal_states",
18522 default: 65536,
18523 maximum: 65536,
18524 unit: "states",
18525 },
18526 Limit {
18527 id: "temporal_captured_events",
18528 default: 256,
18529 maximum: 256,
18530 unit: "events",
18531 },
18532 Limit {
18533 id: "temporal_results",
18534 default: 4096,
18535 maximum: 4096,
18536 unit: "results",
18537 },
18538 Limit {
18539 id: "temporal_state_bytes",
18540 default: 67108864,
18541 maximum: 67108864,
18542 unit: "bytes",
18543 },
18544 Limit {
18545 id: "temporal_interval_nanos",
18546 default: 2678400000000000,
18547 maximum: 2678400000000000,
18548 unit: "nanoseconds",
18549 },
18550 Limit {
18551 id: "relationship_indexes",
18552 default: 4,
18553 maximum: 16,
18554 unit: "indexes",
18555 },
18556 Limit {
18557 id: "relationship_seeds",
18558 default: 16,
18559 maximum: 128,
18560 unit: "entities",
18561 },
18562 Limit {
18563 id: "relationship_filter_values",
18564 default: 16,
18565 maximum: 128,
18566 unit: "values",
18567 },
18568 Limit {
18569 id: "relationship_depth",
18570 default: 4,
18571 maximum: 16,
18572 unit: "levels",
18573 },
18574 Limit {
18575 id: "relationship_fan_out",
18576 default: 256,
18577 maximum: 4096,
18578 unit: "relationships",
18579 },
18580 Limit {
18581 id: "relationship_visited_entities",
18582 default: 10000,
18583 maximum: 65536,
18584 unit: "entities",
18585 },
18586 Limit {
18587 id: "relationship_visited_records",
18588 default: 10000,
18589 maximum: 10000,
18590 unit: "records",
18591 },
18592 Limit {
18593 id: "relationship_returned_records",
18594 default: 10000,
18595 maximum: 10000,
18596 unit: "records",
18597 },
18598 Limit {
18599 id: "relationship_memory_bytes",
18600 default: 67108864,
18601 maximum: 268435456,
18602 unit: "bytes",
18603 },
18604 Limit {
18605 id: "profile_indexes",
18606 default: 4,
18607 maximum: 16,
18608 unit: "indexes",
18609 },
18610 Limit {
18611 id: "profile_filter_values",
18612 default: 16,
18613 maximum: 128,
18614 unit: "values",
18615 },
18616 Limit {
18617 id: "profile_batches",
18618 default: 10000,
18619 maximum: 10000,
18620 unit: "batches",
18621 },
18622 Limit {
18623 id: "profile_samples",
18624 default: 100000,
18625 maximum: 100000,
18626 unit: "samples",
18627 },
18628 Limit {
18629 id: "profile_results",
18630 default: 10000,
18631 maximum: 10000,
18632 unit: "results",
18633 },
18634 Limit {
18635 id: "profile_memory_bytes",
18636 default: 67108864,
18637 maximum: 268435456,
18638 unit: "bytes",
18639 },
18640 Limit {
18641 id: "approximate_cardinality_precision",
18642 default: 12,
18643 maximum: 16,
18644 unit: "index_bits",
18645 },
18646 Limit {
18647 id: "approximate_percentile_precision",
18648 default: 10,
18649 maximum: 12,
18650 unit: "index_bits",
18651 },
18652 Limit {
18653 id: "operation_page_authorities",
18654 default: 7,
18655 maximum: 7,
18656 unit: "authorities",
18657 },
18658 Limit {
18659 id: "artifact_chunk_bytes",
18660 default: 262144,
18661 maximum: 1048576,
18662 unit: "bytes",
18663 },
18664 Limit {
18665 id: "table_snapshot_objects",
18666 default: 1024,
18667 maximum: 4096,
18668 unit: "objects",
18669 },
18670 Limit {
18671 id: "table_snapshot_ttl_millis",
18672 default: 3600000,
18673 maximum: 604800000,
18674 unit: "milliseconds",
18675 },
18676 Limit {
18677 id: "table_snapshot_read_bytes",
18678 default: 262144,
18679 maximum: 1048576,
18680 unit: "bytes",
18681 },
18682 Limit {
18683 id: "bulk_document_items",
18684 default: 128,
18685 maximum: 1024,
18686 unit: "items",
18687 },
18688 Limit {
18689 id: "bulk_document_bytes",
18690 default: 2097152,
18691 maximum: 2097152,
18692 unit: "bytes",
18693 },
18694 Limit {
18695 id: "state_command_keys",
18696 default: 128,
18697 maximum: 128,
18698 unit: "keys",
18699 },
18700 Limit {
18701 id: "state_command_value_bytes",
18702 default: 1048576,
18703 maximum: 1048576,
18704 unit: "bytes",
18705 },
18706 Limit {
18707 id: "state_write_outcomes",
18708 default: 4096,
18709 maximum: 4096,
18710 unit: "entries",
18711 },
18712 Limit {
18713 id: "exact_decimal_scale",
18714 default: 18,
18715 maximum: 1024,
18716 unit: "decimal_places",
18717 },
18718 Limit {
18719 id: "retry_after_millis",
18720 default: 1000,
18721 maximum: 60000,
18722 unit: "milliseconds",
18723 },
18724 Limit {
18725 id: "mapping_fields",
18726 default: 16384,
18727 maximum: 16384,
18728 unit: "fields",
18729 },
18730 Limit {
18731 id: "search_result_window",
18732 default: 10000,
18733 maximum: 10000,
18734 unit: "items",
18735 },
18736 Limit {
18737 id: "routing_values",
18738 default: 1024,
18739 maximum: 1024,
18740 unit: "items",
18741 },
18742 Limit {
18743 id: "routing_value_bytes",
18744 default: 4096,
18745 maximum: 4096,
18746 unit: "bytes",
18747 },
18748 Limit {
18749 id: "query_recursion_depth",
18750 default: 64,
18751 maximum: 64,
18752 unit: "levels",
18753 },
18754 Limit {
18755 id: "vector_dimensions",
18756 default: 16384,
18757 maximum: 16384,
18758 unit: "dimensions",
18759 },
18760 Limit {
18761 id: "vector_query_bytes",
18762 default: 65536,
18763 maximum: 65536,
18764 unit: "bytes",
18765 },
18766 Limit {
18767 id: "vector_request_bytes",
18768 default: 1048576,
18769 maximum: 1048576,
18770 unit: "bytes",
18771 },
18772 Limit {
18773 id: "vector_candidates",
18774 default: 10000,
18775 maximum: 10000,
18776 unit: "items",
18777 },
18778 Limit {
18779 id: "vector_set_document_vectors",
18780 default: 128,
18781 maximum: 128,
18782 unit: "vectors",
18783 },
18784 Limit {
18785 id: "vector_set_document_bytes",
18786 default: 65536,
18787 maximum: 65536,
18788 unit: "bytes",
18789 },
18790 Limit {
18791 id: "vector_set_query_vectors",
18792 default: 32,
18793 maximum: 32,
18794 unit: "vectors",
18795 },
18796 Limit {
18797 id: "vector_set_query_bytes",
18798 default: 65536,
18799 maximum: 65536,
18800 unit: "bytes",
18801 },
18802 Limit {
18803 id: "retrieval_branches",
18804 default: 16,
18805 maximum: 16,
18806 unit: "branches",
18807 },
18808 Limit {
18809 id: "retrieval_branch_name_bytes",
18810 default: 64,
18811 maximum: 64,
18812 unit: "bytes",
18813 },
18814 Limit {
18815 id: "retrieval_window",
18816 default: 10000,
18817 maximum: 10000,
18818 unit: "items",
18819 },
18820 Limit {
18821 id: "fragment_fields",
18822 default: 4,
18823 maximum: 16,
18824 unit: "fields",
18825 },
18826 Limit {
18827 id: "fragments_per_field",
18828 default: 1,
18829 maximum: 8,
18830 unit: "items",
18831 },
18832 Limit {
18833 id: "fragment_bytes",
18834 default: 150,
18835 maximum: 8192,
18836 unit: "bytes",
18837 },
18838 Limit {
18839 id: "fragment_total_bytes",
18840 default: 65536,
18841 maximum: 65536,
18842 unit: "bytes",
18843 },
18844 Limit {
18845 id: "result_feature_hits",
18846 default: 10,
18847 maximum: 100,
18848 unit: "items",
18849 },
18850 Limit {
18851 id: "result_features",
18852 default: 4,
18853 maximum: 16,
18854 unit: "features",
18855 },
18856 Limit {
18857 id: "diversification_fields",
18858 default: 1,
18859 maximum: 4,
18860 unit: "fields",
18861 },
18862 Limit {
18863 id: "diversification_per_group",
18864 default: 1,
18865 maximum: 64,
18866 unit: "items",
18867 },
18868 Limit {
18869 id: "source_projection_patterns",
18870 default: 128,
18871 maximum: 128,
18872 unit: "patterns",
18873 },
18874 Limit {
18875 id: "source_projection_pattern_bytes",
18876 default: 512,
18877 maximum: 512,
18878 unit: "bytes",
18879 },
18880 Limit {
18881 id: "vector_evaluation_queries",
18882 default: 64,
18883 maximum: 256,
18884 unit: "queries",
18885 },
18886 Limit {
18887 id: "vector_evaluation_k",
18888 default: 10,
18889 maximum: 1000,
18890 unit: "items",
18891 },
18892 Limit {
18893 id: "vector_evaluation_profiles",
18894 default: 3,
18895 maximum: 3,
18896 unit: "profiles",
18897 },
18898 Limit {
18899 id: "vector_evaluation_artifact_bytes",
18900 default: 1048576,
18901 maximum: 1048576,
18902 unit: "bytes",
18903 },
18904 Limit {
18905 id: "vector_warm_components",
18906 default: 2,
18907 maximum: 3,
18908 unit: "components",
18909 },
18910 Limit {
18911 id: "vector_warm_requests",
18912 default: 1024,
18913 maximum: 65536,
18914 unit: "requests",
18915 },
18916 Limit {
18917 id: "vector_warm_bytes",
18918 default: 268435456,
18919 maximum: 1073741824,
18920 unit: "bytes",
18921 },
18922 Limit {
18923 id: "vector_warm_achievements",
18924 default: 1024,
18925 maximum: 10000,
18926 unit: "items",
18927 },
18928 Limit {
18929 id: "vector_warm_ttl_millis",
18930 default: 300000,
18931 maximum: 900000,
18932 unit: "milliseconds",
18933 },
18934 Limit {
18935 id: "operation_page_size",
18936 default: 100,
18937 maximum: 100,
18938 unit: "items",
18939 },
18940 Limit {
18941 id: "operation_wait_attempts",
18942 default: 20,
18943 maximum: 100,
18944 unit: "attempts",
18945 },
18946 Limit {
18947 id: "operation_wait_interval_millis",
18948 default: 100,
18949 maximum: 60000,
18950 unit: "milliseconds",
18951 },
18952 Limit {
18953 id: "resource_initial_shards",
18954 default: 1,
18955 maximum: 4096,
18956 unit: "shards",
18957 },
18958 Limit {
18959 id: "resource_target_shard_bytes",
18960 default: 536870912,
18961 maximum: 1125899906842624,
18962 unit: "bytes",
18963 },
18964 Limit {
18965 id: "resource_admission_weight",
18966 default: 1,
18967 maximum: 1000000,
18968 unit: "weight",
18969 },
18970 Limit {
18971 id: "resource_ram_bytes",
18972 default: 1073741824,
18973 maximum: 1125899906842624,
18974 unit: "bytes",
18975 },
18976 Limit {
18977 id: "resource_nvme_bytes",
18978 default: 2147483648,
18979 maximum: 1125899906842624,
18980 unit: "bytes",
18981 },
18982 Limit {
18983 id: "resource_refresh_millis",
18984 default: 200,
18985 maximum: 604800000,
18986 unit: "milliseconds",
18987 },
18988 Limit {
18989 id: "resource_memtable_bytes",
18990 default: 268435456,
18991 maximum: 1125899906842624,
18992 unit: "bytes",
18993 },
18994 Limit {
18995 id: "resource_parallelism",
18996 default: 1,
18997 maximum: 4096,
18998 unit: "workers",
18999 },
19000 Limit {
19001 id: "collection_export_bytes",
19002 default: 268435456,
19003 maximum: 268435456,
19004 unit: "bytes",
19005 },
19006 Limit {
19007 id: "collection_export_documents",
19008 default: 10000,
19009 maximum: 10000,
19010 unit: "documents",
19011 },
19012 Limit {
19013 id: "index_transfer_bytes",
19014 default: 268435456,
19015 maximum: 268435456,
19016 unit: "bytes",
19017 },
19018 Limit {
19019 id: "index_transfer_records",
19020 default: 10000,
19021 maximum: 10000,
19022 unit: "records",
19023 },
19024 Limit {
19025 id: "index_transfer_pages",
19026 default: 7,
19027 maximum: 7,
19028 unit: "pages",
19029 },
19030 Limit {
19031 id: "portability_prefix_bytes",
19032 default: 512,
19033 maximum: 512,
19034 unit: "bytes",
19035 },
19036];
19037#[derive(Clone, Copy, Debug, Eq, PartialEq)]
19038pub enum JsonError {
19039 DuplicateObjectField,
19040 InvalidScalar,
19041}
19042pub fn validate_semantic_json(value: &JsonValue) -> Result<(), JsonError> {
19043 match value {
19044 JsonValue::I64(item) => item.validate().map_err(|_| JsonError::InvalidScalar),
19045 JsonValue::U64(item) => item.validate().map_err(|_| JsonError::InvalidScalar),
19046 JsonValue::ExactDecimal(item) => item.validate().map_err(|_| JsonError::InvalidScalar),
19047 JsonValue::Approximate(item) => item.validate().map_err(|_| JsonError::InvalidScalar),
19048 JsonValue::Array(items) => items.iter().try_for_each(validate_semantic_json),
19049 JsonValue::Object(fields) => {
19050 let mut names = std::collections::BTreeSet::new();
19051 for field in fields {
19052 if !names.insert(field.name.as_str()) {
19053 return Err(JsonError::DuplicateObjectField);
19054 }
19055 validate_semantic_json(&field.value)?;
19056 }
19057 Ok(())
19058 }
19059 JsonValue::Null | JsonValue::Bool(_) | JsonValue::String(_) => Ok(()),
19060 }
19061}
19062#[cfg(test)]
19063mod tests {
19064 use super::*;
19065 fn assert_fixture<T>(value: &serde_json::Value) -> Result<(), Box<dyn std::error::Error>>
19066 where
19067 T: serde::de::DeserializeOwned + Serialize,
19068 {
19069 let decoded: T = serde_json::from_value(value.clone())?;
19070 assert_eq!(serde_json::to_value(decoded)?, *value);
19071 Ok(())
19072 }
19073 #[test]
19074 fn every_named_type_has_a_canonical_round_trip_fixture() -> Result<(), Box<dyn std::error::Error>> {
19075 let document: serde_json::Value =
19076 serde_json::from_str(include_str!("../../../tests/native-api/closed-schema.json"))?;
19077 assert_eq!(document["spec_sha256"], LODESTONE_API_SPEC_SHA256);
19078 let fixtures = document["named_types"]
19079 .as_object()
19080 .ok_or("named type fixtures are not an object")?;
19081 assert_eq!(fixtures.len(), LODESTONE_API_TYPE_CONTRACTS.len());
19082 for (name, value) in fixtures {
19083 match name.as_str() {
19084 "cursor" => assert_fixture::<Cursor>(value)?,
19085 "locator" => assert_fixture::<Locator>(value)?,
19086 "resource" => assert_fixture::<Resource>(value)?,
19087 "read_cut_kind" => assert_fixture::<ReadCutKind>(value)?,
19088 "read_cut_index_evidence" => assert_fixture::<ReadCutIndexEvidence>(value)?,
19089 "read_cut_evidence" => assert_fixture::<ReadCutEvidence>(value)?,
19090 "table_snapshot_object_role" => assert_fixture::<TableSnapshotObjectRole>(value)?,
19091 "table_snapshot_codec" => assert_fixture::<TableSnapshotCodec>(value)?,
19092 "table_snapshot_object" => assert_fixture::<TableSnapshotObject>(value)?,
19093 "table_snapshot" => assert_fixture::<TableSnapshot>(value)?,
19094 "table_snapshot_resolution_state" => assert_fixture::<TableSnapshotResolutionState>(value)?,
19095 "table_snapshot_resolution" => assert_fixture::<TableSnapshotResolution>(value)?,
19096 "table_snapshot_read" => assert_fixture::<TableSnapshotRead>(value)?,
19097 "logical_occupancy_counts" => assert_fixture::<LogicalOccupancyCounts>(value)?,
19098 "logical_occupancy_gap_state" => assert_fixture::<LogicalOccupancyGapState>(value)?,
19099 "logical_occupancy_snapshot_evidence" => assert_fixture::<LogicalOccupancySnapshotEvidence>(value)?,
19100 "logical_occupancy_window_gap" => assert_fixture::<LogicalOccupancyWindowGap>(value)?,
19101 "field_promotion_configuration" => assert_fixture::<FieldPromotionConfiguration>(value)?,
19102 "overload_configuration" => assert_fixture::<OverloadConfiguration>(value)?,
19103 "index_policies" => assert_fixture::<IndexPolicies>(value)?,
19104 "maintenance_budgets" => assert_fixture::<MaintenanceBudgets>(value)?,
19105 "resource_durability_class" => assert_fixture::<ResourceDurabilityClass>(value)?,
19106 "resource_storage_class" => assert_fixture::<ResourceStorageClass>(value)?,
19107 "vector_quality_objective" => assert_fixture::<VectorQualityObjective>(value)?,
19108 "vector_indexing_objective" => assert_fixture::<VectorIndexingObjective>(value)?,
19109 "vector_residency_intent" => assert_fixture::<VectorResidencyIntent>(value)?,
19110 "vector_calibration_binding" => assert_fixture::<VectorCalibrationBinding>(value)?,
19111 "vector_resource_policy" => assert_fixture::<VectorResourcePolicy>(value)?,
19112 "workload_class" => assert_fixture::<WorkloadClass>(value)?,
19113 "index_resource_spec" => assert_fixture::<IndexResourceSpec>(value)?,
19114 "index_summary" => assert_fixture::<IndexSummary>(value)?,
19115 "mapping_mode" => assert_fixture::<MappingMode>(value)?,
19116 "dynamic_mapping_policy" => assert_fixture::<DynamicMappingPolicy>(value)?,
19117 "mapping_analyzer" => assert_fixture::<MappingAnalyzer>(value)?,
19118 "keyword_normalizer" => assert_fixture::<KeywordNormalizer>(value)?,
19119 "vector_metric" => assert_fixture::<VectorMetric>(value)?,
19120 "mapping_scalar" => assert_fixture::<MappingScalar>(value)?,
19121 "sparse_vector_weight_type" => assert_fixture::<SparseVectorWeightType>(value)?,
19122 "mapping_field_type" => assert_fixture::<MappingFieldType>(value)?,
19123 "mapping_field" => assert_fixture::<MappingField>(value)?,
19124 "multi_field_projection" => assert_fixture::<MultiFieldProjection>(value)?,
19125 "analyzer_identity" => assert_fixture::<AnalyzerIdentity>(value)?,
19126 "keyword_limit" => assert_fixture::<KeywordLimit>(value)?,
19127 "profile_privacy_action" => assert_fixture::<ProfilePrivacyAction>(value)?,
19128 "profile_privacy_field" => assert_fixture::<ProfilePrivacyField>(value)?,
19129 "profile_privacy_rule" => assert_fixture::<ProfilePrivacyRule>(value)?,
19130 "profile_privacy_policy" => assert_fixture::<ProfilePrivacyPolicy>(value)?,
19131 "mapping_record_model" => assert_fixture::<MappingRecordModel>(value)?,
19132 "mapping" => assert_fixture::<Mapping>(value)?,
19133 "index_detail" => assert_fixture::<IndexDetail>(value)?,
19134 "source_provider" => assert_fixture::<SourceProvider>(value)?,
19135 "source_decoder" => assert_fixture::<SourceDecoder>(value)?,
19136 "source_replay_guarantees" => assert_fixture::<SourceReplayGuarantees>(value)?,
19137 "source_partition_configuration" => assert_fixture::<SourcePartitionConfiguration>(value)?,
19138 "replayable_source_configuration" => assert_fixture::<ReplayableSourceConfiguration>(value)?,
19139 "source_partition_status" => assert_fixture::<SourcePartitionStatus>(value)?,
19140 "replayable_source_status" => assert_fixture::<ReplayableSourceStatus>(value)?,
19141 "source_control_transition" => assert_fixture::<SourceControlTransition>(value)?,
19142 "history_ledger_precondition" => assert_fixture::<HistoryLedgerPrecondition>(value)?,
19143 "history_retention_policy" => assert_fixture::<HistoryRetentionPolicy>(value)?,
19144 "history_selector" => assert_fixture::<HistorySelector>(value)?,
19145 "history_hold" => assert_fixture::<HistoryHold>(value)?,
19146 "history_status" => assert_fixture::<HistoryStatus>(value)?,
19147 "history_resolution" => assert_fixture::<HistoryResolution>(value)?,
19148 "index_reference" => assert_fixture::<IndexReference>(value)?,
19149 "alias_target" => assert_fixture::<AliasTarget>(value)?,
19150 "alias_summary" => assert_fixture::<AliasSummary>(value)?,
19151 "alias_detail" => assert_fixture::<AliasDetail>(value)?,
19152 "data_stream_summary" => assert_fixture::<DataStreamSummary>(value)?,
19153 "component_template_binding" => assert_fixture::<ComponentTemplateBinding>(value)?,
19154 "index_template_binding" => assert_fixture::<IndexTemplateBinding>(value)?,
19155 "lifecycle_policy_binding" => assert_fixture::<LifecyclePolicyBinding>(value)?,
19156 "data_stream_detail" => assert_fixture::<DataStreamDetail>(value)?,
19157 "component_template_summary" => assert_fixture::<ComponentTemplateSummary>(value)?,
19158 "component_template_detail" => assert_fixture::<ComponentTemplateDetail>(value)?,
19159 "index_template_summary" => assert_fixture::<IndexTemplateSummary>(value)?,
19160 "index_template_detail" => assert_fixture::<IndexTemplateDetail>(value)?,
19161 "ingest_pipeline_summary" => assert_fixture::<IngestPipelineSummary>(value)?,
19162 "ingest_pipeline_detail" => assert_fixture::<IngestPipelineDetail>(value)?,
19163 "ingest_pipeline_selection" => assert_fixture::<IngestPipelineSelection>(value)?,
19164 "lifecycle_policy_summary" => assert_fixture::<LifecyclePolicySummary>(value)?,
19165 "rollover_thresholds" => assert_fixture::<RolloverThresholds>(value)?,
19166 "retention_policy" => assert_fixture::<RetentionPolicy>(value)?,
19167 "lifecycle_policy_detail" => assert_fixture::<LifecyclePolicyDetail>(value)?,
19168 "text_query_operator" => assert_fixture::<TextQueryOperator>(value)?,
19169 "text_query_analyzer" => assert_fixture::<TextQueryAnalyzer>(value)?,
19170 "zero_terms_query" => assert_fixture::<ZeroTermsQuery>(value)?,
19171 "text_query_options" => assert_fixture::<TextQueryOptions>(value)?,
19172 "multi_match_mode" => assert_fixture::<MultiMatchMode>(value)?,
19173 "multi_match_field" => assert_fixture::<MultiMatchField>(value)?,
19174 "multi_match_options" => assert_fixture::<MultiMatchOptions>(value)?,
19175 "sort_order" => assert_fixture::<SortOrder>(value)?,
19176 "sort_mode" => assert_fixture::<SortMode>(value)?,
19177 "missing_order" => assert_fixture::<MissingOrder>(value)?,
19178 "nested_score_mode" => assert_fixture::<NestedScoreMode>(value)?,
19179 "nested_inner_hits" => assert_fixture::<NestedInnerHits>(value)?,
19180 "sort_spec" => assert_fixture::<SortSpec>(value)?,
19181 "query" => assert_fixture::<Query>(value)?,
19182 "dense_retrieval_mode" => assert_fixture::<DenseRetrievalMode>(value)?,
19183 "vector_achieved_mode" => assert_fixture::<VectorAchievedMode>(value)?,
19184 "vector_branch_diagnostics" => assert_fixture::<VectorBranchDiagnostics>(value)?,
19185 "dense_vector_element_type" => assert_fixture::<DenseVectorElementType>(value)?,
19186 "dense_vector_byte_order" => assert_fixture::<DenseVectorByteOrder>(value)?,
19187 "vector_value" => assert_fixture::<VectorValue>(value)?,
19188 "sparse_vector_entry" => assert_fixture::<SparseVectorEntry>(value)?,
19189 "sparse_vector_value" => assert_fixture::<SparseVectorValue>(value)?,
19190 "vector_set_value" => assert_fixture::<VectorSetValue>(value)?,
19191 "vector_evaluation_snapshot" => assert_fixture::<VectorEvaluationSnapshot>(value)?,
19192 "vector_evaluation_query_set" => assert_fixture::<VectorEvaluationQuerySet>(value)?,
19193 "vector_evaluation_budget" => assert_fixture::<VectorEvaluationBudget>(value)?,
19194 "vector_candidate_policy" => assert_fixture::<VectorCandidatePolicy>(value)?,
19195 "vector_calibration_objective" => assert_fixture::<VectorCalibrationObjective>(value)?,
19196 "vector_strategy_profile" => assert_fixture::<VectorStrategyProfile>(value)?,
19197 "vector_evaluation_work" => assert_fixture::<VectorEvaluationWork>(value)?,
19198 "vector_evaluation_error_code" => assert_fixture::<VectorEvaluationErrorCode>(value)?,
19199 "vector_evaluation_error" => assert_fixture::<VectorEvaluationError>(value)?,
19200 "vector_recall_result" => assert_fixture::<VectorRecallResult>(value)?,
19201 "vector_calibration_candidate" => assert_fixture::<VectorCalibrationCandidate>(value)?,
19202 "vector_calibration_result" => assert_fixture::<VectorCalibrationResult>(value)?,
19203 "vector_diagnostic_result" => assert_fixture::<VectorDiagnosticResult>(value)?,
19204 "vector_warm_component" => assert_fixture::<VectorWarmComponent>(value)?,
19205 "vector_warm_state" => assert_fixture::<VectorWarmState>(value)?,
19206 "vector_warm_achievement" => assert_fixture::<VectorWarmAchievement>(value)?,
19207 "vector_warm_result" => assert_fixture::<VectorWarmResult>(value)?,
19208 "dense_retrieval_threshold" => assert_fixture::<DenseRetrievalThreshold>(value)?,
19209 "retrieval_branch" => assert_fixture::<RetrievalBranch>(value)?,
19210 "weighted_rrf_fusion" => assert_fixture::<WeightedRrfFusion>(value)?,
19211 "retrieval_plan" => assert_fixture::<RetrievalPlan>(value)?,
19212 "histogram_bounds" => assert_fixture::<HistogramBounds>(value)?,
19213 "date_histogram_bounds" => assert_fixture::<DateHistogramBounds>(value)?,
19214 "approximation_algorithm" => assert_fixture::<ApproximationAlgorithm>(value)?,
19215 "approximation" => assert_fixture::<Approximation>(value)?,
19216 "percentile_value" => assert_fixture::<PercentileValue>(value)?,
19217 "approximate_percentile_value" => assert_fixture::<ApproximatePercentileValue>(value)?,
19218 "time_series_operator" => assert_fixture::<TimeSeriesOperator>(value)?,
19219 "time_series_missing_data" => assert_fixture::<TimeSeriesMissingData>(value)?,
19220 "time_series_quantile_mode" => assert_fixture::<TimeSeriesQuantileMode>(value)?,
19221 "time_series_bucket_state" => assert_fixture::<TimeSeriesBucketState>(value)?,
19222 "time_series_quantile_value" => assert_fixture::<TimeSeriesQuantileValue>(value)?,
19223 "time_series_value" => assert_fixture::<TimeSeriesValue>(value)?,
19224 "time_series_bucket" => assert_fixture::<TimeSeriesBucket>(value)?,
19225 "relationship_traversal_direction" => assert_fixture::<RelationshipTraversalDirection>(value)?,
19226 "relationship_traversal_filter" => assert_fixture::<RelationshipTraversalFilter>(value)?,
19227 "relationship_traversal_budget" => assert_fixture::<RelationshipTraversalBudget>(value)?,
19228 "traversed_relationship" => assert_fixture::<TraversedRelationship>(value)?,
19229 "profile_query_operation" => assert_fixture::<ProfileQueryOperation>(value)?,
19230 "profile_group_by" => assert_fixture::<ProfileGroupBy>(value)?,
19231 "profile_query_filter" => assert_fixture::<ProfileQueryFilter>(value)?,
19232 "profile_query_budget" => assert_fixture::<ProfileQueryBudget>(value)?,
19233 "profile_query_row" => assert_fixture::<ProfileQueryRow>(value)?,
19234 "temporal_input" => assert_fixture::<TemporalInput>(value)?,
19235 "temporal_pattern" => assert_fixture::<TemporalPattern>(value)?,
19236 "historical_temporal_definition" => assert_fixture::<HistoricalTemporalDefinition>(value)?,
19237 "temporal_evidence_status" => assert_fixture::<TemporalEvidenceStatus>(value)?,
19238 "temporal_source_event" => assert_fixture::<TemporalSourceEvent>(value)?,
19239 "temporal_evidence" => assert_fixture::<TemporalEvidence>(value)?,
19240 "continuous_temporal_start" => assert_fixture::<ContinuousTemporalStart>(value)?,
19241 "continuous_temporal_watermark_policy" => assert_fixture::<ContinuousTemporalWatermarkPolicy>(value)?,
19242 "continuous_temporal_late_data_policy" => assert_fixture::<ContinuousTemporalLateDataPolicy>(value)?,
19243 "continuous_temporal_output" => assert_fixture::<ContinuousTemporalOutput>(value)?,
19244 "continuous_temporal_definition" => assert_fixture::<ContinuousTemporalDefinition>(value)?,
19245 "continuous_temporal_frontier" => assert_fixture::<ContinuousTemporalFrontier>(value)?,
19246 "continuous_temporal_available_frontier" => {
19247 assert_fixture::<ContinuousTemporalAvailableFrontier>(value)?
19248 }
19249 "continuous_temporal_gap_reason" => assert_fixture::<ContinuousTemporalGapReason>(value)?,
19250 "continuous_temporal_gap" => assert_fixture::<ContinuousTemporalGap>(value)?,
19251 "continuous_temporal_evaluation" => assert_fixture::<ContinuousTemporalEvaluation>(value)?,
19252 "composite_order" => assert_fixture::<CompositeOrder>(value)?,
19253 "composite_source" => assert_fixture::<CompositeSource>(value)?,
19254 "aggregation" => assert_fixture::<Aggregation>(value)?,
19255 "nested_search_hit" => assert_fixture::<NestedSearchHit>(value)?,
19256 "named_nested_inner_hits_result" => assert_fixture::<NamedNestedInnerHitsResult>(value)?,
19257 "fragment_boundary" => assert_fixture::<FragmentBoundary>(value)?,
19258 "fragment_offset_encoding" => assert_fixture::<FragmentOffsetEncoding>(value)?,
19259 "fragment_ranker" => assert_fixture::<FragmentRanker>(value)?,
19260 "fragment_request" => assert_fixture::<FragmentRequest>(value)?,
19261 "search_fragment" => assert_fixture::<SearchFragment>(value)?,
19262 "numeric_feature_transform" => assert_fixture::<NumericFeatureTransform>(value)?,
19263 "numeric_result_feature" => assert_fixture::<NumericResultFeature>(value)?,
19264 "result_feature_request" => assert_fixture::<ResultFeatureRequest>(value)?,
19265 "result_diversification" => assert_fixture::<ResultDiversification>(value)?,
19266 "source_projection" => assert_fixture::<SourceProjection>(value)?,
19267 "branch_score_kind" => assert_fixture::<BranchScoreKind>(value)?,
19268 "result_feature" => assert_fixture::<ResultFeature>(value)?,
19269 "search_hit" => assert_fixture::<SearchHit>(value)?,
19270 "aggregation_bucket" => assert_fixture::<AggregationBucket>(value)?,
19271 "aggregation_result" => assert_fixture::<AggregationResult>(value)?,
19272 "shard_counts" => assert_fixture::<ShardCounts>(value)?,
19273 "total_hits_relation" => assert_fixture::<TotalHitsRelation>(value)?,
19274 "search_total" => assert_fixture::<SearchTotal>(value)?,
19275 "search_execution_freshness" => assert_fixture::<SearchExecutionFreshness>(value)?,
19276 "search_freshness" => assert_fixture::<SearchFreshness>(value)?,
19277 "search_degradation_reason" => assert_fixture::<SearchDegradationReason>(value)?,
19278 "search_achievement" => assert_fixture::<SearchAchievement>(value)?,
19279 "search_failure_stage" => assert_fixture::<SearchFailureStage>(value)?,
19280 "search_failure_reason" => assert_fixture::<SearchFailureReason>(value)?,
19281 "collection_shard" => assert_fixture::<CollectionShard>(value)?,
19282 "search_partial_failure" => assert_fixture::<SearchPartialFailure>(value)?,
19283 "artifact" => assert_fixture::<Artifact>(value)?,
19284 "portability_storage_capability" => assert_fixture::<PortabilityStorageCapability>(value)?,
19285 "collection_export_artifact" => assert_fixture::<CollectionExportArtifact>(value)?,
19286 "collection_transfer_sequence" => assert_fixture::<CollectionTransferSequence>(value)?,
19287 "collection_transfer_artifact" => assert_fixture::<CollectionTransferArtifact>(value)?,
19288 "portability_key_capability_reference_state" => {
19289 assert_fixture::<PortabilityKeyCapabilityReferenceState>(value)?
19290 }
19291 "collection_export_retirement" => assert_fixture::<CollectionExportRetirement>(value)?,
19292 "index_transfer_page" => assert_fixture::<IndexTransferPage>(value)?,
19293 "index_transfer_artifact" => assert_fixture::<IndexTransferArtifact>(value)?,
19294 "search_validation_bound" => assert_fixture::<SearchValidationBound>(value)?,
19295 "search_validation_estimates" => assert_fixture::<SearchValidationEstimates>(value)?,
19296 "search_validation_limit" => assert_fixture::<SearchValidationLimit>(value)?,
19297 "operation_kind" => assert_fixture::<OperationKind>(value)?,
19298 "operation_authority" => assert_fixture::<OperationAuthority>(value)?,
19299 "operation_target" => assert_fixture::<OperationTarget>(value)?,
19300 "operation_state" => assert_fixture::<OperationState>(value)?,
19301 "operation_pending_state" => assert_fixture::<OperationPendingState>(value)?,
19302 "operation_progress_unit" => assert_fixture::<OperationProgressUnit>(value)?,
19303 "operation_progress" => assert_fixture::<OperationProgress>(value)?,
19304 "operation_result" => assert_fixture::<OperationResult>(value)?,
19305 "operation_failure" => assert_fixture::<OperationFailure>(value)?,
19306 "operation_cancellation" => assert_fixture::<OperationCancellation>(value)?,
19307 "operation_retention_state" => assert_fixture::<OperationRetentionState>(value)?,
19308 "operation_retention" => assert_fixture::<OperationRetention>(value)?,
19309 "operation" => assert_fixture::<Operation>(value)?,
19310 "write_durability_boundary" => assert_fixture::<WriteDurabilityBoundary>(value)?,
19311 "write_visibility_mode" => assert_fixture::<WriteVisibilityMode>(value)?,
19312 "write_response_stage" => assert_fixture::<WriteResponseStage>(value)?,
19313 "write_achievement" => assert_fixture::<WriteAchievement>(value)?,
19314 "mutation_commit_position" => assert_fixture::<MutationCommitPosition>(value)?,
19315 "mutation_commit_receipt" => assert_fixture::<MutationCommitReceipt>(value)?,
19316 "mutation_resolver" => assert_fixture::<MutationResolver>(value)?,
19317 "mutation_outcome" => assert_fixture::<MutationOutcome>(value)?,
19318 "submission_state" => assert_fixture::<SubmissionState>(value)?,
19319 "expected_binding" => assert_fixture::<ExpectedBinding>(value)?,
19320 "administration_alias_action" => assert_fixture::<AdministrationAliasAction>(value)?,
19321 "administration_mutation" => assert_fixture::<AdministrationMutation>(value)?,
19322 "administration_outcome" => assert_fixture::<AdministrationOutcome>(value)?,
19323 "index_change_apply_receipt" => assert_fixture::<IndexChangeApplyReceipt>(value)?,
19324 "index_change_resolution_state" => assert_fixture::<IndexChangeResolutionState>(value)?,
19325 "bulk_document_item" => assert_fixture::<BulkDocumentItem>(value)?,
19326 "bulk_document_item_outcome" => assert_fixture::<BulkDocumentItemOutcome>(value)?,
19327 "bulk_document_outcome" => assert_fixture::<BulkDocumentOutcome>(value)?,
19328 "metric_attribute_value" => assert_fixture::<MetricAttributeValue>(value)?,
19329 "metric_attribute" => assert_fixture::<MetricAttribute>(value)?,
19330 "metric_number" => assert_fixture::<MetricNumber>(value)?,
19331 "metric_temporality" => assert_fixture::<MetricTemporality>(value)?,
19332 "metric_point_kind" => assert_fixture::<MetricPointKind>(value)?,
19333 "metric_exponential_buckets" => assert_fixture::<MetricExponentialBuckets>(value)?,
19334 "metric_data" => assert_fixture::<MetricData>(value)?,
19335 "metric_instrumentation_scope" => assert_fixture::<MetricInstrumentationScope>(value)?,
19336 "metric_exemplar" => assert_fixture::<MetricExemplar>(value)?,
19337 "metric_point" => assert_fixture::<MetricPoint>(value)?,
19338 "entity_ref" => assert_fixture::<EntityRef>(value)?,
19339 "relationship_evidence_ref" => assert_fixture::<RelationshipEvidenceRef>(value)?,
19340 "relationship_directionality" => assert_fixture::<RelationshipDirectionality>(value)?,
19341 "relationship_record" => assert_fixture::<RelationshipRecord>(value)?,
19342 "profile_label" => assert_fixture::<ProfileLabel>(value)?,
19343 "profile_sample_type" => assert_fixture::<ProfileSampleType>(value)?,
19344 "profile_mapping" => assert_fixture::<ProfileMapping>(value)?,
19345 "profile_function" => assert_fixture::<ProfileFunction>(value)?,
19346 "profile_line" => assert_fixture::<ProfileLine>(value)?,
19347 "profile_location" => assert_fixture::<ProfileLocation>(value)?,
19348 "profile_stack" => assert_fixture::<ProfileStack>(value)?,
19349 "profile_sample" => assert_fixture::<ProfileSample>(value)?,
19350 "profile_instrumentation_scope" => assert_fixture::<ProfileInstrumentationScope>(value)?,
19351 "profile_batch" => assert_fixture::<ProfileBatch>(value)?,
19352 "native_record" => assert_fixture::<NativeRecord>(value)?,
19353 "retained_append_item" => assert_fixture::<RetainedAppendItem>(value)?,
19354 "retained_append_state" => assert_fixture::<RetainedAppendState>(value)?,
19355 "retained_append_retry_safety" => assert_fixture::<RetainedAppendRetrySafety>(value)?,
19356 "retained_append_item_outcome" => assert_fixture::<RetainedAppendItemOutcome>(value)?,
19357 "retained_append_bulk_outcome" => assert_fixture::<RetainedAppendBulkOutcome>(value)?,
19358 "retained_append_observation_state" => assert_fixture::<RetainedAppendObservationState>(value)?,
19359 "retained_append_observation_outcome" => assert_fixture::<RetainedAppendObservationOutcome>(value)?,
19360 "binary_value" => assert_fixture::<BinaryValue>(value)?,
19361 "state_hash_field" => assert_fixture::<StateHashField>(value)?,
19362 "state_set_entry" => assert_fixture::<StateSetEntry>(value)?,
19363 "state_set_condition" => assert_fixture::<StateSetCondition>(value)?,
19364 "state_operation" => assert_fixture::<StateOperation>(value)?,
19365 "state_optional_value" => assert_fixture::<StateOptionalValue>(value)?,
19366 "state_command_result" => assert_fixture::<StateCommandResult>(value)?,
19367 "state_write_resolution" => assert_fixture::<StateWriteResolution>(value)?,
19368 "service_credential_reservation" => assert_fixture::<ServiceCredentialReservation>(value)?,
19369 "subscription_metadata_field" => assert_fixture::<SubscriptionMetadataField>(value)?,
19370 "subscription_field" => assert_fixture::<SubscriptionField>(value)?,
19371 "subscription_filter" => assert_fixture::<SubscriptionFilter>(value)?,
19372 "subscription_cursor_entry" => assert_fixture::<SubscriptionCursorEntry>(value)?,
19373 "subscription_route" => assert_fixture::<SubscriptionRoute>(value)?,
19374 "subscription_start_position" => assert_fixture::<SubscriptionStartPosition>(value)?,
19375 "subscription_start" => assert_fixture::<SubscriptionStart>(value)?,
19376 "subscription_accepted" => assert_fixture::<SubscriptionAccepted>(value)?,
19377 "subscription_writer_fence" => assert_fixture::<SubscriptionWriterFence>(value)?,
19378 "subscription_event" => assert_fixture::<SubscriptionEvent>(value)?,
19379 "subscription_heartbeat" => assert_fixture::<SubscriptionHeartbeat>(value)?,
19380 "subscription_gap" => assert_fixture::<SubscriptionGap>(value)?,
19381 "subscription_terminal_reason" => assert_fixture::<SubscriptionTerminalReason>(value)?,
19382 "subscription_terminal" => assert_fixture::<SubscriptionTerminal>(value)?,
19383 "subscription_frame" => assert_fixture::<SubscriptionFrame>(value)?,
19384 "stream_binding" => assert_fixture::<StreamBinding>(value)?,
19385 "capability_grant" => assert_fixture::<CapabilityGrant>(value)?,
19386 "protocol_limit" => assert_fixture::<ProtocolLimit>(value)?,
19387 "document_mutation_condition" => assert_fixture::<DocumentMutationCondition>(value)?,
19388 "audit_adapter" => assert_fixture::<AuditAdapter>(value)?,
19389 "audit_decision" => assert_fixture::<AuditDecision>(value)?,
19390 "audit_outcome" => assert_fixture::<AuditOutcome>(value)?,
19391 "audit_detail" => assert_fixture::<AuditDetail>(value)?,
19392 "audit_gap_reason" => assert_fixture::<AuditGapReason>(value)?,
19393 "audit_event" => assert_fixture::<AuditEvent>(value)?,
19394 "audit_gap" => assert_fixture::<AuditGap>(value)?,
19395 "audit_stream_state" => assert_fixture::<AuditStreamState>(value)?,
19396 "service_credential_grant" => assert_fixture::<ServiceCredentialGrant>(value)?,
19397 "service_credential_summary" => assert_fixture::<ServiceCredentialSummary>(value)?,
19398 "security_role" => assert_fixture::<SecurityRole>(value)?,
19399 "role_append_scope_change" => assert_fixture::<RoleAppendScopeChange>(value)?,
19400 "role_append_access_preparation" => assert_fixture::<RoleAppendAccessPreparation>(value)?,
19401 "source_authorization_subject_kind" => assert_fixture::<SourceAuthorizationSubjectKind>(value)?,
19402 "source_authorization_subject" => assert_fixture::<SourceAuthorizationSubject>(value)?,
19403 "delegated_query_source_subject" => assert_fixture::<DelegatedQuerySourceSubject>(value)?,
19404 "delegated_query_subject_claims" => assert_fixture::<DelegatedQuerySubjectClaims>(value)?,
19405 "signed_delegated_query_subject" => assert_fixture::<SignedDelegatedQuerySubject>(value)?,
19406 "source_authorization_principal_change" => assert_fixture::<SourceAuthorizationPrincipalChange>(value)?,
19407 "source_authorization_group_change" => assert_fixture::<SourceAuthorizationGroupChange>(value)?,
19408 "source_authorization_membership_replacement" => {
19409 assert_fixture::<SourceAuthorizationMembershipReplacement>(value)?
19410 }
19411 "source_authorization_document_acl_replacement" => {
19412 assert_fixture::<SourceAuthorizationDocumentAclReplacement>(value)?
19413 }
19414 "source_authorization_batch" => assert_fixture::<SourceAuthorizationBatch>(value)?,
19415 "source_authorization_applied_counts" => assert_fixture::<SourceAuthorizationAppliedCounts>(value)?,
19416 "source_authorization_receipt" => assert_fixture::<SourceAuthorizationReceipt>(value)?,
19417 "source_authorization_preparation" => assert_fixture::<SourceAuthorizationPreparation>(value)?,
19418 "source_authorization_resolution_state" => assert_fixture::<SourceAuthorizationResolutionState>(value)?,
19419 "source_authorization_resolution" => assert_fixture::<SourceAuthorizationResolution>(value)?,
19420 "security_action_outcome" => assert_fixture::<SecurityActionOutcome>(value)?,
19421 "maintenance_work_state" => assert_fixture::<MaintenanceWorkState>(value)?,
19422 "maintenance_attempt_state" => assert_fixture::<MaintenanceAttemptState>(value)?,
19423 "maintenance_failure_class" => assert_fixture::<MaintenanceFailureClass>(value)?,
19424 "maintenance_failure_class_count" => assert_fixture::<MaintenanceFailureClassCount>(value)?,
19425 "maintenance_attempt_observation" => assert_fixture::<MaintenanceAttemptObservation>(value)?,
19426 "maintenance_task_scope" => assert_fixture::<MaintenanceTaskScope>(value)?,
19427 "maintenance_task_status" => assert_fixture::<MaintenanceTaskStatus>(value)?,
19428 "maintenance_status_aggregate" => assert_fixture::<MaintenanceStatusAggregate>(value)?,
19429 "runtime_status_detail" => assert_fixture::<RuntimeStatusDetail>(value)?,
19430 "result_cache_status" => assert_fixture::<ResultCacheStatus>(value)?,
19431 "field_promotion_status" => assert_fixture::<FieldPromotionStatus>(value)?,
19432 "overload_shard_status" => assert_fixture::<OverloadShardStatus>(value)?,
19433 "external_key_binding" => assert_fixture::<ExternalKeyBinding>(value)?,
19434 "external_key_retirement_target" => assert_fixture::<ExternalKeyRetirementTarget>(value)?,
19435 "external_key_retirement_outcome" => assert_fixture::<ExternalKeyRetirementOutcome>(value)?,
19436 "external_key_retirement_receipt" => assert_fixture::<ExternalKeyRetirementReceipt>(value)?,
19437 "external_key_retirement_resolution_state" => {
19438 assert_fixture::<ExternalKeyRetirementResolutionState>(value)?
19439 }
19440 "rollup_measure" => assert_fixture::<RollupMeasure>(value)?,
19441 "aggregate_then_delete_policy" => assert_fixture::<AggregateThenDeletePolicy>(value)?,
19442 "lifecycle_binding_status" => assert_fixture::<LifecycleBindingStatus>(value)?,
19443 "lifecycle_rollup_status" => assert_fixture::<LifecycleRollupStatus>(value)?,
19444 "lifecycle_status" => assert_fixture::<LifecycleStatus>(value)?,
19445 "quota_limit" => assert_fixture::<QuotaLimit>(value)?,
19446 "quota_consumption" => assert_fixture::<QuotaConsumption>(value)?,
19447 "quota_update" => assert_fixture::<QuotaUpdate>(value)?,
19448 "storage_overall_posture" => assert_fixture::<StorageOverallPosture>(value)?,
19449 "storage_profile_role" => assert_fixture::<StorageProfileRole>(value)?,
19450 "storage_provider_posture" => assert_fixture::<StorageProviderPosture>(value)?,
19451 "storage_backend_service_class" => assert_fixture::<StorageBackendServiceClass>(value)?,
19452 "storage_profile_role_binding" => assert_fixture::<StorageProfileRoleBinding>(value)?,
19453 "storage_profile_attestation" => assert_fixture::<StorageProfileAttestation>(value)?,
19454 "storage_profile_expectation" => assert_fixture::<StorageProfileExpectation>(value)?,
19455 "core_binding" => assert_fixture::<CoreBinding>(value)?,
19456 "readiness_observation" => assert_fixture::<ReadinessObservation>(value)?,
19457 "usage_dimension" => assert_fixture::<UsageDimension>(value)?,
19458 "physical_usage_value" => assert_fixture::<PhysicalUsageValue>(value)?,
19459 "core_usage_units" => assert_fixture::<CoreUsageUnits>(value)?,
19460 "core_usage_correction" => assert_fixture::<CoreUsageCorrection>(value)?,
19461 "response_meta" => assert_fixture::<ResponseMeta>(value)?,
19462 "error_disposition" => assert_fixture::<ErrorDisposition>(value)?,
19463 "recovery_action" => assert_fixture::<RecoveryAction>(value)?,
19464 "limit_class" => assert_fixture::<LimitClass>(value)?,
19465 "error_detail" => assert_fixture::<ErrorDetail>(value)?,
19466 "connection_profile" => assert_fixture::<ConnectionProfile>(value)?,
19467 _ => return Err("fixture names an unknown generated type".into()),
19468 }
19469 }
19470 Ok(())
19471 }
19472 #[test]
19473 fn every_aggregation_variant_has_a_canonical_fixture() -> Result<(), Box<dyn std::error::Error>> {
19474 let document: serde_json::Value =
19475 serde_json::from_str(include_str!("../../../tests/native-api/closed-schema.json"))?;
19476 let fixtures = document["aggregation_variants"]
19477 .as_object()
19478 .ok_or("aggregation fixtures are not an object")?;
19479 assert_eq!(fixtures.len(), 17);
19480 for value in fixtures.values() {
19481 assert_fixture::<Aggregation>(value)?;
19482 }
19483 Ok(())
19484 }
19485 #[test]
19486 fn every_versioned_union_variant_has_a_canonical_fixture() -> Result<(), Box<dyn std::error::Error>> {
19487 let document: serde_json::Value =
19488 serde_json::from_str(include_str!("../../../tests/native-api/closed-schema.json"))?;
19489 let fixtures = document["versioned_union_variants"]
19490 .as_object()
19491 .ok_or("versioned union fixtures are not an object")?;
19492 assert_eq!(fixtures.len(), 6);
19493 for (name, value) in fixtures {
19494 match name.as_str() {
19495 "mapping_field_type.vector" => assert_fixture::<MappingFieldType>(value)?,
19496 "mapping_field_type.sparse_vector" => assert_fixture::<MappingFieldType>(value)?,
19497 "mapping_field_type.vector_set" => assert_fixture::<MappingFieldType>(value)?,
19498 "mapping_record_model.metric_v1" => assert_fixture::<MappingRecordModel>(value)?,
19499 "mapping_record_model.relationship_v1" => assert_fixture::<MappingRecordModel>(value)?,
19500 "mapping_record_model.profile_v1" => assert_fixture::<MappingRecordModel>(value)?,
19501 _ => return Err("fixture names an unknown versioned union variant".into()),
19502 }
19503 }
19504 Ok(())
19505 }
19506 #[test]
19507 fn exact_scalar_canonicality_is_closed() {
19508 assert_eq!(
19509 U64 {
19510 value: u64::MAX.to_string()
19511 }
19512 .validate(),
19513 Ok(())
19514 );
19515 assert_eq!(
19516 I64 {
19517 value: i64::MIN.to_string()
19518 }
19519 .validate(),
19520 Ok(())
19521 );
19522 assert_eq!(U64 { value: "01".to_owned() }.validate(), Err(ScalarError::InvalidU64));
19523 assert_eq!(
19524 ExactDecimal {
19525 coefficient: "12345".to_owned(),
19526 scale: 2
19527 }
19528 .validate(),
19529 Ok(())
19530 );
19531 assert_eq!(
19532 ExactDecimal {
19533 coefficient: "123450".to_owned(),
19534 scale: 3
19535 }
19536 .validate(),
19537 Err(ScalarError::InvalidDecimal)
19538 );
19539 assert_eq!(
19540 ExactDecimal {
19541 coefficient: "1".to_owned(),
19542 scale: 1_025
19543 }
19544 .validate(),
19545 Err(ScalarError::InvalidDecimal)
19546 );
19547 }
19548 #[test]
19549 fn scalar_decoders_refuse_numbers_and_noncanonical_strings() {
19550 assert!(serde_json::from_str::<U64>("9007199254740993").is_err());
19551 assert!(serde_json::from_str::<U64>(r#""01""#).is_err());
19552 assert!(serde_json::from_str::<Identity>(r#""0123456789ABCDEF0123456789ABCDEF""#).is_err());
19553 assert!(serde_json::from_str::<Digest>(r#""0123456789abcdef0123456789abcdef""#).is_err());
19554 assert!(serde_json::from_str::<ExactDecimal>(r#"{"coefficient":"123450","scale":3}"#).is_err());
19555 assert!(serde_json::from_str::<ApproximateNumber>(r#""1.0""#).is_err());
19556 }
19557 #[test]
19558 fn semantic_json_rejects_duplicate_fields() {
19559 let value = JsonValue::Object(vec![
19560 JsonField {
19561 name: "x".to_owned(),
19562 value: JsonValue::Null,
19563 },
19564 JsonField {
19565 name: "x".to_owned(),
19566 value: JsonValue::Bool(true),
19567 },
19568 ]);
19569 assert_eq!(validate_semantic_json(&value), Err(JsonError::DuplicateObjectField));
19570 }
19571 #[test]
19572 fn strict_generated_shapes_refuse_malformed_duplicate_unknown_field_and_tag() {
19573 assert!(serde_json::from_str::<DiscoverRequest>(r#"{"unexpected":true}"#).is_err());
19574 assert!(serde_json::from_str::<Cursor>(r#"{"value":"a","value":"b"}"#).is_err());
19575 assert!(serde_json::from_str::<Query>(r#"{"kind":"future_query"}"#).is_err());
19576 assert!(serde_json::from_str::<Cursor>(r#"{"value":1}"#).is_err());
19577 }
19578 fn admitted_error_detail(code: ErrorCode) -> ErrorDetail {
19579 match code {
19580 ErrorCode::Aborted => ErrorDetail::Aborted {
19581 reason: "test".to_owned(),
19582 },
19583 ErrorCode::DeadlineExceeded => ErrorDetail::DeadlineExceeded,
19584 ErrorCode::InvalidRequest => ErrorDetail::InvalidRequest {
19585 field: None,
19586 reason: "test".to_owned(),
19587 },
19588 ErrorCode::UnsupportedVersion => ErrorDetail::UnsupportedVersion {
19589 observed: 1,
19590 maximum_supported: 1,
19591 },
19592 ErrorCode::Unauthenticated => ErrorDetail::Unauthenticated,
19593 ErrorCode::PermissionDenied => ErrorDetail::PermissionDenied {
19594 action: None,
19595 workload_class: None,
19596 },
19597 ErrorCode::NotFound => ErrorDetail::NotFound { resource: None },
19598 ErrorCode::Conflict => ErrorDetail::Conflict {
19599 expected_revision: None,
19600 observed_revision: None,
19601 },
19602 ErrorCode::StaleCursor => ErrorDetail::StaleCursor { restart_count: 0 },
19603 ErrorCode::RestartBudgetExhausted => ErrorDetail::RestartBudgetExhausted { maximum_restarts: 0 },
19604 ErrorCode::LimitExceeded => ErrorDetail::LimitExceeded {
19605 class: LimitClass::RequestBound,
19606 limit_id: "test".to_owned(),
19607 maximum: U64 { value: "0".to_owned() },
19608 },
19609 ErrorCode::CapabilityUnavailable => ErrorDetail::CapabilityUnavailable { capability: None },
19610 ErrorCode::NotSubmitted => ErrorDetail::NotSubmitted {
19611 retry_after_millis: None,
19612 },
19613 ErrorCode::SubmittedIndeterminate => ErrorDetail::SubmittedIndeterminate { locator: None },
19614 ErrorCode::ExpiredUnknown => ErrorDetail::ExpiredUnknown { locator: None },
19615 ErrorCode::SecretNotEscrowed => ErrorDetail::SecretNotEscrowed,
19616 ErrorCode::RetentionGap => ErrorDetail::RetentionGap {
19617 retired_through: U64 { value: "0".to_owned() },
19618 },
19619 ErrorCode::ArtifactRangeInvalid => ErrorDetail::ArtifactRangeInvalid {
19620 maximum_bytes: U64 { value: "0".to_owned() },
19621 },
19622 ErrorCode::ChecksumMismatch => ErrorDetail::ChecksumMismatch {
19623 expected: Digest { value: "0".repeat(64) },
19624 observed: Digest { value: "0".repeat(64) },
19625 },
19626 ErrorCode::TemporarilyUnavailable => ErrorDetail::TemporarilyUnavailable {
19627 retry_after_millis: None,
19628 },
19629 ErrorCode::Internal => ErrorDetail::Internal,
19630 }
19631 }
19632 #[test]
19633 fn every_admitted_error_outcome_is_constructible_and_invalid_combinations_fail_closed() {
19634 let mut codes = std::collections::BTreeSet::new();
19635 for contract in LODESTONE_API_ERROR_OUTCOMES {
19636 codes.insert(format!("{:?}", contract.code));
19637 assert_eq!(
19638 ErrorBody::try_new(
19639 contract.code,
19640 "test".to_owned(),
19641 contract.disposition,
19642 contract.recovery,
19643 admitted_error_detail(contract.code)
19644 ),
19645 Ok(ErrorBody {
19646 code: contract.code,
19647 message: "test".to_owned(),
19648 disposition: contract.disposition,
19649 recovery: contract.recovery,
19650 details: admitted_error_detail(contract.code)
19651 })
19652 );
19653 }
19654 assert_eq!(codes.len(), 21);
19655 assert_eq!(
19656 ErrorBody::try_new(
19657 ErrorCode::Aborted,
19658 "test".to_owned(),
19659 ErrorDisposition::NotSubmitted,
19660 RecoveryAction::Stop,
19661 admitted_error_detail(ErrorCode::Aborted)
19662 ),
19663 Err(ErrorShapeError::OutcomeMismatch)
19664 );
19665 assert_eq!(
19666 ErrorBody::try_new(
19667 ErrorCode::Aborted,
19668 "test".to_owned(),
19669 ErrorDisposition::NotSubmitted,
19670 RecoveryAction::Retry,
19671 ErrorDetail::Internal
19672 ),
19673 Err(ErrorShapeError::DetailCodeMismatch)
19674 );
19675 assert_eq!(
19676 ErrorBody::try_new(
19677 ErrorCode::TemporarilyUnavailable,
19678 "test".to_owned(),
19679 ErrorDisposition::NotSubmitted,
19680 RecoveryAction::RetryAfter,
19681 ErrorDetail::TemporarilyUnavailable {
19682 retry_after_millis: Some(U64 {
19683 value: "60001".to_owned()
19684 })
19685 }
19686 ),
19687 Err(ErrorShapeError::RetryAfterOutOfRange)
19688 );
19689 }
19690 #[test]
19691 fn registries_match_the_idl() {
19692 assert_eq!(LODESTONE_API_COMMAND_CONTRACTS.len(), 139);
19693 assert_eq!(LODESTONE_API_COMMAND_SEMANTICS.len(), 139);
19694 assert_eq!(LODESTONE_API_COMMAND_OUTCOMES.len(), 139);
19695 assert_eq!(LODESTONE_API_ERROR_CODES.len(), 21);
19696 assert_eq!(LODESTONE_API_ERROR_OUTCOMES.len(), 28);
19697 assert_eq!(LODESTONE_API_TYPE_CONTRACTS.len(), 373);
19698 assert_eq!(LODESTONE_API_STREAM_CONTRACTS.len(), 1);
19699 assert_eq!(LODESTONE_API_LIMITS.len(), 121);
19700 assert_eq!(LODESTONE_API_CLUSTER_CONTROL_ACTIONS.len(), 23);
19701 assert_eq!(LODESTONE_API_CLUSTER_CONTROL_TYPES.len(), 11);
19702 }
19703 #[test]
19704 fn mutation_outcome_metadata_matches_submission_boundaries() {
19705 for (command, outcome) in LODESTONE_API_COMMAND_CONTRACTS
19706 .iter()
19707 .zip(LODESTONE_API_COMMAND_OUTCOMES)
19708 {
19709 assert_eq!(command.command, outcome.command);
19710 let submits = !matches!(command.mutation, "read_only" | "read_only_prepare" | "catalog_prepare");
19711 assert_eq!(outcome.possible_submission_states.contains(&"submitted"), submits);
19712 assert_eq!(outcome.possible_submission_states.contains(&"indeterminate"), submits);
19713 assert_eq!(
19714 outcome.cancellation == "per_call_until_submission_then_resolve",
19715 submits
19716 );
19717 }
19718 for command in [
19719 Command::ReserveServiceCredential,
19720 Command::ReserveServiceCredentialRotation,
19721 ] {
19722 let outcome = LODESTONE_API_COMMAND_OUTCOMES
19723 .iter()
19724 .find(|outcome| outcome.command == command);
19725 assert!(
19726 matches!(outcome, Some(value) if value.identity_requirement == "caller_action_id" && value.resolver_command == Some(Command::ResolveServiceCredentialReservation))
19727 );
19728 }
19729 }
19730}