`sig
type 'rw t
type vol_type = File | Block
type vol_delete_flags = Normal | Zeroed
type vol_info = {
typ : Libvirt.Volume.vol_type;
capacity : int64;
allocation : int64;
}
val lookup_by_name : 'a Libvirt.Pool.t -> string -> 'a Libvirt.Volume.t
val lookup_by_key : 'a Libvirt.Connect.t -> string -> 'a Libvirt.Volume.t
val lookup_by_path : 'a Libvirt.Connect.t -> string -> 'a Libvirt.Volume.t
val pool_of_volume : 'a Libvirt.Volume.t -> 'a Libvirt.Pool.t
val get_name : [ `R ] Libvirt.Volume.t -> string
val get_key : [ `R ] Libvirt.Volume.t -> string
val get_path : [ `R ] Libvirt.Volume.t -> string
val get_info : [ `R ] Libvirt.Volume.t -> Libvirt.Volume.vol_info
val get_xml_desc : [ `R ] Libvirt.Volume.t -> Libvirt.xml
val create_xml : [> `W ] Libvirt.Pool.t -> Libvirt.xml -> unit
val delete :
[> `W ] Libvirt.Volume.t -> Libvirt.Volume.vol_delete_flags -> unit
val free : [> `R ] Libvirt.Volume.t -> unit
external const : [> `R ] Libvirt.Volume.t -> Libvirt.ro Libvirt.Volume.t
= "%identity"
end`