Skip to content

moriyoshi/winterbaume

Repository files navigation

Winterbäume

Winterbäume

Winterbäume (stylised as Winterbaume) is a stateful AWS service emulator for integration testing. Real API behaviour. Embed in tests or run standalone.

Inspired by Python's moto.

Supported Services

Service Crate Protocol Operations moto floci kumo
Account winterbaume-account REST-JSON 15/15 (100.0%) 3/15 (20.0%) 0/15 (0.0%) 0/15 (0.0%)
ACM winterbaume-acm awsJson1.1 16/16 (100.0%) 11/16 (68.8%) 0/16 (0.0%) 6/16 (37.5%)
ACM PCA winterbaume-acmpca awsJson1.1 23/23 (100.0%) 17/23 (73.9%) 0/23 (0.0%) 0/23 (0.0%)
AMP/Prometheus winterbaume-amp REST-JSON 17/44 (38.6%) 17/44 (38.6%) 0/44 (0.0%) 0/44 (0.0%)
amplify winterbaume-amplify ? 23/37 (62.2%) 0/37 (0.0%) 0/37 (0.0%) 9/37 (24.3%)
API Gateway winterbaume-apigateway REST-JSON 119/124 (96.0%) 77/124 (62.1%) 62/124 (50.0%) 16/124 (12.9%)
API Gateway Management API winterbaume-apigatewaymanagement REST-JSON 3/3 (100.0%) 3/3 (100.0%) 0/3 (0.0%) 0/3 (0.0%)
API Gateway V2 winterbaume-apigatewayv2 REST-JSON 62/103 (60.2%) 54/103 (52.4%) 0/103 (0.0%) 0/103 (0.0%)
App Mesh winterbaume-appmesh REST-JSON 38/38 (100.0%) 0/38 (0.0%) 0/38 (0.0%) 25/38 (65.8%)
AppConfig winterbaume-appconfig REST-JSON 45/45 (100.0%) 15/45 (33.3%) 0/45 (0.0%) 0/45 (0.0%)
Application Auto Scaling winterbaume-applicationautoscaling awsJson1.1 14/14 (100.0%) 9/14 (64.3%) 0/14 (0.0%) 0/14 (0.0%)
apprunner winterbaume-apprunner ? 23/37 (62.2%) 0/37 (0.0%) 0/37 (0.0%) 0/37 (0.0%)
AppSync winterbaume-appsync REST-JSON 27/74 (36.5%) 27/74 (36.5%) 0/74 (0.0%) 3/74 (4.1%)
Athena winterbaume-athena awsJson1.1 23/70 (32.9%) 23/70 (32.9%) 0/70 (0.0%) 7/70 (10.0%)
auditmanager winterbaume-auditmanager ? 15/62 (24.2%) 0/62 (0.0%) 0/62 (0.0%) 0/62 (0.0%)
Aurora DSQL winterbaume-dsql REST-JSON 12/12 (100.0%) 5/12 (41.7%) 0/12 (0.0%) 0/12 (0.0%)
Auto Scaling winterbaume-autoscaling awsQuery 52/66 (78.8%) 39/66 (59.1%) 0/66 (0.0%) 0/66 (0.0%)
Backup winterbaume-backup REST-JSON 58/108 (53.7%) 17/108 (15.7%) 0/108 (0.0%) 12/108 (11.1%)
Batch winterbaume-batch REST-JSON 39/39 (100.0%) 24/39 (61.5%) 0/39 (0.0%) 10/39 (25.6%)
Bedrock winterbaume-bedrock REST-JSON 48/98 (49.0%) 13/98 (13.3%) 0/98 (0.0%) 0/98 (0.0%)
Bedrock Agent winterbaume-bedrockagent REST-JSON 72/72 (100.0%) 11/72 (15.3%) 0/72 (0.0%) 0/72 (0.0%)
Budgets winterbaume-budgets awsJson1.1 7/26 (26.9%) 7/26 (26.9%) 0/26 (0.0%) 0/26 (0.0%)
chatbot winterbaume-chatbot ? 15/34 (44.1%) 0/34 (0.0%) 0/34 (0.0%) 0/34 (0.0%)
clouddirectory winterbaume-clouddirectory ? 13/66 (19.7%) 13/66 (19.7%) 0/66 (0.0%) 0/66 (0.0%)
CloudFormation winterbaume-cloudformation awsQuery 43/90 (47.8%) 33/90 (36.7%) 0/90 (0.0%) 8/90 (8.9%)
CloudFront winterbaume-cloudfront REST-XML 167/167 (100.0%) 25/167 (15.0%) 0/167 (0.0%) 8/167 (4.8%)
CloudHSM v2 winterbaume-cloudhsmv2 awsJson1.1 18/18 (100.0%) 0/18 (0.0%) 0/18 (0.0%) 0/18 (0.0%)
CloudTrail winterbaume-cloudtrail awsJson1.1 23/60 (38.3%) 16/60 (26.7%) 0/60 (0.0%) 8/60 (13.3%)
CloudWatch winterbaume-cloudwatch awsQuery 43/43 (100.0%) 20/43 (46.5%) 0/43 (0.0%) 7/43 (16.3%)
CloudWatch Logs winterbaume-cloudwatchlogs awsJson1.1 108/108 (100.0%) 51/108 (47.2%) 0/108 (0.0%) 9/108 (8.3%)
codeartifact winterbaume-codeartifact ? 9/48 (18.8%) 0/48 (0.0%) 0/48 (0.0%) 0/48 (0.0%)
CodeBuild winterbaume-codebuild awsJson1.1 28/59 (47.5%) 9/59 (15.3%) 0/59 (0.0%) 0/59 (0.0%)
CodeCommit winterbaume-codecommit awsJson1.1 25/79 (31.6%) 3/79 (3.8%) 0/79 (0.0%) 0/79 (0.0%)
CodeDeploy winterbaume-codedeploy awsJson1.1 15/47 (31.9%) 14/47 (29.8%) 0/47 (0.0%) 0/47 (0.0%)
CodePipeline winterbaume-codepipeline awsJson1.1 8/44 (18.2%) 8/44 (18.2%) 0/44 (0.0%) 0/44 (0.0%)
Cognito Identity winterbaume-cognitoidentity awsJson1.1 23/23 (100.0%) 10/23 (43.5%) 0/23 (0.0%) 0/23 (0.0%)
Cognito Identity Provider winterbaume-cognitoidentityprovider awsJson1.1 122/122 (100.0%) 62/122 (50.8%) 34/122 (27.9%) 15/122 (12.3%)
Comprehend winterbaume-comprehend awsJson1.1 65/85 (76.5%) 63/85 (74.1%) 0/85 (0.0%) 12/85 (14.1%)
Config winterbaume-config awsJson1.1 49/97 (50.5%) 38/97 (39.2%) 0/97 (0.0%) 9/97 (9.3%)
Connect winterbaume-connect REST-JSON 10/367 (2.7%) 10/367 (2.7%) 0/367 (0.0%) 0/367 (0.0%)
Connect Campaigns winterbaume-connectcampaigns REST-JSON 14/22 (63.6%) 14/22 (63.6%) 0/22 (0.0%) 0/22 (0.0%)
Cost Explorer winterbaume-costexplorer awsJson1.1 47/47 (100.0%) 0/47 (0.0%) 0/47 (0.0%) 8/47 (17.0%)
Data Pipeline winterbaume-datapipeline awsJson1.1 19/19 (100.0%) 0/19 (0.0%) 0/19 (0.0%) 0/19 (0.0%)
Database Migration Service (DMS) winterbaume-databasemigrationservice awsJson1.1 42/119 (35.3%) 17/119 (14.3%) 0/119 (0.0%) 0/119 (0.0%)
DataBrew winterbaume-databrew REST-JSON 33/44 (75.0%) 24/44 (54.5%) 0/44 (0.0%) 0/44 (0.0%)
DataSync winterbaume-datasync awsJson1.1 8/53 (15.1%) 6/53 (11.3%) 0/53 (0.0%) 0/53 (0.0%)
DAX winterbaume-dax awsJson1.1 6/21 (28.6%) 6/21 (28.6%) 0/21 (0.0%) 0/21 (0.0%)
Direct Connect winterbaume-directconnect awsJson1.1 4/63 (6.3%) 0/63 (0.0%) 0/63 (0.0%) 0/63 (0.0%)
Directory Service winterbaume-directory awsJson1.1 4/80 (5.0%) 0/80 (0.0%) 0/80 (0.0%) 6/80 (7.5%)
DynamoDB winterbaume-dynamodb awsJson1.0 57/57 (100.0%) 39/57 (68.4%) 0/57 (0.0%) 12/57 (21.1%)
DynamoDB Streams winterbaume-dynamodbstreams awsJson1.0 4/4 (100.0%) 0/4 (0.0%) 0/4 (0.0%) 0/4 (0.0%)
EBS winterbaume-ebs REST-JSON 6/6 (100.0%) 6/6 (100.0%) 0/6 (0.0%) 0/6 (0.0%)
EC2 winterbaume-ec2 awsQuery 245/756 (32.4%) 219/756 (29.0%) 0/756 (0.0%) 27/756 (3.6%)
EC2 Instance Connect winterbaume-ec2instanceconnect awsJson1.0 2/2 (100.0%) 1/2 (50.0%) 0/2 (0.0%) 0/2 (0.0%)
ECR winterbaume-ecr awsJson1.1 58/58 (100.0%) 29/58 (50.0%) 0/58 (0.0%) 8/58 (13.8%)
ECS winterbaume-ecs awsJson1.1 64/64 (100.0%) 45/64 (70.3%) 0/64 (0.0%) 12/64 (18.8%)
EFS winterbaume-efs REST-JSON 31/31 (100.0%) 19/31 (61.3%) 0/31 (0.0%) 0/31 (0.0%)
EKS winterbaume-eks REST-JSON 59/64 (92.2%) 17/64 (26.6%) 0/64 (0.0%) 8/64 (12.5%)
Elastic Beanstalk winterbaume-stubs Stub (501)
ElastiCache winterbaume-elasticache awsQuery 24/75 (32.0%) 17/75 (22.7%) 0/75 (0.0%) 7/75 (9.3%)
elasticbeanstalk winterbaume-elasticbeanstalk ? 7/47 (14.9%) 0/47 (0.0%) 0/47 (0.0%) 7/47 (14.9%)
ELB winterbaume-elasticloadbalancing awsQuery 29/29 (100.0%) 21/29 (72.4%) 0/29 (0.0%) 0/29 (0.0%)
ELBv2 winterbaume-elasticloadbalancingv2 awsQuery 51/51 (100.0%) 33/51 (64.7%) 0/51 (0.0%) 10/51 (19.6%)
EMR winterbaume-emr awsJson1.1 38/60 (63.3%) 26/60 (43.3%) 0/60 (0.0%) 0/60 (0.0%)
EMR Containers winterbaume-emrcontainers REST-JSON 23/23 (100.0%) 8/23 (34.8%) 0/23 (0.0%) 0/23 (0.0%)
EMR Serverless winterbaume-emrserverless REST-JSON 16/16 (100.0%) 11/16 (68.8%) 0/16 (0.0%) 11/16 (68.8%)
EventBridge winterbaume-eventbridge awsJson1.1 57/57 (100.0%) 45/57 (78.9%) 0/57 (0.0%) 12/57 (21.1%)
EventBridge Pipes winterbaume-pipes REST-JSON 10/10 (100.0%) 6/10 (60.0%) 0/10 (0.0%) 10/10 (100.0%)
Firehose winterbaume-firehose awsJson1.1 12/12 (100.0%) 12/12 (100.0%) 0/12 (0.0%) 7/12 (58.3%)
Forecast winterbaume-forecast awsJson1.1 5/63 (7.9%) 5/63 (7.9%) 0/63 (0.0%) 17/63 (27.0%)
FSx winterbaume-fsx awsJson1.1 9/48 (18.8%) 9/48 (18.8%) 0/48 (0.0%) 0/48 (0.0%)
Glacier winterbaume-glacier REST-JSON 33/33 (100.0%) 10/33 (30.3%) 0/33 (0.0%) 4/33 (12.1%)
Glue winterbaume-glue awsJson1.1 132/265 (49.8%) 96/265 (36.2%) 0/265 (0.0%) 11/265 (4.2%)
Greengrass winterbaume-greengrass REST-JSON 71/92 (77.2%) 55/92 (59.8%) 0/92 (0.0%) 0/92 (0.0%)
GuardDuty winterbaume-guardduty REST-JSON 87/87 (100.0%) 12/87 (13.8%) 0/87 (0.0%) 0/87 (0.0%)
IAM winterbaume-iam awsQuery 176/176 (100.0%) 119/176 (67.6%) 0/176 (0.0%) 19/176 (10.8%)
Identity Store winterbaume-identitystore awsJson1.1 17/19 (89.5%) 14/19 (73.7%) 0/19 (0.0%) 0/19 (0.0%)
Inspector2 winterbaume-inspector2 REST-JSON 70/75 (93.3%) 19/75 (25.3%) 0/75 (0.0%) 0/75 (0.0%)
IoT winterbaume-iot REST-JSON 100/272 (36.8%) 100/272 (36.8%) 0/272 (0.0%) 0/272 (0.0%)
IoT Data Plane winterbaume-iotdataplane REST-JSON 8/8 (100.0%) 0/8 (0.0%) 0/8 (0.0%) 0/8 (0.0%)
IVS winterbaume-ivs REST-JSON 35/35 (100.0%) 6/35 (17.1%) 0/35 (0.0%) 0/35 (0.0%)
Kinesis winterbaume-kinesis awsJson1.1 38/39 (97.4%) 31/39 (79.5%) 0/39 (0.0%) 9/39 (23.1%)
Kinesis Analytics V2 winterbaume-kinesisanalyticsv2 awsJson1.1 33/33 (100.0%) 0/33 (0.0%) 0/33 (0.0%) 0/33 (0.0%)
Kinesis Video winterbaume-kinesisvideo REST-JSON 32/32 (100.0%) 0/32 (0.0%) 0/32 (0.0%) 0/32 (0.0%)
Kinesis Video Archived Media winterbaume-kinesisvideoarchivedmedia REST-JSON 6/6 (100.0%) 3/6 (50.0%) 0/6 (0.0%) 0/6 (0.0%)
KMS winterbaume-kms awsJson1.1 53/53 (100.0%) 40/53 (75.5%) 0/53 (0.0%) 12/53 (22.6%)
Lake Formation winterbaume-lakeformation REST-JSON 20/61 (32.8%) 20/61 (32.8%) 0/61 (0.0%) 0/61 (0.0%)
Lambda winterbaume-lambda REST-JSON 85/85 (100.0%) 46/85 (54.1%) 0/85 (0.0%) 12/85 (14.1%)
lexmodelsv2 winterbaume-lexmodelsv2 ? 60/107 (56.1%) 17/107 (15.9%) 0/107 (0.0%) 0/107 (0.0%)
Macie2 winterbaume-macie2 REST-JSON 81/81 (100.0%) 13/81 (16.0%) 0/81 (0.0%) 24/81 (29.6%)
Managed Blockchain winterbaume-managedblockchain REST-JSON 27/27 (100.0%) 20/27 (74.1%) 0/27 (0.0%) 0/27 (0.0%)
Marketplace Metering winterbaume-marketplacemetering awsJson1.1 4/4 (100.0%) 0/4 (0.0%) 0/4 (0.0%) 0/4 (0.0%)
MediaConnect winterbaume-mediaconnect REST-JSON 21/82 (25.6%) 18/82 (22.0%) 0/82 (0.0%) 0/82 (0.0%)
MediaLive winterbaume-medialive REST-JSON 13/123 (10.6%) 12/123 (9.8%) 0/123 (0.0%) 0/123 (0.0%)
MediaPackage winterbaume-mediapackage REST-JSON 9/19 (47.4%) 9/19 (47.4%) 0/19 (0.0%) 0/19 (0.0%)
MediaPackage v2 winterbaume-mediapackagev2 REST-JSON 7/30 (23.3%) 7/30 (23.3%) 0/30 (0.0%) 0/30 (0.0%)
MediaStore winterbaume-mediastore awsJson1.1 11/21 (52.4%) 11/21 (52.4%) 0/21 (0.0%) 0/21 (0.0%)
MediaStore Data winterbaume-mediastoredata REST-JSON 5/5 (100.0%) 4/5 (80.0%) 0/5 (0.0%) 0/5 (0.0%)
MemoryDB winterbaume-memorydb awsJson1.1 13/45 (28.9%) 13/45 (28.9%) 0/45 (0.0%) 10/45 (22.2%)
MQ winterbaume-mq REST-JSON 24/24 (100.0%) 19/24 (79.2%) 0/24 (0.0%) 6/24 (25.0%)
MSK winterbaume-kafka REST-JSON 10/59 (16.9%) 10/59 (16.9%) 0/59 (0.0%) 6/59 (10.2%)
Neptune winterbaume-neptune awsQuery 70/70 (100.0%) 46/70 (65.7%) 0/70 (0.0%) 6/70 (8.6%)
Network Firewall winterbaume-networkfirewall awsJson1.0 79/79 (100.0%) 5/79 (6.3%) 0/79 (0.0%) 0/79 (0.0%)
Network Manager winterbaume-networkmanager REST-JSON 56/95 (58.9%) 18/95 (18.9%) 0/95 (0.0%) 0/95 (0.0%)
OpenSearch winterbaume-opensearch REST-JSON 44/82 (53.7%) 11/82 (13.4%) 0/82 (0.0%) 0/82 (0.0%)
OpenSearch Ingestion winterbaume-osis REST-JSON 10/22 (45.5%) 10/22 (45.5%) 0/22 (0.0%) 0/22 (0.0%)
opensearchserverless winterbaume-opensearchserverless ? 12/46 (26.1%) 12/46 (26.1%) 0/46 (0.0%) 0/46 (0.0%)
Organizations winterbaume-organizations awsJson1.1 63/63 (100.0%) 41/63 (65.1%) 0/63 (0.0%) 11/63 (17.5%)
panorama winterbaume-panorama ? 11/34 (32.4%) 11/34 (32.4%) 0/34 (0.0%) 0/34 (0.0%)
Panorama winterbaume-stubs Stub (501)
Personalize winterbaume-personalize awsJson1.1 8/71 (11.3%) 4/71 (5.6%) 0/71 (0.0%) 0/71 (0.0%)
Pinpoint winterbaume-pinpoint REST-JSON 12/122 (9.8%) 12/122 (9.8%) 0/122 (0.0%) 0/122 (0.0%)
Polly winterbaume-polly REST-JSON 9/9 (100.0%) 5/9 (55.6%) 0/9 (0.0%) 0/9 (0.0%)
QuickSight winterbaume-quicksight REST-JSON 66/230 (28.7%) 31/230 (13.5%) 0/230 (0.0%) 0/230 (0.0%)
RAM winterbaume-ram REST-JSON 35/35 (100.0%) 8/35 (22.9%) 0/35 (0.0%) 0/35 (0.0%)
RDS winterbaume-rds awsQuery 150/163 (92.0%) 84/163 (51.5%) 0/163 (0.0%) 12/163 (7.4%)
RDS Data winterbaume-rdsdata REST-JSON 6/6 (100.0%) 1/6 (16.7%) 0/6 (0.0%) 0/6 (0.0%)
Redshift winterbaume-redshift awsQuery 103/141 (73.0%) 35/141 (24.8%) 0/141 (0.0%) 0/141 (0.0%)
Redshift Data winterbaume-redshiftdata awsJson1.1 11/11 (100.0%) 4/11 (36.4%) 0/11 (0.0%) 0/11 (0.0%)
Rekognition winterbaume-rekognition awsJson1.1 12/75 (16.0%) 8/75 (10.7%) 0/75 (0.0%) 13/75 (17.3%)
Resilience Hub winterbaume-resiliencehub REST-JSON 22/63 (34.9%) 17/63 (27.0%) 0/63 (0.0%) 17/63 (27.0%)
Resource Groups winterbaume-resourcegroups REST-JSON 23/23 (100.0%) 15/23 (65.2%) 0/23 (0.0%) 0/23 (0.0%)
Resource Groups Tagging winterbaume-resourcegroupstagging awsJson1.1 5/9 (55.6%) 0/9 (0.0%) 0/9 (0.0%) 0/9 (0.0%)
Route 53 winterbaume-route53 REST-XML 71/71 (100.0%) 30/71 (42.3%) 0/71 (0.0%) 6/71 (8.5%)
Route 53 Domains winterbaume-route53domains awsJson1.1 5/34 (14.7%) 0/34 (0.0%) 0/34 (0.0%) 0/34 (0.0%)
Route 53 Resolver winterbaume-route53resolver awsJson1.1 28/68 (41.2%) 28/68 (41.2%) 0/68 (0.0%) 11/68 (16.2%)
S3 winterbaume-s3 REST-XML 107/107 (100.0%) 73/107 (68.2%) 51/107 (47.7%) 19/107 (17.8%)
S3 Control winterbaume-s3control REST-JSON 82/97 (84.5%) 0/97 (0.0%) 0/97 (0.0%) 7/97 (7.2%)
S3 Tables winterbaume-s3tables REST-JSON 49/49 (100.0%) 14/49 (28.6%) 0/49 (0.0%) 12/49 (24.5%)
S3 Vectors winterbaume-s3vectors REST-JSON 19/19 (100.0%) 15/19 (78.9%) 0/19 (0.0%) 0/19 (0.0%)
SageMaker winterbaume-sagemaker awsJson1.1 142/381 (37.3%) 112/381 (29.4%) 0/381 (0.0%) 11/381 (2.9%)
SageMaker Metrics winterbaume-sagemakermetrics REST-JSON 2/2 (100.0%) 1/2 (50.0%) 0/2 (0.0%) 0/2 (0.0%)
SageMaker Runtime winterbaume-sagemakerruntime REST-JSON 3/3 (100.0%) 2/3 (66.7%) 0/3 (0.0%) 0/3 (0.0%)
Scheduler winterbaume-scheduler REST-JSON 12/12 (100.0%) 12/12 (100.0%) 0/12 (0.0%) 9/12 (75.0%)
Secrets Manager winterbaume-secretsmanager awsJson1.1 23/23 (100.0%) 21/23 (91.3%) 0/23 (0.0%) 8/23 (34.8%)
Security Hub winterbaume-securityhub REST-JSON 107/107 (100.0%) 13/107 (12.1%) 0/107 (0.0%) 0/107 (0.0%)
Service Catalog winterbaume-servicecatalog awsJson1.1 4/90 (4.4%) 0/90 (0.0%) 0/90 (0.0%) 0/90 (0.0%)
Service Catalog AppRegistry winterbaume-servicecatalogappregistry REST-JSON 24/24 (100.0%) 0/24 (0.0%) 0/24 (0.0%) 0/24 (0.0%)
Service Discovery winterbaume-servicediscovery awsJson1.1 27/30 (90.0%) 27/30 (90.0%) 0/30 (0.0%) 0/30 (0.0%)
Service Quotas winterbaume-servicequotas awsJson1.1 5/26 (19.2%) 2/26 (7.7%) 0/26 (0.0%) 8/26 (30.8%)
SES v1 winterbaume-ses awsQuery 40/71 (56.3%) 38/71 (53.5%) 0/71 (0.0%) 0/71 (0.0%)
SES v2 winterbaume-sesv2 REST-JSON 110/110 (100.0%) 28/110 (25.5%) 0/110 (0.0%) 9/110 (8.2%)
Shield winterbaume-shield awsJson1.1 9/36 (25.0%) 9/36 (25.0%) 0/36 (0.0%) 0/36 (0.0%)
Signer winterbaume-signer REST-JSON 19/19 (100.0%) 7/19 (36.8%) 0/19 (0.0%) 0/19 (0.0%)
SimpleDB v2 winterbaume-simpledbv2 REST-JSON 3/3 (100.0%) 0/3 (0.0%) 0/3 (0.0%) 0/3 (0.0%)
SNS winterbaume-sns awsQuery 42/42 (100.0%) 33/42 (78.6%) 0/42 (0.0%) 8/42 (19.0%)
SQS winterbaume-sqs awsJson1.0 23/23 (100.0%) 20/23 (87.0%) 0/23 (0.0%) 14/23 (60.9%)
SSM winterbaume-ssm awsJson1.1 146/146 (100.0%) 41/146 (28.1%) 0/146 (0.0%) 7/146 (4.8%)
SSO winterbaume-sso REST-JSON 4/4 (100.0%) 0/4 (0.0%) 0/4 (0.0%) 0/4 (0.0%)
ssoadmin winterbaume-ssoadmin ? 28/79 (35.4%) 25/79 (31.6%) 0/79 (0.0%) 0/79 (0.0%)
Step Functions winterbaume-sfn awsJson1.0 37/37 (100.0%) 24/37 (64.9%) 0/37 (0.0%) 9/37 (24.3%)
STS winterbaume-sts awsQuery 11/11 (100.0%) 6/11 (54.5%) 0/11 (0.0%) 6/11 (54.5%)
Support winterbaume-support awsJson1.1 6/16 (37.5%) 5/16 (31.2%) 0/16 (0.0%) 0/16 (0.0%)
SWF winterbaume-swf awsJson1.0 30/39 (76.9%) 19/39 (48.7%) 0/39 (0.0%) 0/39 (0.0%)
Synthetics winterbaume-synthetics REST-JSON 22/22 (100.0%) 4/22 (18.2%) 0/22 (0.0%) 0/22 (0.0%)
Textract winterbaume-textract awsJson1.1 6/25 (24.0%) 5/25 (20.0%) 0/25 (0.0%) 0/25 (0.0%)
Timestream InfluxDB winterbaume-timestreaminfluxdb awsJson1.0 19/19 (100.0%) 13/19 (68.4%) 0/19 (0.0%) 0/19 (0.0%)
Timestream Query winterbaume-timestreamquery awsJson1.0 15/15 (100.0%) 6/15 (40.0%) 0/15 (0.0%) 0/15 (0.0%)
Timestream Write winterbaume-timestreamwrite awsJson1.0 19/19 (100.0%) 15/19 (78.9%) 0/19 (0.0%) 0/19 (0.0%)
Transcribe winterbaume-transcribe awsJson1.1 16/43 (37.2%) 16/43 (37.2%) 0/43 (0.0%) 0/43 (0.0%)
Transfer winterbaume-transfer awsJson1.1 44/71 (62.0%) 8/71 (11.3%) 0/71 (0.0%) 0/71 (0.0%)
VPC Lattice winterbaume-vpclattice REST-JSON 68/73 (93.2%) 22/73 (30.1%) 0/73 (0.0%) 0/73 (0.0%)
WAFv2 winterbaume-wafv2 awsJson1.1 38/55 (69.1%) 29/55 (52.7%) 0/55 (0.0%) 0/55 (0.0%)
WorkSpaces winterbaume-workspaces awsJson1.1 50/91 (54.9%) 16/91 (17.6%) 0/91 (0.0%) 0/91 (0.0%)
WorkSpaces Web winterbaume-workspacesweb REST-JSON 68/75 (90.7%) 27/75 (36.0%) 0/75 (0.0%) 0/75 (0.0%)
X-Ray winterbaume-xray REST-JSON 38/38 (100.0%) 0/38 (0.0%) 0/38 (0.0%) 6/38 (15.8%)

