use serde::{Deserialize, Serialize};
use vantage_table::table::Table;
use crate::AwsAccount;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Policy {
#[serde(rename = "PolicyName")]
pub policy_name: String,
#[serde(rename = "PolicyId", default)]
pub policy_id: String,
#[serde(rename = "Arn", default)]
pub arn: String,
#[serde(rename = "Path", default)]
pub path: String,
#[serde(rename = "DefaultVersionId", default)]
pub default_version_id: String,
#[serde(rename = "AttachmentCount", default)]
pub attachment_count: String,
#[serde(rename = "PermissionsBoundaryUsageCount", default)]
pub permissions_boundary_usage_count: String,
#[serde(rename = "IsAttachable", default)]
pub is_attachable: String,
#[serde(rename = "CreateDate", default)]
pub create_date: String,
#[serde(rename = "UpdateDate", default)]
pub update_date: String,
#[serde(rename = "Description", default)]
pub description: String,
}
pub fn policies_table(aws: AwsAccount) -> Table<AwsAccount, Policy> {
Table::new("query/Policies:iam/2010-05-08.ListPolicies", aws)
.with_id_column("PolicyName")
.with_column_of::<String>("PolicyId")
.with_column_of::<String>("Arn")
.with_column_of::<String>("Path")
.with_column_of::<String>("DefaultVersionId")
.with_column_of::<String>("AttachmentCount")
.with_column_of::<String>("PermissionsBoundaryUsageCount")
.with_column_of::<String>("IsAttachable")
.with_column_of::<String>("CreateDate")
.with_column_of::<String>("UpdateDate")
.with_column_of::<String>("Description")
}