Either create or append to existing docstring, the version (git tag)
that a given typedef was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victort...@redhat.com>
---
 include/libvirt/libvirt-domain-checkpoint.h |  34 +-
 include/libvirt/libvirt-domain-snapshot.h   |  40 +-
 include/libvirt/libvirt-domain.h            | 734 ++++++++++++++++++--
 include/libvirt/libvirt-event.h             |   3 +
 include/libvirt/libvirt-host.h              | 120 +++-
 include/libvirt/libvirt-interface.h         |  25 +-
 include/libvirt/libvirt-network.h           |  77 +-
 include/libvirt/libvirt-nodedev.h           |  22 +-
 include/libvirt/libvirt-nwfilter.h          |  25 +-
 include/libvirt/libvirt-secret.h            |  36 +-
 include/libvirt/libvirt-storage.h           | 133 +++-
 include/libvirt/libvirt-stream.h            |  18 +
 include/libvirt/virterror.h                 |  19 +
 13 files changed, 1212 insertions(+), 74 deletions(-)

diff --git a/include/libvirt/libvirt-domain-checkpoint.h 
b/include/libvirt/libvirt-domain-checkpoint.h
index a59578b857..5a53717175 100644
--- a/include/libvirt/libvirt-domain-checkpoint.h
+++ b/include/libvirt/libvirt-domain-checkpoint.h
@@ -34,6 +34,9 @@
  * a domain.  A checkpoint is useful for tracking which portions of the
  * domain disks have been altered since a point in time, but by itself does
  * not allow reverting back to that point in time.
+ *
+ * Since: v5.2.0
+ *
  */
 typedef struct _virDomainCheckpoint virDomainCheckpoint;
 
@@ -43,6 +46,9 @@ typedef struct _virDomainCheckpoint virDomainCheckpoint;
  * A virDomainCheckpointPtr is pointer to a virDomainCheckpoint
  * private structure, and is the type used to reference a domain
  * checkpoint in the API.
+ *
+ * Since: v5.2.0
+ *
  */
 typedef virDomainCheckpoint *virDomainCheckpointPtr;
 
@@ -50,6 +56,12 @@ const char 
*virDomainCheckpointGetName(virDomainCheckpointPtr checkpoint);
 virDomainPtr virDomainCheckpointGetDomain(virDomainCheckpointPtr checkpoint);
 virConnectPtr virDomainCheckpointGetConnect(virDomainCheckpointPtr checkpoint);
 
