libvirt/docs/schemas/domainbackup.rng

301 lines
8.7 KiB
XML

<?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>
<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">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</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="diskTarget"/>
</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="diskTarget"/>
</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>