diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 682c9d1e9b3..1ba30b66c25 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -5148,6 +5148,12 @@ components: example: 54.0 format: double type: number + local_cache_count: + description: Number of requests served from the local browser cache without a network round trip. + example: 20 + format: int32 + maximum: 2147483647 + type: integer max_duration_ms: description: Maximum duration in milliseconds. example: 945.6 @@ -5163,6 +5169,12 @@ components: example: 812.7 format: double type: number + non_blocking_count: + description: Number of requests reported by the browser as non-render-blocking. + example: 23 + format: int32 + maximum: 2147483647 + type: integer p75_duration_ms: description: 75th percentile duration in milliseconds. example: 844.1 @@ -5173,6 +5185,17 @@ components: example: 861.8 format: double type: number + render_blocking_count: + description: Number of requests reported by the browser as render-blocking. + example: 4 + format: int32 + maximum: 2147483647 + type: integer + render_blocking_pct: + description: Percentage of render-blocking requests among those reporting a render-blocking status. + example: 14.8 + format: double + type: number resource_type: description: Resource type (JS, CSS, image, fetch, XHR, document, and so on). example: fetch @@ -5182,6 +5205,12 @@ components: description: URL path group used to aggregate similar resources. example: /api/gallery type: string + server_validated_cache_count: + description: Number of cached requests revalidated by the server with a 304 response. + example: 7 + format: int32 + maximum: 2147483647 + type: integer timing_breakdown: $ref: '#/components/schemas/AggregatedResourceTimingBreakdown' total_requests: @@ -5214,6 +5243,11 @@ components: - cached_count - downloaded_count - cache_hit_rate_pct + - render_blocking_count + - non_blocking_count + - render_blocking_pct + - local_cache_count + - server_validated_cache_count type: object AggregatedResourceTimingBreakdown: description: Average timing breakdown per network phase for a resource. @@ -5680,7 +5714,7 @@ components: example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b type: string criteria: - $ref: '#/components/schemas/AggregatedWaterfallPerformanceCriteria' + $ref: '#/components/schemas/AggregatedWaterfallResponseAttributesCriteria' from: description: Start of the analyzed time range as a Unix timestamp in seconds. example: 1762437564 @@ -5725,10 +5759,30 @@ components: - view_count - from - to + - criteria - sampled_view_ids - total_cache_hit_rate_pct - resources type: object + AggregatedWaterfallResponseAttributesCriteria: + description: Performance criteria used to filter view instances by a metric threshold, or null when no criteria was applied. + nullable: true + properties: + max: + description: Maximum threshold in seconds (inclusive). + example: 5.0 + format: double + type: number + metric: + $ref: '#/components/schemas/AggregatedWaterfallPerformanceCriteriaMetric' + min: + description: Minimum threshold in seconds (inclusive). + example: 2.5 + format: double + type: number + required: + - metric + type: object AggregatedWaterfallResponseData: description: Data envelope for an aggregated waterfall response. properties: @@ -193828,13 +193882,18 @@ paths: downloaded_count: 0 http_method: GET load_frequency_pct: 54.0 + local_cache_count: 20 max_duration_ms: 945.6 median_duration_ms: 836.2 min_duration_ms: 812.7 + non_blocking_count: 23 p75_duration_ms: 844.1 p95_duration_ms: 861.8 + render_blocking_count: 4 + render_blocking_pct: 14.8 resource_type: fetch resource_url_path_group: /api/gallery + server_validated_cache_count: 7 timing_breakdown: avg_connect_ms: 0.0 avg_dns_ms: 0.0 diff --git a/src/main/java/com/datadog/api/client/v2/model/AggregatedResource.java b/src/main/java/com/datadog/api/client/v2/model/AggregatedResource.java index cedf04dc6d8..52499f2c4fb 100644 --- a/src/main/java/com/datadog/api/client/v2/model/AggregatedResource.java +++ b/src/main/java/com/datadog/api/client/v2/model/AggregatedResource.java @@ -31,13 +31,18 @@ AggregatedResource.JSON_PROPERTY_GLOBAL_VIEW_NAME_PCT, AggregatedResource.JSON_PROPERTY_HTTP_METHOD, AggregatedResource.JSON_PROPERTY_LOAD_FREQUENCY_PCT, + AggregatedResource.JSON_PROPERTY_LOCAL_CACHE_COUNT, AggregatedResource.JSON_PROPERTY_MAX_DURATION_MS, AggregatedResource.JSON_PROPERTY_MEDIAN_DURATION_MS, AggregatedResource.JSON_PROPERTY_MIN_DURATION_MS, + AggregatedResource.JSON_PROPERTY_NON_BLOCKING_COUNT, AggregatedResource.JSON_PROPERTY_P75_DURATION_MS, AggregatedResource.JSON_PROPERTY_P95_DURATION_MS, + AggregatedResource.JSON_PROPERTY_RENDER_BLOCKING_COUNT, + AggregatedResource.JSON_PROPERTY_RENDER_BLOCKING_PCT, AggregatedResource.JSON_PROPERTY_RESOURCE_TYPE, AggregatedResource.JSON_PROPERTY_RESOURCE_URL_PATH_GROUP, + AggregatedResource.JSON_PROPERTY_SERVER_VALIDATED_CACHE_COUNT, AggregatedResource.JSON_PROPERTY_TIMING_BREAKDOWN, AggregatedResource.JSON_PROPERTY_TOTAL_REQUESTS, AggregatedResource.JSON_PROPERTY_VIEWS_WITH_RESOURCE @@ -76,6 +81,9 @@ public class AggregatedResource { public static final String JSON_PROPERTY_LOAD_FREQUENCY_PCT = "load_frequency_pct"; private Double loadFrequencyPct; + public static final String JSON_PROPERTY_LOCAL_CACHE_COUNT = "local_cache_count"; + private Integer localCacheCount; + public static final String JSON_PROPERTY_MAX_DURATION_MS = "max_duration_ms"; private Double maxDurationMs; @@ -85,18 +93,31 @@ public class AggregatedResource { public static final String JSON_PROPERTY_MIN_DURATION_MS = "min_duration_ms"; private Double minDurationMs; + public static final String JSON_PROPERTY_NON_BLOCKING_COUNT = "non_blocking_count"; + private Integer nonBlockingCount; + public static final String JSON_PROPERTY_P75_DURATION_MS = "p75_duration_ms"; private Double p75DurationMs; public static final String JSON_PROPERTY_P95_DURATION_MS = "p95_duration_ms"; private Double p95DurationMs; + public static final String JSON_PROPERTY_RENDER_BLOCKING_COUNT = "render_blocking_count"; + private Integer renderBlockingCount; + + public static final String JSON_PROPERTY_RENDER_BLOCKING_PCT = "render_blocking_pct"; + private Double renderBlockingPct; + public static final String JSON_PROPERTY_RESOURCE_TYPE = "resource_type"; private String resourceType; public static final String JSON_PROPERTY_RESOURCE_URL_PATH_GROUP = "resource_url_path_group"; private String resourceUrlPathGroup; + public static final String JSON_PROPERTY_SERVER_VALIDATED_CACHE_COUNT = + "server_validated_cache_count"; + private Integer serverValidatedCacheCount; + public static final String JSON_PROPERTY_TIMING_BREAKDOWN = "timing_breakdown"; private AggregatedResourceTimingBreakdown timingBreakdown; @@ -120,15 +141,25 @@ public AggregatedResource( @JsonProperty(required = true, value = JSON_PROPERTY_HTTP_METHOD) String httpMethod, @JsonProperty(required = true, value = JSON_PROPERTY_LOAD_FREQUENCY_PCT) Double loadFrequencyPct, + @JsonProperty(required = true, value = JSON_PROPERTY_LOCAL_CACHE_COUNT) + Integer localCacheCount, @JsonProperty(required = true, value = JSON_PROPERTY_MAX_DURATION_MS) Double maxDurationMs, @JsonProperty(required = true, value = JSON_PROPERTY_MEDIAN_DURATION_MS) Double medianDurationMs, @JsonProperty(required = true, value = JSON_PROPERTY_MIN_DURATION_MS) Double minDurationMs, + @JsonProperty(required = true, value = JSON_PROPERTY_NON_BLOCKING_COUNT) + Integer nonBlockingCount, @JsonProperty(required = true, value = JSON_PROPERTY_P75_DURATION_MS) Double p75DurationMs, @JsonProperty(required = true, value = JSON_PROPERTY_P95_DURATION_MS) Double p95DurationMs, + @JsonProperty(required = true, value = JSON_PROPERTY_RENDER_BLOCKING_COUNT) + Integer renderBlockingCount, + @JsonProperty(required = true, value = JSON_PROPERTY_RENDER_BLOCKING_PCT) + Double renderBlockingPct, @JsonProperty(required = true, value = JSON_PROPERTY_RESOURCE_TYPE) String resourceType, @JsonProperty(required = true, value = JSON_PROPERTY_RESOURCE_URL_PATH_GROUP) String resourceUrlPathGroup, + @JsonProperty(required = true, value = JSON_PROPERTY_SERVER_VALIDATED_CACHE_COUNT) + Integer serverValidatedCacheCount, @JsonProperty(required = true, value = JSON_PROPERTY_TIMING_BREAKDOWN) AggregatedResourceTimingBreakdown timingBreakdown, @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_REQUESTS) Integer totalRequests, @@ -142,14 +173,19 @@ public AggregatedResource( this.httpMethod = httpMethod; if (httpMethod != null) {} this.loadFrequencyPct = loadFrequencyPct; + this.localCacheCount = localCacheCount; this.maxDurationMs = maxDurationMs; this.medianDurationMs = medianDurationMs; this.minDurationMs = minDurationMs; + this.nonBlockingCount = nonBlockingCount; this.p75DurationMs = p75DurationMs; this.p95DurationMs = p95DurationMs; + this.renderBlockingCount = renderBlockingCount; + this.renderBlockingPct = renderBlockingPct; this.resourceType = resourceType; if (resourceType != null) {} this.resourceUrlPathGroup = resourceUrlPathGroup; + this.serverValidatedCacheCount = serverValidatedCacheCount; this.timingBreakdown = timingBreakdown; this.unparsed |= timingBreakdown.unparsed; this.totalRequests = totalRequests; @@ -364,6 +400,27 @@ public void setLoadFrequencyPct(Double loadFrequencyPct) { this.loadFrequencyPct = loadFrequencyPct; } + public AggregatedResource localCacheCount(Integer localCacheCount) { + this.localCacheCount = localCacheCount; + return this; + } + + /** + * Number of requests served from the local browser cache without a network round trip. maximum: + * 2147483647 + * + * @return localCacheCount + */ + @JsonProperty(JSON_PROPERTY_LOCAL_CACHE_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getLocalCacheCount() { + return localCacheCount; + } + + public void setLocalCacheCount(Integer localCacheCount) { + this.localCacheCount = localCacheCount; + } + public AggregatedResource maxDurationMs(Double maxDurationMs) { this.maxDurationMs = maxDurationMs; return this; @@ -424,6 +481,26 @@ public void setMinDurationMs(Double minDurationMs) { this.minDurationMs = minDurationMs; } + public AggregatedResource nonBlockingCount(Integer nonBlockingCount) { + this.nonBlockingCount = nonBlockingCount; + return this; + } + + /** + * Number of requests reported by the browser as non-render-blocking. maximum: 2147483647 + * + * @return nonBlockingCount + */ + @JsonProperty(JSON_PROPERTY_NON_BLOCKING_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getNonBlockingCount() { + return nonBlockingCount; + } + + public void setNonBlockingCount(Integer nonBlockingCount) { + this.nonBlockingCount = nonBlockingCount; + } + public AggregatedResource p75DurationMs(Double p75DurationMs) { this.p75DurationMs = p75DurationMs; return this; @@ -464,6 +541,46 @@ public void setP95DurationMs(Double p95DurationMs) { this.p95DurationMs = p95DurationMs; } + public AggregatedResource renderBlockingCount(Integer renderBlockingCount) { + this.renderBlockingCount = renderBlockingCount; + return this; + } + + /** + * Number of requests reported by the browser as render-blocking. maximum: 2147483647 + * + * @return renderBlockingCount + */ + @JsonProperty(JSON_PROPERTY_RENDER_BLOCKING_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getRenderBlockingCount() { + return renderBlockingCount; + } + + public void setRenderBlockingCount(Integer renderBlockingCount) { + this.renderBlockingCount = renderBlockingCount; + } + + public AggregatedResource renderBlockingPct(Double renderBlockingPct) { + this.renderBlockingPct = renderBlockingPct; + return this; + } + + /** + * Percentage of render-blocking requests among those reporting a render-blocking status. + * + * @return renderBlockingPct + */ + @JsonProperty(JSON_PROPERTY_RENDER_BLOCKING_PCT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Double getRenderBlockingPct() { + return renderBlockingPct; + } + + public void setRenderBlockingPct(Double renderBlockingPct) { + this.renderBlockingPct = renderBlockingPct; + } + public AggregatedResource resourceType(String resourceType) { this.resourceType = resourceType; if (resourceType != null) {} @@ -506,6 +623,26 @@ public void setResourceUrlPathGroup(String resourceUrlPathGroup) { this.resourceUrlPathGroup = resourceUrlPathGroup; } + public AggregatedResource serverValidatedCacheCount(Integer serverValidatedCacheCount) { + this.serverValidatedCacheCount = serverValidatedCacheCount; + return this; + } + + /** + * Number of cached requests revalidated by the server with a 304 response. maximum: 2147483647 + * + * @return serverValidatedCacheCount + */ + @JsonProperty(JSON_PROPERTY_SERVER_VALIDATED_CACHE_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getServerValidatedCacheCount() { + return serverValidatedCacheCount; + } + + public void setServerValidatedCacheCount(Integer serverValidatedCacheCount) { + this.serverValidatedCacheCount = serverValidatedCacheCount; + } + public AggregatedResource timingBreakdown(AggregatedResourceTimingBreakdown timingBreakdown) { this.timingBreakdown = timingBreakdown; this.unparsed |= timingBreakdown.unparsed; @@ -636,13 +773,19 @@ public boolean equals(Object o) { && Objects.equals(this.globalViewNamePct, aggregatedResource.globalViewNamePct) && Objects.equals(this.httpMethod, aggregatedResource.httpMethod) && Objects.equals(this.loadFrequencyPct, aggregatedResource.loadFrequencyPct) + && Objects.equals(this.localCacheCount, aggregatedResource.localCacheCount) && Objects.equals(this.maxDurationMs, aggregatedResource.maxDurationMs) && Objects.equals(this.medianDurationMs, aggregatedResource.medianDurationMs) && Objects.equals(this.minDurationMs, aggregatedResource.minDurationMs) + && Objects.equals(this.nonBlockingCount, aggregatedResource.nonBlockingCount) && Objects.equals(this.p75DurationMs, aggregatedResource.p75DurationMs) && Objects.equals(this.p95DurationMs, aggregatedResource.p95DurationMs) + && Objects.equals(this.renderBlockingCount, aggregatedResource.renderBlockingCount) + && Objects.equals(this.renderBlockingPct, aggregatedResource.renderBlockingPct) && Objects.equals(this.resourceType, aggregatedResource.resourceType) && Objects.equals(this.resourceUrlPathGroup, aggregatedResource.resourceUrlPathGroup) + && Objects.equals( + this.serverValidatedCacheCount, aggregatedResource.serverValidatedCacheCount) && Objects.equals(this.timingBreakdown, aggregatedResource.timingBreakdown) && Objects.equals(this.totalRequests, aggregatedResource.totalRequests) && Objects.equals(this.viewsWithResource, aggregatedResource.viewsWithResource) @@ -662,13 +805,18 @@ public int hashCode() { globalViewNamePct, httpMethod, loadFrequencyPct, + localCacheCount, maxDurationMs, medianDurationMs, minDurationMs, + nonBlockingCount, p75DurationMs, p95DurationMs, + renderBlockingCount, + renderBlockingPct, resourceType, resourceUrlPathGroup, + serverValidatedCacheCount, timingBreakdown, totalRequests, viewsWithResource, @@ -693,15 +841,24 @@ public String toString() { sb.append(" globalViewNamePct: ").append(toIndentedString(globalViewNamePct)).append("\n"); sb.append(" httpMethod: ").append(toIndentedString(httpMethod)).append("\n"); sb.append(" loadFrequencyPct: ").append(toIndentedString(loadFrequencyPct)).append("\n"); + sb.append(" localCacheCount: ").append(toIndentedString(localCacheCount)).append("\n"); sb.append(" maxDurationMs: ").append(toIndentedString(maxDurationMs)).append("\n"); sb.append(" medianDurationMs: ").append(toIndentedString(medianDurationMs)).append("\n"); sb.append(" minDurationMs: ").append(toIndentedString(minDurationMs)).append("\n"); + sb.append(" nonBlockingCount: ").append(toIndentedString(nonBlockingCount)).append("\n"); sb.append(" p75DurationMs: ").append(toIndentedString(p75DurationMs)).append("\n"); sb.append(" p95DurationMs: ").append(toIndentedString(p95DurationMs)).append("\n"); + sb.append(" renderBlockingCount: ") + .append(toIndentedString(renderBlockingCount)) + .append("\n"); + sb.append(" renderBlockingPct: ").append(toIndentedString(renderBlockingPct)).append("\n"); sb.append(" resourceType: ").append(toIndentedString(resourceType)).append("\n"); sb.append(" resourceUrlPathGroup: ") .append(toIndentedString(resourceUrlPathGroup)) .append("\n"); + sb.append(" serverValidatedCacheCount: ") + .append(toIndentedString(serverValidatedCacheCount)) + .append("\n"); sb.append(" timingBreakdown: ").append(toIndentedString(timingBreakdown)).append("\n"); sb.append(" totalRequests: ").append(toIndentedString(totalRequests)).append("\n"); sb.append(" viewsWithResource: ").append(toIndentedString(viewsWithResource)).append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributes.java index 20726f64a04..417e492b885 100644 --- a/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributes.java @@ -39,7 +39,7 @@ public class AggregatedWaterfallResponseAttributes { private String applicationId; public static final String JSON_PROPERTY_CRITERIA = "criteria"; - private AggregatedWaterfallPerformanceCriteria criteria; + private AggregatedWaterfallResponseAttributesCriteria criteria; public static final String JSON_PROPERTY_FROM = "from"; private Long from; @@ -67,6 +67,8 @@ public AggregatedWaterfallResponseAttributes() {} @JsonCreator public AggregatedWaterfallResponseAttributes( @JsonProperty(required = true, value = JSON_PROPERTY_APPLICATION_ID) String applicationId, + @JsonProperty(required = true, value = JSON_PROPERTY_CRITERIA) + AggregatedWaterfallResponseAttributesCriteria criteria, @JsonProperty(required = true, value = JSON_PROPERTY_FROM) Long from, @JsonProperty(required = true, value = JSON_PROPERTY_RESOURCES) List resources, @@ -78,6 +80,10 @@ public AggregatedWaterfallResponseAttributes( @JsonProperty(required = true, value = JSON_PROPERTY_VIEW_COUNT) Integer viewCount, @JsonProperty(required = true, value = JSON_PROPERTY_VIEW_NAME) String viewName) { this.applicationId = applicationId; + this.criteria = criteria; + if (criteria != null) { + this.unparsed |= criteria.unparsed; + } this.from = from; this.resources = resources; for (AggregatedResource item : resources) { @@ -111,25 +117,28 @@ public void setApplicationId(String applicationId) { } public AggregatedWaterfallResponseAttributes criteria( - AggregatedWaterfallPerformanceCriteria criteria) { + AggregatedWaterfallResponseAttributesCriteria criteria) { this.criteria = criteria; - this.unparsed |= criteria.unparsed; + if (criteria != null) { + this.unparsed |= criteria.unparsed; + } return this; } /** - * Performance criteria to filter view instances by a metric threshold. + * Performance criteria used to filter view instances by a metric threshold, or null when no + * criteria was applied. * * @return criteria */ @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_CRITERIA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public AggregatedWaterfallPerformanceCriteria getCriteria() { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AggregatedWaterfallResponseAttributesCriteria getCriteria() { return criteria; } - public void setCriteria(AggregatedWaterfallPerformanceCriteria criteria) { + public void setCriteria(AggregatedWaterfallResponseAttributesCriteria criteria) { this.criteria = criteria; if (criteria != null) { this.unparsed |= criteria.unparsed; diff --git a/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributesCriteria.java b/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributesCriteria.java new file mode 100644 index 00000000000..34a6ecb76fb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AggregatedWaterfallResponseAttributesCriteria.java @@ -0,0 +1,213 @@ +/* + * 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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * Performance criteria used to filter view instances by a metric threshold, or null when no + * criteria was applied. + */ +@JsonPropertyOrder({ + AggregatedWaterfallResponseAttributesCriteria.JSON_PROPERTY_MAX, + AggregatedWaterfallResponseAttributesCriteria.JSON_PROPERTY_METRIC, + AggregatedWaterfallResponseAttributesCriteria.JSON_PROPERTY_MIN +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AggregatedWaterfallResponseAttributesCriteria { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MAX = "max"; + private Double max; + + public static final String JSON_PROPERTY_METRIC = "metric"; + private AggregatedWaterfallPerformanceCriteriaMetric metric; + + public static final String JSON_PROPERTY_MIN = "min"; + private Double min; + + public AggregatedWaterfallResponseAttributesCriteria() {} + + @JsonCreator + public AggregatedWaterfallResponseAttributesCriteria( + @JsonProperty(required = true, value = JSON_PROPERTY_METRIC) + AggregatedWaterfallPerformanceCriteriaMetric metric) { + this.metric = metric; + this.unparsed |= !metric.isValid(); + } + + public AggregatedWaterfallResponseAttributesCriteria max(Double max) { + this.max = max; + return this; + } + + /** + * Maximum threshold in seconds (inclusive). + * + * @return max + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MAX) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getMax() { + return max; + } + + public void setMax(Double max) { + this.max = max; + } + + public AggregatedWaterfallResponseAttributesCriteria metric( + AggregatedWaterfallPerformanceCriteriaMetric metric) { + this.metric = metric; + this.unparsed |= !metric.isValid(); + return this; + } + + /** + * Performance metric used to filter view instances by threshold. + * + * @return metric + */ + @JsonProperty(JSON_PROPERTY_METRIC) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AggregatedWaterfallPerformanceCriteriaMetric getMetric() { + return metric; + } + + public void setMetric(AggregatedWaterfallPerformanceCriteriaMetric metric) { + if (!metric.isValid()) { + this.unparsed = true; + } + this.metric = metric; + } + + public AggregatedWaterfallResponseAttributesCriteria min(Double min) { + this.min = min; + return this; + } + + /** + * Minimum threshold in seconds (inclusive). + * + * @return min + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getMin() { + return min; + } + + public void setMin(Double min) { + this.min = min; + } + + /** + * 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 AggregatedWaterfallResponseAttributesCriteria + */ + @JsonAnySetter + public AggregatedWaterfallResponseAttributesCriteria 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 AggregatedWaterfallResponseAttributesCriteria object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AggregatedWaterfallResponseAttributesCriteria aggregatedWaterfallResponseAttributesCriteria = + (AggregatedWaterfallResponseAttributesCriteria) o; + return Objects.equals(this.max, aggregatedWaterfallResponseAttributesCriteria.max) + && Objects.equals(this.metric, aggregatedWaterfallResponseAttributesCriteria.metric) + && Objects.equals(this.min, aggregatedWaterfallResponseAttributesCriteria.min) + && Objects.equals( + this.additionalProperties, + aggregatedWaterfallResponseAttributesCriteria.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(max, metric, min, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AggregatedWaterfallResponseAttributesCriteria {\n"); + sb.append(" max: ").append(toIndentedString(max)).append("\n"); + sb.append(" metric: ").append(toIndentedString(metric)).append("\n"); + sb.append(" min: ").append(toIndentedString(min)).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 "); + } +}