mirror of
				https://github.com/minio/minio.git
				synced 2025-10-31 00:01:27 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) 2015-2021 MinIO, Inc.
 | |
| //
 | |
| // This file is part of MinIO Object Storage stack
 | |
| //
 | |
| // This program is free software: you can redistribute it and/or modify
 | |
| // it under the terms of the GNU Affero General Public License as published by
 | |
| // the Free Software Foundation, either version 3 of the License, or
 | |
| // (at your option) any later version.
 | |
| //
 | |
| // This program is distributed in the hope that it will be useful
 | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| // GNU Affero General Public License for more details.
 | |
| //
 | |
| // You should have received a copy of the GNU Affero General Public License
 | |
| // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| 
 | |
| package event
 | |
| 
 | |
| import (
 | |
| 	"github.com/minio/madmin-go/v3"
 | |
| )
 | |
| 
 | |
| 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"
 | |
| 
 | |
| 	// StoreExtension - file extension of an event file in store
 | |
| 	StoreExtension = ".event"
 | |
| )
 | |
| 
 | |
| // Identity represents access key who caused the event.
 | |
| type Identity struct {
 | |
| 	PrincipalID string `json:"principalId"`
 | |
| }
 | |
| 
 | |
| // Bucket represents bucket metadata of the event.
 | |
| type Bucket struct {
 | |
| 	Name          string   `json:"name"`
 | |
| 	OwnerIdentity Identity `json:"ownerIdentity"`
 | |
| 	ARN           string   `json:"arn"`
 | |
| }
 | |
| 
 | |
| // Object represents object metadata of the event.
 | |
| 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"`
 | |
| }
 | |
| 
 | |
| // Metadata represents event metadata.
 | |
| type Metadata struct {
 | |
| 	SchemaVersion   string `json:"s3SchemaVersion"`
 | |
| 	ConfigurationID string `json:"configurationId"`
 | |
| 	Bucket          Bucket `json:"bucket"`
 | |
| 	Object          Object `json:"object"`
 | |
| }
 | |
| 
 | |
| // Source represents client information who triggered the event.
 | |
| type Source struct {
 | |
| 	Host      string `json:"host"`
 | |
| 	Port      string `json:"port"`
 | |
| 	UserAgent string `json:"userAgent"`
 | |
| }
 | |
| 
 | |
| // Event represents event notification information defined in
 | |
| // http://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html.
 | |
| 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"`
 | |
| 	Type              madmin.TraceType  `json:"-"`
 | |
| }
 | |
| 
 | |
| // Mask returns the type as mask.
 | |
| func (e Event) Mask() uint64 {
 | |
| 	return e.EventName.Mask()
 | |
| }
 | |
| 
 | |
| // Log represents event information for some event targets.
 | |
| type Log struct {
 | |
| 	EventName Name
 | |
| 	Key       string
 | |
| 	Records   []Event
 | |
| }
 |