Documentation ¶
Index ¶
- Variables
- func CreateTable(ctx context.Context, tableName string, client *dynamodb.Client) error
- type AWS
- type AdditionalConfig
- type AnonymousConfig
- type CloudWatchMetrics
- type Config
- type DDBClient
- type EMF
- type LimitPreparer
- type Limiter
- type Metric
- type NegativeCacheConfig
- type Opt
- type Preparer
- type RateLimit
- type TokenBucket
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrRateLimitExceeded = errors.New("API rate limit exceeded") ErrInternal = errors.New("internal API error") ErrInvalidBucketID = errors.New("invalid bucket id") )
View Source
var DefaultInterval = 60 * time.Second
Functions ¶
Types ¶
type AWS ¶
type AWS struct { CloudWatchMetrics []CloudWatchMetrics Timestamp int64 `json:"Timestamp"` }
type AdditionalConfig ¶
type AdditionalConfig struct { NegativeCache *NegativeCacheConfig `json:"negative_cache,omitempty"` Anonymous *AnonymousConfig `json:"anonymous,omitempty"` }
type AnonymousConfig ¶
AnonymousConfig allows not registered bucket id. This is used for such as an IP address basis throttling.
type CloudWatchMetrics ¶
type Config ¶
type DDBClient ¶
type DDBClient interface { UpdateItem(context.Context, *dynamodb.UpdateItemInput, ...func(*dynamodb.Options)) (*dynamodb.UpdateItemOutput, error) GetItem(context.Context, *dynamodb.GetItemInput, ...func(*dynamodb.Options)) (*dynamodb.GetItemOutput, error) BatchWriteItem(context.Context, *dynamodb.BatchWriteItemInput, ...func(*dynamodb.Options)) (*dynamodb.BatchWriteItemOutput, error) }
type LimitPreparer ¶
type NegativeCacheConfig ¶
type NegativeCacheConfig struct {
Size int `json:"size"`
}
WithNegativeCache configures negative cache entry size for invalid bucket ids. specifying 0 means to disable cache
type RateLimit ¶
type RateLimit struct {
// contains filtered or unexported fields
}
func (*RateLimit) PrepareTokens ¶
type TokenBucket ¶
type TokenBucket struct {
// contains filtered or unexported fields
}
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package mock_limiter is a generated GoMock package.
|
Package mock_limiter is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.