using System;

namespace Microsoft.RFIDLab.EPCISDemo.VerisignEPCIS
{
	/// <summary>
	/// Summary description for ObservationProfile.
	/// </summary>
	//------------------------------------------------------------------------------
	// <autogenerated>
	//     This code was generated by a tool.
	//     Runtime Version: 1.1.4322.2032
	//
	//     Changes to this file may cause incorrect behavior and will be lost if 
	//     the code is regenerated.
	// </autogenerated>
	//------------------------------------------------------------------------------

	// 
	// This source code was auto-generated by wsdl, Version=1.1.4322.2032.
	// 
	using System.Diagnostics;
	using System.Xml.Serialization;
	using System;
	using System.Web.Services.Protocols;
	using System.ComponentModel;
	using System.Web.Services;


	/// <remarks/>
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Web.Services.WebServiceBindingAttribute(Name="ObservationDataProfileBinding", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class ObservationDataProfile : System.Web.Services.Protocols.SoapHttpClientProtocol 
	{
    
		public AuthInfoType AuthInfo;
    
		/// <remarks/>
		public ObservationDataProfile() 
		{
			this.Url = "http://microsoft.verisignepctest.com/epcis/observation/ObservationProfile";
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/logEvents", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlElementAttribute("status", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		public bool logEvents([System.Xml.Serialization.XmlArrayAttribute("logEvents", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] [System.Xml.Serialization.XmlArrayItemAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1", IsNullable=false)] logEvent[] logEvents1) 
		{
			object[] results = this.Invoke("logEvents", new object[] {
																		 logEvents1});
			return ((bool)(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BeginlogEvents(logEvent[] logEvents1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("logEvents", new object[] {
																  logEvents1}, callback, asyncState);
		}
    
		/// <remarks/>
		public bool EndlogEvents(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((bool)(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/getEventsByLoc" +
			 "ation", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlArrayAttribute("observations", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		[return: System.Xml.Serialization.XmlArrayItemAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1", IsNullable=false)]
		public logEvent[] getEventsByLocation([System.Xml.Serialization.XmlElementAttribute("getEventsByLocation", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] getEventsByLocation getEventsByLocation1) 
		{
			object[] results = this.Invoke("getEventsByLocation", new object[] {
																				   getEventsByLocation1});
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegingetEventsByLocation(getEventsByLocation getEventsByLocation1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("getEventsByLocation", new object[] {
																			getEventsByLocation1}, callback, asyncState);
		}
    
		/// <remarks/>
		public logEvent[] EndgetEventsByLocation(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/getEventsByLoc" +
			 "ationByTimeRange", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlArrayAttribute("observations", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		[return: System.Xml.Serialization.XmlArrayItemAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1", IsNullable=false)]
		public logEvent[] getEventsByLocationByTimeRange([System.Xml.Serialization.XmlElementAttribute("getEventsByLocationByTimeRange", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] getEventsByLocationByTimeRange getEventsByLocationByTimeRange1) 
		{
			object[] results = this.Invoke("getEventsByLocationByTimeRange", new object[] {
																							  getEventsByLocationByTimeRange1});
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegingetEventsByLocationByTimeRange(getEventsByLocationByTimeRange getEventsByLocationByTimeRange1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("getEventsByLocationByTimeRange", new object[] {
																					   getEventsByLocationByTimeRange1}, callback, asyncState);
		}
    
		/// <remarks/>
		public logEvent[] EndgetEventsByLocationByTimeRange(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/deleteEventsBy" +
			 "LocationByTimeRange", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlElementAttribute("status", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		public bool deleteEventsByLocationByTimeRange([System.Xml.Serialization.XmlElementAttribute("deleteEventsByLocationByTimeRange", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] deleteEventsByLocationByTimeRange deleteEventsByLocationByTimeRange1) 
		{
			object[] results = this.Invoke("deleteEventsByLocationByTimeRange", new object[] {
																								 deleteEventsByLocationByTimeRange1});
			return ((bool)(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegindeleteEventsByLocationByTimeRange(deleteEventsByLocationByTimeRange deleteEventsByLocationByTimeRange1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("deleteEventsByLocationByTimeRange", new object[] {
																						  deleteEventsByLocationByTimeRange1}, callback, asyncState);
		}
    
		/// <remarks/>
		public bool EnddeleteEventsByLocationByTimeRange(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((bool)(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/getEventsByEPC" +
			 "", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlArrayAttribute("observations", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		[return: System.Xml.Serialization.XmlArrayItemAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1", IsNullable=false)]
		public logEvent[] getEventsByEPC([System.Xml.Serialization.XmlElementAttribute("getEventsByEPC", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] getEventsByEPC getEventsByEPC1) 
		{
			object[] results = this.Invoke("getEventsByEPC", new object[] {
																			  getEventsByEPC1});
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegingetEventsByEPC(getEventsByEPC getEventsByEPC1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("getEventsByEPC", new object[] {
																	   getEventsByEPC1}, callback, asyncState);
		}
    
		/// <remarks/>
		public logEvent[] EndgetEventsByEPC(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/getEventsByEPC" +
			 "ByTimeRange", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlArrayAttribute("observations", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		[return: System.Xml.Serialization.XmlArrayItemAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1", IsNullable=false)]
		public logEvent[] getEventsByEPCByTimeRange([System.Xml.Serialization.XmlElementAttribute("getEventsByEPCByTimeRange", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] getEventsByEPCByTimeRange getEventsByEPCByTimeRange1) 
		{
			object[] results = this.Invoke("getEventsByEPCByTimeRange", new object[] {
																						 getEventsByEPCByTimeRange1});
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegingetEventsByEPCByTimeRange(getEventsByEPCByTimeRange getEventsByEPCByTimeRange1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("getEventsByEPCByTimeRange", new object[] {
																				  getEventsByEPCByTimeRange1}, callback, asyncState);
		}
    
		/// <remarks/>
		public logEvent[] EndgetEventsByEPCByTimeRange(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/deleteEventsBy" +
			 "EPCByTimeRange", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlElementAttribute("status", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		public bool deleteEventsByEPCByTimeRange([System.Xml.Serialization.XmlElementAttribute("deleteEventsByEPCByTimeRange", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] deleteEventsByEPCByTimeRange deleteEventsByEPCByTimeRange1) 
		{
			object[] results = this.Invoke("deleteEventsByEPCByTimeRange", new object[] {
																							deleteEventsByEPCByTimeRange1});
			return ((bool)(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegindeleteEventsByEPCByTimeRange(deleteEventsByEPCByTimeRange deleteEventsByEPCByTimeRange1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("deleteEventsByEPCByTimeRange", new object[] {
																					 deleteEventsByEPCByTimeRange1}, callback, asyncState);
		}
    
		/// <remarks/>
		public bool EnddeleteEventsByEPCByTimeRange(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((bool)(results[0]));
		}
    
		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("AuthInfo")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1/getEventsByTim" +
			 "eRange", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
		[return: System.Xml.Serialization.XmlArrayAttribute("observations", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
		[return: System.Xml.Serialization.XmlArrayItemAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1", IsNullable=false)]
		public logEvent[] getEventsByTimeRange([System.Xml.Serialization.XmlElementAttribute("getEventsByTimeRange", Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")] getEventsByTimeRange getEventsByTimeRange1) 
		{
			object[] results = this.Invoke("getEventsByTimeRange", new object[] {
																					getEventsByTimeRange1});
			return ((logEvent[])(results[0]));
		}
    
		/// <remarks/>
		public System.IAsyncResult BegingetEventsByTimeRange(getEventsByTimeRange getEventsByTimeRange1, System.AsyncCallback callback, object asyncState) 
		{
			return this.BeginInvoke("getEventsByTimeRange", new object[] {
																			 getEventsByTimeRange1}, callback, asyncState);
		}
    
		/// <remarks/>
		public logEvent[] EndgetEventsByTimeRange(System.IAsyncResult asyncResult) 
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((logEvent[])(results[0]));
		}
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class getEventsByTimeRange 
	{
    
		/// <remarks/>
		public System.DateTime fromTime;
    
		/// <remarks/>
		public System.DateTime toTime;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class deleteEventsByEPCByTimeRange 
	{
    
		/// <remarks/>
		public IdentifierType epc;
    
		/// <remarks/>
		public System.DateTime fromTime;
    
		/// <remarks/>
		public System.DateTime toTime;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:universal:Identifier:xml:schema:1")]
	public class IdentifierType 
	{
    
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="token")]
		public string schemeID;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="token")]
		public string schemeAgencyID;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="token")]
		public string schemeVersionID;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
		public string schemeURI;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlTextAttribute(DataType="token")]
		public string Value;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class getEventsByEPCByTimeRange 
	{
    
		/// <remarks/>
		public IdentifierType epc;
    
		/// <remarks/>
		public System.DateTime fromTime;
    
		/// <remarks/>
		public System.DateTime toTime;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class getEventsByEPC 
	{
    
		/// <remarks/>
		public IdentifierType epc;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class deleteEventsByLocationByTimeRange 
	{
    
		/// <remarks/>
		public IdentifierType location;
    
		/// <remarks/>
		public System.DateTime fromTime;
    
		/// <remarks/>
		public System.DateTime toTime;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class getEventsByLocationByTimeRange 
	{
    
		/// <remarks/>
		public IdentifierType location;
    
		/// <remarks/>
		public System.DateTime fromTime;
    
		/// <remarks/>
		public System.DateTime toTime;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class getEventsByLocation 
	{
    
		/// <remarks/>
		public IdentifierType location;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:PMLCore:xml:schema:1")]
	public class SensorType 
	{
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(Namespace="urn:epc:specification:universal:Identifier:xml:schema:1")]
		public IdentifierType ID;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("Observation")]
		public ObservationType[] Observation;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:PMLCore:xml:schema:1")]
	public class ObservationType 
	{
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(Namespace="urn:epc:specification:universal:Identifier:xml:schema:1")]
		public IdentifierType ID;
    
		/// <remarks/>
		public System.DateTime DateTime;
    
		/// <remarks/>
		public string Command;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("Tag")]
		public TagType[] Tag;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("Data")]
		public DataType[] Data;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:PMLCore:xml:schema:1")]
	public class TagType 
	{
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(Namespace="urn:epc:specification:universal:Identifier:xml:schema:1")]
		public IdentifierType ID;
    
		/// <remarks/>
		public DataType Data;
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("Sensor")]
		public SensorType[] Sensor;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:PMLCore:xml:schema:1")]
	public class DataType 
	{
    
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("Binary", typeof(System.Byte[]), DataType="hexBinary")]
		[System.Xml.Serialization.XmlElementAttribute("XML", typeof(System.Xml.XmlElement))]
		[System.Xml.Serialization.XmlElementAttribute("Text", typeof(string))]
		public object Item;
	}

	/// <remarks/>
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:epc:specification:interchange:EPCIS:ObservationData:xml:wsdl:1")]
	public class logEvent 
	{
    
		/// <remarks/>
		public IdentifierType location;
    
		/// <remarks/>
		public ObservationType observation;
	}
}
