
org.kuali.common.aws.ec2.model.VolumeRequest Maven / Gradle / Ivy
package org.kuali.common.aws.ec2.model;
import static org.kuali.common.util.FormatUtils.getMillis;
import org.kuali.common.core.build.ValidatingBuilder;
import org.kuali.common.core.validate.annotation.IdiotProofImmutable;
@IdiotProofImmutable
public final class VolumeRequest {
private final String instanceId;
private final String volumeId;
private final String device;
private final long timeout;
private VolumeRequest(Builder builder) {
this.instanceId = builder.instanceId;
this.volumeId = builder.volumeId;
this.device = builder.device;
this.timeout = builder.timeout;
}
public static Builder builder() {
return new Builder();
}
public static class Builder extends ValidatingBuilder {
private String instanceId;
private String volumeId;
private String device = "/dev/xvdf";
private long timeout = getMillis("15m");
public Builder withInstanceId(String instanceId) {
this.instanceId = instanceId;
return this;
}
public Builder withVolumeId(String volumeId) {
this.volumeId = volumeId;
return this;
}
public Builder withDevice(String device) {
this.device = device;
return this;
}
public Builder withTimeout(long timeout) {
this.timeout = timeout;
return this;
}
@Override
public VolumeRequest build() {
return validate(new VolumeRequest(this));
}
}
public String getInstanceId() {
return instanceId;
}
public String getVolumeId() {
return volumeId;
}
public String getDevice() {
return device;
}
public long getTimeout() {
return timeout;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy