| 
									
										
										
										
											2016-03-06 08:43:48 +08:00
										 |  |  | /* | 
					
						
							|  |  |  |  * Minio Cloud Storage, (C) 2015, 2016 Minio, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-19 07:23:42 +08:00
										 |  |  | package cmd | 
					
						
							| 
									
										
										
										
											2016-03-06 08:43:48 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-21 08:35:38 +08:00
										 |  |  | import ( | 
					
						
							|  |  |  | 	"encoding/xml" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-11 08:43:48 +08:00
										 |  |  | const ( | 
					
						
							|  |  |  | 	// Response request id.
 | 
					
						
							|  |  |  | 	responseRequestIDKey = "x-amz-request-id" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-15 18:30:19 +08:00
										 |  |  | // CSVFileHeaderInfo -Can be either USE IGNORE OR NONE, defines what to do with
 | 
					
						
							|  |  |  | // the first row
 | 
					
						
							|  |  |  | type CSVFileHeaderInfo string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Constants for file header info.
 | 
					
						
							|  |  |  | const ( | 
					
						
							|  |  |  | 	CSVFileHeaderInfoNone   CSVFileHeaderInfo = "NONE" | 
					
						
							|  |  |  | 	CSVFileHeaderInfoIgnore                   = "IGNORE" | 
					
						
							|  |  |  | 	CSVFileHeaderInfoUse                      = "USE" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // SelectCompressionType - ONLY GZIP is supported
 | 
					
						
							|  |  |  | type SelectCompressionType string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Constants for compression types under select API.
 | 
					
						
							|  |  |  | const ( | 
					
						
							|  |  |  | 	SelectCompressionNONE SelectCompressionType = "NONE" | 
					
						
							|  |  |  | 	SelectCompressionGZIP                       = "GZIP" | 
					
						
							|  |  |  | 	SelectCompressionBZIP                       = "BZIP2" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // CSVQuoteFields - Can be either Always or AsNeeded
 | 
					
						
							|  |  |  | type CSVQuoteFields string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Constants for csv quote styles.
 | 
					
						
							|  |  |  | const ( | 
					
						
							|  |  |  | 	CSVQuoteFieldsAlways   CSVQuoteFields = "Always" | 
					
						
							|  |  |  | 	CSVQuoteFieldsAsNeeded                = "AsNeeded" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // QueryExpressionType - Currently can only be SQL
 | 
					
						
							|  |  |  | type QueryExpressionType string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Constants for expression type.
 | 
					
						
							|  |  |  | const ( | 
					
						
							|  |  |  | 	QueryExpressionTypeSQL QueryExpressionType = "SQL" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // JSONType determines json input serialization type.
 | 
					
						
							|  |  |  | type JSONType string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Constants for JSONTypes.
 | 
					
						
							|  |  |  | const ( | 
					
						
							|  |  |  | 	JSONDocumentType JSONType = "Document" | 
					
						
							|  |  |  | 	JSONStreamType            = "Stream" | 
					
						
							|  |  |  | 	JSONLinesType             = "Lines" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // ObjectSelectRequest - represents the input select body
 | 
					
						
							|  |  |  | type ObjectSelectRequest struct { | 
					
						
							|  |  |  | 	XMLName            xml.Name `xml:"SelectObjectContentRequest" json:"-"` | 
					
						
							|  |  |  | 	Expression         string | 
					
						
							|  |  |  | 	ExpressionType     QueryExpressionType | 
					
						
							|  |  |  | 	InputSerialization struct { | 
					
						
							|  |  |  | 		CompressionType SelectCompressionType | 
					
						
							|  |  |  | 		CSV             *struct { | 
					
						
							|  |  |  | 			FileHeaderInfo       CSVFileHeaderInfo | 
					
						
							|  |  |  | 			RecordDelimiter      string | 
					
						
							|  |  |  | 			FieldDelimiter       string | 
					
						
							|  |  |  | 			QuoteCharacter       string | 
					
						
							|  |  |  | 			QuoteEscapeCharacter string | 
					
						
							|  |  |  | 			Comments             string | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		JSON *struct { | 
					
						
							|  |  |  | 			Type JSONType | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	OutputSerialization struct { | 
					
						
							|  |  |  | 		CSV *struct { | 
					
						
							|  |  |  | 			QuoteFields          CSVQuoteFields | 
					
						
							|  |  |  | 			RecordDelimiter      string | 
					
						
							|  |  |  | 			FieldDelimiter       string | 
					
						
							|  |  |  | 			QuoteCharacter       string | 
					
						
							|  |  |  | 			QuoteEscapeCharacter string | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		JSON *struct { | 
					
						
							|  |  |  | 			RecordDelimiter string | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-06 08:43:48 +08:00
										 |  |  | // ObjectIdentifier carries key name for the object to delete.
 | 
					
						
							|  |  |  | type ObjectIdentifier struct { | 
					
						
							|  |  |  | 	ObjectName string `xml:"Key"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-21 08:35:38 +08:00
										 |  |  | // createBucketConfiguration container for bucket configuration request from client.
 | 
					
						
							|  |  |  | // Used for parsing the location from the request body for MakeBucketbucket.
 | 
					
						
							|  |  |  | type createBucketLocationConfiguration struct { | 
					
						
							| 
									
										
										
										
											2016-09-30 06:51:00 +08:00
										 |  |  | 	XMLName  xml.Name `xml:"CreateBucketConfiguration" json:"-"` | 
					
						
							| 
									
										
										
										
											2016-04-21 08:35:38 +08:00
										 |  |  | 	Location string   `xml:"LocationConstraint"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-06 08:43:48 +08:00
										 |  |  | // DeleteObjectsRequest - xml carrying the object key names which needs to be deleted.
 | 
					
						
							|  |  |  | type DeleteObjectsRequest struct { | 
					
						
							|  |  |  | 	// Element to enable quiet mode for the request
 | 
					
						
							|  |  |  | 	Quiet bool | 
					
						
							|  |  |  | 	// List of objects to be deleted
 | 
					
						
							|  |  |  | 	Objects []ObjectIdentifier `xml:"Object"` | 
					
						
							|  |  |  | } |