blob: e5835460b95677bc2cbf296fb006f000aefb48dc [file] [log] [blame]
syntax = "proto3";
option go_package = "github.com/opencord/voltha/protos/go/voltha";
package voltha;
import "meta.proto";
import "google/api/annotations.proto";
message ConfigEventType {
enum ConfigEventType {
add = 0; // A new config has been added
remove = 1; // A config has been removed
update = 2; // A config has been updated
}
}
message ConfigEvent {
ConfigEventType.ConfigEventType type = 1;
string hash = 2; // hash for this change, can be used for quick lookup
string data = 3; // the actual new data, in json format
}
message KpiEventType {
enum KpiEventType {
slice = 0; // slice: a set of path/metric data for same time-stamp
ts = 1; // time-series: array of data for same metric
}
}
/*
* Struct to convey a dictionary of metric->value pairs. Typically used in
* pure shared-timestamp or shared-timestamp + shared object prefix situations.
*/
message MetricValuePairs {
// Metric / value pairs.
map<string, float> metrics = 1;
}
message KpiEvent {
KpiEventType.KpiEventType type = 1;
// Fields used when for slice:
float ts = 2; // UTC time-stamp of data in slice mode (seconds since epoc)
map<string, MetricValuePairs> prefixes = 3;
}
/*
* Identify to the area of the system impacted by the alarm
*/
message AlarmEventType {
enum AlarmEventType {
COMMUNICATION = 0;
ENVIRONMENT = 1;
EQUIPMENT = 2;
SERVICE = 3;
PROCESSING = 4;
SECURITY = 5;
}
}
/*
* Identify to the functional category originating the alarm
*/
message AlarmEventCategory {
enum AlarmEventCategory {
PON = 0;
OLT = 1;
ONT = 2;
}
}
/*
* Active state of the alarm
*/
message AlarmEventState {
enum AlarmEventState {
RAISED = 0;
CLEARED = 1;
}
}
/*
* Identify the overall impact of the alarm on the system
*/
message AlarmEventSeverity {
enum AlarmEventSeverity {
INDETERMINATE = 0;
WARNING = 1;
MINOR = 2;
MAJOR = 3;
CRITICAL = 4;
}
}
/*
*
*/
message AlarmEvent {
// Unique ID for this alarm. e.g. voltha.some_olt.1234
string id = 1;
// Refers to the area of the system impacted by the alarm
AlarmEventType.AlarmEventType type = 2;
// Refers to functional category of the alarm
AlarmEventCategory.AlarmEventCategory category = 3;
// Current active state of the alarm
AlarmEventState.AlarmEventState state = 4;
// Overall impact of the alarm on the system
AlarmEventSeverity.AlarmEventSeverity severity = 5;
// Timestamp at which the alarm was first raised
float raised_ts = 6;
// Timestamp at which the alarm was reported
float reported_ts = 7;
// Timestamp at which the alarm has changed since it was raised
float changed_ts = 8;
// Identifier of the originating resource of the alarm
string resource_id = 9;
// Textual explanation of the alarm
string description = 10;
// Key/Value storage for extra information that may give context to the alarm
map<string, string> context = 11;
}