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

import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";

option go_package = "bosdyn/api";
option java_outer_classname = "ParameterProto";

// A generic parameter message used by the robot state service to describe different,
// parameterized aspects of the robot.
message Parameter {
    // Name of parameter.
    string label = 1;

    // Units of parameter value.
    string units = 2;

    oneof values {
        // Value of a countable measure.
        int64 int_value = 3;

        // Value of a continuous measure.
        double float_value = 4;

        // A point in time.
        google.protobuf.Timestamp timestamp = 5;

        // A time duration.
        google.protobuf.Duration duration = 6;

        // Value as a string.
        string string_value = 7;

        // Value as true/false.
        bool bool_value = 8;

        // Unsigned integer
        uint64 uint_value = 10;
    }

    // Description of the parameter or its value.
    string notes = 9;
}
