AWS Backup
AWS Backup (backup) on fakecloud: a complete 109-operation control plane (100% conformance) — backup plans, vaults, recovery points, backup/copy/restore/scan jobs, frameworks, report plans, legal holds, restore testing, tiering. restJson1.
fakecloud implements AWS Backup as a restJson1 control plane. All 109 operations ship with 100% conformance against AWS's own Smithy model, backed by account-partitioned state that persists across restarts in persistent mode.
Control-plane only
This is a control-plane emulation: no real backup engine runs, and no bytes are moved (mirroring LocalStack Community, which treats AWS Backup as a control-plane mock). CRUD is real — CreateBackupPlan / CreateBackupVault / CreateFramework and friends persist state that their Get / Describe / List counterparts reflect, Update persists, and Delete removes. Real ARNs are returned (arn:aws:backup:<region>:<account>:backup-vault:<name>, :backup-plan:<id>, recovery-point ARNs that reference the protected resource), and list filters (ByState, ByResourceType, ByBackupVaultName, ...) apply.
Jobs and recovery points
Backup, copy, restore, and scan jobs are recorded and progressed synthetically to a terminal state, so Describe*Job / List*Jobs show completed work without any real data movement:
StartBackupJobreturns aBackupJobIdand a syntheticRecoveryPointArn, and records a recovery point in the target vault.DescribeRecoveryPointthen resolves that recovery point, and the resource becomes visible throughDescribeProtectedResource/ListProtectedResources/ListRecoveryPointsByResource.DescribeBackupJobsettles aRUNNINGjob toCOMPLETED(withPercentDone100.0and a completion date), mirroring the eventual consistency of the real service.StartCopyJob,StartRestoreJob, andStartScanJobbehave the same way;StartRestoreJobresolves the recovery point created by a prior backup and reports a synthesizedCreatedResourceArnon completion.
What is covered
The full surface persists and round-trips:
- Backup plans with versions (
ListBackupPlanVersions) and backup selections, plus plan templates and JSON import/export. - Backup vaults — standard, logically-air-gapped, and restore-access — with notifications, access policies, and vault-lock configuration.
- Recovery points, including lifecycle updates, index settings, restore metadata, and parent/child disassociation.
- Frameworks and report plans (with report jobs), which settle to a
COMPLETEDdeployment status on describe. - Legal holds (create / get / cancel), restore-testing plans and selections, and tiering configurations.
- Account-scoped global settings and region (opt-in) settings, resource tagging, and the supported-resource-type catalogue.
Validation mirrors the model's constraints: vault names must match ^[a-zA-Z0-9\-\_]{2,50}$, framework / report-plan names must match ^[a-zA-Z][_a-zA-Z0-9]*$, MaxResults is bounded to 1..=1000, and enum-valued filters are checked — each rejection returns the model's declared error (InvalidParameterValueException, MissingParameterValueException, ResourceNotFoundException, AlreadyExistsException, ...).