message Request {  enum ConfigFormat {  CURLY = 0;  JSON = 1;  }  enum OutputFormat {  OutPlain = 0;  OutJSON = 1;  }  message Status {  }  message SetupSession {  optional string ClientApplication = 1;  optional int32 OnBehalfOf = 2;  }  message Set {  repeated string Path = 1;  optional bool Ephemeral = 3;   }  message Delete {  repeated string Path = 1;  }  message Rename {  repeated string EditLevel = 1;  required string From = 2;  required string To = 3;  }  message Copy {  repeated string EditLevel = 1;  required string From = 2;  required string To = 3;  }  message Comment {  repeated string Path = 1;  required string Comment = 2;  }  message Commit {  optional bool Confirm = 1;  optional int32 ConfirmTimeout = 2;  optional string Comment = 3;  }  message Rollback {  required int32 Revision = 1;  }  message Load {  required string Location = 1;  optional ConfigFormat format = 2;  }  message Merge {  required string Location = 1;  optional ConfigFormat format = 2;  }  message Save {  required string Location = 1;  optional ConfigFormat format = 2;  }  message ShowConfig {  repeated string Path = 1;  optional ConfigFormat format = 2;  }  message Exists {  repeated string Path = 1;  }  message GetValue {  repeated string Path = 1;  optional OutputFormat output_format = 2;  }  message GetValues {  repeated string Path = 1;  optional OutputFormat output_format = 2;  }  message ListChildren {  repeated string Path = 1;  optional OutputFormat output_format = 2;  }  message RunOpMode {  repeated string Path = 1;  optional OutputFormat output_format = 2;  }  message Confirm {  }  message EnterConfigurationMode {  required bool Exclusive = 1;  required bool OverrideExclusive = 2;  }  message ExitConfigurationMode {  }  oneof msg {  Status status = 1;  SetupSession setup_session = 2;  Set set = 3;  Delete delete = 4;  Rename rename = 5;  Copy copy = 6;  Comment comment = 7;  Commit commit = 8;  Rollback rollback = 9;  Merge merge = 10;  Save save = 11;  ShowConfig show_config = 12;  Exists exists = 13;  GetValue get_value = 14;  GetValues get_values = 15;  ListChildren list_children = 16;  RunOpMode run_op_mode = 17;  Confirm confirm = 18;  EnterConfigurationMode configure = 19;  ExitConfigurationMode exit_configure = 20;  string teardown = 21;  }  } message RequestEnvelope {  optional string token = 1;  required Request request = 2; } enum Status {  SUCCESS = 0;  FAIL = 1;  INVALID_PATH = 2;  INVALID_VALUE = 3;  COMMIT_IN_PROGRESS = 4;  CONFIGURATION_LOCKED = 5;  INTERNAL_ERROR = 6;  PERMISSION_DENIED = 7;  PATH_ALREADY_EXISTS = 8; } message Response {  required Status status = 1;  optional string output = 2;  optional string error = 3;  optional string warning = 4; }