syntax = "proto2";

import "google/protobuf/wrappers.proto";

message CreateOpts {
  optional int32 maxBufferedMessages = 3 [default = 10000];
}

message ConnectOps {
  optional bool cleansession = 1 [default = true];
  optional int32 keepAliveInterval = 2 [default = 30];
  optional bool automaticReconnect = 3 [default = true];
  optional int32 minRetryInterval = 4 [default = 3];
  optional int32 maxRetryInterval = 5 [default = 10];
}

message SendMessageEtc {
  required string topic = 1;
  optional int32 qos = 2 [default = 1];
}

message SubscribeEtc {
  required string topic = 1;
  optional int32 qos = 2 [default = 1];
}

message MqttAsyncConfig {
  optional string address = 1 [default = "mqtt://127.0.0.1:1883"];
  optional string client_id = 2 [default = "Auto"];
  optional CreateOpts create_opts = 3;
  optional ConnectOps connect_ops = 4;
  repeated SendMessageEtc sendMessage = 5;
  repeated SubscribeEtc subscribe = 6;
}

