forked from TrueCloudLab/frostfs-s3-gw
42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
package data
|
|
|
|
import "encoding/xml"
|
|
|
|
type (
|
|
NotificationConfiguration struct {
|
|
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ NotificationConfiguration" json:"-"`
|
|
QueueConfigurations []QueueConfiguration `xml:"QueueConfiguration" json:"QueueConfigurations"`
|
|
// Not supported topics
|
|
TopicConfigurations []TopicConfiguration `xml:"TopicConfiguration" json:"TopicConfigurations"`
|
|
LambdaFunctionConfigurations []LambdaFunctionConfiguration `xml:"CloudFunctionConfiguration" json:"CloudFunctionConfigurations"`
|
|
}
|
|
|
|
QueueConfiguration struct {
|
|
ID string `xml:"Id" json:"Id"`
|
|
QueueArn string `xml:"Queue" json:"Queue"`
|
|
Events []string `xml:"Event" json:"Events"`
|
|
Filter Filter `xml:"Filter" json:"Filter"`
|
|
}
|
|
|
|
Filter struct {
|
|
Key Key `xml:"S3Key" json:"S3Key"`
|
|
}
|
|
|
|
Key struct {
|
|
FilterRules []FilterRule `xml:"FilterRule" json:"FilterRules"`
|
|
}
|
|
|
|
FilterRule struct {
|
|
Name string `xml:"Name" json:"Name"`
|
|
Value string `xml:"Value" json:"Value"`
|
|
}
|
|
|
|
// TopicConfiguration and LambdaFunctionConfiguration -- we don't support these configurations,
|
|
// but we need them to detect in notification configurations in requests.
|
|
TopicConfiguration struct{}
|
|
LambdaFunctionConfiguration struct{}
|
|
)
|
|
|
|
func (n NotificationConfiguration) IsEmpty() bool {
|
|
return len(n.QueueConfigurations) == 0 && len(n.TopicConfigurations) == 0 && len(n.LambdaFunctionConfigurations) == 0
|
|
}
|