Skip to main content

Crate fakecloud_amplify

Crate fakecloud_amplify 

Source
Expand description

AWS Amplify (amplify) restJson1 control plane for fakecloud.

The full 37-operation AWS Amplify Smithy model: apps (CreateApp / GetApp / ListApps / UpdateApp / DeleteApp), branches, domain associations (with the CREATING -> AVAILABLE verification lifecycle), webhooks, backend environments, the deterministic job/deployment lifecycle (StartJob / GetJob / ListJobs / StopJob / DeleteJob + CreateDeployment / StartDeployment), build artifacts (ListArtifacts / GetArtifactUrl), access-log generation, and ARN-keyed resource tagging (TagResource / UntagResource / ListTagsForResource).

Amplify signs SigV4 with the amplify scope and speaks restJson1: requests are routed to an operation by HTTP method + @http URI path (POST /apps, GET /apps/{appId}, POST /apps/{appId}/branches, DELETE /apps/{appId}/branches/{branchName}/jobs/{jobId}/stop, …); path labels are captured positionally and percent-decoded (so an ARN label whose slashes arrive percent-encoded survives intact), and query parameters are read from the raw query string.

Everything is real, persisted, account-partitioned state: every CreateApp / CreateBranch / CreateDomainAssociation is reflected by its Get* / List*, every Delete* deletes, and the async domain/job lifecycles are modelled by advancing the stored status on the next read (with in-flight transitions reconciled on restart). Amplify is a hosting control plane; there is no separately-emulable data plane (the built app artifacts are produced by a real CI/CD build farm), so job builds settle deterministically rather than executing a customer’s build.

Re-exports§

pub use service::AmplifyService;
pub use service::AMPLIFY_ACTIONS;
pub use state::AmplifyData;
pub use state::AmplifySnapshot;
pub use state::SharedAmplifyState;
pub use state::AMPLIFY_SNAPSHOT_SCHEMA_VERSION;

Modules§

persistence
Snapshot save/load for AWS Amplify state, with domain / job lifecycle reconciliation on restart.
service
AWS Amplify (amplify) restJson1 dispatch + operation handlers.
shared
Primitives shared across the AWS Amplify (amplify) handlers: ARN synthesis, deterministic id derivation, timestamps, and default-domain / webhook-URL construction. Kept in one place so the create / get paths cannot diverge on wire format.
state
Account-partitioned, serializable state for AWS Amplify’s (amplify) control plane.