1#![cfg_attr(docsrs, feature(doc_cfg))]
67
68mod caller;
69mod channel;
70mod client;
71mod error;
72mod intercept;
73mod lock;
74mod namespace;
75mod openssl_tls;
76mod rpc;
77mod vec;
78
79pub use crate::channel::{BalancedChannelBuilder, Channel};
80pub use crate::client::{Client, ConnectOptions};
81pub use crate::error::Error;
82pub use crate::namespace::{KvClientPrefix, LeaseClientPrefix};
83pub use crate::rpc::auth::{
84 AuthClient, AuthDisableResponse, AuthEnableResponse, AuthenticateResponse, Permission,
85 PermissionType, RoleAddResponse, RoleDeleteResponse, RoleGetResponse,
86 RoleGrantPermissionResponse, RoleListResponse, RoleRevokePermissionOptions,
87 RoleRevokePermissionResponse, UserAddOptions, UserAddResponse, UserChangePasswordResponse,
88 UserDeleteResponse, UserGetResponse, UserGrantRoleResponse, UserListResponse,
89 UserRevokeRoleResponse,
90};
91pub use crate::rpc::cluster::{
92 ClusterClient, Member, MemberAddOptions, MemberAddResponse, MemberListResponse,
93 MemberPromoteResponse, MemberRemoveResponse, MemberUpdateResponse,
94};
95pub use crate::rpc::election::{
96 CampaignResponse, ElectionClient, LeaderKey, LeaderResponse, ObserveStream, ProclaimOptions,
97 ProclaimResponse, ResignOptions, ResignResponse,
98};
99pub use crate::rpc::kv::{
100 CompactionOptions, CompactionResponse, Compare, CompareOp, DeleteOptions, DeleteResponse,
101 GetOptions, GetResponse, KvClient, PutOptions, PutResponse, SortOrder, SortTarget, Txn, TxnOp,
102 TxnOpResponse, TxnResponse,
103};
104pub use crate::rpc::lease::{
105 LeaseClient, LeaseGrantOptions, LeaseGrantResponse, LeaseKeepAliveResponse,
106 LeaseKeepAliveStream, LeaseKeeper, LeaseLeasesResponse, LeaseRevokeResponse, LeaseStatus,
107 LeaseTimeToLiveOptions, LeaseTimeToLiveResponse,
108};
109pub use crate::rpc::lock::{LockClient, LockOptions, LockResponse, UnlockResponse};
110pub use crate::rpc::maintenance::{
111 AlarmAction, AlarmMember, AlarmOptions, AlarmResponse, AlarmType, DefragmentResponse,
112 HashKvResponse, HashResponse, MaintenanceClient, MoveLeaderResponse, SnapshotResponse,
113 SnapshotStreaming, StatusResponse,
114};
115pub use crate::rpc::watch::{
116 Event, EventType, WatchClient, WatchFilterType, WatchOptions, WatchRequestSender,
117 WatchResponse, WatchResponseStream, WatchStream,
118};
119pub use crate::rpc::{KeyValue, ResponseHeader};
120
121#[cfg(feature = "_tls")]
122#[cfg_attr(docsrs, doc(cfg(any(feature = "tls-ring", feature = "tls-aws-lc"))))]
123pub use tonic::transport::{Certificate, ClientTlsConfig as TlsOptions, Identity};
124
125#[cfg(feature = "tls-openssl")]
126#[cfg_attr(docsrs, doc(cfg(feature = "tls-openssl")))]
127pub use crate::openssl_tls::{OpenSslClientConfig, OpenSslResult, SslConnectorBuilder};
128
129#[cfg(feature = "pub-response-field")]
131#[cfg_attr(docsrs, doc(cfg(feature = "pub-response-field")))]
132pub mod proto {
133 pub use crate::rpc::pb::etcdserverpb::compare::{
134 CompareTarget as PbCompareTarget, TargetUnion as PbTargetUnion,
135 };
136 pub use crate::rpc::pb::etcdserverpb::AlarmMember as PbAlarmMember;
137 pub use crate::rpc::pb::etcdserverpb::{
138 request_op::Request as PbTxnOpRequest, response_op::Response as PbTxnOpResponse,
139 AlarmResponse as PbAlarmResponse, AuthDisableResponse as PbAuthDisableResponse,
140 AuthEnableResponse as PbAuthEnableResponse, AuthRoleAddResponse as PbAuthRoleAddResponse,
141 AuthRoleDeleteResponse as PbAuthRoleDeleteResponse,
142 AuthRoleGetResponse as PbAuthRoleGetResponse,
143 AuthRoleGrantPermissionResponse as PbAuthRoleGrantPermissionResponse,
144 AuthRoleListResponse as PbAuthRoleListResponse,
145 AuthRoleRevokePermissionResponse as PbAuthRoleRevokePermissionResponse,
146 AuthUserAddResponse as PbAuthUserAddResponse,
147 AuthUserChangePasswordResponse as PbAuthUserChangePasswordResponse,
148 AuthUserDeleteResponse as PbAuthUserDeleteResponse,
149 AuthUserGetResponse as PbAuthUserGetResponse,
150 AuthUserGrantRoleResponse as PbAuthUserGrantRoleResponse,
151 AuthUserListResponse as PbAuthUserListResponse,
152 AuthUserRevokeRoleResponse as PbAuthUserRevokeRoleResponse,
153 AuthenticateResponse as PbAuthenticateResponse, CompactionResponse as PbCompactionResponse,
154 Compare as PbCompare, DefragmentResponse as PbDefragmentResponse,
155 DeleteRangeResponse as PbDeleteResponse, HashKvResponse as PbHashKvResponse,
156 HashResponse as PbHashResponse, LeaseGrantResponse as PbLeaseGrantResponse,
157 LeaseKeepAliveResponse as PbLeaseKeepAliveResponse,
158 LeaseLeasesResponse as PbLeaseLeasesResponse, LeaseRevokeResponse as PbLeaseRevokeResponse,
159 LeaseStatus as PbLeaseStatus, LeaseTimeToLiveResponse as PbLeaseTimeToLiveResponse,
160 Member as PbMember, MemberAddResponse as PbMemberAddResponse,
161 MemberListResponse as PbMemberListResponse,
162 MemberPromoteResponse as PbMemberPromoteResponse,
163 MemberRemoveResponse as PbMemberRemoveResponse,
164 MemberUpdateResponse as PbMemberUpdateResponse, MoveLeaderResponse as PbMoveLeaderResponse,
165 PutResponse as PbPutResponse, RangeResponse as PbRangeResponse,
166 RequestOp as PbTxnRequestOp, ResponseHeader as PbResponseHeader,
167 ResponseOp as PbResponseOp, SnapshotResponse as PbSnapshotResponse,
168 StatusResponse as PbStatusResponse, TxnRequest as PbTxnRequest,
169 TxnResponse as PbTxnResponse, WatchResponse as PbWatchResponse,
170 };
171 pub use crate::rpc::pb::mvccpb::Event as PbEvent;
172 pub use crate::rpc::pb::mvccpb::KeyValue as PbKeyValue;
173 pub use crate::rpc::pb::v3electionpb::{
174 CampaignResponse as PbCampaignResponse, LeaderKey as PbLeaderKey,
175 LeaderResponse as PbLeaderResponse, ProclaimResponse as PbProclaimResponse,
176 ResignResponse as PbResignResponse,
177 };
178 pub use crate::rpc::pb::v3lockpb::{
179 LockResponse as PbLockResponse, UnlockResponse as PbUnlockResponse,
180 };
181
182 #[cfg(feature = "build-server")]
183 pub use crate::rpc::pb::etcdserverpb::{
184 auth_server::{Auth as PbAuthService, AuthServer as PbAuthServer},
185 cluster_server::{Cluster as PbClusterService, ClusterServer as PbClusterServer},
186 kv_server::{Kv as PbKvService, KvServer as PbKvServer},
187 lease_server::{Lease as PbLeaseService, LeaseServer as PbLeaseServer},
188 maintenance_server::{
189 Maintenance as PbMaintenanceService, MaintenanceServer as PbMaintenanceServer,
190 },
191 watch_server::{Watch as PbWatchService, WatchServer as PbWatchServer},
192 };
193
194 #[cfg(feature = "build-server")]
195 pub use crate::rpc::pb::etcdserverpb::{
196 AlarmRequest as PbAlarmRequest, AuthDisableRequest as PbAuthDisableRequest,
197 AuthEnableRequest as PbAuthEnableRequest, AuthRoleAddRequest as PbAuthRoleAddRequest,
198 AuthRoleDeleteRequest as PbAuthRoleDeleteRequest,
199 AuthRoleGetRequest as PbAuthRoleGetRequest,
200 AuthRoleGrantPermissionRequest as PbAuthRoleGrantPermissionRequest,
201 AuthRoleListRequest as PbAuthRoleListRequest,
202 AuthRoleRevokePermissionRequest as PbAuthRoleRevokePermissionRequest,
203 AuthUserAddRequest as PbAuthUserAddRequest,
204 AuthUserChangePasswordRequest as PbAuthUserChangePasswordRequest,
205 AuthUserDeleteRequest as PbAuthUserDeleteRequest,
206 AuthUserGetRequest as PbAuthUserGetRequest,
207 AuthUserGrantRoleRequest as PbAuthUserGrantRoleRequest,
208 AuthUserListRequest as PbAuthUserListRequest,
209 AuthUserRevokeRoleRequest as PbAuthUserRevokeRoleRequest,
210 AuthenticateRequest as PbAuthenticateRequest, CompactionRequest as PbCompactionRequest,
211 DefragmentRequest as PbDefragmentRequest, DeleteRangeRequest as PbDeleteRequest,
212 HashKvRequest as PbHashKvRequest, HashRequest as PbHashRequest,
213 LeaseGrantRequest as PbLeaseGrantRequest, LeaseKeepAliveRequest as PbLeaseKeepAliveRequest,
214 LeaseLeasesRequest as PbLeaseLeasesRequest, LeaseRevokeRequest as PbLeaseRevokeRequest,
215 LeaseTimeToLiveRequest as PbLeaseTimeToLiveRequest, MemberAddRequest as PbMemberAddRequest,
216 MemberListRequest as PbMemberListRequest, MemberPromoteRequest as PbMemberPromoteRequest,
217 MemberRemoveRequest as PbMemberRemoveRequest, MemberUpdateRequest as PbMemberUpdateRequest,
218 MoveLeaderRequest as PbMoveLeaderRequest, PutRequest as PbPutRequest,
219 RangeRequest as PbRangeRequest, SnapshotRequest as PbSnapshotRequest,
220 StatusRequest as PbStatusRequest, WatchRequest as PbWatchRequest,
221 };
222
223 #[cfg(feature = "build-server")]
224 pub use crate::rpc::pb::etcdserverpb::watch_request::RequestUnion as PbWatchRequestUnion;
225}