blob: 28f3e7e3d893c6c77721d3cc53118cdcbeb524ee [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// gRPC API exposed by the diagnostics_processor daemon. Normally the consumer
// of the API is the diagnosticsd daemon.
syntax = "proto3";
package diagnostics.grpc_api;
service DiagnosticsProcessor {
// Called when a message is sent by the diagnostics UI extension (hosted by
// the browser).
rpc HandleMessageFromUi(HandleMessageFromUiRequest)
returns (HandleMessageFromUiResponse) {}
// Called when the diagnosticsd daemon received EC event.
rpc HandleEcNotification(HandleEcNotificationRequest)
returns (HandleEcNotificationResponse) {}
}
// Parameters for the HandleMessageFromUi RPC.
message HandleMessageFromUiRequest {
// Message contents, as sent by the diagnostics UI extension. Should be a
// valid JSON string.
string json_message = 1;
}
// Return value of the HandleMessageFromUi RPC.
message HandleMessageFromUiResponse {
// Response message contents, as sent by the diagnostics_processor daemon.
// When set, should be a valid JSON string.
string response_json_message = 1;
}
// Parameters for the HandleEcNotification RPC.
message HandleEcNotificationRequest {
// EC notification type.
//
// |type| value is located from 0x0000 to 0xFFFF, i.e. only 16 bits used.
uint32 type = 1;
// EC notification payload.
//
// Originally, EC driver provides |uint16_t| data array which we encode to
// |payload| (i.e. |uint8_t| array) using little-endian format.
// For example, [0x0102, 0x1314, 0x2526] will be represented as
// [0x02, 0x01, 0x14, 0x13, 0x26, 0x25] payload.
//
// |payload| size does not exceed 12 bytes.
bytes payload = 2;
}
// Return value of the HandleEcNotification RPC.
message HandleEcNotificationResponse {}