| // Copyright 2022 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package lvmd; |
| option go_package = "go.chromium.org/chromiumos/system_api/lvmd_proto"; |
| |
| // Encapsulates information about an LVM physical volume. |
| message PhysicalVolume { |
| string device_path = 1; |
| } |
| |
| // Encapsulates information about an LVM volume group. |
| message VolumeGroup { |
| string name = 1; |
| } |
| |
| // Encapsulates information about an LVM thinpool. |
| message Thinpool { |
| VolumeGroup volume_group = 1; |
| string name = 2; |
| int64 total_bytes = 3; |
| int64 free_bytes = 4; |
| } |
| |
| // Encapsulates logical volume configuration information. |
| message LogicalVolumeConfiguration { |
| string name = 1; |
| |
| // Size is in MiB. |
| int64 size = 2; |
| } |
| |
| // Encapsulates the request into CreateLogicalVolumes API. |
| message CreateLogicalVolumesRequest { |
| // Encapsulates the info needed to create a single logical volume. |
| message LogicalVolumeInfo { |
| Thinpool thinpool = 1; |
| LogicalVolumeConfiguration lv_config = 2; |
| } |
| repeated LogicalVolumeInfo logical_volume_infos = 1; |
| } |
| |
| // Encapsulates the response from CreateLogicalVolumes API. |
| // Note: Use a proto in case response need to be expanded/tweaked without |
| // breaking callers of the API. |
| message CreateLogicalVolumesResponse { |
| LogicalVolumeList logical_volume_list = 1; |
| } |
| |
| // Encapsulates the request into RemoveLogicalVolumes API. |
| message RemoveLogicalVolumesRequest { |
| LogicalVolumeList logical_volume_list = 1; |
| } |
| |
| // Encapsulates the response from RemoveLogicalVolumes API. |
| // Note: Use a proto in case response need to be expanded/tweaked without |
| // breaking callers of the API. |
| message RemoveLogicalVolumesResponse { |
| LogicalVolumeList logical_volume_list = 1; |
| } |
| |
| // Encapsulates information about an LVM logical volume. |
| message LogicalVolume { |
| VolumeGroup volume_group = 1; |
| string name = 2; |
| string path = 3; |
| |
| // Size in MiB, or -1 for error. |
| int64 size = 4; |
| } |
| |
| // Holds a list of LVM logical volumes. |
| message LogicalVolumeList { |
| repeated LogicalVolume logical_volume = 1; |
| } |