syntax="proto3";
package eos.console;

message ConvertProto {
  message IdentifierProto {
    oneof Identifier {
      uint64 FileId = 1;
      uint64 ContainerId = 2;
      string Path = 3;
    }
  }

  message ConversionProto {
    string layout = 1;
    uint32 replica = 2;
    string space = 3;
    string placement = 4;
    string checksum = 5;
  }

  message ActionProto {
    enum Action {
      ENABLE  = 0;
      DISABLE = 1;
    }
    Action action = 1;
  }

  message StatusProto {

  }

  message FileProto {
    IdentifierProto identifier = 1;
    ConversionProto conversion = 2;
  }

  message RuleProto {
    IdentifierProto identifier = 1;
    ConversionProto conversion = 2;
  }

  message ConfigProto {
    uint32 maxthreads = 1;
    uint32 maxqueuesize = 2;
  }

  message ListProto {
    string type = 1;
  }

  message ClearProto {
    string type = 1;
  }

  oneof subcmd {
    ActionProto action = 1;
    StatusProto status = 2;
    FileProto file = 3;
    RuleProto rule = 4;
    ConfigProto config = 5;
    ListProto list = 6;
    ClearProto clear = 7;
  }
}
