#![cfg_attr(docsrs, feature(doc_cfg))]
mod auth;
mod channel;
mod client;
mod error;
mod namespace;
mod openssl_tls;
mod rpc;
mod vec;
pub use crate::client::{Client, ConnectOptions};
pub use crate::error::Error;
pub use crate::namespace::{KvClientPrefix, LeaseClientPrefix};
pub use crate::rpc::auth::{
AuthClient, AuthDisableResponse, AuthEnableResponse, AuthenticateResponse, Permission,
PermissionType, RoleAddResponse, RoleDeleteResponse, RoleGetResponse,
RoleGrantPermissionResponse, RoleListResponse, RoleRevokePermissionOptions,
RoleRevokePermissionResponse, UserAddOptions, UserAddResponse, UserChangePasswordResponse,
UserDeleteResponse, UserGetResponse, UserGrantRoleResponse, UserListResponse,
UserRevokeRoleResponse,
};
pub use crate::rpc::cluster::{
ClusterClient, Member, MemberAddOptions, MemberAddResponse, MemberListResponse,
MemberPromoteResponse, MemberRemoveResponse, MemberUpdateResponse,
};
pub use crate::rpc::election::{
CampaignResponse, ElectionClient, LeaderKey, LeaderResponse, ObserveStream, ProclaimOptions,
ProclaimResponse, ResignOptions, ResignResponse,
};
pub use crate::rpc::kv::{
CompactionOptions, CompactionResponse, Compare, CompareOp, DeleteOptions, DeleteResponse,
GetOptions, GetResponse, KvClient, PutOptions, PutResponse, SortOrder, SortTarget, Txn, TxnOp,
TxnOpResponse, TxnResponse,
};
pub use crate::rpc::lease::{
LeaseClient, LeaseGrantOptions, LeaseGrantResponse, LeaseKeepAliveResponse,
LeaseKeepAliveStream, LeaseKeeper, LeaseLeasesResponse, LeaseRevokeResponse, LeaseStatus,
LeaseTimeToLiveOptions, LeaseTimeToLiveResponse,
};
pub use crate::rpc::lock::{LockClient, LockOptions, LockResponse, UnlockResponse};
pub use crate::rpc::maintenance::{
AlarmAction, AlarmMember, AlarmOptions, AlarmResponse, AlarmType, DefragmentResponse,
HashKvResponse, HashResponse, MaintenanceClient, MoveLeaderResponse, SnapshotResponse,
SnapshotStreaming, StatusResponse,
};
pub use crate::rpc::watch::{
Event, EventType, WatchClient, WatchFilterType, WatchOptions, WatchResponse, WatchStream,
Watcher,
};
pub use crate::rpc::{KeyValue, ResponseHeader};
#[cfg(feature = "tls")]
#[cfg_attr(docsrs, doc(cfg(feature = "tls")))]
pub use tonic::transport::{Certificate, ClientTlsConfig as TlsOptions, Identity};
#[cfg(feature = "tls-openssl")]
#[cfg_attr(docsrs, doc(cfg(feature = "tls-openssl")))]
pub use crate::openssl_tls::{OpenSslClientConfig, OpenSslResult, SslConnectorBuilder};
#[cfg(feature = "pub-response-field")]
#[cfg_attr(docsrs, doc(cfg(feature = "pub-response-field")))]
pub mod proto {
pub use crate::rpc::pb::etcdserverpb::AlarmMember as PbAlarmMember;
pub use crate::rpc::pb::etcdserverpb::{
AlarmResponse as PbAlarmResponse, AuthDisableResponse as PbAuthDisableResponse,
AuthEnableResponse as PbAuthEnableResponse, AuthRoleAddResponse as PbAuthRoleAddResponse,
AuthRoleDeleteResponse as PbAuthRoleDeleteResponse,
AuthRoleGetResponse as PbAuthRoleGetResponse,
AuthRoleGrantPermissionResponse as PbAuthRoleGrantPermissionResponse,
AuthRoleListResponse as PbAuthRoleListResponse,
AuthRoleRevokePermissionResponse as PbAuthRoleRevokePermissionResponse,
AuthUserAddResponse as PbAuthUserAddResponse,
AuthUserChangePasswordResponse as PbAuthUserChangePasswordResponse,
AuthUserDeleteResponse as PbAuthUserDeleteResponse,
AuthUserGetResponse as PbAuthUserGetResponse,
AuthUserGrantRoleResponse as PbAuthUserGrantRoleResponse,
AuthUserListResponse as PbAuthUserListResponse,
AuthUserRevokeRoleResponse as PbAuthUserRevokeRoleResponse,
AuthenticateResponse as PbAuthenticateResponse, CompactionResponse as PbCompactionResponse,
Compare as PbCompare, DefragmentResponse as PbDefragmentResponse,
DeleteRangeResponse as PbDeleteResponse, HashKvResponse as PbHashKvResponse,
HashResponse as PbHashResponse, LeaseGrantResponse as PbLeaseGrantResponse,
LeaseKeepAliveResponse as PbLeaseKeepAliveResponse,
LeaseLeasesResponse as PbLeaseLeasesResponse, LeaseRevokeResponse as PbLeaseRevokeResponse,
LeaseStatus as PbLeaseStatus, LeaseTimeToLiveResponse as PbLeaseTimeToLiveResponse,
Member as PbMember, MemberAddResponse as PbMemberAddResponse,
MemberListResponse as PbMemberListResponse,
MemberPromoteResponse as PbMemberPromoteResponse,
MemberRemoveResponse as PbMemberRemoveResponse,
MemberUpdateResponse as PbMemberUpdateResponse, MoveLeaderResponse as PbMoveLeaderResponse,
PutResponse as PbPutResponse, RangeResponse as PbRangeResponse,
ResponseHeader as PbResponseHeader, SnapshotResponse as PbSnapshotResponse,
StatusResponse as PbStatusResponse, TxnResponse as PbTxnResponse,
WatchResponse as PbWatchResponse,
};
pub use crate::rpc::pb::mvccpb::Event as PbEvent;
pub use crate::rpc::pb::mvccpb::KeyValue as PbKeyValue;
pub use crate::rpc::pb::v3electionpb::{
CampaignResponse as PbCampaignResponse, LeaderKey as PbLeaderKey,
LeaderResponse as PbLeaderResponse, ProclaimResponse as PbProclaimResponse,
ResignResponse as PbResignResponse,
};
pub use crate::rpc::pb::v3lockpb::{
LockResponse as PbLockResponse, UnlockResponse as PbUnlockResponse,
};
}