org.cdk8s.HelmProps Maven / Gradle / Ivy
Show all versions of cdk8s Show documentation
package org.cdk8s;
/**
* Options for Helm
.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.90.0 (build d6bdb4d)", date = "2023-10-18T16:08:55.810Z")
@software.amazon.jsii.Jsii(module = org.cdk8s.$Module.class, fqn = "cdk8s.HelmProps")
@software.amazon.jsii.Jsii.Proxy(HelmProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface HelmProps extends software.amazon.jsii.JsiiSerializable {
/**
* The chart name to use. It can be a chart from a helm repository or a local directory.
*
* This name is passed to helm template
and has all the relevant semantics.
*
* Example:
*
*
* "bitnami/redis"
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getChart();
/**
* The local helm executable to use in order to create the manifest the chart.
*
* Default: "helm"
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getHelmExecutable() {
return null;
}
/**
* Additional flags to add to the helm
execution.
*
* Default: []
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getHelmFlags() {
return null;
}
/**
* Scope all resources in to a given namespace.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getNamespace() {
return null;
}
/**
* The release name.
*
* Default: - if unspecified, a name will be allocated based on the construct path
*
* @see https://helm.sh/docs/intro/using_helm/#three-big-concepts
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getReleaseName() {
return null;
}
/**
* Chart repository url where to locate the requested chart.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getRepo() {
return null;
}
/**
* Values to pass to the chart.
*
* Default: - If no values are specified, chart will use the defaults.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.Map getValues() {
return null;
}
/**
* Version constraint for the chart version to use.
*
* This constraint can be a specific tag (e.g. 1.1.1)
* or it may reference a valid range (e.g. ^2.0.0).
* If this is not specified, the latest version is used
*
* This name is passed to helm template --version
and has all the relevant semantics.
*
* Example:
*
*
* "^2.0.0"
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getVersion() {
return null;
}
/**
* @return a {@link Builder} of {@link HelmProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link HelmProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String chart;
java.lang.String helmExecutable;
java.util.List helmFlags;
java.lang.String namespace;
java.lang.String releaseName;
java.lang.String repo;
java.util.Map values;
java.lang.String version;
/**
* Sets the value of {@link HelmProps#getChart}
* @param chart The chart name to use. It can be a chart from a helm repository or a local directory. This parameter is required.
* This name is passed to helm template
and has all the relevant semantics.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder chart(java.lang.String chart) {
this.chart = chart;
return this;
}
/**
* Sets the value of {@link HelmProps#getHelmExecutable}
* @param helmExecutable The local helm executable to use in order to create the manifest the chart.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder helmExecutable(java.lang.String helmExecutable) {
this.helmExecutable = helmExecutable;
return this;
}
/**
* Sets the value of {@link HelmProps#getHelmFlags}
* @param helmFlags Additional flags to add to the helm
execution.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder helmFlags(java.util.List helmFlags) {
this.helmFlags = helmFlags;
return this;
}
/**
* Sets the value of {@link HelmProps#getNamespace}
* @param namespace Scope all resources in to a given namespace.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder namespace(java.lang.String namespace) {
this.namespace = namespace;
return this;
}
/**
* Sets the value of {@link HelmProps#getReleaseName}
* @param releaseName The release name.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder releaseName(java.lang.String releaseName) {
this.releaseName = releaseName;
return this;
}
/**
* Sets the value of {@link HelmProps#getRepo}
* @param repo Chart repository url where to locate the requested chart.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder repo(java.lang.String repo) {
this.repo = repo;
return this;
}
/**
* Sets the value of {@link HelmProps#getValues}
* @param values Values to pass to the chart.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder values(java.util.Map values) {
this.values = (java.util.Map)values;
return this;
}
/**
* Sets the value of {@link HelmProps#getVersion}
* @param version Version constraint for the chart version to use.
* This constraint can be a specific tag (e.g. 1.1.1)
* or it may reference a valid range (e.g. ^2.0.0).
* If this is not specified, the latest version is used
*
* This name is passed to helm template --version
and has all the relevant semantics.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder version(java.lang.String version) {
this.version = version;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link HelmProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public HelmProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link HelmProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements HelmProps {
private final java.lang.String chart;
private final java.lang.String helmExecutable;
private final java.util.List helmFlags;
private final java.lang.String namespace;
private final java.lang.String releaseName;
private final java.lang.String repo;
private final java.util.Map values;
private final java.lang.String version;
/**
* 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.chart = software.amazon.jsii.Kernel.get(this, "chart", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.helmExecutable = software.amazon.jsii.Kernel.get(this, "helmExecutable", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.helmFlags = software.amazon.jsii.Kernel.get(this, "helmFlags", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.namespace = software.amazon.jsii.Kernel.get(this, "namespace", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.releaseName = software.amazon.jsii.Kernel.get(this, "releaseName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.repo = software.amazon.jsii.Kernel.get(this, "repo", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.values = software.amazon.jsii.Kernel.get(this, "values", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class)));
this.version = software.amazon.jsii.Kernel.get(this, "version", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.chart = java.util.Objects.requireNonNull(builder.chart, "chart is required");
this.helmExecutable = builder.helmExecutable;
this.helmFlags = builder.helmFlags;
this.namespace = builder.namespace;
this.releaseName = builder.releaseName;
this.repo = builder.repo;
this.values = (java.util.Map)builder.values;
this.version = builder.version;
}
@Override
public final java.lang.String getChart() {
return this.chart;
}
@Override
public final java.lang.String getHelmExecutable() {
return this.helmExecutable;
}
@Override
public final java.util.List getHelmFlags() {
return this.helmFlags;
}
@Override
public final java.lang.String getNamespace() {
return this.namespace;
}
@Override
public final java.lang.String getReleaseName() {
return this.releaseName;
}
@Override
public final java.lang.String getRepo() {
return this.repo;
}
@Override
public final java.util.Map getValues() {
return this.values;
}
@Override
public final java.lang.String getVersion() {
return this.version;
}
@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("chart", om.valueToTree(this.getChart()));
if (this.getHelmExecutable() != null) {
data.set("helmExecutable", om.valueToTree(this.getHelmExecutable()));
}
if (this.getHelmFlags() != null) {
data.set("helmFlags", om.valueToTree(this.getHelmFlags()));
}
if (this.getNamespace() != null) {
data.set("namespace", om.valueToTree(this.getNamespace()));
}
if (this.getReleaseName() != null) {
data.set("releaseName", om.valueToTree(this.getReleaseName()));
}
if (this.getRepo() != null) {
data.set("repo", om.valueToTree(this.getRepo()));
}
if (this.getValues() != null) {
data.set("values", om.valueToTree(this.getValues()));
}
if (this.getVersion() != null) {
data.set("version", om.valueToTree(this.getVersion()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("cdk8s.HelmProps"));
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;
HelmProps.Jsii$Proxy that = (HelmProps.Jsii$Proxy) o;
if (!chart.equals(that.chart)) return false;
if (this.helmExecutable != null ? !this.helmExecutable.equals(that.helmExecutable) : that.helmExecutable != null) return false;
if (this.helmFlags != null ? !this.helmFlags.equals(that.helmFlags) : that.helmFlags != null) return false;
if (this.namespace != null ? !this.namespace.equals(that.namespace) : that.namespace != null) return false;
if (this.releaseName != null ? !this.releaseName.equals(that.releaseName) : that.releaseName != null) return false;
if (this.repo != null ? !this.repo.equals(that.repo) : that.repo != null) return false;
if (this.values != null ? !this.values.equals(that.values) : that.values != null) return false;
return this.version != null ? this.version.equals(that.version) : that.version == null;
}
@Override
public final int hashCode() {
int result = this.chart.hashCode();
result = 31 * result + (this.helmExecutable != null ? this.helmExecutable.hashCode() : 0);
result = 31 * result + (this.helmFlags != null ? this.helmFlags.hashCode() : 0);
result = 31 * result + (this.namespace != null ? this.namespace.hashCode() : 0);
result = 31 * result + (this.releaseName != null ? this.releaseName.hashCode() : 0);
result = 31 * result + (this.repo != null ? this.repo.hashCode() : 0);
result = 31 * result + (this.values != null ? this.values.hashCode() : 0);
result = 31 * result + (this.version != null ? this.version.hashCode() : 0);
return result;
}
}
}