Documentation
¶
Overview ¶
Package kumo provides a public API for running an in-process AWS service emulator.
Usage:
srv := kumo.NewServer()
defer srv.Close()
client := s3.NewFromConfig(cfg, func(o *s3.Options) {
o.BaseEndpoint = aws.String(srv.URL)
})
Package kumo provides a lightweight AWS service emulator for CI/CD environments.
Index ¶
Constants ¶
const Version = "0.28.1"
Version is the current version of kumo.
Variables ¶
This section is empty.
Functions ¶
func NewTestServer ¶
NewTestServer creates a new in-process AWS emulator server that uses the httptest in-memory network instead of a loopback listener, which makes it usable from within a testing/synctest bubble. It requires Go 1.27 or later.
The server is shut down automatically when the test ends. Requests must be sent with the client returned by httptest.Server.Client, since the server is not reachable over the loopback network. That client routes every request to the server regardless of the destination address, so the base endpoint can be any URL:
srv := kumo.NewTestServer(t)
client := s3.NewFromConfig(cfg, func(o *s3.Options) {
o.BaseEndpoint = aws.String("http://example.com")
o.HTTPClient = srv.Client()
})
Types ¶
type Server ¶
type Server struct {
// URL is the base URL of the server in the form "http://host:port".
URL string
// contains filtered or unexported fields
}
Server is an in-process AWS service emulator. It wraps httptest.Server to provide a familiar API for Go testing.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package cli provides the kumo CLI for managing AWS resources on a kumo server.
|
Package cli provides the kumo CLI for managing AWS resources on a kumo server. |
|
cmd
|
|
|
cli-gen
command
Command cli-gen discovers CLI-able actions from kumo's service registry (see internal/cligen) and renders generated Cobra command files (cli/gen_{service}.go).
|
Command cli-gen discovers CLI-able actions from kumo's service registry (see internal/cligen) and renders generated Cobra command files (cli/gen_{service}.go). |
|
kumo
command
Package main is the entry point for the kumo CLI.
|
Package main is the entry point for the kumo CLI. |
|
readme-gen
command
Command readme-gen regenerates the README "Supported Services" section from each registered service's Meta().
|
Command readme-gen regenerates the README "Supported Services" section from each registered service's Meta(). |
|
internal
|
|
|
awsname
Package awsname holds resource-name validators shared between AWS service emulators (currently SNS topics, SQS queues — same character rules, different length caps).
|
Package awsname holds resource-name validators shared between AWS service emulators (currently SNS topics, SQS queues — same character rules, different length caps). |
|
catalog
Package catalog renders the README "Supported Services" section from the registered services.
|
Package catalog renders the README "Supported Services" section from the registered services. |
|
cligen
Package cligen discovers CLI-able actions from kumo's service registry and renders generated Cobra command files (cli/gen_{service}.go).
|
Package cligen discovers CLI-able actions from kumo's service registry and renders generated Cobra command files (cli/gen_{service}.go). |
|
initdir
Package initdir executes shell scripts from a directory after kumo starts.
|
Package initdir executes shell scripts from a directory after kumo starts. |
|
registry
Package registry blank-imports every kumo service so that importing it registers the full service catalog via each service's init().
|
Package registry blank-imports every kumo service so that importing it registers the full service catalog via each service's init(). |
|
server
Package server provides the HTTP server for kumo.
|
Package server provides the HTTP server for kumo. |
|
service
Package service provides interfaces and utilities for AWS service implementations.
|
Package service provides interfaces and utilities for AWS service implementations. |
|
service/acm
Package acm provides ACM service emulation for kumo.
|
Package acm provides ACM service emulation for kumo. |
|
service/amp
Package amp provides emulation for Amazon Managed Service for Prometheus.
|
Package amp provides emulation for Amazon Managed Service for Prometheus. |
|
service/amplify
Package amplify implements the AWS Amplify service handlers.
|
Package amplify implements the AWS Amplify service handlers. |
|
service/apigateway
Package apigateway provides API Gateway service emulation for kumo.
|
Package apigateway provides API Gateway service emulation for kumo. |
|
service/apigatewayv2
Package apigatewayv2 provides API Gateway v2 (HTTP API) service emulation for kumo.
|
Package apigatewayv2 provides API Gateway v2 (HTTP API) service emulation for kumo. |
|
service/appmesh
Package appmesh provides the AWS App Mesh service implementation.
|
Package appmesh provides the AWS App Mesh service implementation. |
|
service/appsync
Package appsync provides AWS AppSync service emulation for kumo.
|
Package appsync provides AWS AppSync service emulation for kumo. |
|
service/athena
Package athena provides Athena service emulation for kumo.
|
Package athena provides Athena service emulation for kumo. |
|
service/backup
Package backup provides an AWS Backup service emulator.
|
Package backup provides an AWS Backup service emulator. |
|
service/batch
Package batch provides AWS Batch service emulation for kumo.
|
Package batch provides AWS Batch service emulation for kumo. |
|
service/ce
Package ce provides AWS Cost Explorer service emulation.
|
Package ce provides AWS Cost Explorer service emulation. |
|
service/cloudcontrol
Package cloudcontrol provides AWS Cloud Control API emulation, letting clients that target Cloud Control — most notably terraform-provider-awscc — drive any kumo-modeled resource through the same six CRUD operations.
|
Package cloudcontrol provides AWS Cloud Control API emulation, letting clients that target Cloud Control — most notably terraform-provider-awscc — drive any kumo-modeled resource through the same six CRUD operations. |
|
service/cloudformation
Package cloudformation provides CloudFormation service emulation for kumo.
|
Package cloudformation provides CloudFormation service emulation for kumo. |
|
service/cloudfront
Package cloudfront provides CloudFront service emulation for kumo.
|
Package cloudfront provides CloudFront service emulation for kumo. |
|
service/cloudfront/cache
Package cache implements the cache rule evaluation CloudFront performs at the edge, per RFC 7234 + the CloudFront-specific extensions documented at:
|
Package cache implements the cache rule evaluation CloudFront performs at the edge, per RFC 7234 + the CloudFront-specific extensions documented at: |
|
service/cloudtrail
Package cloudtrail provides a mock implementation of AWS CloudTrail.
|
Package cloudtrail provides a mock implementation of AWS CloudTrail. |
|
service/cloudwatch
Package cloudwatch provides CloudWatch metrics service emulation for kumo.
|
Package cloudwatch provides CloudWatch metrics service emulation for kumo. |
|
service/cloudwatchlogs
Package cloudwatchlogs provides CloudWatch Logs service emulation for kumo.
|
Package cloudwatchlogs provides CloudWatch Logs service emulation for kumo. |
|
service/codeconnections
Package codeconnections provides AWS CodeConnections service emulation.
|
Package codeconnections provides AWS CodeConnections service emulation. |
|
service/codeguruprofiler
Package codeguruprofiler implements the AWS CodeGuru Profiler service.
|
Package codeguruprofiler implements the AWS CodeGuru Profiler service. |
|
service/codegurureviewer
Package codegurureviewer implements the AWS CodeGuru Reviewer service.
|
Package codegurureviewer implements the AWS CodeGuru Reviewer service. |
|
service/cognito
Package cognito provides AWS Cognito Identity Provider service emulation.
|
Package cognito provides AWS Cognito Identity Provider service emulation. |
|
service/comprehend
Package comprehend provides an in-memory implementation of AWS Comprehend.
|
Package comprehend provides an in-memory implementation of AWS Comprehend. |
|
service/configservice
Package configservice provides a mock implementation of AWS Config.
|
Package configservice provides a mock implementation of AWS Config. |
|
service/dataexchange
Package dataexchange provides an AWS Data Exchange service emulator.
|
Package dataexchange provides an AWS Data Exchange service emulator. |
|
service/dlm
Package dlm provides Data Lifecycle Manager service emulation for kumo.
|
Package dlm provides Data Lifecycle Manager service emulation for kumo. |
|
service/documentdb
Package documentdb implements the DocumentDB service handlers.
|
Package documentdb implements the DocumentDB service handlers. |
|
service/dynamodb
Package dynamodb provides DynamoDB service emulation for kumo.
|
Package dynamodb provides DynamoDB service emulation for kumo. |
|
service/dynamodbstreams
Package dynamodbstreams provides a mock implementation of AWS DynamoDB Streams.
|
Package dynamodbstreams provides a mock implementation of AWS DynamoDB Streams. |
|
service/ebs
Package ebs provides AWS EBS direct API service emulation.
|
Package ebs provides AWS EBS direct API service emulation. |
|
service/ec2
Package ec2 provides EC2 service emulation for kumo.
|
Package ec2 provides EC2 service emulation for kumo. |
|
service/ecr
Package ecr provides a mock implementation of AWS Elastic Container Registry.
|
Package ecr provides a mock implementation of AWS Elastic Container Registry. |
|
service/ecs
Package ecs implements the Amazon ECS service emulator.
|
Package ecs implements the Amazon ECS service emulator. |
|
service/eks
Package eks provides an EKS service emulator.
|
Package eks provides an EKS service emulator. |
|
service/elasticache
Package elasticache implements the ElastiCache service handlers.
|
Package elasticache implements the ElastiCache service handlers. |
|
service/elasticbeanstalk
Package elasticbeanstalk provides AWS Elastic Beanstalk service emulation.
|
Package elasticbeanstalk provides AWS Elastic Beanstalk service emulation. |
|
service/elbv2
Package elbv2 provides ELB v2 service emulation for kumo.
|
Package elbv2 provides ELB v2 service emulation for kumo. |
|
service/emrserverless
Package emrserverless provides the EMR Serverless service implementation.
|
Package emrserverless provides the EMR Serverless service implementation. |
|
service/entityresolution
Package entityresolution provides an AWS Entity Resolution service emulator.
|
Package entityresolution provides an AWS Entity Resolution service emulator. |
|
service/eventbridge
Package eventbridge provides AWS EventBridge service emulation.
|
Package eventbridge provides AWS EventBridge service emulation. |
|
service/execapi
Package execapi provides the shared execute-api data-plane engine used by the API Gateway v1 (REST) and v2 (HTTP) services: it builds the Lambda proxy-integration event, invokes the function via kumo's own Lambda invoke endpoint (delegating execution to the function's InvokeEndpoint), unwraps the proxy response envelope, and forwards HTTP_PROXY integrations.
|
Package execapi provides the shared execute-api data-plane engine used by the API Gateway v1 (REST) and v2 (HTTP) services: it builds the Lambda proxy-integration event, invokes the function via kumo's own Lambda invoke endpoint (delegating execution to the function's InvokeEndpoint), unwraps the proxy response envelope, and forwards HTTP_PROXY integrations. |
|
service/finspace
Package finspace provides an in-memory implementation of AWS FinSpace.
|
Package finspace provides an in-memory implementation of AWS FinSpace. |
|
service/firehose
Package firehose provides a mock implementation of Amazon Data Firehose.
|
Package firehose provides a mock implementation of Amazon Data Firehose. |
|
service/forecast
Package forecast provides Amazon Forecast service emulation.
|
Package forecast provides Amazon Forecast service emulation. |
|
service/gamelift
Package gamelift provides a mock implementation of AWS GameLift.
|
Package gamelift provides a mock implementation of AWS GameLift. |
|
service/glacier
Package glacier provides AWS Glacier service emulation.
|
Package glacier provides AWS Glacier service emulation. |
|
service/globalaccelerator
Package globalaccelerator provides AWS Global Accelerator service emulation.
|
Package globalaccelerator provides AWS Global Accelerator service emulation. |
|
service/glue
Package glue provides AWS Glue service emulation for kumo.
|
Package glue provides AWS Glue service emulation for kumo. |
|
service/iam
Package iam provides IAM service emulation for kumo.
|
Package iam provides IAM service emulation for kumo. |
|
service/kafka
Package kafka provides an MSK (Managed Streaming for Apache Kafka) service emulator.
|
Package kafka provides an MSK (Managed Streaming for Apache Kafka) service emulator. |
|
service/kinesis
Package kinesis provides a mock implementation of AWS Kinesis Data Streams.
|
Package kinesis provides a mock implementation of AWS Kinesis Data Streams. |
|
service/kms
Package kms provides AWS KMS service emulation.
|
Package kms provides AWS KMS service emulation. |
|
service/lambda
Package lambda provides Lambda service emulation for kumo.
|
Package lambda provides Lambda service emulation for kumo. |
|
service/location
Package location provides a mock implementation of Amazon Location Service.
|
Package location provides a mock implementation of Amazon Location Service. |
|
service/macie2
Package macie2 provides a mock implementation of Amazon Macie2.
|
Package macie2 provides a mock implementation of Amazon Macie2. |
|
service/memorydb
Package memorydb provides AWS MemoryDB service emulation.
|
Package memorydb provides AWS MemoryDB service emulation. |
|
service/mq
Package mq provides Amazon MQ service emulation for kumo.
|
Package mq provides Amazon MQ service emulation for kumo. |
|
service/neptune
Package neptune implements the Neptune service handlers.
|
Package neptune implements the Neptune service handlers. |
|
service/organizations
Package organizations provides AWS Organizations service emulation.
|
Package organizations provides AWS Organizations service emulation. |
|
service/pipes
Package pipes implements the AWS EventBridge Pipes service emulation.
|
Package pipes implements the AWS EventBridge Pipes service emulation. |
|
service/rds
Package rds implements the RDS service handlers.
|
Package rds implements the RDS service handlers. |
|
service/redshift
Package redshift implements the Redshift service handlers.
|
Package redshift implements the Redshift service handlers. |
|
service/rekognition
Package rekognition provides AWS Rekognition service emulation.
|
Package rekognition provides AWS Rekognition service emulation. |
|
service/resiliencehub
Package resiliencehub provides an in-memory implementation of AWS Resilience Hub.
|
Package resiliencehub provides an in-memory implementation of AWS Resilience Hub. |
|
service/route53
Package route53 provides an implementation of AWS Route 53 service.
|
Package route53 provides an implementation of AWS Route 53 service. |
|
service/route53resolver
Package route53resolver provides Route 53 Resolver service emulation for kumo.
|
Package route53resolver provides Route 53 Resolver service emulation for kumo. |
|
service/s3
Package s3 provides S3 service emulation for kumo.
|
Package s3 provides S3 service emulation for kumo. |
|
service/s3control
Package s3control implements the AWS S3 Control service.
|
Package s3control implements the AWS S3 Control service. |
|
service/s3tables
Package s3tables provides S3 Tables service emulation for kumo.
|
Package s3tables provides S3 Tables service emulation for kumo. |
|
service/sagemaker
Package sagemaker provides SageMaker service emulation for kumo.
|
Package sagemaker provides SageMaker service emulation for kumo. |
|
service/scheduler
Package scheduler provides EventBridge Scheduler service emulation for kumo.
|
Package scheduler provides EventBridge Scheduler service emulation for kumo. |
|
service/secretsmanager
Package secretsmanager provides Secrets Manager service emulation for kumo.
|
Package secretsmanager provides Secrets Manager service emulation for kumo. |
|
service/securitylake
Package securitylake provides an in-memory implementation of AWS Security Lake.
|
Package securitylake provides an in-memory implementation of AWS Security Lake. |
|
service/servicequotas
Package servicequotas provides AWS Service Quotas service emulation.
|
Package servicequotas provides AWS Service Quotas service emulation. |
|
service/ses
Package ses provides SES v1 service emulation for kumo.
|
Package ses provides SES v1 service emulation for kumo. |
|
service/sesv2
Package sesv2 provides SES v2 service emulation for kumo.
|
Package sesv2 provides SES v2 service emulation for kumo. |
|
service/sfn
Package sfn provides a mock implementation of AWS Step Functions.
|
Package sfn provides a mock implementation of AWS Step Functions. |
|
service/sns
Package sns provides SNS service emulation for kumo.
|
Package sns provides SNS service emulation for kumo. |
|
service/sqs
Package sqs provides SQS service emulation for kumo.
|
Package sqs provides SQS service emulation for kumo. |
|
service/ssm
Package ssm provides SSM Parameter Store service emulation for kumo.
|
Package ssm provides SSM Parameter Store service emulation for kumo. |
|
service/sts
Package sts implements the AWS Security Token Service handlers.
|
Package sts implements the AWS Security Token Service handlers. |
|
service/xray
Package xray provides AWS X-Ray service emulation for kumo.
|
Package xray provides AWS X-Ray service emulation for kumo. |
|
storage
Package storage provides common storage utilities.
|
Package storage provides common storage utilities. |
|
streams
Package streams provides a shared event store for DynamoDB Streams.
|
Package streams provides a shared event store for DynamoDB Streams. |