#[non_exhaustive]
#[derive(
::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
)]
pub enum Event {
#[allow(missing_docs)] S3IntelligentTiering,
#[allow(missing_docs)] S3LifecycleExpiration,
#[allow(missing_docs)] S3LifecycleExpirationDelete,
#[allow(missing_docs)] S3LifecycleExpirationDeleteMarkerCreated,
#[allow(missing_docs)] S3LifecycleTransition,
#[allow(missing_docs)] S3ObjectAclPut,
#[allow(missing_docs)] S3ObjectCreated,
#[allow(missing_docs)] S3ObjectCreatedCompleteMultipartUpload,
#[allow(missing_docs)] S3ObjectCreatedCopy,
#[allow(missing_docs)] S3ObjectCreatedPost,
#[allow(missing_docs)] S3ObjectCreatedPut,
#[allow(missing_docs)] S3ObjectRemoved,
#[allow(missing_docs)] S3ObjectRemovedDelete,
#[allow(missing_docs)] S3ObjectRemovedDeleteMarkerCreated,
#[allow(missing_docs)] S3ObjectRestore,
#[allow(missing_docs)] S3ObjectRestoreCompleted,
#[allow(missing_docs)] S3ObjectRestoreDelete,
#[allow(missing_docs)] S3ObjectRestorePost,
#[allow(missing_docs)] S3ObjectTagging,
#[allow(missing_docs)] S3ObjectTaggingDelete,
#[allow(missing_docs)] S3ObjectTaggingPut,
#[allow(missing_docs)] S3ReducedRedundancyLostObject,
#[allow(missing_docs)] S3Replication,
#[allow(missing_docs)] S3ReplicationOperationFailedReplication,
#[allow(missing_docs)] S3ReplicationOperationMissedThreshold,
#[allow(missing_docs)] S3ReplicationOperationNotTracked,
#[allow(missing_docs)] S3ReplicationOperationReplicatedAfterThreshold,
#[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
}
impl ::std::convert::From<&str> for Event {
fn from(s: &str) -> Self {
match s {
"s3:IntelligentTiering" => Event::S3IntelligentTiering,
"s3:LifecycleExpiration:*" => Event::S3LifecycleExpiration,
"s3:LifecycleExpiration:Delete" => Event::S3LifecycleExpirationDelete,
"s3:LifecycleExpiration:DeleteMarkerCreated" => Event::S3LifecycleExpirationDeleteMarkerCreated,
"s3:LifecycleTransition" => Event::S3LifecycleTransition,
"s3:ObjectAcl:Put" => Event::S3ObjectAclPut,
"s3:ObjectCreated:*" => Event::S3ObjectCreated,
"s3:ObjectCreated:CompleteMultipartUpload" => Event::S3ObjectCreatedCompleteMultipartUpload,
"s3:ObjectCreated:Copy" => Event::S3ObjectCreatedCopy,
"s3:ObjectCreated:Post" => Event::S3ObjectCreatedPost,
"s3:ObjectCreated:Put" => Event::S3ObjectCreatedPut,
"s3:ObjectRemoved:*" => Event::S3ObjectRemoved,
"s3:ObjectRemoved:Delete" => Event::S3ObjectRemovedDelete,
"s3:ObjectRemoved:DeleteMarkerCreated" => Event::S3ObjectRemovedDeleteMarkerCreated,
"s3:ObjectRestore:*" => Event::S3ObjectRestore,
"s3:ObjectRestore:Completed" => Event::S3ObjectRestoreCompleted,
"s3:ObjectRestore:Delete" => Event::S3ObjectRestoreDelete,
"s3:ObjectRestore:Post" => Event::S3ObjectRestorePost,
"s3:ObjectTagging:*" => Event::S3ObjectTagging,
"s3:ObjectTagging:Delete" => Event::S3ObjectTaggingDelete,
"s3:ObjectTagging:Put" => Event::S3ObjectTaggingPut,
"s3:ReducedRedundancyLostObject" => Event::S3ReducedRedundancyLostObject,
"s3:Replication:*" => Event::S3Replication,
"s3:Replication:OperationFailedReplication" => Event::S3ReplicationOperationFailedReplication,
"s3:Replication:OperationMissedThreshold" => Event::S3ReplicationOperationMissedThreshold,
"s3:Replication:OperationNotTracked" => Event::S3ReplicationOperationNotTracked,
"s3:Replication:OperationReplicatedAfterThreshold" => Event::S3ReplicationOperationReplicatedAfterThreshold,
other => Event::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
}
}
}
impl ::std::str::FromStr for Event {
type Err = ::std::convert::Infallible;
fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
::std::result::Result::Ok(Event::from(s))
}
}
impl Event {
pub fn as_str(&self) -> &str {
match self {
Event::S3IntelligentTiering => "s3:IntelligentTiering",
Event::S3LifecycleExpiration => "s3:LifecycleExpiration:*",
Event::S3LifecycleExpirationDelete => "s3:LifecycleExpiration:Delete",
Event::S3LifecycleExpirationDeleteMarkerCreated => "s3:LifecycleExpiration:DeleteMarkerCreated",
Event::S3LifecycleTransition => "s3:LifecycleTransition",
Event::S3ObjectAclPut => "s3:ObjectAcl:Put",
Event::S3ObjectCreated => "s3:ObjectCreated:*",
Event::S3ObjectCreatedCompleteMultipartUpload => "s3:ObjectCreated:CompleteMultipartUpload",
Event::S3ObjectCreatedCopy => "s3:ObjectCreated:Copy",
Event::S3ObjectCreatedPost => "s3:ObjectCreated:Post",
Event::S3ObjectCreatedPut => "s3:ObjectCreated:Put",
Event::S3ObjectRemoved => "s3:ObjectRemoved:*",
Event::S3ObjectRemovedDelete => "s3:ObjectRemoved:Delete",
Event::S3ObjectRemovedDeleteMarkerCreated => "s3:ObjectRemoved:DeleteMarkerCreated",
Event::S3ObjectRestore => "s3:ObjectRestore:*",
Event::S3ObjectRestoreCompleted => "s3:ObjectRestore:Completed",
Event::S3ObjectRestoreDelete => "s3:ObjectRestore:Delete",
Event::S3ObjectRestorePost => "s3:ObjectRestore:Post",
Event::S3ObjectTagging => "s3:ObjectTagging:*",
Event::S3ObjectTaggingDelete => "s3:ObjectTagging:Delete",
Event::S3ObjectTaggingPut => "s3:ObjectTagging:Put",
Event::S3ReducedRedundancyLostObject => "s3:ReducedRedundancyLostObject",
Event::S3Replication => "s3:Replication:*",
Event::S3ReplicationOperationFailedReplication => "s3:Replication:OperationFailedReplication",
Event::S3ReplicationOperationMissedThreshold => "s3:Replication:OperationMissedThreshold",
Event::S3ReplicationOperationNotTracked => "s3:Replication:OperationNotTracked",
Event::S3ReplicationOperationReplicatedAfterThreshold => "s3:Replication:OperationReplicatedAfterThreshold",
Event::Unknown(value) => value.as_str(),
}
}
pub const fn values() -> &'static [&'static str] {
&[
"s3:IntelligentTiering",
"s3:LifecycleExpiration:*",
"s3:LifecycleExpiration:Delete",
"s3:LifecycleExpiration:DeleteMarkerCreated",
"s3:LifecycleTransition",
"s3:ObjectAcl:Put",
"s3:ObjectCreated:*",
"s3:ObjectCreated:CompleteMultipartUpload",
"s3:ObjectCreated:Copy",
"s3:ObjectCreated:Post",
"s3:ObjectCreated:Put",
"s3:ObjectRemoved:*",
"s3:ObjectRemoved:Delete",
"s3:ObjectRemoved:DeleteMarkerCreated",
"s3:ObjectRestore:*",
"s3:ObjectRestore:Completed",
"s3:ObjectRestore:Delete",
"s3:ObjectRestore:Post",
"s3:ObjectTagging:*",
"s3:ObjectTagging:Delete",
"s3:ObjectTagging:Put",
"s3:ReducedRedundancyLostObject",
"s3:Replication:*",
"s3:Replication:OperationFailedReplication",
"s3:Replication:OperationMissedThreshold",
"s3:Replication:OperationNotTracked",
"s3:Replication:OperationReplicatedAfterThreshold",
]
}
}
impl ::std::convert::AsRef<str> for Event {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl Event {
pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
match Self::from(value) {
#[allow(deprecated)]
Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
known => Ok(known),
}
}
}
impl ::std::fmt::Display for Event {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
match self {
Event::S3IntelligentTiering => write!(f, "s3:IntelligentTiering"),
Event::S3LifecycleExpiration => write!(f, "s3:LifecycleExpiration:*"),
Event::S3LifecycleExpirationDelete => write!(f, "s3:LifecycleExpiration:Delete"),
Event::S3LifecycleExpirationDeleteMarkerCreated => write!(f, "s3:LifecycleExpiration:DeleteMarkerCreated"),
Event::S3LifecycleTransition => write!(f, "s3:LifecycleTransition"),
Event::S3ObjectAclPut => write!(f, "s3:ObjectAcl:Put"),
Event::S3ObjectCreated => write!(f, "s3:ObjectCreated:*"),
Event::S3ObjectCreatedCompleteMultipartUpload => write!(f, "s3:ObjectCreated:CompleteMultipartUpload"),
Event::S3ObjectCreatedCopy => write!(f, "s3:ObjectCreated:Copy"),
Event::S3ObjectCreatedPost => write!(f, "s3:ObjectCreated:Post"),
Event::S3ObjectCreatedPut => write!(f, "s3:ObjectCreated:Put"),
Event::S3ObjectRemoved => write!(f, "s3:ObjectRemoved:*"),
Event::S3ObjectRemovedDelete => write!(f, "s3:ObjectRemoved:Delete"),
Event::S3ObjectRemovedDeleteMarkerCreated => write!(f, "s3:ObjectRemoved:DeleteMarkerCreated"),
Event::S3ObjectRestore => write!(f, "s3:ObjectRestore:*"),
Event::S3ObjectRestoreCompleted => write!(f, "s3:ObjectRestore:Completed"),
Event::S3ObjectRestoreDelete => write!(f, "s3:ObjectRestore:Delete"),
Event::S3ObjectRestorePost => write!(f, "s3:ObjectRestore:Post"),
Event::S3ObjectTagging => write!(f, "s3:ObjectTagging:*"),
Event::S3ObjectTaggingDelete => write!(f, "s3:ObjectTagging:Delete"),
Event::S3ObjectTaggingPut => write!(f, "s3:ObjectTagging:Put"),
Event::S3ReducedRedundancyLostObject => write!(f, "s3:ReducedRedundancyLostObject"),
Event::S3Replication => write!(f, "s3:Replication:*"),
Event::S3ReplicationOperationFailedReplication => write!(f, "s3:Replication:OperationFailedReplication"),
Event::S3ReplicationOperationMissedThreshold => write!(f, "s3:Replication:OperationMissedThreshold"),
Event::S3ReplicationOperationNotTracked => write!(f, "s3:Replication:OperationNotTracked"),
Event::S3ReplicationOperationReplicatedAfterThreshold => write!(f, "s3:Replication:OperationReplicatedAfterThreshold"),
Event::Unknown(value) => write!(f, "{}", value),
}
}
}