four/iam/property/
policy_document.rs1use crate::iam::property::statement::Statement;
2use derive_new::new;
3use serde::Serialize;
4
5#[non_exhaustive]
6#[derive(Debug, Clone, Serialize)]
7pub enum PolicyDocumentVersion {
8 #[serde(rename(serialize = "2012-10-17"))]
9 V2012_10_17,
10 #[serde(rename(serialize = "2008-10-17"))]
11 V2008_10_17,
12}
13
14impl PolicyDocumentVersion {
15 pub fn latest() -> PolicyDocumentVersion {
16 PolicyDocumentVersion::V2012_10_17
17 }
18}
19
20#[derive(Debug, Clone, Serialize, new)]
21#[serde(rename_all = "PascalCase")]
22pub struct PolicyDocument {
23 version: PolicyDocumentVersion,
24 statement: Vec<Statement>,
25}
26
27impl PolicyDocument {
28 pub fn latest(statement: Vec<Statement>) -> PolicyDocument {
29 PolicyDocument {
30 version: PolicyDocumentVersion::latest(),
31 statement,
32 }
33 }
34}