blob: 20dc9cdaac1e4851ae47ddf22016613c7145c0a8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.ozone.s3.endpoint;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter;
import org.apache.hadoop.ozone.s3.util.S3StorageType;
/**
* AWS compatible REST response for list multipart upload.
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ListMultipartUploadsResult", namespace =
"http://s3.amazonaws.com/doc/2006-03-01/")
public class ListMultipartUploadsResult {
public static final Owner
NOT_SUPPORTED_OWNER = new Owner("NOT-SUPPORTED", "Not Supported");
@XmlElement(name = "Bucket")
private String bucket;
@XmlElement(name = "KeyMarker")
private String keyMarker;
@XmlElement(name = "UploadIdMarker")
private String uploadIdMarker;
@XmlElement(name = "NextKeyMarker")
private String nextKeyMarker;
@XmlElement(name = "NextUploadIdMarker")
private String nextUploadIdMarker;
@XmlElement(name = "MaxUploads")
private int maxUploads = 1000;
@XmlElement(name = "IsTruncated")
private boolean isTruncated = false;
@XmlElement(name = "Upload")
private List<Upload> uploads = new ArrayList<>();
public String getBucket() {
return bucket;
}
public void setBucket(String bucket) {
this.bucket = bucket;
}
public String getKeyMarker() {
return keyMarker;
}
public void setKeyMarker(String keyMarker) {
this.keyMarker = keyMarker;
}
public String getUploadIdMarker() {
return uploadIdMarker;
}
public void setUploadIdMarker(String uploadIdMarker) {
this.uploadIdMarker = uploadIdMarker;
}
public String getNextKeyMarker() {
return nextKeyMarker;
}
public void setNextKeyMarker(String nextKeyMarker) {
this.nextKeyMarker = nextKeyMarker;
}
public String getNextUploadIdMarker() {
return nextUploadIdMarker;
}
public void setNextUploadIdMarker(String nextUploadIdMarker) {
this.nextUploadIdMarker = nextUploadIdMarker;
}
public int getMaxUploads() {
return maxUploads;
}
public void setMaxUploads(int maxUploads) {
this.maxUploads = maxUploads;
}
public boolean isTruncated() {
return isTruncated;
}
public void setTruncated(boolean truncated) {
isTruncated = truncated;
}
public List<Upload> getUploads() {
return uploads;
}
public void setUploads(
List<Upload> uploads) {
this.uploads = uploads;
}
public void addUpload(Upload upload) {
this.uploads.add(upload);
}
/**
* Upload information.
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Upload")
public static class Upload {
@XmlElement(name = "Key")
private String key;
@XmlElement(name = "UploadId")
private String uploadId;
@XmlElement(name = "Owner")
private Owner owner = NOT_SUPPORTED_OWNER;
@XmlElement(name = "Initiator")
private Owner initiator = NOT_SUPPORTED_OWNER;
@XmlElement(name = "StorageClass")
private String storageClass = "STANDARD";
@XmlJavaTypeAdapter(IsoDateAdapter.class)
@XmlElement(name = "Initiated")
private Instant initiated;
public Upload() {
}
public Upload(String key, String uploadId, Instant initiated) {
this.key = key;
this.uploadId = uploadId;
this.initiated = initiated;
}
public Upload(String key, String uploadId, Instant initiated,
S3StorageType storageClass) {
this.key = key;
this.uploadId = uploadId;
this.initiated = initiated;
this.storageClass = storageClass.toString();
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getUploadId() {
return uploadId;
}
public void setUploadId(String uploadId) {
this.uploadId = uploadId;
}
public Owner getOwner() {
return owner;
}
public void setOwner(
Owner owner) {
this.owner = owner;
}
public Owner getInitiator() {
return initiator;
}
public void setInitiator(
Owner initiator) {
this.initiator = initiator;
}
public String getStorageClass() {
return storageClass;
}
public void setStorageClass(String storageClass) {
this.storageClass = storageClass;
}
public Instant getInitiated() {
return initiated;
}
public void setInitiated(Instant initiated) {
this.initiated = initiated;
}
}
/**
* Upload information.
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Owner")
public static class Owner {
@XmlElement(name = "ID")
private String id;
@XmlElement(name = "DisplayName")
private String displayName;
public Owner() {
}
public Owner(String id, String displayName) {
this.id = id;
this.displayName = displayName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
}
}