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

com.datadog.api.client.v2.model.MetricTagConfigurationCreateAttributes Maven / Gradle / Ivy

There is a newer version: 2.24.0
Show newest version
/*
 * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
 * This product includes software developed at Datadog (https://www.datadoghq.com/).
 * Copyright 2019-Present Datadog, Inc.
 */

package com.datadog.api.client.v2.model;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/** Object containing the definition of a metric tag configuration to be created. */
@JsonPropertyOrder({
  MetricTagConfigurationCreateAttributes.JSON_PROPERTY_AGGREGATIONS,
  MetricTagConfigurationCreateAttributes.JSON_PROPERTY_INCLUDE_PERCENTILES,
  MetricTagConfigurationCreateAttributes.JSON_PROPERTY_METRIC_TYPE,
  MetricTagConfigurationCreateAttributes.JSON_PROPERTY_TAGS
})
@jakarta.annotation.Generated(
    value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class MetricTagConfigurationCreateAttributes {
  @JsonIgnore public boolean unparsed = false;
  public static final String JSON_PROPERTY_AGGREGATIONS = "aggregations";
  private List aggregations = null;

  public static final String JSON_PROPERTY_INCLUDE_PERCENTILES = "include_percentiles";
  private Boolean includePercentiles;

  public static final String JSON_PROPERTY_METRIC_TYPE = "metric_type";
  private MetricTagConfigurationMetricTypes metricType = MetricTagConfigurationMetricTypes.GAUGE;

  public static final String JSON_PROPERTY_TAGS = "tags";
  private List tags = new ArrayList<>();

  public MetricTagConfigurationCreateAttributes() {}

  @JsonCreator
  public MetricTagConfigurationCreateAttributes(
      @JsonProperty(required = true, value = JSON_PROPERTY_METRIC_TYPE)
          MetricTagConfigurationMetricTypes metricType,
      @JsonProperty(required = true, value = JSON_PROPERTY_TAGS) List tags) {
    this.metricType = metricType;
    this.unparsed |= !metricType.isValid();
    this.tags = tags;
  }

  public MetricTagConfigurationCreateAttributes aggregations(
      List aggregations) {
    this.aggregations = aggregations;
    for (MetricCustomAggregation item : aggregations) {
      this.unparsed |= item.unparsed;
    }
    return this;
  }

  public MetricTagConfigurationCreateAttributes addAggregationsItem(
      MetricCustomAggregation aggregationsItem) {
    if (this.aggregations == null) {
      this.aggregations = new ArrayList<>();
    }
    this.aggregations.add(aggregationsItem);
    this.unparsed |= aggregationsItem.unparsed;
    return this;
  }

  /**
   * A list of queryable aggregation combinations for a count, rate, or gauge metric. By default,
   * count and rate metrics require the (time: sum, space: sum) aggregation and Gauge metrics
   * require the (time: avg, space: avg) aggregation. Additional time & space combinations are
   * also available:
   *
   * 
    *
  • time: avg, space: avg *
  • time: avg, space: max *
  • time: avg, space: min *
  • time: avg, space: sum *
  • time: count, space: sum *
  • time: max, space: max *
  • time: min, space: min *
  • time: sum, space: avg *
  • time: sum, space: sum *
* *

Can only be applied to metrics that have a metric_type of count, * rate, or gauge. * * @return aggregations */ @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_AGGREGATIONS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public List getAggregations() { return aggregations; } public void setAggregations(List aggregations) { this.aggregations = aggregations; } public MetricTagConfigurationCreateAttributes includePercentiles(Boolean includePercentiles) { this.includePercentiles = includePercentiles; return this; } /** * Toggle to include/exclude percentiles for a distribution metric. Defaults to false. Can only be * applied to metrics that have a metric_type of distribution. * * @return includePercentiles */ @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_INCLUDE_PERCENTILES) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Boolean getIncludePercentiles() { return includePercentiles; } public void setIncludePercentiles(Boolean includePercentiles) { this.includePercentiles = includePercentiles; } public MetricTagConfigurationCreateAttributes metricType( MetricTagConfigurationMetricTypes metricType) { this.metricType = metricType; this.unparsed |= !metricType.isValid(); return this; } /** * The metric's type. * * @return metricType */ @JsonProperty(JSON_PROPERTY_METRIC_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) public MetricTagConfigurationMetricTypes getMetricType() { return metricType; } public void setMetricType(MetricTagConfigurationMetricTypes metricType) { if (!metricType.isValid()) { this.unparsed = true; } this.metricType = metricType; } public MetricTagConfigurationCreateAttributes tags(List tags) { this.tags = tags; return this; } public MetricTagConfigurationCreateAttributes addTagsItem(String tagsItem) { this.tags.add(tagsItem); return this; } /** * A list of tag keys that will be queryable for your metric. * * @return tags */ @JsonProperty(JSON_PROPERTY_TAGS) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getTags() { return tags; } public void setTags(List tags) { this.tags = tags; } /** * A container for additional, undeclared properties. This is a holder for any undeclared * properties as specified with the 'additionalProperties' keyword in the OAS document. */ private Map additionalProperties; /** * Set the additional (undeclared) property with the specified name and value. If the property * does not already exist, create it otherwise replace it. * * @param key The arbitrary key to set * @param value The associated value * @return MetricTagConfigurationCreateAttributes */ @JsonAnySetter public MetricTagConfigurationCreateAttributes putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } this.additionalProperties.put(key, value); return this; } /** * Return the additional (undeclared) property. * * @return The additional properties */ @JsonAnyGetter public Map getAdditionalProperties() { return additionalProperties; } /** * Return the additional (undeclared) property with the specified name. * * @param key The arbitrary key to get * @return The specific additional property for the given key */ public Object getAdditionalProperty(String key) { if (this.additionalProperties == null) { return null; } return this.additionalProperties.get(key); } /** Return true if this MetricTagConfigurationCreateAttributes object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } MetricTagConfigurationCreateAttributes metricTagConfigurationCreateAttributes = (MetricTagConfigurationCreateAttributes) o; return Objects.equals(this.aggregations, metricTagConfigurationCreateAttributes.aggregations) && Objects.equals( this.includePercentiles, metricTagConfigurationCreateAttributes.includePercentiles) && Objects.equals(this.metricType, metricTagConfigurationCreateAttributes.metricType) && Objects.equals(this.tags, metricTagConfigurationCreateAttributes.tags) && Objects.equals( this.additionalProperties, metricTagConfigurationCreateAttributes.additionalProperties); } @Override public int hashCode() { return Objects.hash(aggregations, includePercentiles, metricType, tags, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class MetricTagConfigurationCreateAttributes {\n"); sb.append(" aggregations: ").append(toIndentedString(aggregations)).append("\n"); sb.append(" includePercentiles: ").append(toIndentedString(includePercentiles)).append("\n"); sb.append(" metricType: ").append(toIndentedString(metricType)).append("\n"); sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); sb.append("}"); return sb.toString(); } /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy