pub enum PolicyPrincipal {
AssumedRole(AssumedRoleDetails),
FederatedUser(FederatedUserDetails),
InstanceProfile(InstanceProfileDetails),
Group(GroupDetails),
Role(RoleDetails),
RootUser(RootUserDetails),
Service(ServiceDetails),
User(UserDetails),
}Expand description
An AWS principal referred to in an Aspen policy.
Variants§
AssumedRole(AssumedRoleDetails)
Details for an assumed role.
FederatedUser(FederatedUserDetails)
Details for a federated user.
InstanceProfile(InstanceProfileDetails)
Details for an instance profile.
Group(GroupDetails)
Details for an IAM group.
Role(RoleDetails)
Details for an IAM role.
RootUser(RootUserDetails)
Details for the root user of an account.
Service(ServiceDetails)
Details for a service. Requires the service feature.
User(UserDetails)
Details for an IAM user.
Implementations§
source§impl PolicyPrincipal
impl PolicyPrincipal
sourcepub fn assumed_role<S1, S2, S3, S4>(
partition: S1,
account_id: S2,
role_name: S3,
session_name: S4,
) -> Result<Self, PrincipalError>
pub fn assumed_role<S1, S2, S3, S4>( partition: S1, account_id: S2, role_name: S3, session_name: S4, ) -> Result<Self, PrincipalError>
Return a principal for an assumed role.
§Arguments:
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.role_name: The name of the role being assumed. This must meet the following requirements or a PrincipalError::InvalidRoleName error will be returned:- The name must contain between 1 and 64 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
session_name: A name to assign to the session. This must meet the following requirements or a PrincipalError::InvalidSessionName error will be returned:- The session name must contain between 2 and 64 characters.
- The session name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
§Return value
If all of the requirements are met, a PolicyPrincipal with AssumedRoleDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn federated_user<S1, S2, S3>(
partition: S1,
account_id: S2,
user_name: S3,
) -> Result<Self, PrincipalError>
pub fn federated_user<S1, S2, S3>( partition: S1, account_id: S2, user_name: S3, ) -> Result<Self, PrincipalError>
Return a principal for a federated user.
§Arguments:
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.user_name: The name of the federated user. This must meet the following requirements or a PrincipalError::InvalidFederatedUserName error will be returned:- The name must contain between 2 and 64 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
§Return value
If all of the requirements are met, a PolicyPrincipal with FederatedUserDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn group<S1, S2, S3, S4>(
partition: S1,
account_id: S2,
path: S3,
group_name: S4,
) -> Result<Self, PrincipalError>
pub fn group<S1, S2, S3, S4>( partition: S1, account_id: S2, path: S3, group_name: S4, ) -> Result<Self, PrincipalError>
Return a principal for a group.
§Arguments
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.path: The IAM path the group is under. This must meet the following requirements or a PrincipalError::InvalidPath error will be returned:- The path must contain between 1 and 512 characters.
- The path must start and end with
/. - All characters in the path must be in the ASCII range 0x21 (
!) through 0x7E (~). The AWS documentation erroneously indicates that 0x7F (DEL) is acceptable; however, the IAM APIs reject this character.
group_name: The name of the group. This must meet the following requirements or a PrincipalError::InvalidGroupName error will be returned:- The name must contain between 1 and 128 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
§Return value
If all of the requirements are met, a PolicyPrincipal with GroupDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn instance_profile<S1, S2, S3, S4>(
partition: S1,
account_id: S2,
path: S3,
instance_profile_name: S4,
) -> Result<Self, PrincipalError>
pub fn instance_profile<S1, S2, S3, S4>( partition: S1, account_id: S2, path: S3, instance_profile_name: S4, ) -> Result<Self, PrincipalError>
Return a principal for an instance profile.
§Arguments
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.path: The IAM path the group is under. This must meet the following requirements or a PrincipalError::InvalidPath error will be returned:- The path must contain between 1 and 512 characters.
- The path must start and end with
/. - All characters in the path must be in the ASCII range 0x21 (
!) through 0x7E (~). The AWS documentation erroneously indicates that 0x7F (DEL) is acceptable; however, the IAM APIs reject this character.
instance_profile_name: The name of the instance profile. This must meet the following requirements or a PrincipalError::InvalidInstanceProfileName error will be returned:- The name must contain between 1 and 128 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
§Return value
If all of the requirements are met, a PolicyPrincipal with InstanceProfileDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn role<S1, S2, S3, S4>(
partition: S1,
account_id: S2,
path: S3,
role_name: S4,
) -> Result<Self, PrincipalError>
pub fn role<S1, S2, S3, S4>( partition: S1, account_id: S2, path: S3, role_name: S4, ) -> Result<Self, PrincipalError>
Return a principal for a role.
§Arguments
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.path: The IAM path the group is under. This must meet the following requirements or a PrincipalError::InvalidPath error will be returned:- The path must contain between 1 and 512 characters.
- The path must start and end with
/. - All characters in the path must be in the ASCII range 0x21 (
!) through 0x7E (~). The AWS documentation erroneously indicates that 0x7F (DEL) is acceptable; however, the IAM APIs reject this character.
role_name: The name of the role. This must meet the following requirements or a PrincipalError::InvalidRoleName error will be returned:- The name must contain between 1 and 64 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
§Return value
If all of the requirements are met, a PolicyPrincipal with RoleDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn root_user<S1>(
partition: Option<String>,
account_id: S1,
) -> Result<Self, PrincipalError>
pub fn root_user<S1>( partition: Option<String>, account_id: S1, ) -> Result<Self, PrincipalError>
Return a principal for the root user of an account.
§Arguments
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.
§Return value
If all of the requirements are met, a PolicyPrincipal with RootUserDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn user<S1, S2, S3, S4>(
partition: S1,
account_id: S2,
path: S3,
user_name: S4,
) -> Result<Self, PrincipalError>
pub fn user<S1, S2, S3, S4>( partition: S1, account_id: S2, path: S3, user_name: S4, ) -> Result<Self, PrincipalError>
Return a principal for a user.
§Arguments
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
account_id: The 12 digit account id. This must be composed of 12 ASCII digits or a PrincipalError::InvalidAccountId error will be returned.path: The IAM path the group is under. This must meet the following requirements or a PrincipalError::InvalidPath error will be returned:- The path must contain between 1 and 512 characters.
- The path must start and end with
/. - All characters in the path must be in the ASCII range 0x21 (
!) through 0x7E (~). The AWS documentation erroneously indicates that 0x7F (DEL) is acceptable; however, the IAM APIs reject this character.
user_name: The name of the user. This must meet the following requirements or a PrincipalError::InvalidUserName error will be returned:- The name must contain between 1 and 64 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
§Return value
If all of the requirements are met, a PolicyPrincipal with UserDetails details is returned. Otherwise, a PrincipalError error is returned.
sourcepub fn service<S1>(
partition: Option<String>,
service_name: S1,
) -> Result<Self, PrincipalError>
pub fn service<S1>( partition: Option<String>, service_name: S1, ) -> Result<Self, PrincipalError>
Return a principal for a service. Requies the service feature.
§Arguments
partition: The partition being addressed. This must meet the following requirements or a PrincipalError::InvalidPartition error will be returned:- The partition must be composed of ASCII alphanumeric characters or
-. - The partition must have between 1 and 32 characters.
- A
-cannot appear in the first or last position, nor can it appear in two consecutive characters.
- The partition must be composed of ASCII alphanumeric characters or
service_name: The name of the service. This must meet the following requirements or a PrincipalError::InvalidServiceName error will be returned:- The name must contain between 1 and 32 characters.
- The name must be composed to ASCII alphanumeric characters or one of
, - . = @ _.
If all of the requirements are met, a PolicyPrincipal with ServiceDetails details is returned. Otherwise, a PrincipalError error is returned.
Trait Implementations§
source§impl Clone for PolicyPrincipal
impl Clone for PolicyPrincipal
source§fn clone(&self) -> PolicyPrincipal
fn clone(&self) -> PolicyPrincipal
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for PolicyPrincipal
impl Debug for PolicyPrincipal
source§impl Display for PolicyPrincipal
impl Display for PolicyPrincipal
source§impl From<PrincipalActor> for PolicyPrincipal
impl From<PrincipalActor> for PolicyPrincipal
source§fn from(from: PrincipalActor) -> PolicyPrincipal
fn from(from: PrincipalActor) -> PolicyPrincipal
Convert the PrincipalActor into a PolicyPrincipal.
This is a lossy conversion, losing the identifier or token details attached to the actor.
source§impl FromStr for PolicyPrincipal
impl FromStr for PolicyPrincipal
source§impl PartialEq for PolicyPrincipal
impl PartialEq for PolicyPrincipal
source§fn eq(&self, other: &PolicyPrincipal) -> bool
fn eq(&self, other: &PolicyPrincipal) -> bool
self and other values to be equal, and is used
by ==.impl Eq for PolicyPrincipal
impl StructuralPartialEq for PolicyPrincipal
Auto Trait Implementations§
impl Freeze for PolicyPrincipal
impl RefUnwindSafe for PolicyPrincipal
impl Send for PolicyPrincipal
impl Sync for PolicyPrincipal
impl Unpin for PolicyPrincipal
impl UnwindSafe for PolicyPrincipal
Blanket Implementations§
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)