winterbaume: 6228 / 10456 operations across 164 services (59.6%)

moto: 3250 / 10456 operations across 164 services (31.1%)

floci: 147 / 10456 operations across 164 services (1.4%)

kumo: 648 / 10456 operations across 164 services (6.2%)

Usage

Library mode (in-process)

use winterbaume_core::MockAws;
use winterbaume_sts::StsService;
use winterbaume_iam::IamService;
use winterbaume_s3::S3Service;

let mock = MockAws::builder()
    .with_service(StsService::new())
    .with_service(IamService::new())
    .with_service(S3Service::new())
    .build();

let config = aws_config::defaults(BehaviorVersion::latest())
    .http_client(mock.http_client())
    .credentials_provider(mock.credentials_provider())
    .region("us-east-1")
    .load()
    .await;

let sts = aws_sdk_sts::Client::new(&config);
let resp = sts.get_caller_identity().send().await.unwrap();
assert_eq!(resp.account(), Some("123456789012"));

Standalone HTTP server

For non-Rust clients, winterbaume-server provides a standalone HTTP server:

cargo run -p winterbaume-server -- --host 127.0.0.1 --port 5555

Point the AWS SDK at it:

export AWS_ENDPOINT_URL=http://localhost:5555
aws s3 mb s3://my-bucket

