// Copyright 2017 Intel Corporation
//
// Licensed 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.
// -----------------------------------------------------------------------------
syntax = "proto3";
message Event {
// Used to subscribe to events and servers as a hint for how to deserialize
// event_data and what pairs to expect in attributes.
string event_type = 1;
// Transparent data defined by the event_type.
message Attribute {
string key = 1;
string value = 2;
}
repeated Attribute attributes = 2;
// Opaque data defined by the event_type.
bytes data = 3;
}
message EventList {
repeated Event events = 1;
}
message EventFilter {
// EventFilter is used when subscribing to events to limit the events
// received within a given event type. See
// validator/server/events/subscription.py for further explanation.
string key = 1;
string match_string = 2;
enum FilterType {
FILTER_TYPE_UNSET = 0;
SIMPLE_ANY = 1;
SIMPLE_ALL = 2;
REGEX_ANY = 3;
REGEX_ALL = 4;
}
FilterType filter_type = 3;
}
message EventSubscription {
// EventSubscription is used when subscribing to events to specify the type
// of events being subscribed to, along with any additional filters. See
// validator/server/events/subscription.py for further explanation.
string event_type = 1;
repeated EventFilter filters = 2;
}