Skip to content

Cloud Control API

CloudMock emulates the AWS Cloud Control API, providing a uniform CRUD interface for managing AWS resources. It supports routing to underlying service implementations for S3 buckets, DynamoDB tables, SQS queues, and SNS topics.

OperationStatusNotes
CreateResourceSupportedCreates a resource; routes to underlying service for supported types
GetResourceSupportedReturns resource details
ListResourcesSupportedLists resources of a given type
UpdateResourceSupportedUpdates a resource
DeleteResourceSupportedDeletes a resource
GetResourceRequestStatusSupportedReturns the status of an async request
ListResourceRequestsSupportedLists all resource requests
  • AWS::S3::Bucket
  • AWS::DynamoDB::Table
  • AWS::SQS::Queue
  • AWS::SNS::Topic
import { CloudControlClient, CreateResourceCommand } from '@aws-sdk/client-cloudcontrol';
const client = new CloudControlClient({
endpoint: 'http://localhost:4566',
region: 'us-east-1',
credentials: { accessKeyId: 'test', secretAccessKey: 'test' },
});
const result = await client.send(new CreateResourceCommand({
TypeName: 'AWS::S3::Bucket',
DesiredState: JSON.stringify({ BucketName: 'my-bucket' }),
}));
console.log(result.ProgressEvent);
import boto3
import json
client = boto3.client('cloudcontrol',
endpoint_url='http://localhost:4566',
region_name='us-east-1',
aws_access_key_id='test',
aws_secret_access_key='test')
response = client.create_resource(
TypeName='AWS::S3::Bucket',
DesiredState=json.dumps({'BucketName': 'my-bucket'}))
print(response['ProgressEvent'])
cloudmock.yml
services:
cloudcontrol:
enabled: true
  • Only a subset of resource types are supported (S3, DynamoDB, SQS, SNS)
  • Unsupported resource types are stored generically without service-specific validation
  • Resource type schemas are not enforced