four/iam/resource/
policy.rs1use crate::{
2 core::{
3 convert::WillBe,
4 function::{RefInner, Referenced},
5 LogicalId,
6 },
7 iam::{
8 property::policy_document::PolicyDocument, GroupName, PolicyId, PolicyName, RoleName,
9 UserName,
10 },
11 ManagedResource,
12};
13
14#[derive(ManagedResource, Clone)]
15#[resource_type = "AWS::IAM::Policy"]
16pub struct Policy {
17 logical_id: LogicalId,
18 groups: Option<Vec<WillBe<GroupName>>>,
19 policy_document: PolicyDocument,
20 policy_name: WillBe<PolicyName>,
21 roles: Option<Vec<WillBe<RoleName>>>,
22 users: Option<Vec<WillBe<UserName>>>,
23}
24
25impl Referenced for Policy {
26 type To = PolicyId;
27
28 fn referenced(&self) -> RefInner {
29 RefInner::Id(self.logical_id.clone())
30 }
31}