Content Manager's Factory PortType WSDL

From Gcube Wiki
Jump to: navigation, search
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="factory"
	targetNamespace="http://gcube-system.org/namespaces/contentmanagement/contentmanager"
	xmlns="http://schemas.xmlsoap.org/wsdl/"
	xmlns:tns="http://gcube-system.org/namespaces/contentmanagement/contentmanager"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:corefaults="http://gcube-system.org/namespaces/common/core/faults"
	xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"
	xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
	xmlns:provider="http://gcube-system.org/namespaces/common/core/porttypes/GCUBEProvider"
	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
	xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	xmlns:coretypes="http://gcube-system.org/namespaces/common/core/types">
 
	<import namespace="http://gcube-system.org/namespaces/common/core/porttypes/GCUBEProvider"   
		location="../gcube/common/core/providers/GCUBEProvider.wsdl"/>
 
	<wsdl:import
		namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
		location="../wsrf/properties/WS-ResourceProperties.wsdl" />
 
	<wsdl:import namespace="http://gcube-system.org/namespaces/common/core/faults"
		location="../gcube/common/core/faults/GCUBEFaults.wsdl" />
 
 
 
	<!--
		============================================================ T Y P E S
 
		============================================================
	-->
	<types>
		<xsd:schema
			targetNamespace="http://gcube-system.org/namespaces/contentmanagement/contentmanager"
			xmlns:tns="http://gcube-system.org/namespaces/contentmanagement/contentmanager"
			xmlns:ocma="http://gcube-system.org/namespaces/common"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
			<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="../ws/addressing/WS-Addressing.xsd" />
			<xsd:import namespace="http://gcube-system.org/namespaces/common/core/types" schemaLocation="../gcube/common/core/types/GCUBETypes.xsd" />
			<xsd:import namespace="http://gcube-system.org/namespaces/common" schemaLocation="ocma.xsd" />
 
			<xsd:element name="CreateRequest" type="tns:CMSCreateParameters"/>
			<xsd:element name="CreateResponse" type="tns:collectionReferences" />
 
			<xsd:element name="CreateAsyncRequest" type="tns:CMSCreateParameters"/>
			<xsd:element name="CreateAsyncResponse" type="tns:RSLocator" /> <!-- of CMSCreateOutcome -->
 
			<xsd:complexType name="RSLocator">
				<xsd:complexContent>
				<xsd:restriction base="xsd:string">
				</xsd:restriction>
				</xsd:complexContent>
			</xsd:complexType>
 
			<xsd:complexType name="CMSCreateParameters">
				<xsd:complexContent>
					<xsd:extension base="ocma:CreateParameters">
						<xsd:sequence>
							<xsd:element name="plugin" type ="xsd:string" nillable="false"/>
							<xsd:element name="payload" type="tns:Payload"/>
						</xsd:sequence>
					</xsd:extension>
				</xsd:complexContent>
			</xsd:complexType>
 
 
			<xsd:complexType name="CMSCreateOutcome">
				<xsd:choice>
					<xsd:element name="Success" type="tns:collectionReferences"/>
					<xsd:element name="Failure">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="fault" type="corefaults:GCUBEFault"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
			</xsd:complexType>
 
			<xsd:complexType name="Payload">
				<xsd:sequence>
					<xsd:any processContents="skip" namespace="##any"/>
				</xsd:sequence>
			</xsd:complexType>
 
			<xsd:complexType name="collectionReference">
				<xsd:sequence>
					<xsd:element name="collectionID" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="reader" nillable="true" type="wsa:EndpointReferenceType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="writer" nillable="true" type="wsa:EndpointReferenceType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>	 
			</xsd:complexType>
 
			<xsd:complexType name="collectionReferences">
				<xsd:sequence>
					<xsd:element name="references" nillable="false" type="tns:collectionReference" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:complexType>
 
			<xsd:complexType name="PluginDescription">
				<xsd:sequence>
					<xsd:element name="name" nillable="false" type="xsd:string"	minOccurs="1" maxOccurs="1" />
					<xsd:element name="description" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
					<xsd:element name="property" nillable="true" type="coretypes:descriptiveProperty" minOccurs="0" maxOccurs="unbound" />
					<xsd:element name="parameters" nillable="true" type="tns:Payload" minOccurs="0" maxOccurs="unbound" />
				</xsd:sequence>
			</xsd:complexType>
 
		</xsd:schema>
 
	</types>
 
 
	<message name="CreateRequest">
		<part name="request" element="tns:CreateRequest" />
	</message>
	<message name="CreateResponse">
		<part name="response" element="tns:CreateResponse" />
	</message>
 
	<message name="CreateAsyncRequest">
		<part name="request" element="tns:CreateAsyncRequest" />
	</message>
	<message name="CreateAsyncResponse">
		<part name="response" element="tns:CreateAsyncResponse" />
	</message>
 
	<portType name="FactoryPortType"
		wsdlpp:extends="provider:GCUBEProvider">
  		<!-- wsrp:ResourceProperties="tns:FactoryResourceProperties" -->
 
 
		<operation name="create">
			<input message="tns:CreateRequest" />
			<output message="tns:CreateResponse" />
			<fault name="fault" message="corefaults:GCUBEFaultMessage"></fault>
		</operation>
 
		<operation name="createAsync">
			<input message="tns:CreateAsyncRequest" />
			<output message="tns:CreateAsyncResponse" />
			<fault name="fault" message="corefaults:GCUBEFaultMessage"></fault>
		</operation>
 
	</portType>
 
 
</definitions>