+/**
+ * virDomainCheckpointCreateFlags:
+ *
+ * Since: v5.6.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_CHECKPOINT_CREATE_REDEFINE    = (1 << 0), /* Restore or alter
                                                             metadata (Since: 
v5.6.0) */
@@ -65,7 +77,12 @@ typedef enum {
 virDomainCheckpointPtr virDomainCheckpointCreateXML(virDomainPtr domain,
                                                     const char *xmlDesc,
                                                     unsigned int flags);
-
+/**
+ * virDomainCheckpointXMLFlags:
+ *
+ * Since: v5.6.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_CHECKPOINT_XML_SECURE    = (1 << 0), /* Include sensitive data 
(Since: v5.6.0) */
     VIR_DOMAIN_CHECKPOINT_XML_NO_DOMAIN = (1 << 1), /* Suppress <domain>
@@ -86,7 +103,11 @@ char *virDomainCheckpointGetXMLDesc(virDomainCheckpointPtr 
checkpoint,
  * flag (1<<0) depends on which function it is passed to; but serves
  * to toggle the per-call default of whether the listing is shallow or
  * recursive.  Remaining bits come in groups; if all bits from a group
- * are 0, then that group is not used to filter results.  */
+ * are 0, then that group is not used to filter results.
+ *
+ * Since: v5.6.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_CHECKPOINT_LIST_ROOTS       = (1 << 0), /* Filter by checkpoints
                                                           with no parents, when
@@ -123,7 +144,14 @@ virDomainCheckpointPtr 
virDomainCheckpointLookupByName(virDomainPtr domain,
 virDomainCheckpointPtr virDomainCheckpointGetParent(virDomainCheckpointPtr 
checkpoint,
                                                     unsigned int flags);
 
-/* Delete a checkpoint */
+/**
+ * virDomainCheckpointDeleteFlags:
+ *
+ * Delete a checkpoint
+ *
+ * Since: v5.6.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN      = (1 << 0), /* Also delete 
children (Since: v5.6.0) */
     VIR_DOMAIN_CHECKPOINT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just 
metadata (Since: v5.6.0) */
diff --git a/include/libvirt/libvirt-domain-snapshot.h 
b/include/libvirt/libvirt-domain-snapshot.h
index 5dffabb764..cdf82b29ce 100644
--- a/include/libvirt/libvirt-domain-snapshot.h
+++ b/include/libvirt/libvirt-domain-snapshot.h
@@ -34,6 +34,9 @@
  * a domain.  A snapshot captures the state of the domain at a point in
  * time, with the intent that the guest can be reverted back to that
  * state at a later time.
+ *
+ * Since: v0.8.0
+ *
  */
 typedef struct _virDomainSnapshot virDomainSnapshot;
 
@@ -42,6 +45,9 @@ typedef struct _virDomainSnapshot virDomainSnapshot;
  *
  * A virDomainSnapshotPtr is pointer to a virDomainSnapshot private structure,
  * and is the type used to reference a domain snapshot in the API.
+ *
+ * Since: v0.8.0
+ *
  */
 typedef virDomainSnapshot *virDomainSnapshotPtr;
 
@@ -49,6 +55,12 @@ const char *virDomainSnapshotGetName(virDomainSnapshotPtr 
snapshot);
 virDomainPtr virDomainSnapshotGetDomain(virDomainSnapshotPtr snapshot);
 virConnectPtr virDomainSnapshotGetConnect(virDomainSnapshotPtr snapshot);
 
+/**
+ * virDomainSnapshotCreateFlags:
+ *
+ * Since: v0.9.5
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE    = (1 << 0), /* Restore or alter
                                                           metadata (Since: 
v0.9.5) */
@@ -79,7 +91,12 @@ typedef enum {
 virDomainSnapshotPtr virDomainSnapshotCreateXML(virDomainPtr domain,
                                                 const char *xmlDesc,
                                                 unsigned int flags);
-
+/**
+ * virDomainSnapshotXMLFlags:
+ *
+ * Since: v5.1.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SNAPSHOT_XML_SECURE         = VIR_DOMAIN_XML_SECURE, /* dump 
security sensitive information too (Since: v5.1.0) */
 } virDomainSnapshotXMLFlags;
@@ -98,7 +115,11 @@ char *virDomainSnapshotGetXMLDesc(virDomainSnapshotPtr 
snapshot,
  * of flag (1<<0) depends on which function it is passed to; but serves
  * to toggle the per-call default of whether the listing is shallow or
  * recursive.  Remaining bits come in groups; if all bits from a group are
- * 0, then that group is not used to filter results.  */
+ * 0, then that group is not used to filter results.
+ *
+ * Since: v0.9.5
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SNAPSHOT_LIST_ROOTS       = (1 << 0), /* Filter by snapshots
                                                         with no parents, when
@@ -194,6 +215,12 @@ int virDomainSnapshotIsCurrent(virDomainSnapshotPtr 
snapshot,
 int virDomainSnapshotHasMetadata(virDomainSnapshotPtr snapshot,
                                  unsigned int flags);
 
+/**
+ * virDomainSnapshotRevertFlags:
+ *
+ * Since: v0.9.5
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING = 1 << 0, /* Run after revert (Since: 
v0.9.5) */
     VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED  = 1 << 1, /* Pause after revert (Since: 
v0.9.5) */
@@ -208,7 +235,14 @@ typedef enum {
 int virDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
                               unsigned int flags);
 
-/* Delete a snapshot */
+/**
+ * virDomainSnapshotDeleteFlags:
+ *
+ * Delete a snapshot
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN      = (1 << 0), /* Also delete 
children (Since: v0.8.0) */
     VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just 
metadata (Since: v0.9.5) */
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 01ea2a750f..5654a50c7e 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -32,6 +32,9 @@
  * virDomain:
  *
  * a virDomain is a private structure representing a domain.
+ *
+ * Since: v0.0.1
+ *
  */
 typedef struct _virDomain virDomain;
 
@@ -40,6 +43,9 @@ typedef struct _virDomain virDomain;
  *
  * a virDomainPtr is pointer to a virDomain private structure, this is the
  * type used to reference a domain in the API.
+ *
+ * Since: v0.0.1
+ *
  */
 typedef virDomain *virDomainPtr;
 
@@ -47,6 +53,9 @@ typedef virDomain *virDomainPtr;
  * virDomainState:
  *
  * A domain may be in different states at a given point in time
+ *
+ * Since: v0.0.1
+ *
  */
 typedef enum {
     VIR_DOMAIN_NOSTATE = 0,     /* no state (Since: v0.0.1) */
@@ -71,6 +80,12 @@ typedef enum {
 # endif
 } virDomainState;
 
+/**
+ * virDomainNostateReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_NOSTATE_UNKNOWN = 0, /* (Since: v0.9.2) */
 
@@ -79,6 +94,12 @@ typedef enum {
 # endif
 } virDomainNostateReason;
 
+/**
+ * virDomainRunningReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_RUNNING_UNKNOWN = 0,         /* (Since: v0.9.2) */
     VIR_DOMAIN_RUNNING_BOOTED = 1,          /* normal startup from boot 
(Since: v0.9.2) */
@@ -98,6 +119,12 @@ typedef enum {
 # endif
 } virDomainRunningReason;
 
+/**
+ * virDomainBlockedReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_BLOCKED_UNKNOWN = 0,     /* the reason is unknown (Since: 
v0.9.2) */
 
@@ -106,6 +133,12 @@ typedef enum {
 # endif
 } virDomainBlockedReason;
 
+/**
+ * virDomainPausedReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_PAUSED_UNKNOWN = 0,      /* the reason is unknown (Since: 
v0.9.2) */
     VIR_DOMAIN_PAUSED_USER = 1,         /* paused on user request (Since: 
v0.9.2) */
@@ -127,6 +160,12 @@ typedef enum {
 # endif
 } virDomainPausedReason;
 
+/**
+ * virDomainShutdownReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SHUTDOWN_UNKNOWN = 0,    /* the reason is unknown (Since: 
v0.9.2) */
     VIR_DOMAIN_SHUTDOWN_USER = 1,       /* shutting down on user request 
(Since: v0.9.2) */
@@ -136,6 +175,12 @@ typedef enum {
 # endif
 } virDomainShutdownReason;
 
+/**
+ * virDomainShutoffReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SHUTOFF_UNKNOWN = 0,     /* the reason is unknown (Since: 
v0.9.2) */
     VIR_DOMAIN_SHUTOFF_SHUTDOWN = 1,    /* normal shutdown (Since: v0.9.2) */
@@ -153,6 +198,12 @@ typedef enum {
 # endif
 } virDomainShutoffReason;
 
+/**
+ * virDomainCrashedReason:
+ *
+ * Since: v0.9.2
+ *
+ */
 typedef enum {
     VIR_DOMAIN_CRASHED_UNKNOWN = 0,     /* crashed for unknown reason (Since: 
v0.9.2) */
     VIR_DOMAIN_CRASHED_PANICKED = 1,    /* domain panicked (Since: v1.1.1) */
@@ -162,6 +213,12 @@ typedef enum {
 # endif
 } virDomainCrashedReason;
 
+/**
+ * virDomainPMSuspendedReason:
+ *
+ * Since: v0.9.11
+ *
+ */
 typedef enum {
     VIR_DOMAIN_PMSUSPENDED_UNKNOWN = 0, /* (Since: v0.9.11) */
 
@@ -170,6 +227,12 @@ typedef enum {
 # endif
 } virDomainPMSuspendedReason;
 
+/**
+ * virDomainPMSuspendedDiskReason:
+ *
+ * Since: v1.0.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_PMSUSPENDED_DISK_UNKNOWN = 0, /* (Since: v1.0.0) */
 
@@ -182,6 +245,9 @@ typedef enum {
  * virDomainControlState:
  *
  * Current state of a control interface to the domain.
+ *
+ * Since: v0.9.3
+ *
  */
 typedef enum {
     VIR_DOMAIN_CONTROL_OK = 0,       /* operational, ready to accept commands 
(Since: v0.9.3) */
@@ -202,6 +268,9 @@ typedef enum {
  * virDomainControlErrorReason:
  *
  * Reason for the error state.
+ *
+ * Since: v1.2.14
+ *
  */
 typedef enum {
     VIR_DOMAIN_CONTROL_ERROR_REASON_NONE = 0,     /* server didn't provide a
@@ -223,6 +292,9 @@ typedef enum {
  *
  * Structure filled in by virDomainGetControlInfo and providing details about
  * current state of control interface to a domain.
+ *
+ * Since: v0.9.3
+ *
  */
 typedef struct _virDomainControlInfo virDomainControlInfo;
 struct _virDomainControlInfo {
@@ -238,6 +310,9 @@ struct _virDomainControlInfo {
  * virDomainControlInfoPtr:
  *
  * Pointer to virDomainControlInfo structure.
+ *
+ * Since: v0.9.3
+ *
  */
 typedef virDomainControlInfo *virDomainControlInfoPtr;
 
@@ -258,6 +333,9 @@ typedef virDomainControlInfo *virDomainControlInfoPtr;
  * (whether or not it is running).
  *
  * These enums should not conflict with those of virTypedParameterFlags.
+ *
+ * Since: v0.9.2
+ *
  */
 typedef enum {
     VIR_DOMAIN_AFFECT_CURRENT = 0,      /* Affect current domain state. 
(Since: v0.9.2)  */
@@ -267,12 +345,14 @@ typedef enum {
 } virDomainModificationImpact;
 
 /**
- * virDomainInfoPtr:
+ * virDomainInfo:
  *
  * a virDomainInfo is a structure filled by virDomainGetInfo() and extracting
  * runtime information for a given active Domain
+ *
+ * Since: v0.0.1
+ *
  */
-
 typedef struct _virDomainInfo virDomainInfo;
 
 struct _virDomainInfo {
@@ -287,6 +367,9 @@ struct _virDomainInfo {
  * virDomainInfoPtr:
  *
  * a virDomainInfoPtr is a pointer to a virDomainInfo structure.
+ *
+ * Since: v0.0.1
+ *
  */
 
 typedef virDomainInfo *virDomainInfoPtr;
@@ -296,6 +379,9 @@ typedef virDomainInfo *virDomainInfoPtr;
  *
  * Flags OR'ed together to provide specific behaviour when creating a
  * Domain.
+ *
+ * Since: v0.0.1
+ *
  */
 typedef enum {
     VIR_DOMAIN_NONE               = 0,      /* Default behavior (Since: 
v0.0.1) */
@@ -489,7 +575,7 @@ int     virDomainSetSchedulerParametersFlags (virDomainPtr 
domain,
                                               unsigned int flags);
 
 /**
- * virDomainBlockStats:
+ * virDomainBlockStatsStruct:
  *
  * Block device stats for virDomainBlockStats.
  *
@@ -497,6 +583,9 @@ int     virDomainSetSchedulerParametersFlags (virDomainPtr 
domain,
  * that the hypervisor does not support that statistic.
  *
  * NB. Here 'long long' means 64 bit integer.
+ *
+ * Since: v0.3.3
+ *
  */
 typedef struct _virDomainBlockStats virDomainBlockStatsStruct;
 
@@ -512,6 +601,9 @@ struct _virDomainBlockStats {
  * virDomainBlockStatsPtr:
  *
  * A pointer to a virDomainBlockStats structure
+ *
+ * Since: v0.3.2
+ *
  */
 typedef virDomainBlockStatsStruct *virDomainBlockStatsPtr;
 
@@ -626,7 +718,7 @@ typedef virDomainBlockStatsStruct *virDomainBlockStatsPtr;
 # define VIR_DOMAIN_BLOCK_STATS_ERRS "errs"
 
 /**
- * virDomainInterfaceStats:
+ * virDomainInterfaceStatsStruct:
  *
  * Network interface stats for virDomainInterfaceStats.
  *
@@ -634,6 +726,9 @@ typedef virDomainBlockStatsStruct *virDomainBlockStatsPtr;
  * that the hypervisor does not support that statistic.
  *
  * NB. Here 'long long' means 64 bit integer.
+ *
+ * Since: v0.3.3
+ *
  */
 typedef struct _virDomainInterfaceStats virDomainInterfaceStatsStruct;
 
@@ -652,11 +747,19 @@ struct _virDomainInterfaceStats {
  * virDomainInterfaceStatsPtr:
  *
  * A pointer to a virDomainInterfaceStats structure
+ *
+ * Since: v0.3.2
+ *
  */
 typedef virDomainInterfaceStatsStruct *virDomainInterfaceStatsPtr;
 
 /**
+ * virDomainMemoryStatTags:
+ *
  * Memory Statistics Tags:
+ *
+ * Since: v0.7.5
+ *
  */
 typedef enum {
     /* The total amount of data read from swap space (in kB). (Since: v0.7.5) 
*/
@@ -774,6 +877,12 @@ typedef enum {
 # endif
 } virDomainMemoryStatTags;
 
+/**
+ * virDomainMemoryStatStruct:
+ *
+ * Since: v0.7.5
+ *
+ */
 typedef struct _virDomainMemoryStat virDomainMemoryStatStruct;
 
 struct _virDomainMemoryStat {
@@ -781,10 +890,23 @@ struct _virDomainMemoryStat {
     unsigned long long val;
 };
 
+/**
+ * virDomainMemoryStatPtr:
+ *
+ * Since: v0.7.5
+ *
+ */
 typedef virDomainMemoryStatStruct *virDomainMemoryStatPtr;
 
 
-/* Domain core dump flags. */
+/**
+ * virDomainCoreDumpFlags:
+ *
+ * Domain core dump flags.
+ *
+ * Since: v0.7.5
+ *
+ */
 typedef enum {
     VIR_DUMP_CRASH        = (1 << 0), /* crash after dump (Since: v0.7.5) */
     VIR_DUMP_LIVE         = (1 << 1), /* live dump (Since: v0.7.5) */
@@ -797,6 +919,9 @@ typedef enum {
  * virDomainCoreDumpFormat:
  *
  * Values for specifying different formats of domain core dumps.
+ *
+ * Since: v1.2.3
+ *
  */
 typedef enum {
     VIR_DOMAIN_CORE_DUMP_FORMAT_RAW,          /* dump guest memory in raw 
format (Since: v1.2.3) */
@@ -819,7 +944,14 @@ typedef enum {
 # endif
 } virDomainCoreDumpFormat;
 
-/* Domain migration flags. */
+/**
+ * virDomainMigrateFlags:
+ *
+ * Domain migration flags.
+ *
+ * Since: v0.3.2
+ *
+ */
 typedef enum {
     /* Do not pause the domain during migration. The domain's memory will
      * be transferred to the destination host while the domain is running.
@@ -1369,7 +1501,14 @@ int virDomainMigrateSetCompressionCache(virDomainPtr 
domain,
                                         unsigned long long cacheSize,
                                         unsigned int flags);
 
-/* Domain migration speed flags. */
+/**
+ * virDomainMigrateMaxSpeedFlags:
+ *
+ * Domain migration speed flags.
+ *
+ * Since: v5.1.0
+ *
+ */
 typedef enum {
     /* Set or get maximum speed of post-copy migration. (Since: v5.1.0) */
     VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY = (1 << 0),
@@ -1432,6 +1571,12 @@ virDomainPtr            virDomainLookupByUUID   
(virConnectPtr conn,
 virDomainPtr            virDomainLookupByUUIDString     (virConnectPtr conn,
                                                          const char *uuid);
 
+/**
+ * virDomainShutdownFlagValues:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SHUTDOWN_DEFAULT        = 0,        /* hypervisor choice 
(Since: v0.9.10) */
     VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN = (1 << 0), /* Send ACPI event (Since: 
v0.9.10) */
@@ -1445,6 +1590,12 @@ int                     virDomainShutdown       
(virDomainPtr domain);
 int                     virDomainShutdownFlags  (virDomainPtr domain,
                                                  unsigned int flags);
 
+/**
+ * virDomainRebootFlagValues:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef enum {
     VIR_DOMAIN_REBOOT_DEFAULT        = 0,        /* hypervisor choice (Since: 
v0.9.10) */
     VIR_DOMAIN_REBOOT_ACPI_POWER_BTN = (1 << 0), /* Send ACPI event (Since: 
v0.9.10) */
@@ -1466,6 +1617,9 @@ int                     virDomainDestroy        
(virDomainPtr domain);
  *
  * Flags used to provide specific behaviour to the
  * virDomainDestroyFlags() function
+ *
+ * Since: v0.9.4
+ *
  */
 typedef enum {
     VIR_DOMAIN_DESTROY_DEFAULT   = 0,      /* Default behavior - could lead to 
data loss!! (Since: v0.9.10) */
@@ -1495,9 +1649,13 @@ int                     virDomainPMWakeup       
(virDomainPtr domain,
 
 /**
  * virDomainSaveRestoreFlags:
+ *
  * Flags for use in virDomainSaveFlags(), virDomainManagedSave(),
  * virDomainRestoreFlags(), and virDomainSaveImageDefineXML().  Not all
  * flags apply to all these functions.
+ *
+ * Since: v0.9.4
+ *
  */
 typedef enum {
     VIR_DOMAIN_SAVE_BYPASS_CACHE = 1 << 0, /* Avoid file system cache 
pollution (Since: v0.9.4) */
@@ -1796,7 +1954,14 @@ int     virDomainGetMemoryParameters(virDomainPtr domain,
                                      virTypedParameterPtr params,
                                      int *nparams, unsigned int flags);
 
-/* Memory size modification flags. */
+/**
+ * virDomainMemoryModFlags:
+ *
+ * Memory size modification flags.
+ *
+ * Since: v1.0.0
+ *
+ */
 typedef enum {
     /* See virDomainModificationImpact for these flags. (Since: v1.0.0)  */
     VIR_DOMAIN_MEM_CURRENT = VIR_DOMAIN_AFFECT_CURRENT,
@@ -1814,6 +1979,9 @@ typedef enum {
  * virDomainNumatuneMemMode:
  * Representation of the various modes in the <numatune> element of
  * a domain.
+ *
+ * Since: v0.9.9
+ *
  */
 typedef enum {
     VIR_DOMAIN_NUMATUNE_MEM_STRICT      = 0, /* (Since: v0.9.9) */
@@ -1879,7 +2047,12 @@ int                     virDomainSetMemoryStatsPeriod 
(virDomainPtr domain,
 int                     virDomainGetMaxVcpus    (virDomainPtr domain);
 int                     virDomainGetSecurityLabel (virDomainPtr domain,
                                                    virSecurityLabelPtr 
seclabel);
-
+/**
+ * virDomainGetHostnameFlags:
+ *
+ * Since: v6.1.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_GET_HOSTNAME_LEASE = (1 << 0), /* Parse DHCP lease file (Since: 
v6.1.0) */
     VIR_DOMAIN_GET_HOSTNAME_AGENT = (1 << 1), /* Query qemu guest agent 
(Since: v6.1.0) */
@@ -1890,6 +2063,12 @@ char *                  virDomainGetHostname    
(virDomainPtr domain,
 int                     virDomainGetSecurityLabelList (virDomainPtr domain,
                                                        virSecurityLabelPtr* 
seclabels);
 
+/**
+ * virDomainMetadataType:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef enum {
     VIR_DOMAIN_METADATA_DESCRIPTION = 0, /* Operate on <description> (Since: 
v0.9.10) */
     VIR_DOMAIN_METADATA_TITLE       = 1, /* Operate on <title> (Since: 
v0.9.10) */
@@ -1917,12 +2096,15 @@ virDomainGetMetadata(virDomainPtr domain,
 /*
  * XML domain description
  */
+
 /**
  * virDomainXMLFlags:
  *
  * Flags available for virDomainGetXMLDesc
+ *
+ * Since: v0.3.3
+ *
  */
-
 typedef enum {
     VIR_DOMAIN_XML_SECURE       = (1 << 0), /* dump security sensitive 
information too (Since: v0.3.3) */
     VIR_DOMAIN_XML_INACTIVE     = (1 << 1), /* dump inactive domain 
information (Since: v0.3.3) */
@@ -1930,6 +2112,12 @@ typedef enum {
     VIR_DOMAIN_XML_MIGRATABLE   = (1 << 3), /* dump XML suitable for migration 
(Since: v1.0.0) */
 } virDomainXMLFlags;
 
+/**
+ * virDomainSaveImageXMLFlags:
+ *
+ * Since: v5.1.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_SAVE_IMAGE_XML_SECURE         = VIR_DOMAIN_XML_SECURE, /* dump 
security sensitive information too (Since: v5.1.0) */
 } virDomainSaveImageXMLFlags;
@@ -2055,6 +2243,9 @@ int                     virDomainBlockPeek (virDomainPtr 
dom,
  * virDomainBlockResizeFlags:
  *
  * Flags available for virDomainBlockResize().
+ *
+ * Since: v0.9.11
+ *
  */
 typedef enum {
     VIR_DOMAIN_BLOCK_RESIZE_BYTES = 1 << 0, /* size in bytes instead of KiB 
(Since: v0.9.11) */
@@ -2088,8 +2279,18 @@ int                     virDomainBlockResize 
(virDomainPtr dom,
  *       * capacity: logical size from qcow2 header
  *       * allocation: highest qcow extent written for an active domain
  *       * physical: size of the block device container
+ *
+ * Since: v0.8.1
+ *
  */
 typedef struct _virDomainBlockInfo virDomainBlockInfo;
+
+/**
+ * virDomainBlockInfoPtr:
+ *
+ * Since: v0.8.1
+ *
+ */
 typedef virDomainBlockInfo *virDomainBlockInfoPtr;
 struct _virDomainBlockInfo {
     unsigned long long capacity;   /* logical size in bytes of the
@@ -2116,8 +2317,14 @@ int                     virDomainMemoryStats 
(virDomainPtr dom,
                                               unsigned int nr_stats,
                                               unsigned int flags);
 
-/* Memory peeking flags. */
-
+/**
+ * virDomainMemoryFlags:
+ *
+ * Memory peeking flags.
+ *
+ * Since: v0.4.4
+ *
+ */
 typedef enum {
     VIR_MEMORY_VIRTUAL            = 1 << 0, /* addresses are virtual addresses 
(Since: v0.4.4) */
     VIR_MEMORY_PHYSICAL           = 1 << 1, /* addresses are physical 
addresses (Since: v0.7.0) */
@@ -2129,6 +2336,12 @@ int                     virDomainMemoryPeek 
(virDomainPtr dom,
                                              void *buffer,
                                              unsigned int flags);
 
+/**
+ * virDomainDefineFlags:
+ *
+ * Since: v1.2.12
+ *
+ */
 typedef enum {
     VIR_DOMAIN_DEFINE_VALIDATE = (1 << 0), /* Validate the XML document 
against schema (Since: v1.2.12) */
 } virDomainDefineFlags;
@@ -2144,6 +2357,12 @@ virDomainPtr            virDomainDefineXMLFlags 
(virConnectPtr conn,
                                                  unsigned int flags);
 int                     virDomainUndefine       (virDomainPtr domain);
 
+/**
+ * virDomainUndefineFlagsValues:
+ *
+ * Since: v0.9.4
+ *
+ */
 typedef enum {
     VIR_DOMAIN_UNDEFINE_MANAGED_SAVE       = (1 << 0), /* Also remove any
                                                           managed save (Since: 
v0.9.4) */
@@ -2173,6 +2392,8 @@ int                     virConnectListDefinedDomains 
(virConnectPtr conn,
  * Flags used to tune which domains are listed by virConnectListAllDomains().
  * Note that these flags come in groups; if all bits from a group are 0,
  * then that group is not used to filter results.
+ *
+ * Since: v0.9.13
  */
 typedef enum {
     VIR_CONNECT_LIST_DOMAINS_ACTIVE         = 1 << 0, /* (Since: v0.9.13) */
@@ -2217,9 +2438,13 @@ int                     virDomainSetAutostart   
(virDomainPtr domain,
                                                  int autostart);
 
 /**
- * virVcpuInfo: structure for information about a virtual CPU in a domain.
+ * virVcpuState:
+ *
+ * structure for information about a virtual CPU in a domain.
+ *
+ * Since: v0.1.4
+ *
  */
-
 typedef enum {
     VIR_VCPU_OFFLINE    = 0,    /* the virtual CPU is offline (Since: v0.1.4) 
*/
     VIR_VCPU_RUNNING    = 1,    /* the virtual CPU is running (Since: v0.1.4) 
*/
@@ -2230,11 +2455,23 @@ typedef enum {
 # endif
 } virVcpuState;
 
+/**
+ * virVcpuHostCpuState:
+ *
+ * Since: v6.10.0
+ *
+ */
 typedef enum {
     VIR_VCPU_INFO_CPU_OFFLINE     = -1, /* the vCPU is offline (Since: 
v6.10.0) */
     VIR_VCPU_INFO_CPU_UNAVAILABLE = -2, /* the hypervisor does not expose real 
CPU information (Since: v6.10.0) */
 } virVcpuHostCpuState;
 
+/**
+ * virVcpuInfo:
+ *
+ * Since: v0.1.4
+ *
+ */
 typedef struct _virVcpuInfo virVcpuInfo;
 struct _virVcpuInfo {
     unsigned int number;        /* virtual CPU number */
@@ -2242,9 +2479,23 @@ struct _virVcpuInfo {
     unsigned long long cpuTime; /* CPU time used, in nanoseconds */
     int cpu;                    /* real CPU number, or one of the values from 
virVcpuHostCpuState */
 };
+
+/**
+ * virVcpuInfoPtr:
+ *
+ * Since: v0.1.4
+ *
+ */
 typedef virVcpuInfo *virVcpuInfoPtr;
 
-/* Flags for controlling virtual CPU hot-plugging.  */
+/**
+ * virDomainVcpuFlags:
+ *
+ * Flags for controlling virtual CPU hot-plugging.
+ *
+ * Since: v1.0.0
+ *
+ */
 typedef enum {
     /* See virDomainModificationImpact for these flags. (Since: v1.0.0)  */
     VIR_DOMAIN_VCPU_CURRENT = VIR_DOMAIN_AFFECT_CURRENT,
@@ -2292,11 +2543,22 @@ int                     virDomainGetEmulatorPinInfo 
(virDomainPtr domain,
                                                      unsigned int flags);
 
 /**
- * virIOThreadInfo:
+ * virDomainIOThreadInfo:
  *
  * The data structure for information about all IOThreads in a domain
+ *
+ * Since: v1.2.14
+ *
  */
 typedef struct _virDomainIOThreadInfo virDomainIOThreadInfo;
+
+
+/**
+ * virDomainIOThreadInfoPtr:
+ *
+ * Since: v1.2.14
+ *
+ */
 typedef virDomainIOThreadInfo *virDomainIOThreadInfoPtr;
 struct _virDomainIOThreadInfo {
     unsigned int iothread_id;          /* IOThread ID */
@@ -2493,6 +2755,12 @@ int                     virDomainGetVcpus       
(virDomainPtr domain,
 # define VIR_GET_CPUMAP(cpumaps, maplen, vcpu) (&((cpumaps)[(vcpu) * 
(maplen)]))
 
 
+/**
+ * virDomainDeviceModifyFlags:
+ *
+ * Since: v1.0.0
+ *
+ */
 typedef enum {
     /* See virDomainModificationImpact for these flags. (Since: v1.0.0)  */
     VIR_DOMAIN_DEVICE_MODIFY_CURRENT = VIR_DOMAIN_AFFECT_CURRENT,
@@ -2517,7 +2785,20 @@ int virDomainUpdateDeviceFlags(virDomainPtr domain,
 int virDomainDetachDeviceAlias(virDomainPtr domain,
                                const char *alias, unsigned int flags);
 
+/**
+ * virDomainStatsRecord:
+ *
+ * Since: v1.2.8
+ *
+ */
 typedef struct _virDomainStatsRecord virDomainStatsRecord;
+
+/**
+ * virDomainStatsRecordPtr:
+ *
+ * Since: v1.2.8
+ *
+ */
 typedef virDomainStatsRecord *virDomainStatsRecordPtr;
 struct _virDomainStatsRecord {
     virDomainPtr dom;
@@ -2525,6 +2806,12 @@ struct _virDomainStatsRecord {
     int nparams;
 };
 
+/**
+ * virDomainStatsTypes:
+ *
+ * Since: v1.2.8
+ *
+ */
 typedef enum {
     VIR_DOMAIN_STATS_STATE = (1 << 0), /* return domain state (Since: v1.2.8) 
*/
     VIR_DOMAIN_STATS_CPU_TOTAL = (1 << 1), /* return domain CPU info (Since: 
v1.2.9) */
@@ -2538,6 +2825,12 @@ typedef enum {
     VIR_DOMAIN_STATS_DIRTYRATE = (1 << 9), /* return domain dirty rate info 
(Since: v7.2.0) */
 } virDomainStatsTypes;
 
+/**
+ * virConnectGetAllDomainStatsFlags:
+ *
+ * Since: v1.2.8
+ *
+ */
 typedef enum {
     VIR_CONNECT_GET_ALL_DOMAINS_STATS_ACTIVE = 
VIR_CONNECT_LIST_DOMAINS_ACTIVE, /* (Since: v1.2.8) */
     VIR_CONNECT_GET_ALL_DOMAINS_STATS_INACTIVE = 
VIR_CONNECT_LIST_DOMAINS_INACTIVE, /* (Since: v1.2.8) */
@@ -2881,6 +3174,9 @@ int virDomainSetPerfEvents(virDomainPtr dom,
  * virDomainBlockJobType:
  *
  * Describes various possible block jobs.
+ *
+ * Since: v0.9.4
+ *
  */
 typedef enum {
     /* Placeholder (Since: v0.9.4) */
@@ -2931,6 +3227,9 @@ typedef enum {
  * VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC: Request only, do not wait for completion
  * VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT: Pivot to new file when ending a copy or
  *                                   active commit job
+ *
+ * Since: v0.9.12
+ *
  */
 typedef enum {
     VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC = 1 << 0, /* (Since: v0.9.12) */
@@ -2940,17 +3239,37 @@ typedef enum {
 int virDomainBlockJobAbort(virDomainPtr dom, const char *disk,
                            unsigned int flags);
 
-/* Flags for use with virDomainGetBlockJobInfo */
+/**
+ * virDomainBlockJobInfoFlags:
+ *
+ * Flags for use with virDomainGetBlockJobInfo
+ *
+ * Since: v1.2.9
+ *
+ */
 typedef enum {
     VIR_DOMAIN_BLOCK_JOB_INFO_BANDWIDTH_BYTES = 1 << 0, /* bandwidth in bytes/s
                                                            instead of MiB/s 
(Since: v1.2.9) */
 } virDomainBlockJobInfoFlags;
 
-/* An iterator for monitoring block job operations */
-typedef unsigned long long virDomainBlockJobCursor;
-
-typedef struct _virDomainBlockJobInfo virDomainBlockJobInfo;
-struct _virDomainBlockJobInfo {
+/**
+ * virDomainBlockJobCursor:
+ *
+ * An iterator for monitoring block job operations
+ *
+ * Since: v0.9.4
+ *
+ */
+typedef unsigned long long virDomainBlockJobCursor;
+
+/**
+ * virDomainBlockJobInfo:
+ *
+ * Since: v0.9.4
+ *
+ */
+typedef struct _virDomainBlockJobInfo virDomainBlockJobInfo;
+struct _virDomainBlockJobInfo {
     int type; /* virDomainBlockJobType */
     unsigned long bandwidth; /* either bytes/s or MiB/s, according to flags */
 
@@ -2963,13 +3282,27 @@ struct _virDomainBlockJobInfo {
     virDomainBlockJobCursor cur;
     virDomainBlockJobCursor end;
 };
+
+/**
+ * virDomainBlockJobInfoPtr:
+ *
+ * Since: v0.9.4
+ *
+ */
 typedef virDomainBlockJobInfo *virDomainBlockJobInfoPtr;
 
 int virDomainGetBlockJobInfo(virDomainPtr dom, const char *disk,
                              virDomainBlockJobInfoPtr info,
                              unsigned int flags);
 
-/* Flags for use with virDomainBlockJobSetSpeed */
+/**
+ * virDomainBlockJobSetSpeedFlags:
+ *
+ * Flags for use with virDomainBlockJobSetSpeed
+ *
+ * Since: v1.2.9
+ *
+ */
 typedef enum {
     VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_BYTES = 1 << 0, /* bandwidth in 
bytes/s
                                                             instead of MiB/s 
(Since: v1.2.9) */
@@ -2978,8 +3311,15 @@ typedef enum {
 int virDomainBlockJobSetSpeed(virDomainPtr dom, const char *disk,
                               unsigned long bandwidth, unsigned int flags);
 
-/* Flags for use with virDomainBlockPull (values chosen to be a subset
- * of the flags for virDomainBlockRebase) */
+/**
+ * virDomainBlockPullFlags:
+ *
+ * Flags for use with virDomainBlockPull (values chosen to be a subset of the
+ * flags for virDomainBlockRebase)
+ *
+ * Since: v1.2.9
+ *
+ */
 typedef enum {
     VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES = 1 << 6, /* bandwidth in bytes/s
                                                        instead of MiB/s 
(Since: v1.2.9) */
@@ -2992,6 +3332,9 @@ int virDomainBlockPull(virDomainPtr dom, const char *disk,
  * virDomainBlockRebaseFlags:
  *
  * Flags available for virDomainBlockRebase().
+ *
+ * Since: v0.9.12
+ *
  */
 typedef enum {
     VIR_DOMAIN_BLOCK_REBASE_SHALLOW   = 1 << 0, /* Limit copy to top of source
@@ -3017,6 +3360,9 @@ int virDomainBlockRebase(virDomainPtr dom, const char 
*disk,
  * virDomainBlockCopyFlags:
  *
  * Flags available for virDomainBlockCopy().
+ *
+ * Since: v1.2.8
+ *
  */
 typedef enum {
     /* Limit copy to top of source backing chain (Since: v1.2.8) */
@@ -3094,6 +3440,9 @@ int virDomainBlockCopy(virDomainPtr dom, const char *disk,
  * virDomainBlockCommitFlags:
  *
  * Flags available for virDomainBlockCommit().
+ *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_DOMAIN_BLOCK_COMMIT_SHALLOW = 1 << 0, /* NULL base means next backing
@@ -3350,6 +3699,9 @@ virDomainGetBlockIoTune(virDomainPtr dom,
  * virDomainDiskErrorCode:
  *
  * Disk I/O error.
+ *
+ * Since: v0.9.10
+ *
  */
 typedef enum {
     VIR_DOMAIN_DISK_ERROR_NONE      = 0, /* no error (Since: v0.9.10) */
@@ -3364,8 +3716,17 @@ typedef enum {
 /**
  * virDomainDiskError:
  *
+ * Since: v0.9.10
+ *
  */
 typedef struct _virDomainDiskError virDomainDiskError;
+
+/**
+ * virDomainDiskErrorPtr:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef virDomainDiskError *virDomainDiskErrorPtr;
 
 struct _virDomainDiskError {
@@ -3384,6 +3745,9 @@ int virDomainGetDiskErrors(virDomainPtr dom,
  * virKeycodeSet:
  *
  * Enum to specify which keycode mapping is in use for virDomainSendKey().
+ *
+ * Since: v0.9.3
+ *
  */
 typedef enum {
     VIR_KEYCODE_SET_LINUX          = 0, /* (Since: v0.9.3) */
@@ -3436,7 +3800,9 @@ int virDomainSendKey(virDomainPtr domain,
                      int nkeycodes,
                      unsigned int flags);
 
-/*
+/**
+ * virDomainProcessSignal:
+ *
  * These just happen to match Linux signal numbers. The numbers
  * will be mapped to whatever the SIGNUM is in the guest OS in
  * question by the agent delivering the signal. The names are
@@ -3445,6 +3811,9 @@ int virDomainSendKey(virDomainPtr domain,
  * Do not rely on all values matching Linux though. It is possible
  * this enum might be extended with new signals which have no
  * mapping in Linux.
+ *
+ * Since: v1.0.1
+ *
  */
 typedef enum {
     VIR_DOMAIN_PROCESS_SIGNAL_NOP        =  0, /* No constant in POSIX/Linux 
(Since: v1.0.1) */
@@ -3545,6 +3914,9 @@ virDomainPtr            virDomainCreateLinux    
(virConnectPtr conn,
  * virDomainEventType:
  *
  * a virDomainEventType is emitted during domain lifecycle events
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_DEFINED = 0, /* (Since: v0.5.0) */
@@ -3566,6 +3938,9 @@ typedef enum {
  * virDomainEventDefinedDetailType:
  *
  * Details on the cause of a 'defined' lifecycle event
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_DEFINED_ADDED = 0,     /* Newly created config file 
(Since: v0.5.0) */
@@ -3582,6 +3957,9 @@ typedef enum {
  * virDomainEventUndefinedDetailType:
  *
  * Details on the cause of an 'undefined' lifecycle event
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_UNDEFINED_REMOVED = 0, /* Deleted the config file (Since: 
v0.5.0) */
@@ -3596,6 +3974,9 @@ typedef enum {
  * virDomainEventStartedDetailType:
  *
  * Details on the cause of a 'started' lifecycle event
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_STARTED_BOOTED = 0,   /* Normal startup from boot (Since: 
v0.5.0) */
@@ -3613,6 +3994,9 @@ typedef enum {
  * virDomainEventSuspendedDetailType:
  *
  * Details on the cause of a 'suspended' lifecycle event
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_SUSPENDED_PAUSED = 0,   /* Normal suspend due to admin 
pause (Since: v0.5.0) */
@@ -3634,6 +4018,9 @@ typedef enum {
  * virDomainEventResumedDetailType:
  *
  * Details on the cause of a 'resumed' lifecycle event
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_RESUMED_UNPAUSED = 0,   /* Normal resume due to admin 
unpause (Since: v0.5.0) */
@@ -3651,6 +4038,9 @@ typedef enum {
  * virDomainEventStoppedDetailType:
  *
  * Details on the cause of a 'stopped' lifecycle event
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN = 0,  /* Normal shutdown (Since: v0.5.0) 
*/
@@ -3671,6 +4061,9 @@ typedef enum {
  * virDomainEventShutdownDetailType:
  *
  * Details on the cause of a 'shutdown' lifecycle event
+ *
+ * Since: v0.9.8
+ *
  */
 typedef enum {
     /* Guest finished shutdown sequence (Since: v0.9.8) */
@@ -3696,6 +4089,9 @@ typedef enum {
  * virDomainEventPMSuspendedDetailType:
  *
  * Details on the cause of a 'pmsuspended' lifecycle event
+ *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY = 0, /* Guest was PM suspended to 
memory (Since: v0.10.2) */
@@ -3710,6 +4106,9 @@ typedef enum {
  * virDomainEventCrashedDetailType:
  *
  * Details on the cause of a 'crashed' lifecycle event
+ *
+ * Since: v1.1.1
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_CRASHED_PANICKED = 0, /* Guest was panicked (Since: 
v1.1.1) */
@@ -3724,6 +4123,9 @@ typedef enum {
  * virDomainMemoryFailureRecipientType:
  *
  * Recipient of a memory failure event.
+ *
+ * Since: v6.9.0
+ *
  */
 typedef enum {
     /* memory failure at hypersivor memory address space (Since: v6.9.0) */
@@ -3742,6 +4144,9 @@ typedef enum {
  * virDomainMemoryFailureActionType:
  *
  * Action of a memory failure event.
+ *
+ * Since: v6.9.0
+ *
  */
 typedef enum {
     /* the memory failure could be ignored. This will only be the case for
@@ -3779,6 +4184,12 @@ typedef enum {
 } virDomainMemoryFailureActionType;
 
 
+/**
+ * virDomainMemoryFailureFlags:
+ *
+ * Since: v6.9.0
+ *
+ */
 typedef enum {
     /* whether a memory failure event is action-required or action-optional
      * (e.g. a failure during memory scrub). (Since: v6.9.0) */
@@ -3824,6 +4235,12 @@ int virDomainIsActive(virDomainPtr dom);
 int virDomainIsPersistent(virDomainPtr dom);
 int virDomainIsUpdated(virDomainPtr dom);
 
+/**
+ * virDomainJobType:
+ *
+ * Since: v0.7.7
+ *
+ */
 typedef enum {
     VIR_DOMAIN_JOB_NONE      = 0, /* No job is active (Since: v0.7.7) */
     VIR_DOMAIN_JOB_BOUNDED   = 1, /* Job with a finite completion time (Since: 
v0.7.7) */
@@ -3837,7 +4254,20 @@ typedef enum {
 # endif
 } virDomainJobType;
 
+/**
+ * virDomainJobInfo:
+ *
+ * Since: v0.7.7
+ *
+ */
 typedef struct _virDomainJobInfo virDomainJobInfo;
+
+/**
+ * virDomainJobInfoPtr:
+ *
+ * Since: v0.7.7
+ *
+ */
 typedef virDomainJobInfo *virDomainJobInfoPtr;
 struct _virDomainJobInfo {
     /* One of virDomainJobType */
@@ -3878,6 +4308,9 @@ struct _virDomainJobInfo {
  *
  * Flags OR'ed together to provide specific behavior when querying domain
  * job statistics.
+ *
+ * Since: v1.2.9
+ *
  */
 typedef enum {
     VIR_DOMAIN_JOB_STATS_COMPLETED = 1 << 0, /* return stats of a recently
@@ -3895,6 +4328,12 @@ int virDomainGetJobStats(virDomainPtr domain,
                          unsigned int flags);
 int virDomainAbortJob(virDomainPtr dom);
 
+/**
+ * virDomainJobOperation:
+ *
+ * Since: v3.3.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_JOB_OPERATION_UNKNOWN = 0, /* (Since: v3.3.0) */
     VIR_DOMAIN_JOB_OPERATION_START = 1, /* (Since: v3.3.0) */
@@ -4386,6 +4825,9 @@ typedef void 
(*virConnectDomainEventRTCChangeCallback)(virConnectPtr conn,
  * virDomainEventWatchdogAction:
  *
  * The action that is to be taken due to the watchdog device firing
+ *
+ * Since: v0.8.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_WATCHDOG_NONE = 0, /* No action, watchdog ignored (Since: 
v0.8.0) */
@@ -4421,6 +4863,9 @@ typedef void 
(*virConnectDomainEventWatchdogCallback)(virConnectPtr conn,
  * virDomainEventIOErrorAction:
  *
  * The action that is to be taken due to an IO error occurring
+ *
+ * Since: v0.8.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0,  /* No action, IO error ignored 
(Since: v0.8.0) */
@@ -4484,6 +4929,9 @@ typedef void 
(*virConnectDomainEventIOErrorReasonCallback)(virConnectPtr conn,
  * virDomainEventGraphicsPhase:
  *
  * The phase of the graphics client connection
+ *
+ * Since: v0.8.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_GRAPHICS_CONNECT = 0,  /* Initial socket connection 
established (Since: v0.8.0) */
@@ -4499,6 +4947,9 @@ typedef enum {
  * virDomainEventGraphicsAddressType:
  *
  * The type of address for the connection
+ *
+ * Since: v0.8.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4,  /* IPv4 address (Since: v0.8.0) */
@@ -4512,22 +4963,38 @@ typedef enum {
 
 
 /**
- * virDomainEventGraphicsAddress:
+ * _virDomainEventGraphicsAddress:
  *
  * The data structure containing connection address details
  *
+ * Since: v1.0.0
+ *
  */
 struct _virDomainEventGraphicsAddress {
     int family;               /* Address family, 
virDomainEventGraphicsAddressType */
     char *node;               /* Address of node (eg IP address, or UNIX path) 
*/
     char *service;            /* Service name/number (eg TCP port, or NULL) */
 };
+
+/**
+ * virDomainEventGraphicsAddress:
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef struct _virDomainEventGraphicsAddress virDomainEventGraphicsAddress;
+
+/**
+ * virDomainEventGraphicsAddressPtr:
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef virDomainEventGraphicsAddress *virDomainEventGraphicsAddressPtr;
 
 
 /**
- * virDomainEventGraphicsSubjectIdentity:
+ * _virDomainEventGraphicsSubjectIdentity:
  *
  * The data structure representing a single identity
  *
@@ -4538,7 +5005,21 @@ struct _virDomainEventGraphicsSubjectIdentity {
     char *type;     /* Type of identity */
     char *name;     /* Identity value */
 };
+
+/**
+ * virDomainEventGraphicsSubjectIdentity:
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef struct _virDomainEventGraphicsSubjectIdentity 
virDomainEventGraphicsSubjectIdentity;
+
+/**
+ * virDomainEventGraphicsSubjectIdentityPtr:
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef virDomainEventGraphicsSubjectIdentity 
*virDomainEventGraphicsSubjectIdentityPtr;
 
 
@@ -4549,12 +5030,29 @@ typedef virDomainEventGraphicsSubjectIdentity 
*virDomainEventGraphicsSubjectIden
  *
  * A subject will have zero or more identities. The types of
  * identity differ according to the authentication scheme
+ *
+ * Since: v0.8.0
+ *
  */
 struct _virDomainEventGraphicsSubject {
     int nidentity;                                /* Number of identities in 
array*/
     virDomainEventGraphicsSubjectIdentityPtr identities; /* Array of 
identities for subject */
 };
+
+/**
+ * virDomainEventGraphicsSubject:
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef struct _virDomainEventGraphicsSubject virDomainEventGraphicsSubject;
+
+/**
+ * virDomainEventGraphicsSubjectPtr:
+ *
+ * Since: v0.8.0
+ *
+ */
 typedef virDomainEventGraphicsSubject *virDomainEventGraphicsSubjectPtr;
 
 
@@ -4586,6 +5084,9 @@ typedef void 
(*virConnectDomainEventGraphicsCallback)(virConnectPtr conn,
  *
  * Tracks status of a virDomainBlockPull(), virDomainBlockRebase(),
  * virDomainBlockCopy(), or virDomainBlockCommit() operation
+ *
+ * Since: v0.9.4
+ *
  */
 typedef enum {
     VIR_DOMAIN_BLOCK_JOB_COMPLETED = 0, /* (Since: v0.9.4) */
@@ -4633,6 +5134,9 @@ typedef void 
(*virConnectDomainEventBlockJobCallback)(virConnectPtr conn,
  * virConnectDomainEventDiskChangeReason:
  *
  * The reason describing why this callback is called
+ *
+ * Since: v0.9.7
+ *
  */
 typedef enum {
     /* Removable media changed to empty according to startup policy as source
@@ -4685,6 +5189,9 @@ typedef void 
(*virConnectDomainEventDiskChangeCallback)(virConnectPtr conn,
  * virDomainEventTrayChangeReason:
  *
  * The reason describing why the callback was called
+ *
+ * Since: v0.9.11
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN = 0, /* (Since: v0.9.11) */
@@ -5302,6 +5809,12 @@ typedef void 
(*virConnectDomainEventTunableCallback)(virConnectPtr conn,
                                                      void *opaque);
 
 
+/**
+ * virConnectDomainEventAgentLifecycleState:
+ *
+ * Since: v1.2.11
+ *
+ */
 typedef enum {
     VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_STATE_CONNECTED = 1, /* agent 
connected (Since: v1.2.11) */
     VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_STATE_DISCONNECTED = 2, /* agent 
disconnected (Since: v1.2.11) */
@@ -5311,6 +5824,12 @@ typedef enum {
 # endif
 } virConnectDomainEventAgentLifecycleState;
 
+/**
+ * virConnectDomainEventAgentLifecycleReason:
+ *
+ * Since: v1.2.11
+ *
+ */
 typedef enum {
     VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_REASON_UNKNOWN = 0, /* unknown 
state change reason (Since: v1.2.11) */
     VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_REASON_DOMAIN_STARTED = 1, /* 
state changed due to domain start (Since: v1.2.11) */
@@ -5438,6 +5957,9 @@ typedef void 
(*virConnectDomainEventMemoryDeviceSizeChangeCallback)(virConnectPt
  * An enumeration of supported eventId parameters for
  * virConnectDomainEventRegisterAny().  Each event id determines which
  * signature of callback function will be used.
+ *
+ * Since: v0.8.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_EVENT_ID_LIFECYCLE = 0,       /* virConnectDomainEventCallback 
(Since: v0.8.0) */
@@ -5494,9 +6016,10 @@ int virConnectDomainEventDeregisterAny(virConnectPtr 
conn,
 
 
 /**
- * virDomainConsoleFlags
+ * virDomainConsoleFlags:
+ *
+ * Since: v0.9.11
  *
- * Since 0.9.10
  */
 typedef enum {
 
@@ -5513,9 +6036,9 @@ int virDomainOpenConsole(virDomainPtr dom,
                          unsigned int flags);
 
 /**
- * virDomainChannelFlags
+ * virDomainChannelFlags:
  *
- * Since 1.0.2
+ * Since: v1.0.2
  */
 typedef enum {
     VIR_DOMAIN_CHANNEL_FORCE = (1 << 0), /* abort a (possibly) active channel
@@ -5528,6 +6051,12 @@ int virDomainOpenChannel(virDomainPtr dom,
                          virStreamPtr st,
                          unsigned int flags);
 
+/**
+ * virDomainOpenGraphicsFlags:
+ *
+ * Since: v0.9.7
+ *
+ */
 typedef enum {
     VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH = (1 << 0), /* (Since: v0.9.7) */
 } virDomainOpenGraphicsFlags;
@@ -5563,9 +6092,20 @@ int virDomainFSThaw(virDomainPtr dom,
  *
  * The data structure containing mounted file systems within a guset
  *
+ * Since: v1.2.11
+ *
+ *
  */
 typedef struct _virDomainFSInfo virDomainFSInfo;
+
+/**
+ * virDomainFSInfoPtr:
+ *
+ * Since: v1.2.11
+ *
+ */
 typedef virDomainFSInfo *virDomainFSInfoPtr;
+
 struct _virDomainFSInfo {
     char *mountpoint; /* path to mount point */
     char *name;       /* device name in the guest (e.g. "sda1") */
@@ -5584,7 +6124,12 @@ int virDomainGetTime(virDomainPtr dom,
                      long long *seconds,
                      unsigned int *nseconds,
                      unsigned int flags);
-
+/**
+ * virDomainSetTimeFlags:
+ *
+ * Since: v1.2.5
+ *
+ */
 typedef enum {
     VIR_DOMAIN_TIME_SYNC = (1 << 0), /* Re-sync domain time from domain's RTC 
(Since: v1.2.5) */
 } virDomainSetTimeFlags;
@@ -5598,8 +6143,10 @@ int virDomainSetTime(virDomainPtr dom,
  * virSchedParameterType:
  *
  * A scheduler parameter field type.  Provided for backwards
- * compatibility; virTypedParameterType is the preferred enum since
- * 0.9.2.
+ * compatibility; virTypedParameterType is the preferred enum
+ *
+ * Since: v0.2.3
+ *
  */
 typedef enum {
     VIR_DOMAIN_SCHED_FIELD_INT     = VIR_TYPED_PARAM_INT, /* (Since: v0.2.3) */
@@ -5637,7 +6184,7 @@ typedef enum {
  * Provided for backwards compatibility; virTypedParameter is the
  * preferred alias.
  *
- * Since: v0.9.2
+ * Since: v0.2.3
  *
  */
 typedef struct _virTypedParameter virSchedParameter;
@@ -5648,6 +6195,9 @@ typedef struct _virTypedParameter virSchedParameter;
  * a virSchedParameterPtr is a pointer to a virSchedParameter structure.
  * Provided for backwards compatibility; virTypedParameterPtr is the
  * preferred alias since 0.9.2.
+ *
+ * Since: v0.2.3
+ *
  */
 typedef virSchedParameter *virSchedParameterPtr;
 
@@ -5655,8 +6205,10 @@ typedef virSchedParameter *virSchedParameterPtr;
  * virBlkioParameterType:
  *
  * A blkio parameter field type.  Provided for backwards
- * compatibility; virTypedParameterType is the preferred enum since
- * 0.9.2.
+ * compatibility; virTypedParameterType is the preferred enum
+ *
+ * Since: v0.9.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_BLKIO_PARAM_INT     = VIR_TYPED_PARAM_INT, /* (Since: v0.9.0) */
@@ -5694,7 +6246,7 @@ typedef enum {
  * Provided for backwards compatibility; virTypedParameter is the
  * preferred alias.
  *
- * Since: v0.9.2
+ * Since: v0.9.0
  *
  */
 typedef struct _virTypedParameter virBlkioParameter;
@@ -5704,7 +6256,10 @@ typedef struct _virTypedParameter virBlkioParameter;
  *
  * a virBlkioParameterPtr is a pointer to a virBlkioParameter structure.
  * Provided for backwards compatibility; virTypedParameterPtr is the
- * preferred alias since 0.9.2.
+ * preferred alias.
+ *
+ * Since: v0.9.0
+ *
  */
 typedef virBlkioParameter *virBlkioParameterPtr;
 
@@ -5712,8 +6267,10 @@ typedef virBlkioParameter *virBlkioParameterPtr;
  * virMemoryParameterType:
  *
  * A memory parameter field type.  Provided for backwards
- * compatibility; virTypedParameterType is the preferred enum since
- * 0.9.2.
+ * compatibility; virTypedParameterType is the preferred enum
+ *
+ * Since: v0.8.5
+ *
  */
 typedef enum {
     VIR_DOMAIN_MEMORY_PARAM_INT     = VIR_TYPED_PARAM_INT, /* (Since: v0.8.5) 
*/
@@ -5751,7 +6308,7 @@ typedef enum {
  * Provided for backwards compatibility; virTypedParameter is the
  * preferred alias.
  *
- * Since: v0.9.2
+ * Since: v0.8.5
  *
  */
 typedef struct _virTypedParameter virMemoryParameter;
@@ -5761,10 +6318,19 @@ typedef struct _virTypedParameter virMemoryParameter;
  *
  * a virMemoryParameterPtr is a pointer to a virMemoryParameter structure.
  * Provided for backwards compatibility; virTypedParameterPtr is the
- * preferred alias since 0.9.2.
+ * preferred alias.
+ *
+ * Since: v0.8.5
+ *
  */
 typedef virMemoryParameter *virMemoryParameterPtr;
 
+/**
+ * virDomainInterfaceAddressesSource:
+ *
+ * Since: v1.2.14
+ *
+ */
 typedef enum {
     VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE = 0, /* Parse DHCP lease file 
(Since: v1.2.14) */
     VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT = 1, /* Query qemu guest agent 
(Since: v1.2.14) */
@@ -5775,7 +6341,20 @@ typedef enum {
 # endif
 } virDomainInterfaceAddressesSource;
 
+/**
+ * virDomainIPAddress:
+ *
+ * Since: v1.2.14
+ *
+ */
 typedef struct _virDomainInterfaceIPAddress virDomainIPAddress;
+
+/**
+ * virDomainIPAddressPtr:
+ *
+ * Since: v1.2.14
+ *
+ */
 typedef virDomainIPAddress *virDomainIPAddressPtr;
 struct _virDomainInterfaceIPAddress {
     int type;                /* virIPAddrType */
@@ -5783,7 +6362,20 @@ struct _virDomainInterfaceIPAddress {
     unsigned int prefix;     /* IP address prefix */
 };
 
+/**
+ * virDomainInterface:
+ *
+ * Since: v1.2.14
+ *
+ */
 typedef struct _virDomainInterface virDomainInterface;
+
+/**
+ * virDomainInterfacePtr:
+ *
+ * Since: v1.2.14
+ *
+ */
 typedef virDomainInterface *virDomainInterfacePtr;
 struct _virDomainInterface {
     char *name;                     /* interface name */
@@ -5799,6 +6391,12 @@ int virDomainInterfaceAddresses(virDomainPtr dom,
 
 void virDomainInterfaceFree(virDomainInterfacePtr iface);
 
+/**
+ * virDomainSetUserPasswordFlags:
+ *
+ * Since: v1.2.16
+ *
+ */
 typedef enum {
     VIR_DOMAIN_PASSWORD_ENCRYPTED = 1 << 0, /* the password is already 
encrypted (Since: v1.2.16) */
 } virDomainSetUserPasswordFlags;
@@ -5832,6 +6430,12 @@ int virDomainSetBlockThreshold(virDomainPtr domain,
                                unsigned long long threshold,
                                unsigned int flags);
 
+/**
+ * virDomainLifecycle:
+ *
+ * Since: v3.9.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_LIFECYCLE_POWEROFF = 0, /* (Since: v3.9.0) */
     VIR_DOMAIN_LIFECYCLE_REBOOT = 1, /* (Since: v3.9.0) */
@@ -5842,6 +6446,12 @@ typedef enum {
 # endif
 } virDomainLifecycle;
 
+/**
+ * virDomainLifecycleAction:
+ *
+ * Since: v3.9.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY = 0, /* (Since: v3.9.0) */
     VIR_DOMAIN_LIFECYCLE_ACTION_RESTART = 1, /* (Since: v3.9.0) */
@@ -5969,6 +6579,12 @@ int virDomainSetLaunchSecurityState(virDomainPtr domain,
                                     int nparams,
                                     unsigned int flags);
 
+/**
+ * virDomainGuestInfoTypes:
+ *
+ * Since: v5.7.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_GUEST_INFO_USERS = (1 << 0), /* return active users (Since: 
v5.7.0) */
     VIR_DOMAIN_GUEST_INFO_OS = (1 << 1), /* return OS information (Since: 
v5.7.0) */
@@ -5985,6 +6601,12 @@ int virDomainGetGuestInfo(virDomainPtr domain,
                           int *nparams,
                           unsigned int flags);
 
+/**
+ * virDomainAgentResponseTimeoutValues:
+ *
+ * Since: v5.10.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK = -2, /* (Since: v5.10.0) */
     VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_DEFAULT = -1, /* (Since: v5.10.0) */
@@ -5995,6 +6617,12 @@ int virDomainAgentSetResponseTimeout(virDomainPtr domain,
                                      int timeout,
                                      unsigned int flags);
 
+/**
+ * virDomainBackupBeginFlags:
+ *
+ * Since: v6.0.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_BACKUP_BEGIN_REUSE_EXTERNAL = (1 << 0), /* reuse separately
                                                           provided images 
(Since: v6.0.0) */
@@ -6013,6 +6641,12 @@ int virDomainAuthorizedSSHKeysGet(virDomainPtr domain,
                                   char ***keys,
                                   unsigned int flags);
 
+/**
+ * virDomainAuthorizedSSHKeysSetFlags:
+ *
+ * Since: v6.10.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_APPEND = (1 << 0), /* don't truncate 
file, just append (Since: v6.10.0) */
     VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_REMOVE = (1 << 1), /* remove keys, 
instead of adding them (Since: v6.10.0) */
@@ -6025,6 +6659,12 @@ int virDomainAuthorizedSSHKeysSet(virDomainPtr domain,
                                   unsigned int nkeys,
                                   unsigned int flags);
 
+/**
+ * virDomainMessageType:
+ *
+ * Since: v7.1.0
+ *
+ */
 typedef enum {
     VIR_DOMAIN_MESSAGE_DEPRECATION = (1 << 0), /* (Since: v7.1.0) */
     VIR_DOMAIN_MESSAGE_TAINTING = (1 << 1), /* (Since: v7.1.0) */
@@ -6038,6 +6678,9 @@ int virDomainGetMessages(virDomainPtr domain,
  * virDomainDirtyRateStatus:
  *
  * Details on the cause of a dirty rate calculation status.
+ *
+ * Since: v7.2.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_DIRTYRATE_UNSTARTED = 0, /* the dirtyrate calculation has
@@ -6058,6 +6701,9 @@ typedef enum {
  * Flags OR'ed together to provide specific behaviour when calculating dirty 
page
  * rate for a Domain
  *
+ *
+ * Since: v8.1.0
+ *
  */
 typedef enum {
     VIR_DOMAIN_DIRTYRATE_MODE_PAGE_SAMPLING = 0,        /* default mode - 
page-sampling (Since: v8.1.0) */
diff --git a/include/libvirt/libvirt-event.h b/include/libvirt/libvirt-event.h
index f86a55ecf6..fe2234913f 100644
--- a/include/libvirt/libvirt-event.h
+++ b/include/libvirt/libvirt-event.h
@@ -34,6 +34,9 @@
  * a virEventHandleType is used similar to POLLxxx FD events, but is specific
  * to libvirt. A client app must translate to, and from POLL events when using
  * this construct.
+ *
+ * Since: v0.5.0
+ *
  */
 typedef enum {
     VIR_EVENT_HANDLE_READABLE  = (1 << 0), /* (Since: v0.5.0) */
diff --git a/include/libvirt/libvirt-host.h b/include/libvirt/libvirt-host.h
index de08dcc118..1996ea87c9 100644
--- a/include/libvirt/libvirt-host.h
+++ b/include/libvirt/libvirt-host.h
@@ -33,6 +33,9 @@
  *
  * a virConnect is a private structure representing a connection to
  * the Hypervisor.
+ *
+ * Since: v0.0.1
+ *
  */
 typedef struct _virConnect virConnect;
 
@@ -41,6 +44,9 @@ typedef struct _virConnect virConnect;
  *
  * a virConnectPtr is pointer to a virConnect private structure, this is the
  * type used to reference a connection to the Hypervisor in the API.
+ *
+ * Since: v0.0.1
+ *
  */
 typedef virConnect *virConnectPtr;
 
@@ -49,6 +55,9 @@ typedef virConnect *virConnectPtr;
  *
  * Flags to indicate which system-wide sleep state the host must be
  * transitioned to.
+ *
+ * Since: v0.9.8
+ *
  */
 typedef enum {
     VIR_NODE_SUSPEND_TARGET_MEM     = 0, /* (Since: v0.9.8) */
@@ -64,6 +73,9 @@ typedef enum {
  * virStream:
  *
  * a virStream is a private structure representing a data stream.
+ *
+ * Since: v0.7.2
+ *
  */
 typedef struct _virStream virStream;
 
@@ -72,6 +84,9 @@ typedef struct _virStream virStream;
  *
  * a virStreamPtr is pointer to a virStream private structure, this is the
  * type used to reference a data stream in the API.
+ *
+ * Since: v0.7.2
+ *
  */
 typedef virStream *virStreamPtr;
 
@@ -92,6 +107,9 @@ typedef virStream *virStreamPtr;
  * a virSecurityLabel is a structure filled by virDomainGetSecurityLabel(),
  * providing the security label and associated attributes for the specified
  * domain.
+ *
+ * Since: v0.6.1
+ *
  */
 typedef struct _virSecurityLabel virSecurityLabel;
 
@@ -104,6 +122,9 @@ struct _virSecurityLabel {
  * virSecurityLabelPtr:
  *
  * a virSecurityLabelPtr is a pointer to a virSecurityLabel.
+ *
+ * Since: v0.6.1
+ *
  */
 typedef virSecurityLabel *virSecurityLabelPtr;
 
@@ -133,6 +154,9 @@ typedef virSecurityLabel *virSecurityLabelPtr;
  * a virSecurityModel is a structure filled by virNodeGetSecurityModel(),
  * providing the per-hypervisor security model and DOI attributes for the
  * specified domain.
+ *
+ * Since: v0.6.1
+ *
  */
 typedef struct _virSecurityModel virSecurityModel;
 
@@ -145,6 +169,9 @@ struct _virSecurityModel {
  * virSecurityModelPtr:
  *
  * a virSecurityModelPtr is a pointer to a virSecurityModel.
+ *
+ * Since: v0.6.1
+ *
  */
 typedef virSecurityModel *virSecurityModelPtr;
 
@@ -152,7 +179,7 @@ typedef virSecurityModel *virSecurityModelPtr;
 /* data types related to virNodePtr */
 
 /**
- * virNodeInfoPtr:
+ * virNodeInfo:
  *
  * a virNodeInfo is a structure filled by virNodeGetInfo() and providing
  * the information for the Node.
@@ -160,8 +187,9 @@ typedef virSecurityModel *virSecurityModelPtr;
  * Note that the information in this struct is not guaranteed to be an
  * accurate relection of the system hardware. See the virNodeGetInfo()
  * API documentation for further guidance.
+ *
+ * Since: v0.1.0
  */
-
 typedef struct _virNodeInfo virNodeInfo;
 
 struct _virNodeInfo {
@@ -192,9 +220,12 @@ struct _virNodeInfo {
 # define VIR_NODE_CPU_STATS_FIELD_LENGTH 80
 
 /**
- * VIR_NODE_CPU_STATS_ALL_CPUS:
+ * virNodeGetCPUStatsAllCPUs:
  *
  * Value for specifying request for the total CPU time/utilization
+ *
+ * Since: v0.9.8
+ *
  */
 typedef enum {
     VIR_NODE_CPU_STATS_ALL_CPUS = -1, /* (Since: v0.9.3) */
@@ -272,6 +303,9 @@ typedef enum {
  *
  * a virNodeCPUStats is a structure filled by virNodeGetCPUStats()
  * providing information about the CPU stats of the node.
+ *
+ * Since: v0.9.3
+ *
  */
 typedef struct _virNodeCPUStats virNodeCPUStats;
 
@@ -291,9 +325,12 @@ struct _virNodeCPUStats {
 # define VIR_NODE_MEMORY_STATS_FIELD_LENGTH 80
 
 /**
- * VIR_NODE_MEMORY_STATS_ALL_CELLS:
+ * virNodeGetMemoryStatsAllCells:
  *
  * Value for specifying request for the total memory of all cells.
+ *
+ * Since: v0.9.8
+ *
  */
 typedef enum {
     VIR_NODE_MEMORY_STATS_ALL_CELLS = -1, /* (Since: v0.9.3) */
@@ -349,6 +386,9 @@ typedef enum {
  *
  * a virNodeMemoryStats is a structure filled by virNodeGetMemoryStats()
  * providing information about the memory of the node.
+ *
+ * Since: v0.9.3
+ *
  */
 typedef struct _virNodeMemoryStats virNodeMemoryStats;
 
@@ -487,6 +527,9 @@ int virNodeGetCPUMap(virConnectPtr conn,
  * virNodeInfoPtr:
  *
  * a virNodeInfoPtr is a pointer to a virNodeInfo structure.
+ *
+ * Since: v0.1.0
+ *
  */
 
 typedef virNodeInfo *virNodeInfoPtr;
@@ -495,6 +538,9 @@ typedef virNodeInfo *virNodeInfoPtr;
  * virNodeCPUStatsPtr:
  *
  * a virNodeCPUStatsPtr is a pointer to a virNodeCPUStats structure.
+ *
+ * Since: v0.9.3
+ *
  */
 
 typedef virNodeCPUStats *virNodeCPUStatsPtr;
@@ -503,6 +549,9 @@ typedef virNodeCPUStats *virNodeCPUStatsPtr;
  * virNodeMemoryStatsPtr:
  *
  * a virNodeMemoryStatsPtr is a pointer to a virNodeMemoryStats structure.
+ *
+ * Since: v0.9.3
+ *
  */
 
 typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
@@ -584,16 +633,24 @@ int virNodeGetSEVInfo (virConnectPtr conn,
                        unsigned int flags);
 
 /**
- * virConnectFlags
+ * virConnectFlags:
  *
  * Flags when opening a connection to a hypervisor
+ *
+ * Since: v0.4.1
+ *
  */
 typedef enum {
     VIR_CONNECT_RO         = (1 << 0),  /* A readonly connection (Since: 
v0.4.1) */
     VIR_CONNECT_NO_ALIASES = (1 << 1),  /* Don't try to resolve URI aliases 
(Since: v0.9.7) */
 } virConnectFlags;
 
-
+/**
+ * virConnectCredentialType:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef enum {
     VIR_CRED_USERNAME = 1,     /* Identity to act as (Since: v0.4.1) */
     VIR_CRED_AUTHNAME = 2,     /* Identify to authorize as (Since: v0.4.1) */
@@ -619,7 +676,20 @@ struct _virConnectCredential {
     unsigned int resultlen; /* Length of the result */
 };
 
+/**
+ * virConnectCredential:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef struct _virConnectCredential virConnectCredential;
+
+/**
+ * virConnectCredentialPtr:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef virConnectCredential *virConnectCredentialPtr;
 
 
@@ -648,8 +718,20 @@ struct _virConnectAuth {
     void *cbdata;
 };
 
-
+/**
+ * virConnectAuth:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef struct _virConnectAuth virConnectAuth;
+
+/**
+ * virConnectAuthPtr:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef virConnectAuth *virConnectAuthPtr;
 
 /*
@@ -892,6 +974,12 @@ int virConnectIsAlive(virConnectPtr conn);
  * CPU specification API
  */
 
+/**
+ * virCPUCompareResult:
+ *
+ * Since: v0.7.5
+ *
+ */
 typedef enum {
     VIR_CPU_COMPARE_ERROR           = -1, /* (Since: v0.7.5) */
     VIR_CPU_COMPARE_INCOMPATIBLE    = 0, /* (Since: v0.7.5) */
@@ -903,6 +991,12 @@ typedef enum {
 # endif
 } virCPUCompareResult;
 
+/**
+ * virConnectCompareCPUFlags:
+ *
+ * Since: v1.2.6
+ *
+ */
 typedef enum {
     VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE = (1 << 0), /* treat incompatible
                                                              CPUs as failure 
(Since: v1.2.6) */
@@ -927,9 +1021,12 @@ int virConnectGetCPUModelNames(virConnectPtr conn,
                                unsigned int flags);
 
 /**
- * virConnectBaselineCPUFlags
+ * virConnectBaselineCPUFlags:
  *
  * Flags when getting XML description of a computed CPU
+ *
+ * Since: v1.1.2
+ *
  */
 typedef enum {
     VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES  = (1 << 0),  /* show all 
features (Since: v1.1.2) */
@@ -957,7 +1054,12 @@ int virNodeGetFreePages(virConnectPtr conn,
                         unsigned int cellcount,
                         unsigned long long *counts,
                         unsigned int flags);
-
+/**
+ * virNodeAllocPagesFlags:
+ *
+ * Since: v1.2.9
+ *
+ */
 typedef enum {
     VIR_NODE_ALLOC_PAGES_ADD = 0, /* Add @pageCounts to the pages pool. This
                                      can be used only to size up the pool. 
(Since: v1.2.9) */
diff --git a/include/libvirt/libvirt-interface.h 
b/include/libvirt/libvirt-interface.h
index 64bcb08c94..b90bf67140 100644
--- a/include/libvirt/libvirt-interface.h
+++ b/include/libvirt/libvirt-interface.h
@@ -31,6 +31,9 @@
  * virInterface:
  *
  * a virInterface is a private structure representing a virtual interface.
+ *
+ * Since: v0.6.4
+ *
  */
 typedef struct _virInterface virInterface;
 
@@ -39,6 +42,9 @@ typedef struct _virInterface virInterface;
  *
  * a virInterfacePtr is pointer to a virInterface private structure, this is 
the
  * type used to reference a virtual interface in the API.
+ *
+ * Since: v0.6.4
+ *
  */
 typedef virInterface *virInterfacePtr;
 
@@ -53,10 +59,13 @@ int                     virConnectNumOfDefinedInterfaces 
(virConnectPtr conn);
 int                     virConnectListDefinedInterfaces  (virConnectPtr conn,
                                                           char **const names,
                                                           int maxnames);
-/*
- * virConnectListAllInterfaces:
+/**
+ * virConnectListAllInterfacesFlags:
  *
  * Flags used to filter the returned interfaces.
+ *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_CONNECT_LIST_INTERFACES_INACTIVE      = 1 << 0, /* (Since: v0.10.2) */
@@ -75,10 +84,22 @@ virInterfacePtr         virInterfaceLookupByMACString 
(virConnectPtr conn,
 const char*             virInterfaceGetName       (virInterfacePtr iface);
 const char*             virInterfaceGetMACString  (virInterfacePtr iface);
 
+/**
+ * virInterfaceXMLFlags:
+ *
+ * Since: v0.7.3
+ *
+ */
 typedef enum {
     VIR_INTERFACE_XML_INACTIVE = 1 << 0 /* dump inactive interface information 
(Since: v0.7.3) */
 } virInterfaceXMLFlags;
 
+/**
+ * virInterfaceDefineFlags:
+ *
+ * Since: v7.7.0
+ *
+ */
 typedef enum {
     VIR_INTERFACE_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document 
against schema (Since: v7.7.0) */
 } virInterfaceDefineFlags;
diff --git a/include/libvirt/libvirt-network.h 
b/include/libvirt/libvirt-network.h
index 161c61de28..d735611437 100644
--- a/include/libvirt/libvirt-network.h
+++ b/include/libvirt/libvirt-network.h
@@ -27,6 +27,12 @@
 #  error "Don't include this file directly, only use libvirt/libvirt.h"
 # endif
 
+/**
+ * virNetworkXMLFlags:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef enum {
     VIR_NETWORK_XML_INACTIVE = (1 << 0), /* dump inactive network information 
(Since: v0.9.10) */
 } virNetworkXMLFlags;
@@ -35,6 +41,9 @@ typedef enum {
  * virNetwork:
  *
  * a virNetwork is a private structure representing a virtual network.
+ *
+ * Since: v0.2.0
+ *
  */
 typedef struct _virNetwork virNetwork;
 
@@ -43,6 +52,9 @@ typedef struct _virNetwork virNetwork;
  *
  * a virNetworkPtr is pointer to a virNetwork private structure, this is the
  * type used to reference a virtual network in the API.
+ *
+ * Since: v0.2.0
+ *
  */
 typedef virNetwork *virNetworkPtr;
 
@@ -51,6 +63,9 @@ typedef virNetwork *virNetworkPtr;
  *
  * a virNetworkPort is a private structure representing a virtual network
  * port
+ *
+ * Since: v5.5.0
+ *
  */
 typedef struct _virNetworkPort virNetworkPort;
 
@@ -59,6 +74,9 @@ typedef struct _virNetworkPort virNetworkPort;
  *
  * a virNetworkPortPtr is pointer to a virNetworkPort private structure,
  * this is the type used to reference a virtual network port in the API.
+ *
+ * Since: v5.5.0
+ *
  */
 typedef virNetworkPort *virNetworkPortPtr;
 
@@ -82,11 +100,14 @@ int                     virConnectNumOfDefinedNetworks  
(virConnectPtr conn);
 int                     virConnectListDefinedNetworks   (virConnectPtr conn,
                                                          char **const names,
                                                          int maxnames);
-/*
- * virConnectListAllNetworks:
+/**
+ * virConnectListAllNetworksFlags:
  *
  * Flags used to filter the returned networks. Flags in each group
  * are exclusive attributes of a network.
+ *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_CONNECT_LIST_NETWORKS_INACTIVE      = 1 << 0, /* (Since: v0.10.2) */
@@ -112,7 +133,12 @@ virNetworkPtr           virNetworkLookupByUUID          
(virConnectPtr conn,
                                                          const unsigned char 
*uuid);
 virNetworkPtr           virNetworkLookupByUUIDString    (virConnectPtr conn,
                                                          const char *uuid);
-
+/**
+ * virNetworkCreateFlags:
+ *
+ * Since: v7.8.0
+ *
+ */
 typedef enum {
     VIR_NETWORK_CREATE_VALIDATE = 1 << 0, /* Validate the XML document against 
schema (Since: v7.8.0) */
 } virNetworkCreateFlags;
@@ -125,7 +151,12 @@ virNetworkPtr           virNetworkCreateXML     
(virConnectPtr conn,
 virNetworkPtr           virNetworkCreateXMLFlags(virConnectPtr conn,
                                                  const char *xmlDesc,
                                                  unsigned int flags);
-
+/**
+ * virNetworkDefineFlags:
+ *
+ * Since: v7.7.0
+ *
+ */
 typedef enum {
     VIR_NETWORK_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against 
schema (Since: v7.7.0) */
 } virNetworkDefineFlags;
@@ -150,6 +181,8 @@ int                     virNetworkUndefine      
(virNetworkPtr network);
  * describes which type of update to perform on a <network>
  * definition.
  *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_NETWORK_UPDATE_COMMAND_NONE      = 0, /* (invalid (Since: v0.10.2) */
@@ -168,6 +201,8 @@ typedef enum {
  * describes which section of a <network> definition the provided
  * xml should be applied to.
  *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_NETWORK_SECTION_NONE              =  0, /* (invalid (Since: v0.10.2) */
@@ -192,6 +227,9 @@ typedef enum {
  * virNetworkUpdateFlags:
  *
  * Flags to control options for virNetworkUpdate()
+ *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_NETWORK_UPDATE_AFFECT_CURRENT = 0,      /* affect live if network is 
active,
@@ -246,6 +284,9 @@ int virNetworkIsPersistent(virNetworkPtr net);
  * virNetworkEventLifecycleType:
  *
  * a virNetworkEventLifecycleType is emitted during network lifecycle events
+ *
+ * Since: v1.2.1
+ *
  */
 typedef enum {
     VIR_NETWORK_EVENT_DEFINED = 0, /* (Since: v1.2.1) */
@@ -295,6 +336,9 @@ typedef void 
(*virConnectNetworkEventLifecycleCallback)(virConnectPtr conn,
  * An enumeration of supported eventId parameters for
  * virConnectNetworkEventRegisterAny().  Each event id determines which
  * signature of callback function will be used.
+ *
+ * Since: v1.2.1
+ *
  */
 typedef enum {
     VIR_NETWORK_EVENT_ID_LIFECYCLE = 0,       /* 
virConnectNetworkEventLifecycleCallback (Since: v1.2.1) */
@@ -311,6 +355,12 @@ typedef enum {
 # endif
 } virNetworkEventID;
 
+/**
+ * virIPAddrType:
+ *
+ * Since: v1.2.6
+ *
+ */
 typedef enum {
     VIR_IP_ADDR_TYPE_IPV4, /* (Since: v1.2.6) */
     VIR_IP_ADDR_TYPE_IPV6, /* (Since: v1.2.6) */
@@ -320,7 +370,20 @@ typedef enum {
 # endif
 } virIPAddrType;
 
+/**
+ * virNetworkDHCPLease:
+ *
+ * Since: v1.2.6
+ *
+ */
 typedef struct _virNetworkDHCPLease virNetworkDHCPLease;
+
+/**
+ * virNetworkDHCPLeasePtr:
+ *
+ * Since: v1.2.6
+ *
+ */
 typedef virNetworkDHCPLease *virNetworkDHCPLeasePtr;
 struct _virNetworkDHCPLease {
     char *iface;                /* Network interface name */
@@ -377,6 +440,12 @@ virNetworkPortPtr
 virNetworkPortLookupByUUIDString(virNetworkPtr net,
                                  const char *uuidstr);
 
+/**
+ * virNetworkPortCreateFlags:
+ *
+ * Since: v5.5.0
+ *
+ */
 typedef enum {
     VIR_NETWORK_PORT_CREATE_RECLAIM = (1 << 0), /* reclaim existing used 
resources (Since: v5.5.0) */
     VIR_NETWORK_PORT_CREATE_VALIDATE = (1 << 1), /* Validate the XML document 
against schema (Since: v7.8.0) */
diff --git a/include/libvirt/libvirt-nodedev.h 
b/include/libvirt/libvirt-nodedev.h
index 8fdded2f34..1bec57fca4 100644
--- a/include/libvirt/libvirt-nodedev.h
+++ b/include/libvirt/libvirt-nodedev.h
@@ -32,6 +32,9 @@
  * virNodeDevice:
  *
  * A virNodeDevice contains a node (host) device details.
+ *
+ * Since: v0.5.0
+ *
  */
 
 typedef struct _virNodeDevice virNodeDevice;
@@ -43,6 +46,9 @@ typedef struct _virNodeDevice virNodeDevice;
  * one via virNodeDeviceLookupByName, or virNodeDeviceCreate.  Be sure
  * to call virNodeDeviceFree when done using a virNodeDevicePtr obtained
  * from any of the above functions to avoid leaking memory.
+ *
+ * Since: v0.5.0
+ *
  */
 
 typedef virNodeDevice *virNodeDevicePtr;
@@ -57,11 +63,15 @@ int                     virNodeListDevices      
(virConnectPtr conn,
                                                  char **const names,
                                                  int maxnames,
                                                  unsigned int flags);
-/*
- * virConnectListAllNodeDevices:
+/**
+ * virConnectListAllNodeDeviceFlags:
  *
  * Flags used to filter either by capability or active state, the
- * returned node devices. */
+ * returned node devices.
+ *
+ * Since: v0.10.2
+ *
+ */
 typedef enum {
     VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM        = 1 << 0,  /* System 
capability (Since: v0.10.2) */
     VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV       = 1 << 1,  /* PCI device 
(Since: v0.10.2) */
@@ -168,6 +178,9 @@ int virNodeDeviceIsActive(virNodeDevicePtr dev);
  * An enumeration of supported eventId parameters for
  * virConnectNodeDeviceEventRegisterAny(). Each event id determines which
  * signature of callback function will be used.
+ *
+ * Since: v2.2.0
+ *
  */
 typedef enum {
     VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE = 0, /* 
virConnectNodeDeviceEventLifecycleCallback (Since: v2.2.0) */
@@ -217,6 +230,9 @@ int virConnectNodeDeviceEventDeregisterAny(virConnectPtr 
conn,
  *
  * a virNodeDeviceEventLifecycleType is emitted during node device
  * lifecycle events
+ *
+ * Since: v2.2.0
+ *
  */
 typedef enum {
     VIR_NODE_DEVICE_EVENT_CREATED = 0, /* (Since: v2.2.0) */
diff --git a/include/libvirt/libvirt-nwfilter.h 
b/include/libvirt/libvirt-nwfilter.h
index aa8872e156..18008426c2 100644
--- a/include/libvirt/libvirt-nwfilter.h
+++ b/include/libvirt/libvirt-nwfilter.h
@@ -31,6 +31,9 @@
  * virNWFilter:
  *
  * a virNWFilter is a private structure representing a network filter
+ *
+ * Since: v0.8.0
+ *
  */
 typedef struct _virNWFilter virNWFilter;
 
@@ -39,6 +42,9 @@ typedef struct _virNWFilter virNWFilter;
  *
  * a virNWFilterPtr is pointer to a virNWFilter private structure,
  * this is the type used to reference a network filter in the API.
+ *
+ * Since: v0.8.0
+ *
  */
 typedef virNWFilter *virNWFilterPtr;
 
@@ -47,6 +53,9 @@ typedef virNWFilter *virNWFilterPtr;
  *
  * a virNWFilterBinding is a private structure representing a network
  * filter binding to a port
+ *
+ * Since: v4.5.0
+ *
  */
 typedef struct _virNWFilterBinding virNWFilterBinding;
 
@@ -56,6 +65,9 @@ typedef struct _virNWFilterBinding virNWFilterBinding;
  * a virNWFilterBindingPtr is pointer to a virNWFilterBinding private
  * structure, this is the type used to reference a network filter
  * port binding in the API.
+ *
+ * Since: v4.5.0
+ *
  */
 typedef virNWFilterBinding *virNWFilterBindingPtr;
 
@@ -79,7 +91,12 @@ virNWFilterPtr          virNWFilterLookupByUUID       
(virConnectPtr conn,
                                                        const unsigned char 
*uuid);
 virNWFilterPtr          virNWFilterLookupByUUIDString (virConnectPtr conn,
                                                        const char *uuid);
-
+/**
+ * virNWFilterDefineFlags:
+ *
+ * Since: v7.7.0
+ *
+ */
 typedef enum {
     VIR_NWFILTER_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document 
against schema (Since: v7.7.0) */
 } virNWFilterDefineFlags;
@@ -108,6 +125,12 @@ int                     virNWFilterFree         
(virNWFilterPtr nwfilter);
  * NWFilter information
  */
 
+/**
+ * virNWFilterBindingCreateFlags:
+ *
+ * Since: v7.8.0
+ *
+ */
 typedef enum {
     VIR_NWFILTER_BINDING_CREATE_VALIDATE = 1 << 0, /* Validate the XML 
document against schema (Since: v7.8.0) */
 } virNWFilterBindingCreateFlags;
diff --git a/include/libvirt/libvirt-secret.h b/include/libvirt/libvirt-secret.h
index cee27155a3..92fd03f726 100644
--- a/include/libvirt/libvirt-secret.h
+++ b/include/libvirt/libvirt-secret.h
@@ -33,10 +33,26 @@
  *
  * A virSecret stores a secret value (e.g. a passphrase or encryption key)
  * and associated metadata.
+ *
+ * Since: v0.7.1
+ *
  */
 typedef struct _virSecret virSecret;
+
+/**
+ * virSecretPtr:
+ *
+ * Since: v0.7.1
+ *
+ */
 typedef virSecret *virSecretPtr;
 
+/**
+ * virSecretUsageType:
+ *
+ * Since: v0.7.1
+ *
+ */
 typedef enum {
     VIR_SECRET_USAGE_TYPE_NONE = 0, /* (Since: v0.7.1) */
     VIR_SECRET_USAGE_TYPE_VOLUME = 1, /* (Since: v0.7.1) */
@@ -63,11 +79,14 @@ int                     virConnectListSecrets   
(virConnectPtr conn,
                                                  char **uuids,
                                                  int maxuuids);
 
-/*
- * virConnectListAllSecrets:
+/**
+ * virConnectListAllSecretsFlags:
  *
  * Flags used to filter the returned secrets. Flags in each group
  * are exclusive attributes of a secret.
+ *
+ * Since: v0.10.2
+ *
  */
 typedef enum {
     VIR_CONNECT_LIST_SECRETS_EPHEMERAL    = 1 << 0, /* kept in memory, never
@@ -90,7 +109,12 @@ virSecretPtr            
virSecretLookupByUUIDString(virConnectPtr conn,
 virSecretPtr            virSecretLookupByUsage(virConnectPtr conn,
                                                int usageType,
                                                const char *usageID);
-
+/**
+ * virSecretDefineFlags:
+ *
+ * Since: v7.7.0
+ *
+ */
 typedef enum {
     VIR_SECRET_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against 
schema (Since: v7.7.0) */
 } virSecretDefineFlags;
@@ -134,6 +158,9 @@ int                     virSecretFree           
(virSecretPtr secret);
  * An enumeration of supported eventId parameters for
  * virConnectSecretEventRegisterAny(). Each event id determines which
  * signature of callback function will be used.
+ *
+ * Since: v3.0.0
+ *
  */
 typedef enum {
     VIR_SECRET_EVENT_ID_LIFECYCLE = 0, /* 
virConnectSecretEventLifecycleCallback (Since: v3.0.0) */
@@ -183,6 +210,9 @@ int virConnectSecretEventDeregisterAny(virConnectPtr conn,
  *
  * a virSecretEventLifecycleType is emitted during secret
  * lifecycle events
+ *
+ * Since: v3.0.0
+ *
  */
 typedef enum {
     VIR_SECRET_EVENT_DEFINED = 0, /* (Since: v3.0.0) */
diff --git a/include/libvirt/libvirt-storage.h 
b/include/libvirt/libvirt-storage.h
index 9bd437bf66..0b27d5d99f 100644
--- a/include/libvirt/libvirt-storage.h
+++ b/include/libvirt/libvirt-storage.h
@@ -32,6 +32,9 @@
  * virStoragePool:
  *
  * a virStoragePool is a private structure representing a storage pool
+ *
+ * Since: v0.4.1
+ *
  */
 typedef struct _virStoragePool virStoragePool;
 
@@ -40,10 +43,19 @@ typedef struct _virStoragePool virStoragePool;
  *
  * a virStoragePoolPtr is pointer to a virStoragePool private structure, this 
is the
  * type used to reference a storage pool in the API.
+ *
+ * Since: v0.4.1
+ *
  */
 typedef virStoragePool *virStoragePoolPtr;
 
 
+/**
+ * virStoragePoolState:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef enum {
     VIR_STORAGE_POOL_INACTIVE = 0, /* Not running (Since: v0.4.1) */
     VIR_STORAGE_POOL_BUILDING = 1, /* Initializing pool, not available (Since: 
v0.4.1) */
@@ -56,6 +68,12 @@ typedef enum {
 # endif
 } virStoragePoolState;
 
+/**
+ * virStoragePoolBuildFlags:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef enum {
     VIR_STORAGE_POOL_BUILD_NEW  = 0,   /* Regular build from scratch (Since: 
v0.4.1) */
     VIR_STORAGE_POOL_BUILD_REPAIR = (1 << 0), /* Repair / reinitialize (Since: 
v0.4.1) */
@@ -64,11 +82,23 @@ typedef enum {
     VIR_STORAGE_POOL_BUILD_OVERWRITE = (1 << 3),  /* Overwrite data (Since: 
v0.9.5) */
 } virStoragePoolBuildFlags;
 
+/**
+ * virStoragePoolDeleteFlags:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef enum {
     VIR_STORAGE_POOL_DELETE_NORMAL = 0, /* Delete metadata only    (fast) 
(Since: v0.4.1) */
     VIR_STORAGE_POOL_DELETE_ZEROED = 1 << 0,  /* Clear all data to zeros 
(slow) (Since: v0.4.1) */
 } virStoragePoolDeleteFlags;
 
+/**
+ * virStoragePoolCreateFlags:
+ *
+ * Since: v1.3.1
+ *
+ */
 typedef enum {
     /* Create the pool but do not perform pool build (Since: v1.3.1) */
     VIR_STORAGE_POOL_CREATE_NORMAL = 0,
@@ -93,6 +123,12 @@ typedef enum {
     VIR_STORAGE_POOL_CREATE_WITH_BUILD_NO_OVERWRITE = 1 << 2,
 } virStoragePoolCreateFlags;
 
+/**
+ * virStoragePoolInfo:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef struct _virStoragePoolInfo virStoragePoolInfo;
 
 struct _virStoragePoolInfo {
@@ -102,6 +138,12 @@ struct _virStoragePoolInfo {
     unsigned long long available;  /* Remaining free space bytes */
 };
 
+/**
+ * virStoragePoolInfoPtr:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef virStoragePoolInfo *virStoragePoolInfoPtr;
 
 
@@ -109,6 +151,9 @@ typedef virStoragePoolInfo *virStoragePoolInfoPtr;
  * virStorageVol:
  *
  * a virStorageVol is a private structure representing a storage volume
+ *
+ * Since: v0.4.1
+ *
  */
 typedef struct _virStorageVol virStorageVol;
 
@@ -117,10 +162,19 @@ typedef struct _virStorageVol virStorageVol;
  *
  * a virStorageVolPtr is pointer to a virStorageVol private structure, this is 
the
  * type used to reference a storage volume in the API.
+ *
+ * Since: v0.4.1
+ *
  */
 typedef virStorageVol *virStorageVolPtr;
 
 
+/**
+ * virStorageVolType:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_FILE = 0,     /* Regular file based volumes (Since: 
v0.4.1) */
     VIR_STORAGE_VOL_BLOCK = 1,    /* Block based volumes (Since: v0.4.1) */
@@ -135,12 +189,24 @@ typedef enum {
 # endif
 } virStorageVolType;
 
+/**
+ * virStorageVolDeleteFlags:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_DELETE_NORMAL = 0, /* Delete metadata only    (fast) 
(Since: v0.4.1) */
     VIR_STORAGE_VOL_DELETE_ZEROED = 1 << 0,  /* Clear all data to zeros (slow) 
(Since: v0.4.1) */
     VIR_STORAGE_VOL_DELETE_WITH_SNAPSHOTS = 1 << 1, /* Force removal of 
volume, even if in use (Since: v1.2.21) */
 } virStorageVolDeleteFlags;
 
+/**
+ * virStorageVolWipeAlgorithm:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_WIPE_ALG_ZERO = 0, /* 1-pass, all zeroes (Since: v0.9.10) 
*/
     VIR_STORAGE_VOL_WIPE_ALG_NNSA = 1, /* 4-pass  NNSA Policy Letter
@@ -175,6 +241,12 @@ typedef enum {
 # endif
 } virStorageVolWipeAlgorithm;
 
+/**
+ * virStorageVolInfoFlags:
+ *
+ * Since: v3.0.0
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_USE_ALLOCATION = 0,
 
@@ -183,6 +255,12 @@ typedef enum {
 
 } virStorageVolInfoFlags;
 
+/**
+ * virStorageVolInfo:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef struct _virStorageVolInfo virStorageVolInfo;
 
 struct _virStorageVolInfo {
@@ -191,8 +269,21 @@ struct _virStorageVolInfo {
     unsigned long long allocation; /* Current allocation bytes */
 };
 
+
+/**
+ * virStorageVolInfoPtr:
+ *
+ * Since: v0.4.1
+ *
+ */
 typedef virStorageVolInfo *virStorageVolInfoPtr;
 
+/**
+ * virStorageXMLFlags:
+ *
+ * Since: v0.9.13
+ *
+ */
 typedef enum {
     VIR_STORAGE_XML_INACTIVE    = (1 << 0), /* dump inactive pool/volume 
information (Since: v0.9.13) */
 } virStorageXMLFlags;
@@ -228,6 +319,9 @@ int                     
virConnectListDefinedStoragePools(virConnectPtr conn,
  * Flags used to tune pools returned by virConnectListAllStoragePools().
  * Note that these flags come in groups; if all bits from a group are 0,
  * then that group is not used to filter results.
+ *
+ * Since: v1.0.0
+ *
  */
 typedef enum {
     VIR_CONNECT_LIST_STORAGE_POOLS_INACTIVE      = 1 << 0,
@@ -279,7 +373,12 @@ virStoragePoolPtr       
virStoragePoolLookupByUUIDString(virConnectPtr conn,
 virStoragePoolPtr       virStoragePoolLookupByVolume    (virStorageVolPtr vol);
 virStoragePoolPtr       virStoragePoolLookupByTargetPath(virConnectPtr conn,
                                                          const char *path);
-
+/**
+ * virStoragePoolDefineFlags:
+ *
+ * Since: v7.7.0
+ *
+ */
 typedef enum {
     VIR_STORAGE_POOL_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document 
against schema (Since: v7.7.0) */
 } virStoragePoolDefineFlags;
@@ -353,6 +452,12 @@ virStorageVolPtr        virStorageVolLookupByPath       
(virConnectPtr conn,
 const char*             virStorageVolGetName            (virStorageVolPtr vol);
 const char*             virStorageVolGetKey             (virStorageVolPtr vol);
 
+/**
+ * virStorageVolCreateFlags:
+ *
+ * Since: v1.0.1
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA = 1 << 0, /* (Since: v1.0.1) */
     VIR_STORAGE_VOL_CREATE_REFLINK = 1 << 1, /* perform a btrfs lightweight 
copy (Since: v1.2.13) */
@@ -365,7 +470,12 @@ virStorageVolPtr        virStorageVolCreateXMLFrom      
(virStoragePoolPtr pool,
                                                          const char *xmldesc,
                                                          virStorageVolPtr 
clonevol,
                                                          unsigned int flags);
-
+/**
+ * virStorageVolDownloadFlags:
+ *
+ * Since: v3.4.0
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_DOWNLOAD_SPARSE_STREAM = 1 << 0, /* Use sparse stream 
(Since: v3.4.0) */
 } virStorageVolDownloadFlags;
@@ -375,6 +485,13 @@ int                     virStorageVolDownload           
(virStorageVolPtr vol,
                                                          unsigned long long 
offset,
                                                          unsigned long long 
length,
                                                          unsigned int flags);
+
+/**
+ * virStorageVolUploadFlags:
+ *
+ * Since: v3.4.0
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_UPLOAD_SPARSE_STREAM = 1 << 0,  /* Use sparse stream 
(Since: v3.4.0) */
 } virStorageVolUploadFlags;
@@ -404,6 +521,12 @@ char *                  virStorageVolGetXMLDesc         
(virStorageVolPtr pool,
 
 char *                  virStorageVolGetPath            (virStorageVolPtr vol);
 
+/**
+ * virStorageVolResizeFlags:
+ *
+ * Since: v0.9.10
+ *
+ */
 typedef enum {
     VIR_STORAGE_VOL_RESIZE_ALLOCATE = 1 << 0, /* force allocation of new size 
(Since: v0.9.10) */
     VIR_STORAGE_VOL_RESIZE_DELTA    = 1 << 1, /* size is relative to current 
(Since: v0.9.10) */
@@ -434,6 +557,9 @@ int virStoragePoolIsPersistent(virStoragePoolPtr pool);
  * An enumeration of supported eventId parameters for
  * virConnectStoragePoolEventRegisterAny(). Each event id determines which
  * signature of callback function will be used.
+ *
+ * Since: v2.0.0
+ *
  */
 typedef enum {
     VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE = 0, /* 
virConnectStoragePoolEventLifecycleCallback (Since: v2.0.0) */
@@ -483,6 +609,9 @@ int virConnectStoragePoolEventDeregisterAny(virConnectPtr 
conn,
  *
  * a virStoragePoolEventLifecycleType is emitted during storage pool
  * lifecycle events
+ *
+ * Since: v2.0.0
+ *
  */
 typedef enum {
     VIR_STORAGE_POOL_EVENT_DEFINED = 0, /* (Since: v2.0.0) */
diff --git a/include/libvirt/libvirt-stream.h b/include/libvirt/libvirt-stream.h
index d69131030b..caf6779cd6 100644
--- a/include/libvirt/libvirt-stream.h
+++ b/include/libvirt/libvirt-stream.h
@@ -28,6 +28,12 @@
 # endif
 
 
+/**
+ * virStreamFlags:
+ *
+ * Since: v0.7.2
+ *
+ */
 typedef enum {
     VIR_STREAM_NONBLOCK = (1 << 0), /* (Since: v0.7.2) */
 } virStreamFlags;
@@ -44,6 +50,12 @@ int virStreamRecv(virStreamPtr st,
                   char *data,
                   size_t nbytes);
 
+/**
+ * virStreamRecvFlagsValues:
+ *
+ * Since: v3.4.0
+ *
+ */
 typedef enum {
     VIR_STREAM_RECV_STOP_AT_HOLE = (1 << 0), /* (Since: v3.4.0) */
 } virStreamRecvFlagsValues;
@@ -229,6 +241,12 @@ int virStreamSparseRecvAll(virStreamPtr stream,
                            virStreamSinkHoleFunc holeHandler,
                            void *opaque);
 
+/**
+ * virStreamEventType:
+ *
+ * Since: v0.7.2
+ *
+ */
 typedef enum {
     VIR_STREAM_EVENT_READABLE  = (1 << 0), /* (Since: v0.7.2) */
     VIR_STREAM_EVENT_WRITABLE  = (1 << 1), /* (Since: v0.7.2) */
diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h
index 3c1b27a36f..6d15c12358 100644
--- a/include/libvirt/virterror.h
+++ b/include/libvirt/virterror.h
@@ -34,6 +34,9 @@ extern "C" {
  * virErrorLevel:
  *
  * Indicates the level of an error
+ *
+ * Since: v0.1.0
+ *
  */
 typedef enum {
     VIR_ERR_NONE = 0, /* (Since: v0.1.0) */
@@ -46,6 +49,9 @@ typedef enum {
  *
  * Indicates where an error may have come from.  This should remain
  * stable, with all additions placed at the end since libvirt 0.1.0.
+ *
+ * Since: v0.1.0
+ *
  */
 typedef enum {
     VIR_FROM_NONE = 0,          /* (Since: v0.1.0) */
@@ -152,9 +158,19 @@ typedef enum {
  * The conn, dom and net fields should be used with extreme care.
  * Reference counts are not incremented so the underlying objects
  * may be deleted without notice after the error has been delivered.
+ *
+ * Since: v0.1.0
+ *
  */
 
 typedef struct _virError virError;
+
+/**
+ * virErrorPtr:
+ *
+ * Since: v0.1.0
+ *
+ */
 typedef virError *virErrorPtr;
 struct _virError {
     int         code;   /* The error code, a virErrorNumber */
@@ -205,6 +221,9 @@ struct _virError {
  *     break;
  * default:
  * }
+ *
+ * Since: v0.1.0
+ *
  */
 typedef enum {
     VIR_ERR_OK = 0, /* (Since: v0.1.0) */
-- 
2.35.1

Reply via email to