
org.cdk8s.plus31.k8s.KubeCsiDriverProps Maven / Gradle / Ivy
package org.cdk8s.plus31.k8s;
/**
* CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster.
*
* Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.105.0 (build 0a2adcb)", date = "2024-11-15T12:15:25.004Z")
@software.amazon.jsii.Jsii(module = org.cdk8s.plus31.$Module.class, fqn = "cdk8s-plus-31.k8s.KubeCsiDriverProps")
@software.amazon.jsii.Jsii.Proxy(KubeCsiDriverProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface KubeCsiDriverProps extends software.amazon.jsii.JsiiSerializable {
/**
* spec represents the specification of the CSI Driver.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull org.cdk8s.plus31.k8s.CsiDriverSpec getSpec();
/**
* Standard object metadata.
*
* metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
*/
@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 KubeCsiDriverProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link KubeCsiDriverProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
org.cdk8s.plus31.k8s.CsiDriverSpec spec;
org.cdk8s.plus31.k8s.ObjectMeta metadata;
/**
* Sets the value of {@link KubeCsiDriverProps#getSpec}
* @param spec spec represents the specification of the CSI Driver. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder spec(org.cdk8s.plus31.k8s.CsiDriverSpec spec) {
this.spec = spec;
return this;
}
/**
* Sets the value of {@link KubeCsiDriverProps#getMetadata}
* @param metadata Standard object metadata.
* metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
* @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 KubeCsiDriverProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public KubeCsiDriverProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link KubeCsiDriverProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements KubeCsiDriverProps {
private final org.cdk8s.plus31.k8s.CsiDriverSpec 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.CsiDriverSpec.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.CsiDriverSpec 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.KubeCsiDriverProps"));
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;
KubeCsiDriverProps.Jsii$Proxy that = (KubeCsiDriverProps.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;
}
}
}