// Copyright 2016 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";
option optimize_for = LITE_RUNTIME;

package imageloader;

message ImageCommand {
  oneof op {
    MountCommand mount_command = 1;
    UnmountAllCommand unmount_all_command = 2;
    UnmountCommand unmount_command = 3;
  }
}

message MountCommand {
  enum FileSystem {
    SQUASH = 1;
    EXT4 = 2;
    EXT2 = 3;
  }
  required string mount_path = 2;
  required string table = 3;
  required FileSystem fs_type = 4 [default = SQUASH];
}

message UnmountAllCommand {
  required bool dry_run = 5 [default = true];
  required string unmount_rootpath = 6;
}

message UnmountCommand {
  required string unmount_path = 7;
}

message CommandResponse {
  required bool success = 1 [default = false];
  // |paths| are only set for response of UnmountAllCommand: paths that can be
  // unmounted.
  repeated string paths = 2;
}
