mirror of
				https://github.com/minio/minio.git
				synced 2025-10-31 16:21:49 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) 2015-2023 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 "net/http"
 | |
| 
 | |
| // Identity represents access key who caused the event.
 | |
| type Identity struct {
 | |
| 	Type        string `json:"type"`
 | |
| 	PrincipalID string `json:"principalId"`
 | |
| 	AccessKeyID string `json:"accessKeyId"`
 | |
| }
 | |
| 
 | |
| // UserRequest user request headers
 | |
| type UserRequest struct {
 | |
| 	URL     string      `json:"url"`
 | |
| 	Headers http.Header `json:"headers"`
 | |
| }
 | |
| 
 | |
| // GetObjectContext provides the necessary details to perform
 | |
| // download of the object, and return back the processed response
 | |
| // to the server.
 | |
| type GetObjectContext struct {
 | |
| 	OutputRoute string `json:"outputRoute"`
 | |
| 	OutputToken string `json:"outputToken"`
 | |
| 	InputS3URL  string `json:"inputS3Url"`
 | |
| }
 | |
| 
 | |
| // Event represents lambda function event, this is undocumented in AWS S3. This
 | |
| // structure bases itself on this structure but there is no binding.
 | |
| //
 | |
| //	{
 | |
| //	  "xAmzRequestId": "a2871150-1df5-4dc9-ad9f-3da283ca1bf3",
 | |
| //	  "getObjectContext": {
 | |
| //	    "outputRoute": "...",
 | |
| //	    "outputToken": "...",
 | |
| //	    "inputS3Url": "<presignedURL>"
 | |
| //	  },
 | |
| //	  "configuration": { // not useful in MinIO
 | |
| //	    "accessPointArn": "...",
 | |
| //	    "supportingAccessPointArn": "...",
 | |
| //	    "payload": ""
 | |
| //	  },
 | |
| //	  "userRequest": {
 | |
| //	    "url": "...",
 | |
| //	    "headers": {
 | |
| //	      "Host": "...",
 | |
| //	      "X-Amz-Content-SHA256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
 | |
| //	    }
 | |
| //	  },
 | |
| //	  "userIdentity": {
 | |
| //	    "type": "IAMUser",
 | |
| //	    "principalId": "AIDAJF5MO57RFXQCE5ZNC",
 | |
| //	    "arn": "...",
 | |
| //	    "accountId": "...",
 | |
| //	    "accessKeyId": "AKIA3WNQJCXE2DYPAU7R"
 | |
| //	  },
 | |
| //	  "protocolVersion": "1.00"
 | |
| //	}
 | |
| type Event struct {
 | |
| 	ProtocolVersion  string            `json:"protocolVersion"`
 | |
| 	GetObjectContext *GetObjectContext `json:"getObjectContext"`
 | |
| 	UserIdentity     Identity          `json:"userIdentity"`
 | |
| 	UserRequest      UserRequest       `json:"userRequest"`
 | |
| }
 |