use crate::builder::ArnBuilder;
use crate::known::Service::IdentityAccessManagement;
use crate::{AccountIdentifier, Identifier, IdentifierLike, ResourceIdentifier, ResourceName};
pub fn root(account: AccountIdentifier) -> ResourceName {
ArnBuilder::service_id(IdentityAccessManagement.into())
.owned_by(account)
.is(ResourceIdentifier::new_unchecked("root"))
.into()
}
pub fn user(
partition: Identifier,
account: AccountIdentifier,
user_name: Identifier,
) -> ResourceName {
ArnBuilder::service_id(IdentityAccessManagement.into())
.in_partition_id(partition)
.owned_by(account)
.is(ResourceIdentifier::from_id_path(&[
Identifier::new_unchecked("user"),
user_name,
]))
.into()
}
pub fn role(
partition: Identifier,
account: AccountIdentifier,
role_name: Identifier,
) -> ResourceName {
ArnBuilder::service_id(IdentityAccessManagement.into())
.in_partition_id(partition)
.owned_by(account)
.is(ResourceIdentifier::from_id_path(&[
Identifier::new_unchecked("role"),
role_name,
]))
.into()
}
pub fn group(
partition: Identifier,
account: AccountIdentifier,
group_name: Identifier,
) -> ResourceName {
ArnBuilder::service_id(IdentityAccessManagement.into())
.in_partition_id(partition)
.owned_by(account)
.is(ResourceIdentifier::from_id_path(&[
Identifier::new_unchecked("group"),
group_name,
]))
.into()
}
pub fn policy(
partition: Identifier,
account: AccountIdentifier,
policy_name: Identifier,
) -> ResourceName {
ArnBuilder::service_id(IdentityAccessManagement.into())
.in_partition_id(partition)
.owned_by(account)
.is(ResourceIdentifier::from_id_path(&[
Identifier::new_unchecked("policy"),
policy_name,
]))
.into()
}