blob: 8a4401939268f84f043433d0daf19ab870c8430a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.amaterasu.common.execution.actions
import NotificationLevel.NotificationLevel
import NotificationType.NotificationType
import com.fasterxml.jackson.annotation.JsonProperty
abstract class Notifier {
def info(msg: String)
def success(line: String)
def error(line: String, msg: String)
}
object NotificationType extends Enumeration {
type NotificationType = Value
val success: NotificationType.Value = Value("success")
val error: NotificationType.Value = Value("error")
val info: NotificationType.Value = Value("info")
}
object NotificationLevel extends Enumeration {
type NotificationLevel = Value
val execution: NotificationLevel.Value = Value("execution")
val code: NotificationLevel.Value = Value("code")
val none: NotificationLevel.Value = Value("none")
}
case class Notification(@JsonProperty("line") line: String,
@JsonProperty("msg") msg: String,
@JsonProperty("notType") notType: NotificationType,
@JsonProperty("notLevel") notLevel: NotificationLevel)