Skip to content

Services Overview

Floci emulates 51 AWS services on a single port (4566). All services use the real AWS wire protocol, your existing AWS CLI commands and SDK clients work without modification.

This page is the canonical reference for supported service and operation counts. Some services expose separate control-plane and data-plane rows below. Other docs (and the README) should link here rather than duplicating the table.

Service Matrix

Operation counts are exact. For dispatch-table services (Query and JSON 1.1) each count reflects one case per AWS action in the handler. For REST-based services (S3, Lambda, API Gateway v1) the count reflects distinct AWS SDK operations, collapsing routes where one JAX-RS handler fans out via query-string or header markers (e.g. PUT /{bucket}/{key}PutObject, PutObjectTagging, PutObjectAcl, etc.).

Service Endpoint Protocol Supported operations
SSM POST / + X-Amz-Target: AmazonSSM.* JSON 1.1 12
SQS POST / with Action= param Query / JSON 20
SNS POST / with Action= param Query / JSON 17
S3 /{bucket}/{key} REST XML 58
DynamoDB POST / + X-Amz-Target: DynamoDB_20120810.* JSON 1.1 28
DynamoDB Streams POST / + X-Amz-Target: DynamoDBStreams_20120810.* JSON 1.1 4
Lambda /2015-03-31/functions/... REST JSON 30
API Gateway v1 /restapis/... REST JSON 64
API Gateway v2 /v2/apis/... REST JSON 48 + data-plane
IAM POST / with Action= param Query 68
STS POST / with Action= param Query 7
Cognito POST / + X-Amz-Target: AWSCognitoIdentityProviderService.* JSON 1.1 43
KMS POST / + X-Amz-Target: TrentService.* JSON 1.1 23
Kinesis POST / + X-Amz-Target: Kinesis_20131202.* JSON 1.1 24
Secrets Manager POST / + X-Amz-Target: secretsmanager.* JSON 1.1 16
Step Functions POST / + X-Amz-Target: AmazonStatesService.* JSON 1.1 19
CloudFormation POST / with Action= param Query 19
EventBridge POST / + X-Amz-Target: AmazonEventBridge.* JSON 1.1 16
EventBridge Scheduler /schedules/*, /schedule-groups/*, /tags/* REST JSON 12
CloudWatch Logs POST / + X-Amz-Target: Logs.* JSON 1.1 17
CloudWatch Metrics POST / with Action= or JSON 1.1 Query / JSON 11
ElastiCache POST / with Action= param + TCP proxy Query + RESP 8
RDS POST / with Action= param + TCP proxy Query + wire 14
MSK /v1/clusters/..., /api/v2/clusters/... + Redpanda broker REST JSON + Kafka 8
Athena POST / + X-Amz-Target: AmazonAthena.* JSON 1.1 4
Glue POST / + X-Amz-Target: AWSGlue.* JSON 1.1 32
Data Firehose POST / + X-Amz-Target: Firehose_20150804.* JSON 1.1 6
ECS POST / + X-Amz-Target: AmazonEC2ContainerServiceV20141113.* JSON 1.1 58
EC2 POST / with Action= param EC2 Query 61
ACM POST / + X-Amz-Target: CertificateManager.* JSON 1.1 12
ECR POST / + X-Amz-Target: AmazonEC2ContainerRegistry_V20150921.* (control plane) and /v2/... (data plane via registry:2) JSON 1.1 + OCI Distribution 17
SES POST / with Action= param Query 16
SES v2 /v2/email/* REST JSON 10
OpenSearch /2021-01-01/opensearch/... REST JSON 24
AppConfig /applications/..., /deploymentstrategies/... REST JSON 16
AppConfigData /configurationsessions, /configuration REST JSON 2
Bedrock Runtime /model/{modelId}/converse, /model/{modelId}/invoke REST JSON 2 (stub; streaming returns 501)
EKS /clusters, /clusters/{name}, /tags/{resourceArn} REST JSON 7
ELB v2 POST / with Action= param Query 34
Auto Scaling POST / with Action= param Query 33
CodeBuild POST / + X-Amz-Target: CodeBuild_20161006.* JSON 1.1 20
CodeDeploy POST / + X-Amz-Target: CodeDeploy_20141006.* JSON 1.1 30
AWS Backup /backup-vaults/*, /backup/plans/*, /backup-jobs/*, /supported-resource-types REST JSON 20
Route53 /2013-04-01/hostedzone/*, /2013-04-01/healthcheck/*, /2013-04-01/change/* REST XML 17
AWS Config POST / + X-Amz-Target: StarlingDoveService.* JSON 1.1 20
Textract POST / + X-Amz-Target: Textract.* JSON 1.1 6
Pricing POST / + X-Amz-Target: AWSPriceListService.* JSON 1.1 5
Cost Explorer POST / + X-Amz-Target: AWSInsightsIndexService.* JSON 1.1 9
Cost and Usage Reports POST / + X-Amz-Target: AWSOrigamiServiceGatewayService.* JSON 1.1 6
BCM Data Exports POST / + X-Amz-Target: AWSBillingAndCostManagementDataExports.* JSON 1.1 7
Transfer Family POST / + X-Amz-Target: TransferService.* JSON 1.1 17

Lambda, ElastiCache, RDS, MSK, ECS, EKS, and OpenSearch spin up real Docker containers and support IAM authentication and SigV4 request signing, the same auth flow as production AWS.

ECR runs a shared registry:2 container so the stock docker client can push and pull image bytes against repositories returned by the AWS-shaped control plane. EKS (real mode) starts a k3s container per cluster and exposes the Kubernetes API server on a host port. OpenSearch (real mode) starts an opensearchproject/opensearch container per domain and exposes the data-plane REST API on a host port.

Common Setup

Before calling any service, configure your AWS client to point to Floci:

export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test

AWS_ENDPOINT_URL is the standard env var recognised by the AWS CLI v2 and AWS SDKs v2+, so no --endpoint-url flag is needed on each command.