sig
  type 'rw t
  type secret_usage_type = NoType | Volume | Ceph | ISCSI | TLS
  val lookup_by_uuid :
    'Libvirt.Connect.t -> Libvirt.uuid -> 'Libvirt.Secret.t
  val lookup_by_uuid_string :
    'Libvirt.Connect.t -> string -> 'Libvirt.Secret.t
  val lookup_by_usage :
    'Libvirt.Connect.t ->
    Libvirt.Secret.secret_usage_type -> string -> 'Libvirt.Secret.t
  val define_xml :
    [> `W ] Libvirt.Connect.t -> Libvirt.xml -> Libvirt.rw Libvirt.Secret.t
  val get_uuid : [> `R ] Libvirt.Secret.t -> Libvirt.uuid
  val get_uuid_string : [> `R ] Libvirt.Secret.t -> string
  val get_usage_type :
    [> `R ] Libvirt.Secret.t -> Libvirt.Secret.secret_usage_type
  val get_usage_id : [> `R ] Libvirt.Secret.t -> string
  val get_xml_desc : [> `R ] Libvirt.Secret.t -> Libvirt.xml
  val set_value : [> `W ] Libvirt.Secret.t -> bytes -> unit
  val get_value : [> `R ] Libvirt.Secret.t -> bytes
  val undefine : [> `W ] Libvirt.Secret.t -> unit
  val free : [> `R ] Libvirt.Secret.t -> unit
  external const : [> `R ] Libvirt.Secret.t -> Libvirt.ro Libvirt.Secret.t
    = "%identity"
end