#[non_exhaustive]pub enum EndpointKind {
IngestDoc,
IngestBulk,
Search,
MultiSearch,
Count,
GetById,
MultiGet,
DeleteById,
DeleteByQuery,
Cursor,
Admin,
Unknown,
}Expand description
How a classified request must be handled by the routing/tenancy layer.
#[non_exhaustive] because the supported matrix grows over time and adding
an endpoint class must not be a breaking change (docs/08 §7).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
IngestDoc
Single-document ingest (_doc, _create, _update): inject/construct,
single target.
IngestBulk
Bulk ingest (_bulk): demux by partition, re-interleave items[].
Search
Search/read (_search): partition filter + response field strip,
single target.
MultiSearch
Multi-search (_msearch): per-search partition filter + hit strip,
demux by target, re-interleave responses[], the search counterpart of
_bulk.
Count
Count (_count): same partition filter as search, but returns a count
rather than hits, so no response field strip.
GetById
Read by id (GET _doc/{id}): logical→physical id transform.
MultiGet
Multi-get (_mget): per-doc partition resolve, demux by target,
re-interleave docs[], the read counterpart of _bulk.
DeleteById
Delete by id: logical→physical id transform.
DeleteByQuery
Delete by query (_delete_by_query): in async fan-out mode the proxy
runs the partition-scoped query, then enqueues a concrete delete per
match (docs/04 §9). No synchronous implementation, rejected otherwise.
Cursor
Cursor lifecycle (scroll, PIT): affinity pinning.
Admin
Administrative endpoints (_cat, _cluster, …): pass-through allow-list
or reject; no tenancy semantics.
Unknown
Unmatched endpoint: rejected by default, pass-through if configured.
Implementations§
Source§impl EndpointKind
impl EndpointKind
Sourcepub fn as_str(self) -> &'static str
pub fn as_str(self) -> &'static str
A stable, value-free name for this class, used in introspection readouts
(e.g. a control-plane directive’s endpoint target). Matches the variant
name so it round-trips with a parser built from the same list.
Sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
The inverse of EndpointKind::as_str: parses a class name back, or
None if it is not a known class. Lets a control-plane directive target an
endpoint over the wire (round-tripping with introspection).
Sourcepub fn is_tenancy_aware(self) -> bool
pub fn is_tenancy_aware(self) -> bool
Whether this class participates in tenancy rewriting (inject/filter/strip
or id mapping). Used to decide whether a crate::ids::PartitionId must
be resolvable for the request.
Trait Implementations§
Source§impl Clone for EndpointKind
impl Clone for EndpointKind
Source§fn clone(&self) -> EndpointKind
fn clone(&self) -> EndpointKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for EndpointKind
Source§impl Debug for EndpointKind
impl Debug for EndpointKind
impl Eq for EndpointKind
Source§impl Hash for EndpointKind
impl Hash for EndpointKind
Source§impl PartialEq for EndpointKind
impl PartialEq for EndpointKind
Source§fn eq(&self, other: &EndpointKind) -> bool
fn eq(&self, other: &EndpointKind) -> bool
self and other values to be equal, and is used by ==.