aws_sdk_guardduty/types/
_detector_feature.rs1#[allow(missing_docs)] #[non_exhaustive]
46#[derive(
47 ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
48)]
49pub enum DetectorFeature {
50 #[allow(missing_docs)] EbsMalwareProtection,
52 #[allow(missing_docs)] EksAuditLogs,
54 #[allow(missing_docs)] EksRuntimeMonitoring,
56 #[allow(missing_docs)] LambdaNetworkLogs,
58 #[allow(missing_docs)] RdsLoginEvents,
60 #[allow(missing_docs)] RuntimeMonitoring,
62 #[allow(missing_docs)] S3DataEvents,
64 #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
66 Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
67}
68impl ::std::convert::From<&str> for DetectorFeature {
69 fn from(s: &str) -> Self {
70 match s {
71 "EBS_MALWARE_PROTECTION" => DetectorFeature::EbsMalwareProtection,
72 "EKS_AUDIT_LOGS" => DetectorFeature::EksAuditLogs,
73 "EKS_RUNTIME_MONITORING" => DetectorFeature::EksRuntimeMonitoring,
74 "LAMBDA_NETWORK_LOGS" => DetectorFeature::LambdaNetworkLogs,
75 "RDS_LOGIN_EVENTS" => DetectorFeature::RdsLoginEvents,
76 "RUNTIME_MONITORING" => DetectorFeature::RuntimeMonitoring,
77 "S3_DATA_EVENTS" => DetectorFeature::S3DataEvents,
78 other => DetectorFeature::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
79 }
80 }
81}
82impl ::std::str::FromStr for DetectorFeature {
83 type Err = ::std::convert::Infallible;
84
85 fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
86 ::std::result::Result::Ok(DetectorFeature::from(s))
87 }
88}
89impl DetectorFeature {
90 pub fn as_str(&self) -> &str {
92 match self {
93 DetectorFeature::EbsMalwareProtection => "EBS_MALWARE_PROTECTION",
94 DetectorFeature::EksAuditLogs => "EKS_AUDIT_LOGS",
95 DetectorFeature::EksRuntimeMonitoring => "EKS_RUNTIME_MONITORING",
96 DetectorFeature::LambdaNetworkLogs => "LAMBDA_NETWORK_LOGS",
97 DetectorFeature::RdsLoginEvents => "RDS_LOGIN_EVENTS",
98 DetectorFeature::RuntimeMonitoring => "RUNTIME_MONITORING",
99 DetectorFeature::S3DataEvents => "S3_DATA_EVENTS",
100 DetectorFeature::Unknown(value) => value.as_str(),
101 }
102 }
103 pub const fn values() -> &'static [&'static str] {
105 &[
106 "EBS_MALWARE_PROTECTION",
107 "EKS_AUDIT_LOGS",
108 "EKS_RUNTIME_MONITORING",
109 "LAMBDA_NETWORK_LOGS",
110 "RDS_LOGIN_EVENTS",
111 "RUNTIME_MONITORING",
112 "S3_DATA_EVENTS",
113 ]
114 }
115}
116impl ::std::convert::AsRef<str> for DetectorFeature {
117 fn as_ref(&self) -> &str {
118 self.as_str()
119 }
120}
121impl DetectorFeature {
122 pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
126 match Self::from(value) {
127 #[allow(deprecated)]
128 Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
129 known => Ok(known),
130 }
131 }
132}
133impl ::std::fmt::Display for DetectorFeature {
134 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
135 match self {
136 DetectorFeature::EbsMalwareProtection => write!(f, "EBS_MALWARE_PROTECTION"),
137 DetectorFeature::EksAuditLogs => write!(f, "EKS_AUDIT_LOGS"),
138 DetectorFeature::EksRuntimeMonitoring => write!(f, "EKS_RUNTIME_MONITORING"),
139 DetectorFeature::LambdaNetworkLogs => write!(f, "LAMBDA_NETWORK_LOGS"),
140 DetectorFeature::RdsLoginEvents => write!(f, "RDS_LOGIN_EVENTS"),
141 DetectorFeature::RuntimeMonitoring => write!(f, "RUNTIME_MONITORING"),
142 DetectorFeature::S3DataEvents => write!(f, "S3_DATA_EVENTS"),
143 DetectorFeature::Unknown(value) => write!(f, "{}", value),
144 }
145 }
146}