winterbaume-cloudfront
CloudFront service implementation for winterbaume.
Coverage
| Metric | Value |
|---|---|
| Service | CloudFront |
| AWS model | cloudfront |
| Protocol | restXml |
| winterbaume coverage | 156/167 operations (93.4%) |
| stubs (routed, returns empty/default) | 11/167 operations (6.6%) |
| moto coverage | 25/167 operations (15.0%) |
| floci coverage | 0/167 operations (0.0%) |
| kumo coverage | 8/167 operations (4.8%) |
| Coverage report date | 2026-05-13 |
Server-mode usage
Start winterbaume-server and point the AWS CLI at it:
sh
cargo run -p winterbaume-server -- --host 127.0.0.1 --port 5555sh
export AWS_ENDPOINT_URL=http://localhost:5555
aws cloudfront list-distributionsCurrent Network Resource Stub Semantics
CloudFront currently models VPC origins as CloudFront-owned records.
CreateVpcOriginstores the suppliedVpcOriginEndpointConfiginsideCloudFrontState.vpc_originswith generated CloudFront VPC origin ID, ARN, timestamps, status, and ETag.UpdateVpcOriginreplaces the stored endpoint config after optional ETag matching, andDeleteVpcOriginremoves the local record.- The endpoint config is not resolved against EC2, ELBv2, or security group state; the status is CloudFront-local metadata rather than the result of endpoint provisioning.
- The implementation does not consult
winterbaume-ec2state for these identifiers, so it does not check that referenced VPCs, subnets, security groups, VPC endpoints, network interfaces, or load balancers exist, belong to the same VPC, or are in a usable lifecycle state.
Example
rust
use aws_sdk_cloudfront::config::BehaviorVersion;
use winterbaume_cloudfront::CloudFrontService;
use winterbaume_core::MockAws;
#[tokio::main]
async fn main() {
let mock = MockAws::builder()
.with_service(CloudFrontService::new())
.build();
let config = aws_config::defaults(BehaviorVersion::latest())
.http_client(mock.http_client())
.credentials_provider(mock.credentials_provider())
.region(aws_sdk_cloudfront::config::Region::new("us-east-1"))
.load()
.await;
let client = aws_sdk_cloudfront::Client::new(&config);
let resp = client
.list_distributions()
.send()
.await
.expect("list_distributions should succeed");
let count = resp
.distribution_list()
.map(|l| l.items().len())
.unwrap_or(0);
println!("Distributions: {}", count);
}Implemented APIs (156)
AssociateAliasAssociateDistributionTenantWebACLAssociateDistributionWebACLCopyDistributionCreateAnycastIpListCreateCachePolicyCreateCloudFrontOriginAccessIdentityCreateConnectionFunctionCreateConnectionGroupCreateContinuousDeploymentPolicyCreateDistributionCreateDistributionTenantCreateDistributionWithTagsCreateFieldLevelEncryptionConfigCreateFieldLevelEncryptionProfileCreateFunctionCreateInvalidationCreateInvalidationForDistributionTenantCreateKeyGroupCreateKeyValueStoreCreateMonitoringSubscriptionCreateOriginAccessControlCreateOriginRequestPolicyCreatePublicKeyCreateRealtimeLogConfigCreateResponseHeadersPolicyCreateStreamingDistributionCreateStreamingDistributionWithTagsCreateTrustStoreCreateVpcOriginDeleteAnycastIpListDeleteCachePolicyDeleteCloudFrontOriginAccessIdentityDeleteConnectionFunctionDeleteConnectionGroupDeleteContinuousDeploymentPolicyDeleteDistributionDeleteDistributionTenantDeleteFieldLevelEncryptionConfigDeleteFieldLevelEncryptionProfileDeleteFunctionDeleteKeyGroupDeleteKeyValueStoreDeleteMonitoringSubscriptionDeleteOriginAccessControlDeleteOriginRequestPolicyDeletePublicKeyDeleteRealtimeLogConfigDeleteResourcePolicyDeleteResponseHeadersPolicyDeleteStreamingDistributionDeleteTrustStoreDeleteVpcOriginDescribeConnectionFunctionDescribeFunctionDescribeKeyValueStoreDisassociateDistributionTenantWebACLDisassociateDistributionWebACLGetAnycastIpListGetCachePolicyGetCachePolicyConfigGetCloudFrontOriginAccessIdentityGetCloudFrontOriginAccessIdentityConfigGetConnectionFunctionGetConnectionGroupGetConnectionGroupByRoutingEndpointGetContinuousDeploymentPolicyGetContinuousDeploymentPolicyConfigGetDistributionGetDistributionConfigGetDistributionTenantGetDistributionTenantByDomainGetFieldLevelEncryptionGetFieldLevelEncryptionConfigGetFieldLevelEncryptionProfileGetFieldLevelEncryptionProfileConfigGetFunctionGetInvalidationGetInvalidationForDistributionTenantGetKeyGroupGetKeyGroupConfigGetMonitoringSubscriptionGetOriginAccessControlGetOriginAccessControlConfigGetOriginRequestPolicyGetOriginRequestPolicyConfigGetPublicKeyGetPublicKeyConfigGetRealtimeLogConfigGetResourcePolicyGetResponseHeadersPolicyGetResponseHeadersPolicyConfigGetStreamingDistributionGetStreamingDistributionConfigGetTrustStoreGetVpcOriginListAnycastIpListsListCachePoliciesListCloudFrontOriginAccessIdentitiesListConnectionFunctionsListConnectionGroupsListContinuousDeploymentPoliciesListDistributionTenantsListDistributionTenantsByCustomizationListDistributionsListDistributionsByAnycastIpListIdListDistributionsByCachePolicyIdListDistributionsByKeyGroupListDistributionsByOriginRequestPolicyIdListDistributionsByResponseHeadersPolicyIdListDistributionsByVpcOriginIdListDistributionsByWebACLIdListFieldLevelEncryptionConfigsListFieldLevelEncryptionProfilesListFunctionsListInvalidationsListInvalidationsForDistributionTenantListKeyGroupsListKeyValueStoresListOriginAccessControlsListOriginRequestPoliciesListPublicKeysListRealtimeLogConfigsListResponseHeadersPoliciesListStreamingDistributionsListTagsForResourceListTrustStoresListVpcOriginsPublishConnectionFunctionPublishFunctionPutResourcePolicyTagResourceUntagResourceUpdateAnycastIpListUpdateCachePolicyUpdateCloudFrontOriginAccessIdentityUpdateConnectionFunctionUpdateConnectionGroupUpdateContinuousDeploymentPolicyUpdateDistributionUpdateDistributionTenantUpdateDistributionWithStagingConfigUpdateDomainAssociationUpdateFieldLevelEncryptionConfigUpdateFieldLevelEncryptionProfileUpdateFunctionUpdateKeyGroupUpdateKeyValueStoreUpdateOriginAccessControlUpdateOriginRequestPolicyUpdatePublicKeyUpdateRealtimeLogConfigUpdateResponseHeadersPolicyUpdateStreamingDistributionUpdateTrustStoreUpdateVpcOrigin
Stubbed APIs (11) — routed but return an empty/default response
GetManagedCertificateDetailsListConflictingAliasesListDistributionsByConnectionFunctionListDistributionsByConnectionModeListDistributionsByOwnedResourceListDistributionsByRealtimeLogConfigListDistributionsByTrustStoreListDomainConflictsTestConnectionFunctionTestFunctionVerifyDnsConfiguration