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  }