syntax = "proto3";

import 'pw_protobuf_protos/common.proto';

package chip.rpc;

// This may eventually contain more attributes.
message BooleanStateState {
  bool state_value = 1;
}

message BooleanStateSetRequest {
  uint32 endpoint_id = 1;
  bool state_value = 2;
}

message BooleanStateSetResponse {
  uint64 event_number = 1;
}

message BooleanStateGetRequest {
  uint32 endpoint_id = 1;
}

message BooleanStateGetResponse {
  BooleanStateState state = 1;
}

service BooleanState {
  // Set will return generated event number (caused by change) if all supported fields are successfully applied, any
  // unsupported fields will be ignored.
  rpc Set(BooleanStateSetRequest) returns (BooleanStateSetResponse){}

  // Get will populate all of the supported boolean state cluster state fields
  // with the current values.
  rpc Get(BooleanStateGetRequest) returns (BooleanStateGetResponse){}
}
