#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IamOperation {
CreateUser,
GetUser,
DeleteUser,
ListUsers,
UpdateUser,
CreateRole,
GetRole,
DeleteRole,
ListRoles,
UpdateRole,
CreatePolicy,
GetPolicy,
DeletePolicy,
ListPolicies,
AttachUserPolicy,
DetachUserPolicy,
ListAttachedUserPolicies,
AttachRolePolicy,
DetachRolePolicy,
ListAttachedRolePolicies,
CreateAccessKey,
DeleteAccessKey,
ListAccessKeys,
UpdateAccessKey,
GetAccessKeyLastUsed,
CreateGroup,
GetGroup,
DeleteGroup,
ListGroups,
UpdateGroup,
AddUserToGroup,
RemoveUserFromGroup,
ListGroupsForUser,
AttachGroupPolicy,
DetachGroupPolicy,
ListAttachedGroupPolicies,
CreateInstanceProfile,
GetInstanceProfile,
DeleteInstanceProfile,
ListInstanceProfiles,
ListInstanceProfilesForRole,
AddRoleToInstanceProfile,
RemoveRoleFromInstanceProfile,
CreatePolicyVersion,
GetPolicyVersion,
DeletePolicyVersion,
ListPolicyVersions,
SetDefaultPolicyVersion,
PutUserPolicy,
GetUserPolicy,
DeleteUserPolicy,
ListUserPolicies,
PutRolePolicy,
GetRolePolicy,
DeleteRolePolicy,
ListRolePolicies,
PutGroupPolicy,
GetGroupPolicy,
DeleteGroupPolicy,
ListGroupPolicies,
TagUser,
UntagUser,
ListUserTags,
TagRole,
UntagRole,
ListRoleTags,
CreateServiceLinkedRole,
DeleteServiceLinkedRole,
GetServiceLinkedRoleDeletionStatus,
UpdateAssumeRolePolicy,
SimulatePrincipalPolicy,
SimulateCustomPolicy,
ListEntitiesForPolicy,
GetAccountAuthorizationDetails,
CreateOpenIDConnectProvider,
GetOpenIDConnectProvider,
DeleteOpenIDConnectProvider,
ListOpenIDConnectProviders,
TagPolicy,
UntagPolicy,
ListPolicyTags,
TagInstanceProfile,
UntagInstanceProfile,
ListInstanceProfileTags,
}
impl IamOperation {
#[must_use]
pub fn as_str(&self) -> &'static str {
match self {
Self::CreateUser => "CreateUser",
Self::GetUser => "GetUser",
Self::DeleteUser => "DeleteUser",
Self::ListUsers => "ListUsers",
Self::UpdateUser => "UpdateUser",
Self::CreateRole => "CreateRole",
Self::GetRole => "GetRole",
Self::DeleteRole => "DeleteRole",
Self::ListRoles => "ListRoles",
Self::UpdateRole => "UpdateRole",
Self::CreatePolicy => "CreatePolicy",
Self::GetPolicy => "GetPolicy",
Self::DeletePolicy => "DeletePolicy",
Self::ListPolicies => "ListPolicies",
Self::AttachUserPolicy => "AttachUserPolicy",
Self::DetachUserPolicy => "DetachUserPolicy",
Self::ListAttachedUserPolicies => "ListAttachedUserPolicies",
Self::AttachRolePolicy => "AttachRolePolicy",
Self::DetachRolePolicy => "DetachRolePolicy",
Self::ListAttachedRolePolicies => "ListAttachedRolePolicies",
Self::CreateAccessKey => "CreateAccessKey",
Self::DeleteAccessKey => "DeleteAccessKey",
Self::ListAccessKeys => "ListAccessKeys",
Self::UpdateAccessKey => "UpdateAccessKey",
Self::GetAccessKeyLastUsed => "GetAccessKeyLastUsed",
Self::CreateGroup => "CreateGroup",
Self::GetGroup => "GetGroup",
Self::DeleteGroup => "DeleteGroup",
Self::ListGroups => "ListGroups",
Self::UpdateGroup => "UpdateGroup",
Self::AddUserToGroup => "AddUserToGroup",
Self::RemoveUserFromGroup => "RemoveUserFromGroup",
Self::ListGroupsForUser => "ListGroupsForUser",
Self::AttachGroupPolicy => "AttachGroupPolicy",
Self::DetachGroupPolicy => "DetachGroupPolicy",
Self::ListAttachedGroupPolicies => "ListAttachedGroupPolicies",
Self::CreateInstanceProfile => "CreateInstanceProfile",
Self::GetInstanceProfile => "GetInstanceProfile",
Self::DeleteInstanceProfile => "DeleteInstanceProfile",
Self::ListInstanceProfiles => "ListInstanceProfiles",
Self::ListInstanceProfilesForRole => "ListInstanceProfilesForRole",
Self::AddRoleToInstanceProfile => "AddRoleToInstanceProfile",
Self::RemoveRoleFromInstanceProfile => "RemoveRoleFromInstanceProfile",
Self::CreatePolicyVersion => "CreatePolicyVersion",
Self::GetPolicyVersion => "GetPolicyVersion",
Self::DeletePolicyVersion => "DeletePolicyVersion",
Self::ListPolicyVersions => "ListPolicyVersions",
Self::SetDefaultPolicyVersion => "SetDefaultPolicyVersion",
Self::PutUserPolicy => "PutUserPolicy",
Self::GetUserPolicy => "GetUserPolicy",
Self::DeleteUserPolicy => "DeleteUserPolicy",
Self::ListUserPolicies => "ListUserPolicies",
Self::PutRolePolicy => "PutRolePolicy",
Self::GetRolePolicy => "GetRolePolicy",
Self::DeleteRolePolicy => "DeleteRolePolicy",
Self::ListRolePolicies => "ListRolePolicies",
Self::PutGroupPolicy => "PutGroupPolicy",
Self::GetGroupPolicy => "GetGroupPolicy",
Self::DeleteGroupPolicy => "DeleteGroupPolicy",
Self::ListGroupPolicies => "ListGroupPolicies",
Self::TagUser => "TagUser",
Self::UntagUser => "UntagUser",
Self::ListUserTags => "ListUserTags",
Self::TagRole => "TagRole",
Self::UntagRole => "UntagRole",
Self::ListRoleTags => "ListRoleTags",
Self::CreateServiceLinkedRole => "CreateServiceLinkedRole",
Self::DeleteServiceLinkedRole => "DeleteServiceLinkedRole",
Self::GetServiceLinkedRoleDeletionStatus => "GetServiceLinkedRoleDeletionStatus",
Self::UpdateAssumeRolePolicy => "UpdateAssumeRolePolicy",
Self::SimulatePrincipalPolicy => "SimulatePrincipalPolicy",
Self::SimulateCustomPolicy => "SimulateCustomPolicy",
Self::ListEntitiesForPolicy => "ListEntitiesForPolicy",
Self::GetAccountAuthorizationDetails => "GetAccountAuthorizationDetails",
Self::CreateOpenIDConnectProvider => "CreateOpenIDConnectProvider",
Self::GetOpenIDConnectProvider => "GetOpenIDConnectProvider",
Self::DeleteOpenIDConnectProvider => "DeleteOpenIDConnectProvider",
Self::ListOpenIDConnectProviders => "ListOpenIDConnectProviders",
Self::TagPolicy => "TagPolicy",
Self::UntagPolicy => "UntagPolicy",
Self::ListPolicyTags => "ListPolicyTags",
Self::TagInstanceProfile => "TagInstanceProfile",
Self::UntagInstanceProfile => "UntagInstanceProfile",
Self::ListInstanceProfileTags => "ListInstanceProfileTags",
}
}
#[must_use]
pub fn from_name(name: &str) -> Option<Self> {
match name {
"CreateUser" => Some(Self::CreateUser),
"GetUser" => Some(Self::GetUser),
"DeleteUser" => Some(Self::DeleteUser),
"ListUsers" => Some(Self::ListUsers),
"UpdateUser" => Some(Self::UpdateUser),
"CreateRole" => Some(Self::CreateRole),
"GetRole" => Some(Self::GetRole),
"DeleteRole" => Some(Self::DeleteRole),
"ListRoles" => Some(Self::ListRoles),
"UpdateRole" => Some(Self::UpdateRole),
"CreatePolicy" => Some(Self::CreatePolicy),
"GetPolicy" => Some(Self::GetPolicy),
"DeletePolicy" => Some(Self::DeletePolicy),
"ListPolicies" => Some(Self::ListPolicies),
"AttachUserPolicy" => Some(Self::AttachUserPolicy),
"DetachUserPolicy" => Some(Self::DetachUserPolicy),
"ListAttachedUserPolicies" => Some(Self::ListAttachedUserPolicies),
"AttachRolePolicy" => Some(Self::AttachRolePolicy),
"DetachRolePolicy" => Some(Self::DetachRolePolicy),
"ListAttachedRolePolicies" => Some(Self::ListAttachedRolePolicies),
"CreateAccessKey" => Some(Self::CreateAccessKey),
"DeleteAccessKey" => Some(Self::DeleteAccessKey),
"ListAccessKeys" => Some(Self::ListAccessKeys),
"UpdateAccessKey" => Some(Self::UpdateAccessKey),
"GetAccessKeyLastUsed" => Some(Self::GetAccessKeyLastUsed),
"CreateGroup" => Some(Self::CreateGroup),
"GetGroup" => Some(Self::GetGroup),
"DeleteGroup" => Some(Self::DeleteGroup),
"ListGroups" => Some(Self::ListGroups),
"UpdateGroup" => Some(Self::UpdateGroup),
"AddUserToGroup" => Some(Self::AddUserToGroup),
"RemoveUserFromGroup" => Some(Self::RemoveUserFromGroup),
"ListGroupsForUser" => Some(Self::ListGroupsForUser),
"AttachGroupPolicy" => Some(Self::AttachGroupPolicy),
"DetachGroupPolicy" => Some(Self::DetachGroupPolicy),
"ListAttachedGroupPolicies" => Some(Self::ListAttachedGroupPolicies),
"CreateInstanceProfile" => Some(Self::CreateInstanceProfile),
"GetInstanceProfile" => Some(Self::GetInstanceProfile),
"DeleteInstanceProfile" => Some(Self::DeleteInstanceProfile),
"ListInstanceProfiles" => Some(Self::ListInstanceProfiles),
"ListInstanceProfilesForRole" => Some(Self::ListInstanceProfilesForRole),
"AddRoleToInstanceProfile" => Some(Self::AddRoleToInstanceProfile),
"RemoveRoleFromInstanceProfile" => Some(Self::RemoveRoleFromInstanceProfile),
"CreatePolicyVersion" => Some(Self::CreatePolicyVersion),
"GetPolicyVersion" => Some(Self::GetPolicyVersion),
"DeletePolicyVersion" => Some(Self::DeletePolicyVersion),
"ListPolicyVersions" => Some(Self::ListPolicyVersions),
"SetDefaultPolicyVersion" => Some(Self::SetDefaultPolicyVersion),
"PutUserPolicy" => Some(Self::PutUserPolicy),
"GetUserPolicy" => Some(Self::GetUserPolicy),
"DeleteUserPolicy" => Some(Self::DeleteUserPolicy),
"ListUserPolicies" => Some(Self::ListUserPolicies),
"PutRolePolicy" => Some(Self::PutRolePolicy),
"GetRolePolicy" => Some(Self::GetRolePolicy),
"DeleteRolePolicy" => Some(Self::DeleteRolePolicy),
"ListRolePolicies" => Some(Self::ListRolePolicies),
"PutGroupPolicy" => Some(Self::PutGroupPolicy),
"GetGroupPolicy" => Some(Self::GetGroupPolicy),
"DeleteGroupPolicy" => Some(Self::DeleteGroupPolicy),
"ListGroupPolicies" => Some(Self::ListGroupPolicies),
"TagUser" => Some(Self::TagUser),
"UntagUser" => Some(Self::UntagUser),
"ListUserTags" => Some(Self::ListUserTags),
"TagRole" => Some(Self::TagRole),
"UntagRole" => Some(Self::UntagRole),
"ListRoleTags" => Some(Self::ListRoleTags),
"CreateServiceLinkedRole" => Some(Self::CreateServiceLinkedRole),
"DeleteServiceLinkedRole" => Some(Self::DeleteServiceLinkedRole),
"GetServiceLinkedRoleDeletionStatus" => Some(Self::GetServiceLinkedRoleDeletionStatus),
"UpdateAssumeRolePolicy" => Some(Self::UpdateAssumeRolePolicy),
"SimulatePrincipalPolicy" => Some(Self::SimulatePrincipalPolicy),
"SimulateCustomPolicy" => Some(Self::SimulateCustomPolicy),
"ListEntitiesForPolicy" => Some(Self::ListEntitiesForPolicy),
"GetAccountAuthorizationDetails" => Some(Self::GetAccountAuthorizationDetails),
"CreateOpenIDConnectProvider" => Some(Self::CreateOpenIDConnectProvider),
"GetOpenIDConnectProvider" => Some(Self::GetOpenIDConnectProvider),
"DeleteOpenIDConnectProvider" => Some(Self::DeleteOpenIDConnectProvider),
"ListOpenIDConnectProviders" => Some(Self::ListOpenIDConnectProviders),
"TagPolicy" => Some(Self::TagPolicy),
"UntagPolicy" => Some(Self::UntagPolicy),
"ListPolicyTags" => Some(Self::ListPolicyTags),
"TagInstanceProfile" => Some(Self::TagInstanceProfile),
"UntagInstanceProfile" => Some(Self::UntagInstanceProfile),
"ListInstanceProfileTags" => Some(Self::ListInstanceProfileTags),
_ => None,
}
}
}
impl std::fmt::Display for IamOperation {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}