blob: 84b3a987d75e3422729c895f2f0b27d99fb31772 [file] [log] [blame]
edition = "2023";
package milotic_hft;
import "identifier.proto";
message SubscriptionPolicy {
enum ConfigurationType {
CONFIGURATION_TYPE_UNSPECIFIED = 0;
CONFIGURATION_TYPE_CONFIGURE_ALL_RESOURCES = 1;
CONFIGURATION_TYPE_CONFIGURE_SPECIFIC_RESOURCES = 2;
}
enum ResourceType {
RESOURCE_TYPE_UNSPECIFIED = 0;
RESOURCE_TYPE_SENSOR = 1;
RESOURCE_TYPE_FRU = 2;
}
ConfigurationType configuration_type = 1;
ResourceType resource_type = 2;
}
message SubscriptionParams {
// The interval between two consecutive batches of readings.
// If not set, the default sampling interval is implementation defined.
int32 sampling_interval_ms = 1;
// The interval between two consecutive batches of readings.
//
// Note: We purposely avoid using batch_size as a way to control the export
// interval. This is because different data sources may have different
// collection mechanics and if we need to batch data across multiple data
// sources, we would need a complex synchronization mechanism to ensure that
// the batches are exported at the same time.
//
// With the export interval, we can simply wait for the specified amount of
// time between two consecutive batch exports and get new data since the last
// export.
int32 export_interval_ms = 2;
// The number of batches to export before cancelling the subscription.
// If not set, the subscription will continue until explicitly cancelled.
int32 num_batches = 3;
// The identifiers of the resources to subscribe to.
repeated Identifier identifiers = 4;
SubscriptionPolicy subscription_policy = 5;
}