Master Factory WSDL

From Gcube Wiki
Jump to: navigation, search
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Factory"
    targetNamespace="http://gcube-system.org/namespaces/dir/master"
    xmlns:tns="http://gcube-system.org/namespaces/dir/master"
  	xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:coretypes="http://gcube-system.org/namespaces/common/core/types" 
    xmlns:corefaults="http://gcube-system.org/namespaces/common/core/faults"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
     
	<import namespace="http://gcube-system.org/namespaces/common/core/faults" location="../gcube/common/core/faults/GCUBEFaults.wsdl"/>
   
 	<types>
		<xsd:schema targetNamespace="http://gcube-system.org/namespaces/dir/master">
		    		
		    <xsd:import namespace="http://gcube-system.org/namespaces/common/core/types" schemaLocation="../gcube/common/core/types/GCUBETypes.xsd"/>
		    
			<xsd:element name="createMaster" type="tns:FactoryParams" />
			<xsd:element name="createMasterResponse" type="wsa:EndpointReferenceType" />
			
			<xsd:complexType name="FactoryParams">
				<xsd:sequence>
					<xsd:element name="collectionIDs" type = "xsd:string" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:complexType>
			
			<xsd:element name="deployPlugin" type="tns:Plugin" />
			<xsd:element name="deployPluginResponse" type="coretypes:VOID" />
			
			<xsd:element name="deployPluginRS" type="xsd:string" />
			<xsd:element name="deployPluginRSResponse" type="coretypes:VOID" />
		
			<xsd:complexType name="Plugin">
				<xsd:sequence>
					<xsd:element name="url"  type="xsd:string" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:complexType>
	      
		</xsd:schema>
	</types>

	<message name="createMasterInputMessage">
		<part name="request" element="tns:createMaster"/>
	</message>
	<message name="createMasterOutputMessage">
		<part name="response" element="tns:createMasterResponse"/>
	</message>
	
	<message name="deployPluginInputMessage">
		<part name="parameters" element="tns:deployPlugin"/>
	</message>
	<message name="deployPluginOutputMessage">
		<part name="parameters" element="tns:deployPluginResponse"/>
	</message>

	<message name="deployPluginRSInputMessage">
		<part name="parameters" element="tns:deployPluginRS"/>
	</message>
	<message name="deployPluginRSOutputMessage">
		<part name="parameters" element="tns:deployPluginRSResponse"/>
	</message>
	
	<portType name="FactoryPortType">
			
		<operation name="createMaster">
		 	<documentation>Returns the endpoint of a Master WS-Resource for one or more target collections.</documentation>
			<input message="tns:createMasterInputMessage"/>
			<output message="tns:createMasterOutputMessage"/>	
			<fault name="fault" message="corefaults:GCUBEFaultMessage"/>
		</operation>
		
		<operation name="deployPlugin">
			<documentation>Deploys a plugin that conforms to the plugin requirements of the service.
	 			In particular, the plugin must be packaged in JAR whose manifest file includes
	 			an <code>Entry-Point</code> property set to the name of {@link org.gcube.dir.master.selection.rankers.Ranker} class or
	 			a {@link org.gcube.dir.master.fusion.mergers.Merger} class.
	 		</documentation>
			<input message="tns:deployPluginInputMessage"/>
			<output message="tns:deployPluginOutputMessage"/>
			<fault name="fault" message="corefaults:GCUBEFaultMessage"></fault>
		</operation>
		
		<operation name="deployPluginRS">
			<documentation>Uses the ResultSetService to deploys a plugin that conforms to the plugin requirements of the service.
	 			In particular, the plugin must be packaged in JAR whose manifest file includes
	 			an <code>Entry-Point</code> property set to the name of {@link org.gcube.dir.master.selection.rankers.Ranker} class or
	 			a {@link org.gcube.dir.master.fusion.mergers.Merger} class.
	 		</documentation>
			<input message="tns:deployPluginRSInputMessage"/>
			<output message="tns:deployPluginRSOutputMessage"/>
			<fault name="fault" message="corefaults:GCUBEFaultMessage"></fault>
		</operation>
	
	</portType>

</definitions>