Enum scratchstack_aws_principal::policy::PolicyPrincipal[][src]

pub enum PolicyPrincipal {
    AssumedRole(AssumedRoleDetails),
    FederatedUser(FederatedUserDetails),
    InstanceProfile(InstanceProfileDetails),
    Group(GroupDetails),
    Role(RoleDetails),
    RootUser(RootUserDetails),
    User(UserDetails),
}

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.

Details for an IAM group.

Details for an IAM role.

RootUser(RootUserDetails)

Details for the root user of an account.

Details for an IAM user.

Implementations

impl PolicyPrincipal[src]

pub fn assumed_role<S1, S2, S3, S4>(
    partition: S1,
    account_id: S2,
    role_name: S3,
    session_name: S4
) -> Result<Self, PrincipalError> where
    S1: Into<String>,
    S2: Into<String>,
    S3: Into<String>,
    S4: Into<String>, 
[src]

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.
  • 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.

pub fn federated_user<S1, S2, S3>(
    partition: S1,
    account_id: S2,
    user_name: S3
) -> Result<Self, PrincipalError> where
    S1: Into<String>,
    S2: Into<String>,
    S3: Into<String>, 
[src]

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.
  • 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.

pub fn group<S1, S2, S3, S4>(
    partition: S1,
    account_id: S2,
    path: S3,
    group_name: S4
) -> Result<Self, PrincipalError> where
    S1: Into<String>,
    S2: Into<String>,
    S3: Into<String>,
    S4: Into<String>, 
[src]

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.
  • 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.

pub fn instance_profile<S1, S2, S3, S4>(
    partition: S1,
    account_id: S2,
    path: S3,
    instance_profile_name: S4
) -> Result<Self, PrincipalError> where
    S1: Into<String>,
    S2: Into<String>,
    S3: Into<String>,
    S4: Into<String>, 
[src]

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.
  • 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.

pub fn role<S1, S2, S3, S4>(
    partition: S1,
    account_id: S2,
    path: S3,
    role_name: S4
) -> Result<Self, PrincipalError> where
    S1: Into<String>,
    S2: Into<String>,
    S3: Into<String>,
    S4: Into<String>, 
[src]

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.
  • 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.

pub fn root_user<S1>(
    partition: Option<String>,
    account_id: S1
) -> Result<Self, PrincipalError> where
    S1: Into<String>, 
[src]

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.
  • 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.

pub fn user<S1, S2, S3, S4>(
    partition: S1,
    account_id: S2,
    path: S3,
    user_name: S4
) -> Result<Self, PrincipalError> where
    S1: Into<String>,
    S2: Into<String>,
    S3: Into<String>,
    S4: Into<String>, 
[src]

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.
  • 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.

Trait Implementations

impl Clone for PolicyPrincipal[src]

impl Debug for PolicyPrincipal[src]

impl Display for PolicyPrincipal[src]

impl Eq for PolicyPrincipal[src]

impl From<PrincipalActor> for PolicyPrincipal[src]

fn from(from: PrincipalActor) -> PolicyPrincipal[src]

Convert the PrincipalActor into a PolicyPrincipal.

This is a lossy conversion, losing the identifier or token details attached to the actor.

impl FromStr for PolicyPrincipal[src]

type Err = PrincipalError

The associated error which can be returned from parsing.

impl PartialEq<PolicyPrincipal> for PolicyPrincipal[src]

impl StructuralEq for PolicyPrincipal[src]

impl StructuralPartialEq for PolicyPrincipal[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Data for T where
    T: Clone + Debug + PartialEq<T> + Eq + Send + Sync + 'static, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.