overcast local AWS emulator

Service Reference

Backup — AWS Backup

Metadata-only AWS Backup implementation.

Backup — AWS Backup

AWS docs: https://docs.aws.amazon.com/aws-backup/latest/devguide/API_Reference.html

Metadata-only AWS Backup implementation.

Summary

Supports backup-vault and backup-plan control-plane CRUD for local stack compatibility. AWS Backup uses the REST JSON protocol, and Overcast serves it at AWS’s own bindings, so SDK clients, CDK constructs and aws backup … work unmodified.

Behavior Notes

  • Routes are AWS’s own bindings, in two subtrees rather than one prefix: vaults under /backup-vaults (e.g. PUT /backup-vaults/{BackupVaultName}) and plans under /backup/plans.
  • Vaults and plans are per-region, as on AWS: the same vault name in two regions is two vaults.
  • No recovery points are created or stored, so a vault’s NumberOfRecoveryPoints is always zero.
  • No backup jobs, restore jobs, or scheduling workers are executed — a plan’s rules are stored and echoed back, never fired.
  • Tagging is not implemented: BackupVaultTags and BackupPlanTags are accepted at creation and dropped, and there are no TagResource, UntagResource or ListTags operations (#815).
  • Designed to unblock IaC/API flows expecting vault and plan resources.
  • Operations that are not emulated return a JSON 501 Not Implemented error response.

Summary

Category✅ Supported⚠️ Partial
Operations66

Endpoints

Operations

OperationStatusNotesAWS Docs
CreateBackupVault✅ SupportedPUT /backup-vaults/{BackupVaultName}; BackupVaultTags is applied at create time, in the same store write as the vault (#1195)docs
DeleteBackupVault✅ SupportedDELETE /backup-vaults/{BackupVaultName}; empty 200, the modeled Unit outputdocs
DescribeBackupVault⚠️ PartialGET /backup-vaults/{BackupVaultName}; honours backupVaultAccountId. Vault lock and MPA approval are not emulated, so Locked is always false and the retention members are absentdocs
ListBackupVaults⚠️ PartialGET /backup-vaults; vaultType, shared, maxResults and nextToken query params. Every vault is a standard unshared vault, so shared=true lists nonedocs
CreateBackupPlan⚠️ PartialPUT /backup/plans; BackupPlanTags is applied at create time (#1195); AdvancedBackupSettings is not stored or returneddocs
DeleteBackupPlan✅ SupportedDELETE /backup/plans/{BackupPlanId}; returns the modeled id, ARN, VersionId and DeletionDatedocs
GetBackupPlan⚠️ PartialGET /backup/plans/{BackupPlanId}; only the current version is kept, so any other versionId is not found, and MaxScheduledRunsPreview yields no ScheduledRunsPreviewdocs
ListBackupPlans⚠️ PartialGET /backup/plans; maxResults and nextToken query params. Plans are deleted outright rather than tombstoned, so includeDeleted adds nothingdocs
UpdateBackupPlan⚠️ PartialPOST /backup/plans/{BackupPlanId}; mints a new VersionId per update. Prior versions are not retained and AdvancedBackupSettings is not storeddocs
TagResource✅ SupportedPOST /tags/{ResourceArn}, shared with Pipes/EKS/Scheduler/AppConfig/API Gateway’s ARN-dispatched path (#1195). Tags are stored inline on the vault or plan record, so they die with itdocs
ListTags✅ SupportedGET /tags/{ResourceArn} (#1195)docs
UntagResource✅ SupportedPOST /untag/{ResourceArn} — Backup’s own path, not another member of the shared /tags dispatcher (#1195)docs