The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:vzlt="http://www.swsoft.com/webservices/vzl/4.0.0/types" xmlns="http://www.swsoft.com/webservices/vzl/4.0.0/licensem" xmlns:vzlp="http://www.swsoft.com/webservices/vzl/4.0.0/protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.swsoft.com/webservices/vzl/4.0.0/licensem" elementFormDefault="qualified">
	<xs:import namespace="http://www.swsoft.com/webservices/vzl/4.0.0/types" schemaLocation="VZLCommonTypes.xsd"/>
	<xs:import namespace="http://www.swsoft.com/webservices/vzl/4.0.0/protocol" schemaLocation="VZLProtocol.xsd"/>
	<xs:element name="licensem" type="licensemType" substitutionGroup="vzlp:operator">
		<xs:annotation>
			<xs:documentation>License Management</xs:documentation>
			<xs:appinfo>
				<states>
					<nonexistent/>
					<down/>
					<mounted/>
					<running/>
					<repairing/>
				</states>
			</xs:appinfo>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="licensemType" mixed="false">
		<xs:complexContent mixed="false">
			<xs:extension base="vzlp:operator_functionalType">
				<xs:choice>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>Input</xs:documentation>
						</xs:annotation>
						<xs:element ref="list"/>
						<xs:element ref="install"/>
						<xs:element ref="parse"/>
						<xs:element ref="delete"/>
						<xs:element ref="get_hwid"/>
						<xs:element ref="update"/>
					</xs:choice>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>Output</xs:documentation>
						</xs:annotation>
						<xs:element ref="hwid" maxOccurs="unbounded"/>
						<xs:element ref="license" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="licenses" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="serial"/>
					</xs:choice>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="list">
		<xs:annotation>
			<xs:documentation>Gets licenses from HW Node  by type, serial. Returns licenses or error.</xs:documentation>
			<xs:appinfo>
				<creds>
					<user/>
				</creds>
			</xs:appinfo>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="serial" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>License type.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="install">
		<xs:annotation>
			<xs:documentation>Uploads new license(s). Returns list of licenses or error.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="license" type="xs:string">
					<xs:annotation>
						<xs:documentation>Base64 encoded license body, product key or product activation code.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="options">
					<xs:annotation>
						<xs:documentation>Install options.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="transfer" type="xs:boolean" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Transfer key to other Hardware Node. It used only when "license" argument contain product activation code.</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="parse">
		<xs:annotation>
			<xs:documentation>Parse license provided and get its info. Returns list of licenses or error.</xs:documentation>
			<xs:appinfo>
				<creds>
					<user/>
				</creds>
			</xs:appinfo>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="body" type="xs:string">
					<xs:annotation>
						<xs:documentation>Base64 encoded license body</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>License type. One of HW, PIM, etc. If specified, the license must contain at least one section of the type given for operation to succeed</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="serial" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="delete">
		<xs:annotation>
			<xs:documentation>Delete license from HW Node. Returns OK/Error.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>License type. One of HW, PIM, etc. If specified, the license must contain at least one section of the type given for operation to succeed</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="serial" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="get_hwid">
		<xs:annotation>
			<xs:documentation>Returns Hardware Node HWID(s) or Error.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="update">
		<xs:annotation>
			<xs:documentation>Updates license. Returns updated license or error.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="serial" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="hwid" type="xs:string">
		<xs:annotation>
			<xs:documentation>Hardware Node HWID.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="serial" type="xs:string"/>
	<xs:element name="parameter" type="parameterType"/>
	<xs:complexType name="license_eventType" mixed="false">
		<xs:complexContent mixed="false">
			<xs:extension base="vzlt:event_dataType">
				<xs:sequence minOccurs="0">
					<xs:element name="license" maxOccurs="unbounded">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="serial" type="xs:base64Binary"/>
								<xs:element name="status" type="xs:base64Binary" minOccurs="0">
									<xs:annotation>
										<xs:documentation>License was deleted if status is absent.</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="parameterType">
		<xs:sequence>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="value" type="xs:base64Binary"/>
			<xs:element name="used" type="xs:base64Binary" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Number of consumed resources.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="license" type="licenseType">
		<xs:annotation>
			<xs:documentation>License information including current status</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="licenseType">
		<xs:sequence>
			<xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="licenses" type="licensesType"/>
	<xs:complexType name="licensesType">
		<xs:sequence>
			<xs:element name="body" type="xs:string"/>
			<xs:element ref="license" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="listResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="licenses" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="parseResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="license" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="installResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="license" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="updateResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="license" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="get_hwidResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="hwid" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="deleteResponse">
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="licensem_configurationType">
		<xs:complexContent>
			<xs:extension base="vzlp:event_configurationType"/>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>