// Copyright (c) 2022 Boston Dynamics, Inc.  All rights reserved.
//
// Downloading, reproducing, distributing or otherwise using the SDK Software
// is subject to the terms and conditions of the Boston Dynamics Software
// Development Kit License (20191101-BDSDK-SL).

syntax = "proto3";

package bosdyn.api;

option java_outer_classname = "DataAcquisitionPluginServiceProto";

import "bosdyn/api/data_acquisition.proto";


// The DataAcquisitionPluginService is a gRPC service that a payload developer implements to retrieve
// data from a sensor (or more generally perform some payload action) and optionally store that data
// on the robot via the DataAcquisitionStore service.
service DataAcquisitionPluginService {
    // Trigger a data acquisition to save metadata and non-image data to the data buffer.
    // Sent by the main DAQ as a result of a data acquisition request from the tablet or a client.
    rpc AcquirePluginData(AcquirePluginDataRequest) returns (AcquirePluginDataResponse);

    // Query the status of a data acquisition.
    rpc GetStatus(GetStatusRequest) returns (GetStatusResponse);

    // Get information from a DAQ service; lists acquisition capabilities.
    rpc GetServiceInfo(GetServiceInfoRequest) returns (GetServiceInfoResponse);

    // Cancel an in-progress data acquisition.
    rpc CancelAcquisition(CancelAcquisitionRequest) returns (CancelAcquisitionResponse);
}