summaryrefslogtreecommitdiffstats
path: root/src/main/resources/libvirt/rng/domainbackup.rng
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/resources/libvirt/rng/domainbackup.rng')
-rw-r--r--src/main/resources/libvirt/rng/domainbackup.rng304
1 files changed, 304 insertions, 0 deletions
diff --git a/src/main/resources/libvirt/rng/domainbackup.rng b/src/main/resources/libvirt/rng/domainbackup.rng
new file mode 100644
index 0000000..bfc29a6
--- /dev/null
+++ b/src/main/resources/libvirt/rng/domainbackup.rng
@@ -0,0 +1,304 @@
+<?xml version="1.0"?>
+<!-- A Relax NG schema for the libvirt domain backup properties XML format -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+ <start>
+ <ref name="domainbackup"/>
+ </start>
+
+ <include href="domaincommon.rng"/>
+
+ <define name="backupEncryption">
+ <element name="encryption">
+ <attribute name="format">
+ <choice>
+ <value>luks</value>
+ </choice>
+ </attribute>
+ <optional>
+ <attribute name="engine">
+ <choice>
+ <value>qemu</value>
+ </choice>
+ </attribute>
+ </optional>
+ <interleave>
+ <ref name="secret"/>
+ <optional>
+ <element name="cipher">
+ <ref name="keycipher"/>
+ </element>
+ <element name="ivgen">
+ <ref name="keyivgen"/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name="domainbackup">
+ <element name="domainbackup">
+ <interleave>
+ <optional>
+ <element name="incremental">
+ <text/>
+ </element>
+ </optional>
+ <choice>
+ <group>
+ <optional>
+ <attribute name="mode">
+ <value>push</value>
+ </attribute>
+ </optional>
+ <ref name="backupDisksPush"/>
+ </group>
+ <group>
+ <attribute name="mode">
+ <value>pull</value>
+ </attribute>
+ <interleave>
+ <element name="server">
+ <optional>
+ <attribute name="tls">
+ <ref name="virYesNo"/>
+ </attribute>
+ </optional>
+ <choice>
+ <group>
+ <optional>
+ <attribute name="transport">
+ <value>tcp</value>
+ </attribute>
+ </optional>
+ <attribute name="name">
+ <choice>
+ <ref name="dnsName"/>
+ <ref name="ipAddr"/>
+ </choice>
+ </attribute>
+ <optional>
+ <attribute name="port">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </optional>
+ </group>
+ <group>
+ <attribute name="transport">
+ <value>unix</value>
+ </attribute>
+ <attribute name="socket">
+ <ref name="absFilePath"/>
+ </attribute>
+ </group>
+ </choice>
+ </element>
+ <ref name="backupDisksPull"/>
+ </interleave>
+ </group>
+ </choice>
+ </interleave>
+ </element>
+ </define>
+
+
+ <define name="backupDiskMode">
+ <optional>
+ <choice>
+ <attribute name="backupmode">
+ <value>full</value>
+ </attribute>
+ <group>
+ <optional>
+ <attribute name="backupmode">
+ <value>incremental</value>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="incremental"/>
+ </optional>
+ </group>
+ </choice>
+ </optional>
+ </define>
+
+ <define name="backupPushDriver">
+ <optional>
+ <element name="driver">
+ <attribute name="type">
+ <ref name="storageFormat"/>
+ </attribute>
+ </element>
+ </optional>
+ </define>
+
+ <define name="backupPullDriver">
+ <optional>
+ <element name="driver">
+ <attribute name="type">
+ <value>qcow2</value>
+ </attribute>
+ </element>
+ </optional>
+ </define>
+
+ <define name="backupAttr">
+ <optional>
+ <attribute name="backup">
+ <choice>
+ <value>yes</value>
+ </choice>
+ </attribute>
+ </optional>
+ </define>
+
+ <define name="backupDisksPush">
+ <optional>
+ <element name="disks">
+ <oneOrMore>
+ <element name="disk">
+ <attribute name="name">
+ <ref name="diskTargetDev"/>
+ </attribute>
+ <ref name="backupDiskMode"/>
+ <choice>
+ <group>
+ <attribute name="backup">
+ <value>no</value>
+ </attribute>
+ </group>
+ <group>
+ <ref name="backupAttr"/>
+ <attribute name="type">
+ <value>file</value>
+ </attribute>
+ <interleave>
+ <optional>
+ <element name="target">
+ <attribute name="file">
+ <ref name="absFilePath"/>
+ </attribute>
+ <interleave>
+ <zeroOrMore>
+ <ref name="devSeclabel"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="backupEncryption"/>
+ </optional>
+ </interleave>
+ </element>
+ </optional>
+ <ref name="backupPushDriver"/>
+ </interleave>
+ </group>
+ <group>
+ <ref name="backupAttr"/>
+ <attribute name="type">
+ <value>block</value>
+ </attribute>
+ <interleave>
+ <optional>
+ <element name="target">
+ <attribute name="dev">
+ <ref name="absFilePath"/>
+ </attribute>
+ <interleave>
+ <zeroOrMore>
+ <ref name="devSeclabel"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="backupEncryption"/>
+ </optional>
+ </interleave>
+ </element>
+ </optional>
+ <ref name="backupPushDriver"/>
+ </interleave>
+ </group>
+ </choice>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </define>
+
+ <define name="backupDisksPull">
+ <optional>
+ <element name="disks">
+ <oneOrMore>
+ <element name="disk">
+ <attribute name="name">
+ <ref name="diskTargetDev"/>
+ </attribute>
+ <ref name="backupDiskMode"/>
+ <optional>
+ <attribute name="exportname">
+ <text/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="exportbitmap">
+ <text/>
+ </attribute>
+ </optional>
+ <choice>
+ <group>
+ <attribute name="backup">
+ <value>no</value>
+ </attribute>
+ </group>
+ <group>
+ <optional>
+ <ref name="backupAttr"/>
+ <attribute name="type">
+ <value>file</value>
+ </attribute>
+ </optional>
+ <optional>
+ <interleave>
+ <element name="scratch">
+ <attribute name="file">
+ <ref name="absFilePath"/>
+ </attribute>
+ <interleave>
+ <zeroOrMore>
+ <ref name="devSeclabel"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="backupEncryption"/>
+ </optional>
+ </interleave>
+ </element>
+ <ref name="backupPullDriver"/>
+ </interleave>
+ </optional>
+ </group>
+ <group>
+ <ref name="backupAttr"/>
+ <attribute name="type">
+ <value>block</value>
+ </attribute>
+ <interleave>
+ <element name="scratch">
+ <attribute name="dev">
+ <ref name="absFilePath"/>
+ </attribute>
+ <interleave>
+ <zeroOrMore>
+ <ref name="devSeclabel"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="backupEncryption"/>
+ </optional>
+ </interleave>
+ </element>
+ <ref name="backupPullDriver"/>
+ </interleave>
+ </group>
+ </choice>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </define>
+
+</grammar>