Skip to main content

lodestone_wire/
lib.rs

1//! @generated by scripts/generate-lodestone-api.py; do not edit by hand.
2//! Active Lodestone API public DTOs; predecessor public reachability is absent.
3
4use 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// INVARIANT: the response envelope already boxes this closed wire union; boxing
11252// individual variants would add a second allocation without changing the wire.
11253#[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}