All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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