Cloud Control API
Protocol: JSON 1.1 (X-Amz-Target: CloudApiService.*)
Endpoint: POST http://localhost:4566/
Cloud Control provides a uniform CRUD(L) surface over CloudFormation resource types
(AWS::S3::Bucket, AWS::EC2::Instance, ...) instead of a bespoke API per service.
Floci's emulator reuses the same resource provisioner CloudFormation stacks call, so a
resource behaves consistently whether it's provisioned by a stack or directly through
Cloud Control.
Supported Operations
| Operation | Description |
|---|---|
CreateResource |
Provision a resource of the given TypeName from a DesiredState JSON document |
DeleteResource |
Delete a resource by TypeName and Identifier |
GetResource |
Read a resource's current properties by TypeName and Identifier |
ListResources |
List resources of a TypeName |
GetResourceRequestStatus |
Poll a CreateResource/DeleteResource request by its token |
Behavior
- Asynchronous create/delete:
CreateResourcereturns anIN_PROGRESSProgressEventand a request token immediately; provisioning runs in the background. PollGetResourceRequestStatuswith the token until the status isSUCCESSorFAILED.DeleteResourceis synchronous (deletes are fast enough not to need polling) but still returns aProgressEventfor API-shape consistency. ListResources/GetResourcetype coverage: the read side listsAWS::S3::Bucket,AWS::EC2::VPC,AWS::EC2::Subnet,AWS::EC2::SecurityGroup,AWS::EC2::Instance,AWS::EC2::LaunchTemplate,AWS::IAM::Role,AWS::IAM::User, andAWS::IAM::InstanceProfile.CreateResourceaccepts any type the underlying CloudFormation resource provisioner supports (the same set stacks can provision), which is broader than the read side. A resource created through Cloud Control but outside the read-side type list is still readable viaGetResource, from create-time state, but will not appear inListResources.- Delete needs create-time state: types whose delete depends on attributes
captured at create time (currently
AWS::EKS::NodegroupandAWS::IAM::Policy, plus anyCustom::*/AWS::CloudFormation::CustomResource) failDeleteResourcewith a clear error if that state isn't held, rather than reportingSUCCESSover a resource that's still there. - No account context: Cloud Control requests don't carry an account id; Floci uses
its default test account (
000000000000) for all resources.