Index: fedd/Makefile
===================================================================
--- fedd/Makefile	(revision 4e7cf7b9b9bf74a195d6d6b291762fa722095e8a)
+++ fedd/Makefile	(revision c546d453fcaabaf701e597e2322e4f793abbe815)
@@ -18,4 +18,6 @@
 	wsdl2py --file wsdl/fedd_internal.wsdl --complexType \
 		--types=fedd_services_types --output-dir=${MODULE_DIR}
+	wsdl2py --file wsdl/abac.wsdl --complexType \
+		--types=fedd_services_types --output-dir=${MODULE_DIR}
 
 clean:
Index: fedd/wsdl/abac.wsdl
===================================================================
--- fedd/wsdl/abac.wsdl	(revision c546d453fcaabaf701e597e2322e4f793abbe815)
+++ fedd/wsdl/abac.wsdl	(revision c546d453fcaabaf701e597e2322e4f793abbe815)
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<definitions name="fedd"
+  targetNamespace="http://www.isi.edu/faber/abac.wsdl"
+  xmlns:tns="http://www.isi.edu/faber/abac.wsdl"
+  xmlns:xsd1="http://www.isi.edu/faber/abac_types"
+  xmlns:xsd2="http://www.isi.edu/faber/fedd_types"
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+  xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+
+   <import namespace="http://www.isi.edu/faber/abac_types" 
+	 location="abac_types.xsd"/>
+
+   <import namespace="http://www.isi.edu/faber/fedd_types" 
+	 location="fedd_types.xsd"/>
+  <!--
+  The message definitions are all simple embeddings of one of the types
+  from abac_types.xsd 
+  -->
+  <message name="NegotiateRequestMessage">
+    <part name="NegotiateRequestBody" type="xsd1:negotiationType"/>
+  </message>
+
+  <message name="NegotiateResponseMessage">
+    <part name="NegotiateResponseBody" type="xsd1:negotiationType"/>
+  </message>
+
+  <message name="FaultMessage">
+    <part name="FaultBody" type="xsd2:faultType"/>
+  </message>
+
+  <portType name="feddABACPortType">
+    <operation name="Negotiate">
+      <documentation>
+	Stop this experiment and deallocate its resources.
+      </documentation>
+      <input message="tns:NegotiateRequestMessage"/>
+      <output message="tns:NegotiateResponseMessage"/>
+      <fault name="NegotiateFeddFault" message="tns:FaultMessage"/>
+    </operation>
+  </portType>
+
+  <binding name="feddABACBinding" type="tns:feddABACPortType">
+      <documentation>
+	These are really very straight ahead SOAP RPC bindings.  They're 1.1
+	SOAP and not much outside the defaults.  No interesting header packing
+	or fault configuration yet.
+      </documentation>
+    <soap:binding style="rpc" 
+      transport="http://schemas.xmlsoap.org/soap/http"/>
+      <operation name="Negotiate">
+	<soap:operation soapAction="Negotiate"/> 
+	<input>
+	  <soap:body use="literal" parts="tns:NegotiateRequestBody"
+	    namespace="http://www.isi.edu/faber/fedd.wsdl"
+	    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+	</input>
+	<output>
+	  <soap:body use="literal" parts="tns:NegotiateResponseBody"
+	    namespace="http://www.isi.edu/faber/fedd.wsdl"
+	    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+	</output>
+	<fault name="NegotiateFeddFault">
+	  <soap:fault use="literal"  name="tns:FeddFault"
+	    namespace="http://www.isi.edu/faber/fedd.wsdl"
+	    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+	</fault>
+      </operation>
+    </binding>
+
+    <service name="feddService">
+      <documentation>
+	Fedd resource access service
+      </documentation>
+      <port name="feddABACPort" binding="tns:feddABACBinding">
+	<soap:address location="http://www.isi.edu/faber/fedd"/>
+      </port>
+    </service>
+</definitions>
Index: fedd/wsdl/abac_types.xsd
===================================================================
--- fedd/wsdl/abac_types.xsd	(revision c546d453fcaabaf701e597e2322e4f793abbe815)
+++ fedd/wsdl/abac_types.xsd	(revision c546d453fcaabaf701e597e2322e4f793abbe815)
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<xsd:schema targetNamespace="http://www.isi.edu/faber/abac_types"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:tns="http://www.isi.edu/faber/abac_types"
+  xmlns:xsd1="http://www.isi.edu/faber/fedd_types"
+  xmlns="http://www.w3.org/2000/10/XMLSchema">
+
+  <xsd:annotation>
+    <xsd:documentation xml:lang="en">
+      Trust negotiation schema for the NAI Labs ABAC Project.
+      Copyright 2002 Networks Associates Technologies, Inc.
+      All rights reserved.
+    </xsd:documentation>
+  </xsd:annotation> 
+    
+  <xsd:complexType name="negotiationType">
+    <xsd:sequence>
+      <xsd:element name="observation" type="tns:observationType"
+	minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="observationType">
+    <xsd:choice>
+      <xsd:element name="SimpleTTNode" type="tns:simpleTTNodeType"/>
+      <xsd:element name="NodeOp" type="tns:nodeOpType"/>
+      <xsd:element name="EdgeOp" type="tns:edgeOpType"/>
+      <xsd:element name="Message" type="tns:messageType"/>
+      <xsd:element name="Update" type="tns:updateType"/>
+    </xsd:choice>
+    <xsd:attribute name="count" type="xsd:decimal"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="updateType">
+    <xsd:attribute name="value" type="xsd:string"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="messageType">
+    <xsd:sequence>
+      <xsd:element name="EdgeOp" type="tns:edgeOpType" minOccurs="0" 
+	maxOccurs="unbounded"/>
+      <xsd:element name="NodeOp" type="tns:nodeOpType" minOccurs="0" 
+	maxOccurs="unbounded"/>
+      <xsd:element name="evidence" type="tns:evidenceType"/>
+    </xsd:sequence>
+  </xsd:complexType>  
+
+  <xsd:complexType name="simpleTTNodeType">
+    <xsd:sequence>
+      <xsd:element name="Goal"              type="tns:goalType"/>
+      <xsd:element name="SatisfactionState" type="xsd:string"/>
+      <xsd:element name="ProcessingState"   type="xsd:string"/>
+    </xsd:sequence>
+    <xsd:attribute name="type" type="xsd:string" use="optional"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="nodeOpType">
+    <xsd:sequence>
+      <xsd:element name="TrustTarget"      type="tns:goalType"/>
+      <xsd:element name="ProcessingState"  type="xsd:string"/>
+    </xsd:sequence>
+    <xsd:attribute name="type" type="xsd:string" use="optional"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="edgeOpType">
+    <xsd:sequence>
+      <xsd:element name="Parent"           type="tns:goalType"/>
+      <xsd:element name="Child"            type="tns:goalType"/>
+      <xsd:element name="ProcessingState"  type="xsd:string"/>
+    </xsd:sequence>
+    <xsd:attribute name="type" type="xsd:string"/>
+    <xsd:attribute name="newChild" type="xsd:date"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="goalType">
+    <xsd:sequence>
+      <xsd:element name="Verifier"   type="xsd1:IDType"/>
+      <xsd:element name="Target" type="tns:entityType"/>
+      <xsd:element name="Subject"   type="xsd1:IDType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- Here are the new credential descriptions -->
+
+  <xsd:complexType name="entityType">
+    <xsd:choice>
+      <xsd:element name="principal" type="xsd1:IDType"/>
+      <xsd:element name="role" type="tns:simpleRoleType"/>
+      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
+      <xsd:element name="intersection" type="tns:intersectionType"/>
+    </xsd:choice>
+  </xsd:complexType>
+
+  <xsd:complexType name="roleType">
+    <xsd:choice>
+      <xsd:element name="role" type="tns:simpleRoleType"/>
+      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
+      <xsd:element name="intersection" type="tns:intersectionType"/>
+    </xsd:choice>
+  </xsd:complexType>
+
+  <xsd:complexType name="simpleRoleType">
+    <xsd:sequence>
+      <xsd:element name="principal" type="xsd1:IDType"/>
+      <xsd:element name="rolename" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="linkedRoleType">
+    <xsd:sequence>
+      <xsd:element name="linkingrole" type="tns:simpleRoleType"/>
+      <xsd:element name="rolename" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="intersectionType">
+    <xsd:sequence>
+      <xsd:element name="role" type="tns:roleType" minOccurs="2" 
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="credentialType">
+    <xsd:sequence>
+      <xsd:element name="role" type="tns:roleType"/>
+      <xsd:element name="requirement" type="tns:entityType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="evidenceType">
+    <xsd:sequence>
+      <xsd:element name="credential" type="tns:credentialType" minOccurs="1"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+</xsd:schema>
