four/iam/resource/
policy.rs

1use 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}