<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 1999-2022. Plesk International GmbH. All rights reserved. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:include schemaLocation="plesk_common.xsd"/>
	<xs:include schemaLocation="plesk_db.xsd"/>
	<xs:include schemaLocation="plesk_domain.xsd"/>
	<xs:complexType name="DatabaseSetDBInputType">
		<xs:sequence>
			<xs:element name="db-id" type="id_type"/>
			<xs:element name="default-user-id" type="id_type">
				<xs:annotation>
					<xs:documentation>Default for DB WebAdmin</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseServerFilterType">
		<xs:sequence>
			<xs:element name="id" type="id_type" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="dsn" type="string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DBServerTypeRequest">
		<xs:choice>
			<xs:element name="add">
				<xs:annotation>
					<xs:documentation> Create a database server entry of the specified type, specifying the login and password of the database administrator</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="DatabaseServerAddParam">
							<xs:sequence>
								<xs:element name="default" type="NoneType" minOccurs="0"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="set">
				<xs:annotation>
					<xs:documentation> Update the properties for the specified database server</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="DatabaseServerDescriptionOpt">
							<xs:sequence>
								<xs:element name="id" type="id_type"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="del">
				<xs:annotation>
					<xs:documentation> Remove a database server entry. Only remote database servers can be specified. The default database server cannot be removed</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="filter" type="DatabaseServerFilterType"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="set-default">
				<xs:annotation>
					<xs:documentation> </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:choice>
						<xs:element name="id" type="id_type">
							<xs:annotation>
								<xs:documentation>Select a remote database server entry as the default for its database type. Only remote database servers can be specified</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="type">
							<xs:annotation>
								<xs:documentation> Select the local database server of the specified type as the default.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="get-default">
				<xs:annotation>
					<xs:documentation>Get default database server identifier</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="filter">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="type" type="string" minOccurs="0" maxOccurs="unbounded"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="get">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="filter">
							<xs:complexType>
								<xs:complexContent>
									<xs:restriction base="DatabaseServerFilterType">
										<xs:sequence>
											<xs:element name="id" type="id_type" minOccurs="0" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:restriction>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="get-supported-types">
				<xs:complexType/>
			</xs:element>
			<xs:element name="get-local">
				<xs:annotation>
					<xs:documentation>Get local database server identifier</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="filter">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="type" type="string" minOccurs="0" maxOccurs="unbounded"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="DatabaseInputType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="add-db" type="DatabaseAddDbInputType"/>
			<xs:element name="del-db" type="DatabaseDelDbInputType"/>
			<xs:element name="get-db" type="DatabaseGetDBInputType"/>
            <xs:element name="assign-to-subscription" type="DatabaseAssignToSubscriptionInputType"/>
			<xs:element name="set-default-user" type="DatabaseSetDBInputType"/>
			<xs:element name="get-default-user" type="DatabaseGetDefaultUserFilterType"/>
			<xs:element name="add-db-user" type="DatabaseAddDBUserInputType"/>
			<xs:element name="del-db-user" type="DatabaseDelDBUserInputType"/>
			<xs:element name="get-db-users" type="DatabaseGetDBUsersInputType"/>
			<xs:element name="set-db-user" type="DatabaseSetDBUserInputType"/>
			<xs:element name="set-custom-host" type="DatabaseSetCustomHostInputType"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="DatabaseAddDbInputType">
		<xs:sequence>
			<xs:element name="webspace-id" type="id_type"/>
			<xs:element name="name" type="string"/>
			<xs:element name="type" type="string"/>
			<xs:element name="db-server-id" type="id_type" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Required for Plesk Administartor of Plesk for Unix only </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseDelDbInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseFilterType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseFilterType">
		<xs:choice minOccurs="0">
			<xs:element name="id" maxOccurs="unbounded"/>
			<xs:element name="webspace-id" type="id_type" maxOccurs="unbounded"/>
			<xs:element name="webspace-name" type="domainName" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="DatabaseGetDBInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseFilterType"/>
		</xs:sequence>
	</xs:complexType>
    <xs:complexType name="DatabaseAssignToSubscriptionInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseFilterType"/>
            <xs:element name="webspace-id" type="id_type"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseAddDBUserInputType">
		<xs:sequence>
			<xs:choice>
				<xs:element name="db-id" type="id_type"/>
				<xs:sequence>
					<xs:element name="webspace-id" type="id_type"/>
					<xs:element name="db-server-id" type="id_type"/>
				</xs:sequence>
			</xs:choice>
			<xs:element name="login" type="string"/>
			<xs:sequence>
				<xs:element name="password" type="string"/>
				<xs:element name="password-type" type="passwdType" minOccurs="0"/>
			</xs:sequence>
			<xs:element name="acl" type="DatabaseUserAclType" minOccurs="0"/>
			<xs:element name="allow-access-from" type="DatabaseUserRemoteAccessRulesType" minOccurs="0"/>
			<xs:element name="role" type="string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseDelDBUserInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseUserFilterType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseUserFilterType">
		<xs:choice minOccurs="0">
			<xs:element name="id" type="id_type" maxOccurs="unbounded"/>
			<xs:element name="db-id" type="id_type" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="DatabaseGetDBUsersInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseUserFilterType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseSetDBUserInputType">
		<xs:sequence>
			<xs:element name="id" type="id_type"/>
			<xs:element name="login" type="string" minOccurs="0"/>
			<xs:sequence minOccurs="0">
				<xs:element name="password" type="string"/>
				<xs:element name="password-type" type="passwdType" minOccurs="0"/>
			</xs:sequence>
			<xs:element name="acl" type="DatabaseUserAclType" minOccurs="0"/>
			<xs:element name="allow-access-from" type="DatabaseUserRemoteAccessRulesType" minOccurs="0"/>
			<xs:element name="role" type="string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseSetCustomHostInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseFilterType"/>
			<xs:element name="host" type="string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseDBFilterType">
		<xs:sequence>
			<xs:element name="db-id" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Database indentifier</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseGetDefaultUserInputType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseDBFilterType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseDefaultUserFilterType">
		<xs:choice minOccurs="0">
			<xs:element name="db-id" type="id_type" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="DatabaseGetDefaultUserFilterType">
		<xs:sequence>
			<xs:element name="filter" type="DatabaseDBFilterType"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
