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

com.grafana.foundation.googlecloudmonitoring.CloudMonitoringQuery Maven / Gradle / Ivy

There is a newer version: 11.3.0-1730898216
Show newest version
// Code generated - EDITING IS FUTILE. DO NOT EDIT.

package com.grafana.foundation.googlecloudmonitoring;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

public class CloudMonitoringQuery implements com.grafana.foundation.cog.variants.Dataquery {
    // A unique identifier for the query within the list of targets.
    // In server side expressions, the refId is used as a variable name to identify results.
    // By default, the UI will assign A->Z; however setting meaningful names may be useful.
    @JsonProperty("refId")
    public String refId;
    // If hide is set to true, Grafana will filter out the response(s) associated with this query before returning it to the panel.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("hide")
    public Boolean hide;
    // Specify the query flavor
    // TODO make this required and give it a default
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("queryType")
    public String queryType;
    // Aliases can be set to modify the legend labels. e.g. {{metric.label.xxx}}. See docs for more detail.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("aliasBy")
    public String aliasBy;
    // GCM query type.
    // queryType: #QueryType
    // Time Series List sub-query properties.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("timeSeriesList")
    public TimeSeriesList timeSeriesList;
    // Time Series sub-query properties.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("timeSeriesQuery")
    public TimeSeriesQuery timeSeriesQuery;
    // SLO sub-query properties.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("sloQuery")
    public SLOQuery sloQuery;
    // PromQL sub-query properties.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("promQLQuery")
    public PromQLQuery promQLQuery;
    // For mixed data sources the selected datasource is on the query level.
    // For non mixed scenarios this is undefined.
    // TODO find a better way to do this ^ that's friendly to schema
    // TODO this shouldn't be unknown but DataSourceRef | null
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("datasource")
    public Object datasource;
    // Time interval in milliseconds.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("intervalMs")
    public Double intervalMs;
    
    public String toJSON() throws JsonProcessingException {
        ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
        return ow.writeValueAsString(this);
    }

    
    public static class Builder implements com.grafana.foundation.cog.Builder {
        private final CloudMonitoringQuery internal;
        
        public Builder() {
            this.internal = new CloudMonitoringQuery();
        }
    public Builder refId(String refId) {
    this.internal.refId = refId;
        return this;
    }
    
    public Builder hide(Boolean hide) {
    this.internal.hide = hide;
        return this;
    }
    
    public Builder queryType(String queryType) {
    this.internal.queryType = queryType;
        return this;
    }
    
    public Builder aliasBy(String aliasBy) {
    this.internal.aliasBy = aliasBy;
        return this;
    }
    
    public Builder timeSeriesList(com.grafana.foundation.cog.Builder timeSeriesList) {
    this.internal.timeSeriesList = timeSeriesList.build();
        return this;
    }
    
    public Builder timeSeriesQuery(com.grafana.foundation.cog.Builder timeSeriesQuery) {
    this.internal.timeSeriesQuery = timeSeriesQuery.build();
        return this;
    }
    
    public Builder sloQuery(com.grafana.foundation.cog.Builder sloQuery) {
    this.internal.sloQuery = sloQuery.build();
        return this;
    }
    
    public Builder promQLQuery(com.grafana.foundation.cog.Builder promQLQuery) {
    this.internal.promQLQuery = promQLQuery.build();
        return this;
    }
    
    public Builder datasource(Object datasource) {
    this.internal.datasource = datasource;
        return this;
    }
    
    public Builder intervalMs(Double intervalMs) {
    this.internal.intervalMs = intervalMs;
        return this;
    }
    public CloudMonitoringQuery build() {
            return this.internal;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy