// 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; }