Files
seaweedfs/weed/s3api/s3api_xsd_generated.go
T
Chris Lu 17af32f3ff s3: paginate ListBuckets and serve it from a bucket owner index (#10214)
* s3: paginate ListBuckets with max-buckets, continuation-token, and prefix

ListBuckets buffered every bucket entry into one slice and one XML body,
which falls over with very large bucket counts. Page through the filer
listing instead, cap each response at 10000 buckets like AWS, and honor
max-buckets, prefix, and an opaque keyset continuation-token.

* s3: maintain a bucket owner index under /buckets/.system/owners

Map each bucket owner to its buckets as zero-length entries at
/buckets/.system/owners/<owner>/<bucket>, with Crtime mirroring the
bucket's creation time. The bucket handlers write the index
synchronously, the /buckets metadata subscription reconciles changes
made elsewhere (weed shell, other gateways, direct filer operations),
and a startup backfill indexes pre-existing buckets before writing a
ready marker. Owner names are path-escaped so no identity name can
escape the index directory.

* s3: serve ListBuckets from the bucket owner index

Once the owner index is ready, non-admin identities list their owned
buckets straight from it, merged with any buckets their legacy actions
name explicitly, so ListBuckets costs O(own buckets) instead of a scan
of the global /buckets directory. Admins, identities with a bare List
grant or wildcard action patterns, and policy-authorized identities
whose grants cannot be enumerated keep the paged scan; policy-routed
identities get their owned buckets, matching AWS ListBuckets returning
only the caller's buckets.

* s3: keep dot-prefixed names under /buckets out of bucket surfaces

Dot-prefixed entries (.system) can never be valid bucket names, so
refuse to resolve them as buckets and skip them in the shell bucket
listing, matching what ListBuckets and the admin UI already do.

* test: cover ListBuckets pagination and the owner index end to end

* s3: fail closed on a nil identity when routing ListBuckets

* s3: decide the IAM authorization mechanism in one place

VerifyActionPermission and the ListBuckets owner-index routing each
re-derived the session-token / attached-policy / legacy-actions split;
extract the decision so the two cannot drift.

* s3: heal the owner index on concurrent bucket recreation too

The mkdir-lost-the-race path answers BucketAlreadyOwnedByYou just like
the up-front existence check, so give it the same index repair.

* s3: drop owner-index records for buckets deleted during backfill

A bucket removed between the backfill reading its page and writing the
index record became a permanent phantom in its owner's listing: the
delete's own cleanup ran before the record existed. After indexing each
page, re-list the same name range and remove records whose bucket is
gone; deletes landing after the re-list find the record and remove it
themselves.

* s3: add ContinuationToken and Prefix to the ListBuckets schema

Keep AmazonS3.xsd aligned with the generated ListAllMyBucketsResult so
a regeneration does not drop the pagination fields.
2026-07-02 21:11:41 -07:00

1546 lines
52 KiB
Go

// Code generated by xsdgen. DO NOT EDIT.
package s3api
import (
"bytes"
"encoding/base64"
"encoding/xml"
"time"
)
type AccessControlList struct {
Grant []Grant `xml:"Grant,omitempty"`
}
type AccessControlPolicy struct {
Owner CanonicalUser `xml:"Owner"`
AccessControlList AccessControlList `xml:"AccessControlList"`
}
type AmazonCustomerByEmail struct {
EmailAddress string `xml:"EmailAddress"`
}
type Anon1 struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon1) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon1
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon1) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon1
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon10 struct {
}
type Anon11 struct {
Bucket string `xml:"Bucket"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon11) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon11
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon11) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon11
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon12 struct {
}
type Anon13 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
GetMetadata bool `xml:"GetMetadata"`
GetData bool `xml:"GetData"`
InlineData bool `xml:"InlineData"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon13) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon13
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon13) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon13
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon14 struct {
GetObjectResponse GetObjectResult `xml:"GetObjectResponse"`
}
type Anon15 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
GetMetadata bool `xml:"GetMetadata"`
GetData bool `xml:"GetData"`
InlineData bool `xml:"InlineData"`
ByteRangeStart int64 `xml:"ByteRangeStart,omitempty"`
ByteRangeEnd int64 `xml:"ByteRangeEnd,omitempty"`
IfModifiedSince time.Time `xml:"IfModifiedSince,omitempty"`
IfUnmodifiedSince time.Time `xml:"IfUnmodifiedSince,omitempty"`
IfMatch []string `xml:"IfMatch,omitempty"`
IfNoneMatch []string `xml:"IfNoneMatch,omitempty"`
ReturnCompleteObjectOnConditionFailure bool `xml:"ReturnCompleteObjectOnConditionFailure,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon15) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon15
var layout struct {
*T
IfModifiedSince *xsdDateTime `xml:"IfModifiedSince,omitempty"`
IfUnmodifiedSince *xsdDateTime `xml:"IfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.IfModifiedSince = (*xsdDateTime)(&layout.T.IfModifiedSince)
layout.IfUnmodifiedSince = (*xsdDateTime)(&layout.T.IfUnmodifiedSince)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon15) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon15
var overlay struct {
*T
IfModifiedSince *xsdDateTime `xml:"IfModifiedSince,omitempty"`
IfUnmodifiedSince *xsdDateTime `xml:"IfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.IfModifiedSince = (*xsdDateTime)(&overlay.T.IfModifiedSince)
overlay.IfUnmodifiedSince = (*xsdDateTime)(&overlay.T.IfUnmodifiedSince)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon16 struct {
GetObjectResponse GetObjectResult `xml:"GetObjectResponse"`
}
type Anon17 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
ContentLength int64 `xml:"ContentLength"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
StorageClass StorageClass `xml:"StorageClass,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon17) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon17
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon17) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon17
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon18 struct {
PutObjectResponse PutObjectResult `xml:"PutObjectResponse"`
}
type Anon19 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
Data []byte `xml:"Data"`
ContentLength int64 `xml:"ContentLength"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
StorageClass StorageClass `xml:"StorageClass,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon19) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon19
var layout struct {
*T
Data *xsdBase64Binary `xml:"Data"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Data = (*xsdBase64Binary)(&layout.T.Data)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon19) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon19
var overlay struct {
*T
Data *xsdBase64Binary `xml:"Data"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Data = (*xsdBase64Binary)(&overlay.T.Data)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon2 struct {
GetBucketLoggingStatusResponse BucketLoggingStatus `xml:"GetBucketLoggingStatusResponse"`
}
type Anon20 struct {
PutObjectInlineResponse PutObjectResult `xml:"PutObjectInlineResponse"`
}
type Anon21 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon21) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon21
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon21) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon21
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon22 struct {
DeleteObjectResponse Status `xml:"DeleteObjectResponse"`
}
type Anon23 struct {
Bucket string `xml:"Bucket"`
Prefix string `xml:"Prefix,omitempty"`
Marker string `xml:"Marker,omitempty"`
MaxKeys int `xml:"MaxKeys,omitempty"`
Delimiter string `xml:"Delimiter,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon23) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon23
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon23) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon23
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon24 struct {
ListBucketResponse ListBucketResult `xml:"ListBucketResponse"`
}
type Anon25 struct {
ListVersionsResponse ListVersionsResult `xml:"ListVersionsResponse"`
}
type Anon26 struct {
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
}
func (t *Anon26) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon26
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon26) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon26
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon27 struct {
ListAllMyBucketsResponse ListAllMyBucketsResult `xml:"ListAllMyBucketsResponse"`
}
type Anon28 struct {
Location string `xml:"Location"`
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
ETag string `xml:"ETag"`
}
type Anon29 struct {
SourceBucket string `xml:"SourceBucket"`
SourceKey string `xml:"SourceKey"`
DestinationBucket string `xml:"DestinationBucket"`
DestinationKey string `xml:"DestinationKey"`
MetadataDirective MetadataDirective `xml:"MetadataDirective,omitempty"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
CopySourceIfModifiedSince time.Time `xml:"CopySourceIfModifiedSince,omitempty"`
CopySourceIfUnmodifiedSince time.Time `xml:"CopySourceIfUnmodifiedSince,omitempty"`
CopySourceIfMatch []string `xml:"CopySourceIfMatch,omitempty"`
CopySourceIfNoneMatch []string `xml:"CopySourceIfNoneMatch,omitempty"`
StorageClass StorageClass `xml:"StorageClass,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon29) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon29
var layout struct {
*T
CopySourceIfModifiedSince *xsdDateTime `xml:"CopySourceIfModifiedSince,omitempty"`
CopySourceIfUnmodifiedSince *xsdDateTime `xml:"CopySourceIfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.CopySourceIfModifiedSince = (*xsdDateTime)(&layout.T.CopySourceIfModifiedSince)
layout.CopySourceIfUnmodifiedSince = (*xsdDateTime)(&layout.T.CopySourceIfUnmodifiedSince)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon29) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon29
var overlay struct {
*T
CopySourceIfModifiedSince *xsdDateTime `xml:"CopySourceIfModifiedSince,omitempty"`
CopySourceIfUnmodifiedSince *xsdDateTime `xml:"CopySourceIfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.CopySourceIfModifiedSince = (*xsdDateTime)(&overlay.T.CopySourceIfModifiedSince)
overlay.CopySourceIfUnmodifiedSince = (*xsdDateTime)(&overlay.T.CopySourceIfUnmodifiedSince)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon3 struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
BucketLoggingStatus BucketLoggingStatus `xml:"BucketLoggingStatus"`
}
func (t *Anon3) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon3
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon3) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon3
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon30 struct {
CopyObjectResult CopyObjectResult `xml:"CopyObjectResult"`
}
type Anon4 struct {
}
type Anon5 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon5) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon5
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon5) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon5
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon6 struct {
GetObjectAccessControlPolicyResponse AccessControlPolicy `xml:"GetObjectAccessControlPolicyResponse"`
}
type Anon7 struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon7) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon7
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon7) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon7
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type Anon8 struct {
GetBucketAccessControlPolicyResponse AccessControlPolicy `xml:"GetBucketAccessControlPolicyResponse"`
}
type Anon9 struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
AccessControlList AccessControlList `xml:"AccessControlList"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *Anon9) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T Anon9
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *Anon9) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T Anon9
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type BucketLoggingStatus struct {
LoggingEnabled LoggingSettings `xml:"LoggingEnabled,omitempty"`
}
type CanonicalUser struct {
ID string `xml:"ID"`
DisplayName string `xml:"DisplayName,omitempty"`
}
type CopyObject struct {
SourceBucket string `xml:"SourceBucket"`
SourceKey string `xml:"SourceKey"`
DestinationBucket string `xml:"DestinationBucket"`
DestinationKey string `xml:"DestinationKey"`
MetadataDirective MetadataDirective `xml:"MetadataDirective,omitempty"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
CopySourceIfModifiedSince time.Time `xml:"CopySourceIfModifiedSince,omitempty"`
CopySourceIfUnmodifiedSince time.Time `xml:"CopySourceIfUnmodifiedSince,omitempty"`
CopySourceIfMatch []string `xml:"CopySourceIfMatch,omitempty"`
CopySourceIfNoneMatch []string `xml:"CopySourceIfNoneMatch,omitempty"`
StorageClass StorageClass `xml:"StorageClass,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *CopyObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T CopyObject
var layout struct {
*T
CopySourceIfModifiedSince *xsdDateTime `xml:"CopySourceIfModifiedSince,omitempty"`
CopySourceIfUnmodifiedSince *xsdDateTime `xml:"CopySourceIfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.CopySourceIfModifiedSince = (*xsdDateTime)(&layout.T.CopySourceIfModifiedSince)
layout.CopySourceIfUnmodifiedSince = (*xsdDateTime)(&layout.T.CopySourceIfUnmodifiedSince)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *CopyObject) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T CopyObject
var overlay struct {
*T
CopySourceIfModifiedSince *xsdDateTime `xml:"CopySourceIfModifiedSince,omitempty"`
CopySourceIfUnmodifiedSince *xsdDateTime `xml:"CopySourceIfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.CopySourceIfModifiedSince = (*xsdDateTime)(&overlay.T.CopySourceIfModifiedSince)
overlay.CopySourceIfUnmodifiedSince = (*xsdDateTime)(&overlay.T.CopySourceIfUnmodifiedSince)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type CopyObjectResponse struct {
CopyObjectResult CopyObjectResult `xml:"CopyObjectResult"`
}
type CopyObjectResult struct {
LastModified time.Time `xml:"LastModified"`
ETag string `xml:"ETag"`
}
func (t *CopyObjectResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T CopyObjectResult
var layout struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
layout.T = (*T)(t)
layout.LastModified = (*xsdDateTime)(&layout.T.LastModified)
return e.EncodeElement(layout, start)
}
func (t *CopyObjectResult) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T CopyObjectResult
var overlay struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
overlay.T = (*T)(t)
overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified)
return d.DecodeElement(&overlay, &start)
}
type CreateBucket struct {
Bucket string `xml:"Bucket"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
}
func (t *CreateBucket) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T CreateBucket
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *CreateBucket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T CreateBucket
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type CreateBucketConfiguration struct {
LocationConstraint string `xml:"LocationConstraint"`
}
type CreateBucketResponse struct {
CreateBucketReturn CreateBucketResult `xml:"CreateBucketReturn"`
}
type CreateBucketResult struct {
BucketName string `xml:"BucketName"`
}
type DeleteBucket struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *DeleteBucket) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T DeleteBucket
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *DeleteBucket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T DeleteBucket
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type DeleteBucketResponse struct {
DeleteBucketResponse Status `xml:"DeleteBucketResponse"`
}
type DeleteMarkerEntry struct {
Key string `xml:"Key"`
VersionId string `xml:"VersionId"`
IsLatest bool `xml:"IsLatest"`
LastModified time.Time `xml:"LastModified"`
Owner CanonicalUser `xml:"Owner,omitempty"`
}
func (t *DeleteMarkerEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T DeleteMarkerEntry
var layout struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
layout.T = (*T)(t)
layout.LastModified = (*xsdDateTime)(&layout.T.LastModified)
return e.EncodeElement(layout, start)
}
func (t *DeleteMarkerEntry) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T DeleteMarkerEntry
var overlay struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
overlay.T = (*T)(t)
overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified)
return d.DecodeElement(&overlay, &start)
}
type DeleteObject struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *DeleteObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T DeleteObject
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *DeleteObject) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T DeleteObject
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type DeleteObjectResponse struct {
DeleteObjectResponse Status `xml:"DeleteObjectResponse"`
}
type GetBucketAccessControlPolicy struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *GetBucketAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T GetBucketAccessControlPolicy
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *GetBucketAccessControlPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T GetBucketAccessControlPolicy
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type GetBucketAccessControlPolicyResponse struct {
GetBucketAccessControlPolicyResponse AccessControlPolicy `xml:"GetBucketAccessControlPolicyResponse"`
}
type GetBucketLoggingStatus struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *GetBucketLoggingStatus) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T GetBucketLoggingStatus
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *GetBucketLoggingStatus) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T GetBucketLoggingStatus
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type GetBucketLoggingStatusResponse struct {
GetBucketLoggingStatusResponse BucketLoggingStatus `xml:"GetBucketLoggingStatusResponse"`
}
type GetObject struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
GetMetadata bool `xml:"GetMetadata"`
GetData bool `xml:"GetData"`
InlineData bool `xml:"InlineData"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *GetObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T GetObject
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *GetObject) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T GetObject
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type GetObjectAccessControlPolicy struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *GetObjectAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T GetObjectAccessControlPolicy
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *GetObjectAccessControlPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T GetObjectAccessControlPolicy
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type GetObjectAccessControlPolicyResponse struct {
GetObjectAccessControlPolicyResponse AccessControlPolicy `xml:"GetObjectAccessControlPolicyResponse"`
}
type GetObjectExtended struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
GetMetadata bool `xml:"GetMetadata"`
GetData bool `xml:"GetData"`
InlineData bool `xml:"InlineData"`
ByteRangeStart int64 `xml:"ByteRangeStart,omitempty"`
ByteRangeEnd int64 `xml:"ByteRangeEnd,omitempty"`
IfModifiedSince time.Time `xml:"IfModifiedSince,omitempty"`
IfUnmodifiedSince time.Time `xml:"IfUnmodifiedSince,omitempty"`
IfMatch []string `xml:"IfMatch,omitempty"`
IfNoneMatch []string `xml:"IfNoneMatch,omitempty"`
ReturnCompleteObjectOnConditionFailure bool `xml:"ReturnCompleteObjectOnConditionFailure,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *GetObjectExtended) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T GetObjectExtended
var layout struct {
*T
IfModifiedSince *xsdDateTime `xml:"IfModifiedSince,omitempty"`
IfUnmodifiedSince *xsdDateTime `xml:"IfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.IfModifiedSince = (*xsdDateTime)(&layout.T.IfModifiedSince)
layout.IfUnmodifiedSince = (*xsdDateTime)(&layout.T.IfUnmodifiedSince)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *GetObjectExtended) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T GetObjectExtended
var overlay struct {
*T
IfModifiedSince *xsdDateTime `xml:"IfModifiedSince,omitempty"`
IfUnmodifiedSince *xsdDateTime `xml:"IfUnmodifiedSince,omitempty"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.IfModifiedSince = (*xsdDateTime)(&overlay.T.IfModifiedSince)
overlay.IfUnmodifiedSince = (*xsdDateTime)(&overlay.T.IfUnmodifiedSince)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type GetObjectExtendedResponse struct {
GetObjectResponse GetObjectResult `xml:"GetObjectResponse"`
}
type GetObjectResponse struct {
GetObjectResponse GetObjectResult `xml:"GetObjectResponse"`
}
type GetObjectResult struct {
Status Status `xml:"Status"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
Data []byte `xml:"Data,omitempty"`
LastModified time.Time `xml:"LastModified"`
ETag string `xml:"ETag"`
}
func (t *GetObjectResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T GetObjectResult
var layout struct {
*T
Data *xsdBase64Binary `xml:"Data,omitempty"`
LastModified *xsdDateTime `xml:"LastModified"`
}
layout.T = (*T)(t)
layout.Data = (*xsdBase64Binary)(&layout.T.Data)
layout.LastModified = (*xsdDateTime)(&layout.T.LastModified)
return e.EncodeElement(layout, start)
}
func (t *GetObjectResult) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T GetObjectResult
var overlay struct {
*T
Data *xsdBase64Binary `xml:"Data,omitempty"`
LastModified *xsdDateTime `xml:"LastModified"`
}
overlay.T = (*T)(t)
overlay.Data = (*xsdBase64Binary)(&overlay.T.Data)
overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified)
return d.DecodeElement(&overlay, &start)
}
type Grant struct {
Grantee Grantee `xml:"Grantee"`
Permission Permission `xml:"Permission"`
}
type Group struct {
URI string `xml:"URI"`
}
type ListAllMyBuckets struct {
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
}
func (t *ListAllMyBuckets) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T ListAllMyBuckets
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *ListAllMyBuckets) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T ListAllMyBuckets
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type ListAllMyBucketsEntry struct {
Name string `xml:"Name"`
CreationDate time.Time `xml:"CreationDate"`
}
func (t *ListAllMyBucketsEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T ListAllMyBucketsEntry
var layout struct {
*T
CreationDate *xsdDateTime `xml:"CreationDate"`
}
layout.T = (*T)(t)
layout.CreationDate = (*xsdDateTime)(&layout.T.CreationDate)
return e.EncodeElement(layout, start)
}
func (t *ListAllMyBucketsEntry) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T ListAllMyBucketsEntry
var overlay struct {
*T
CreationDate *xsdDateTime `xml:"CreationDate"`
}
overlay.T = (*T)(t)
overlay.CreationDate = (*xsdDateTime)(&overlay.T.CreationDate)
return d.DecodeElement(&overlay, &start)
}
type ListAllMyBucketsList struct {
Bucket []ListAllMyBucketsEntry `xml:"Bucket,omitempty"`
}
type ListAllMyBucketsResponse struct {
ListAllMyBucketsResponse ListAllMyBucketsResult `xml:"ListAllMyBucketsResponse"`
}
type ListAllMyBucketsResult struct {
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListAllMyBucketsResult"`
Owner CanonicalUser `xml:"Owner"`
Buckets ListAllMyBucketsList `xml:"Buckets"`
// ContinuationToken is set when the listing is truncated; passing it back
// via ?continuation-token= resumes the listing after the last bucket returned.
ContinuationToken string `xml:"ContinuationToken,omitempty"`
Prefix string `xml:"Prefix,omitempty"`
}
type ListBucket struct {
Bucket string `xml:"Bucket"`
Prefix string `xml:"Prefix,omitempty"`
Marker string `xml:"Marker,omitempty"`
MaxKeys int `xml:"MaxKeys,omitempty"`
Delimiter string `xml:"Delimiter,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *ListBucket) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T ListBucket
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *ListBucket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T ListBucket
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type ListBucketResponse struct {
ListBucketResponse ListBucketResult `xml:"ListBucketResponse"`
}
type ListBucketResult struct {
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
Name string `xml:"Name"`
Prefix string `xml:"Prefix"`
Marker string `xml:"Marker"`
NextMarker string `xml:"NextMarker,omitempty"`
MaxKeys int `xml:"MaxKeys"`
Delimiter string `xml:"Delimiter,omitempty"`
IsTruncated bool `xml:"IsTruncated"`
Contents []ListEntry `xml:"Contents,omitempty"`
CommonPrefixes []PrefixEntry `xml:"CommonPrefixes,omitempty"`
EncodingType string `xml:"EncodingType"`
}
type ListEntry struct {
Key string `xml:"Key"`
LastModified time.Time `xml:"LastModified"`
ETag string `xml:"ETag"`
Size int64 `xml:"Size"`
Owner *CanonicalUser `xml:"Owner,omitempty"`
StorageClass StorageClass `xml:"StorageClass"`
}
func (t *ListEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T ListEntry
var layout struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
layout.T = (*T)(t)
layout.LastModified = (*xsdDateTime)(&layout.T.LastModified)
return e.EncodeElement(layout, start)
}
func (t *ListEntry) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T ListEntry
var overlay struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
overlay.T = (*T)(t)
overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified)
return d.DecodeElement(&overlay, &start)
}
type ListVersionsResponse struct {
ListVersionsResponse ListVersionsResult `xml:"ListVersionsResponse"`
}
type ListVersionsResult struct {
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
Name string `xml:"Name"`
Prefix string `xml:"Prefix"`
KeyMarker string `xml:"KeyMarker"`
VersionIdMarker string `xml:"VersionIdMarker"`
NextKeyMarker string `xml:"NextKeyMarker,omitempty"`
NextVersionIdMarker string `xml:"NextVersionIdMarker,omitempty"`
MaxKeys int `xml:"MaxKeys"`
Delimiter string `xml:"Delimiter,omitempty"`
IsTruncated bool `xml:"IsTruncated"`
Version VersionEntry `xml:"Version,omitempty"`
DeleteMarker DeleteMarkerEntry `xml:"DeleteMarker,omitempty"`
CommonPrefixes []PrefixEntry `xml:"CommonPrefixes,omitempty"`
}
type LoggingSettings struct {
TargetBucket string `xml:"TargetBucket"`
TargetPrefix string `xml:"TargetPrefix"`
TargetGrants AccessControlList `xml:"TargetGrants,omitempty"`
}
// May be one of COPY, REPLACE
type MetadataDirective string
type MetadataEntry struct {
Name string `xml:"Name"`
Value string `xml:"Value"`
}
// May be one of Enabled, Disabled
type MfaDeleteStatus string
type NotificationConfiguration struct {
TopicConfiguration []TopicConfiguration `xml:"TopicConfiguration,omitempty"`
}
// May be one of BucketOwner, Requester
type Payer string
// May be one of READ, WRITE, READ_ACP, WRITE_ACP, FULL_CONTROL
type Permission string
type PostResponse struct {
Location string `xml:"Location"`
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
ETag string `xml:"ETag"`
}
type PrefixEntry struct {
Prefix string `xml:"Prefix"`
}
type PutObject struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
ContentLength int64 `xml:"ContentLength"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
StorageClass StorageClass `xml:"StorageClass,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *PutObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T PutObject
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *PutObject) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T PutObject
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type PutObjectInline struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
Metadata []MetadataEntry `xml:"Metadata,omitempty"`
Data []byte `xml:"Data"`
ContentLength int64 `xml:"ContentLength"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
StorageClass StorageClass `xml:"StorageClass,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *PutObjectInline) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T PutObjectInline
var layout struct {
*T
Data *xsdBase64Binary `xml:"Data"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Data = (*xsdBase64Binary)(&layout.T.Data)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *PutObjectInline) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T PutObjectInline
var overlay struct {
*T
Data *xsdBase64Binary `xml:"Data"`
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Data = (*xsdBase64Binary)(&overlay.T.Data)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type PutObjectInlineResponse struct {
PutObjectInlineResponse PutObjectResult `xml:"PutObjectInlineResponse"`
}
type PutObjectResponse struct {
PutObjectResponse PutObjectResult `xml:"PutObjectResponse"`
}
type PutObjectResult struct {
ETag string `xml:"ETag"`
LastModified time.Time `xml:"LastModified"`
}
func (t *PutObjectResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T PutObjectResult
var layout struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
layout.T = (*T)(t)
layout.LastModified = (*xsdDateTime)(&layout.T.LastModified)
return e.EncodeElement(layout, start)
}
func (t *PutObjectResult) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T PutObjectResult
var overlay struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
overlay.T = (*T)(t)
overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified)
return d.DecodeElement(&overlay, &start)
}
type RequestPaymentConfiguration struct {
Payer Payer `xml:"Payer"`
}
type Result struct {
Status Status `xml:"Status"`
}
type SetBucketAccessControlPolicy struct {
Bucket string `xml:"Bucket"`
AccessControlList AccessControlList `xml:"AccessControlList,omitempty"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *SetBucketAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T SetBucketAccessControlPolicy
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *SetBucketAccessControlPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T SetBucketAccessControlPolicy
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type SetBucketAccessControlPolicyResponse struct {
}
type SetBucketLoggingStatus struct {
Bucket string `xml:"Bucket"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
BucketLoggingStatus BucketLoggingStatus `xml:"BucketLoggingStatus"`
}
func (t *SetBucketLoggingStatus) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T SetBucketLoggingStatus
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *SetBucketLoggingStatus) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T SetBucketLoggingStatus
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type SetBucketLoggingStatusResponse struct {
}
type SetObjectAccessControlPolicy struct {
Bucket string `xml:"Bucket"`
Key string `xml:"Key"`
AccessControlList AccessControlList `xml:"AccessControlList"`
AWSAccessKeyId string `xml:"AWSAccessKeyId,omitempty"`
Timestamp time.Time `xml:"Timestamp,omitempty"`
Signature string `xml:"Signature,omitempty"`
Credential string `xml:"Credential,omitempty"`
}
func (t *SetObjectAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T SetObjectAccessControlPolicy
var layout struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
layout.T = (*T)(t)
layout.Timestamp = (*xsdDateTime)(&layout.T.Timestamp)
return e.EncodeElement(layout, start)
}
func (t *SetObjectAccessControlPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T SetObjectAccessControlPolicy
var overlay struct {
*T
Timestamp *xsdDateTime `xml:"Timestamp,omitempty"`
}
overlay.T = (*T)(t)
overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp)
return d.DecodeElement(&overlay, &start)
}
type SetObjectAccessControlPolicyResponse struct {
}
type Status struct {
Code int `xml:"Code"`
Description string `xml:"Description"`
}
// May be one of STANDARD, REDUCED_REDUNDANCY, GLACIER, UNKNOWN
type StorageClass string
type TopicConfiguration struct {
Topic string `xml:"Topic"`
Event []string `xml:"Event"`
}
type User struct {
}
type VersionEntry struct {
Key string `xml:"Key"`
VersionId string `xml:"VersionId"`
IsLatest bool `xml:"IsLatest"`
LastModified time.Time `xml:"LastModified"`
ETag string `xml:"ETag"`
Size int64 `xml:"Size"`
Owner CanonicalUser `xml:"Owner,omitempty"`
StorageClass StorageClass `xml:"StorageClass"`
}
func (t *VersionEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
type T VersionEntry
var layout struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
layout.T = (*T)(t)
layout.LastModified = (*xsdDateTime)(&layout.T.LastModified)
return e.EncodeElement(layout, start)
}
func (t *VersionEntry) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
type T VersionEntry
var overlay struct {
*T
LastModified *xsdDateTime `xml:"LastModified"`
}
overlay.T = (*T)(t)
overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified)
return d.DecodeElement(&overlay, &start)
}
type VersioningConfiguration struct {
Status VersioningStatus `xml:"Status,omitempty"`
MfaDelete MfaDeleteStatus `xml:"MfaDelete,omitempty"`
}
// May be one of Enabled, Suspended
type VersioningStatus string
type xsdBase64Binary []byte
func (b *xsdBase64Binary) UnmarshalText(text []byte) (err error) {
*b, err = base64.StdEncoding.DecodeString(string(text))
return
}
func (b xsdBase64Binary) MarshalText() ([]byte, error) {
var buf bytes.Buffer
enc := base64.NewEncoder(base64.StdEncoding, &buf)
enc.Write([]byte(b))
enc.Close()
return buf.Bytes(), nil
}
type xsdDateTime time.Time
func (t *xsdDateTime) UnmarshalText(text []byte) error {
return _unmarshalTime(text, (*time.Time)(t), "2006-01-02T15:04:05.999999999")
}
func (t xsdDateTime) MarshalText() ([]byte, error) {
return _marshalTime((time.Time)(t), "2006-01-02T15:04:05.999999999")
}
func (t xsdDateTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if (time.Time)(t).IsZero() {
return nil
}
m, err := t.MarshalText()
if err != nil {
return err
}
return e.EncodeElement(m, start)
}
func (t xsdDateTime) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
if (time.Time)(t).IsZero() {
return xml.Attr{}, nil
}
m, err := t.MarshalText()
return xml.Attr{Name: name, Value: string(m)}, err
}
func _unmarshalTime(text []byte, t *time.Time, format string) (err error) {
s := string(bytes.TrimSpace(text))
*t, err = time.Parse(format, s)
if _, ok := err.(*time.ParseError); ok {
*t, err = time.Parse(format+"Z07:00", s)
}
return err
}
func _marshalTime(t time.Time, format string) ([]byte, error) {
return []byte(t.Format(format + "Z07:00")), nil
}