sig
  type 'rw t
  type pool_state = Inactive | Building | Running | Degraded | Inaccessible
  type pool_build_flags = New | Repair | Resize
  type pool_delete_flags = Normal | Zeroed
  type pool_info = {
    state : Libvirt.Pool.pool_state;
    capacity : int64;
    allocation : int64;
    available : int64;
  }
  val lookup_by_name : 'Libvirt.Connect.t -> string -> 'Libvirt.Pool.t
  val lookup_by_uuid :
    'Libvirt.Connect.t -> Libvirt.uuid -> 'Libvirt.Pool.t
  val lookup_by_uuid_string :
    'Libvirt.Connect.t -> string -> 'Libvirt.Pool.t
  val create_xml :
    [> `W ] Libvirt.Connect.t -> Libvirt.xml -> Libvirt.rw Libvirt.Pool.t
  val define_xml :
    [> `W ] Libvirt.Connect.t -> Libvirt.xml -> Libvirt.rw Libvirt.Pool.t
  val build : [> `W ] Libvirt.Pool.t -> Libvirt.Pool.pool_build_flags -> unit
  val undefine : [> `W ] Libvirt.Pool.t -> unit
  val create : [> `W ] Libvirt.Pool.t -> unit
  val destroy : [> `W ] Libvirt.Pool.t -> unit
  val delete : [> `W ] Libvirt.Pool.t -> unit
  val free : [> `R ] Libvirt.Pool.t -> unit
  val refresh : [ `R ] Libvirt.Pool.t -> unit
  val get_name : [ `R ] Libvirt.Pool.t -> string
  val get_uuid : [ `R ] Libvirt.Pool.t -> Libvirt.uuid
  val get_uuid_string : [ `R ] Libvirt.Pool.t -> string
  val get_info : [ `R ] Libvirt.Pool.t -> Libvirt.Pool.pool_info
  val get_xml_desc : [ `R ] Libvirt.Pool.t -> Libvirt.xml
  val get_autostart : [ `R ] Libvirt.Pool.t -> bool
  val set_autostart : [> `W ] Libvirt.Pool.t -> bool -> unit
  val num_of_volumes : [ `R ] Libvirt.Pool.t -> int
  val list_volumes : [ `R ] Libvirt.Pool.t -> int -> string array
  external const : [> `R ] Libvirt.Pool.t -> Libvirt.ro Libvirt.Pool.t
    = "%identity"
end