Documentation ¶
Index ¶
- Constants
- func IsEventError(err error) bool
- func NewPattern(prefix, suffix string) (pattern string)
- func ValidateFilterRuleValue(value string) error
- type ARN
- type Bucket
- type Config
- type ErrARNNotFound
- type ErrDuplicateEventName
- type ErrDuplicateQueueConfiguration
- type ErrFilterNamePrefix
- type ErrFilterNameSuffix
- type ErrInvalidARN
- type ErrInvalidEventName
- type ErrInvalidFilterName
- type ErrInvalidFilterValue
- type ErrUnknownRegion
- type ErrUnsupportedConfiguration
- type Event
- type FilterRule
- type FilterRuleList
- type Identity
- type Log
- type Metadata
- type Name
- func (name Name) Expand() []Name
- func (name Name) MarshalJSON() ([]byte, error)
- func (name Name) MarshalXML(e *xml.Encoder, start xml.StartElement) error
- func (name Name) String() string
- func (name *Name) UnmarshalJSON(data []byte) error
- func (name *Name) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
- type Object
- type Queue
- type Rules
- type RulesMap
- type S3Key
- type Source
- type Target
- type TargetID
- type TargetIDResult
- type TargetIDSet
- type TargetList
- func (list *TargetList) Add(targets ...Target) error
- func (list *TargetList) Exists(id TargetID) bool
- func (list *TargetList) List() []TargetID
- func (list *TargetList) Remove(targetIDSet TargetIDSet)
- func (list *TargetList) Send(event Event, targetIDset TargetIDSet, resCh chan<- TargetIDResult)
- func (list *TargetList) TargetMap() map[TargetID]Target
- func (list *TargetList) Targets() []Target
Constants ¶
const ( // NamespaceFormat - namespace log format used in some event targets. NamespaceFormat = "namespace" // AccessFormat - access log format used in some event targets. AccessFormat = "access" // AMZTimeFormat - event time format. AMZTimeFormat = "2006-01-02T15:04:05.000Z" )
Variables ¶
This section is empty.
Functions ¶
func IsEventError ¶
IsEventError - checks whether given error is event error or not.
func NewPattern ¶
NewPattern - create new pattern for prefix/suffix.
func ValidateFilterRuleValue ¶
ValidateFilterRuleValue - checks if given value is filter rule value or not.
Types ¶
type ARN ¶
type ARN struct { TargetID // contains filtered or unexported fields }
ARN - SQS resource name representation.
func (ARN) MarshalXML ¶
MarshalXML - encodes to XML data.
func (*ARN) UnmarshalXML ¶
UnmarshalXML - decodes XML data.
type Bucket ¶
type Bucket struct { Name string `json:"name"` OwnerIdentity Identity `json:"ownerIdentity"` ARN string `json:"arn"` }
Bucket represents bucket metadata of the event.
type Config ¶
type Config struct { XMLNS string `xml:"xmlns,attr,omitempty"` XMLName xml.Name `xml:"NotificationConfiguration"` QueueList []Queue `xml:"QueueConfiguration,omitempty"` LambdaList []lambda `xml:"CloudFunctionConfiguration,omitempty"` TopicList []topic `xml:"TopicConfiguration,omitempty"` }
Config - notification configuration described in http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
func ParseConfig ¶
ParseConfig - parses data in reader to notification configuration.
func (*Config) ToRulesMap ¶
ToRulesMap - converts all queue configuration to RulesMap.
func (*Config) UnmarshalXML ¶
UnmarshalXML - decodes XML data.
type ErrARNNotFound ¶
type ErrARNNotFound struct {
ARN ARN
}
ErrARNNotFound - ARN not found error.
func (ErrARNNotFound) Error ¶
func (err ErrARNNotFound) Error() string
type ErrDuplicateEventName ¶
type ErrDuplicateEventName struct {
EventName Name
}
ErrDuplicateEventName - duplicate event name error.
func (ErrDuplicateEventName) Error ¶
func (err ErrDuplicateEventName) Error() string
type ErrDuplicateQueueConfiguration ¶
type ErrDuplicateQueueConfiguration struct {
Queue Queue
}
ErrDuplicateQueueConfiguration - duplicate queue configuration error.
func (ErrDuplicateQueueConfiguration) Error ¶
func (err ErrDuplicateQueueConfiguration) Error() string
type ErrFilterNamePrefix ¶
type ErrFilterNamePrefix struct{}
ErrFilterNamePrefix - more than one prefix usage error.
func (ErrFilterNamePrefix) Error ¶
func (err ErrFilterNamePrefix) Error() string
type ErrFilterNameSuffix ¶
type ErrFilterNameSuffix struct{}
ErrFilterNameSuffix - more than one suffix usage error.
func (ErrFilterNameSuffix) Error ¶
func (err ErrFilterNameSuffix) Error() string
type ErrInvalidARN ¶
type ErrInvalidARN struct {
ARN string
}
ErrInvalidARN - invalid ARN error.
func (ErrInvalidARN) Error ¶
func (err ErrInvalidARN) Error() string
type ErrInvalidEventName ¶
type ErrInvalidEventName struct {
Name string
}
ErrInvalidEventName - invalid event name error.
func (ErrInvalidEventName) Error ¶
func (err ErrInvalidEventName) Error() string
type ErrInvalidFilterName ¶
type ErrInvalidFilterName struct {
FilterName string
}
ErrInvalidFilterName - invalid filter name error.
func (ErrInvalidFilterName) Error ¶
func (err ErrInvalidFilterName) Error() string
type ErrInvalidFilterValue ¶
type ErrInvalidFilterValue struct {
FilterValue string
}
ErrInvalidFilterValue - invalid filter value error.
func (ErrInvalidFilterValue) Error ¶
func (err ErrInvalidFilterValue) Error() string
type ErrUnknownRegion ¶
type ErrUnknownRegion struct {
Region string
}
ErrUnknownRegion - unknown region error.
func (ErrUnknownRegion) Error ¶
func (err ErrUnknownRegion) Error() string
type ErrUnsupportedConfiguration ¶
type ErrUnsupportedConfiguration struct{}
ErrUnsupportedConfiguration - unsupported configuration error.
func (ErrUnsupportedConfiguration) Error ¶
func (err ErrUnsupportedConfiguration) Error() string
type Event ¶
type Event struct { EventVersion string `json:"eventVersion"` EventSource string `json:"eventSource"` AwsRegion string `json:"awsRegion"` EventTime string `json:"eventTime"` EventName Name `json:"eventName"` UserIdentity Identity `json:"userIdentity"` RequestParameters map[string]string `json:"requestParameters"` ResponseElements map[string]string `json:"responseElements"` S3 Metadata `json:"s3"` Source Source `json:"source"` }
Event represents event notification information defined in http://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html.
type FilterRule ¶
FilterRule - represents elements inside <FilterRule>...</FilterRule>
func (FilterRule) MarshalXML ¶
func (filter FilterRule) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML implements a custom marshaller to support `omitempty` feature.
func (*FilterRule) UnmarshalXML ¶
func (filter *FilterRule) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML - decodes XML data.
type FilterRuleList ¶
type FilterRuleList struct {
Rules []FilterRule `xml:"FilterRule,omitempty"`
}
FilterRuleList - represents multiple <FilterRule>...</FilterRule>
func (FilterRuleList) Pattern ¶
func (ruleList FilterRuleList) Pattern() string
Pattern - returns pattern using prefix and suffix values.
func (*FilterRuleList) UnmarshalXML ¶
func (ruleList *FilterRuleList) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML - decodes XML data.
type Identity ¶
type Identity struct {
PrincipalID string `json:"principalId"`
}
Identity represents access key who caused the event.
type Metadata ¶
type Metadata struct { SchemaVersion string `json:"s3SchemaVersion"` ConfigurationID string `json:"configurationId"` Bucket Bucket `json:"bucket"` Object Object `json:"object"` }
Metadata represents event metadata.
type Name ¶
type Name int
Name - event type enum. Refer http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations for most basic values we have since extend this and its not really much applicable other than a reference point. "s3:Replication:OperationCompletedReplication" is a MinIO extension.
const ( ObjectAccessedAll Name = 1 + iota ObjectAccessedGet ObjectAccessedGetRetention ObjectAccessedGetLegalHold ObjectAccessedHead ObjectCreatedAll ObjectCreatedCompleteMultipartUpload ObjectCreatedCopy ObjectCreatedPost ObjectCreatedPut ObjectCreatedPutRetention ObjectCreatedPutLegalHold ObjectCreatedPutTagging ObjectCreatedDeleteTagging ObjectRemovedAll ObjectRemovedDelete ObjectRemovedDeleteMarkerCreated BucketCreated BucketRemoved ObjectReplicationAll ObjectReplicationFailed ObjectReplicationComplete ObjectReplicationMissedThreshold ObjectReplicationReplicatedAfterThreshold ObjectReplicationNotTracked ObjectRestorePostInitiated ObjectRestorePostCompleted ObjectRestorePostAll ObjectTransitionAll ObjectTransitionFailed ObjectTransitionComplete )
Values of event Name
func (Name) MarshalJSON ¶
MarshalJSON - encodes to JSON data.
func (Name) MarshalXML ¶
MarshalXML - encodes to XML data.
func (*Name) UnmarshalJSON ¶
UnmarshalJSON - decodes JSON data.
func (*Name) UnmarshalXML ¶
UnmarshalXML - decodes XML data.
type Object ¶
type Object struct { Key string `json:"key"` Size int64 `json:"size,omitempty"` ETag string `json:"eTag,omitempty"` ContentType string `json:"contentType,omitempty"` UserMetadata map[string]string `json:"userMetadata,omitempty"` VersionID string `json:"versionId,omitempty"` Sequencer string `json:"sequencer"` }
Object represents object metadata of the event.
type Queue ¶
type Queue struct { ARN ARN `xml:"Queue"` // contains filtered or unexported fields }
Queue - represents elements inside <QueueConfiguration>
func (Queue) ToRulesMap ¶
ToRulesMap - converts Queue to RulesMap
func (*Queue) UnmarshalXML ¶
UnmarshalXML - decodes XML data.
type Rules ¶
type Rules map[string]TargetIDSet
Rules - event rules
func (Rules) Difference ¶
Difference - returns diffrence with given rules as new rules.
func (Rules) Match ¶
func (rules Rules) Match(objectName string) TargetIDSet
Match - returns TargetIDSet matching object name in rules.
func (Rules) MatchSimple ¶
MatchSimple - returns true one of the matching object name in rules.
type RulesMap ¶
RulesMap - map of rules for every event name.
func NewRulesMap ¶
NewRulesMap - creates new rules map with given values.
func (RulesMap) Match ¶
func (rulesMap RulesMap) Match(eventName Name, objectName string) TargetIDSet
Match - returns TargetIDSet matching object name and event name in rules map.
func (RulesMap) MatchSimple ¶
MatchSimple - returns true if matching object name and event name in rules map.
type S3Key ¶
type S3Key struct {
RuleList FilterRuleList `xml:"S3Key,omitempty" json:"S3Key,omitempty"`
}
S3Key - represents elements inside <S3Key>...</S3Key>
func (S3Key) MarshalXML ¶
MarshalXML implements a custom marshaller to support `omitempty` feature.
type Source ¶
type Source struct { Host string `json:"host"` Port string `json:"port"` UserAgent string `json:"userAgent"` }
Source represents client information who triggered the event.
type Target ¶
type Target interface { ID() TargetID IsActive() (bool, error) Save(Event) error Send(string) error Close() error HasQueueStore() bool }
Target - event target interface
type TargetID ¶
TargetID - holds identification and name strings of notification target.
func (TargetID) MarshalJSON ¶
MarshalJSON - encodes to JSON data.
func (*TargetID) UnmarshalJSON ¶
UnmarshalJSON - decodes JSON data.
type TargetIDResult ¶
type TargetIDResult struct { // ID where the remove or send were initiated. ID TargetID // Stores any error while removing a target or while sending an event. Err error }
TargetIDResult returns result of Remove/Send operation, sets err if any for the associated TargetID
type TargetIDSet ¶
type TargetIDSet map[TargetID]struct{}
TargetIDSet - Set representation of TargetIDs.
func NewTargetIDSet ¶
func NewTargetIDSet(targetIDs ...TargetID) TargetIDSet
NewTargetIDSet - creates new TargetID set with given TargetIDs.
func (TargetIDSet) Clone ¶
func (set TargetIDSet) Clone() TargetIDSet
Clone - returns copy of this set.
func (TargetIDSet) Difference ¶
func (set TargetIDSet) Difference(sset TargetIDSet) TargetIDSet
Difference - returns diffrence with given set as new set.
func (TargetIDSet) IsEmpty ¶
func (set TargetIDSet) IsEmpty() bool
IsEmpty returns true if the set is empty.
func (TargetIDSet) Union ¶
func (set TargetIDSet) Union(sset TargetIDSet) TargetIDSet
Union - returns union with given set as new set.
type TargetList ¶
TargetList - holds list of targets indexed by target ID.
func (*TargetList) Add ¶
func (list *TargetList) Add(targets ...Target) error
Add - adds unique target to target list.
func (*TargetList) Exists ¶
func (list *TargetList) Exists(id TargetID) bool
Exists - checks whether target by target ID exists or not.
func (*TargetList) List ¶
func (list *TargetList) List() []TargetID
List - returns available target IDs.
func (*TargetList) Remove ¶
func (list *TargetList) Remove(targetIDSet TargetIDSet)
Remove - closes and removes targets by given target IDs.
func (*TargetList) Send ¶
func (list *TargetList) Send(event Event, targetIDset TargetIDSet, resCh chan<- TargetIDResult)
Send - sends events to targets identified by target IDs.
func (*TargetList) TargetMap ¶
func (list *TargetList) TargetMap() map[TargetID]Target
TargetMap - returns available targets.