service

package
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package service provides interfaces and utilities for AWS service implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(svc Service)

Register adds a service to the global registry. This is typically called from init() in each service package.

Types

type CBORProtocolService

type CBORProtocolService interface {
	// ServiceName returns the Smithy service name used in the URL path.
	// e.g., "GraniteServiceVersion20100801" for CloudWatch
	ServiceName() string

	// DispatchCBORAction handles the RPC v2 CBOR protocol request.
	// The operation name is extracted from the URL path.
	DispatchCBORAction(w http.ResponseWriter, r *http.Request, operation string)

	// CBORProtocol is a marker method for CBOR protocol services.
	CBORProtocol()
}

CBORProtocolService is an optional interface for services using Smithy RPC v2 CBOR protocol. Services implementing this interface will have their handlers dispatched via URL-based routing: /service/{serviceName}/operation/{operationName}.

type Handler

type Handler interface {
	// ServeHTTP handles the HTTP request.
	ServeHTTP(w http.ResponseWriter, r *http.Request)
}

Handler is the interface for operation handlers.

type JSONProtocolService

type JSONProtocolService interface {
	// TargetPrefix returns the X-Amz-Target prefix for this service.
	// e.g., "AmazonSQS" for SQS, "DynamoDB_20120810" for DynamoDB
	TargetPrefix() string

	// DispatchAction handles the JSON protocol request after routing.
	DispatchAction(w http.ResponseWriter, r *http.Request)

	// JSONProtocol is a marker method to distinguish from QueryProtocolService.
	JSONProtocol()
}

JSONProtocolService is an optional interface for services using AWS JSON 1.0 protocol. Services implementing this interface will have their handlers dispatched via a unified POST / endpoint based on the X-Amz-Target header.

type QueryProtocolService

type QueryProtocolService interface {
	// TargetPrefix returns the target prefix for this service.
	// This is used to set the X-Amz-Target header after converting
	// the Query request to JSON format.
	// e.g., "AmazonSimpleNotificationService" for SNS
	TargetPrefix() string

	// DispatchAction handles the request after Query-to-JSON conversion.
	DispatchAction(w http.ResponseWriter, r *http.Request)

	// Actions returns the list of action names this service handles.
	// This is used by the dispatcher to route requests to the correct service.
	Actions() []string

	// QueryProtocol is a marker method to distinguish from JSONProtocolService.
	QueryProtocol()
}

QueryProtocolService is an optional interface for services using AWS Query protocol. Services implementing this interface will have their handlers dispatched via a unified POST / endpoint, with form data converted to JSON before dispatch.

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry manages service registration and discovery.

func NewRegistry

func NewRegistry() *Registry

NewRegistry creates a new service registry.

func (*Registry) All

func (r *Registry) All() []Service

All returns all registered services.

func (*Registry) Get

func (r *Registry) Get(name string) (Service, bool)

Get returns a service by name.

func (*Registry) Names

func (r *Registry) Names() []string

Names returns the names of all registered services.

func (*Registry) Register

func (r *Registry) Register(svc Service)

Register adds a service to the registry.

type Router

type Router interface {
	// Handle registers a handler for the given method and pattern.
	Handle(method, pattern string, handler http.HandlerFunc)

	// HandleFunc is an alias for Handle for compatibility.
	HandleFunc(method, pattern string, handler http.HandlerFunc)
}

Router is the interface for registering HTTP routes.

type Service

type Service interface {
	// Name returns the service name (e.g., "s3", "sqs", "dynamodb").
	Name() string

	// RegisterRoutes registers the service's routes with the router.
	RegisterRoutes(r Router)
}

Service is the common interface for all AWS service implementations.

func Services

func Services() []Service

Services returns all services from the global registry.

Directories

