pub enum EventName {
Show 63 variants
ObjectAccessedGet = 1,
ObjectAccessedGetRetention = 2,
ObjectAccessedGetLegalHold = 3,
ObjectAccessedHead = 4,
ObjectAccessedAttributes = 5,
ObjectCreatedCompleteMultipartUpload = 6,
ObjectCreatedCopy = 7,
ObjectCreatedPost = 8,
ObjectCreatedPut = 9,
ObjectCreatedPutRetention = 10,
ObjectCreatedPutLegalHold = 11,
ObjectTaggingPut = 12,
ObjectTaggingDelete = 13,
ObjectRemovedDelete = 14,
ObjectRemovedDeleteMarkerCreated = 15,
ObjectRemovedDeleteAllVersions = 16,
ObjectRemovedNoOP = 17,
BucketCreated = 18,
BucketRemoved = 19,
ObjectReplicationFailed = 20,
ObjectReplicationComplete = 21,
ObjectReplicationMissedThreshold = 22,
ObjectReplicationReplicatedAfterThreshold = 23,
ObjectReplicationNotTracked = 24,
ObjectRestorePost = 25,
ObjectRestoreCompleted = 26,
ObjectTransitionFailed = 27,
ObjectTransitionComplete = 28,
ScannerManyVersions = 29,
ScannerLargeVersions = 30,
ScannerBigPrefix = 31,
LifecycleDelMarkerExpirationDelete = 32,
ObjectAclPut = 33,
LifecycleExpirationDelete = 34,
LifecycleExpirationDeleteMarkerCreated = 35,
LifecycleTransition = 36,
IntelligentTiering = 37,
ObjectAccessedAll = 38,
ObjectCreatedAll = 39,
ObjectRemovedAll = 40,
ObjectReplicationAll = 41,
ObjectRestoreAll = 42,
ObjectTaggingAll = 43,
LifecycleExpirationAll = 44,
ObjectTransitionAll = 45,
ObjectScannerAll = 46,
Everything = 47,
ObjectRemovedAbortMultipartUpload = 48,
ObjectCreatedCreateMultipartUpload = 49,
ObjectRemovedDeleteObjects = 50,
KmsKeyCreated = 51,
KmsKeyRotated = 52,
KmsKeyEnabled = 53,
KmsKeyDisabled = 54,
KmsKeyDeletionScheduled = 55,
KmsKeyDeletionCancelled = 56,
KmsKeyDeleted = 57,
KmsKeyAccessed = 58,
KmsServiceConfigured = 59,
KmsServiceStarted = 60,
KmsServiceStopped = 61,
IamIdentityCredentialChanged = 62,
IamIdentityAuthChallenge = 63,
}Expand description
Represents the type of event that occurs on the object. Based on AWS S3 event type and includes RustFS extension.
Variants§
ObjectAccessedGet = 1
ObjectAccessedGetRetention = 2
ObjectAccessedGetLegalHold = 3
ObjectAccessedHead = 4
ObjectAccessedAttributes = 5
ObjectCreatedCompleteMultipartUpload = 6
ObjectCreatedCopy = 7
ObjectCreatedPost = 8
ObjectCreatedPut = 9
ObjectCreatedPutRetention = 10
ObjectCreatedPutLegalHold = 11
ObjectTaggingPut = 12
ObjectTaggingDelete = 13
ObjectRemovedDelete = 14
ObjectRemovedDeleteMarkerCreated = 15
ObjectRemovedDeleteAllVersions = 16
ObjectRemovedNoOP = 17
BucketCreated = 18
BucketRemoved = 19
ObjectReplicationFailed = 20
ObjectReplicationComplete = 21
ObjectReplicationMissedThreshold = 22
ObjectReplicationReplicatedAfterThreshold = 23
ObjectReplicationNotTracked = 24
ObjectRestorePost = 25
ObjectRestoreCompleted = 26
ObjectTransitionFailed = 27
ObjectTransitionComplete = 28
ScannerManyVersions = 29
ScannerLargeVersions = 30
ScannerBigPrefix = 31
LifecycleDelMarkerExpirationDelete = 32
ObjectAclPut = 33
LifecycleExpirationDelete = 34
LifecycleExpirationDeleteMarkerCreated = 35
LifecycleTransition = 36
IntelligentTiering = 37
ObjectAccessedAll = 38
ObjectCreatedAll = 39
ObjectRemovedAll = 40
ObjectReplicationAll = 41
ObjectRestoreAll = 42
ObjectTaggingAll = 43
LifecycleExpirationAll = 44
ObjectTransitionAll = 45
ObjectScannerAll = 46
Everything = 47
ObjectRemovedAbortMultipartUpload = 48
ObjectCreatedCreateMultipartUpload = 49
ObjectRemovedDeleteObjects = 50
KmsKeyCreated = 51
KmsKeyRotated = 52
KmsKeyEnabled = 53
KmsKeyDisabled = 54
KmsKeyDeletionScheduled = 55
KmsKeyDeletionCancelled = 56
KmsKeyDeleted = 57
KmsKeyAccessed = 58
KmsServiceConfigured = 59
KmsServiceStarted = 60
KmsServiceStopped = 61
IamIdentityCredentialChanged = 62
IamIdentityAuthChallenge = 63
Implementations§
Source§impl EventName
impl EventName
Sourcepub fn parse(s: &str) -> Result<EventName, ParseEventNameError>
pub fn parse(s: &str) -> Result<EventName, ParseEventNameError>
The parsed string is EventName.
Sourcepub fn try_from_event_str(s: &str) -> Result<EventName, ParseEventNameError>
pub fn try_from_event_str(s: &str) -> Result<EventName, ParseEventNameError>
Parses an event string into an EventName with explicit error handling.
Sourcepub fn expand(&self) -> Vec<EventName>
pub fn expand(&self) -> Vec<EventName>
Returns the extended value of the abbreviation event type.
Sourcepub fn mask(&self) -> u64
pub fn mask(&self) -> u64
Returns the mask of type. The compound “All” type will be expanded.
§Bit budget
A leaf event’s mask is 1 << (discriminant - 1), so the enum can hold at
most 64 variants in total — compound “All” variants included, because
they consume discriminants even though they own no bit of their own and
so push every later leaf further up the range.
The last variant is currently KmsServiceStopped at discriminant
LAST_EVENT_NAME_VALUE, leaving 64 - LAST_EVENT_NAME_VALUE free slots.
Before adding an event, check that number; if the budget is gone, widen
the mask beyond u64 rather than reusing a bit.
Three guards back this up: the const assertion next to
LAST_EVENT_NAME_VALUE fails the build once that discriminant passes 64;
test_event_name_discriminants_are_dense_and_fully_listed fails if the
anchor is left stale or a variant goes unlisted; and
test_every_event_mask_is_nonzero_and_leaf_bits_are_unique fails on the
bit collision a wrapped shift produces in release builds.
Sourcepub fn is_removed(&self) -> bool
pub fn is_removed(&self) -> bool
Returns true for every object-removal event variant.
Covers all ObjectRemoved* leaf events, including the internal
(metrics-only) ones, so callers can categorize removals without
enumerating each variant by hand.
Sourcepub fn is_kms(&self) -> bool
pub fn is_kms(&self) -> bool
Returns true for KMS management-plane events.
These are audit-only: they are never emitted through the bucket
notification pipeline, and no s3: event selector expands to them.
Sourcepub fn is_iam(&self) -> bool
pub fn is_iam(&self) -> bool
Whether this is an IAM identity management-plane event.
Mirrors Self::is_kms: these reach the audit sink only, so nothing in
the bucket notification path should ever select them.
Trait Implementations§
impl Copy for EventName
Source§impl<'de> Deserialize<'de> for EventName
impl<'de> Deserialize<'de> for EventName
Source§fn deserialize<D>(
deserializer: D,
) -> Result<EventName, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<EventName, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
impl Eq for EventName
Source§impl Serialize for EventName
impl Serialize for EventName
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl StructuralPartialEq for EventName
Auto Trait Implementations§
impl Freeze for EventName
impl RefUnwindSafe for EventName
impl Send for EventName
impl Sync for EventName
impl Unpin for EventName
impl UnsafeUnpin for EventName
impl UnwindSafe for EventName
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request