Documentation
¶
Index ¶
- Constants
- Variables
- type ConfigProvider
- type Consumer
- type CreateStreamInput
- type DecreaseStreamRetentionPeriodInput
- type DeleteResourcePolicyInput
- type DeleteStreamInput
- type DeregisterStreamConsumerInput
- type DescribeAccountSettingsOutput
- type DescribeStreamConsumerInput
- type DescribeStreamConsumerOutput
- type DescribeStreamInput
- type DescribeStreamOutput
- type DisableEnhancedMonitoringInput
- type DisableEnhancedMonitoringOutput
- type EnableEnhancedMonitoringInput
- type EnableEnhancedMonitoringOutput
- type GetRecordResult
- type GetRecordsInput
- type GetRecordsOutput
- type GetResourcePolicyInput
- type GetResourcePolicyOutput
- type GetShardIteratorInput
- type GetShardIteratorOutput
- type Handler
- func (h *Handler) ChaosOperations() []string
- func (h *Handler) ChaosRegions() []string
- func (h *Handler) ChaosServiceName() string
- func (h *Handler) ExecuteFISAction(ctx context.Context, action service.FISActionExecution) error
- func (h *Handler) ExtractOperation(c *echo.Context) string
- func (h *Handler) ExtractResource(c *echo.Context) string
- func (h *Handler) FISActions() []service.FISActionDefinition
- func (h *Handler) GetSupportedOperations() []string
- func (h *Handler) Handler() echo.HandlerFunc
- func (h *Handler) MatchPriority() int
- func (h *Handler) Name() string
- func (h *Handler) Purge(ctx context.Context, cutoff time.Time)
- func (h *Handler) Reset()
- func (h *Handler) Restore(ctx context.Context, data []byte) error
- func (h *Handler) RouteMatcher() service.Matcher
- func (h *Handler) Snapshot(ctx context.Context) []byte
- func (h *Handler) StartWorker(ctx context.Context) error
- func (h *Handler) StopWorker()
- func (h *Handler) WithJanitor(interval time.Duration, taskTimeout ...time.Duration) *Handler
- type InMemoryBackend
- func (b *InMemoryBackend) AddStreamInternal(stream *Stream)
- func (b *InMemoryBackend) CountOpenShards(ctx context.Context) int
- func (b *InMemoryBackend) CreateStream(ctx context.Context, input *CreateStreamInput) error
- func (b *InMemoryBackend) DecreaseStreamRetentionPeriod(ctx context.Context, input *DecreaseStreamRetentionPeriodInput) error
- func (b *InMemoryBackend) DeleteResourcePolicy(ctx context.Context, input *DeleteResourcePolicyInput) error
- func (b *InMemoryBackend) DeleteStream(ctx context.Context, input *DeleteStreamInput) error
- func (b *InMemoryBackend) DeregisterStreamConsumer(ctx context.Context, input *DeregisterStreamConsumerInput) error
- func (b *InMemoryBackend) DescribeAccountSettings(ctx context.Context) (*DescribeAccountSettingsOutput, error)
- func (b *InMemoryBackend) DescribeStream(ctx context.Context, input *DescribeStreamInput) (*DescribeStreamOutput, error)
- func (b *InMemoryBackend) DescribeStreamConsumer(ctx context.Context, input *DescribeStreamConsumerInput) (*DescribeStreamConsumerOutput, error)
- func (b *InMemoryBackend) DisableEnhancedMonitoring(ctx context.Context, input *DisableEnhancedMonitoringInput) (*DisableEnhancedMonitoringOutput, error)
- func (b *InMemoryBackend) EnableEnhancedMonitoring(ctx context.Context, input *EnableEnhancedMonitoringInput) (*EnableEnhancedMonitoringOutput, error)
- func (b *InMemoryBackend) GetRecords(ctx context.Context, input *GetRecordsInput) (*GetRecordsOutput, error)
- func (b *InMemoryBackend) GetResourcePolicy(ctx context.Context, input *GetResourcePolicyInput) (*GetResourcePolicyOutput, error)
- func (b *InMemoryBackend) GetShardIterator(ctx context.Context, input *GetShardIteratorInput) (*GetShardIteratorOutput, error)
- func (b *InMemoryBackend) IncreaseStreamRetentionPeriod(ctx context.Context, input *IncreaseStreamRetentionPeriodInput) error
- func (b *InMemoryBackend) ListAll(_ context.Context) []StreamInfo
- func (b *InMemoryBackend) ListShards(ctx context.Context, input *ListShardsInput) (*ListShardsOutput, error)
- func (b *InMemoryBackend) ListStreamConsumers(ctx context.Context, input *ListStreamConsumersInput) (*ListStreamConsumersOutput, error)
- func (b *InMemoryBackend) ListStreams(ctx context.Context, input *ListStreamsInput) (*ListStreamsOutput, error)
- func (b *InMemoryBackend) ListTagsForResource(ctx context.Context, input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error)
- func (b *InMemoryBackend) MergeShards(ctx context.Context, input *MergeShardsInput) error
- func (b *InMemoryBackend) Purge(ctx context.Context, cutoff time.Time)
- func (b *InMemoryBackend) PutRecord(ctx context.Context, input *PutRecordInput) (*PutRecordOutput, error)
- func (b *InMemoryBackend) PutRecords(ctx context.Context, input *PutRecordsInput) (*PutRecordsOutput, error)
- func (b *InMemoryBackend) PutResourcePolicy(ctx context.Context, input *PutResourcePolicyInput) error
- func (b *InMemoryBackend) Region() string
- func (b *InMemoryBackend) RegisterStreamConsumer(ctx context.Context, input *RegisterStreamConsumerInput) (*RegisterStreamConsumerOutput, error)
- func (b *InMemoryBackend) Reset()
- func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error
- func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte
- func (b *InMemoryBackend) SplitShard(ctx context.Context, input *SplitShardInput) error
- func (b *InMemoryBackend) StartStreamEncryption(ctx context.Context, input *StartStreamEncryptionInput) error
- func (b *InMemoryBackend) StopStreamEncryption(ctx context.Context, input *StopStreamEncryptionInput) error
- func (b *InMemoryBackend) SubscribeToShard(ctx context.Context, input *SubscribeToShardInput) (*SubscribeToShardOutput, error)
- func (b *InMemoryBackend) TagResource(ctx context.Context, input *TagResourceInput) error
- func (b *InMemoryBackend) TaggedStreams() []TaggedEntry
- func (b *InMemoryBackend) UntagResource(ctx context.Context, input *UntagResourceInput) error
- func (b *InMemoryBackend) UpdateAccountSettings(_ context.Context, input *UpdateAccountSettingsInput) error
- func (b *InMemoryBackend) UpdateMaxRecordSize(ctx context.Context, input *UpdateMaxRecordSizeInput) error
- func (b *InMemoryBackend) UpdateShardCount(ctx context.Context, input *UpdateShardCountInput) (*UpdateShardCountOutput, error)
- func (b *InMemoryBackend) UpdateStreamMode(ctx context.Context, input *UpdateStreamModeInput) error
- func (b *InMemoryBackend) UpdateStreamWarmThroughput(ctx context.Context, input *UpdateStreamWarmThroughputInput) error
- func (b *InMemoryBackend) WithKMSValidator(v KMSKeyValidator) *InMemoryBackend
- type IncreaseStreamRetentionPeriodInput
- type Janitor
- type KMSKeyValidator
- type ListShardsInput
- type ListShardsOutput
- type ListStreamConsumersInput
- type ListStreamConsumersOutput
- type ListStreamsInput
- type ListStreamsOutput
- type ListTagsForResourceInput
- type ListTagsForResourceOutput
- type MergeShardsInput
- type Provider
- type PutRecordInput
- type PutRecordOutput
- type PutRecordsEntry
- type PutRecordsInput
- type PutRecordsOutput
- type PutRecordsResultEntry
- type PutResourcePolicyInput
- type Record
- type RegisterStreamConsumerInput
- type RegisterStreamConsumerOutput
- type Settings
- type Shard
- type ShardDescription
- type ShardIterator
- type SplitShardInput
- type StartStreamEncryptionInput
- type StartingPosition
- type StopStreamEncryptionInput
- type StorageBackend
- type Stream
- type StreamInfo
- type StreamModeDetails
- type SubscribeToShardEvent
- type SubscribeToShardInput
- type SubscribeToShardOutput
- type TagResourceInput
- type TaggedEntry
- type UntagResourceInput
- type UpdateAccountSettingsInput
- type UpdateMaxRecordSizeInput
- type UpdateShardCountInput
- type UpdateShardCountOutput
- type UpdateStreamModeInput
- type UpdateStreamWarmThroughputInput
Constants ¶
const ( // StreamModeProvisioned is the PROVISIONED stream mode. StreamModeProvisioned = "PROVISIONED" // StreamModeOnDemand is the ON_DEMAND stream mode. StreamModeOnDemand = "ON_DEMAND" )
Variables ¶
var ( ErrStreamNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound) ErrStreamAlreadyExists = awserr.New("ResourceInUseException", awserr.ErrAlreadyExists) ErrInvalidArgument = awserr.New("InvalidArgumentException", awserr.ErrInvalidParameter) ErrUnknownAction = errors.New("UnknownOperationException") ErrShardIteratorExpired = errors.New("ExpiredIteratorException") ErrConsumerNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound) ErrConsumerAlreadyExists = awserr.New("ResourceInUseException", awserr.ErrAlreadyExists) ErrResourcePolicyNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound) ErrProvisionedThroughputExceeded = awserr.New( "ProvisionedThroughputExceededException", errRateExceeded, ) ErrTagLimitExceeded = awserr.New("LimitExceededException", awserr.ErrInvalidParameter) ErrLimitExceeded = awserr.New("LimitExceededException", awserr.ErrInvalidParameter) // ErrKMSNotFound indicates the KMS key referenced by StartStreamEncryption's // KeyId does not exist. Only reachable when a KMSKeyValidator is wired via // WithKMSValidator (see stream_encryption.go); with no validator wired, // KeyId is format-checked only, matching pre-existing behavior for // deployments that don't wire cross-service KMS validation. ErrKMSNotFound = errors.New("KMSNotFoundException") // ErrKMSDisabled indicates the KMS key exists but is disabled or pending // deletion/import, matching the real KMSDisabledException/ // KMSInvalidStateException split (see stream_encryption.go for which // applies to which key state). ErrKMSDisabled = errors.New("KMSDisabledException") // ErrKMSInvalidState indicates the KMS key is in a state (e.g. pending // deletion, pending import) that doesn't allow use for encryption. ErrKMSInvalidState = errors.New("KMSInvalidStateException") // ErrKMSAccessDenied is modeled per the real aws-sdk-go-v2/service/kinesis // error set for StartStreamEncryption/StopStreamEncryption/ // UpdateMaxRecordSize (types.KMSAccessDeniedException), but gopherstack has // no IAM/key-policy evaluation engine to ever produce it -- defined for // wire-shape completeness and left with no trigger path (see PARITY.md gaps). ErrKMSAccessDenied = errors.New("KMSAccessDeniedException") )
Sentinel errors for Kinesis operations.
var ErrNilAppContext = errors.New("kinesis: AppContext must not be nil")
ErrNilAppContext is returned by Init when the AppContext is nil.
var ErrShardCountScaling = errors.New(
"UpdateShardCount cannot scale by more than double or less than half " +
"of the current shard count within a single call",
)
ErrShardCountScaling indicates that an UpdateShardCount target fell outside the AWS per-call scaling window: within a single call the target shard count may not be more than double or less than half of the current open shard count. AWS surfaces this as ValidationException. The sentinel's message is the error text returned to the client.
var ErrValidation = errors.New("kinesis: validation error")
ErrValidation is the sentinel error for Kinesis input validation failures.
Functions ¶
This section is empty.
Types ¶
type ConfigProvider ¶
type ConfigProvider interface {
GetKinesisSettings() Settings
}
ConfigProvider is a private interface to extract Kinesis configuration from the abstract AppContext Config.
type Consumer ¶
type Consumer struct {
ConsumerCreationTimestamp time.Time `json:"consumerCreationTimestamp"`
ConsumerName string `json:"consumerName"`
ConsumerARN string `json:"consumerARN"`
ConsumerStatus string `json:"consumerStatus"`
StreamARN string `json:"streamARN"`
}
Consumer represents a registered Kinesis enhanced fan-out consumer.
type CreateStreamInput ¶
type CreateStreamInput struct {
StreamName string
Region string
AccountID string
StreamMode string
ShardCount int
}
CreateStreamInput is the input for CreateStream.
type DecreaseStreamRetentionPeriodInput ¶
DecreaseStreamRetentionPeriodInput is the input for DecreaseStreamRetentionPeriod.
type DeleteResourcePolicyInput ¶
type DeleteResourcePolicyInput struct {
ResourceARN string
}
DeleteResourcePolicyInput is the input for DeleteResourcePolicy.
type DeleteStreamInput ¶
type DeleteStreamInput struct {
StreamName string
}
DeleteStreamInput is the input for DeleteStream.
type DeregisterStreamConsumerInput ¶
type DeregisterStreamConsumerInput struct {
StreamARN string
ConsumerARN string
ConsumerName string
}
DeregisterStreamConsumerInput is the input for DeregisterStreamConsumer.
type DescribeAccountSettingsOutput ¶
type DescribeAccountSettingsOutput struct {
ShardLimit int
OnDemandStreamCount int
OnDemandStreamCountLimit int
}
DescribeAccountSettingsOutput is the output for DescribeAccountSettings.
type DescribeStreamConsumerInput ¶
DescribeStreamConsumerInput is the input for DescribeStreamConsumer.
type DescribeStreamConsumerOutput ¶
type DescribeStreamConsumerOutput struct {
ConsumerDescription Consumer
}
DescribeStreamConsumerOutput is the output for DescribeStreamConsumer.
type DescribeStreamInput ¶
type DescribeStreamInput struct {
StreamName string
// ExclusiveStartShardID resumes shard pagination after the given shard ID.
ExclusiveStartShardID string
// Limit caps the number of ShardDescription entries returned (AWS default
// 100, max 10000). Zero means "use the AWS default".
Limit int
}
DescribeStreamInput is the input for DescribeStream.
type DescribeStreamOutput ¶
type DescribeStreamOutput struct {
StreamCreationTimestamp time.Time
StreamName string
StreamARN string
StreamStatus string
EncryptionType string
StreamMode string
KeyID string
Shards []ShardDescription
EnhancedMonitoring []string
RetentionPeriodHours int
// HasMoreShards indicates the shard list was truncated by Limit and more
// shards can be fetched with a follow-up call using ExclusiveStartShardID.
HasMoreShards bool
}
DescribeStreamOutput is the output for DescribeStream.
type DisableEnhancedMonitoringInput ¶
DisableEnhancedMonitoringInput is the input for DisableEnhancedMonitoring.
type DisableEnhancedMonitoringOutput ¶
type DisableEnhancedMonitoringOutput struct {
StreamName string
CurrentShardLevelMetrics []string
DesiredShardLevelMetrics []string
}
DisableEnhancedMonitoringOutput is the output for DisableEnhancedMonitoring.
type EnableEnhancedMonitoringInput ¶
EnableEnhancedMonitoringInput is the input for EnableEnhancedMonitoring.
type EnableEnhancedMonitoringOutput ¶
type EnableEnhancedMonitoringOutput struct {
StreamName string
CurrentShardLevelMetrics []string
DesiredShardLevelMetrics []string
}
EnableEnhancedMonitoringOutput is the output for EnableEnhancedMonitoring.
type GetRecordResult ¶
type GetRecordResult struct {
ApproximateArrivalTimestamp time.Time
PartitionKey string
SequenceNumber string
Data []byte
}
GetRecordResult is a single record returned by GetRecords.
type GetRecordsInput ¶
GetRecordsInput is the input for GetRecords.
type GetRecordsOutput ¶
type GetRecordsOutput struct {
NextShardIterator string
Records []GetRecordResult
MillisBehindLatest int64
}
GetRecordsOutput is the output for GetRecords.
type GetResourcePolicyInput ¶
type GetResourcePolicyInput struct {
ResourceARN string
}
GetResourcePolicyInput is the input for GetResourcePolicy.
type GetResourcePolicyOutput ¶
type GetResourcePolicyOutput struct {
Policy string
}
GetResourcePolicyOutput is the output for GetResourcePolicy.
type GetShardIteratorInput ¶
type GetShardIteratorInput struct {
Timestamp *time.Time
StreamName string
ShardID string
ShardIteratorType string
StartingSequenceNumber string
}
GetShardIteratorInput is the input for GetShardIterator. Timestamp is a pointer so a genuinely omitted value (nil) can be distinguished from an explicit epoch-zero timestamp; required (non-nil) when ShardIteratorType is AT_TIMESTAMP.
type GetShardIteratorOutput ¶
type GetShardIteratorOutput struct {
ShardIterator string
}
GetShardIteratorOutput is the output for GetShardIterator.
type Handler ¶
type Handler struct {
Backend StorageBackend
DefaultRegion string
AccountID string
// contains filtered or unexported fields
}
Handler is the Echo HTTP handler for Kinesis operations.
func NewHandler ¶
func NewHandler(backend StorageBackend) *Handler
NewHandler creates a new Kinesis Handler.
func (*Handler) ChaosOperations ¶
ChaosOperations returns all operations that can be fault-injected.
func (*Handler) ChaosRegions ¶
ChaosRegions returns all regions this Kinesis instance handles.
func (*Handler) ChaosServiceName ¶
ChaosServiceName returns the lowercase AWS service name for fault rule matching.
func (*Handler) ExecuteFISAction ¶
ExecuteFISAction executes a FIS action against resolved Kinesis targets.
func (*Handler) ExtractOperation ¶
ExtractOperation extracts the Kinesis action from the X-Amz-Target header.
func (*Handler) ExtractResource ¶
ExtractResource extracts the stream name from the JSON request body.
func (*Handler) FISActions ¶
func (h *Handler) FISActions() []service.FISActionDefinition
FISActions returns the FIS action definitions that the Kinesis service supports.
func (*Handler) GetSupportedOperations ¶
GetSupportedOperations returns the list of supported Kinesis operations.
func (*Handler) Handler ¶
func (h *Handler) Handler() echo.HandlerFunc
Handler returns the Echo handler function for Kinesis operations.
func (*Handler) MatchPriority ¶
MatchPriority returns the routing priority for the Kinesis handler.
func (*Handler) Purge ¶
Purge implements service.Purgeable by removing all Kinesis streams older than cutoff.
func (*Handler) Reset ¶
func (h *Handler) Reset()
Reset clears all in-memory state from the backend. It is used by the POST /_gopherstack/reset endpoint for CI pipelines and rapid local development.
func (*Handler) RouteMatcher ¶
RouteMatcher returns a function that matches incoming Kinesis requests.
func (*Handler) Snapshot ¶
Snapshot implements persistence.Persistable by delegating to the backend.
func (*Handler) StartWorker ¶
StartWorker starts the background janitor if one is configured.
func (*Handler) StopWorker ¶
func (h *Handler) StopWorker()
StopWorker stops the background worker if one is configured.
type InMemoryBackend ¶
type InMemoryBackend struct {
OnStreamPurged func(string)
// contains filtered or unexported fields
}
InMemoryBackend implements StorageBackend using in-memory maps.
Streams are keyed by a composite "region/name" key (see streamKey) inside a single flat store.Table, with a secondary store.Index grouping them by region — so same-named streams in different regions remain fully isolated, including their shards, records, and consumers, all of which stay inline fields on Stream (see pkgs/store's package doc: shards/records are the per-stream hot path and are not decomposed into their own tables). fisThroughputFaults and resourcePolicies are NOT store.Table candidates: their value types (a pointer with no self-describing identity, and a bare string) carry no key of their own to hand a Table keyFn, so they remain plain nested maps guarded the same way as before.
func NewInMemoryBackend ¶
func NewInMemoryBackend() *InMemoryBackend
NewInMemoryBackend creates a new empty InMemoryBackend with default account/region.
func NewInMemoryBackendWithConfig ¶
func NewInMemoryBackendWithConfig(accountID, region string) *InMemoryBackend
NewInMemoryBackendWithConfig creates a new InMemoryBackend with the given account ID and region.
func (*InMemoryBackend) AddStreamInternal ¶
func (b *InMemoryBackend) AddStreamInternal(stream *Stream)
AddStreamInternal seeds a stream directly into the backend for testing. Caller must provide a non-nil stream with at least Name and ARN set. The stream is placed in the region encoded in its ARN, falling back to the backend's default region when the ARN carries none.
func (*InMemoryBackend) CountOpenShards ¶
func (b *InMemoryBackend) CountOpenShards(ctx context.Context) int
CountOpenShards returns the total number of open (non-closed) shards across every stream in the region carried on ctx. DescribeLimits is region-scoped in AWS, so this counts within a single region.
func (*InMemoryBackend) CreateStream ¶
func (b *InMemoryBackend) CreateStream(ctx context.Context, input *CreateStreamInput) error
CreateStream creates a new Kinesis stream.
func (*InMemoryBackend) DecreaseStreamRetentionPeriod ¶
func (b *InMemoryBackend) DecreaseStreamRetentionPeriod( ctx context.Context, input *DecreaseStreamRetentionPeriodInput, ) error
DecreaseStreamRetentionPeriod decreases the retention period for a stream. Mirroring IncreaseStreamRetentionPeriod, a target equal to the current retention period is an idempotent no-op returning success (HTTP 200), matching real AWS behaviour. A target above the current period or below minRetentionHours (24h) is rejected with InvalidArgumentException.
func (*InMemoryBackend) DeleteResourcePolicy ¶
func (b *InMemoryBackend) DeleteResourcePolicy(ctx context.Context, input *DeleteResourcePolicyInput) error
DeleteResourcePolicy removes the resource-based policy for the given stream or consumer ARN.
func (*InMemoryBackend) DeleteStream ¶
func (b *InMemoryBackend) DeleteStream(ctx context.Context, input *DeleteStreamInput) error
DeleteStream removes a stream.
func (*InMemoryBackend) DeregisterStreamConsumer ¶
func (b *InMemoryBackend) DeregisterStreamConsumer(ctx context.Context, input *DeregisterStreamConsumerInput) error
DeregisterStreamConsumer removes a registered consumer from a stream.
func (*InMemoryBackend) DescribeAccountSettings ¶
func (b *InMemoryBackend) DescribeAccountSettings(ctx context.Context) (*DescribeAccountSettingsOutput, error)
DescribeAccountSettings returns account-level limits for this Kinesis account. The ON_DEMAND stream count is reported per region (AWS account-level limits are tracked per region), using the region carried on ctx.
func (*InMemoryBackend) DescribeStream ¶
func (b *InMemoryBackend) DescribeStream( ctx context.Context, input *DescribeStreamInput, ) (*DescribeStreamOutput, error)
DescribeStream returns full stream details including shards.
func (*InMemoryBackend) DescribeStreamConsumer ¶
func (b *InMemoryBackend) DescribeStreamConsumer( ctx context.Context, input *DescribeStreamConsumerInput, ) (*DescribeStreamConsumerOutput, error)
DescribeStreamConsumer returns details about a registered consumer. Lookup is by ConsumerARN, or by StreamARN + ConsumerName.
func (*InMemoryBackend) DisableEnhancedMonitoring ¶
func (b *InMemoryBackend) DisableEnhancedMonitoring( ctx context.Context, input *DisableEnhancedMonitoringInput, ) (*DisableEnhancedMonitoringOutput, error)
DisableEnhancedMonitoring removes shard-level metrics from a stream.
func (*InMemoryBackend) EnableEnhancedMonitoring ¶
func (b *InMemoryBackend) EnableEnhancedMonitoring( ctx context.Context, input *EnableEnhancedMonitoringInput, ) (*EnableEnhancedMonitoringOutput, error)
EnableEnhancedMonitoring adds shard-level metrics to a stream.
func (*InMemoryBackend) GetRecords ¶
func (b *InMemoryBackend) GetRecords(ctx context.Context, input *GetRecordsInput) (*GetRecordsOutput, error)
GetRecords retrieves records starting at the given shard iterator position.
The region is taken from the iterator token (encoded by GetShardIterator), not from ctx, so an iterator issued for one region always reads that region's records even if the GetRecords call carries a different ctx region.
func (*InMemoryBackend) GetResourcePolicy ¶
func (b *InMemoryBackend) GetResourcePolicy( ctx context.Context, input *GetResourcePolicyInput, ) (*GetResourcePolicyOutput, error)
GetResourcePolicy retrieves the resource-based policy for the given stream or consumer ARN.
func (*InMemoryBackend) GetShardIterator ¶
func (b *InMemoryBackend) GetShardIterator( ctx context.Context, input *GetShardIteratorInput, ) (*GetShardIteratorOutput, error)
GetShardIterator returns an iterator for reading records from a shard.
func (*InMemoryBackend) IncreaseStreamRetentionPeriod ¶
func (b *InMemoryBackend) IncreaseStreamRetentionPeriod( ctx context.Context, input *IncreaseStreamRetentionPeriodInput, ) error
IncreaseStreamRetentionPeriod increases the retention period for a stream. A target equal to the current retention period is treated as an idempotent no-op returning success (HTTP 200), matching real AWS behaviour: the Terraform AWS provider calls IncreaseStreamRetentionPeriod on stream create for ANY configured retention_period > 0 (see the provider's resourceStreamCreate, guard `v.(int) > 0`), so a stream created with the default retention_period of 24h receives IncreaseStreamRetentionPeriod(24) against a stream already at 24h. Rejecting that equal value with InvalidArgumentException (as a strict reading of the SDK doc "Must be more than the current retention period" would suggest) breaks every default-retention Terraform stream, so real AWS accepts it. A target below the current period, below minRetentionHours (24h), or above maxRetentionHours (8760h) is rejected with InvalidArgumentException.
func (*InMemoryBackend) ListAll ¶
func (b *InMemoryBackend) ListAll(_ context.Context) []StreamInfo
ListAll returns a snapshot of all streams as StreamInfo values across every region. It is used by the dashboard, which presents a global inventory.
func (*InMemoryBackend) ListShards ¶
func (b *InMemoryBackend) ListShards(ctx context.Context, input *ListShardsInput) (*ListShardsOutput, error)
ListShards returns the shards for a stream.
func (*InMemoryBackend) ListStreamConsumers ¶
func (b *InMemoryBackend) ListStreamConsumers( ctx context.Context, input *ListStreamConsumersInput, ) (*ListStreamConsumersOutput, error)
ListStreamConsumers lists all registered consumers for a stream.
func (*InMemoryBackend) ListStreams ¶
func (b *InMemoryBackend) ListStreams(ctx context.Context, input *ListStreamsInput) (*ListStreamsOutput, error)
ListStreams returns stream names with optional pagination.
AWS contract: results are returned in alphabetical order. When `Limit` is set the response contains at most that many names. Pagination is keyed on either `ExclusiveStartStreamName` or the opaque `NextToken` (which we treat as the previously returned last stream name) so that callers can iterate over arbitrarily large account inventories.
func (*InMemoryBackend) ListTagsForResource ¶
func (b *InMemoryBackend) ListTagsForResource( ctx context.Context, input *ListTagsForResourceInput, ) (*ListTagsForResourceOutput, error)
ListTagsForResource returns the tags associated with a stream identified by its ARN. Tags are those stored on the stream's internal Tags store (set via TagResource).
func (*InMemoryBackend) MergeShards ¶
func (b *InMemoryBackend) MergeShards(ctx context.Context, input *MergeShardsInput) error
MergeShards merges two adjacent shards into one. The merged shard spans the combined hash key range of both parent shards.
func (*InMemoryBackend) Purge ¶
func (b *InMemoryBackend) Purge(ctx context.Context, cutoff time.Time)
Purge removes all Kinesis streams and consumers created before the cutoff time.
func (*InMemoryBackend) PutRecord ¶
func (b *InMemoryBackend) PutRecord(ctx context.Context, input *PutRecordInput) (*PutRecordOutput, error)
PutRecord writes a single record to a stream shard.
func (*InMemoryBackend) PutRecords ¶
func (b *InMemoryBackend) PutRecords(ctx context.Context, input *PutRecordsInput) (*PutRecordsOutput, error)
PutRecords writes multiple records to a stream.
Request-level validation errors (empty/oversized batch, unknown stream) fail the whole call with a single top-level exception, matching the AWS contract: only per-record issues (throughput, per-record validation) surface as per-entry ErrorCode/ErrorMessage inside a 200 response.
func (*InMemoryBackend) PutResourcePolicy ¶
func (b *InMemoryBackend) PutResourcePolicy(ctx context.Context, input *PutResourcePolicyInput) error
PutResourcePolicy stores a resource-based policy for the given stream or consumer ARN.
func (*InMemoryBackend) Region ¶
func (b *InMemoryBackend) Region() string
Region returns the AWS region this backend is configured to use as its default.
func (*InMemoryBackend) RegisterStreamConsumer ¶
func (b *InMemoryBackend) RegisterStreamConsumer( ctx context.Context, input *RegisterStreamConsumerInput, ) (*RegisterStreamConsumerOutput, error)
RegisterStreamConsumer registers a new enhanced fan-out consumer on a stream.
func (*InMemoryBackend) Reset ¶
func (b *InMemoryBackend) Reset()
Reset clears all in-memory state from the backend. It is used by the POST /_gopherstack/reset endpoint for CI pipelines and rapid local development.
func (*InMemoryBackend) Restore ¶
func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error
Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.
func (*InMemoryBackend) Snapshot ¶
func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte
Snapshot serialises the backend state to JSON. It implements persistence.Persistable. Note: shard sequence number counters are now serialised via the NextSeq field.
func (*InMemoryBackend) SplitShard ¶
func (b *InMemoryBackend) SplitShard(ctx context.Context, input *SplitShardInput) error
SplitShard splits a shard into two at the given new starting hash key.
func (*InMemoryBackend) StartStreamEncryption ¶
func (b *InMemoryBackend) StartStreamEncryption(ctx context.Context, input *StartStreamEncryptionInput) error
StartStreamEncryption enables server-side encryption on a stream.
func (*InMemoryBackend) StopStreamEncryption ¶
func (b *InMemoryBackend) StopStreamEncryption(ctx context.Context, input *StopStreamEncryptionInput) error
StopStreamEncryption disables server-side encryption on a stream.
func (*InMemoryBackend) SubscribeToShard ¶
func (b *InMemoryBackend) SubscribeToShard( ctx context.Context, input *SubscribeToShardInput, ) (*SubscribeToShardOutput, error)
SubscribeToShard delivers records from a shard to an enhanced fan-out consumer. For mock purposes this is a single-shot delivery of all available records.
func (*InMemoryBackend) TagResource ¶
func (b *InMemoryBackend) TagResource(ctx context.Context, input *TagResourceInput) error
TagResource adds or updates tags on a stream identified by its ARN. This is the ARN-based counterpart to AddTagsToStream.
func (*InMemoryBackend) TaggedStreams ¶ added in v1.2.0
func (b *InMemoryBackend) TaggedStreams() []TaggedEntry
TaggedStreams returns every Kinesis stream that currently has at least one tag, across every region this backend holds streams for.
func (*InMemoryBackend) UntagResource ¶
func (b *InMemoryBackend) UntagResource(ctx context.Context, input *UntagResourceInput) error
UntagResource removes tags from a stream identified by its ARN. This is the ARN-based counterpart to RemoveTagsFromStream.
func (*InMemoryBackend) UpdateAccountSettings ¶
func (b *InMemoryBackend) UpdateAccountSettings(_ context.Context, input *UpdateAccountSettingsInput) error
UpdateAccountSettings updates account-level settings such as the ON_DEMAND stream count limit.
func (*InMemoryBackend) UpdateMaxRecordSize ¶
func (b *InMemoryBackend) UpdateMaxRecordSize(ctx context.Context, input *UpdateMaxRecordSizeInput) error
UpdateMaxRecordSize changes the per-record data payload size limit for a stream. The value must be between defaultMaxRecordSizeBytes (1 MiB) and absoluteMaxRecordSizeBytes (10 MiB).
func (*InMemoryBackend) UpdateShardCount ¶
func (b *InMemoryBackend) UpdateShardCount( ctx context.Context, input *UpdateShardCountInput, ) (*UpdateShardCountOutput, error)
UpdateShardCount resizes a stream to the given number of shards. Existing records in the stream are not migrated; new shards start empty.
func (*InMemoryBackend) UpdateStreamMode ¶
func (b *InMemoryBackend) UpdateStreamMode(ctx context.Context, input *UpdateStreamModeInput) error
UpdateStreamMode changes the mode of a stream identified by its ARN.
func (*InMemoryBackend) UpdateStreamWarmThroughput ¶
func (b *InMemoryBackend) UpdateStreamWarmThroughput( ctx context.Context, input *UpdateStreamWarmThroughputInput, ) error
UpdateStreamWarmThroughput configures pre-warmed throughput for a stream. This is a no-op in the in-memory backend (no actual warm-up is needed).
func (*InMemoryBackend) WithKMSValidator ¶ added in v1.2.0
func (b *InMemoryBackend) WithKMSValidator(v KMSKeyValidator) *InMemoryBackend
WithKMSValidator attaches a KMSKeyValidator so StartStreamEncryption can verify a KeyId resolves to a real, usable KMS key. Returns b for chaining.
type IncreaseStreamRetentionPeriodInput ¶
IncreaseStreamRetentionPeriodInput is the input for IncreaseStreamRetentionPeriod.
type Janitor ¶
type Janitor struct {
Backend *InMemoryBackend
Interval time.Duration
// TaskTimeout bounds each individual janitor task. When non-zero, each task
// runs with a child context that expires after this duration, preventing a
// stalled operation from blocking the janitor loop indefinitely.
TaskTimeout time.Duration
// contains filtered or unexported fields
}
Janitor is the Kinesis background worker that enforces per-stream retention periods by evicting records older than stream.RetentionPeriod hours.
func NewJanitor ¶
func NewJanitor(backend *InMemoryBackend, interval time.Duration) *Janitor
NewJanitor creates a new Kinesis Janitor for the given backend. A zero interval falls back to defaultJanitorInterval.
type KMSKeyValidator ¶ added in v1.2.0
type KMSKeyValidator interface {
// ValidateKMSKey resolves keyID against the KMS backend and returns nil if
// the key exists and is usable, or one of ErrKMSNotFound/ErrKMSDisabled/
// ErrKMSInvalidState (kinesis sentinels) describing why it is not.
ValidateKMSKey(ctx context.Context, keyID string) error
}
KMSKeyValidator optionally validates a KMS KeyId against a real KMS backend. Implemented by an adapter wrapping the KMS service backend and attached via WithKMSValidator (mirrors services/ssm's KMSEncryptor injection pattern -- see cli.go's wireKinesisKMS). When no validator is wired, StartStreamEncryption still enforces the KeyId *shape* AWS documents (UUID / key ARN / alias ARN / "alias/..." name) but cannot know whether the key actually exists, is disabled, or is pending deletion -- those KMS-specific exceptions require real cross-service key state.
type ListShardsInput ¶
type ListShardsInput struct {
ShardFilterTimestamp *time.Time
StreamName string
NextToken string
ExclusiveStartShardID string
ShardFilter string
ShardFilterType string
ShardFilterShardID string
MaxResults int
}
ListShardsInput is the input for ListShards.
type ListShardsOutput ¶
type ListShardsOutput struct {
NextToken string
Shards []ShardDescription
}
ListShardsOutput is the output for ListShards.
type ListStreamConsumersInput ¶
ListStreamConsumersInput is the input for ListStreamConsumers.
type ListStreamConsumersOutput ¶
ListStreamConsumersOutput is the output for ListStreamConsumers.
type ListStreamsInput ¶
ListStreamsInput is the input for ListStreams.
type ListStreamsOutput ¶
ListStreamsOutput is the output for ListStreams.
type ListTagsForResourceInput ¶
type ListTagsForResourceInput struct {
ResourceARN string
}
ListTagsForResourceInput is the input for ListTagsForResource.
type ListTagsForResourceOutput ¶
ListTagsForResourceOutput is the output for ListTagsForResource.
type MergeShardsInput ¶
type MergeShardsInput struct {
StreamName string
StreamARN string
ShardToMerge string
AdjacentShardToMerge string
}
MergeShardsInput is the input for MergeShards.
type Provider ¶
type Provider struct{}
Provider implements service.Provider for the Kinesis service.
func (*Provider) Init ¶
func (p *Provider) Init(ctx *service.AppContext) (service.Registerable, error)
Init initializes the Kinesis service backend and handler.
type PutRecordInput ¶
type PutRecordInput struct {
StreamName string
PartitionKey string
ExplicitHashKey string
Data []byte
}
PutRecordInput is the input for PutRecord.
type PutRecordOutput ¶
PutRecordOutput is the output for PutRecord.
type PutRecordsEntry ¶
PutRecordsEntry is a single entry in a PutRecords request.
type PutRecordsInput ¶
type PutRecordsInput struct {
StreamName string
Records []PutRecordsEntry
}
PutRecordsInput is the input for PutRecords.
type PutRecordsOutput ¶
type PutRecordsOutput struct {
Records []PutRecordsResultEntry
FailedRecordCount int
}
PutRecordsOutput is the output for PutRecords.
type PutRecordsResultEntry ¶
type PutRecordsResultEntry struct {
ShardID string
SequenceNumber string
ErrorCode string
ErrorMessage string
}
PutRecordsResultEntry is a single result entry in a PutRecords response.
type PutResourcePolicyInput ¶
PutResourcePolicyInput is the input for PutResourcePolicy.
type Record ¶
type Record struct {
ApproximateArrivalTimestamp time.Time `json:"approximateArrivalTimestamp"`
PartitionKey string `json:"partitionKey"`
SequenceNumber string `json:"sequenceNumber"`
Data []byte `json:"data"`
}
Record represents a single Kinesis data record.
type RegisterStreamConsumerInput ¶
RegisterStreamConsumerInput is the input for RegisterStreamConsumer.
type RegisterStreamConsumerOutput ¶
type RegisterStreamConsumerOutput struct {
Consumer Consumer
}
RegisterStreamConsumerOutput is the output for RegisterStreamConsumer.
type Settings ¶
type Settings struct {
JanitorInterval time.Duration `json:"janitor_interval" env:"KINESIS_JANITOR_INTERVAL" default:"1m" help:"Janitor tick interval."` //nolint:lll // Kong struct tag makes this line long
}
Settings holds service-level configuration for the Kinesis backend. Fields are picked up by the Kong CLI parser when this struct is embedded in the root CLI command.
type Shard ¶
type Shard struct {
// StartedAt is when this shard became open (stream creation for the initial
// shard set, or reshard time for shards born from SplitShard/MergeShards/
// UpdateShardCount/UpdateStreamMode). Used by ListShards' AT_TIMESTAMP/
// FROM_TIMESTAMP/AT_TRIM_HORIZON ShardFilter to bound shard lineage by time.
StartedAt time.Time `json:"startedAt"`
// ClosedAt is when this shard was closed (zero if still open). Populated
// alongside Closed by closeShard. omitempty has no effect on a struct
// field like time.Time, so it is intentionally omitted here.
ClosedAt time.Time `json:"closedAt"`
ID string `json:"id"`
HashKeyRangeStart string `json:"hashKeyRangeStart"`
HashKeyRangeEnd string `json:"hashKeyRangeEnd"`
ParentShardID string `json:"parentShardId,omitempty"`
AdjacentParentShardID string `json:"adjacentParentShardId,omitempty"`
Records shardRecords `json:"records"`
NextSeq uint64 `json:"nextSeq"`
Closed bool `json:"closed,omitempty"`
}
Shard represents a single Kinesis shard within a stream.
type ShardDescription ¶
type ShardDescription struct {
ShardID string
HashKeyRangeStart string
HashKeyRangeEnd string
SequenceNumberRangeStart string
SequenceNumberRangeEnd string
ParentShardID string
AdjacentParentShardID string
Closed bool
}
ShardDescription describes a shard in a DescribeStream response.
type ShardIterator ¶
type ShardIterator struct {
CreatedAt time.Time `json:"CreatedAt"`
StreamName string `json:"StreamName"`
ShardID string `json:"ShardID"`
SequenceNumber string `json:"SequenceNumber"`
Region string `json:"Region"`
Position int `json:"Position"`
}
ShardIterator holds the position within a shard for GetRecords. Region is encoded into the iterator token so that GetRecords resolves the record store of the same region the iterator was issued in, keeping same-named streams in different regions isolated on the record hot path.
type SplitShardInput ¶
type SplitShardInput struct {
StreamName string
StreamARN string
ShardToSplit string
NewStartingHashKey string
}
SplitShardInput is the input for SplitShard.
type StartStreamEncryptionInput ¶
type StartStreamEncryptionInput struct {
StreamName string
StreamARN string
EncryptionType string
KeyID string
}
StartStreamEncryptionInput is the input for StartStreamEncryption.
type StartingPosition ¶
type StartingPosition struct {
Timestamp *time.Time `json:"Timestamp,omitempty"`
Type string `json:"Type"`
SequenceNumber string `json:"SequenceNumber,omitempty"`
}
StartingPosition describes where to start reading in SubscribeToShard.
type StopStreamEncryptionInput ¶
type StopStreamEncryptionInput struct {
StreamName string
StreamARN string
EncryptionType string
KeyID string
}
StopStreamEncryptionInput is the input for StopStreamEncryption.
type StorageBackend ¶
type StorageBackend interface {
CreateStream(ctx context.Context, input *CreateStreamInput) error
DeleteStream(ctx context.Context, input *DeleteStreamInput) error
DescribeStream(ctx context.Context, input *DescribeStreamInput) (*DescribeStreamOutput, error)
ListStreams(ctx context.Context, input *ListStreamsInput) (*ListStreamsOutput, error)
PutRecord(ctx context.Context, input *PutRecordInput) (*PutRecordOutput, error)
PutRecords(ctx context.Context, input *PutRecordsInput) (*PutRecordsOutput, error)
GetShardIterator(ctx context.Context, input *GetShardIteratorInput) (*GetShardIteratorOutput, error)
GetRecords(ctx context.Context, input *GetRecordsInput) (*GetRecordsOutput, error)
ListShards(ctx context.Context, input *ListShardsInput) (*ListShardsOutput, error)
RegisterStreamConsumer(
ctx context.Context,
input *RegisterStreamConsumerInput,
) (*RegisterStreamConsumerOutput, error)
DescribeStreamConsumer(
ctx context.Context,
input *DescribeStreamConsumerInput,
) (*DescribeStreamConsumerOutput, error)
ListStreamConsumers(ctx context.Context, input *ListStreamConsumersInput) (*ListStreamConsumersOutput, error)
DeregisterStreamConsumer(ctx context.Context, input *DeregisterStreamConsumerInput) error
SubscribeToShard(ctx context.Context, input *SubscribeToShardInput) (*SubscribeToShardOutput, error)
UpdateShardCount(ctx context.Context, input *UpdateShardCountInput) (*UpdateShardCountOutput, error)
EnableEnhancedMonitoring(
ctx context.Context,
input *EnableEnhancedMonitoringInput,
) (*EnableEnhancedMonitoringOutput, error)
DisableEnhancedMonitoring(
ctx context.Context,
input *DisableEnhancedMonitoringInput,
) (*DisableEnhancedMonitoringOutput, error)
IncreaseStreamRetentionPeriod(ctx context.Context, input *IncreaseStreamRetentionPeriodInput) error
DecreaseStreamRetentionPeriod(ctx context.Context, input *DecreaseStreamRetentionPeriodInput) error
MergeShards(ctx context.Context, input *MergeShardsInput) error
SplitShard(ctx context.Context, input *SplitShardInput) error
StartStreamEncryption(ctx context.Context, input *StartStreamEncryptionInput) error
StopStreamEncryption(ctx context.Context, input *StopStreamEncryptionInput) error
DeleteResourcePolicy(ctx context.Context, input *DeleteResourcePolicyInput) error
GetResourcePolicy(ctx context.Context, input *GetResourcePolicyInput) (*GetResourcePolicyOutput, error)
PutResourcePolicy(ctx context.Context, input *PutResourcePolicyInput) error
ListTagsForResource(ctx context.Context, input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error)
TagResource(ctx context.Context, input *TagResourceInput) error
UntagResource(ctx context.Context, input *UntagResourceInput) error
UpdateStreamMode(ctx context.Context, input *UpdateStreamModeInput) error
UpdateAccountSettings(ctx context.Context, input *UpdateAccountSettingsInput) error
UpdateMaxRecordSize(ctx context.Context, input *UpdateMaxRecordSizeInput) error
UpdateStreamWarmThroughput(ctx context.Context, input *UpdateStreamWarmThroughputInput) error
DescribeAccountSettings(ctx context.Context) (*DescribeAccountSettingsOutput, error)
CountOpenShards(ctx context.Context) int
ListAll(ctx context.Context) []StreamInfo
}
StorageBackend defines the interface for a Kinesis backend.
Every method takes a context.Context so the per-request AWS region can be threaded through and resources kept isolated per region. The region is read from the context via getRegion, falling back to the backend's default region when the context carries no region.
type Stream ¶
type Stream struct {
CreatedAt time.Time `json:"createdAt"`
Tags *tags.Tags `json:"tags,omitempty"`
Consumers map[string]*Consumer `json:"consumers,omitempty"`
Name string `json:"name"`
ARN string `json:"arn"`
// Region is the AWS region this stream lives in. It is the second half of
// the composite key (see streamKey in backend.go) that keeps same-named
// streams in different regions isolated inside the single flat
// store.Table[Stream] — the region-nested map it replaced used the
// region as an outer map key instead of a field on Stream itself.
Region string `json:"region,omitempty"`
Status string `json:"status"`
EncryptionType string `json:"encryptionType,omitempty"`
KeyID string `json:"keyId,omitempty"`
StreamMode string `json:"streamMode,omitempty"`
Shards []*Shard `json:"shards"`
EnhancedMonitoring []string `json:"enhancedMonitoring,omitempty"`
RetentionPeriod int `json:"retentionPeriod"`
// MaxRecordSizeBytes is the per-record data payload size limit for this stream.
// Defaults to defaultMaxRecordSizeBytes (1 MiB); updatable via UpdateMaxRecordSize.
MaxRecordSizeBytes int `json:"maxRecordSizeBytes,omitempty"`
// contains filtered or unexported fields
}
Stream represents an in-memory Kinesis stream.
type StreamInfo ¶
StreamInfo holds summary information about a stream, safe to return without lock.
type StreamModeDetails ¶
type StreamModeDetails struct {
StreamMode string
}
StreamModeDetails describes the mode of a Kinesis stream.
type SubscribeToShardEvent ¶
type SubscribeToShardEvent struct {
ContinuationSequenceNumber string
Records []GetRecordResult
MillisBehindLatest int64
}
SubscribeToShardEvent is a single event in the SubscribeToShard response.
type SubscribeToShardInput ¶
type SubscribeToShardInput struct {
ConsumerARN string
ShardID string
StartingPosition StartingPosition
}
SubscribeToShardInput is the input for SubscribeToShard.
type SubscribeToShardOutput ¶
type SubscribeToShardOutput struct {
Event SubscribeToShardEvent
}
SubscribeToShardOutput is the output for SubscribeToShard.
type TagResourceInput ¶
TagResourceInput is the input for TagResource (ARN-based tagging).
type TaggedEntry ¶ added in v1.2.0
TaggedEntry pairs a stream ARN with its tag map, for cross-service tag enumeration by the Resource Groups Tagging API (see cli.go's wireTaggingKinesis).
type UntagResourceInput ¶
UntagResourceInput is the input for UntagResource (ARN-based tag removal).
type UpdateAccountSettingsInput ¶
type UpdateAccountSettingsInput struct {
// OnDemandStreamCountLimit sets the account-level limit for ON_DEMAND streams.
OnDemandStreamCountLimit int
}
UpdateAccountSettingsInput is the input for UpdateAccountSettings.
type UpdateMaxRecordSizeInput ¶
UpdateMaxRecordSizeInput is the input for UpdateMaxRecordSize.
type UpdateShardCountInput ¶
UpdateShardCountInput is the input for UpdateShardCount.
type UpdateShardCountOutput ¶
UpdateShardCountOutput is the output for UpdateShardCount.
type UpdateStreamModeInput ¶
type UpdateStreamModeInput struct {
StreamARN string
StreamModeDetails StreamModeDetails
}
UpdateStreamModeInput is the input for UpdateStreamMode.
Source Files
¶
- account_settings.go
- cbor.go
- consumers.go
- errors.go
- fis.go
- handler.go
- handler_account_settings.go
- handler_consumers.go
- handler_monitoring.go
- handler_records.go
- handler_resharding.go
- handler_resource_policy.go
- handler_shard_iterators.go
- handler_shards.go
- handler_stream_encryption.go
- handler_stream_modes.go
- handler_stream_retention.go
- handler_streams.go
- handler_tags.go
- interfaces.go
- janitor.go
- models.go
- monitoring.go
- persistence.go
- provider.go
- records.go
- resharding.go
- resource_policy.go
- ring_buffer.go
- settings.go
- shard_iterators.go
- shards.go
- store.go
- stream_encryption.go
- stream_modes.go
- stream_retention.go
- streams.go
- tags.go