// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package reporting;
import "components/reporting/proto/synced/record_constants.proto";
import "components/reporting/proto/synced/status.proto";
// Information about records being removed from a storage queue.
message StorageDequeue {
optional int64 sequencing_id = 1; // required
optional int64 records_count = 2; // required
}
// Information about records being added to a storage queue.
message StorageEnqueue {
optional int64 sequencing_id = 1; // required
}
// Data about a record being added or removed from a storage queue
message StorageQueueAction {
oneof action {
StorageDequeue storage_dequeue = 1;
StorageEnqueue storage_enqueue = 2;
}
optional Priority priority = 3; // required
optional StatusProto status = 4; // OK if absent.
}
// Data about the EnqueueRecord dBus call.
message EnqueueRecordCall {
optional Priority priority = 1; // required
optional Destination destination = 2; // required
optional StatusProto status = 3; // OK if absent.
}
// Data about the FlushPriority dBus call.
message FlushPriorityCall {
optional Priority priority = 1; // required
optional StatusProto status = 2; // OK if absent.
}
// Single upload record item.
message UploadRecordItem {
optional int64 sequencing_id = 1; // required
}
// Single upload gap item.
message UploadGapItem {
optional int64 sequencing_id = 1; // required
optional int64 count = 2; // required
}
// Single upload item.
message UploadItem {
oneof item {
UploadRecordItem record = 1;
UploadGapItem gap = 2;
}
}
// Data about the UploadEncryptedRecord dBus call.
message UploadEncryptedRecordCall {
repeated UploadItem items = 1;
optional string upload_reason = 2; // required
optional Priority priority = 3; // required
optional StatusProto status = 4; // OK if absent.
}
// Data about the ConfirmRecordUpload dBus call.
message ConfirmRecordUploadCall {
optional int64 sequencing_id = 1; // required
optional bool force_confirm = 2;
optional Priority priority = 3; // required
optional StatusProto status = 4; // OK if absent.
}
// Data about a blocked record.
message BlockedRecordCall {
optional Priority priority = 1; // required
optional Destination destination = 2; // required
}
// Data about the list of blocked destinations received from the server.
message BlockedDestinationsUpdatedCall {
repeated Destination destinations = 1; // required
}
message HealthDataHistory {
oneof record {
EnqueueRecordCall enqueue_record_call = 1;
FlushPriorityCall flush_priority_call = 2;
UploadEncryptedRecordCall upload_encrypted_record_call = 3;
ConfirmRecordUploadCall confirm_record_upload_call = 4;
StorageQueueAction storage_queue_action = 5;
BlockedRecordCall blocked_record_call = 7;
BlockedDestinationsUpdatedCall blocked_destinations_updated_call = 8;
}
optional int64 timestamp_seconds = 6; // required
}
// Aggregate health data of the ERP.
message ERPHealthData {
repeated HealthDataHistory history = 1; // required
}