Skip to content

Commit 09caa44

Browse files
committed
Monitor model changed to add an optional fanoutEnabled field
Signed-off-by: Riya Saxena <riysaxen@amazon.com>
1 parent 197eb82 commit 09caa44

File tree

1 file changed

+14
-2
lines changed
  • src/main/kotlin/org/opensearch/commons/alerting/model

1 file changed

+14
-2
lines changed

src/main/kotlin/org/opensearch/commons/alerting/model/Monitor.kt

+14-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ data class Monitor(
4444
val dataSources: DataSources = DataSources(),
4545
val deleteQueryIndexInEveryRun: Boolean? = false,
4646
val shouldCreateSingleAlertForFindings: Boolean? = false,
47-
val owner: String? = "alerting"
47+
val owner: String? = "alerting",
48+
val fanoutEnabled: Boolean? = true,
4849
) : ScheduledJob {
4950

5051
override val type = MONITOR_TYPE
@@ -114,6 +115,7 @@ data class Monitor(
114115
},
115116
deleteQueryIndexInEveryRun = sin.readOptionalBoolean(),
116117
shouldCreateSingleAlertForFindings = sin.readOptionalBoolean(),
118+
fanoutEnabled = sin.readOptionalBoolean(),
117119
owner = sin.readOptionalString()
118120
)
119121

@@ -175,6 +177,7 @@ data class Monitor(
175177
builder.field(DATA_SOURCES_FIELD, dataSources)
176178
builder.field(DELETE_QUERY_INDEX_IN_EVERY_RUN_FIELD, deleteQueryIndexInEveryRun)
177179
builder.field(SHOULD_CREATE_SINGLE_ALERT_FOR_FINDINGS_FIELD, shouldCreateSingleAlertForFindings)
180+
builder.field(FAN_OUT_ENABLED_FIELD, fanoutEnabled)
178181
builder.field(OWNER_FIELD, owner)
179182
if (params.paramAsBoolean("with_type", false)) builder.endObject()
180183
return builder.endObject()
@@ -228,6 +231,7 @@ data class Monitor(
228231
dataSources.writeTo(out)
229232
out.writeOptionalBoolean(deleteQueryIndexInEveryRun)
230233
out.writeOptionalBoolean(shouldCreateSingleAlertForFindings)
234+
out.writeOptionalBoolean(fanoutEnabled)
231235
out.writeOptionalString(owner)
232236
}
233237

@@ -250,6 +254,7 @@ data class Monitor(
250254
const val ENABLED_TIME_FIELD = "enabled_time"
251255
const val DELETE_QUERY_INDEX_IN_EVERY_RUN_FIELD = "delete_query_index_in_every_run"
252256
const val SHOULD_CREATE_SINGLE_ALERT_FOR_FINDINGS_FIELD = "should_create_single_alert_for_findings"
257+
const val FAN_OUT_ENABLED_FIELD = "fan_out_enabled"
253258
const val OWNER_FIELD = "owner"
254259
val MONITOR_TYPE_PATTERN = Pattern.compile("[a-zA-Z0-9_]{5,25}")
255260

@@ -281,6 +286,7 @@ data class Monitor(
281286
var deleteQueryIndexInEveryRun = false
282287
var delegateMonitor = false
283288
var owner = "alerting"
289+
var fanoutEnabled = true
284290

285291
XContentParserUtils.ensureExpectedToken(XContentParser.Token.START_OBJECT, xcp.currentToken(), xcp)
286292
while (xcp.nextToken() != XContentParser.Token.END_OBJECT) {
@@ -343,6 +349,11 @@ data class Monitor(
343349
} else {
344350
xcp.booleanValue()
345351
}
352+
FAN_OUT_ENABLED_FIELD -> fanoutEnabled = if (xcp.currentToken() == XContentParser.Token.VALUE_NULL) {
353+
fanoutEnabled
354+
} else {
355+
xcp.booleanValue()
356+
}
346357
OWNER_FIELD -> owner = if (xcp.currentToken() == XContentParser.Token.VALUE_NULL) owner else xcp.text()
347358
else -> {
348359
xcp.skipChildren()
@@ -372,7 +383,8 @@ data class Monitor(
372383
dataSources,
373384
deleteQueryIndexInEveryRun,
374385
delegateMonitor,
375-
owner
386+
owner,
387+
fanoutEnabled
376388
)
377389
}
378390

0 commit comments

Comments
 (0)