Skip to main content

lodestone_client/
lib.rs

1//! Current-only asynchronous Rust client for the Lodestone API.
2//!
3//! Semantic request, result, error, cursor, locator, aggregation, usage, and
4//! subscription types come exclusively from [`lodestone_wire`]. This
5//! crate owns only external-client concerns: validated local profile material,
6//! secret-safe credential access, bounded TLS transport, retry/submission
7//! classification, helpers, and the canonical gRPC subscription stream.
8
9mod bootstrap_credential;
10mod bulk;
11mod client_material;
12mod cluster_control;
13mod compatibility;
14mod config;
15mod connection_doctor;
16mod credential;
17mod credential_rotation;
18mod development_workflows;
19mod exact_workflows;
20mod generated;
21mod generated_tool_packs;
22mod index_change;
23mod observability_ingest;
24mod opensearch_compatibility;
25mod operation_waiter;
26mod pager;
27mod portability;
28mod provisioning;
29mod secure_publication;
30mod state;
31mod subscription;
32mod tooling;
33mod transport;
34mod workflow_journal;
35
36pub use bootstrap_credential::{
37    BOOTSTRAP_API_KEY_GENERATION, BOOTSTRAP_API_KEY_ID, BootstrapCredentialError, MAX_BOOTSTRAP_CREDENTIAL_BYTES,
38    PreparedBootstrapCredential,
39};
40pub use bulk::{BulkExecution, BulkRecovery, BulkRecoveryError};
41pub use client_material::{
42    CLIENT_MATERIAL_CREDENTIAL_REFERENCE_OWNER, CLIENT_MATERIAL_FORMAT_VERSION, CLIENT_MATERIAL_SCHEMA_ID,
43    ClientMaterialError, ClientMaterialFileReferenceV1, ClientMaterialSupplyBindingV1, ClientMaterialV1,
44    ClientTrustMaterialReferenceV1, MAX_CLIENT_MATERIAL_BYTES,
45};
46pub use cluster_control::{
47    CLUSTER_CONTROL_ALPN, ClusterControlClient, ClusterControlClientConfig, ClusterControlClientError,
48    ClusterControlCredential, ClusterControlRefusal,
49};
50pub use compatibility::{
51    ElasticsearchCompatibilityEffectV1, ElasticsearchCompatibilityEndpointV1, ElasticsearchCompatibilityErrorV1,
52    ElasticsearchCompatibilityExecutorV1, ElasticsearchCompatibilityHeaderV1, ElasticsearchCompatibilityMethodV1,
53    ElasticsearchCompatibilityRequestV1, ElasticsearchCompatibilityResponseV1,
54    MAX_ELASTICSEARCH_COMPATIBILITY_HEADER_BYTES, MAX_ELASTICSEARCH_COMPATIBILITY_HEADERS,
55    MAX_ELASTICSEARCH_COMPATIBILITY_REQUEST_BYTES, MAX_ELASTICSEARCH_COMPATIBILITY_RESPONSE_BYTES,
56};
57pub use config::{
58    CellOperationClass, CellTransportConfig, CellTransportIdentity, ClientConfigError, CollectionSessionConfig,
59    PoolConfig, TlsTrust, ValidatedConnectionProfile, ValidatedEndpoint,
60};
61pub use connection_doctor::{
62    ConnectionDoctorFailure, ConnectionDoctorFailureClass, ConnectionDoctorReport, ConnectionDoctorStage,
63};
64pub use credential::{
65    ActiveOperationalCredential, CredentialActivationError, CredentialActivationPlan, CredentialFuture,
66    CredentialMaterial, CredentialMaterialStoreError, CredentialProvider, CredentialProviderError,
67    EphemeralCredentialDelivery, EphemeralDeliveryFuture, FileCredentialProvider, OperationalCredentialMaterialStore,
68    PendingOperationalCredential, SecretBytes, SecretStoreFuture, StoredCredentialTransition,
69};
70pub use credential_rotation::{
71    AtomicFileCredentialMaterialStore, CREDENTIAL_ROTATION_FORMAT_VERSION, CredentialRotationError,
72    CredentialRotationIntent, CredentialRotationState, CredentialRotationTransition, RecoverableServiceCredentialFile,
73    StagedCredential, StagedServiceCredentialFile, credential_file_reference,
74};
75pub use development_workflows::{
76    DEVELOPMENT_MATERIALIZE_FORMAT_VERSION, DEVELOPMENT_PKI_SUCCESSOR_FORMAT_VERSION,
77    DEVELOPMENT_RECONCILE_FORMAT_VERSION, DevelopmentMaterializeArtifact, DevelopmentMaterializeIntent,
78    DevelopmentMaterializePrivatePlan, DevelopmentMaterializeState, DevelopmentMaterializeTransition,
79    DevelopmentPkiSuccessorArtifact, DevelopmentPkiSuccessorIntent, DevelopmentPkiSuccessorOperation,
80    DevelopmentPkiSuccessorPrivatePlan, DevelopmentPkiSuccessorState, DevelopmentPkiSuccessorTransition,
81    DevelopmentReconcileIntent, DevelopmentReconcileRoleTarget, DevelopmentReconcileState,
82    DevelopmentReconcileTerminalOutcome, DevelopmentReconcileTransition,
83};
84pub use exact_workflows::{
85    AppendExactItemResultV1, AppendExactRequestV1, AppendExactResultV1, DEFAULT_EXACT_WORKFLOW_STORE_CONFLICT_LIMIT,
86    DocumentMutationExactResultV1, EXACT_MUTATION_FORMAT_VERSION, ExactExecutionV2, ExactMutationKindV1,
87    ExactMutationOutcomeV1, ExactWorkflowClock, ExactWorkflowError, ExactWorkflowOptions, ExactWorkflowPhaseV2,
88    ExactWorkflowRecoveryStore, ExactWorkflowRecoveryV2, ExactWorkflowStoreError, ExactWorkflowStoreFuture,
89    FilesystemExactWorkflowRecoveryStore, ReconcileIndexExactResultV1, create_index_action_kind,
90};
91pub use generated::{RUST_CLIENT_METHOD_COUNT, request_command};
92pub use index_change::{IndexChangeExecution, IndexChangeRecovery, IndexChangeRecoveryError};
93pub use lodestone_proto::{
94    COLLECTION_AUTHORITY_OBSERVATION_FORMAT_VERSION, COLLECTION_AUTHORITY_OBSERVATION_REQUEST_FORMAT_VERSION,
95    COLLECTION_RETIREMENT_RECEIPT_FORMAT_VERSION, COLLECTION_RETIREMENT_REQUEST_FORMAT_VERSION,
96    COLLECTION_RETIREMENT_STATUS_FORMAT_VERSION, ClusterControlActionV3, ClusterControlCredentialKindV1,
97    ClusterControlResponseDispositionV3, CollectionAuthorityObservationContractError,
98    CollectionAuthorityObservationRequestV1, CollectionAuthorityObservationStateV1, CollectionAuthorityObservationV1,
99    CollectionId, CollectionRetirementBlockerKindV1, CollectionRetirementBlockerV1, CollectionRetirementChildSummaryV1,
100    CollectionRetirementClosurePolicyV1, CollectionRetirementContractError, CollectionRetirementCursorV1,
101    CollectionRetirementOutcomeV1, CollectionRetirementOwnerV1, CollectionRetirementReceiptV1,
102    CollectionRetirementRequestV1, CollectionSecurityGeneration, LogicalMillis, RecoveryEra,
103};
104pub use lodestone_wire::*;
105pub use observability_ingest::{
106    MAX_OBSERVABILITY_INGEST_MESSAGE_BYTES, ObservabilityContentEncodingV1, ObservabilityIngestDispositionV1,
107    ObservabilityIngestEndpointV1, ObservabilityIngestErrorV1, ObservabilityIngestModeV1,
108    ObservabilityIngestProtocolV1, ObservabilityIngestReceiptV1, ObservabilityIngestRequestV1,
109    ObservabilityIngestResponseV1,
110};
111pub use opensearch_compatibility::{
112    MAX_OPENSEARCH_COMPATIBILITY_HEADER_BYTES, MAX_OPENSEARCH_COMPATIBILITY_HEADERS,
113    MAX_OPENSEARCH_COMPATIBILITY_REQUEST_BYTES, MAX_OPENSEARCH_COMPATIBILITY_RESPONSE_BYTES,
114    OpenSearchCompatibilityEffectV1, OpenSearchCompatibilityEndpointV1, OpenSearchCompatibilityErrorV1,
115    OpenSearchCompatibilityExecutorV1, OpenSearchCompatibilityHeaderV1, OpenSearchCompatibilityMethodV1,
116    OpenSearchCompatibilityRequestV1, OpenSearchCompatibilityResponseV1,
117};
118pub use operation_waiter::{OperationWaitError, OperationWaitOptions, OperationWaitOutcome};
119pub use pager::{
120    AliasPager, AuditEventsPager, AuditExportPager, ComponentTemplatePager, DataStreamPager, IndexPager,
121    IndexTemplatePager, IngestPipelinePager, LifecyclePolicyPager, MaintenancePager, OperationsPager, PagerError,
122    SearchPager, ServiceCredentialsPager, UsagePager,
123};
124pub use portability::{
125    CollectionExportExecutionV1, CollectionExportRetirementExecutionV1, CollectionRestoreExecutionV1,
126    CollectionStandbyActivationExecutionV1, CollectionStandbyAdmissionExecutionV1, CollectionTransferExportExecutionV1,
127    CollectionTransferRestoreExecutionV1, IndexExportExecutionV1, IndexImportExecutionV1,
128    PORTABILITY_WORKFLOW_FORMAT_VERSION, PortabilityWorkflowError,
129};
130pub use provisioning::{
131    PROVISION_RETAINED_APPEND_FORMAT_VERSION, ProvisionCatalogPreparation, ProvisionRetainedAppendIntent,
132    ProvisionRetainedAppendState, ProvisionRetainedAppendTransition, ProvisionRolePreparation,
133    RoleAppendApplyResolution, RoleAppendAttemptClosure, profile_sha256, provision_definition_sha256,
134};
135pub use secure_publication::{
136    PublishedFileIdentity, SecureCreateNewFilePublisher, SecurePrivateDirectoryTree, SecurePublicationError,
137};
138pub use state::{AbsoluteExpiry, StateActionId, StateIndex, StateWriteOutcome};
139pub use subscription::{Subscription, SubscriptionCheckpoint, SubscriptionError};
140pub use tooling::{ToolPackError, describe_tool_operation, load_tool_pack};
141pub use transport::{
142    CallCancellation, CallOptions, CellTransport, CellTransportMetricsSnapshot, Client, ClientCallDiagnosticFailure,
143    ClientCallDiagnosticResult, ClientError, CollectionSession, MAX_VERIFIED_SESSION_METADATA, ProfileVerification,
144    SubmissionDisposition, TransportErrorKind, raw_json_text,
145};
146pub use workflow_journal::{
147    LocalOperatorWorkflowKind, MAX_WORKFLOW_JOURNAL_INTENT_BYTES, MAX_WORKFLOW_JOURNAL_RECORD_BYTES,
148    MAX_WORKFLOW_JOURNAL_RECORDS, WORKFLOW_JOURNAL_FORMAT_VERSION, WorkflowJournal, WorkflowJournalError,
149    WorkflowJournalIntent, WorkflowJournalRecordReceipt, WorkflowJournalReplay, WorkflowJournalTransition,
150    WorkflowTransactionId,
151};
152
153/// Explicit raw generated command surface. Prefer the recovery-aware workflow
154/// helpers re-exported at the crate root for mutations, paging, credentials,
155/// connection verification, and operation waiting.
156pub mod low_level {
157    pub use crate::{CallOptions, Client};
158    pub use lodestone_wire::*;
159}