Files
server/opt/psa/PMM/schemas/pmm_api_xml_protocols.xsd
cutemeli 0bfc6c8425 Initial
2025-12-22 10:32:59 +00:00

1620 lines
62 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 1999-2025. WebPros International GmbH. All rights reserved. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="PlainData">
<xs:sequence>
<xs:element name="plain-data"/>
</xs:sequence>
</xs:complexType>
<!-- 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:enumeration value="process-auxiliary"/>
<xs:enumeration value="process-content"/>
</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" mixed="true">
<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" type="xs:integer"/>
<xs:element name="errmsg" type="xs:string" minOccurs="0"/>
<xs:element name="data" type="Data" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DumpVolume" mixed="true">
<xs:attribute name="size"/>
</xs:complexType>
<xs:complexType name="Dump">
<xs:sequence>
<xs:element name="backup-object" minOccurs="0">
<xs:complexType>
<xs:attribute name="type" type="PleskObjectType"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="guid" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="dump-status" type="DumpStatusFull" maxOccurs="unbounded"/>
<xs:element name="volumes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="volume" type="DumpVolume" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="related-dumps" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="related-dump" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="storages" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="storage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="marker" type="xs:string" minOccurs="0" 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="increment-base">
<xs:annotation>
<xs:documentation>Initial incremental backup base timestamp.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="isFull"/>
<xs:attribute name="has-parent" type="xs:boolean"/>
<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:attribute name="encryption-type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="panel-key"/>
<xs:enumeration value="password"/>
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dump-version" type="xs:string"/>
<xs:attribute name="dump-original-version"/>
<xs:attribute name="dump-format"/>
<xs:attribute name="content-included"/>
<xs:attribute name="profile-log-path" type="xs: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:enumeration value="PARTIAL">
<xs:annotation>
<xs:documentation>Some parts of incremental backup were not found</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BackupProcessStatus">
<xs:annotation>
<xs:documentation>Status of a backup process. Default value is "OK".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="SUCCESS"/>
<xs:enumeration value="INFO"/>
<xs:enumeration value="WARNING"/>
<xs:enumeration value="ERROR"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="DumpList">
<xs:sequence>
<xs:element name="dump" type="Dump" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="skipped-files-count">
<xs:annotation>
<xs:documentation>Number of files, which were detected as non-dumps</xs:documentation>
</xs:annotation>
</xs:attribute>
</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-pid"/>
<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="is-dump-imported" type="xs:boolean"/>
<xs:attribute name="is-dump-temporary" type="xs:boolean"/>
<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:attribute name="session-path" type="xs:string"/>
<xs:attribute name="logs-dir" type="xs:string"/>
</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="restore-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="DumpName" 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:element name="vendor-login" 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="MigrationObjectList">
<xs:sequence>
<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:attribute name="check"/>
</xs:complexType>
<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 ref="dump"/>
<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:element name="child-dumps-list" type="ChildDumpsList"/>
<xs:element name="dump-name" type="DumpName"/>
<xs:element name="plain-data" type="PlainData"/>
<xs:element name="repository-check-errors" type="RepositoryCheckErrors"/>
</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:attribute name="backup-process-status" type="BackupProcessStatus"/>
</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="import" 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="stopping" type="Stopping"/>
<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:element ref="dump"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="Starting"/>
<xs:complexType name="Stopping"/>
<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:sequence>
<xs:element ref="dump" minOccurs="0"/>
</xs:sequence>
<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:element name="storage-name" type="xs:string" minOccurs="0"/>
</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">
<xs:annotation>
<xs:documentation>Type of Plesk Object specified. The absence of attribute means "all types of Plesk Objects" or "any Plesk Object type"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="any"/>
<xs:enumeration value="server"/>
<xs:enumeration value="reseller"/>
<xs:enumeration value="client"/>
<xs:enumeration value="domain"/>
</xs:restriction>
</xs:simpleType>
</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:attribute name="marker">
<xs:annotation>
<xs:documentation>Custom backup marker</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="owner-guid" type="xs:string">
<xs:annotation>
<xs:documentation>GUID of the user which perform the operation</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="BackupTaskDescription">
<xs:sequence>
<xs:element name="misc" type="BackupTaskDescriptionMisc"/>
<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:element name="file-to-exclude" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="extension" minOccurs="0">
<xs:complexType>
<xs:attribute name="id" type="xs:integer" use="required"/>
<xs:attribute name="context" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</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="owner-name" type="xs:string"/>
<xs:attribute name="owner-may-use-server-storage">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="top-object-type" type="PleskObjectType"/>
<xs:attribute name="top-object-id" type="xs:string"/>
<xs:attribute name="top-object-name" type="xs:string"/>
<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="marker" type="xs:string"/>
<xs:attribute name="keep-local-backup" type="TrueFalseOption"/>
</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="incremental-creation-date" type="xs:string">
<xs:annotation>
<xs:documentation>Identify initial dump for incremental backup</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="incremental" type="xs:string">
<xs:annotation>
<xs:documentation>Make incremental backup. Base will be founded automatically or full dump will be created instead</xs:documentation>
</xs:annotation>
</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" type="CompressionLevel"/>
<xs:attribute name="exclude-mail" type="TrueFalseOption"/>
<xs:attribute name="exclude-files" type="TrueFalseOption"/>
<xs:attribute name="exclude-databases" type="TrueFalseOption"/>
<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="mail-from" type="xs:string">
<xs:annotation>
<xs:documentation>If present - send log of backup task from this email</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="mail-to" type="xs:string">
<xs:annotation>
<xs:documentation>If present - send log of backup task to this email</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="mail-on-errors-only" type="TrueFalseOption"/>
<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:attribute name="exclude-logs" type="TrueFalseOption"/>
<xs:attribute name="exclude-extensions" type="TrueFalseOption"/>
<xs:attribute name="include-server-settings" type="TrueFalseOption"/>
</xs:complexType>
<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="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:element name="content-filter" type="RestoreTaskContentFilterInfo" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="owner-guid" type="xs:string" use="required"/>
<xs:attribute name="owner-type" type="PleskObjectType" use="required"/>
<xs:attribute name="owner-name" type="xs:string"/>
<xs:attribute name="mail-from" type="xs:string"/>
<xs:attribute name="mail-to" type="xs:string"/>
<xs:attribute name="top-object-type" type="PleskObjectType"/>
<xs:attribute name="top-object-id" type="xs:string"/>
<xs:attribute name="top-object-name" type="xs:string"/>
<xs:attribute name="top-object-guid" type="xs:string"/>
<xs:attribute name="operability-check" type="TrueFalseOption"/>
<xs:attribute name="user-login" type="xs:string"/>
<xs:attribute name="real-user-login" 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="content-restore-type" type="xs:string"/>
<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:sequence>
</xs:complexType>
<xs:complexType name="SessionId" mixed="true"/>
<xs:complexType name="RestoreTaskDescriptionObjects">
<xs:choice>
<xs:element name="all" type="EmptyType"/>
<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="RestoreTaskContentFilterInfo">
<xs:sequence>
<xs:element name="content-type" type="xs:string"/>
<xs:element name="content-data" type="xs:string"/>
</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="SrcDstFilesSpecification">
<xs:sequence>
<xs:element name="src" type="DumpSpecification"/>
<xs:element name="dst" type="DumpSpecification"/>
</xs:sequence>
<xs:attribute name="guid" type="xs:string"/>
<xs:attribute name="type" type="PleskObjectType"/>
<xs:attribute name="object-type" type="PleskObjectType"/>
<xs:attribute name="object-name" type="xs:string"/>
</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="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:element name="ignore-backup-password" type="TrueFalseOption" minOccurs="0"/>
<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:enumeration value="extension"/>
</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="ChildDumpsList">
<xs:sequence>
<xs:element name="dump" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TaskType">
<xs:restriction base="xs:token">
<xs:enumeration value="Backup"/>
<xs:enumeration value="Restore"/>
<xs:enumeration value="Migration"/>
<xs:enumeration value="Deploy"/>
<xs:enumeration value="ConflictResolve"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="TasksListQuery">
<xs:sequence>
<xs:element name="type" type="TaskType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="owner-guid" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="top-object-type" type="PleskObjectType" minOccurs="0"/>
<xs:element name="top-object-id" type="xs:string" minOccurs="0"/>
<xs:element name="marker" type="xs:string" minOccurs="0"/>
</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>
<xs:complexType name="EnvList">
<xs:sequence>
<xs:element name="env" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RepositoryCheckErrors">
<xs:sequence>
<xs:element name="repository-check-error" type="RepositoryCheckError" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RepositoryCheckError">
<xs:sequence>
<xs:element name="operation" type="xs:string"/>
<xs:element name="message" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EmptyType" mixed="true">
<xs:sequence/>
</xs:complexType>
<xs:simpleType name="CompressionLevel">
<xs:restriction base="xs:token">
<xs:enumeration value="no-compression"/>
<xs:enumeration value="fastest"/>
<xs:enumeration value="fast"/>
<xs:enumeration value="normal"/>
<xs:enumeration value="maximum"/>
</xs:restriction>
</xs:simpleType>
<!-- 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="resolve-conflicts-task-description" type="ResolveConflictsTaskDescription"/>
<xs:element name="config-parameters" type="ConfigParameters"/>
<xs:element name="child-dumps-list" type="ChildDumpsList"/>
<xs:element name="tasks-list-query" type="TasksListQuery"/>
<!-- data -->
<xs:element name="src-dst-files-specification" type="SrcDstFilesSpecification"/>
<xs:element name="resolution" type="Resolution"/>
<xs:element name="dump-specification" type="DumpSpecification"/>
<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:element name="env-list" type="EnvList"/>
<xs:element name="dump" type="Dump"/>
</xs:schema>