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

com.grafana.foundation.googlecloudmonitoring.MetricQuery 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;
import java.util.List;

// @deprecated This type is for migration purposes only. Replaced by TimeSeriesList Metric sub-query properties.
public class MetricQuery {
    // GCP project to execute the query against.
    @JsonProperty("projectName")
    public String projectName;
    // Alignment function to be used. Defaults to ALIGN_MEAN.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("perSeriesAligner")
    public String perSeriesAligner;
    // Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("alignmentPeriod")
    public String alignmentPeriod;
    // 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;
    @JsonProperty("editorMode")
    public String editorMode;
    @JsonProperty("metricType")
    public String metricType;
    // Reducer applied across a set of time-series values. Defaults to REDUCE_NONE.
    @JsonProperty("crossSeriesReducer")
    public String crossSeriesReducer;
    // Array of labels to group data by.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("groupBys")
    public List groupBys;
    // Array of filters to query data by. Labels that can be filtered on are defined by the metric.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("filters")
    public List filters;
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("metricKind")
    public MetricKind metricKind;
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("valueType")
    public String valueType;
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("view")
    public String view;
    // MQL query to be executed.
    @JsonProperty("query")
    public String query;
    // Preprocessor is not part of the API, but is used to store the preprocessor and not affect the UI for the rest of parameters
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("preprocessor")
    public PreprocessorType preprocessor;
    // To disable the graphPeriod, it should explictly be set to 'disabled'.
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
    @JsonProperty("graphPeriod")
    public String graphPeriod;
    
    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 MetricQuery internal;
        
        public Builder() {
            this.internal = new MetricQuery();
        this.graphPeriod("disabled");
        }
    public Builder projectName(String projectName) {
    this.internal.projectName = projectName;
        return this;
    }
    
    public Builder perSeriesAligner(String perSeriesAligner) {
    this.internal.perSeriesAligner = perSeriesAligner;
        return this;
    }
    
    public Builder alignmentPeriod(String alignmentPeriod) {
    this.internal.alignmentPeriod = alignmentPeriod;
        return this;
    }
    
    public Builder aliasBy(String aliasBy) {
    this.internal.aliasBy = aliasBy;
        return this;
    }
    
    public Builder editorMode(String editorMode) {
    this.internal.editorMode = editorMode;
        return this;
    }
    
    public Builder metricType(String metricType) {
    this.internal.metricType = metricType;
        return this;
    }
    
    public Builder crossSeriesReducer(String crossSeriesReducer) {
    this.internal.crossSeriesReducer = crossSeriesReducer;
        return this;
    }
    
    public Builder groupBys(List groupBys) {
    this.internal.groupBys = groupBys;
        return this;
    }
    
    public Builder filters(List filters) {
    this.internal.filters = filters;
        return this;
    }
    
    public Builder metricKind(MetricKind metricKind) {
    this.internal.metricKind = metricKind;
        return this;
    }
    
    public Builder valueType(String valueType) {
    this.internal.valueType = valueType;
        return this;
    }
    
    public Builder view(String view) {
    this.internal.view = view;
        return this;
    }
    
    public Builder query(String query) {
    this.internal.query = query;
        return this;
    }
    
    public Builder preprocessor(PreprocessorType preprocessor) {
    this.internal.preprocessor = preprocessor;
        return this;
    }
    
    public Builder graphPeriod(String graphPeriod) {
    this.internal.graphPeriod = graphPeriod;
        return this;
    }
    public MetricQuery build() {
            return this.internal;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy