
org.cdk8s.plus31.k8s.KubeCsiNodeProps Maven / Gradle / Ivy
package org.cdk8s.plus31.k8s;
/**
* CSINode holds information about all CSI drivers installed on a node.
*
* CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.104.0 (build e79254c)", date = "2024-10-12T12:14:17.561Z")
@software.amazon.jsii.Jsii(module = org.cdk8s.plus31.$Module.class, fqn = "cdk8s-plus-31.k8s.KubeCsiNodeProps")
@software.amazon.jsii.Jsii.Proxy(KubeCsiNodeProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface KubeCsiNodeProps extends software.amazon.jsii.JsiiSerializable {
/**
* spec is the specification of CSINode.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull org.cdk8s.plus31.k8s.CsiNodeSpec getSpec();
/**
* Standard object's metadata.
*
* metadata.name must be the Kubernetes node name.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable org.cdk8s.plus31.k8s.ObjectMeta getMetadata() {
return null;
}
/**
* @return a {@link Builder} of {@link KubeCsiNodeProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link KubeCsiNodeProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
org.cdk8s.plus31.k8s.CsiNodeSpec spec;
org.cdk8s.plus31.k8s.ObjectMeta metadata;
/**
* Sets the value of {@link KubeCsiNodeProps#getSpec}
* @param spec spec is the specification of CSINode. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder spec(org.cdk8s.plus31.k8s.CsiNodeSpec spec) {
this.spec = spec;
return this;
}
/**
* Sets the value of {@link KubeCsiNodeProps#getMetadata}
* @param metadata Standard object's metadata.
* metadata.name must be the Kubernetes node name.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder metadata(org.cdk8s.plus31.k8s.ObjectMeta metadata) {
this.metadata = metadata;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link KubeCsiNodeProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public KubeCsiNodeProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link KubeCsiNodeProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements KubeCsiNodeProps {
private final org.cdk8s.plus31.k8s.CsiNodeSpec spec;
private final org.cdk8s.plus31.k8s.ObjectMeta metadata;
/**
* 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.spec = software.amazon.jsii.Kernel.get(this, "spec", software.amazon.jsii.NativeType.forClass(org.cdk8s.plus31.k8s.CsiNodeSpec.class));
this.metadata = software.amazon.jsii.Kernel.get(this, "metadata", software.amazon.jsii.NativeType.forClass(org.cdk8s.plus31.k8s.ObjectMeta.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.spec = java.util.Objects.requireNonNull(builder.spec, "spec is required");
this.metadata = builder.metadata;
}
@Override
public final org.cdk8s.plus31.k8s.CsiNodeSpec getSpec() {
return this.spec;
}
@Override
public final org.cdk8s.plus31.k8s.ObjectMeta getMetadata() {
return this.metadata;
}
@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();
data.set("spec", om.valueToTree(this.getSpec()));
if (this.getMetadata() != null) {
data.set("metadata", om.valueToTree(this.getMetadata()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("cdk8s-plus-31.k8s.KubeCsiNodeProps"));
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;
KubeCsiNodeProps.Jsii$Proxy that = (KubeCsiNodeProps.Jsii$Proxy) o;
if (!spec.equals(that.spec)) return false;
return this.metadata != null ? this.metadata.equals(that.metadata) : that.metadata == null;
}
@Override
public final int hashCode() {
int result = this.spec.hashCode();
result = 31 * result + (this.metadata != null ? this.metadata.hashCode() : 0);
return result;
}
}
}