    # Copyright OpenSearch Contributors
# SPDX-License-Identifier: Apache-2.0

# Painless definition of classes used by alerting plugin

class org.opensearch.alerting.script.TriggerScript {
    Map getParams()
    boolean execute(QueryLevelTriggerExecutionContext)
    String[] PARAMETERS
}

class org.opensearch.alerting.script.TriggerScript$Factory {
    TriggerScript newInstance(Map)
}

class org.opensearch.alerting.script.TriggerExecutionContext {
    Monitor getMonitor()
    List getResults()
    java.time.Instant getPeriodStart()
    java.time.Instant getPeriodEnd()
    Exception getError()
}

class org.opensearch.alerting.script.QueryLevelTriggerExecutionContext {
    Monitor getMonitor()
    QueryLevelTrigger getTrigger()
    List getResults()
    java.time.Instant getPeriodStart()
    java.time.Instant getPeriodEnd()
    Alert getAlert()
    Exception getError()
}

class org.opensearch.commons.alerting.model.Monitor {
    String getId()
    long getVersion()
    String getName()
    boolean getEnabled()
}

class org.opensearch.commons.alerting.model.QueryLevelTrigger {
    String getId()
    String getName()
    String getSeverity()
    List getActions()
}

class org.opensearch.commons.alerting.model.Alert {
    String getId()
    long getVersion()
    boolean isAcknowledged()
}