2019-08-22 04:42:41 +03:00
<?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>
2020-09-30 14:54:58 +03:00
<ref name="domainbackup"/>
2019-08-22 04:42:41 +03:00
</start>
2020-09-30 14:54:58 +03:00
<include href="domaincommon.rng"/>
2019-08-22 04:42:41 +03:00
2020-09-30 14:54:58 +03:00
<define name="backupEncryption">
<element name="encryption">
<attribute name="format">
2020-04-09 16:50:40 +03:00
<choice>
<value>luks</value>
</choice>
</attribute>
<interleave>
2020-09-30 14:54:58 +03:00
<ref name="secret"/>
2020-04-09 16:50:40 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<element name="cipher">
<ref name="keycipher"/>
2020-04-09 16:50:40 +03:00
</element>
2020-09-30 14:54:58 +03:00
<element name="ivgen">
<ref name="keyivgen"/>
2020-04-09 16:50:40 +03:00
</element>
</optional>
</interleave>
</element>
</define>
2020-09-30 14:54:58 +03:00
<define name="domainbackup">
<element name="domainbackup">
2019-08-22 04:42:41 +03:00
<interleave>
<optional>
2020-09-30 14:54:58 +03:00
<element name="incremental">
2019-08-22 04:42:41 +03:00
<text/>
</element>
</optional>
<choice>
<group>
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="mode">
2019-08-22 04:42:41 +03:00
<value>push</value>
</attribute>
</optional>
2020-09-30 14:54:58 +03:00
<ref name="backupDisksPush"/>
2019-08-22 04:42:41 +03:00
</group>
<group>
2020-09-30 14:54:58 +03:00
<attribute name="mode">
2019-08-22 04:42:41 +03:00
<value>pull</value>
</attribute>
<interleave>
2020-09-30 14:54:58 +03:00
<element name="server">
2020-07-01 13:25:42 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="tls">
2020-07-01 13:25:42 +03:00
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
2019-08-22 04:42:41 +03:00
<choice>
<group>
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="transport">
2019-08-22 04:42:41 +03:00
<value>tcp</value>
</attribute>
</optional>
2020-09-30 14:54:58 +03:00
<attribute name="name">
2019-08-22 04:42:41 +03:00
<choice>
2020-09-30 14:54:58 +03:00
<ref name="dnsName"/>
<ref name="ipAddr"/>
2019-08-22 04:42:41 +03:00
</choice>
</attribute>
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="port">
<ref name="unsignedInt"/>
2019-08-22 04:42:41 +03:00
</attribute>
</optional>
</group>
<group>
2020-09-30 14:54:58 +03:00
<attribute name="transport">
2019-08-22 04:42:41 +03:00
<value>unix</value>
</attribute>
2020-09-30 14:54:58 +03:00
<attribute name="socket">
<ref name="absFilePath"/>
2019-08-22 04:42:41 +03:00
</attribute>
</group>
</choice>
</element>
2020-09-30 14:54:58 +03:00
<ref name="backupDisksPull"/>
2019-08-22 04:42:41 +03:00
</interleave>
</group>
</choice>
</interleave>
</element>
</define>
2020-06-25 17:16:14 +03:00
2020-09-30 14:54:58 +03:00
<define name="backupDiskMode">
2020-06-25 17:16:14 +03:00
<optional>
<choice>
2020-09-30 14:54:58 +03:00
<attribute name="backupmode">
2020-06-25 17:16:14 +03:00
<value>full</value>
</attribute>
<group>
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="backupmode">
2020-06-25 17:16:14 +03:00
<value>incremental</value>
</attribute>
</optional>
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="incremental"/>
2020-06-25 17:16:14 +03:00
</optional>
</group>
</choice>
</optional>
</define>
2020-09-30 14:54:58 +03:00
<define name="backupPushDriver">
2019-08-22 04:42:41 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<element name="driver">
<attribute name="type">
<ref name="storageFormat"/>
2019-08-22 04:42:41 +03:00
</attribute>
</element>
</optional>
</define>
2020-09-30 14:54:58 +03:00
<define name="backupPullDriver">
2019-08-22 04:42:41 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<element name="driver">
<attribute name="type">
2019-08-22 04:42:41 +03:00
<value>qcow2</value>
</attribute>
</element>
</optional>
</define>
2020-09-30 14:54:58 +03:00
<define name="backupAttr">
2019-08-22 04:42:41 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="backup">
2019-08-22 04:42:41 +03:00
<choice>
<value>yes</value>
</choice>
</attribute>
</optional>
</define>
2020-09-30 14:54:58 +03:00
<define name="backupDisksPush">
2019-08-22 04:42:41 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<element name="disks">
2019-08-22 04:42:41 +03:00
<oneOrMore>
2020-09-30 14:54:58 +03:00
<element name="disk">
<attribute name="name">
<ref name="diskTarget"/>
2019-08-22 04:42:41 +03:00
</attribute>
2020-09-30 14:54:58 +03:00
<ref name="backupDiskMode"/>
2019-08-22 04:42:41 +03:00
<choice>
<group>
2020-09-30 14:54:58 +03:00
<attribute name="backup">
2019-08-22 04:42:41 +03:00
<value>no</value>
</attribute>
</group>
<group>
2020-09-30 14:54:58 +03:00
<ref name="backupAttr"/>
<attribute name="type">
2019-08-22 04:42:41 +03:00
<value>file</value>
</attribute>
<interleave>
<optional>
2020-09-30 14:54:58 +03:00
<element name="target">
<attribute name="file">
<ref name="absFilePath"/>
2019-08-22 04:42:41 +03:00
</attribute>
2020-04-09 16:50:40 +03:00
<interleave>
<zeroOrMore>
2020-09-30 14:54:58 +03:00
<ref name="devSeclabel"/>
2020-04-09 16:50:40 +03:00
</zeroOrMore>
<optional>
2020-09-30 14:54:58 +03:00
<ref name="backupEncryption"/>
2020-04-09 16:50:40 +03:00
</optional>
</interleave>
2019-08-22 04:42:41 +03:00
</element>
</optional>
2020-09-30 14:54:58 +03:00
<ref name="backupPushDriver"/>
2019-08-22 04:42:41 +03:00
</interleave>
</group>
<group>
2020-09-30 14:54:58 +03:00
<ref name="backupAttr"/>
<attribute name="type">
2019-08-22 04:42:41 +03:00
<value>block</value>
</attribute>
<interleave>
<optional>
2020-09-30 14:54:58 +03:00
<element name="target">
<attribute name="dev">
<ref name="absFilePath"/>
2019-08-22 04:42:41 +03:00
</attribute>
2020-04-09 16:50:40 +03:00
<interleave>
<zeroOrMore>
2020-09-30 14:54:58 +03:00
<ref name="devSeclabel"/>
2020-04-09 16:50:40 +03:00
</zeroOrMore>
<optional>
2020-09-30 14:54:58 +03:00
<ref name="backupEncryption"/>
2020-04-09 16:50:40 +03:00
</optional>
</interleave>
2019-08-22 04:42:41 +03:00
</element>
</optional>
2020-09-30 14:54:58 +03:00
<ref name="backupPushDriver"/>
2019-08-22 04:42:41 +03:00
</interleave>
</group>
</choice>
</element>
</oneOrMore>
</element>
</optional>
</define>
2020-09-30 14:54:58 +03:00
<define name="backupDisksPull">
2019-08-22 04:42:41 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<element name="disks">
2019-08-22 04:42:41 +03:00
<oneOrMore>
2020-09-30 14:54:58 +03:00
<element name="disk">
<attribute name="name">
<ref name="diskTarget"/>
2019-08-22 04:42:41 +03:00
</attribute>
2020-09-30 14:54:58 +03:00
<ref name="backupDiskMode"/>
2019-12-20 13:37:40 +03:00
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="exportname">
2019-12-20 13:37:40 +03:00
<text/>
</attribute>
2020-04-24 11:37:54 +03:00
</optional>
<optional>
2020-09-30 14:54:58 +03:00
<attribute name="exportbitmap">
2019-12-20 13:37:40 +03:00
<text/>
</attribute>
</optional>
2019-08-22 04:42:41 +03:00
<choice>
<group>
2020-09-30 14:54:58 +03:00
<attribute name="backup">
2019-08-22 04:42:41 +03:00
<value>no</value>
</attribute>
</group>
<group>
<optional>
2020-09-30 14:54:58 +03:00
<ref name="backupAttr"/>
<attribute name="type">
2019-08-22 04:42:41 +03:00
<value>file</value>
</attribute>
</optional>
<optional>
<interleave>
2020-09-30 14:54:58 +03:00
<element name="scratch">
<attribute name="file">
<ref name="absFilePath"/>
2019-08-22 04:42:41 +03:00
</attribute>
2020-04-09 16:50:40 +03:00
<interleave>
<zeroOrMore>
2020-09-30 14:54:58 +03:00
<ref name="devSeclabel"/>
2020-04-09 16:50:40 +03:00
</zeroOrMore>
<optional>
2020-09-30 14:54:58 +03:00
<ref name="backupEncryption"/>
2020-04-09 16:50:40 +03:00
</optional>
</interleave>
2019-08-22 04:42:41 +03:00
</element>
2020-09-30 14:54:58 +03:00
<ref name="backupPullDriver"/>
2019-08-22 04:42:41 +03:00
</interleave>
</optional>
</group>
<group>
2020-09-30 14:54:58 +03:00
<ref name="backupAttr"/>
<attribute name="type">
2019-08-22 04:42:41 +03:00
<value>block</value>
</attribute>
<interleave>
2020-09-30 14:54:58 +03:00
<element name="scratch">
<attribute name="dev">
<ref name="absFilePath"/>
2019-08-22 04:42:41 +03:00
</attribute>
2020-04-09 16:50:40 +03:00
<interleave>
<zeroOrMore>
2020-09-30 14:54:58 +03:00
<ref name="devSeclabel"/>
2020-04-09 16:50:40 +03:00
</zeroOrMore>
<optional>
2020-09-30 14:54:58 +03:00
<ref name="backupEncryption"/>
2020-04-09 16:50:40 +03:00
</optional>
</interleave>
2019-08-22 04:42:41 +03:00
</element>
2020-09-30 14:54:58 +03:00
<ref name="backupPullDriver"/>
2019-08-22 04:42:41 +03:00
</interleave>
</group>
</choice>
</element>
</oneOrMore>
</element>
</optional>
</define>
</grammar>