Skip to main content

fakecloud_efs/
lib.rs

1//! Amazon Elastic File System (`elasticfilesystem`) restJson1 control plane
2//! for fakecloud.
3//!
4//! The full 31-operation EFS Smithy model: file systems (with the async
5//! `creating` -> `available` lifecycle, size, performance/throughput modes,
6//! encryption, and replication-overwrite protection), mount targets (one per
7//! Availability Zone per file system, each with a synthesized IP address,
8//! network interface, and VPC/AZ derived deterministically from its subnet),
9//! access points (POSIX user + root directory), lifecycle configuration,
10//! backup policy, file-system resource policy, replication configurations,
11//! resource tagging (both the resource-id tagging API and the deprecated
12//! per-file-system `Create`/`Delete`/`Describe` tags API), and account
13//! preferences.
14//!
15//! Requests are routed to an operation by HTTP method + `@http` URI path;
16//! path labels are captured positionally and query parameters are read from the
17//! raw query string so repeated multi-value keys (`tagKeys=a&tagKeys=b`)
18//! survive intact. Everything is real, persisted, account-partitioned state:
19//! every `Create`/`Put`/`Update` is reflected by its `Describe`, every `Delete`
20//! deletes, and AWS's async lifecycle is modelled by returning the transient
21//! `creating` state and settling to `available` on the next describe (with
22//! in-flight transitions reconciled on restart).
23
24pub mod persistence;
25pub mod service;
26pub mod state;
27mod validate;
28
29pub use service::{EfsService, EFS_ACTIONS};
30pub use state::{EfsData, EfsSnapshot, SharedEfsState, EFS_SNAPSHOT_SCHEMA_VERSION};