001package com.box.sdkgen.schemas.v2026r0.queryinsightsrequestbodyv2026r0; 002 003import com.box.sdkgen.internal.SerializableObject; 004import com.box.sdkgen.schemas.v2026r0.queryinsightsmetricdefinitionv2026r0.QueryInsightsMetricDefinitionV2026R0; 005import com.fasterxml.jackson.annotation.JsonFilter; 006import com.fasterxml.jackson.annotation.JsonProperty; 007import java.util.Map; 008import java.util.Objects; 009 010/** Request body describing the filtering, grouping, and metrics for an insights computation. */ 011@JsonFilter("nullablePropertyFilter") 012public class QueryInsightsRequestBodyV2026R0 extends SerializableObject { 013 014 /** 015 * The filtering and grouping definition. Filters are applied first, followed by grouping, before 016 * metrics are computed. 017 */ 018 protected final QueryInsightsRequestBodyV2026R0QueryField query; 019 020 /** 021 * A map of user-defined metric aliases to their definitions. A maximum of 10 metrics may be 022 * defined. Each alias must be a unique, non-empty string of up to 256 characters, containing only 023 * letters, digits, `_`, `-`, or `.`, and must not start with a digit, `_`, `-`, or `.`. May be 024 * empty to request only a total count. 025 */ 026 protected final Map<String, QueryInsightsMetricDefinitionV2026R0> metrics; 027 028 public QueryInsightsRequestBodyV2026R0( 029 @JsonProperty("query") QueryInsightsRequestBodyV2026R0QueryField query, 030 @JsonProperty("metrics") Map<String, QueryInsightsMetricDefinitionV2026R0> metrics) { 031 super(); 032 this.query = query; 033 this.metrics = metrics; 034 } 035 036 public QueryInsightsRequestBodyV2026R0QueryField getQuery() { 037 return query; 038 } 039 040 public Map<String, QueryInsightsMetricDefinitionV2026R0> getMetrics() { 041 return metrics; 042 } 043 044 @Override 045 public boolean equals(Object o) { 046 if (this == o) { 047 return true; 048 } 049 if (o == null || getClass() != o.getClass()) { 050 return false; 051 } 052 QueryInsightsRequestBodyV2026R0 casted = (QueryInsightsRequestBodyV2026R0) o; 053 return Objects.equals(query, casted.query) && Objects.equals(metrics, casted.metrics); 054 } 055 056 @Override 057 public int hashCode() { 058 return Objects.hash(query, metrics); 059 } 060 061 @Override 062 public String toString() { 063 return "QueryInsightsRequestBodyV2026R0{" 064 + "query='" 065 + query 066 + '\'' 067 + ", " 068 + "metrics='" 069 + metrics 070 + '\'' 071 + "}"; 072 } 073}