
org.cdk8s.plus23.k8s.EmptyDirVolumeSource Maven / Gradle / Ivy
package org.cdk8s.plus23.k8s;
/**
* Represents an empty directory for a pod.
*
* Empty directory volumes support ownership management and SELinux relabeling.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.75.0 (build 63bb957)", date = "2023-02-21T09:46:03.764Z")
@software.amazon.jsii.Jsii(module = org.cdk8s.plus23.$Module.class, fqn = "cdk8s-plus-23.k8s.EmptyDirVolumeSource")
@software.amazon.jsii.Jsii.Proxy(EmptyDirVolumeSource.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface EmptyDirVolumeSource extends software.amazon.jsii.JsiiSerializable {
/**
* What type of storage medium should back this directory.
*
* The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getMedium() {
return null;
}
/**
* Total amount of local storage required for this EmptyDir volume.
*
* The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.cdk8s.plus23.k8s.Quantity getSizeLimit() {
return null;
}
/**
* @return a {@link Builder} of {@link EmptyDirVolumeSource}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link EmptyDirVolumeSource}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String medium;
org.cdk8s.plus23.k8s.Quantity sizeLimit;
/**
* Sets the value of {@link EmptyDirVolumeSource#getMedium}
* @param medium What type of storage medium should back this directory.
* The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder medium(java.lang.String medium) {
this.medium = medium;
return this;
}
/**
* Sets the value of {@link EmptyDirVolumeSource#getSizeLimit}
* @param sizeLimit Total amount of local storage required for this EmptyDir volume.
* The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sizeLimit(org.cdk8s.plus23.k8s.Quantity sizeLimit) {
this.sizeLimit = sizeLimit;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link EmptyDirVolumeSource}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public EmptyDirVolumeSource build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link EmptyDirVolumeSource}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements EmptyDirVolumeSource {
private final java.lang.String medium;
private final org.cdk8s.plus23.k8s.Quantity sizeLimit;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.medium = software.amazon.jsii.Kernel.get(this, "medium", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sizeLimit = software.amazon.jsii.Kernel.get(this, "sizeLimit", software.amazon.jsii.NativeType.forClass(org.cdk8s.plus23.k8s.Quantity.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.medium = builder.medium;
this.sizeLimit = builder.sizeLimit;
}
@Override
public final java.lang.String getMedium() {
return this.medium;
}
@Override
public final org.cdk8s.plus23.k8s.Quantity getSizeLimit() {
return this.sizeLimit;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getMedium() != null) {
data.set("medium", om.valueToTree(this.getMedium()));
}
if (this.getSizeLimit() != null) {
data.set("sizeLimit", om.valueToTree(this.getSizeLimit()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("cdk8s-plus-23.k8s.EmptyDirVolumeSource"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
EmptyDirVolumeSource.Jsii$Proxy that = (EmptyDirVolumeSource.Jsii$Proxy) o;
if (this.medium != null ? !this.medium.equals(that.medium) : that.medium != null) return false;
return this.sizeLimit != null ? this.sizeLimit.equals(that.sizeLimit) : that.sizeLimit == null;
}
@Override
public final int hashCode() {
int result = this.medium != null ? this.medium.hashCode() : 0;
result = 31 * result + (this.sizeLimit != null ? this.sizeLimit.hashCode() : 0);
return result;
}
}
}