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

org.cdk8s.grafana.Dashboard Maven / Gradle / Ivy

package org.cdk8s.grafana;

/**
 * A Grafana dashboard.
 * 

* @see https://grafana.com/docs/grafana/latest/http_api/dashboard/ */ @javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-08-31T12:13:41.963Z") @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @software.amazon.jsii.Jsii(module = org.cdk8s.grafana.$Module.class, fqn = "cdk8s-grafana.Dashboard") public class Dashboard extends software.constructs.Construct { protected Dashboard(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); } protected Dashboard(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) { super(initializationMode); } /** * @param scope This parameter is required. * @param id This parameter is required. * @param props This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Dashboard(final @org.jetbrains.annotations.NotNull software.constructs.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull org.cdk8s.grafana.DashboardProps props) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), java.util.Objects.requireNonNull(props, "props is required") }); } /** * Adds one or more plugins. *

* @param plugins This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public void addPlugins(final @org.jetbrains.annotations.NotNull org.cdk8s.grafana.GrafanaPlugin... plugins) { software.amazon.jsii.Kernel.call(this, "addPlugins", software.amazon.jsii.NativeType.VOID, java.util.Arrays.stream(plugins).toArray(Object[]::new)); } /** * A fluent builder for {@link org.cdk8s.grafana.Dashboard}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static final class Builder implements software.amazon.jsii.Builder { /** * @return a new instance of {@link Builder}. * @param scope This parameter is required. * @param id This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static Builder create(final software.constructs.Construct scope, final java.lang.String id) { return new Builder(scope, id); } private final software.constructs.Construct scope; private final java.lang.String id; private final org.cdk8s.grafana.DashboardProps.Builder props; private Builder(final software.constructs.Construct scope, final java.lang.String id) { this.scope = scope; this.id = id; this.props = new org.cdk8s.grafana.DashboardProps.Builder(); } /** * Title of the dashboard. *

* @return {@code this} * @param title Title of the dashboard. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder title(final java.lang.String title) { this.props.title(title); return this; } /** * Specify a mapping from data source variables to data source names. *

* This is only needed if you are importing an existing dashboard's JSON * and it specifies variables within an "__inputs" field. *

* Default: - no data source variables *

* Example: *

*

         * { DS_PROMETHEUS: "my-prometheus-ds" }
         * 
*

* @return {@code this} * @param dataSourceVariables Specify a mapping from data source variables to data source names. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder dataSourceVariables(final java.util.Map dataSourceVariables) { this.props.dataSourceVariables(dataSourceVariables); return this; } /** * Group dashboards into folders. *

* Default: - default folder *

* @return {@code this} * @param folder Group dashboards into folders. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder folder(final java.lang.String folder) { this.props.folder(folder); return this; } /** * All other dashboard customizations. *

* @return {@code this} * @see https://grafana.com/docs/grafana/latest/dashboards/json-model/ * @param jsonModel All other dashboard customizations. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder jsonModel(final java.util.Map jsonModel) { this.props.jsonModel(jsonModel); return this; } /** * Labels to apply to the kubernetes resource. *

* When adding a dashboard to a Grafana instance using grafana.addDashboard, * labels provided to Grafana will be automatically applied. Otherwise, * labels must be added manually. *

* Default: - no labels *

* @return {@code this} * @param labels Labels to apply to the kubernetes resource. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder labels(final java.util.Map labels) { this.props.labels(labels); return this; } /** * Namespace to apply to the kubernetes resource. *

* When adding a dashboard to a Grafana instance using grafana.addDashboard, * the namespace will be automatically inherited. *

* Default: - undefined (will be assigned to the 'default' namespace) *

* @return {@code this} * @param namespace Namespace to apply to the kubernetes resource. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder namespace(final java.lang.String namespace) { this.props.namespace(namespace); return this; } /** * Specify plugins required by the dashboard. *

* @return {@code this} * @param plugins Specify plugins required by the dashboard. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder plugins(final java.util.List plugins) { this.props.plugins(plugins); return this; } /** * Auto-refresh interval. *

* Default: - 5 seconds *

* @return {@code this} * @param refreshRate Auto-refresh interval. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder refreshRate(final org.cdk8s.Duration refreshRate) { this.props.refreshRate(refreshRate); return this; } /** * Time range for the dashboard, e.g. last 6 hours, last 7 days, etc. *

* Default: - 6 hours *

* @return {@code this} * @param timeRange Time range for the dashboard, e.g. last 6 hours, last 7 days, etc. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder timeRange(final org.cdk8s.Duration timeRange) { this.props.timeRange(timeRange); return this; } /** * @return a newly built instance of {@link org.cdk8s.grafana.Dashboard}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public org.cdk8s.grafana.Dashboard build() { return new org.cdk8s.grafana.Dashboard( this.scope, this.id, this.props.build() ); } } }