Architecture

  • winterbaume-core -- shared infrastructure: MockAws builder, MockService trait, per-account/region state management, HTTP client/connector bridge.
  • winterbaume-{service} -- each service crate implements MockService with its own protocol handling and in-memory state.
  • winterbaume-server -- hyper-based HTTP server that registers all service backends.

State is partitioned per account ID and region, matching real AWS isolation semantics.

FAQ

What is the difference between Winterbaume and moto?

Winterbaume targets the Rust AWS SDK directly. It provides an in-process HTTP client for aws-sdk-rust, so tests can run without standing up an external mock service. The project also tracks moto coverage and behaviour closely, and vendors moto as a reference implementation.

When should I use library mode instead of the standalone server?

Use library mode when you are writing Rust tests against aws-sdk-rust and want the fastest setup with no network I/O. Use winterbaume-server when you need to point non-Rust clients, CLIs, or external processes at a mock AWS endpoint over HTTP.

What happens if a service is listed as a stub?

Stub services are routable, but they do not implement service behaviour yet. Requests reach the correct service endpoint shape and then return 501 Not Implemented.

What happens if an operation is not implemented yet?

Behaviour depends on the service. Fully stubbed services return 501 Not Implemented, while partially implemented services only support the operations listed in the coverage table above.

Does Winterbaume keep state between requests?

Yes. State is stored in memory and isolated by account ID and region so repeated SDK calls can observe changes made by earlier requests in the same mock environment.

What is Winterbaume named after?

It is a multilingual pun built around the reference project name moto. "Winter tree" is the literal reading, but the real joke is the sound and imagery of a Japanese pop-culture name hiding in plain sight.

License

Apache-2.0. See LICENSE for the full text.

This project vendors moto (Copyright 2012 Steve Pulec, Apache-2.0) as a reference implementation under vendor/moto/. See NOTICE for third-party attribution details.

About

Stateful AWS service mocking for aws-sdk-rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors