github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/gateway/serde/xml.go (about) 1 package serde 2 3 import "encoding/xml" 4 5 const ( 6 VersioningResponse = `<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"/>` 7 ) 8 9 type Error struct { 10 Code string `xml:"Code"` 11 Message string `xml:"Message"` 12 Region string `xml:"Region"` 13 RequestID string `xml:"RequestId"` 14 HostID string `xml:"HostId"` 15 } 16 17 type Owner struct { 18 DisplayName string `xml:"DisplayName"` 19 ID string `xml:"ID"` 20 } 21 22 type Buckets struct { 23 Bucket []Bucket `xml:"Bucket"` 24 } 25 26 type Bucket struct { 27 CreationDate string `xml:"CreationDate"` 28 Name string `xml:"Name"` 29 } 30 31 type ListAllMyBucketsResult struct { 32 Buckets Buckets `xml:"Buckets"` 33 Owner Owner `xml:"Owner"` 34 } 35 36 type CreateBucketConfiguration struct { 37 LocationConstraint string `xml:"LocationConstraint"` 38 } 39 40 type Contents struct { 41 Key string `xml:"Key"` 42 LastModified string `xml:"LastModified"` 43 ETag string `xml:"ETag"` 44 Size int64 `xml:"Size"` 45 StorageClass string `xml:"StorageClass"` 46 } 47 48 type CommonPrefixes struct { 49 Prefix string `xml:"Prefix"` 50 } 51 52 type ListObjectsV2Output struct { 53 XMLName xml.Name `xml:"ListBucketResult"` 54 Name string `xml:"Name"` 55 IsTruncated bool `xml:"IsTruncated"` 56 Prefix string `xml:"Prefix"` 57 Delimiter string `xml:"Delimiter,omitempty"` 58 KeyCount int `xml:"KeyCount"` 59 MaxKeys int `xml:"MaxKeys"` 60 CommonPrefixes []CommonPrefixes `xml:"CommonPrefixes"` 61 NextContinuationToken string `xml:"NextContinuationToken,omitempty"` 62 ContinuationToken string `xml:"ContinuationToken,omitempty"` 63 Contents []Contents `xml:"Contents"` 64 } 65 66 type ListObjectsOutput struct { 67 Name string `xml:"Name"` 68 IsTruncated bool `xml:"IsTruncated"` 69 Prefix string `xml:"Prefix"` 70 Delimiter string `xml:"Delimiter,omitempty"` 71 KeyCount int `xml:"KeyCount"` 72 MaxKeys int `xml:"MaxKeys"` 73 CommonPrefixes []CommonPrefixes `xml:"CommonPrefixes"` 74 Marker string `xml:"Marker"` 75 NextMarker string `xml:"NextMarker,omitempty"` 76 Contents []Contents `xml:"Contents"` 77 } 78 79 type ListBucketResult struct { 80 Name string `xml:"Name"` 81 IsTruncated bool `xml:"IsTruncated"` 82 Prefix string `xml:"Prefix"` 83 Delimiter string `xml:"Delimiter,omitempty"` 84 KeyCount int `xml:"KeyCount"` 85 MaxKeys int `xml:"MaxKeys"` 86 CommonPrefixes []CommonPrefixes `xml:"CommonPrefixes"` 87 Marker string `xml:"Marker"` 88 NextMarker string `xml:"NextMarker,omitempty"` 89 Contents []Contents `xml:"Contents"` 90 } 91 92 type Object struct { 93 Key string `xml:"Key"` 94 VersionID string `xml:"VersionId,omitempty"` 95 } 96 97 type Delete struct { 98 Object []Object `xml:"Object"` 99 Quiet bool `xml:"Quiet"` 100 } 101 102 type Deleted struct { 103 DeleteMarker bool `xml:"DeleteMarker,omitempty"` 104 DeleteMarkerVersionID string `xml:"DeleteMarkerVersionId,omitempty"` 105 Key string `xml:"Key"` 106 VersionID string `xml:"versionId,omitempty"` 107 } 108 109 type DeleteError struct { 110 Code string `xml:"Code"` 111 Key string `xml:"Key"` 112 Message string `xml:"Message"` 113 VersionID string `xml:"VersionId,omitempty"` 114 } 115 116 type DeleteResult struct { 117 XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DeleteResult"` 118 Deleted []Deleted `xml:"Deleted"` 119 Error []DeleteError `xml:"Error"` 120 } 121 122 type CopyObjectResult struct { 123 LastModified string `xml:"LastModified"` 124 ETag string `xml:"ETag"` 125 } 126 127 type CopyPartResult struct { 128 LastModified string `xml:"LastModified"` 129 ETag string `xml:"ETag"` 130 } 131 132 type InitiateMultipartUploadResult struct { 133 Bucket string `xml:"Bucket"` 134 Key string `xml:"Key"` 135 UploadID string `xml:"UploadId"` 136 } 137 138 type CompleteMultipartUploadResult struct { 139 Location string `xml:"Location"` 140 Bucket string `xml:"Bucket"` 141 Key string `xml:"Key"` 142 ETag string `xml:"ETag"` 143 } 144 145 type MultipartUploadPart struct { 146 PartNumber int32 `xml:"PartNumber"` 147 ETag string `xml:"ETag"` 148 LastModified string `xml:"LastModified"` 149 Size int64 `xml:"Size"` 150 } 151 152 type ListPartsOutput struct { 153 XMLName xml.Name `xml:"ListPartsResult"` 154 Bucket string `xml:"Bucket"` 155 IsTruncated bool `xml:"IsTruncated"` 156 Key string `xml:"Key"` 157 MaxParts int32 `xml:"MaxParts"` 158 NextPartNumberMarker int32 `xml:"NextPartNumberMarker"` 159 Parts []MultipartUploadPart `xml:"Part"` 160 } 161 162 type VersioningConfiguration struct { 163 Enabled bool `xml:"Enabled,omitempty"` 164 } 165 166 type Tag struct { 167 Key string `xml:"Key"` 168 Value string `xml:"Value"` 169 } 170 171 type TagSet struct { 172 Tag []Tag `xml:"Tag"` 173 } 174 175 type Tagging struct { 176 XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Tagging"` 177 TagSet TagSet `xml:"TagSet"` 178 } 179 180 type LocationResponse struct { 181 XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LocationConstraint"` 182 Location string `xml:",chardata"` 183 }