mirror of https://github.com/octoleo/restic.git
189 lines
5.4 KiB
Go
189 lines
5.4 KiB
Go
/*
|
|
* Minio Go Library for Amazon S3 Compatible Cloud Storage (C) 2015 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.
|
|
*/
|
|
|
|
package minio
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"time"
|
|
)
|
|
|
|
// listAllMyBucketsResult container for listBuckets response
|
|
type listAllMyBucketsResult struct {
|
|
// Container for one or more buckets.
|
|
Buckets struct {
|
|
Bucket []BucketStat
|
|
}
|
|
Owner owner
|
|
}
|
|
|
|
// owner container for bucket owner information
|
|
type owner struct {
|
|
DisplayName string
|
|
ID string
|
|
}
|
|
|
|
// commonPrefix container for prefix response
|
|
type commonPrefix struct {
|
|
Prefix string
|
|
}
|
|
|
|
// listBucketResult container for listObjects response
|
|
type listBucketResult struct {
|
|
CommonPrefixes []commonPrefix // A response can contain CommonPrefixes only if you have specified a delimiter
|
|
Contents []ObjectStat // Metadata about each object returned
|
|
Delimiter string
|
|
|
|
// Encoding type used to encode object keys in the response.
|
|
EncodingType string
|
|
|
|
// A flag that indicates whether or not ListObjects returned all of the results
|
|
// that satisfied the search criteria.
|
|
IsTruncated bool
|
|
Marker string
|
|
MaxKeys int64
|
|
Name string
|
|
|
|
// When response is truncated (the IsTruncated element value in the response
|
|
// is true), you can use the key name in this field as marker in the subsequent
|
|
// request to get next set of objects. Object storage lists objects in alphabetical
|
|
// order Note: This element is returned only if you have delimiter request parameter
|
|
// specified. If response does not include the NextMaker and it is truncated,
|
|
// you can use the value of the last Key in the response as the marker in the
|
|
// subsequent request to get the next set of object keys.
|
|
NextMarker string
|
|
Prefix string
|
|
}
|
|
|
|
// listMultipartUploadsResult container for ListMultipartUploads response
|
|
type listMultipartUploadsResult struct {
|
|
Bucket string
|
|
KeyMarker string
|
|
UploadIDMarker string `xml:"UploadIdMarker"`
|
|
NextKeyMarker string
|
|
NextUploadIDMarker string `xml:"NextUploadIdMarker"`
|
|
EncodingType string
|
|
MaxUploads int64
|
|
IsTruncated bool
|
|
Uploads []ObjectMultipartStat `xml:"Upload"`
|
|
Prefix string
|
|
Delimiter string
|
|
CommonPrefixes []commonPrefix // A response can contain CommonPrefixes only if you specify a delimiter
|
|
}
|
|
|
|
// initiator container for who initiated multipart upload
|
|
type initiator struct {
|
|
ID string
|
|
DisplayName string
|
|
}
|
|
|
|
// objectPart container for particular part of an object
|
|
type objectPart struct {
|
|
// Part number identifies the part.
|
|
PartNumber int
|
|
|
|
// Date and time the part was uploaded.
|
|
LastModified time.Time
|
|
|
|
// Entity tag returned when the part was uploaded, usually md5sum of the part
|
|
ETag string
|
|
|
|
// Size of the uploaded part data.
|
|
Size int64
|
|
|
|
// Error
|
|
Err error
|
|
}
|
|
|
|
// listObjectPartsResult container for ListObjectParts response.
|
|
type listObjectPartsResult struct {
|
|
Bucket string
|
|
Key string
|
|
UploadID string `xml:"UploadId"`
|
|
|
|
Initiator initiator
|
|
Owner owner
|
|
|
|
StorageClass string
|
|
PartNumberMarker int
|
|
NextPartNumberMarker int
|
|
MaxParts int
|
|
|
|
// Indicates whether the returned list of parts is truncated.
|
|
IsTruncated bool
|
|
ObjectParts []objectPart `xml:"Part"`
|
|
|
|
EncodingType string
|
|
}
|
|
|
|
// initiateMultipartUploadResult container for InitiateMultiPartUpload response.
|
|
type initiateMultipartUploadResult struct {
|
|
Bucket string
|
|
Key string
|
|
UploadID string `xml:"UploadId"`
|
|
}
|
|
|
|
// completeMultipartUploadResult container for completed multipart upload response.
|
|
type completeMultipartUploadResult struct {
|
|
Location string
|
|
Bucket string
|
|
Key string
|
|
ETag string
|
|
}
|
|
|
|
// completePart sub container lists individual part numbers and their md5sum, part of completeMultipartUpload.
|
|
type completePart struct {
|
|
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Part" json:"-"`
|
|
|
|
// Part number identifies the part.
|
|
PartNumber int
|
|
ETag string
|
|
}
|
|
|
|
// completeMultipartUpload container for completing multipart upload
|
|
type completeMultipartUpload struct {
|
|
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CompleteMultipartUpload" json:"-"`
|
|
Parts []completePart `xml:"Part"`
|
|
}
|
|
|
|
// createBucketConfiguration container for bucket configuration
|
|
type createBucketConfiguration struct {
|
|
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CreateBucketConfiguration" json:"-"`
|
|
Location string `xml:"LocationConstraint"`
|
|
}
|
|
|
|
// grant container for the grantee and his or her permissions.
|
|
type grant struct {
|
|
// grantee container for DisplayName and ID of the person being granted permissions.
|
|
Grantee struct {
|
|
ID string
|
|
DisplayName string
|
|
EmailAddress string
|
|
Type string
|
|
URI string
|
|
}
|
|
Permission string
|
|
}
|
|
|
|
// accessControlPolicy contains the elements providing ACL permissions for a bucket.
|
|
type accessControlPolicy struct {
|
|
// accessControlList container for ACL information.
|
|
AccessControlList struct {
|
|
Grant []grant
|
|
}
|
|
Owner owner
|
|
}
|