#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum SecretsManagerOperation {
CreateSecret,
DescribeSecret,
GetSecretValue,
PutSecretValue,
UpdateSecret,
DeleteSecret,
RestoreSecret,
ListSecrets,
ListSecretVersionIds,
GetRandomPassword,
TagResource,
UntagResource,
UpdateSecretVersionStage,
RotateSecret,
CancelRotateSecret,
BatchGetSecretValue,
GetResourcePolicy,
PutResourcePolicy,
DeleteResourcePolicy,
ValidateResourcePolicy,
ReplicateSecretToRegions,
RemoveRegionsFromReplication,
StopReplicationToReplica,
}
impl SecretsManagerOperation {
#[must_use]
pub fn as_str(&self) -> &'static str {
match self {
Self::CreateSecret => "CreateSecret",
Self::DescribeSecret => "DescribeSecret",
Self::GetSecretValue => "GetSecretValue",
Self::PutSecretValue => "PutSecretValue",
Self::UpdateSecret => "UpdateSecret",
Self::DeleteSecret => "DeleteSecret",
Self::RestoreSecret => "RestoreSecret",
Self::ListSecrets => "ListSecrets",
Self::ListSecretVersionIds => "ListSecretVersionIds",
Self::GetRandomPassword => "GetRandomPassword",
Self::TagResource => "TagResource",
Self::UntagResource => "UntagResource",
Self::UpdateSecretVersionStage => "UpdateSecretVersionStage",
Self::RotateSecret => "RotateSecret",
Self::CancelRotateSecret => "CancelRotateSecret",
Self::BatchGetSecretValue => "BatchGetSecretValue",
Self::GetResourcePolicy => "GetResourcePolicy",
Self::PutResourcePolicy => "PutResourcePolicy",
Self::DeleteResourcePolicy => "DeleteResourcePolicy",
Self::ValidateResourcePolicy => "ValidateResourcePolicy",
Self::ReplicateSecretToRegions => "ReplicateSecretToRegions",
Self::RemoveRegionsFromReplication => "RemoveRegionsFromReplication",
Self::StopReplicationToReplica => "StopReplicationToReplica",
}
}
#[must_use]
pub fn from_name(name: &str) -> Option<Self> {
match name {
"CreateSecret" => Some(Self::CreateSecret),
"DescribeSecret" => Some(Self::DescribeSecret),
"GetSecretValue" => Some(Self::GetSecretValue),
"PutSecretValue" => Some(Self::PutSecretValue),
"UpdateSecret" => Some(Self::UpdateSecret),
"DeleteSecret" => Some(Self::DeleteSecret),
"RestoreSecret" => Some(Self::RestoreSecret),
"ListSecrets" => Some(Self::ListSecrets),
"ListSecretVersionIds" => Some(Self::ListSecretVersionIds),
"GetRandomPassword" => Some(Self::GetRandomPassword),
"TagResource" => Some(Self::TagResource),
"UntagResource" => Some(Self::UntagResource),
"UpdateSecretVersionStage" => Some(Self::UpdateSecretVersionStage),
"RotateSecret" => Some(Self::RotateSecret),
"CancelRotateSecret" => Some(Self::CancelRotateSecret),
"BatchGetSecretValue" => Some(Self::BatchGetSecretValue),
"GetResourcePolicy" => Some(Self::GetResourcePolicy),
"PutResourcePolicy" => Some(Self::PutResourcePolicy),
"DeleteResourcePolicy" => Some(Self::DeleteResourcePolicy),
"ValidateResourcePolicy" => Some(Self::ValidateResourcePolicy),
"ReplicateSecretToRegions" => Some(Self::ReplicateSecretToRegions),
"RemoveRegionsFromReplication" => Some(Self::RemoveRegionsFromReplication),
"StopReplicationToReplica" => Some(Self::StopReplicationToReplica),
_ => None,
}
}
}
impl std::fmt::Display for SecretsManagerOperation {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}