<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 1999-2012. Parallels IP Holdings GmbH. All Rights Reserved. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<!-- types description -->
	<xs:complexType name="RestoreTaskResult">
		<xs:sequence>
			<xs:element name="conflicts-description" type="ConflictsDescription"/>
			<xs:element name="dump-validity-error" type="DumpValidityError" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="dump-overview" type="DumpOverview"/>
		</xs:sequence>
		<xs:attribute name="task-id"/>
	</xs:complexType>
	<xs:complexType name="DumpValidityError">
		<xs:annotation>
			<xs:documentation>Dump is not valid</xs:documentation>
		</xs:annotation>
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="sign">
						<xs:annotation>
							<xs:documentation>Dump didn't pass sign verification</xs:documentation>
						</xs:annotation>
					</xs:enumeration>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="ResourceUsageReasonDescription">
		<xs:sequence>
			<xs:element name="plesk-object-identifier" type="PleskObjectIdentifier" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Identify Plesk object which is a user of the resource</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="resource-class"/>
		<xs:attribute name="resource-type"/>
		<xs:attribute name="requested-value"/>
		<xs:attribute name="available-value"/>
	</xs:complexType>
	<xs:complexType name="UniqueResourceReasonDescription">
		<xs:sequence>
			<xs:element name="plesk-object-identifier" type="PleskObjectIdentifier" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Identify Plesk object, owner of the resource</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="resource-class"/>
		<xs:attribute name="resource-type"/>
		<xs:attribute name="value"/>
	</xs:complexType>
	<xs:complexType name="TimingReasonDescription">
		<xs:sequence>
			<xs:element name="plesk-object-identifier" type="PleskObjectIdentifier" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Identifier of a Plesk object with the same GUID as conflict object</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="plesk-owner-guid"/>
		<xs:attribute name="backup-owner-guid"/>
		<xs:attribute name="plesk-vendor-guid" type="xs:string"/>
		<xs:attribute name="backup-vendor-guid" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="ConfigurationReasonDescription">
		<xs:sequence>
			<xs:element name="required-resource-description" type="RequiredResourceDescription"/>
			<xs:element name="plesk-object-identifier" type="PleskObjectIdentifier" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Identifiers of Plesk objects which require the resource</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RequiredResourceDescription">
		<xs:choice>
			<xs:element name="ip" type="Ip"/>
			<xs:element name="database" type="Database"/>
			<xs:element name="db-server" type="DbServer"/>
			<xs:element name="site-app" type="SiteApp"/>
			<xs:element name="service-plan" type="ServicePlan"/>
			<xs:element name="subscription" type="Subscription"/>
			<xs:element name="component" type="ComponentType"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="Subscription">
		<xs:attribute name="guid" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="ServicePlan">
		<xs:attribute name="guid" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="Ip">
		<xs:attribute name="type"/>
		<xs:attribute name="value"/>
	</xs:complexType>
	<xs:complexType name="Database">
		<xs:attribute name="type"/>
		<xs:attribute name="name"/>
	</xs:complexType>
	<xs:complexType name="DbServer">
		<xs:attribute name="type"/>
		<xs:attribute name="host"/>
		<xs:attribute name="port"/>
	</xs:complexType>
	<xs:complexType name="SiteApp">
		<xs:attribute name="name"/>
		<xs:attribute name="version"/>
	</xs:complexType>
	<xs:complexType name="ResourceUsage">
		<xs:sequence>
			<xs:element name="reason-description" type="ResourceUsageReasonDescription"/>
			<xs:element name="resolve-options" type="ResolveOptions"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UniqueResource">
		<xs:sequence>
			<xs:element name="reason-description" type="UniqueResourceReasonDescription"/>
			<xs:element name="resolve-options" type="ResolveOptions"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Timing">
		<xs:sequence>
			<xs:element name="reason-description" type="TimingReasonDescription"/>
			<xs:element name="resolve-options" type="ResolveOptions"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Configuration">
		<xs:sequence>
			<xs:element name="reason-description" type="ConfigurationReasonDescription"/>
			<xs:element name="resolve-options" type="ResolveOptions"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ConflictType">
		<xs:choice>
			<xs:element name="resource-usage" type="ResourceUsage"/>
			<xs:element name="unique-resource" type="UniqueResource"/>
			<xs:element name="timing" type="Timing"/>
			<xs:element name="configuration" type="Configuration"/>
			<xs:element name="business-model" type="BusinessModel"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="ConflictingObjects">
		<xs:sequence>
			<xs:element name="node" type="TransformNode" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Structure of XML Transform Specification for a node search</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TransformNode">
		<xs:sequence>
			<xs:element name="context" type="Context" minOccurs="0"/>
			<xs:element name="attributes" type="Attributes" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="name" use="required"/>
		<xs:attribute name="children-processing-type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="filter-out"/>
					<xs:enumeration value="process-recursive"/>
					<xs:enumeration value="copy"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="Context">
		<xs:sequence>
			<xs:element name="path" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Attributes">
		<xs:sequence>
			<xs:element name="attribute" type="Attribute" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Attribute">
		<xs:attribute name="name" type="xs:string"/>
		<xs:attribute name="value" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="ConflictOverviewReasonParam">
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="value" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="ConflictOverviewReason">
		<xs:sequence>
			<xs:element name="message" type="xs:string"/>
			<xs:element name="resolver-message"/>
			<xs:element name="param" type="ConflictOverviewReasonParam" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ConflictOverviewReasons">
		<xs:sequence>
			<xs:element name="reason" type="ConflictOverviewReason" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ConflictOverviewObject">
		<xs:sequence>
			<xs:element name="message" type="xs:string"/>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="type" type="xs:string"/>
			<xs:element name="owner-name" type="xs:string" minOccurs="0"/>
			<xs:element name="reasons" type="ConflictOverviewReasons"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ConflictOverview">
		<xs:sequence>
			<xs:element name="object" type="ConflictOverviewObject" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Conflict">
		<xs:sequence>
			<xs:element name="type" type="ConflictType"/>
			<xs:element name="conflicting-objects" type="ConflictingObjects"/>
			<xs:element name="overview" type="ConflictOverview" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id"/>
		<xs:attribute name="guid" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="ConflictsDescription">
		<xs:sequence>
			<xs:element name="conflict" type="Conflict" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PleskObjectIdentifier">
		<xs:sequence>
			<xs:element name="type"/>
			<xs:element name="database-id"/>
			<xs:element name="guid" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResolveParameter">
		<xs:attribute name="name"/>
	</xs:complexType>
	<xs:complexType name="ResolveParameters">
		<xs:sequence>
			<xs:element name="parameter" type="ResolveParameter"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResolveOption">
		<xs:sequence>
			<xs:element name="parameters" type="ResolveParameters" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="name">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="do-not-restore"/>
					<xs:enumeration value="proceed-with-current"/>
					<xs:enumeration value="automatic"/>
					<xs:enumeration value="overuse"/>
					<xs:enumeration value="overwrite"/>
					<xs:enumeration value="rename"/>
					<xs:enumeration value="manual"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="ResolveOptions">
		<xs:sequence>
			<xs:element name="option" type="ResolveOption" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Response">
		<xs:sequence>
			<xs:element name="errcode"/>
			<xs:element name="errmsg" minOccurs="0"/>
			<xs:element name="data" type="Data" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Dump">
		<xs:sequence>
			<xs:element name="dump-status" type="DumpStatusFull" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="name">
			<xs:annotation>
				<xs:documentation>Dump filename without path. Can be used for showing in UI</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fullname">
			<xs:annotation>
				<xs:documentation>Dump full name, should be used for dump-specification composing</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="creation-date"/>
		<xs:attribute name="description">
			<xs:annotation>
				<xs:documentation>Actually migration-dump/dump-info/description content</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="size"/>
		<xs:attribute name="owner-guid">
			<xs:annotation>
				<xs:documentation>GUID of the user which made the dump</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="owner-type" type="PleskObjectType"/>
		<xs:attribute name="verification-string"/>
	</xs:complexType>
	<xs:simpleType name="DumpStatus">
		<xs:annotation>
			<xs:documentation>Status of a dump. Default value is "OK".</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="OK"/>
			<xs:enumeration value="WRONG-FORMAT">
				<xs:annotation>
					<xs:documentation>Should be used in cases when file is not Plesk Backup file or info.xml did not pass xsd validation</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="SIGN-ERROR">
				<xs:annotation>
					<xs:documentation>Should be used in cases sign check did not passed</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CONTENT-ERROR">
				<xs:annotation>
					<xs:documentation>Some content files are corrupted</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DumpList">
		<xs:sequence>
			<xs:element name="dump" type="Dump" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Task">
		<xs:sequence>
			<xs:element name="task-status" type="TaskStatus"/>
			<xs:element name="dumps-storage-credentials" type="DumpsStorageCredentials" minOccurs="0"/>
			<xs:element name="additional-info" type="MigrationTaskInfo" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="task-id"/>
		<xs:attribute name="task-type"/>
		<xs:attribute name="owner-guid"/>
		<xs:attribute name="owner-type" type="PleskObjectType"/>
		<xs:attribute name="creation-date"/>
		<xs:attribute name="fullname">
			<xs:annotation>
				<xs:documentation>The same as dump-list/dump/@fullname</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="name">
			<xs:annotation>
				<xs:documentation>The same as dump-list/dump/@name</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="backup-profile-name">
			<xs:annotation>
				<xs:documentation>The same as backup-task-description/misc/@backup-profile-name</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mail-to">
			<xs:annotation>
				<xs:documentation>Mail task result and log to this email</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="SessionStep">
		<xs:attribute name="id">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="agent-uploaded"/>
					<xs:enumeration value="objects-list-received"/>
					<xs:enumeration value="migrated-objects-selected"/>
					<xs:enumeration value="ip-mapping-set"/>
					<xs:enumeration value="owners-set"/>
					<xs:enumeration value="db-mapping-set"/>
					<xs:enumeration value="respore-policy-set"/>
					<xs:enumeration value="migration-task-started"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="SessionSteps">
		<xs:sequence>
			<xs:element name="step" type="SessionStep" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Session">
		<xs:sequence>
			<xs:element name="steps-passed" type="SessionSteps" minOccurs="0"/>
			<xs:element name="additional-info" type="MigrationTaskInfo"/>
		</xs:sequence>
		<xs:attribute name="session-id"/>
		<xs:attribute name="creation-date"/>
	</xs:complexType>
	<xs:complexType name="TaskList">
		<xs:sequence>
			<xs:element name="task" type="Task" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SessionList">
		<xs:sequence>
			<xs:element name="session" type="Session" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Metainformation">
		<xs:sequence>
			<xs:element name="record" type="Record" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Record" mixed="true">
		<xs:attribute name="name" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="ObjectsToSelect">
		<xs:sequence>
			<xs:element name="object" type="Object" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectAttributes">
		<xs:sequence>
			<xs:element name="owner-guid" minOccurs="0"/>
			<xs:element name="guid" minOccurs="0"/>
			<xs:element name="id" minOccurs="0"/>
			<xs:element name="name" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DumpOverview">
		<xs:sequence>
			<xs:element name="metainformation" type="Metainformation"/>
			<xs:element name="objects-to-select" type="ObjectsToSelect"/>
		</xs:sequence>
		<xs:attribute name="session-id" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="ObjectDisplay">
		<xs:attribute name="name"/>
		<xs:attribute name="type"/>
		<xs:attribute name="planned-action"/>
		<xs:attribute name="conflict-id"/>
	</xs:complexType>
	<xs:complexType name="ObjectSelect">
		<xs:sequence>
			<xs:element name="attributes" type="ObjectAttributes" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="nodename"/>
		<xs:attribute name="path"/>
	</xs:complexType>
	<xs:complexType name="Objects">
		<xs:sequence>
			<xs:element name="object" type="Object" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Object">
		<xs:sequence>
			<xs:element name="display" type="ObjectDisplay"/>
			<xs:element name="select" type="ObjectSelect"/>
			<xs:element name="objects" type="Objects" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TaskId" mixed="true"/>
	<xs:complexType name="TaskLog"/>
	<xs:complexType name="DstTemporaryDirectory" mixed="true"/>
	<xs:complexType name="DownloadSpeed" mixed="true"/>
	<xs:complexType name="ObjTypeReseller">
		<xs:sequence>
			<xs:element name="name"/>
			<xs:element name="contact" minOccurs="0"/>
			<xs:element name="ip" type="IPMapping" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="clients" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="client" type="ObjTypeClient" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="domains" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="domain" type="ObjTypeDomain" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="information" type="InformationType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjTypeClient">
		<xs:sequence>
			<xs:element name="name"/>
			<xs:element name="contact" minOccurs="0"/>
			<xs:element name="ip" type="IPMapping" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="domains" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="domain" type="ObjTypeDomain" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="information" type="InformationType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjTypeDomain">
		<xs:sequence>
			<xs:element name="name"/>
			<xs:element name="ip" type="IPMapping" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="resource-usage" type="ResourceUsageType" minOccurs="0"/>
			<xs:element name="information" type="InformationType" minOccurs="0"/>
			<xs:element name="capability-info" type="AgentCapabilityInfoType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="exists-on-target"/>
		<xs:attribute name="auxiliary" type="xs:boolean" default="false"/>
	</xs:complexType>
	<xs:complexType name="DumpTransformerOptionName" mixed="true">
		<xs:annotation>
			<xs:documentation>Dump transformer option name. 
			'convert-mailnames-to-users': Create user accounts based on imported mail accounts,
			'import-anti-spam-training': Import Anti-Spam training from the specified mail account
			'migrated-users-role': Role name which will be assigned to created users</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="DumpTransformerOptionValue" mixed="true"/>
	<xs:complexType name="DumpTransformerOption">
		<xs:sequence>
			<xs:element name="name" type="DumpTransformerOptionName"/>
			<xs:element name="value" type="DumpTransformerOptionValue"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DumpTransformerOptions">
		<xs:sequence>
			<xs:element name="dump-transformer-option" type="DumpTransformerOption" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MigrationParameters">
		<xs:sequence>
			<xs:element name="dump-transformer-options" type="DumpTransformerOptions" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="filter">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="only-mail"/>
					<xs:enumeration value="only-phosting"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="compression-level">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="do-not-compress"/>
					<xs:enumeration value="standard"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="content-transport">
			<xs:annotation>
				<xs:documentation>Optional attribute. Represent content transport type. Default value is "archive"</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="archive"/>
					<xs:enumeration value="rsync"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="MigrationObjectList">
		<xs:sequence>
			<xs:element name="parameters" type="MigrationParameters" minOccurs="0"/>
			<xs:element name="reseller" type="ObjTypeReseller" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="client" type="ObjTypeClient" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="domain" type="ObjTypeDomain" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="admin-info" type="ObjAdminInfoType" minOccurs="0"/>
			<xs:element name="server" type="ObjServerType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="migration-session-id"/>
	</xs:complexType>
	<xs:complexType name="MigrationObjectAdminInfo">
		<xs:sequence>
			<xs:element name="information" type="InformationType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MigrationObjectServerLicense"/>
	<xs:complexType name="MigrationObjectServer">
		<xs:sequence>
			<xs:element name="information" type="InformationType" minOccurs="0"/>
			<xs:element name="license" type="MigrationObjectServerLicense" minOccurs="0"/>
			<xs:element name="capability-info" type="AgentCapabilityInfoType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="check"/>
	</xs:complexType>
	<xs:complexType name="Data">
		<xs:choice>
			<xs:element name="restore-task-result" type="RestoreTaskResult"/>
			<xs:element name="dump-overview" type="DumpOverview"/>
			<xs:element name="conflicts-description" type="ConflictsDescription"/>
			<xs:element name="task-id" type="TaskId"/>
			<xs:element name="task-list" type="TaskList"/>
			<xs:element name="session-list" type="SessionList"/>
			<xs:element name="task-status" type="TaskStatus"/>
			<xs:element name="task-log" type="TaskLog"/>
			<xs:element name="dump-list" type="DumpList"/>
			<xs:element name="check-dump-result" type="CheckDumpResult"/>
			<xs:element name="scout-result" type="ScoutResult"/>
			<xs:element name="quick-info" type="QuickInfo"/>
			<xs:element name="migration-objects-list" type="MigrationObjectList"/>
			<xs:element name="dump" type="Dump"/>
			<xs:element name="agent-credentials" type="AgentCredentials"/>
			<xs:element name="migration-ip-mapping" type="IPMapping"/>
			<xs:element name="migration-db-mapping" type="DBMapping"/>
			<xs:element name="migration-owners" type="OwnersMapping"/>
			<xs:element name="migration-restore-policy" type="ConflictResolutionRules"/>
			<xs:element name="migration-selected-objects" type="MigrationObjectList"/>
			<xs:element name="dst-temporary-directory" type="DstTemporaryDirectory"/>
			<xs:element name="config-parameters" type="ConfigParameters"/>
			<xs:element name="migration-capability-info" type="MigrationCapabilityInfo"/>
			<xs:element name="migration-download-speed" type="DownloadSpeed"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="QuickInfo"/>
	<xs:complexType name="ScoutResult">
		<xs:sequence>
			<xs:element name="detected-panel" type="DetectedPanel" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="os-info" type="OsInfo"/>
			<xs:element name="remote-fs" type="FsList"/>
		</xs:sequence>
		<xs:attribute name="migration-session-id"/>
	</xs:complexType>
	<xs:complexType name="PackageInstalled">
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="version" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="DetectedPanel" mixed="true">
		<xs:attribute name="agent" type="xs:string" use="required"/>
		<xs:attribute name="name" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="AgentToUse" mixed="true"/>
	<xs:complexType name="OsInfo">
		<xs:sequence>
			<xs:element name="package-installed" type="PackageInstalled" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="os" type="xs:string" use="required"/>
		<xs:attribute name="loadavg" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="FsList">
		<xs:sequence>
			<xs:element name="fs" type="Fs" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Fs" mixed="true">
		<xs:attribute name="mountpoint" type="xs:string" use="required"/>
		<xs:attribute name="device" type="xs:string" use="required"/>
		<xs:attribute name="mode" type="FsModeType" use="required"/>
		<xs:attribute name="size" type="xs:integer" use="required"/>
		<xs:attribute name="free" type="xs:integer" use="required"/>
		<xs:attribute name="type" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:simpleType name="FsModeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ro"/>
			<xs:enumeration value="rw"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="CheckDumpResult">
		<xs:sequence>
			<xs:element name="dump-status" type="DumpStatusFull" maxOccurs="unbounded"/>
			<xs:element name="session-id" type="SessionId" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DumpStatusFull">
		<xs:sequence>
			<xs:element name="details" minOccurs="0">
				<xs:complexType>
					<xs:choice>
						<xs:element name="content-file-name" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>List of corrupted content files. Should be used with dump-status=CONTENT-ERRORS.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="message" maxOccurs="unbounded"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="dump-status" type="DumpStatus"/>
	</xs:complexType>
	<xs:complexType name="MigrationTaskInfoMigratingObject">
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="domains"/>
					<xs:enumeration value="clients"/>
					<xs:enumeration value="resellers"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="amount" type="xs:integer"/>
	</xs:complexType>
	<xs:complexType name="MigrationTaskInfoMigratingObjects">
		<xs:sequence>
			<xs:element name="selected-objects" type="SelectedObjects" minOccurs="0" maxOccurs="3">
				<xs:annotation>
					<xs:documentation>Absense of element means objects not selected for migration</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SelectedObjects">
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="domains"/>
					<xs:enumeration value="clients"/>
					<xs:enumeration value="resellers"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="amount" type="xs:integer"/>
	</xs:complexType>
	<xs:complexType name="MigrationTaskInfo">
		<xs:sequence>
			<xs:element name="source-hostname" type="xs:string"/>
			<xs:element name="migrating-objects" type="MigrationTaskInfoMigratingObjects" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TaskStatusMixed">
		<xs:sequence>
			<xs:element name="backup" type="TaskStatus" minOccurs="0"/>
			<xs:element name="transfer" type="TaskStatus" minOccurs="0"/>
			<xs:element name="restore" type="TaskStatusRestore" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="status" type="FinishedStatus" use="optional"/>
		<xs:attribute name="log-location" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="TaskStatusRestore">
		<xs:sequence>
			<xs:element name="conflict-resolve" type="TaskStatus" minOccurs="0"/>
			<xs:element name="deploy" type="TaskStatus" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="status" type="FinishedStatus" use="optional"/>
		<xs:attribute name="log-location" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="TaskStatus">
		<xs:choice>
			<xs:element name="working" type="Working"/>
			<xs:element name="finished" type="Finished"/>
			<xs:element name="stopped" type="Stopped"/>
			<xs:element name="mixed" type="TaskStatusMixed"/>
		</xs:choice>
		<xs:attribute name="task-id">
			<xs:annotation>
				<xs:documentation>Task-id should be used for mixed children for ability to determine task-id for children tasks</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="Working">
		<xs:choice>
			<xs:element name="starting" type="Starting"/>
			<xs:element name="deploy" type="WorkingProgress"/>
			<xs:element name="dumping" type="WorkingProgress"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="Starting"/>
	<xs:complexType name="Stopped"/>
	<xs:complexType name="CurrentObject">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="type" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="WorkingProgress">
		<xs:sequence>
			<xs:element name="current-object" type="CurrentObject" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="total-domains" type="xs:integer" use="required"/>
		<xs:attribute name="total-accounts" type="xs:integer" use="required"/>
		<xs:attribute name="completed-domains" type="xs:integer" use="required"/>
		<xs:attribute name="completed-accounts" type="xs:integer" use="required"/>
	</xs:complexType>
	<xs:complexType name="Finished">
		<xs:attribute name="status" type="FinishedStatus" use="required"/>
		<xs:attribute name="log-location" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:simpleType name="FinishedStatus">
		<xs:restriction base="xs:string">
			<xs:enumeration value="success"/>
            <xs:enumeration value="info"/>
			<xs:enumeration value="warnings"/>
			<xs:enumeration value="error"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PleskObjectType">
		<xs:restriction base="xs:token">
			<xs:enumeration value="server"/>
			<xs:enumeration value="reseller"/>
			<xs:enumeration value="client"/>
			<xs:enumeration value="domain"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DumpListQuery">
		<xs:sequence>
			<xs:element name="dumps-storage-credentials" type="DumpsStorageCredentials"/>
			<xs:element name="object-specification" type="ObjectSpecification">
				<xs:annotation>
					<xs:documentation>Specification of object who want to see list of backups</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DeleteDumpQuery">
		<xs:sequence>
			<xs:element name="dump-specification" type="DumpSpecification"/>
			<xs:element name="object-specification" type="ObjectSpecification">
				<xs:annotation>
					<xs:documentation>Specification of object who want to delete backup</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectSpecification">
		<xs:attribute name="type" type="PleskObjectType">
			<xs:annotation>
				<xs:documentation>Type of Plesk Object specified. The absense of attribute means "all types of Plesk Objects" or "any Plesk Object type"</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="guid"/>
		<xs:attribute name="id">
			<xs:annotation>
				<xs:documentation>Database ID of object</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="name">
			<xs:annotation>
				<xs:documentation>Name of object.  Used in case when there are no top .discovered directory. For admin: not required, for reseller and client: login for domain: ASCII-name</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="BackupTaskDescription">
		<xs:sequence>
			<xs:element name="misc" type="BackupTaskDescriptionMisc"/>
			<xs:element name="agent-credentials" type="AgentCredentials" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Missing of this parameter means the same as missing all of child parameters</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="control-panel-credentials" type="ControlPanelCredentials" minOccurs="0"/>
			<xs:element name="dumps-storage-credentials" type="DumpsStorageCredentials"/>
			<xs:element name="backup-specification" type="BackupSpecification"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="BackupSpecification">
		<xs:sequence>
			<xs:element name="backup-options" type="BackupOptions"/>
			<xs:element name="object-to-backup" type="BackupObjectIdentifier" maxOccurs="unbounded"/>
			<xs:element name="object-to-exclude" type="BackupObjectIdentifier" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="BackupTaskDescriptionMisc">
		<xs:attribute name="backup-profile-id" type="xs:string"/>
		<xs:attribute name="backup-profile-name" type="xs:string"/>
		<xs:attribute name="owner-guid" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>GUID of the person who start backup task</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="owner-type" type="PleskObjectType"/>
		<xs:attribute name="verbose-level" type="VerboseLevel">
			<xs:annotation>
				<xs:documentation>Verbose level for backup process, number means amount of -v option</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="owner-name" type="xs:string"/>
	</xs:complexType>
	<xs:simpleType name="VerboseLevel">
		<xs:restriction base="xs:unsignedByte"/>
	</xs:simpleType>
	<xs:complexType name="BackupObjectIdentifier">
		<xs:attribute name="id">
			<xs:annotation>
				<xs:documentation>Database ID of object selected to backup</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="name">
			<xs:annotation>
				<xs:documentation>login for reseller and client, domain name for domain</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="all">
			<xs:annotation>
				<xs:documentation>Set this attribute to "true" to backup all objects specified type</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="true"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="type" type="PleskObjectType" use="required">
			<xs:annotation>
				<xs:documentation>Type of object selected to backup</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="BackupOptions">
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="full"/>
					<xs:enumeration value="configuration-only"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="split-size" type="xs:unsignedLong">
			<xs:annotation>
				<xs:documentation>Split size in bytes</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="compression-level">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="do-not-compress"/>
					<xs:enumeration value="standard"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="filter">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="only-mail"/>
					<xs:enumeration value="only-phosting"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="suspend" type="Suspend">
			<xs:annotation>
				<xs:documentation>Suspend objects during backup, default=false</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rotation" type="Rotation">
			<xs:annotation>
				<xs:documentation>Maximum numbers of backup stored in repository</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mail-to">
			<xs:annotation>
				<xs:documentation>If present - send log of backup task to this email</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mssql-native-backup">
			<xs:annotation>
				<xs:documentation>Use native MSSQL backup format for database backup</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="description">
			<xs:annotation>
				<xs:documentation>Dump description, text</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:simpleType name="Rotation">
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	<xs:simpleType name="Suspend">
		<xs:annotation>
			<xs:documentation>Suspend objects during backup, default=false</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="true"/>
			<xs:enumeration value="false"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="MigrationTaskDescription">
		<xs:sequence>
			<xs:element name="agent-credentials" type="AgentCredentials"/>
			<xs:element name="dst-host-parameters" type="DstHostParameters"/>
		</xs:sequence>
		<xs:attribute name="owner-guid" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="DstHostParameters">
		<xs:sequence>
			<xs:element name="dst-temporary-directory" type="DstTemporaryDirectory" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RestoreTaskDescription">
		<xs:sequence>
			<xs:element name="source" type="RestoreTaskDescriptionSource"/>
			<xs:element name="objects" type="RestoreTaskDescriptionObjects"/>
			<xs:element name="ignore-errors" type="IgnoreErrors" minOccurs="0"/>
			<xs:element name="misc" type="RestoreTaskDescriptionMisc" minOccurs="0"/>
			<xs:element name="dump-transformer-options" type="DumpTransformerOptions" minOccurs="0"/>
			<xs:element name="conflict-resolution-rules" type="ConflictResolutionRules" minOccurs="0">
				<xs:annotation>
					<xs:documentation>If this element presents, pmm.cli should try to execute Conflict Resolver with specified conflict resolution rules; if after resolution conflicts still here, DumpOverview should be based on RestoreSpecs after conflicts resolution</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="owner-guid" type="xs:string" use="required"/>
		<xs:attribute name="owner-type" type="PleskObjectType" use="required"/>
		<xs:attribute name="mail-to" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="RestoreTaskDescriptionMisc" mixed="true">
		<xs:attribute name="verbose-level" type="VerboseLevel"/>
		<xs:attribute name="suspend" type="Suspend"/>
		<xs:attribute name="mode" type="xs:string">
			<xs:annotation>
				<xs:documentation> Define what process is performed: migration or restore </xs:documentation>
			</xs:annotation>
		</xs:attribute>
    <xs:attribute name="delete-downloaded-dumps" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Delete dumps when restoration process is finished is they were downloaded from personal FTP repository</xs:documentation>
      </xs:annotation>
    </xs:attribute>
	</xs:complexType>
	<xs:complexType name="RestoreTaskDescriptionSource">
		<xs:sequence>
			<xs:element name="dump-specification" type="DumpSpecification" minOccurs="0"/>
			<xs:element name="session-id" type="SessionId" minOccurs="0"/>
			<xs:element name="backup-password" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SessionId" mixed="true"/>
	<xs:complexType name="RestoreTaskDescriptionObjects">
		<xs:choice>
			<xs:element name="all"/>
			<xs:element name="selected" type="RestoreTaskDescriptionObjectsSelected">
				<xs:annotation>
					<xs:documentation>XML Transform Specification</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="RestoreTaskDescriptionObjectsSelected">
		<xs:sequence>
			<xs:element name="node" type="TransformNode" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="IgnoreErrors">
		<xs:annotation>
			<xs:documentation>The element specify types of errors which should be ignored if appears.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ignore-error" type="IgnoreError" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="IgnoreError" mixed="true">
		<xs:attribute name="type" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="conflicts">
						<xs:annotation>
							<xs:documentation>Start restore task even if conflicts found</xs:documentation>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="sign">
						<xs:annotation>
							<xs:documentation>Start restore task even if sign validation failed</xs:documentation>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="backup-password"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="TimingPolicy">
		<xs:all>
			<xs:element name="resolution" type="Resolution"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="ResourceUsagePolicy">
		<xs:all>
			<xs:element name="resolution" type="Resolution"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="ConfigurationPolicy">
		<xs:all>
			<xs:element name="resolution" type="Resolution"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="Policy">
		<xs:sequence>
			<xs:element name="timing" type="TimingPolicy" minOccurs="0"/>
			<xs:element name="resource-usage" type="ResourceUsagePolicy" minOccurs="0"/>
			<xs:element name="configuration" type="ConfigurationPolicy" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DumpObjects">
		<xs:sequence>
			<xs:element name="node" type="TransformNode" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Structure of XML Transform Specification for a node search</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Rule">
		<xs:sequence>
			<xs:element name="dump-objects" type="DumpObjects" minOccurs="0"/>
			<xs:element name="resolution" type="Resolution"/>
		</xs:sequence>
		<xs:attribute name="conflict-id" use="optional"/>
		<xs:attribute name="conflict-guid" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="ResolveConflictsTaskDescription">
		<xs:sequence>
			<xs:element name="conflict-resolution-rules" type="ConflictResolutionRules"/>
		</xs:sequence>
		<xs:attribute name="session-id"/>
	</xs:complexType>
	<xs:complexType name="ConflictResolutionRules">
		<xs:sequence>
			<xs:element name="policy" type="Policy"/>
			<xs:element name="rule" type="Rule" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResolutionDoNotRestore"/>
	<xs:complexType name="ResolutionProceedWithCurrent"/>
	<xs:complexType name="ResolutionAutomatic"/>
	<xs:complexType name="ResolutionOveruse"/>
	<xs:complexType name="ResolutionOverwrite"/>
	<xs:complexType name="ResolutionRename" mixed="true">
		<xs:attribute name="new-name" use="required"/>
	</xs:complexType>
	<xs:complexType name="Resolution">
		<xs:choice>
			<xs:element name="do-not-restore" type="ResolutionDoNotRestore"/>
			<xs:element name="proceed-with-current" type="ResolutionProceedWithCurrent"/>
			<xs:element name="automatic" type="ResolutionAutomatic"/>
			<xs:element name="overuse" type="ResolutionOveruse"/>
			<xs:element name="overwrite" type="ResolutionOverwrite"/>
			<xs:element name="rename" type="ResolutionRename"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="AgentCredentials">
		<xs:sequence>
			<xs:element name="host-credentials" type="HostCredentials" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Absense of this parameter means "localhost"</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="agent-executable" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Full name of Agent executable.  Absense of this parameter means internal pleskbackup utility</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="log-directory" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Full path to log directory.  Absense of this parameter means PMM BL can use any directory on it choice</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="HostCredentials">
		<xs:sequence>
			<xs:element name="login" minOccurs="0"/>
			<xs:element name="password" minOccurs="0"/>
			<xs:element name="hostname"/>
		</xs:sequence>
		<xs:attribute name="remoting-type">
			<xs:annotation>
				<xs:documentation>Optional attribute. Represent type of protocol should be used for communication with specified host. Default value is "ssh".</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="ssh"/>
					<xs:enumeration value="dotnet-remoting"/>
					<xs:enumeration value="samba"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="port"/>
	</xs:complexType>
	<xs:complexType name="ControlPanelCredentials">
		<xs:sequence>
			<xs:element name="type">
				<xs:annotation>
					<xs:documentation>Type of Control Panel (plesk, cpanel, etc)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="url">
				<xs:annotation>
					<xs:documentation>url for access to control panel</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="admin-login"/>
			<xs:element name="admin-password"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SrcDstFilesSpecification">
		<xs:sequence>
			<xs:element name="src" type="DumpSpecification"/>
			<xs:element name="dst" type="DumpSpecification"/>
		</xs:sequence>
		<xs:attribute name="guid"/>
		<xs:attribute name="type" type="PleskObjectType"/>
	</xs:complexType>
	<xs:complexType name="DumpSpecification">
		<xs:sequence>
			<xs:element name="dumps-storage-credentials" type="DumpsStorageCredentials"/>
			<xs:element name="name-of-info-xml-file" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="TrueFalseOption">
		<xs:restriction base="xs:token">
			<xs:enumeration value="true"/>
			<xs:enumeration value="false"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="FtpsPolicy">
		<xs:restriction base="xs:token">
			<xs:enumeration value="enabled"/>
			<xs:enumeration value="disabled"/>
			<xs:enumeration value="required"/>
			<xs:enumeration value="custom"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DumpsStorageCredentials">
		<xs:sequence>
			<xs:element name="login" minOccurs="0"/>
			<xs:element name="password" minOccurs="0"/>
			<xs:element name="hostname" minOccurs="0"/>
			<xs:element name="root-dir"/>
			<xs:element name="file-name" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Should be used with @type="file"; may be used with @type="foreign-ftp"</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice>
				<xs:element name="backup-password" type="xs:string" minOccurs="0"/>
				<xs:element name="ignore-backup-password" type="TrueFalseOption" minOccurs="0"/>
			</xs:choice>
			<xs:element name="ignore-backup-sign" type="TrueFalseOption" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="storage-type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="local">
						<xs:annotation>
							<xs:documentation>Backup should be placed into internal local repository according to backup format</xs:documentation>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="foreign-ftp">
						<xs:annotation>
							<xs:documentation> Backup should be placed on external (custom) FTP as file (not as directory) </xs:documentation>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="file">
						<xs:annotation>
							<xs:documentation> Backup should be exported as file (UI will use this option for case when backup should be downloaded to user workstation). </xs:documentation>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="backup-node">
						<xs:annotation>
							<xs:documentation> Backup should be placed on external backup FTP node as directory </xs:documentation>
						</xs:annotation>
					</xs:enumeration>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="use-passive-ftp-mode" type="TrueFalseOption"/>
		<xs:attribute name="use-ftps" type="TrueFalseOption"/>
	</xs:complexType>
	<xs:complexType name="IpPairType">
		<xs:sequence>
			<xs:element name="source" type="xs:string"/>
			<xs:element name="source-ftps" type="xs:string" minOccurs="0"/>
			<xs:element name="destination" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="IPMapping">
		<xs:sequence>
			<xs:element name="shared" type="IpPairType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="exclusive" type="IpPairType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="ftps-policy" type="FtpsPolicy"/>
	</xs:complexType>
	<xs:complexType name="OwnerMapOwner">
		<xs:sequence>
			<xs:element name="guid" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OwnerMapChild">
		<xs:sequence>
			<xs:element name="type" type="PleskObjectType"/>
			<xs:element name="name" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Absense means "any"</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SetOwner">
		<xs:sequence>
			<xs:element name="owner" type="OwnerMapOwner"/>
			<xs:element name="child" type="OwnerMapChild" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OwnersMapping">
		<xs:sequence>
			<xs:element name="set-owner" type="SetOwner" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DBMappingPair">
		<xs:sequence>
			<xs:element name="source" type="DbServer"/>
			<xs:element name="destination" type="DbServer"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DBMapping">
		<xs:sequence>
			<xs:element name="mapping" type="DBMappingPair" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UsedComponentType">
		<xs:sequence>
			<xs:element name="name"/>
			<xs:element name="version" minOccurs="0"/>
			<xs:element name="mode" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResourceUsageType">
		<xs:sequence>
			<xs:element name="component" type="UsedComponentType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="hosting-disk-usage" minOccurs="0"/>
			<xs:element name="mail-disk-usage" minOccurs="0"/>
			<xs:element name="db-disk-usage" minOccurs="0"/>
			<xs:element name="domain-aliases" minOccurs="0"/>
			<xs:element name="mail-accounts" minOccurs="0"/>
			<xs:element name="web-users" minOccurs="0"/>
			<xs:element name="maillists" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResourceUsageDbServerType">
		<xs:sequence>
			<xs:element name="type"/>
			<xs:element name="version" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="InformationType">
		<xs:sequence>
			<xs:element name="message" type="InformationMessageType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="InformationMessageType" mixed="true">
		<xs:attribute name="severity">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="error"/>
					<xs:enumeration value="danger"/>
					<xs:enumeration value="warning"/>
					<xs:enumeration value="info"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="group-id"/>
	</xs:complexType>
	<xs:complexType name="ObjServerType">
		<xs:complexContent>
			<xs:extension base="MigrationObjectServer"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ObjAdminInfoType">
		<xs:complexContent>
			<xs:extension base="MigrationObjectAdminInfo"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ComponentType">
		<xs:attribute name="name" use="required"/>
		<xs:attribute name="version"/>
		<xs:attribute name="mode"/>
	</xs:complexType>
	<xs:complexType name="BusinessModel">
		<xs:sequence>
			<xs:element name="reason-description">
				<xs:complexType mixed="true">
					<xs:attribute name="severity">
						<xs:simpleType>
							<xs:restriction base="xs:token">
								<xs:enumeration value="error"/>
								<xs:enumeration value="warning"/>
								<xs:enumeration value="info"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
			<xs:element name="resolve-options" type="ResolveOptions"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ConfigParameters">
		<xs:sequence>
			<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="name" type="xs:string"/>
						<xs:element name="value" type="xs:string"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MigrationCapabilityInfo">
		<xs:sequence>
			<xs:element name="group" type="MigrationCapabiltyInfoGroup" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MigrationCapabiltyInfoMessage">
		<xs:sequence>
			<xs:element name="severity">
				<xs:simpleType>
					<xs:restriction base="xs:token">
						<xs:enumeration value="info"/>
						<xs:enumeration value="warning"/>
						<xs:enumeration value="error"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="text" maxOccurs="unbounded"/>
			<xs:element name="resolutionDescription" type="MigrationCapabiltyMessageResolutionType"/>
			<xs:element name="objects-list">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="object" type="MigrationCapabiltyObjectType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MigrationCapabiltyInfoGroup">
		<xs:sequence>
			<xs:element name="name"/>
			<xs:element name="message" type="MigrationCapabiltyInfoMessage" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityInfoType">
		<xs:sequence>
			<xs:element name="components" type="AgentCapabilityComponentsType" minOccurs="0"/>
			<xs:element name="resource-usage" type="AgentCapabilityResourceUsageType" minOccurs="0"/>
			<xs:element name="miscellaneous" type="AgentCapabilityMiscellaneousType" minOccurs="0"/>
			<xs:element name="database-servers" type="AgentCapabilityDatabaseServersType" minOccurs="0"/>
            <xs:element name="apache-modules" type="AgentCapabilityApacheModulesType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityNameValueType">
		<xs:sequence>
			<xs:element name="name"/>
			<xs:element name="value"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityComponentsType">
		<xs:sequence>
			<xs:element name="component" type="AgentCapabilityNameValueType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityResourceUsageType">
		<xs:sequence>
			<xs:element name="resource" type="AgentCapabilityNameValueType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityMiscellaneousType">
		<xs:sequence>
			<xs:element name="setting" type="AgentCapabilityNameValueType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityDatabaseServerType">
		<xs:all>
			<xs:element name="type"/>
			<xs:element name="host"/>
			<xs:element name="port"/>
			<xs:element name="version"/>
			<xs:element name="local"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="AgentCapabilityDatabaseServersType">
		<xs:sequence>
			<xs:element name="database-server" type="AgentCapabilityDatabaseServerType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MigrationCapabiltyObjectType">
		<xs:sequence>
			<xs:element name="type"/>
			<xs:element name="name"/>
		</xs:sequence>
	</xs:complexType>
    <xs:complexType name="AgentCapabilityApacheModulesType">
        <xs:sequence>
            <xs:element name="module" type="AgentCapabilityNameValueType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
	<xs:complexType name="MigrationCapabiltyMessageResolutionType">
		<xs:sequence>
			<xs:element name="type">
				<xs:simpleType>
					<xs:restriction base="xs:token">
						<xs:enumeration value="install"/>
						<xs:enumeration value="url"/>
						<xs:enumeration value="nothing"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="text"/>
			<xs:element name="url"/>
			<xs:element name="urlText"/>
			<xs:element name="componentName"/>
		</xs:sequence>
	</xs:complexType>
	<!-- commands -->
	<xs:element name="response" type="Response"/>
	<xs:element name="restore-task-result" type="RestoreTaskResult"/>
	<xs:element name="conflicts-description" type="ConflictsDescription"/>
	<xs:element name="dump-list-query" type="DumpListQuery"/>
	<xs:element name="delete-dump-query" type="DeleteDumpQuery"/>
	<xs:element name="backup-task-description" type="BackupTaskDescription"/>
	<xs:element name="restore-task-description" type="RestoreTaskDescription"/>
	<xs:element name="migration-task-description" type="MigrationTaskDescription"/>
	<xs:element name="resolve-conflicts-task-description" type="ResolveConflictsTaskDescription"/>
	<xs:element name="config-parameters" type="ConfigParameters"/>
	<!-- data -->
	<xs:element name="src-dst-files-specification" type="SrcDstFilesSpecification"/>
	<xs:element name="resolution" type="Resolution"/>
	<xs:element name="agent-credentials" type="AgentCredentials"/>
	<xs:element name="host-credentials" type="HostCredentials"/>
	<xs:element name="dump-specification" type="DumpSpecification"/>
	<xs:element name="control-panel-credentials" type="ControlPanelCredentials"/>
	<xs:element name="dumps-storage-credentials" type="DumpsStorageCredentials"/>
	<xs:element name="ip-mapping" type="IPMapping"/>
	<xs:element name="db-mapping" type="DBMapping"/>
	<xs:element name="owner-mapping" type="OwnersMapping"/>
	<xs:element name="restore-policy" type="ConflictResolutionRules"/>
	<xs:element name="migration-objects-list" type="MigrationObjectList"/>
	<xs:element name="agent-to-use" type="AgentToUse"/>
</xs:schema>