Path Synopsis
Package acm provides ACM service emulation for kumo.
Package acm provides ACM service emulation for kumo.
Package amplify implements the AWS Amplify service handlers.
Package amplify implements the AWS Amplify service handlers.
Package apigateway provides API Gateway service emulation for kumo.
Package apigateway provides API Gateway service emulation for kumo.
Package appmesh provides the AWS App Mesh service implementation.
Package appmesh provides the AWS App Mesh service implementation.
Package appsync provides AWS AppSync service emulation for kumo.
Package appsync provides AWS AppSync service emulation for kumo.
Package athena provides Athena service emulation for kumo.
Package athena provides Athena service emulation for kumo.
Package backup provides an AWS Backup service emulator.
Package backup provides an AWS Backup service emulator.
Package batch provides AWS Batch service emulation for kumo.
Package batch provides AWS Batch service emulation for kumo.
Package ce provides AWS Cost Explorer service emulation.
Package ce provides AWS Cost Explorer service emulation.
Package cloudformation provides CloudFormation service emulation for kumo.
Package cloudformation provides CloudFormation service emulation for kumo.
Package cloudfront provides CloudFront service emulation for kumo.
Package cloudfront provides CloudFront service emulation for kumo.
Package cloudtrail provides a mock implementation of AWS CloudTrail.
Package cloudtrail provides a mock implementation of AWS CloudTrail.
Package cloudwatch provides CloudWatch metrics service emulation for kumo.
Package cloudwatch provides CloudWatch metrics service emulation for kumo.
Package cloudwatchlogs provides CloudWatch Logs service emulation for kumo.
Package cloudwatchlogs provides CloudWatch Logs service emulation for kumo.
Package codeconnections provides AWS CodeConnections service emulation.
Package codeconnections provides AWS CodeConnections service emulation.
Package codeguruprofiler implements the AWS CodeGuru Profiler service.
Package codeguruprofiler implements the AWS CodeGuru Profiler service.
Package codegurureviewer implements the AWS CodeGuru Reviewer service.
Package codegurureviewer implements the AWS CodeGuru Reviewer service.
Package cognito provides AWS Cognito Identity Provider service emulation.
Package cognito provides AWS Cognito Identity Provider service emulation.
Package comprehend provides an in-memory implementation of AWS Comprehend.
Package comprehend provides an in-memory implementation of AWS Comprehend.
Package configservice provides a mock implementation of AWS Config.
Package configservice provides a mock implementation of AWS Config.
Package dataexchange provides an AWS Data Exchange service emulator.
Package dataexchange provides an AWS Data Exchange service emulator.
Package dlm provides Data Lifecycle Manager service emulation for kumo.
Package dlm provides Data Lifecycle Manager service emulation for kumo.
Package dynamodb provides DynamoDB service emulation for kumo.
Package dynamodb provides DynamoDB service emulation for kumo.
Package ebs provides AWS EBS direct API service emulation.
Package ebs provides AWS EBS direct API service emulation.
Package ec2 provides EC2 service emulation for kumo.
Package ec2 provides EC2 service emulation for kumo.
Package ecr provides a mock implementation of AWS Elastic Container Registry.
Package ecr provides a mock implementation of AWS Elastic Container Registry.
Package ecs implements the Amazon ECS service emulator.
Package ecs implements the Amazon ECS service emulator.
Package eks provides an EKS service emulator.
Package eks provides an EKS service emulator.
Package elasticache implements the ElastiCache service handlers.
Package elasticache implements the ElastiCache service handlers.
Package elasticbeanstalk provides AWS Elastic Beanstalk service emulation.
Package elasticbeanstalk provides AWS Elastic Beanstalk service emulation.
Package elbv2 provides ELB v2 service emulation for kumo.
Package elbv2 provides ELB v2 service emulation for kumo.
Package emrserverless provides the EMR Serverless service implementation.
Package emrserverless provides the EMR Serverless service implementation.
Package entityresolution provides an AWS Entity Resolution service emulator.
Package entityresolution provides an AWS Entity Resolution service emulator.
Package eventbridge provides AWS EventBridge service emulation.
Package eventbridge provides AWS EventBridge service emulation.
Package finspace provides an in-memory implementation of AWS FinSpace.
Package finspace provides an in-memory implementation of AWS FinSpace.
Package firehose provides a mock implementation of Amazon Data Firehose.
Package firehose provides a mock implementation of Amazon Data Firehose.
Package forecast provides Amazon Forecast service emulation.
Package forecast provides Amazon Forecast service emulation.
Package gamelift provides a mock implementation of AWS GameLift.
Package gamelift provides a mock implementation of AWS GameLift.
Package glacier provides AWS Glacier service emulation.
Package glacier provides AWS Glacier service emulation.
Package globalaccelerator provides AWS Global Accelerator service emulation.
Package globalaccelerator provides AWS Global Accelerator service emulation.
Package glue provides AWS Glue service emulation for kumo.
Package glue provides AWS Glue service emulation for kumo.
Package iam provides IAM service emulation for kumo.
Package iam provides IAM service emulation for kumo.
Package kafka provides an MSK (Managed Streaming for Apache Kafka) service emulator.
Package kafka provides an MSK (Managed Streaming for Apache Kafka) service emulator.
Package kinesis provides a mock implementation of AWS Kinesis Data Streams.
Package kinesis provides a mock implementation of AWS Kinesis Data Streams.
Package kms provides AWS KMS service emulation.
Package kms provides AWS KMS service emulation.
Package lambda provides Lambda service emulation for kumo.
Package lambda provides Lambda service emulation for kumo.
Package memorydb provides AWS MemoryDB service emulation.
Package memorydb provides AWS MemoryDB service emulation.
Package mq provides Amazon MQ service emulation for kumo.
Package mq provides Amazon MQ service emulation for kumo.
Package organizations provides AWS Organizations service emulation.
Package organizations provides AWS Organizations service emulation.
Package pipes implements the AWS EventBridge Pipes service emulation.
Package pipes implements the AWS EventBridge Pipes service emulation.
Package rds implements the RDS service handlers.
Package rds implements the RDS service handlers.
Package rekognition provides AWS Rekognition service emulation.
Package rekognition provides AWS Rekognition service emulation.
Package resiliencehub provides an in-memory implementation of AWS Resilience Hub.
Package resiliencehub provides an in-memory implementation of AWS Resilience Hub.
Package route53 provides an implementation of AWS Route 53 service.
Package route53 provides an implementation of AWS Route 53 service.
Package route53resolver provides Route 53 Resolver service emulation for kumo.
Package route53resolver provides Route 53 Resolver service emulation for kumo.
Package s3 provides S3 service emulation for kumo.
Package s3 provides S3 service emulation for kumo.
Package s3control implements the AWS S3 Control service.
Package s3control implements the AWS S3 Control service.
Package s3tables provides S3 Tables service emulation for kumo.
Package s3tables provides S3 Tables service emulation for kumo.
Package sagemaker provides SageMaker service emulation for kumo.
Package sagemaker provides SageMaker service emulation for kumo.
Package scheduler provides EventBridge Scheduler service emulation for kumo.
Package scheduler provides EventBridge Scheduler service emulation for kumo.
Package secretsmanager provides Secrets Manager service emulation for kumo.
Package secretsmanager provides Secrets Manager service emulation for kumo.
Package securitylake provides an in-memory implementation of AWS Security Lake.
Package securitylake provides an in-memory implementation of AWS Security Lake.
Package servicequotas provides AWS Service Quotas service emulation.
Package servicequotas provides AWS Service Quotas service emulation.
Package sesv2 provides SES v2 service emulation for kumo.
Package sesv2 provides SES v2 service emulation for kumo.
Package sfn provides a mock implementation of AWS Step Functions.
Package sfn provides a mock implementation of AWS Step Functions.
Package sns provides SNS service emulation for kumo.
Package sns provides SNS service emulation for kumo.
Package sqs provides SQS service emulation for kumo.
Package sqs provides SQS service emulation for kumo.
Package ssm provides SSM Parameter Store service emulation for kumo.
Package ssm provides SSM Parameter Store service emulation for kumo.
Package sts implements the AWS Security Token Service handlers.
Package sts implements the AWS Security Token Service handlers.
Package xray provides AWS X-Ray service emulation for kumo.
Package xray provides AWS X-Ray service emulation for kumo.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL