package s3api import ( "bytes" "encoding/base64" "encoding/xml" "time" ) type AccessControlList struct { Grant []Grant `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Grant,omitempty"` } type AccessControlPolicy struct { Owner CanonicalUser `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Owner"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList"` } type AmazonCustomerByEmail struct { EmailAddress string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ EmailAddress"` } type BucketLoggingStatus struct { LoggingEnabled LoggingSettings `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LoggingEnabled,omitempty"` } type CanonicalUser struct { ID string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ID"` DisplayName string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DisplayName,omitempty"` } type CopyObject struct { SourceBucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ SourceBucket"` SourceKey string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ SourceKey"` DestinationBucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DestinationBucket"` DestinationKey string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DestinationKey"` MetadataDirective MetadataDirective `xml:"http://s3.amazonaws.com/doc/2006-03-01/ MetadataDirective,omitempty"` Metadata []MetadataEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Metadata,omitempty"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList,omitempty"` CopySourceIfModifiedSince time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfModifiedSince,omitempty"` CopySourceIfUnmodifiedSince time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfUnmodifiedSince,omitempty"` CopySourceIfMatch []string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfMatch,omitempty"` CopySourceIfNoneMatch []string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfNoneMatch,omitempty"` StorageClass StorageClass `xml:"http://s3.amazonaws.com/doc/2006-03-01/ StorageClass,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *CopyObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T CopyObject var layout struct { *T CopySourceIfModifiedSince *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfModifiedSince,omitempty"` CopySourceIfUnmodifiedSince *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfUnmodifiedSince,omitempty"` Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfModifiedSince,omitempty"` CopySourceIfUnmodifiedSince *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopySourceIfUnmodifiedSince,omitempty"` Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ CopyObjectResult"` } type CopyObjectResult struct { LastModified time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` ETag string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ETag"` } func (t *CopyObjectResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T CopyObjectResult var layout struct { *T LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` } overlay.T = (*T)(t) overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified) return d.DecodeElement(&overlay, &start) } type CreateBucket struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` } func (t *CreateBucket) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T CreateBucket var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type CreateBucketConfiguration struct { LocationConstraint string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LocationConstraint"` } type CreateBucketResponse struct { CreateBucketReturn CreateBucketResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CreateBucketReturn"` } type CreateBucketResult struct { BucketName string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ BucketName"` } type DeleteBucket struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *DeleteBucket) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T DeleteBucket var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type DeleteBucketResponse struct { DeleteBucketResponse Status `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DeleteBucketResponse"` } type DeleteMarkerEntry struct { Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` VersionId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ VersionId"` IsLatest bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IsLatest"` LastModified time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` Owner CanonicalUser `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Owner,omitempty"` } func (t *DeleteMarkerEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T DeleteMarkerEntry var layout struct { *T LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` } overlay.T = (*T)(t) overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified) return d.DecodeElement(&overlay, &start) } type DeleteObject struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *DeleteObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T DeleteObject var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type DeleteObjectResponse struct { DeleteObjectResponse Status `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DeleteObjectResponse"` } type GetBucketAccessControlPolicy struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *GetBucketAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T GetBucketAccessControlPolicy var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type GetBucketAccessControlPolicyResponse struct { GetBucketAccessControlPolicyResponse AccessControlPolicy `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetBucketAccessControlPolicyResponse"` } type GetBucketLoggingStatus struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *GetBucketLoggingStatus) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T GetBucketLoggingStatus var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type GetBucketLoggingStatusResponse struct { GetBucketLoggingStatusResponse BucketLoggingStatus `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetBucketLoggingStatusResponse"` } type GetObject struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` GetMetadata bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetMetadata"` GetData bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetData"` InlineData bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ InlineData"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *GetObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T GetObject var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type GetObjectAccessControlPolicy struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *GetObjectAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T GetObjectAccessControlPolicy var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type GetObjectAccessControlPolicyResponse struct { GetObjectAccessControlPolicyResponse AccessControlPolicy `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetObjectAccessControlPolicyResponse"` } type GetObjectExtended struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` GetMetadata bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetMetadata"` GetData bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetData"` InlineData bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ InlineData"` ByteRangeStart int64 `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ByteRangeStart,omitempty"` ByteRangeEnd int64 `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ByteRangeEnd,omitempty"` IfModifiedSince time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfModifiedSince,omitempty"` IfUnmodifiedSince time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfUnmodifiedSince,omitempty"` IfMatch []string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfMatch,omitempty"` IfNoneMatch []string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfNoneMatch,omitempty"` ReturnCompleteObjectOnConditionFailure bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ReturnCompleteObjectOnConditionFailure,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *GetObjectExtended) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T GetObjectExtended var layout struct { *T IfModifiedSince *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfModifiedSince,omitempty"` IfUnmodifiedSince *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfUnmodifiedSince,omitempty"` Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ IfModifiedSince,omitempty"` IfUnmodifiedSince *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IfUnmodifiedSince,omitempty"` Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ GetObjectResponse"` } type GetObjectResponse struct { GetObjectResponse GetObjectResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ GetObjectResponse"` } type GetObjectResult struct { Metadata []MetadataEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Metadata,omitempty"` Data []byte `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Data,omitempty"` LastModified time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` ETag string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ETag"` Status Status `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Status"` } func (t *GetObjectResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T GetObjectResult var layout struct { *T Data *xsdBase64Binary `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Data,omitempty"` LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Data,omitempty"` LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Grantee"` Permission Permission `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Permission"` } type Grantee struct { } type Group struct { URI string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ URI"` } type ListAllMyBuckets struct { AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` } func (t *ListAllMyBuckets) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T ListAllMyBuckets var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type ListAllMyBucketsEntry struct { Name string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Name"` CreationDate time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CreationDate"` } func (t *ListAllMyBucketsEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T ListAllMyBucketsEntry var layout struct { *T CreationDate *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ CreationDate"` } overlay.T = (*T)(t) overlay.CreationDate = (*xsdDateTime)(&overlay.T.CreationDate) return d.DecodeElement(&overlay, &start) } type ListAllMyBucketsList struct { Bucket []ListAllMyBucketsEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket,omitempty"` } type ListAllMyBucketsResponse struct { ListAllMyBucketsResponse ListAllMyBucketsResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListAllMyBucketsResponse"` } type ListAllMyBucketsResult struct { Owner CanonicalUser `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Owner"` Buckets ListAllMyBucketsList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Buckets"` } type ListBucket struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Prefix string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Prefix,omitempty"` Marker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Marker,omitempty"` MaxKeys int `xml:"http://s3.amazonaws.com/doc/2006-03-01/ MaxKeys,omitempty"` Delimiter string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Delimiter,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *ListBucket) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T ListBucket var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type ListBucketResponse struct { ListBucketResponse ListBucketResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResponse"` } type ListBucketResult struct { Metadata []MetadataEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Metadata,omitempty"` Name string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Name"` Prefix string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Prefix"` Marker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Marker"` NextMarker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ NextMarker,omitempty"` MaxKeys int `xml:"http://s3.amazonaws.com/doc/2006-03-01/ MaxKeys"` Delimiter string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Delimiter,omitempty"` IsTruncated bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IsTruncated"` Contents []ListEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Contents,omitempty"` CommonPrefixes []PrefixEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CommonPrefixes,omitempty"` } type ListEntry struct { Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` LastModified time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` ETag string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ETag"` Size int64 `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Size"` Owner CanonicalUser `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Owner,omitempty"` StorageClass StorageClass `xml:"http://s3.amazonaws.com/doc/2006-03-01/ StorageClass"` } func (t *ListEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T ListEntry var layout struct { *T LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` } overlay.T = (*T)(t) overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified) return d.DecodeElement(&overlay, &start) } type ListVersionsResponse struct { ListVersionsResponse ListVersionsResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListVersionsResponse"` } type ListVersionsResult struct { Metadata []MetadataEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Metadata,omitempty"` Name string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Name"` Prefix string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Prefix"` KeyMarker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ KeyMarker"` VersionIdMarker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ VersionIdMarker"` NextKeyMarker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ NextKeyMarker,omitempty"` NextVersionIdMarker string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ NextVersionIdMarker,omitempty"` MaxKeys int `xml:"http://s3.amazonaws.com/doc/2006-03-01/ MaxKeys"` Delimiter string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Delimiter,omitempty"` IsTruncated bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IsTruncated"` Version VersionEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Version"` DeleteMarker DeleteMarkerEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DeleteMarker"` CommonPrefixes []PrefixEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CommonPrefixes,omitempty"` } type LoggingSettings struct { TargetBucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ TargetBucket"` TargetPrefix string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ TargetPrefix"` TargetGrants AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ TargetGrants,omitempty"` } // May be one of COPY, REPLACE type MetadataDirective string type MetadataEntry struct { Name string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Name"` Value string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Value"` } // May be one of Enabled, Disabled type MfaDeleteStatus string type NotificationConfiguration struct { TopicConfiguration []TopicConfiguration `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Location"` Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` ETag string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ETag"` } type PrefixEntry struct { Prefix string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Prefix"` } type PutObject struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` Metadata []MetadataEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Metadata,omitempty"` ContentLength int64 `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ContentLength"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList,omitempty"` StorageClass StorageClass `xml:"http://s3.amazonaws.com/doc/2006-03-01/ StorageClass,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *PutObject) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T PutObject var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` } overlay.T = (*T)(t) overlay.Timestamp = (*xsdDateTime)(&overlay.T.Timestamp) return d.DecodeElement(&overlay, &start) } type PutObjectInline struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` Metadata []MetadataEntry `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Metadata,omitempty"` Data []byte `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Data"` ContentLength int64 `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ContentLength"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList,omitempty"` StorageClass StorageClass `xml:"http://s3.amazonaws.com/doc/2006-03-01/ StorageClass,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *PutObjectInline) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T PutObjectInline var layout struct { *T Data *xsdBase64Binary `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Data"` Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Data"` Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ PutObjectInlineResponse"` } type PutObjectResponse struct { PutObjectResponse PutObjectResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ PutObjectResponse"` } type PutObjectResult struct { ETag string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ETag"` LastModified time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` } func (t *PutObjectResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T PutObjectResult var layout struct { *T LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` } overlay.T = (*T)(t) overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified) return d.DecodeElement(&overlay, &start) } type RequestPaymentConfiguration struct { Payer Payer `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Payer"` } type Result struct { Status Status `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Status"` } type SetBucketAccessControlPolicy struct { Bucket string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList,omitempty"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *SetBucketAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T SetBucketAccessControlPolicy var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` BucketLoggingStatus BucketLoggingStatus `xml:"http://s3.amazonaws.com/doc/2006-03-01/ BucketLoggingStatus"` } func (t *SetBucketLoggingStatus) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T SetBucketLoggingStatus var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Bucket"` Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` AccessControlList AccessControlList `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlList"` AWSAccessKeyId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AWSAccessKeyId,omitempty"` Timestamp time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Timestamp,omitempty"` Signature string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Signature,omitempty"` Credential string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Credential,omitempty"` } func (t *SetObjectAccessControlPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T SetObjectAccessControlPolicy var layout struct { *T Timestamp *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ Code"` Description string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Description"` } // May be one of STANDARD, REDUCED_REDUNDANCY, GLACIER, UNKNOWN type StorageClass string type TopicConfiguration struct { Topic string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Topic"` Event []string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Event"` } type User struct { } type VersionEntry struct { Key string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Key"` VersionId string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ VersionId"` IsLatest bool `xml:"http://s3.amazonaws.com/doc/2006-03-01/ IsLatest"` LastModified time.Time `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` ETag string `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ETag"` Size int64 `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Size"` Owner CanonicalUser `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Owner,omitempty"` StorageClass StorageClass `xml:"http://s3.amazonaws.com/doc/2006-03-01/ StorageClass"` } func (t *VersionEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error { type T VersionEntry var layout struct { *T LastModified *xsdDateTime `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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:"http://s3.amazonaws.com/doc/2006-03-01/ LastModified"` } overlay.T = (*T)(t) overlay.LastModified = (*xsdDateTime)(&overlay.T.LastModified) return d.DecodeElement(&overlay, &start) } type VersioningConfiguration struct { Status VersioningStatus `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Status,omitempty"` MfaDelete MfaDeleteStatus `xml:"http://s3.amazonaws.com/doc/2006-03-01/ 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 []byte((time.Time)(t).Format("2006-01-02T15:04:05.999999999")), nil } 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 }