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