2323 SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_AGGREGATION ,
2424 SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_DISTINCT_FIELDS ,
2525 SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_GROUP_BY_FIELDS ,
26+ SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_HAS_OPTIONAL_GROUP_BY_FIELDS ,
2627 SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_METRIC ,
2728 SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_METRICS ,
2829 SecurityMonitoringStandardRuleQuery .JSON_PROPERTY_NAME ,
@@ -41,6 +42,10 @@ public class SecurityMonitoringStandardRuleQuery {
4142 public static final String JSON_PROPERTY_GROUP_BY_FIELDS = "groupByFields" ;
4243 private List <String > groupByFields = null ;
4344
45+ public static final String JSON_PROPERTY_HAS_OPTIONAL_GROUP_BY_FIELDS =
46+ "hasOptionalGroupByFields" ;
47+ private Boolean hasOptionalGroupByFields ;
48+
4449 public static final String JSON_PROPERTY_METRIC = "metric" ;
4550 private String metric ;
4651
@@ -137,6 +142,19 @@ public void setGroupByFields(List<String> groupByFields) {
137142 this .groupByFields = groupByFields ;
138143 }
139144
145+ /**
146+ * When false, events without a group-by value are ignored by the rule. When true, events with
147+ * missing group-by fields are processed with <code>N/A</code>, replacing the missing values.
148+ *
149+ * @return hasOptionalGroupByFields
150+ */
151+ @ jakarta .annotation .Nullable
152+ @ JsonProperty (JSON_PROPERTY_HAS_OPTIONAL_GROUP_BY_FIELDS )
153+ @ JsonInclude (value = JsonInclude .Include .USE_DEFAULTS )
154+ public Boolean getHasOptionalGroupByFields () {
155+ return hasOptionalGroupByFields ;
156+ }
157+
140158 public SecurityMonitoringStandardRuleQuery metric (String metric ) {
141159 this .metric = metric ;
142160 return this ;
@@ -295,6 +313,9 @@ public boolean equals(Object o) {
295313 return Objects .equals (this .aggregation , securityMonitoringStandardRuleQuery .aggregation )
296314 && Objects .equals (this .distinctFields , securityMonitoringStandardRuleQuery .distinctFields )
297315 && Objects .equals (this .groupByFields , securityMonitoringStandardRuleQuery .groupByFields )
316+ && Objects .equals (
317+ this .hasOptionalGroupByFields ,
318+ securityMonitoringStandardRuleQuery .hasOptionalGroupByFields )
298319 && Objects .equals (this .metric , securityMonitoringStandardRuleQuery .metric )
299320 && Objects .equals (this .metrics , securityMonitoringStandardRuleQuery .metrics )
300321 && Objects .equals (this .name , securityMonitoringStandardRuleQuery .name )
@@ -309,6 +330,7 @@ public int hashCode() {
309330 aggregation ,
310331 distinctFields ,
311332 groupByFields ,
333+ hasOptionalGroupByFields ,
312334 metric ,
313335 metrics ,
314336 name ,
@@ -323,6 +345,9 @@ public String toString() {
323345 sb .append (" aggregation: " ).append (toIndentedString (aggregation )).append ("\n " );
324346 sb .append (" distinctFields: " ).append (toIndentedString (distinctFields )).append ("\n " );
325347 sb .append (" groupByFields: " ).append (toIndentedString (groupByFields )).append ("\n " );
348+ sb .append (" hasOptionalGroupByFields: " )
349+ .append (toIndentedString (hasOptionalGroupByFields ))
350+ .append ("\n " );
326351 sb .append (" metric: " ).append (toIndentedString (metric )).append ("\n " );
327352 sb .append (" metrics: " ).append (toIndentedString (metrics )).append ("\n " );
328353 sb .append (" name: " ).append (toIndentedString (name )).append ("\n " );
0 commit comments