1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Ready-made IAM tables.
//!
//! IAM speaks the older AWS Query protocol (form-encoded request,
//! XML response), which the [`crate::query`] module handles. From the
//! caller's perspective these are no different from the JSON-1.1
//! tables — same `AwsAccount`, same `eq` filters, same `with_many`
//! relations.
//!
//! Top-level tables:
//! - [`users_table`] — `ListUsers`
//! - [`groups_table`] — `ListGroups`
//! - [`roles_table`] — `ListRoles`
//! - [`policies_table`] — `ListPolicies`
//! - [`access_keys_table`] — `ListAccessKeys` (per user)
//! - [`instance_profiles_table`] — `ListInstanceProfiles`
//!
//! Relations wired on the entity factories:
//! - `User` → `groups`, `access_keys`, `attached_policies`
//! - `Group` → `attached_policies`
//! - `Role` → `attached_policies`, `instance_profiles`
//!
//! ```no_run
//! # use vantage_aws::AwsAccount;
//! # use vantage_aws::models::iam::users_table;
//! # use vantage_dataset::prelude::ReadableValueSet;
//! # async fn run() -> vantage_core::Result<()> {
//! # let aws = AwsAccount::from_default()?;
//! let users = users_table(aws);
//! for user in users.list_values().await? {
//! // …
//! }
//! # Ok(()) }
//! ```
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;