// Dstl (c) Crown Copyright 2024
//
// [START declaration]
syntax = "proto3";
package sapient_msg.bsi_flex_335_v2_0;
import "sapient_msg/bsi_flex_335_v2_0/associated_detection.proto";
import "sapient_msg/bsi_flex_335_v2_0/associated_file.proto";
import "sapient_msg/bsi_flex_335_v2_0/location.proto";
import "sapient_msg/bsi_flex_335_v2_0/range_bearing.proto";
import "sapient_msg/proto_options.proto";
// [END declaration]
// [START java_declaration]
option java_multiple_files = true;
option java_package = "uk.gov.dstl.sapientmsg.bsiflex335v2";
option java_outer_classname = "AlertProto";
// [END java_declaration]
// [START messages]
message Alert {
optional string alert_id = 1 [(field_options) = {is_mandatory: true, is_ulid: true}]; // ULID for the message
optional AlertType alert_type = 2; // Type of alert message
optional AlertStatus status = 3; // State of the information in this message
optional string description = 4; // Description of the alert (normally displayed on a GUI)
oneof location_oneof { // The position of the event/object that caused the alert
RangeBearing range_bearing = 5; // Location of the alert in Sphereical coordinates
Location location = 6; // Location of the alert in Geo coordinates
}
optional string region_id = 7 [(field_options) = {is_ulid: true}]; // ULID of the region the alert is from
optional DiscretePriority priority = 8; // Priority of the alert
optional float ranking = 9; // 0-1
optional float confidence = 10; // Confidence (0-1) that the alert is not a false-alarm
repeated AssociatedFile associated_file = 11; // URL linking to any files associated with the alert
repeated AssociatedDetection associated_detection = 12; // Detections associated with the alert
optional string additional_information = 13; // Any additional information that may be useful for the alert consumer
enum AlertType {
ALERT_TYPE_UNSPECIFIED = 0; // Unset enum
ALERT_TYPE_INFORMATION = 1;
ALERT_TYPE_WARNING = 2;
ALERT_TYPE_CRITICAL = 3;
ALERT_TYPE_ERROR = 4;
ALERT_TYPE_FATAL = 5;
ALERT_TYPE_MODE_CHANGE = 6;
}
enum AlertStatus {
ALERT_STATUS_UNSPECIFIED = 0; // Unset enum
ALERT_STATUS_ACTIVE = 1;
ALERT_STATUS_ACKNOWLEDGE = 2;
ALERT_STATUS_REJECT = 3;
ALERT_STATUS_IGNORE = 4;
ALERT_STATUS_CLEAR = 5;
}
enum DiscretePriority {
DISCRETE_PRIORITY_UNSPECIFIED = 0; // Alert priority not set
DISCRETE_PRIORITY_LOW = 1; // Low alert priority
DISCRETE_PRIORITY_MEDIUM = 2; // Medium alert priority
DISCRETE_PRIORITY_HIGH = 3; // High alert priority
}
}
// [END messages]