//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace CreateLabel_ML.wsFedexTrack
{


   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ServiceModel.ServiceContractAttribute(Namespace = "http://fedex.com/ws/track/v16",
      ConfigurationName = "TrackPortType")]
   public interface TrackPortType
   {

      [System.ServiceModel.OperationContractAttribute(Action = "http://fedex.com/ws/track/v16/track",
         ReplyAction = "*")]
      [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults = true)]
      System.Threading.Tasks.Task<trackResponse> trackAsync(trackRequest1 request);

      [System.ServiceModel.OperationContractAttribute(Action = "http://fedex.com/ws/track/v16/getTrackingDocuments",
         ReplyAction = "*")]
      [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults = true)]
      System.Threading.Tasks.Task<getTrackingDocumentsResponse> getTrackingDocumentsAsync(
         getTrackingDocumentsRequest1 request);

      [System.ServiceModel.OperationContractAttribute(Action = "http://fedex.com/ws/track/v16/sendNotifications",
         ReplyAction = "*")]
      [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults = true)]
      System.Threading.Tasks.Task<sendNotificationsResponse> sendNotificationsAsync(sendNotificationsRequest1 request);
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackRequest
   {

      private WebAuthenticationDetail webAuthenticationDetailField;

      private ClientDetail clientDetailField;

      private TransactionDetail transactionDetailField;

      private VersionId versionField;

      private TrackSelectionDetail[] selectionDetailsField;

      private string transactionTimeOutValueInMillisecondsField;

      private TrackRequestProcessingOptionType[] processingOptionsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public WebAuthenticationDetail WebAuthenticationDetail
      {
         get { return this.webAuthenticationDetailField; }
         set { this.webAuthenticationDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public ClientDetail ClientDetail
      {
         get { return this.clientDetailField; }
         set { this.clientDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TransactionDetail TransactionDetail
      {
         get { return this.transactionDetailField; }
         set { this.transactionDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public VersionId Version
      {
         get { return this.versionField; }
         set { this.versionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("SelectionDetails", Order = 4)]
      public TrackSelectionDetail[] SelectionDetails
      {
         get { return this.selectionDetailsField; }
         set { this.selectionDetailsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 5)]
      public string TransactionTimeOutValueInMilliseconds
      {
         get { return this.transactionTimeOutValueInMillisecondsField; }
         set { this.transactionTimeOutValueInMillisecondsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("ProcessingOptions", Order = 6)]
      public TrackRequestProcessingOptionType[] ProcessingOptions
      {
         get { return this.processingOptionsField; }
         set { this.processingOptionsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class WebAuthenticationDetail
   {

      private WebAuthenticationCredential parentCredentialField;

      private WebAuthenticationCredential userCredentialField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public WebAuthenticationCredential ParentCredential
      {
         get { return this.parentCredentialField; }
         set { this.parentCredentialField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public WebAuthenticationCredential UserCredential
      {
         get { return this.userCredentialField; }
         set { this.userCredentialField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class WebAuthenticationCredential
   {

      private string keyField;

      private string passwordField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Key
      {
         get { return this.keyField; }
         set { this.keyField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Password
      {
         get { return this.passwordField; }
         set { this.passwordField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackNotificationPackage
   {

      private string trackingNumberField;

      private string trackingNumberUniqueIdentifiersField;

      private CarrierCodeType carrierCodeField;

      private bool carrierCodeFieldSpecified;

      private System.DateTime shipDateField;

      private bool shipDateFieldSpecified;

      private Address destinationField;

      private NotificationEventType[][] recipientDetailsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string TrackingNumber
      {
         get { return this.trackingNumberField; }
         set { this.trackingNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string TrackingNumberUniqueIdentifiers
      {
         get { return this.trackingNumberUniqueIdentifiersField; }
         set { this.trackingNumberUniqueIdentifiersField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public CarrierCodeType CarrierCode
      {
         get { return this.carrierCodeField; }
         set { this.carrierCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CarrierCodeSpecified
      {
         get { return this.carrierCodeFieldSpecified; }
         set { this.carrierCodeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 3)]
      public System.DateTime ShipDate
      {
         get { return this.shipDateField; }
         set { this.shipDateField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ShipDateSpecified
      {
         get { return this.shipDateFieldSpecified; }
         set { this.shipDateFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public Address Destination
      {
         get { return this.destinationField; }
         set { this.destinationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlArrayAttribute(Order = 5)]
      [System.Xml.Serialization.XmlArrayItemAttribute("NotificationEventsAvailable", typeof(NotificationEventType[]),
         IsNullable = false)]
      public NotificationEventType[][] RecipientDetails
      {
         get { return this.recipientDetailsField; }
         set { this.recipientDetailsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum CarrierCodeType
   {

      /// <remarks/>
      FDXC,

      /// <remarks/>
      FDXE,

      /// <remarks/>
      FDXG,

      /// <remarks/>
      FXCC,

      /// <remarks/>
      FXFR,

      /// <remarks/>
      FXSP,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Address
   {

      private string[] streetLinesField;

      private string cityField;

      private string stateOrProvinceCodeField;

      private string postalCodeField;

      private string urbanizationCodeField;

      private string countryCodeField;

      private string countryNameField;

      private bool residentialField;

      private bool residentialFieldSpecified;

      private string geographicCoordinatesField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("StreetLines", Order = 0)]
      public string[] StreetLines
      {
         get { return this.streetLinesField; }
         set { this.streetLinesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string City
      {
         get { return this.cityField; }
         set { this.cityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string StateOrProvinceCode
      {
         get { return this.stateOrProvinceCodeField; }
         set { this.stateOrProvinceCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string PostalCode
      {
         get { return this.postalCodeField; }
         set { this.postalCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public string UrbanizationCode
      {
         get { return this.urbanizationCodeField; }
         set { this.urbanizationCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public string CountryCode
      {
         get { return this.countryCodeField; }
         set { this.countryCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string CountryName
      {
         get { return this.countryNameField; }
         set { this.countryNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public bool Residential
      {
         get { return this.residentialField; }
         set { this.residentialField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ResidentialSpecified
      {
         get { return this.residentialFieldSpecified; }
         set { this.residentialFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 8)]
      public string GeographicCoordinates
      {
         get { return this.geographicCoordinatesField; }
         set { this.geographicCoordinatesField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NotificationEventType
   {

      /// <remarks/>
      ON_DELIVERY,

      /// <remarks/>
      ON_ESTIMATED_DELIVERY,

      /// <remarks/>
      ON_EXCEPTION,

      /// <remarks/>
      ON_SHIPMENT,

      /// <remarks/>
      ON_TENDER,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class SendNotificationsReply
   {

      private NotificationSeverityType highestSeverityField;

      private Notification[] notificationsField;

      private TransactionDetail transactionDetailField;

      private VersionId versionField;

      private bool duplicateWaybillField;

      private bool duplicateWaybillFieldSpecified;

      private bool moreDataAvailableField;

      private bool moreDataAvailableFieldSpecified;

      private string pagingTokenField;

      private TrackNotificationPackage[] packagesField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationSeverityType HighestSeverity
      {
         get { return this.highestSeverityField; }
         set { this.highestSeverityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Notifications", Order = 1)]
      public Notification[] Notifications
      {
         get { return this.notificationsField; }
         set { this.notificationsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TransactionDetail TransactionDetail
      {
         get { return this.transactionDetailField; }
         set { this.transactionDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public VersionId Version
      {
         get { return this.versionField; }
         set { this.versionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public bool DuplicateWaybill
      {
         get { return this.duplicateWaybillField; }
         set { this.duplicateWaybillField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DuplicateWaybillSpecified
      {
         get { return this.duplicateWaybillFieldSpecified; }
         set { this.duplicateWaybillFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public bool MoreDataAvailable
      {
         get { return this.moreDataAvailableField; }
         set { this.moreDataAvailableField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool MoreDataAvailableSpecified
      {
         get { return this.moreDataAvailableFieldSpecified; }
         set { this.moreDataAvailableFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string PagingToken
      {
         get { return this.pagingTokenField; }
         set { this.pagingTokenField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Packages", Order = 7)]
      public TrackNotificationPackage[] Packages
      {
         get { return this.packagesField; }
         set { this.packagesField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NotificationSeverityType
   {

      /// <remarks/>
      ERROR,

      /// <remarks/>
      FAILURE,

      /// <remarks/>
      NOTE,

      /// <remarks/>
      SUCCESS,

      /// <remarks/>
      WARNING,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Notification
   {

      private NotificationSeverityType severityField;

      private string sourceField;

      private string codeField;

      private string messageField;

      private string localizedMessageField;

      private NotificationParameter[] messageParametersField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationSeverityType Severity
      {
         get { return this.severityField; }
         set { this.severityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Source
      {
         get { return this.sourceField; }
         set { this.sourceField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Code
      {
         get { return this.codeField; }
         set { this.codeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string Message
      {
         get { return this.messageField; }
         set { this.messageField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public string LocalizedMessage
      {
         get { return this.localizedMessageField; }
         set { this.localizedMessageField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("MessageParameters", Order = 5)]
      public NotificationParameter[] MessageParameters
      {
         get { return this.messageParametersField; }
         set { this.messageParametersField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class NotificationParameter
   {

      private string idField;

      private string valueField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Id
      {
         get { return this.idField; }
         set { this.idField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Value
      {
         get { return this.valueField; }
         set { this.valueField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TransactionDetail
   {

      private string customerTransactionIdField;

      private Localization localizationField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string CustomerTransactionId
      {
         get { return this.customerTransactionIdField; }
         set { this.customerTransactionIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public Localization Localization
      {
         get { return this.localizationField; }
         set { this.localizationField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Localization
   {

      private string languageCodeField;

      private string localeCodeField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string LanguageCode
      {
         get { return this.languageCodeField; }
         set { this.languageCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string LocaleCode
      {
         get { return this.localeCodeField; }
         set { this.localeCodeField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class VersionId
   {

      private string serviceIdField;

      private int majorField;

      private int intermediateField;

      private int minorField;

      public VersionId()
      {
         this.serviceIdField = "trck";
         this.majorField = 16;
         this.intermediateField = 0;
         this.minorField = 0;
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string ServiceId
      {
         get { return this.serviceIdField; }
         set { this.serviceIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public int Major
      {
         get { return this.majorField; }
         set { this.majorField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public int Intermediate
      {
         get { return this.intermediateField; }
         set { this.intermediateField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public int Minor
      {
         get { return this.minorField; }
         set { this.minorField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class ShipmentNotificationFormatSpecification
   {

      private NotificationFormatType typeField;

      private bool typeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationFormatType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NotificationFormatType
   {

      /// <remarks/>
      HTML,

      /// <remarks/>
      TEXT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class NotificationDetail
   {

      private NotificationType notificationTypeField;

      private bool notificationTypeFieldSpecified;

      private EMailDetail emailDetailField;

      private Localization localizationField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationType NotificationType
      {
         get { return this.notificationTypeField; }
         set { this.notificationTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool NotificationTypeSpecified
      {
         get { return this.notificationTypeFieldSpecified; }
         set { this.notificationTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public EMailDetail EmailDetail
      {
         get { return this.emailDetailField; }
         set { this.emailDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public Localization Localization
      {
         get { return this.localizationField; }
         set { this.localizationField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NotificationType
   {

      /// <remarks/>
      EMAIL,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class EMailDetail
   {

      private string emailAddressField;

      private string nameField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string EmailAddress
      {
         get { return this.emailAddressField; }
         set { this.emailAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Name
      {
         get { return this.nameField; }
         set { this.nameField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class ShipmentEventNotificationSpecification
   {

      private ShipmentNotificationRoleType roleField;

      private bool roleFieldSpecified;

      private NotificationEventType[] eventsField;

      private NotificationDetail notificationDetailField;

      private ShipmentNotificationFormatSpecification formatSpecificationField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public ShipmentNotificationRoleType Role
      {
         get { return this.roleField; }
         set { this.roleField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool RoleSpecified
      {
         get { return this.roleFieldSpecified; }
         set { this.roleFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Events", Order = 1)]
      public NotificationEventType[] Events
      {
         get { return this.eventsField; }
         set { this.eventsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public NotificationDetail NotificationDetail
      {
         get { return this.notificationDetailField; }
         set { this.notificationDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public ShipmentNotificationFormatSpecification FormatSpecification
      {
         get { return this.formatSpecificationField; }
         set { this.formatSpecificationField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum ShipmentNotificationRoleType
   {

      /// <remarks/>
      BROKER,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      RECIPIENT,

      /// <remarks/>
      SHIPPER,

      /// <remarks/>
      THIRD_PARTY,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class ShipmentEventNotificationDetail
   {

      private ShipmentNotificationAggregationType aggregationTypeField;

      private bool aggregationTypeFieldSpecified;

      private string personalMessageField;

      private ShipmentEventNotificationSpecification[] eventNotificationsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public ShipmentNotificationAggregationType AggregationType
      {
         get { return this.aggregationTypeField; }
         set { this.aggregationTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool AggregationTypeSpecified
      {
         get { return this.aggregationTypeFieldSpecified; }
         set { this.aggregationTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string PersonalMessage
      {
         get { return this.personalMessageField; }
         set { this.personalMessageField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("EventNotifications", Order = 2)]
      public ShipmentEventNotificationSpecification[] EventNotifications
      {
         get { return this.eventNotificationsField; }
         set { this.eventNotificationsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum ShipmentNotificationAggregationType
   {

      /// <remarks/>
      PER_PACKAGE,

      /// <remarks/>
      PER_SHIPMENT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class SendNotificationsRequest
   {

      private WebAuthenticationDetail webAuthenticationDetailField;

      private ClientDetail clientDetailField;

      private TransactionDetail transactionDetailField;

      private VersionId versionField;

      private string trackingNumberField;

      private bool multiPieceField;

      private bool multiPieceFieldSpecified;

      private string pagingTokenField;

      private string trackingNumberUniqueIdField;

      private System.DateTime shipDateRangeBeginField;

      private bool shipDateRangeBeginFieldSpecified;

      private System.DateTime shipDateRangeEndField;

      private bool shipDateRangeEndFieldSpecified;

      private string senderEMailAddressField;

      private string senderContactNameField;

      private ShipmentEventNotificationDetail eventNotificationDetailField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public WebAuthenticationDetail WebAuthenticationDetail
      {
         get { return this.webAuthenticationDetailField; }
         set { this.webAuthenticationDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public ClientDetail ClientDetail
      {
         get { return this.clientDetailField; }
         set { this.clientDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TransactionDetail TransactionDetail
      {
         get { return this.transactionDetailField; }
         set { this.transactionDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public VersionId Version
      {
         get { return this.versionField; }
         set { this.versionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public string TrackingNumber
      {
         get { return this.trackingNumberField; }
         set { this.trackingNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public bool MultiPiece
      {
         get { return this.multiPieceField; }
         set { this.multiPieceField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool MultiPieceSpecified
      {
         get { return this.multiPieceFieldSpecified; }
         set { this.multiPieceFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string PagingToken
      {
         get { return this.pagingTokenField; }
         set { this.pagingTokenField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public string TrackingNumberUniqueId
      {
         get { return this.trackingNumberUniqueIdField; }
         set { this.trackingNumberUniqueIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 8)]
      public System.DateTime ShipDateRangeBegin
      {
         get { return this.shipDateRangeBeginField; }
         set { this.shipDateRangeBeginField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ShipDateRangeBeginSpecified
      {
         get { return this.shipDateRangeBeginFieldSpecified; }
         set { this.shipDateRangeBeginFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 9)]
      public System.DateTime ShipDateRangeEnd
      {
         get { return this.shipDateRangeEndField; }
         set { this.shipDateRangeEndField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ShipDateRangeEndSpecified
      {
         get { return this.shipDateRangeEndFieldSpecified; }
         set { this.shipDateRangeEndFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 10)]
      public string SenderEMailAddress
      {
         get { return this.senderEMailAddressField; }
         set { this.senderEMailAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 11)]
      public string SenderContactName
      {
         get { return this.senderContactNameField; }
         set { this.senderContactNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 12)]
      public ShipmentEventNotificationDetail EventNotificationDetail
      {
         get { return this.eventNotificationDetailField; }
         set { this.eventNotificationDetailField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class ClientDetail
   {

      private string accountNumberField;

      private string meterNumberField;

      private string integratorIdField;

      private Localization localizationField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string AccountNumber
      {
         get { return this.accountNumberField; }
         set { this.accountNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string MeterNumber
      {
         get { return this.meterNumberField; }
         set { this.meterNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string IntegratorId
      {
         get { return this.integratorIdField; }
         set { this.integratorIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public Localization Localization
      {
         get { return this.localizationField; }
         set { this.localizationField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class DocumentPart
   {

      private string sequenceNumberField;

      private byte[] contentField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 0)]
      public string SequenceNumber
      {
         get { return this.sequenceNumberField; }
         set { this.sequenceNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary", Order = 1)]
      public byte[] Content
      {
         get { return this.contentField; }
         set { this.contentField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingDocument
   {

      private TrackingDocumentType typeField;

      private bool typeFieldSpecified;

      private Localization[] localizationsField;

      private TrackingDocumentImageType imageTypeField;

      private bool imageTypeFieldSpecified;

      private string resolutionField;

      private DocumentPart[] partsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackingDocumentType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Localizations", Order = 1)]
      public Localization[] Localizations
      {
         get { return this.localizationsField; }
         set { this.localizationsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TrackingDocumentImageType ImageType
      {
         get { return this.imageTypeField; }
         set { this.imageTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ImageTypeSpecified
      {
         get { return this.imageTypeFieldSpecified; }
         set { this.imageTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 3)]
      public string Resolution
      {
         get { return this.resolutionField; }
         set { this.resolutionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Parts", Order = 4)]
      public DocumentPart[] Parts
      {
         get { return this.partsField; }
         set { this.partsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackingDocumentType
   {

      /// <remarks/>
      BILL_OF_LADING,

      /// <remarks/>
      FREIGHT_BILLING_DOCUMENT,

      /// <remarks/>
      SIGNATURE_PROOF_OF_DELIVERY,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackingDocumentImageType
   {

      /// <remarks/>
      PDF,

      /// <remarks/>
      PNG,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class GetTrackingDocumentsReply
   {

      private NotificationSeverityType highestSeverityField;

      private Notification[] notificationsField;

      private TransactionDetail transactionDetailField;

      private VersionId versionField;

      private TrackingDocument[] documentsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationSeverityType HighestSeverity
      {
         get { return this.highestSeverityField; }
         set { this.highestSeverityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Notifications", Order = 1)]
      public Notification[] Notifications
      {
         get { return this.notificationsField; }
         set { this.notificationsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TransactionDetail TransactionDetail
      {
         get { return this.transactionDetailField; }
         set { this.transactionDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public VersionId Version
      {
         get { return this.versionField; }
         set { this.versionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Documents", Order = 4)]
      public TrackingDocument[] Documents
      {
         get { return this.documentsField; }
         set { this.documentsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingSignatureProofOfDeliveryDetail
   {

      private TrackingDocumentFormat documentFormatField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackingDocumentFormat DocumentFormat
      {
         get { return this.documentFormatField; }
         set { this.documentFormatField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingDocumentFormat
   {

      private TrackingDocumentDispositionDetail[] dispositionsField;

      private TrackingDocumentGroupingType groupingField;

      private bool groupingFieldSpecified;

      private TrackingDocumentImageType imageTypeField;

      private bool imageTypeFieldSpecified;

      private Localization localizationField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Dispositions", Order = 0)]
      public TrackingDocumentDispositionDetail[] Dispositions
      {
         get { return this.dispositionsField; }
         set { this.dispositionsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public TrackingDocumentGroupingType Grouping
      {
         get { return this.groupingField; }
         set { this.groupingField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool GroupingSpecified
      {
         get { return this.groupingFieldSpecified; }
         set { this.groupingFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TrackingDocumentImageType ImageType
      {
         get { return this.imageTypeField; }
         set { this.imageTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ImageTypeSpecified
      {
         get { return this.imageTypeFieldSpecified; }
         set { this.imageTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public Localization Localization
      {
         get { return this.localizationField; }
         set { this.localizationField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingDocumentDispositionDetail
   {

      private TrackingDocumentDispositionType dispositionTypeField;

      private bool dispositionTypeFieldSpecified;

      private TrackingDocumentEmailDetail eMailDetailField;

      private FaxDetail[] faxDetailsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackingDocumentDispositionType DispositionType
      {
         get { return this.dispositionTypeField; }
         set { this.dispositionTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DispositionTypeSpecified
      {
         get { return this.dispositionTypeFieldSpecified; }
         set { this.dispositionTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public TrackingDocumentEmailDetail EMailDetail
      {
         get { return this.eMailDetailField; }
         set { this.eMailDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("FaxDetails", Order = 2)]
      public FaxDetail[] FaxDetails
      {
         get { return this.faxDetailsField; }
         set { this.faxDetailsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackingDocumentDispositionType
   {

      /// <remarks/>
      EMAIL,

      /// <remarks/>
      FAX,

      /// <remarks/>
      RETURN,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingDocumentEmailDetail
   {

      private EMailDetail[] recipientsField;

      private EMailDetail senderField;

      private Localization localizationField;

      private string personalMessageField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Recipients", Order = 0)]
      public EMailDetail[] Recipients
      {
         get { return this.recipientsField; }
         set { this.recipientsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public EMailDetail Sender
      {
         get { return this.senderField; }
         set { this.senderField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public Localization Localization
      {
         get { return this.localizationField; }
         set { this.localizationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string PersonalMessage
      {
         get { return this.personalMessageField; }
         set { this.personalMessageField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class FaxDetail
   {

      private string phoneNumberField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string PhoneNumber
      {
         get { return this.phoneNumberField; }
         set { this.phoneNumberField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackingDocumentGroupingType
   {

      /// <remarks/>
      CONSOLIDATED_BY_DOCUMENT_TYPE,

      /// <remarks/>
      INDIVIDUAL,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingFreightBillingDocumentDetail
   {

      private TrackingDocumentFormat documentFormatField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackingDocumentFormat DocumentFormat
      {
         get { return this.documentFormatField; }
         set { this.documentFormatField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingBillOfLadingDocumentDetail
   {

      private TrackingDocumentFormat documentFormatField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackingDocumentFormat DocumentFormat
      {
         get { return this.documentFormatField; }
         set { this.documentFormatField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingDocumentSpecification
   {

      private TrackingDocumentType[] documentTypesField;

      private TrackingBillOfLadingDocumentDetail billOfLadingDocumentDetailField;

      private TrackingFreightBillingDocumentDetail freightBillingDocumentDetailField;

      private TrackingSignatureProofOfDeliveryDetail signatureProofOfDeliveryDetailField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("DocumentTypes", Order = 0)]
      public TrackingDocumentType[] DocumentTypes
      {
         get { return this.documentTypesField; }
         set { this.documentTypesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public TrackingBillOfLadingDocumentDetail BillOfLadingDocumentDetail
      {
         get { return this.billOfLadingDocumentDetailField; }
         set { this.billOfLadingDocumentDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TrackingFreightBillingDocumentDetail FreightBillingDocumentDetail
      {
         get { return this.freightBillingDocumentDetailField; }
         set { this.freightBillingDocumentDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public TrackingSignatureProofOfDeliveryDetail SignatureProofOfDeliveryDetail
      {
         get { return this.signatureProofOfDeliveryDetailField; }
         set { this.signatureProofOfDeliveryDetailField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class GetTrackingDocumentsRequest
   {

      private WebAuthenticationDetail webAuthenticationDetailField;

      private ClientDetail clientDetailField;

      private TransactionDetail transactionDetailField;

      private VersionId versionField;

      private TrackSelectionDetail[] selectionDetailsField;

      private TrackingDocumentSpecification trackingDocumentSpecificationField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public WebAuthenticationDetail WebAuthenticationDetail
      {
         get { return this.webAuthenticationDetailField; }
         set { this.webAuthenticationDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public ClientDetail ClientDetail
      {
         get { return this.clientDetailField; }
         set { this.clientDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TransactionDetail TransactionDetail
      {
         get { return this.transactionDetailField; }
         set { this.transactionDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public VersionId Version
      {
         get { return this.versionField; }
         set { this.versionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("SelectionDetails", Order = 4)]
      public TrackSelectionDetail[] SelectionDetails
      {
         get { return this.selectionDetailsField; }
         set { this.selectionDetailsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public TrackingDocumentSpecification TrackingDocumentSpecification
      {
         get { return this.trackingDocumentSpecificationField; }
         set { this.trackingDocumentSpecificationField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackSelectionDetail
   {

      private CarrierCodeType carrierCodeField;

      private bool carrierCodeFieldSpecified;

      private OperatingCompanyType operatingCompanyField;

      private bool operatingCompanyFieldSpecified;

      private TrackPackageIdentifier packageIdentifierField;

      private string trackingNumberUniqueIdentifierField;

      private System.DateTime shipDateRangeBeginField;

      private bool shipDateRangeBeginFieldSpecified;

      private System.DateTime shipDateRangeEndField;

      private bool shipDateRangeEndFieldSpecified;

      private string shipmentAccountNumberField;

      private string secureSpodAccountField;

      private Address destinationField;

      private PagingDetail pagingDetailField;

      private string customerSpecifiedTimeOutValueInMillisecondsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public CarrierCodeType CarrierCode
      {
         get { return this.carrierCodeField; }
         set { this.carrierCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CarrierCodeSpecified
      {
         get { return this.carrierCodeFieldSpecified; }
         set { this.carrierCodeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public OperatingCompanyType OperatingCompany
      {
         get { return this.operatingCompanyField; }
         set { this.operatingCompanyField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool OperatingCompanySpecified
      {
         get { return this.operatingCompanyFieldSpecified; }
         set { this.operatingCompanyFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TrackPackageIdentifier PackageIdentifier
      {
         get { return this.packageIdentifierField; }
         set { this.packageIdentifierField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string TrackingNumberUniqueIdentifier
      {
         get { return this.trackingNumberUniqueIdentifierField; }
         set { this.trackingNumberUniqueIdentifierField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 4)]
      public System.DateTime ShipDateRangeBegin
      {
         get { return this.shipDateRangeBeginField; }
         set { this.shipDateRangeBeginField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ShipDateRangeBeginSpecified
      {
         get { return this.shipDateRangeBeginFieldSpecified; }
         set { this.shipDateRangeBeginFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 5)]
      public System.DateTime ShipDateRangeEnd
      {
         get { return this.shipDateRangeEndField; }
         set { this.shipDateRangeEndField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ShipDateRangeEndSpecified
      {
         get { return this.shipDateRangeEndFieldSpecified; }
         set { this.shipDateRangeEndFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string ShipmentAccountNumber
      {
         get { return this.shipmentAccountNumberField; }
         set { this.shipmentAccountNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public string SecureSpodAccount
      {
         get { return this.secureSpodAccountField; }
         set { this.secureSpodAccountField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 8)]
      public Address Destination
      {
         get { return this.destinationField; }
         set { this.destinationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 9)]
      public PagingDetail PagingDetail
      {
         get { return this.pagingDetailField; }
         set { this.pagingDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 10)]
      public string CustomerSpecifiedTimeOutValueInMilliseconds
      {
         get { return this.customerSpecifiedTimeOutValueInMillisecondsField; }
         set { this.customerSpecifiedTimeOutValueInMillisecondsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum OperatingCompanyType
   {

      /// <remarks/>
      FEDEX_CARGO,

      /// <remarks/>
      FEDEX_CORPORATE_SERVICES,

      /// <remarks/>
      FEDEX_CORPORATION,

      /// <remarks/>
      FEDEX_CUSTOMER_INFORMATION_SYSTEMS,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL,

      /// <remarks/>
      FEDEX_EXPRESS,

      /// <remarks/>
      FEDEX_FREIGHT,

      /// <remarks/>
      FEDEX_GROUND,

      /// <remarks/>
      FEDEX_KINKOS,

      /// <remarks/>
      FEDEX_OFFICE,

      /// <remarks/>
      FEDEX_SERVICES,

      /// <remarks/>
      FEDEX_TRADE_NETWORKS,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackPackageIdentifier
   {

      private TrackIdentifierType typeField;

      private string valueField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackIdentifierType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Value
      {
         get { return this.valueField; }
         set { this.valueField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackIdentifierType
   {

      /// <remarks/>
      BILL_OF_LADING,

      /// <remarks/>
      COD_RETURN_TRACKING_NUMBER,

      /// <remarks/>
      CUSTOMER_AUTHORIZATION_NUMBER,

      /// <remarks/>
      CUSTOMER_REFERENCE,

      /// <remarks/>
      DEPARTMENT,

      /// <remarks/>
      DOCUMENT_AIRWAY_BILL,

      /// <remarks/>
      FREE_FORM_REFERENCE,

      /// <remarks/>
      GROUND_INTERNATIONAL,

      /// <remarks/>
      GROUND_SHIPMENT_ID,

      /// <remarks/>
      GROUP_MPS,

      /// <remarks/>
      INVOICE,

      /// <remarks/>
      JOB_GLOBAL_TRACKING_NUMBER,

      /// <remarks/>
      ORDER_GLOBAL_TRACKING_NUMBER,

      /// <remarks/>
      ORDER_TO_PAY_NUMBER,

      /// <remarks/>
      OUTBOUND_LINK_TO_RETURN,

      /// <remarks/>
      PARTNER_CARRIER_NUMBER,

      /// <remarks/>
      PART_NUMBER,

      /// <remarks/>
      PURCHASE_ORDER,

      /// <remarks/>
      REROUTE_TRACKING_NUMBER,

      /// <remarks/>
      RETURNED_TO_SHIPPER_TRACKING_NUMBER,

      /// <remarks/>
      RETURN_MATERIALS_AUTHORIZATION,

      /// <remarks/>
      SHIPPER_REFERENCE,

      /// <remarks/>
      STANDARD_MPS,

      /// <remarks/>
      TRACKING_NUMBER_OR_DOORTAG,

      /// <remarks/>
      TRANSPORTATION_CONTROL_NUMBER,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class PagingDetail
   {

      private string pagingTokenField;

      private string numberOfResultsPerPageField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string PagingToken
      {
         get { return this.pagingTokenField; }
         set { this.pagingTokenField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 1)]
      public string NumberOfResultsPerPage
      {
         get { return this.numberOfResultsPerPageField; }
         set { this.numberOfResultsPerPageField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackEvent
   {

      private System.DateTime timestampField;

      private bool timestampFieldSpecified;

      private string eventTypeField;

      private string eventDescriptionField;

      private string statusExceptionCodeField;

      private string statusExceptionDescriptionField;

      private Address addressField;

      private string stationIdField;

      private ArrivalLocationType arrivalLocationField;

      private bool arrivalLocationFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public System.DateTime Timestamp
      {
         get { return this.timestampField; }
         set { this.timestampField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TimestampSpecified
      {
         get { return this.timestampFieldSpecified; }
         set { this.timestampFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string EventType
      {
         get { return this.eventTypeField; }
         set { this.eventTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string EventDescription
      {
         get { return this.eventDescriptionField; }
         set { this.eventDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string StatusExceptionCode
      {
         get { return this.statusExceptionCodeField; }
         set { this.statusExceptionCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public string StatusExceptionDescription
      {
         get { return this.statusExceptionDescriptionField; }
         set { this.statusExceptionDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public Address Address
      {
         get { return this.addressField; }
         set { this.addressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string StationId
      {
         get { return this.stationIdField; }
         set { this.stationIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public ArrivalLocationType ArrivalLocation
      {
         get { return this.arrivalLocationField; }
         set { this.arrivalLocationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ArrivalLocationSpecified
      {
         get { return this.arrivalLocationFieldSpecified; }
         set { this.arrivalLocationFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum ArrivalLocationType
   {

      /// <remarks/>
      AIRPORT,

      /// <remarks/>
      CUSTOMER,

      /// <remarks/>
      CUSTOMS_BROKER,

      /// <remarks/>
      DELIVERY_LOCATION,

      /// <remarks/>
      DESTINATION_AIRPORT,

      /// <remarks/>
      DESTINATION_FEDEX_FACILITY,

      /// <remarks/>
      DROP_BOX,

      /// <remarks/>
      ENROUTE,

      /// <remarks/>
      FEDEX_FACILITY,

      /// <remarks/>
      FEDEX_OFFICE_LOCATION,

      /// <remarks/>
      INTERLINE_CARRIER,

      /// <remarks/>
      NON_FEDEX_FACILITY,

      /// <remarks/>
      ORIGIN_AIRPORT,

      /// <remarks/>
      ORIGIN_FEDEX_FACILITY,

      /// <remarks/>
      PICKUP_LOCATION,

      /// <remarks/>
      PLANE,

      /// <remarks/>
      PORT_OF_ENTRY,

      /// <remarks/>
      SHIP_AND_GET_LOCATION,

      /// <remarks/>
      SORT_FACILITY,

      /// <remarks/>
      TURNPOINT,

      /// <remarks/>
      VEHICLE,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class DeliveryOptionEligibilityDetail
   {

      private DeliveryOptionType optionField;

      private bool optionFieldSpecified;

      private EligibilityType eligibilityField;

      private bool eligibilityFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public DeliveryOptionType Option
      {
         get { return this.optionField; }
         set { this.optionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool OptionSpecified
      {
         get { return this.optionFieldSpecified; }
         set { this.optionFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public EligibilityType Eligibility
      {
         get { return this.eligibilityField; }
         set { this.eligibilityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool EligibilitySpecified
      {
         get { return this.eligibilityFieldSpecified; }
         set { this.eligibilityFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum DeliveryOptionType
   {

      /// <remarks/>
      INDIRECT_SIGNATURE_RELEASE,

      /// <remarks/>
      REDIRECT_TO_HOLD_AT_LOCATION,

      /// <remarks/>
      REROUTE,

      /// <remarks/>
      RESCHEDULE,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum EligibilityType
   {

      /// <remarks/>
      ELIGIBLE,

      /// <remarks/>
      INELIGIBLE,

      /// <remarks/>
      POSSIBLY_ELIGIBLE,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackSplitShipmentPart
   {

      private string pieceCountField;

      private System.DateTime timestampField;

      private bool timestampFieldSpecified;

      private string statusCodeField;

      private string statusDescriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger", Order = 0)]
      public string PieceCount
      {
         get { return this.pieceCountField; }
         set { this.pieceCountField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public System.DateTime Timestamp
      {
         get { return this.timestampField; }
         set { this.timestampField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TimestampSpecified
      {
         get { return this.timestampFieldSpecified; }
         set { this.timestampFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string StatusCode
      {
         get { return this.statusCodeField; }
         set { this.statusCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string StatusDescription
      {
         get { return this.statusDescriptionField; }
         set { this.statusDescriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class SignatureImageDetail
   {

      private byte[] imageField;

      private Notification[] notificationsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary", Order = 0)]
      public byte[] Image
      {
         get { return this.imageField; }
         set { this.imageField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Notifications", Order = 1)]
      public Notification[] Notifications
      {
         get { return this.notificationsField; }
         set { this.notificationsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class AvailableImagesDetail
   {

      private AvailableImageType typeField;

      private bool typeFieldSpecified;

      private ImageSizeType sizeField;

      private bool sizeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public AvailableImageType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public ImageSizeType Size
      {
         get { return this.sizeField; }
         set { this.sizeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool SizeSpecified
      {
         get { return this.sizeFieldSpecified; }
         set { this.sizeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum AvailableImageType
   {

      /// <remarks/>
      BILL_OF_LADING,

      /// <remarks/>
      SIGNATURE_PROOF_OF_DELIVERY,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum ImageSizeType
   {

      /// <remarks/>
      LARGE,

      /// <remarks/>
      SMALL,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class PieceCountVerificationDetail
   {

      private PieceCountLocationType countLocationTypeField;

      private bool countLocationTypeFieldSpecified;

      private string countField;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public PieceCountLocationType CountLocationType
      {
         get { return this.countLocationTypeField; }
         set { this.countLocationTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CountLocationTypeSpecified
      {
         get { return this.countLocationTypeFieldSpecified; }
         set { this.countLocationTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 1)]
      public string Count
      {
         get { return this.countField; }
         set { this.countField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum PieceCountLocationType
   {

      /// <remarks/>
      DESTINATION,

      /// <remarks/>
      ORIGIN,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class LocalTimeRange
   {

      private string beginsField;

      private string endsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Begins
      {
         get { return this.beginsField; }
         set { this.beginsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Ends
      {
         get { return this.endsField; }
         set { this.endsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class AppointmentTimeDetail
   {

      private AppointmentWindowType typeField;

      private bool typeFieldSpecified;

      private LocalTimeRange windowField;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public AppointmentWindowType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public LocalTimeRange Window
      {
         get { return this.windowField; }
         set { this.windowField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum AppointmentWindowType
   {

      /// <remarks/>
      AFTERNOON,

      /// <remarks/>
      LATE_AFTERNOON,

      /// <remarks/>
      MID_DAY,

      /// <remarks/>
      MORNING,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class AppointmentDetail
   {

      private System.DateTime dateField;

      private bool dateFieldSpecified;

      private AppointmentTimeDetail[] windowDetailsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 0)]
      public System.DateTime Date
      {
         get { return this.dateField; }
         set { this.dateField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DateSpecified
      {
         get { return this.dateFieldSpecified; }
         set { this.dateFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("WindowDetails", Order = 1)]
      public AppointmentTimeDetail[] WindowDetails
      {
         get { return this.windowDetailsField; }
         set { this.windowDetailsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class SpecialInstructionStatusDetail
   {

      private SpecialInstructionsStatusCode statusField;

      private bool statusFieldSpecified;

      private System.DateTime statusCreateTimeField;

      private bool statusCreateTimeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public SpecialInstructionsStatusCode Status
      {
         get { return this.statusField; }
         set { this.statusField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool StatusSpecified
      {
         get { return this.statusFieldSpecified; }
         set { this.statusFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public System.DateTime StatusCreateTime
      {
         get { return this.statusCreateTimeField; }
         set { this.statusCreateTimeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool StatusCreateTimeSpecified
      {
         get { return this.statusCreateTimeFieldSpecified; }
         set { this.statusCreateTimeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum SpecialInstructionsStatusCode
   {

      /// <remarks/>
      ACCEPTED,

      /// <remarks/>
      CANCELLED,

      /// <remarks/>
      DENIED,

      /// <remarks/>
      HELD,

      /// <remarks/>
      MODIFIED,

      /// <remarks/>
      RELINQUISHED,

      /// <remarks/>
      REQUESTED,

      /// <remarks/>
      SET,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackSpecialInstruction
   {

      private string descriptionField;

      private TrackDeliveryOptionType deliveryOptionField;

      private bool deliveryOptionFieldSpecified;

      private SpecialInstructionStatusDetail statusDetailField;

      private System.DateTime originalEstimatedDeliveryTimestampField;

      private bool originalEstimatedDeliveryTimestampFieldSpecified;

      private System.DateTime originalRequestTimeField;

      private bool originalRequestTimeFieldSpecified;

      private AppointmentDetail requestedAppointmentTimeField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public TrackDeliveryOptionType DeliveryOption
      {
         get { return this.deliveryOptionField; }
         set { this.deliveryOptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DeliveryOptionSpecified
      {
         get { return this.deliveryOptionFieldSpecified; }
         set { this.deliveryOptionFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public SpecialInstructionStatusDetail StatusDetail
      {
         get { return this.statusDetailField; }
         set { this.statusDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public System.DateTime OriginalEstimatedDeliveryTimestamp
      {
         get { return this.originalEstimatedDeliveryTimestampField; }
         set { this.originalEstimatedDeliveryTimestampField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool OriginalEstimatedDeliveryTimestampSpecified
      {
         get { return this.originalEstimatedDeliveryTimestampFieldSpecified; }
         set { this.originalEstimatedDeliveryTimestampFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public System.DateTime OriginalRequestTime
      {
         get { return this.originalRequestTimeField; }
         set { this.originalRequestTimeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool OriginalRequestTimeSpecified
      {
         get { return this.originalRequestTimeFieldSpecified; }
         set { this.originalRequestTimeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public AppointmentDetail RequestedAppointmentTime
      {
         get { return this.requestedAppointmentTimeField; }
         set { this.requestedAppointmentTimeField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackDeliveryOptionType
   {

      /// <remarks/>
      APPOINTMENT,

      /// <remarks/>
      DATE_CERTAIN,

      /// <remarks/>
      ELECTRONIC_SIGNATURE_RELEASE,

      /// <remarks/>
      EVENING,

      /// <remarks/>
      REDIRECT_TO_HOLD_AT_LOCATION,

      /// <remarks/>
      REROUTE,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Distance
   {

      private decimal valueField;

      private bool valueFieldSpecified;

      private DistanceUnits unitsField;

      private bool unitsFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public decimal Value
      {
         get { return this.valueField; }
         set { this.valueField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ValueSpecified
      {
         get { return this.valueFieldSpecified; }
         set { this.valueFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public DistanceUnits Units
      {
         get { return this.unitsField; }
         set { this.unitsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool UnitsSpecified
      {
         get { return this.unitsFieldSpecified; }
         set { this.unitsFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum DistanceUnits
   {

      /// <remarks/>
      KM,

      /// <remarks/>
      MI,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackingDateOrTimestamp
   {

      private TrackingDateOrTimestampType typeField;

      private bool typeFieldSpecified;

      private string dateOrTimestampField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackingDateOrTimestampType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string DateOrTimestamp
      {
         get { return this.dateOrTimestampField; }
         set { this.dateOrTimestampField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackingDateOrTimestampType
   {

      /// <remarks/>
      ACTUAL_DELIVERY,

      /// <remarks/>
      ACTUAL_PICKUP,

      /// <remarks/>
      ACTUAL_TENDER,

      /// <remarks/>
      ANTICIPATED_TENDER,

      /// <remarks/>
      APPOINTMENT_DELIVERY,

      /// <remarks/>
      ESTIMATED_DELIVERY,

      /// <remarks/>
      ESTIMATED_PICKUP,

      /// <remarks/>
      ESTIMATED_RETURN_TO_STATION,

      /// <remarks/>
      SHIP,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackPayment
   {

      private TrackChargesPaymentClassificationType classificationField;

      private bool classificationFieldSpecified;

      private TrackPaymentType typeField;

      private bool typeFieldSpecified;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackChargesPaymentClassificationType Classification
      {
         get { return this.classificationField; }
         set { this.classificationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ClassificationSpecified
      {
         get { return this.classificationFieldSpecified; }
         set { this.classificationFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public TrackPaymentType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackChargesPaymentClassificationType
   {

      /// <remarks/>
      DUTIES_AND_TAXES,

      /// <remarks/>
      TRANSPORTATION,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackPaymentType
   {

      /// <remarks/>
      CASH_OR_CHECK_AT_DESTINATION,

      /// <remarks/>
      CASH_OR_CHECK_AT_ORIGIN,

      /// <remarks/>
      CREDIT_CARD_AT_DESTINATION,

      /// <remarks/>
      CREDIT_CARD_AT_ORIGIN,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      RECIPIENT_ACCOUNT,

      /// <remarks/>
      SHIPPER_ACCOUNT,

      /// <remarks/>
      THIRD_PARTY_ACCOUNT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackSpecialHandling
   {

      private TrackSpecialHandlingType typeField;

      private bool typeFieldSpecified;

      private string descriptionField;

      private TrackPaymentType paymentTypeField;

      private bool paymentTypeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackSpecialHandlingType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TrackPaymentType PaymentType
      {
         get { return this.paymentTypeField; }
         set { this.paymentTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool PaymentTypeSpecified
      {
         get { return this.paymentTypeFieldSpecified; }
         set { this.paymentTypeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackSpecialHandlingType
   {

      /// <remarks/>
      ACCESSIBLE_DANGEROUS_GOODS,

      /// <remarks/>
      ADULT_SIGNATURE_OPTION,

      /// <remarks/>
      AIRBILL_AUTOMATION,

      /// <remarks/>
      AIRBILL_DELIVERY,

      /// <remarks/>
      ALCOHOL,

      /// <remarks/>
      AM_DELIVERY_GUARANTEE,

      /// <remarks/>
      APPOINTMENT_DELIVERY,

      /// <remarks/>
      BATTERY,

      /// <remarks/>
      BILL_RECIPIENT,

      /// <remarks/>
      BROKER_SELECT_OPTION,

      /// <remarks/>
      CALL_BEFORE_DELIVERY,

      /// <remarks/>
      CALL_TAG,

      /// <remarks/>
      CALL_TAG_DAMAGE,

      /// <remarks/>
      CHARGEABLE_CODE,

      /// <remarks/>
      COD,

      /// <remarks/>
      COLLECT,

      /// <remarks/>
      CONSOLIDATION,

      /// <remarks/>
      CONSOLIDATION_SMALLS_BAG,

      /// <remarks/>
      CURRENCY,

      /// <remarks/>
      CUT_FLOWERS,

      /// <remarks/>
      DATE_CERTAIN_DELIVERY,

      /// <remarks/>
      DELIVERY_ON_INVOICE_ACCEPTANCE,

      /// <remarks/>
      DELIVERY_REATTEMPT,

      /// <remarks/>
      DELIVERY_RECEIPT,

      /// <remarks/>
      DELIVER_WEEKDAY,

      /// <remarks/>
      DIRECT_SIGNATURE_OPTION,

      /// <remarks/>
      DOMESTIC,

      /// <remarks/>
      DO_NOT_BREAK_DOWN_PALLETS,

      /// <remarks/>
      DO_NOT_STACK_PALLETS,

      /// <remarks/>
      DRY_ICE,

      /// <remarks/>
      DRY_ICE_ADDED,

      /// <remarks/>
      EAST_COAST_SPECIAL,

      /// <remarks/>
      ELECTRONIC_COD,

      /// <remarks/>
      ELECTRONIC_DOCUMENTS_WITH_ORIGINALS,

      /// <remarks/>
      ELECTRONIC_SIGNATURE_SERVICE,

      /// <remarks/>
      ELECTRONIC_TRADE_DOCUMENTS,

      /// <remarks/>
      EVENING_DELIVERY,

      /// <remarks/>
      EXCLUSIVE_USE,

      /// <remarks/>
      EXTENDED_DELIVERY,

      /// <remarks/>
      EXTENDED_PICKUP,

      /// <remarks/>
      EXTRA_LABOR,

      /// <remarks/>
      EXTREME_LENGTH,

      /// <remarks/>
      FOOD,

      /// <remarks/>
      FREIGHT_ON_VALUE_CARRIER_RISK,

      /// <remarks/>
      FREIGHT_ON_VALUE_OWN_RISK,

      /// <remarks/>
      FREIGHT_TO_COLLECT,

      /// <remarks/>
      FULLY_REGULATED_DANGEROUS_GOODS,

      /// <remarks/>
      GEL_PACKS_ADDED_OR_REPLACED,

      /// <remarks/>
      GROUND_SUPPORT_FOR_SMARTPOST,

      /// <remarks/>
      GUARANTEED_FUNDS,

      /// <remarks/>
      HAZMAT,

      /// <remarks/>
      HIGH_FLOOR,

      /// <remarks/>
      HOLD_AT_LOCATION,

      /// <remarks/>
      HOLIDAY_DELIVERY,

      /// <remarks/>
      INACCESSIBLE_DANGEROUS_GOODS,

      /// <remarks/>
      INDIRECT_SIGNATURE_OPTION,

      /// <remarks/>
      INSIDE_DELIVERY,

      /// <remarks/>
      INSIDE_PICKUP,

      /// <remarks/>
      INTERNATIONAL,

      /// <remarks/>
      INTERNATIONAL_CONTROLLED_EXPORT,

      /// <remarks/>
      INTERNATIONAL_MAIL_SERVICE,

      /// <remarks/>
      INTERNATIONAL_TRAFFIC_IN_ARMS_REGULATIONS,

      /// <remarks/>
      LIFTGATE,

      /// <remarks/>
      LIFTGATE_DELIVERY,

      /// <remarks/>
      LIFTGATE_PICKUP,

      /// <remarks/>
      LIMITED_ACCESS_DELIVERY,

      /// <remarks/>
      LIMITED_ACCESS_PICKUP,

      /// <remarks/>
      LIMITED_QUANTITIES_DANGEROUS_GOODS,

      /// <remarks/>
      MARKING_OR_TAGGING,

      /// <remarks/>
      NET_RETURN,

      /// <remarks/>
      NON_BUSINESS_TIME,

      /// <remarks/>
      NON_STANDARD_CONTAINER,

      /// <remarks/>
      NO_SIGNATURE_REQUIRED_SIGNATURE_OPTION,

      /// <remarks/>
      ORDER_NOTIFY,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      OTHER_REGULATED_MATERIAL_DOMESTIC,

      /// <remarks/>
      OVER_LENGTH,

      /// <remarks/>
      PACKAGE_RETURN_PROGRAM,

      /// <remarks/>
      PIECE_COUNT_VERIFICATION,

      /// <remarks/>
      POISON,

      /// <remarks/>
      PREPAID,

      /// <remarks/>
      PRIORITY_ALERT,

      /// <remarks/>
      PRIORITY_ALERT_PLUS,

      /// <remarks/>
      PROTECTION_FROM_FREEZING,

      /// <remarks/>
      RAIL_MODE,

      /// <remarks/>
      RECONSIGNMENT_CHARGES,

      /// <remarks/>
      REROUTE_CROSS_COUNTRY_DEFERRED,

      /// <remarks/>
      REROUTE_CROSS_COUNTRY_EXPEDITED,

      /// <remarks/>
      REROUTE_LOCAL,

      /// <remarks/>
      RESIDENTIAL_DELIVERY,

      /// <remarks/>
      RESIDENTIAL_PICKUP,

      /// <remarks/>
      RETURNS_CLEARANCE,

      /// <remarks/>
      RETURNS_CLEARANCE_SPECIAL_ROUTING_REQUIRED,

      /// <remarks/>
      RETURN_MANAGER,

      /// <remarks/>
      SATURDAY_DELIVERY,

      /// <remarks/>
      SHIPMENT_PLACED_IN_COLD_STORAGE,

      /// <remarks/>
      SINGLE_SHIPMENT,

      /// <remarks/>
      SMALL_QUANTITY_EXCEPTION,

      /// <remarks/>
      SORT_AND_SEGREGATE,

      /// <remarks/>
      SPECIAL_DELIVERY,

      /// <remarks/>
      SPECIAL_EQUIPMENT,

      /// <remarks/>
      STANDARD_GROUND_SERVICE,

      /// <remarks/>
      STORAGE,

      /// <remarks/>
      SUNDAY_DELIVERY,

      /// <remarks/>
      THIRD_PARTY_BILLING,

      /// <remarks/>
      THIRD_PARTY_CONSIGNEE,

      /// <remarks/>
      TOP_LOAD,

      /// <remarks/>
      WEEKEND_DELIVERY,

      /// <remarks/>
      WEEKEND_PICKUP,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackAdvanceNotificationDetail
   {

      private System.DateTime estimatedTimeOfArrivalField;

      private bool estimatedTimeOfArrivalFieldSpecified;

      private string reasonField;

      private TrackAdvanceNotificationStatusType statusField;

      private bool statusFieldSpecified;

      private string statusDescriptionField;

      private System.DateTime statusTimeField;

      private bool statusTimeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public System.DateTime EstimatedTimeOfArrival
      {
         get { return this.estimatedTimeOfArrivalField; }
         set { this.estimatedTimeOfArrivalField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool EstimatedTimeOfArrivalSpecified
      {
         get { return this.estimatedTimeOfArrivalFieldSpecified; }
         set { this.estimatedTimeOfArrivalFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Reason
      {
         get { return this.reasonField; }
         set { this.reasonField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TrackAdvanceNotificationStatusType Status
      {
         get { return this.statusField; }
         set { this.statusField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool StatusSpecified
      {
         get { return this.statusFieldSpecified; }
         set { this.statusFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string StatusDescription
      {
         get { return this.statusDescriptionField; }
         set { this.statusDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public System.DateTime StatusTime
      {
         get { return this.statusTimeField; }
         set { this.statusTimeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool StatusTimeSpecified
      {
         get { return this.statusTimeFieldSpecified; }
         set { this.statusTimeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackAdvanceNotificationStatusType
   {

      /// <remarks/>
      BACK_ON_TRACK,

      /// <remarks/>
      FAIL,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class CustomsOptionDetail
   {

      private CustomsOptionType typeField;

      private bool typeFieldSpecified;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public CustomsOptionType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum CustomsOptionType
   {

      /// <remarks/>
      COURTESY_RETURN_LABEL,

      /// <remarks/>
      EXHIBITION_TRADE_SHOW,

      /// <remarks/>
      FAULTY_ITEM,

      /// <remarks/>
      FOLLOWING_REPAIR,

      /// <remarks/>
      FOR_REPAIR,

      /// <remarks/>
      ITEM_FOR_LOAN,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      REJECTED,

      /// <remarks/>
      REPLACEMENT,

      /// <remarks/>
      TRIAL,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackReturnDetail
   {

      private TrackReturnMovementStatusType movementStatusField;

      private bool movementStatusFieldSpecified;

      private TrackReturnLabelType labelTypeField;

      private bool labelTypeFieldSpecified;

      private string descriptionField;

      private string authorizationNameField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackReturnMovementStatusType MovementStatus
      {
         get { return this.movementStatusField; }
         set { this.movementStatusField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool MovementStatusSpecified
      {
         get { return this.movementStatusFieldSpecified; }
         set { this.movementStatusFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public TrackReturnLabelType LabelType
      {
         get { return this.labelTypeField; }
         set { this.labelTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool LabelTypeSpecified
      {
         get { return this.labelTypeFieldSpecified; }
         set { this.labelTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string AuthorizationName
      {
         get { return this.authorizationNameField; }
         set { this.authorizationNameField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackReturnMovementStatusType
   {

      /// <remarks/>
      MOVEMENT_OCCURRED,

      /// <remarks/>
      NO_MOVEMENT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackReturnLabelType
   {

      /// <remarks/>
      EMAIL,

      /// <remarks/>
      PRINT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class DateRange
   {

      private System.DateTime beginsField;

      private bool beginsFieldSpecified;

      private System.DateTime endsField;

      private bool endsFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 0)]
      public System.DateTime Begins
      {
         get { return this.beginsField; }
         set { this.beginsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool BeginsSpecified
      {
         get { return this.beginsFieldSpecified; }
         set { this.beginsFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 1)]
      public System.DateTime Ends
      {
         get { return this.endsField; }
         set { this.endsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool EndsSpecified
      {
         get { return this.endsFieldSpecified; }
         set { this.endsFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class NaftaCommodityDetail
   {

      private NaftaPreferenceCriterionCode preferenceCriterionField;

      private bool preferenceCriterionFieldSpecified;

      private NaftaProducerDeterminationCode producerDeterminationField;

      private bool producerDeterminationFieldSpecified;

      private string producerIdField;

      private NaftaNetCostMethodCode netCostMethodField;

      private bool netCostMethodFieldSpecified;

      private DateRange netCostDateRangeField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NaftaPreferenceCriterionCode PreferenceCriterion
      {
         get { return this.preferenceCriterionField; }
         set { this.preferenceCriterionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool PreferenceCriterionSpecified
      {
         get { return this.preferenceCriterionFieldSpecified; }
         set { this.preferenceCriterionFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public NaftaProducerDeterminationCode ProducerDetermination
      {
         get { return this.producerDeterminationField; }
         set { this.producerDeterminationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ProducerDeterminationSpecified
      {
         get { return this.producerDeterminationFieldSpecified; }
         set { this.producerDeterminationFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string ProducerId
      {
         get { return this.producerIdField; }
         set { this.producerIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public NaftaNetCostMethodCode NetCostMethod
      {
         get { return this.netCostMethodField; }
         set { this.netCostMethodField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool NetCostMethodSpecified
      {
         get { return this.netCostMethodFieldSpecified; }
         set { this.netCostMethodFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public DateRange NetCostDateRange
      {
         get { return this.netCostDateRangeField; }
         set { this.netCostDateRangeField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NaftaPreferenceCriterionCode
   {

      /// <remarks/>
      A,

      /// <remarks/>
      B,

      /// <remarks/>
      C,

      /// <remarks/>
      D,

      /// <remarks/>
      E,

      /// <remarks/>
      F,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NaftaProducerDeterminationCode
   {

      /// <remarks/>
      NO_1,

      /// <remarks/>
      NO_2,

      /// <remarks/>
      NO_3,

      /// <remarks/>
      YES,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum NaftaNetCostMethodCode
   {

      /// <remarks/>
      NC,

      /// <remarks/>
      NO,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class EdtExciseCondition
   {

      private string categoryField;

      private string valueField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Category
      {
         get { return this.categoryField; }
         set { this.categoryField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Value
      {
         get { return this.valueField; }
         set { this.valueField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Measure
   {

      private decimal quantityField;

      private bool quantityFieldSpecified;

      private string unitsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public decimal Quantity
      {
         get { return this.quantityField; }
         set { this.quantityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool QuantitySpecified
      {
         get { return this.quantityFieldSpecified; }
         set { this.quantityFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Units
      {
         get { return this.unitsField; }
         set { this.unitsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Commodity
   {

      private string commodityIdField;

      private string nameField;

      private string numberOfPiecesField;

      private string descriptionField;

      private CommodityPurposeType purposeField;

      private bool purposeFieldSpecified;

      private string countryOfManufactureField;

      private string harmonizedCodeField;

      private Weight weightField;

      private decimal quantityField;

      private bool quantityFieldSpecified;

      private string quantityUnitsField;

      private Measure[] additionalMeasuresField;

      private Money unitPriceField;

      private Money customsValueField;

      private EdtExciseCondition[] exciseConditionsField;

      private string exportLicenseNumberField;

      private System.DateTime exportLicenseExpirationDateField;

      private bool exportLicenseExpirationDateFieldSpecified;

      private string cIMarksAndNumbersField;

      private string partNumberField;

      private NaftaCommodityDetail naftaDetailField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string CommodityId
      {
         get { return this.commodityIdField; }
         set { this.commodityIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Name
      {
         get { return this.nameField; }
         set { this.nameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 2)]
      public string NumberOfPieces
      {
         get { return this.numberOfPiecesField; }
         set { this.numberOfPiecesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public CommodityPurposeType Purpose
      {
         get { return this.purposeField; }
         set { this.purposeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool PurposeSpecified
      {
         get { return this.purposeFieldSpecified; }
         set { this.purposeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public string CountryOfManufacture
      {
         get { return this.countryOfManufactureField; }
         set { this.countryOfManufactureField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string HarmonizedCode
      {
         get { return this.harmonizedCodeField; }
         set { this.harmonizedCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public Weight Weight
      {
         get { return this.weightField; }
         set { this.weightField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 8)]
      public decimal Quantity
      {
         get { return this.quantityField; }
         set { this.quantityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool QuantitySpecified
      {
         get { return this.quantityFieldSpecified; }
         set { this.quantityFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 9)]
      public string QuantityUnits
      {
         get { return this.quantityUnitsField; }
         set { this.quantityUnitsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("AdditionalMeasures", Order = 10)]
      public Measure[] AdditionalMeasures
      {
         get { return this.additionalMeasuresField; }
         set { this.additionalMeasuresField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 11)]
      public Money UnitPrice
      {
         get { return this.unitPriceField; }
         set { this.unitPriceField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 12)]
      public Money CustomsValue
      {
         get { return this.customsValueField; }
         set { this.customsValueField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("ExciseConditions", Order = 13)]
      public EdtExciseCondition[] ExciseConditions
      {
         get { return this.exciseConditionsField; }
         set { this.exciseConditionsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 14)]
      public string ExportLicenseNumber
      {
         get { return this.exportLicenseNumberField; }
         set { this.exportLicenseNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "date", Order = 15)]
      public System.DateTime ExportLicenseExpirationDate
      {
         get { return this.exportLicenseExpirationDateField; }
         set { this.exportLicenseExpirationDateField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ExportLicenseExpirationDateSpecified
      {
         get { return this.exportLicenseExpirationDateFieldSpecified; }
         set { this.exportLicenseExpirationDateFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 16)]
      public string CIMarksAndNumbers
      {
         get { return this.cIMarksAndNumbersField; }
         set { this.cIMarksAndNumbersField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 17)]
      public string PartNumber
      {
         get { return this.partNumberField; }
         set { this.partNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 18)]
      public NaftaCommodityDetail NaftaDetail
      {
         get { return this.naftaDetailField; }
         set { this.naftaDetailField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum CommodityPurposeType
   {

      /// <remarks/>
      BUSINESS,

      /// <remarks/>
      CONSUMER,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Weight
   {

      private WeightUnits unitsField;

      private bool unitsFieldSpecified;

      private decimal valueField;

      private bool valueFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public WeightUnits Units
      {
         get { return this.unitsField; }
         set { this.unitsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool UnitsSpecified
      {
         get { return this.unitsFieldSpecified; }
         set { this.unitsFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public decimal Value
      {
         get { return this.valueField; }
         set { this.valueField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ValueSpecified
      {
         get { return this.valueFieldSpecified; }
         set { this.valueFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum WeightUnits
   {

      /// <remarks/>
      KG,

      /// <remarks/>
      LB,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Money
   {

      private string currencyField;

      private decimal amountField;

      private bool amountFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Currency
      {
         get { return this.currencyField; }
         set { this.currencyField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public decimal Amount
      {
         get { return this.amountField; }
         set { this.amountField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool AmountSpecified
      {
         get { return this.amountFieldSpecified; }
         set { this.amountFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class ContentRecord
   {

      private string partNumberField;

      private string itemNumberField;

      private string receivedQuantityField;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string PartNumber
      {
         get { return this.partNumberField; }
         set { this.partNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string ItemNumber
      {
         get { return this.itemNumberField; }
         set { this.itemNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 2)]
      public string ReceivedQuantity
      {
         get { return this.receivedQuantityField; }
         set { this.receivedQuantityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackChargeDetail
   {

      private TrackChargeDetailType typeField;

      private bool typeFieldSpecified;

      private Money chargeAmountField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackChargeDetailType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public Money ChargeAmount
      {
         get { return this.chargeAmountField; }
         set { this.chargeAmountField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackChargeDetailType
   {

      /// <remarks/>
      ORIGINAL_CHARGES,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Dimensions
   {

      private string lengthField;

      private string widthField;

      private string heightField;

      private LinearUnits unitsField;

      private bool unitsFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 0)]
      public string Length
      {
         get { return this.lengthField; }
         set { this.lengthField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 1)]
      public string Width
      {
         get { return this.widthField; }
         set { this.widthField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 2)]
      public string Height
      {
         get { return this.heightField; }
         set { this.heightField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public LinearUnits Units
      {
         get { return this.unitsField; }
         set { this.unitsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool UnitsSpecified
      {
         get { return this.unitsFieldSpecified; }
         set { this.unitsFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum LinearUnits
   {

      /// <remarks/>
      CM,

      /// <remarks/>
      IN,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackServiceDescriptionDetail
   {

      private ServiceType typeField;

      private bool typeFieldSpecified;

      private string descriptionField;

      private string shortDescriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public ServiceType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string ShortDescription
      {
         get { return this.shortDescriptionField; }
         set { this.shortDescriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum ServiceType
   {

      /// <remarks/>
      EUROPE_FIRST_INTERNATIONAL_PRIORITY,

      /// <remarks/>
      FEDEX_1_DAY_FREIGHT,

      /// <remarks/>
      FEDEX_2_DAY,

      /// <remarks/>
      FEDEX_2_DAY_AM,

      /// <remarks/>
      FEDEX_2_DAY_FREIGHT,

      /// <remarks/>
      FEDEX_3_DAY_FREIGHT,

      /// <remarks/>
      FEDEX_CARGO_AIRPORT_TO_AIRPORT,

      /// <remarks/>
      FEDEX_CARGO_FREIGHT_FORWARDING,

      /// <remarks/>
      FEDEX_CARGO_INTERNATIONAL_EXPRESS_FREIGHT,

      /// <remarks/>
      FEDEX_CARGO_INTERNATIONAL_PREMIUM,

      /// <remarks/>
      FEDEX_CARGO_MAIL,

      /// <remarks/>
      FEDEX_CARGO_REGISTERED_MAIL,

      /// <remarks/>
      FEDEX_CARGO_SURFACE_MAIL,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_AIR_EXPEDITE,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_AIR_EXPEDITE_EXCLUSIVE_USE,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_AIR_EXPEDITE_NETWORK,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_CHARTER_AIR,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_POINT_TO_POINT,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_SURFACE_EXPEDITE,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_SURFACE_EXPEDITE_EXCLUSIVE_USE,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_TEMP_ASSURE_AIR,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_TEMP_ASSURE_VALIDATED_AIR,

      /// <remarks/>
      FEDEX_CUSTOM_CRITICAL_WHITE_GLOVE_SERVICES,

      /// <remarks/>
      FEDEX_DISTANCE_DEFERRED,

      /// <remarks/>
      FEDEX_EXPRESS_SAVER,

      /// <remarks/>
      FEDEX_FIRST_FREIGHT,

      /// <remarks/>
      FEDEX_FREIGHT_ECONOMY,

      /// <remarks/>
      FEDEX_FREIGHT_PRIORITY,

      /// <remarks/>
      FEDEX_GROUND,

      /// <remarks/>
      FEDEX_NEXT_DAY_AFTERNOON,

      /// <remarks/>
      FEDEX_NEXT_DAY_EARLY_MORNING,

      /// <remarks/>
      FEDEX_NEXT_DAY_END_OF_DAY,

      /// <remarks/>
      FEDEX_NEXT_DAY_FREIGHT,

      /// <remarks/>
      FEDEX_NEXT_DAY_MID_MORNING,

      /// <remarks/>
      FIRST_OVERNIGHT,

      /// <remarks/>
      GROUND_HOME_DELIVERY,

      /// <remarks/>
      INTERNATIONAL_DISTRIBUTION_FREIGHT,

      /// <remarks/>
      INTERNATIONAL_ECONOMY,

      /// <remarks/>
      INTERNATIONAL_ECONOMY_DISTRIBUTION,

      /// <remarks/>
      INTERNATIONAL_ECONOMY_FREIGHT,

      /// <remarks/>
      INTERNATIONAL_FIRST,

      /// <remarks/>
      INTERNATIONAL_PRIORITY,

      /// <remarks/>
      INTERNATIONAL_PRIORITY_DISTRIBUTION,

      /// <remarks/>
      INTERNATIONAL_PRIORITY_EXPRESS,

      /// <remarks/>
      INTERNATIONAL_PRIORITY_FREIGHT,

      /// <remarks/>
      PRIORITY_OVERNIGHT,

      /// <remarks/>
      SAME_DAY,

      /// <remarks/>
      SAME_DAY_CITY,

      /// <remarks/>
      SMART_POST,

      /// <remarks/>
      STANDARD_OVERNIGHT,

      /// <remarks/>
      TRANSBORDER_DISTRIBUTION_CONSOLIDATION,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackOtherIdentifierDetail
   {

      private TrackPackageIdentifier packageIdentifierField;

      private string trackingNumberUniqueIdentifierField;

      private CarrierCodeType carrierCodeField;

      private bool carrierCodeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public TrackPackageIdentifier PackageIdentifier
      {
         get { return this.packageIdentifierField; }
         set { this.packageIdentifierField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string TrackingNumberUniqueIdentifier
      {
         get { return this.trackingNumberUniqueIdentifierField; }
         set { this.trackingNumberUniqueIdentifierField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public CarrierCodeType CarrierCode
      {
         get { return this.carrierCodeField; }
         set { this.carrierCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CarrierCodeSpecified
      {
         get { return this.carrierCodeFieldSpecified; }
         set { this.carrierCodeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class Contact
   {

      private string personNameField;

      private string titleField;

      private string companyNameField;

      private string phoneNumberField;

      private string phoneExtensionField;

      private string tollFreePhoneNumberField;

      private string pagerNumberField;

      private string faxNumberField;

      private string eMailAddressField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string PersonName
      {
         get { return this.personNameField; }
         set { this.personNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Title
      {
         get { return this.titleField; }
         set { this.titleField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string CompanyName
      {
         get { return this.companyNameField; }
         set { this.companyNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string PhoneNumber
      {
         get { return this.phoneNumberField; }
         set { this.phoneNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public string PhoneExtension
      {
         get { return this.phoneExtensionField; }
         set { this.phoneExtensionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 5)]
      public string TollFreePhoneNumber
      {
         get { return this.tollFreePhoneNumberField; }
         set { this.tollFreePhoneNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 6)]
      public string PagerNumber
      {
         get { return this.pagerNumberField; }
         set { this.pagerNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public string FaxNumber
      {
         get { return this.faxNumberField; }
         set { this.faxNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 8)]
      public string EMailAddress
      {
         get { return this.eMailAddressField; }
         set { this.eMailAddressField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class ContactAndAddress
   {

      private Contact contactField;

      private Address addressField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public Contact Contact
      {
         get { return this.contactField; }
         set { this.contactField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public Address Address
      {
         get { return this.addressField; }
         set { this.addressField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackReconciliation
   {

      private string statusField;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Status
      {
         get { return this.statusField; }
         set { this.statusField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class CustomerExceptionRequestDetail
   {

      private string idField;

      private string statusCodeField;

      private string statusDescriptionField;

      private System.DateTime createTimeField;

      private bool createTimeFieldSpecified;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Id
      {
         get { return this.idField; }
         set { this.idField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string StatusCode
      {
         get { return this.statusCodeField; }
         set { this.statusCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string StatusDescription
      {
         get { return this.statusDescriptionField; }
         set { this.statusDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public System.DateTime CreateTime
      {
         get { return this.createTimeField; }
         set { this.createTimeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CreateTimeSpecified
      {
         get { return this.createTimeFieldSpecified; }
         set { this.createTimeFieldSpecified = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackInformationNoteDetail
   {

      private string codeField;

      private string descriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Code
      {
         get { return this.codeField; }
         set { this.codeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackStatusAncillaryDetail
   {

      private string reasonField;

      private string reasonDescriptionField;

      private string actionField;

      private string actionDescriptionField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public string Reason
      {
         get { return this.reasonField; }
         set { this.reasonField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string ReasonDescription
      {
         get { return this.reasonDescriptionField; }
         set { this.reasonDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Action
      {
         get { return this.actionField; }
         set { this.actionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string ActionDescription
      {
         get { return this.actionDescriptionField; }
         set { this.actionDescriptionField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackStatusDetail
   {

      private System.DateTime creationTimeField;

      private bool creationTimeFieldSpecified;

      private string codeField;

      private string descriptionField;

      private Address locationField;

      private TrackStatusAncillaryDetail[] ancillaryDetailsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public System.DateTime CreationTime
      {
         get { return this.creationTimeField; }
         set { this.creationTimeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CreationTimeSpecified
      {
         get { return this.creationTimeFieldSpecified; }
         set { this.creationTimeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Code
      {
         get { return this.codeField; }
         set { this.codeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public string Description
      {
         get { return this.descriptionField; }
         set { this.descriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public Address Location
      {
         get { return this.locationField; }
         set { this.locationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("AncillaryDetails", Order = 4)]
      public TrackStatusAncillaryDetail[] AncillaryDetails
      {
         get { return this.ancillaryDetailsField; }
         set { this.ancillaryDetailsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class StringBarcode
   {

      private StringBarcodeType typeField;

      private bool typeFieldSpecified;

      private string valueField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public StringBarcodeType Type
      {
         get { return this.typeField; }
         set { this.typeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool TypeSpecified
      {
         get { return this.typeFieldSpecified; }
         set { this.typeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string Value
      {
         get { return this.valueField; }
         set { this.valueField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum StringBarcodeType
   {

      /// <remarks/>
      ADDRESS,

      /// <remarks/>
      ASTRA,

      /// <remarks/>
      FEDEX_1D,

      /// <remarks/>
      GROUND,

      /// <remarks/>
      POSTAL,

      /// <remarks/>
      USPS,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackDetail
   {

      private Notification notificationField;

      private string trackingNumberField;

      private StringBarcode barcodeField;

      private string trackingNumberUniqueIdentifierField;

      private TrackStatusDetail statusDetailField;

      private TrackInformationNoteDetail[] informationNotesField;

      private CustomerExceptionRequestDetail[] customerExceptionRequestsField;

      private TrackReconciliation reconciliationField;

      private string serviceCommitMessageField;

      private string destinationServiceAreaField;

      private string destinationServiceAreaDescriptionField;

      private CarrierCodeType carrierCodeField;

      private bool carrierCodeFieldSpecified;

      private OperatingCompanyType operatingCompanyField;

      private bool operatingCompanyFieldSpecified;

      private string operatingCompanyOrCarrierDescriptionField;

      private string cartageAgentCompanyNameField;

      private ContactAndAddress productionLocationContactAndAddressField;

      private TrackOtherIdentifierDetail[] otherIdentifiersField;

      private string formIdField;

      private TrackServiceDescriptionDetail serviceField;

      private Weight packageWeightField;

      private Dimensions packageDimensionsField;

      private Weight packageDimensionalWeightField;

      private Weight shipmentWeightField;

      private string packagingField;

      private PackagingType packagingTypeField;

      private bool packagingTypeFieldSpecified;

      private PhysicalPackagingType physicalPackagingTypeField;

      private bool physicalPackagingTypeFieldSpecified;

      private string packageSequenceNumberField;

      private string packageCountField;

      private string creatorSoftwareIdField;

      private TrackChargeDetail[] chargesField;

      private string nickNameField;

      private string notesField;

      private TrackDetailAttributeType[] attributesField;

      private ContentRecord[] shipmentContentsField;

      private string[] packageContentsField;

      private string clearanceLocationCodeField;

      private Commodity[] commoditiesField;

      private TrackReturnDetail returnDetailField;

      private CustomsOptionDetail[] customsOptionDetailsField;

      private TrackAdvanceNotificationDetail advanceNotificationDetailField;

      private TrackSpecialHandling[] specialHandlingsField;

      private TrackPayment[] paymentsField;

      private Contact shipperField;

      private TrackPossessionStatusType possessionStatusField;

      private bool possessionStatusFieldSpecified;

      private Address shipperAddressField;

      private Address originLocationAddressField;

      private string originStationIdField;

      private TrackingDateOrTimestamp[] datesOrTimesField;

      private Distance totalTransitDistanceField;

      private Distance distanceToDestinationField;

      private TrackSpecialInstruction[] specialInstructionsField;

      private Contact recipientField;

      private Address lastUpdatedDestinationAddressField;

      private Address destinationAddressField;

      private Contact holdAtLocationContactField;

      private Address holdAtLocationAddressField;

      private string destinationStationIdField;

      private Address destinationLocationAddressField;

      private FedExLocationType destinationLocationTypeField;

      private bool destinationLocationTypeFieldSpecified;

      private string destinationLocationTimeZoneOffsetField;

      private Address actualDeliveryAddressField;

      private OfficeOrderDeliveryMethodType officeOrderDeliveryMethodField;

      private bool officeOrderDeliveryMethodFieldSpecified;

      private TrackDeliveryLocationType deliveryLocationTypeField;

      private bool deliveryLocationTypeFieldSpecified;

      private string deliveryLocationDescriptionField;

      private string deliveryAttemptsField;

      private string deliverySignatureNameField;

      private PieceCountVerificationDetail[] pieceCountVerificationDetailsField;

      private string totalUniqueAddressCountInConsolidationField;

      private AvailableImagesDetail[] availableImagesField;

      private SignatureImageDetail signatureField;

      private NotificationEventType[] notificationEventsAvailableField;

      private TrackSplitShipmentPart[] splitShipmentPartsField;

      private DeliveryOptionEligibilityDetail[] deliveryOptionEligibilityDetailsField;

      private TrackEvent[] eventsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public Notification Notification
      {
         get { return this.notificationField; }
         set { this.notificationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
      public string TrackingNumber
      {
         get { return this.trackingNumberField; }
         set { this.trackingNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public StringBarcode Barcode
      {
         get { return this.barcodeField; }
         set { this.barcodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public string TrackingNumberUniqueIdentifier
      {
         get { return this.trackingNumberUniqueIdentifierField; }
         set { this.trackingNumberUniqueIdentifierField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public TrackStatusDetail StatusDetail
      {
         get { return this.statusDetailField; }
         set { this.statusDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("InformationNotes", Order = 5)]
      public TrackInformationNoteDetail[] InformationNotes
      {
         get { return this.informationNotesField; }
         set { this.informationNotesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("CustomerExceptionRequests", Order = 6)]
      public CustomerExceptionRequestDetail[] CustomerExceptionRequests
      {
         get { return this.customerExceptionRequestsField; }
         set { this.customerExceptionRequestsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 7)]
      public TrackReconciliation Reconciliation
      {
         get { return this.reconciliationField; }
         set { this.reconciliationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 8)]
      public string ServiceCommitMessage
      {
         get { return this.serviceCommitMessageField; }
         set { this.serviceCommitMessageField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 9)]
      public string DestinationServiceArea
      {
         get { return this.destinationServiceAreaField; }
         set { this.destinationServiceAreaField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 10)]
      public string DestinationServiceAreaDescription
      {
         get { return this.destinationServiceAreaDescriptionField; }
         set { this.destinationServiceAreaDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 11)]
      public CarrierCodeType CarrierCode
      {
         get { return this.carrierCodeField; }
         set { this.carrierCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool CarrierCodeSpecified
      {
         get { return this.carrierCodeFieldSpecified; }
         set { this.carrierCodeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 12)]
      public OperatingCompanyType OperatingCompany
      {
         get { return this.operatingCompanyField; }
         set { this.operatingCompanyField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool OperatingCompanySpecified
      {
         get { return this.operatingCompanyFieldSpecified; }
         set { this.operatingCompanyFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 13)]
      public string OperatingCompanyOrCarrierDescription
      {
         get { return this.operatingCompanyOrCarrierDescriptionField; }
         set { this.operatingCompanyOrCarrierDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 14)]
      public string CartageAgentCompanyName
      {
         get { return this.cartageAgentCompanyNameField; }
         set { this.cartageAgentCompanyNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 15)]
      public ContactAndAddress ProductionLocationContactAndAddress
      {
         get { return this.productionLocationContactAndAddressField; }
         set { this.productionLocationContactAndAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("OtherIdentifiers", Order = 16)]
      public TrackOtherIdentifierDetail[] OtherIdentifiers
      {
         get { return this.otherIdentifiersField; }
         set { this.otherIdentifiersField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 17)]
      public string FormId
      {
         get { return this.formIdField; }
         set { this.formIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 18)]
      public TrackServiceDescriptionDetail Service
      {
         get { return this.serviceField; }
         set { this.serviceField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 19)]
      public Weight PackageWeight
      {
         get { return this.packageWeightField; }
         set { this.packageWeightField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 20)]
      public Dimensions PackageDimensions
      {
         get { return this.packageDimensionsField; }
         set { this.packageDimensionsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 21)]
      public Weight PackageDimensionalWeight
      {
         get { return this.packageDimensionalWeightField; }
         set { this.packageDimensionalWeightField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 22)]
      public Weight ShipmentWeight
      {
         get { return this.shipmentWeightField; }
         set { this.shipmentWeightField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 23)]
      public string Packaging
      {
         get { return this.packagingField; }
         set { this.packagingField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 24)]
      public PackagingType PackagingType
      {
         get { return this.packagingTypeField; }
         set { this.packagingTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool PackagingTypeSpecified
      {
         get { return this.packagingTypeFieldSpecified; }
         set { this.packagingTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 25)]
      public PhysicalPackagingType PhysicalPackagingType
      {
         get { return this.physicalPackagingTypeField; }
         set { this.physicalPackagingTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool PhysicalPackagingTypeSpecified
      {
         get { return this.physicalPackagingTypeFieldSpecified; }
         set { this.physicalPackagingTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 26)]
      public string PackageSequenceNumber
      {
         get { return this.packageSequenceNumberField; }
         set { this.packageSequenceNumberField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 27)]
      public string PackageCount
      {
         get { return this.packageCountField; }
         set { this.packageCountField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 28)]
      public string CreatorSoftwareId
      {
         get { return this.creatorSoftwareIdField; }
         set { this.creatorSoftwareIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Charges", Order = 29)]
      public TrackChargeDetail[] Charges
      {
         get { return this.chargesField; }
         set { this.chargesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 30)]
      public string NickName
      {
         get { return this.nickNameField; }
         set { this.nickNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 31)]
      public string Notes
      {
         get { return this.notesField; }
         set { this.notesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Attributes", Order = 32)]
      public TrackDetailAttributeType[] Attributes
      {
         get { return this.attributesField; }
         set { this.attributesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("ShipmentContents", Order = 33)]
      public ContentRecord[] ShipmentContents
      {
         get { return this.shipmentContentsField; }
         set { this.shipmentContentsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("PackageContents", Order = 34)]
      public string[] PackageContents
      {
         get { return this.packageContentsField; }
         set { this.packageContentsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 35)]
      public string ClearanceLocationCode
      {
         get { return this.clearanceLocationCodeField; }
         set { this.clearanceLocationCodeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Commodities", Order = 36)]
      public Commodity[] Commodities
      {
         get { return this.commoditiesField; }
         set { this.commoditiesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 37)]
      public TrackReturnDetail ReturnDetail
      {
         get { return this.returnDetailField; }
         set { this.returnDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("CustomsOptionDetails", Order = 38)]
      public CustomsOptionDetail[] CustomsOptionDetails
      {
         get { return this.customsOptionDetailsField; }
         set { this.customsOptionDetailsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 39)]
      public TrackAdvanceNotificationDetail AdvanceNotificationDetail
      {
         get { return this.advanceNotificationDetailField; }
         set { this.advanceNotificationDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("SpecialHandlings", Order = 40)]
      public TrackSpecialHandling[] SpecialHandlings
      {
         get { return this.specialHandlingsField; }
         set { this.specialHandlingsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Payments", Order = 41)]
      public TrackPayment[] Payments
      {
         get { return this.paymentsField; }
         set { this.paymentsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 42)]
      public Contact Shipper
      {
         get { return this.shipperField; }
         set { this.shipperField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 43)]
      public TrackPossessionStatusType PossessionStatus
      {
         get { return this.possessionStatusField; }
         set { this.possessionStatusField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool PossessionStatusSpecified
      {
         get { return this.possessionStatusFieldSpecified; }
         set { this.possessionStatusFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 44)]
      public Address ShipperAddress
      {
         get { return this.shipperAddressField; }
         set { this.shipperAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 45)]
      public Address OriginLocationAddress
      {
         get { return this.originLocationAddressField; }
         set { this.originLocationAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 46)]
      public string OriginStationId
      {
         get { return this.originStationIdField; }
         set { this.originStationIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("DatesOrTimes", Order = 47)]
      public TrackingDateOrTimestamp[] DatesOrTimes
      {
         get { return this.datesOrTimesField; }
         set { this.datesOrTimesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 48)]
      public Distance TotalTransitDistance
      {
         get { return this.totalTransitDistanceField; }
         set { this.totalTransitDistanceField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 49)]
      public Distance DistanceToDestination
      {
         get { return this.distanceToDestinationField; }
         set { this.distanceToDestinationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("SpecialInstructions", Order = 50)]
      public TrackSpecialInstruction[] SpecialInstructions
      {
         get { return this.specialInstructionsField; }
         set { this.specialInstructionsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 51)]
      public Contact Recipient
      {
         get { return this.recipientField; }
         set { this.recipientField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 52)]
      public Address LastUpdatedDestinationAddress
      {
         get { return this.lastUpdatedDestinationAddressField; }
         set { this.lastUpdatedDestinationAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 53)]
      public Address DestinationAddress
      {
         get { return this.destinationAddressField; }
         set { this.destinationAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 54)]
      public Contact HoldAtLocationContact
      {
         get { return this.holdAtLocationContactField; }
         set { this.holdAtLocationContactField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 55)]
      public Address HoldAtLocationAddress
      {
         get { return this.holdAtLocationAddressField; }
         set { this.holdAtLocationAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 56)]
      public string DestinationStationId
      {
         get { return this.destinationStationIdField; }
         set { this.destinationStationIdField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 57)]
      public Address DestinationLocationAddress
      {
         get { return this.destinationLocationAddressField; }
         set { this.destinationLocationAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 58)]
      public FedExLocationType DestinationLocationType
      {
         get { return this.destinationLocationTypeField; }
         set { this.destinationLocationTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DestinationLocationTypeSpecified
      {
         get { return this.destinationLocationTypeFieldSpecified; }
         set { this.destinationLocationTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 59)]
      public string DestinationLocationTimeZoneOffset
      {
         get { return this.destinationLocationTimeZoneOffsetField; }
         set { this.destinationLocationTimeZoneOffsetField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 60)]
      public Address ActualDeliveryAddress
      {
         get { return this.actualDeliveryAddressField; }
         set { this.actualDeliveryAddressField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 61)]
      public OfficeOrderDeliveryMethodType OfficeOrderDeliveryMethod
      {
         get { return this.officeOrderDeliveryMethodField; }
         set { this.officeOrderDeliveryMethodField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool OfficeOrderDeliveryMethodSpecified
      {
         get { return this.officeOrderDeliveryMethodFieldSpecified; }
         set { this.officeOrderDeliveryMethodFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 62)]
      public TrackDeliveryLocationType DeliveryLocationType
      {
         get { return this.deliveryLocationTypeField; }
         set { this.deliveryLocationTypeField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DeliveryLocationTypeSpecified
      {
         get { return this.deliveryLocationTypeFieldSpecified; }
         set { this.deliveryLocationTypeFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 63)]
      public string DeliveryLocationDescription
      {
         get { return this.deliveryLocationDescriptionField; }
         set { this.deliveryLocationDescriptionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 64)]
      public string DeliveryAttempts
      {
         get { return this.deliveryAttemptsField; }
         set { this.deliveryAttemptsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 65)]
      public string DeliverySignatureName
      {
         get { return this.deliverySignatureNameField; }
         set { this.deliverySignatureNameField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("PieceCountVerificationDetails", Order = 66)]
      public PieceCountVerificationDetail[] PieceCountVerificationDetails
      {
         get { return this.pieceCountVerificationDetailsField; }
         set { this.pieceCountVerificationDetailsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 67)]
      public string TotalUniqueAddressCountInConsolidation
      {
         get { return this.totalUniqueAddressCountInConsolidationField; }
         set { this.totalUniqueAddressCountInConsolidationField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("AvailableImages", Order = 68)]
      public AvailableImagesDetail[] AvailableImages
      {
         get { return this.availableImagesField; }
         set { this.availableImagesField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 69)]
      public SignatureImageDetail Signature
      {
         get { return this.signatureField; }
         set { this.signatureField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("NotificationEventsAvailable", Order = 70)]
      public NotificationEventType[] NotificationEventsAvailable
      {
         get { return this.notificationEventsAvailableField; }
         set { this.notificationEventsAvailableField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("SplitShipmentParts", Order = 71)]
      public TrackSplitShipmentPart[] SplitShipmentParts
      {
         get { return this.splitShipmentPartsField; }
         set { this.splitShipmentPartsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("DeliveryOptionEligibilityDetails", Order = 72)]
      public DeliveryOptionEligibilityDetail[] DeliveryOptionEligibilityDetails
      {
         get { return this.deliveryOptionEligibilityDetailsField; }
         set { this.deliveryOptionEligibilityDetailsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Events", Order = 73)]
      public TrackEvent[] Events
      {
         get { return this.eventsField; }
         set { this.eventsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum PackagingType
   {

      /// <remarks/>
      FEDEX_10KG_BOX,

      /// <remarks/>
      FEDEX_25KG_BOX,

      /// <remarks/>
      FEDEX_BOX,

      /// <remarks/>
      FEDEX_ENVELOPE,

      /// <remarks/>
      FEDEX_EXTRA_LARGE_BOX,

      /// <remarks/>
      FEDEX_LARGE_BOX,

      /// <remarks/>
      FEDEX_MEDIUM_BOX,

      /// <remarks/>
      FEDEX_PAK,

      /// <remarks/>
      FEDEX_SMALL_BOX,

      /// <remarks/>
      FEDEX_TUBE,

      /// <remarks/>
      YOUR_PACKAGING,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum PhysicalPackagingType
   {

      /// <remarks/>
      BAG,

      /// <remarks/>
      BARREL,

      /// <remarks/>
      BASKET,

      /// <remarks/>
      BOX,

      /// <remarks/>
      BUCKET,

      /// <remarks/>
      BUNDLE,

      /// <remarks/>
      CAGE,

      /// <remarks/>
      CARTON,

      /// <remarks/>
      CASE,

      /// <remarks/>
      CHEST,

      /// <remarks/>
      CONTAINER,

      /// <remarks/>
      CRATE,

      /// <remarks/>
      CYLINDER,

      /// <remarks/>
      DRUM,

      /// <remarks/>
      ENVELOPE,

      /// <remarks/>
      HAMPER,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      PACKAGE,

      /// <remarks/>
      PAIL,

      /// <remarks/>
      PALLET,

      /// <remarks/>
      PARCEL,

      /// <remarks/>
      PIECE,

      /// <remarks/>
      REEL,

      /// <remarks/>
      ROLL,

      /// <remarks/>
      SACK,

      /// <remarks/>
      SHRINK_WRAPPED,

      /// <remarks/>
      SKID,

      /// <remarks/>
      TANK,

      /// <remarks/>
      TOTE_BIN,

      /// <remarks/>
      TUBE,

      /// <remarks/>
      UNIT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackDetailAttributeType
   {

      /// <remarks/>
      INCLUDED_IN_WATCHLIST,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackPossessionStatusType
   {

      /// <remarks/>
      BROKER,

      /// <remarks/>
      CARRIER,

      /// <remarks/>
      CUSTOMS,

      /// <remarks/>
      RECIPIENT,

      /// <remarks/>
      SHIPPER,

      /// <remarks/>
      SPLIT_STATUS,

      /// <remarks/>
      TRANSFER_PARTNER,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum FedExLocationType
   {

      /// <remarks/>
      FEDEX_AUTHORIZED_SHIP_CENTER,

      /// <remarks/>
      FEDEX_EXPRESS_STATION,

      /// <remarks/>
      FEDEX_FACILITY,

      /// <remarks/>
      FEDEX_FREIGHT_SERVICE_CENTER,

      /// <remarks/>
      FEDEX_GROUND_TERMINAL,

      /// <remarks/>
      FEDEX_HOME_DELIVERY_STATION,

      /// <remarks/>
      FEDEX_OFFICE,

      /// <remarks/>
      FEDEX_ONSITE,

      /// <remarks/>
      FEDEX_SELF_SERVICE_LOCATION,

      /// <remarks/>
      FEDEX_SHIPSITE,

      /// <remarks/>
      FEDEX_SHIP_AND_GET,

      /// <remarks/>
      FEDEX_SMART_POST_HUB,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum OfficeOrderDeliveryMethodType
   {

      /// <remarks/>
      COURIER,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      PICKUP,

      /// <remarks/>
      SHIPMENT,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackDeliveryLocationType
   {

      /// <remarks/>
      APARTMENT_OFFICE,

      /// <remarks/>
      FEDEX_LOCATION,

      /// <remarks/>
      GATE_HOUSE,

      /// <remarks/>
      GUARD_OR_SECURITY_STATION,

      /// <remarks/>
      IN_BOND_OR_CAGE,

      /// <remarks/>
      LEASING_OFFICE,

      /// <remarks/>
      MAILROOM,

      /// <remarks/>
      MAIN_OFFICE,

      /// <remarks/>
      MANAGER_OFFICE,

      /// <remarks/>
      OTHER,

      /// <remarks/>
      PHARMACY,

      /// <remarks/>
      RECEPTIONIST_OR_FRONT_DESK,

      /// <remarks/>
      RENTAL_OFFICE,

      /// <remarks/>
      RESIDENCE,

      /// <remarks/>
      SHIPPING_RECEIVING,
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class CompletedTrackDetail
   {

      private NotificationSeverityType highestSeverityField;

      private bool highestSeverityFieldSpecified;

      private Notification[] notificationsField;

      private bool duplicateWaybillField;

      private bool duplicateWaybillFieldSpecified;

      private bool moreDataField;

      private bool moreDataFieldSpecified;

      private string pagingTokenField;

      private string trackDetailsCountField;

      private TrackDetail[] trackDetailsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationSeverityType HighestSeverity
      {
         get { return this.highestSeverityField; }
         set { this.highestSeverityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool HighestSeveritySpecified
      {
         get { return this.highestSeverityFieldSpecified; }
         set { this.highestSeverityFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Notifications", Order = 1)]
      public Notification[] Notifications
      {
         get { return this.notificationsField; }
         set { this.notificationsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public bool DuplicateWaybill
      {
         get { return this.duplicateWaybillField; }
         set { this.duplicateWaybillField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool DuplicateWaybillSpecified
      {
         get { return this.duplicateWaybillFieldSpecified; }
         set { this.duplicateWaybillFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public bool MoreData
      {
         get { return this.moreDataField; }
         set { this.moreDataField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool MoreDataSpecified
      {
         get { return this.moreDataFieldSpecified; }
         set { this.moreDataFieldSpecified = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 4)]
      public string PagingToken
      {
         get { return this.pagingTokenField; }
         set { this.pagingTokenField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(DataType = "nonNegativeInteger", Order = 5)]
      public string TrackDetailsCount
      {
         get { return this.trackDetailsCountField; }
         set { this.trackDetailsCountField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("TrackDetails", Order = 6)]
      public TrackDetail[] TrackDetails
      {
         get { return this.trackDetailsField; }
         set { this.trackDetailsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public partial class TrackReply
   {

      private NotificationSeverityType highestSeverityField;

      private Notification[] notificationsField;

      private TransactionDetail transactionDetailField;

      private VersionId versionField;

      private CompletedTrackDetail[] completedTrackDetailsField;

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
      public NotificationSeverityType HighestSeverity
      {
         get { return this.highestSeverityField; }
         set { this.highestSeverityField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("Notifications", Order = 1)]
      public Notification[] Notifications
      {
         get { return this.notificationsField; }
         set { this.notificationsField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 2)]
      public TransactionDetail TransactionDetail
      {
         get { return this.transactionDetailField; }
         set { this.transactionDetailField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute(Order = 3)]
      public VersionId Version
      {
         get { return this.versionField; }
         set { this.versionField = value; }
      }

      /// <remarks/>
      [System.Xml.Serialization.XmlElementAttribute("CompletedTrackDetails", Order = 4)]
      public CompletedTrackDetail[] CompletedTrackDetails
      {
         get { return this.completedTrackDetailsField; }
         set { this.completedTrackDetailsField = value; }
      }
   }

   /// <remarks/>
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://fedex.com/ws/track/v16")]
   public enum TrackRequestProcessingOptionType
   {

      /// <remarks/>
      INCLUDE_DETAILED_SCANS,
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
   [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
   public partial class trackRequest1
   {

      [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://fedex.com/ws/track/v16", Order = 0)]
      public TrackRequest TrackRequest;

      public trackRequest1()
      {
      }

      public trackRequest1(TrackRequest TrackRequest)
      {
         this.TrackRequest = TrackRequest;
      }
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
   [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
   public partial class trackResponse
   {

      [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://fedex.com/ws/track/v16", Order = 0)]
      public TrackReply TrackReply;

      public trackResponse()
      {
      }

      public trackResponse(TrackReply TrackReply)
      {
         this.TrackReply = TrackReply;
      }
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
   [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
   public partial class getTrackingDocumentsRequest1
   {

      [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://fedex.com/ws/track/v16", Order = 0)]
      public GetTrackingDocumentsRequest GetTrackingDocumentsRequest;

      public getTrackingDocumentsRequest1()
      {
      }

      public getTrackingDocumentsRequest1(GetTrackingDocumentsRequest GetTrackingDocumentsRequest)
      {
         this.GetTrackingDocumentsRequest = GetTrackingDocumentsRequest;
      }
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
   [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
   public partial class getTrackingDocumentsResponse
   {

      [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://fedex.com/ws/track/v16", Order = 0)]
      public GetTrackingDocumentsReply GetTrackingDocumentsReply;

      public getTrackingDocumentsResponse()
      {
      }

      public getTrackingDocumentsResponse(GetTrackingDocumentsReply GetTrackingDocumentsReply)
      {
         this.GetTrackingDocumentsReply = GetTrackingDocumentsReply;
      }
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
   [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
   public partial class sendNotificationsRequest1
   {

      [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://fedex.com/ws/track/v16", Order = 0)]
      public SendNotificationsRequest SendNotificationsRequest;

      public sendNotificationsRequest1()
      {
      }

      public sendNotificationsRequest1(SendNotificationsRequest SendNotificationsRequest)
      {
         this.SendNotificationsRequest = SendNotificationsRequest;
      }
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
   [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
   public partial class sendNotificationsResponse
   {

      [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://fedex.com/ws/track/v16", Order = 0)]
      public SendNotificationsReply SendNotificationsReply;

      public sendNotificationsResponse()
      {
      }

      public sendNotificationsResponse(SendNotificationsReply SendNotificationsReply)
      {
         this.SendNotificationsReply = SendNotificationsReply;
      }
   }

   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   public interface TrackPortTypeChannel : TrackPortType, System.ServiceModel.IClientChannel
   {
   }

   [System.Diagnostics.DebuggerStepThroughAttribute()]
   [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
   public partial class TrackPortTypeClient : System.ServiceModel.ClientBase<TrackPortType>, TrackPortType
   {

      /// <summary>
      /// Implement this partial method to configure the service endpoint.
      /// </summary>
      /// <param name="serviceEndpoint">The endpoint to configure</param>
      /// <param name="clientCredentials">The client credentials</param>
      static partial void ConfigureEndpoint(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint,
         System.ServiceModel.Description.ClientCredentials clientCredentials);

      public TrackPortTypeClient() :
         base(TrackPortTypeClient.GetDefaultBinding(), TrackPortTypeClient.GetDefaultEndpointAddress())
      {
         this.Endpoint.Name = EndpointConfiguration.TrackServicePort.ToString();
         ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
      }

      public TrackPortTypeClient(EndpointConfiguration endpointConfiguration) :
         base(TrackPortTypeClient.GetBindingForEndpoint(endpointConfiguration),
            TrackPortTypeClient.GetEndpointAddress(endpointConfiguration))
      {
         this.Endpoint.Name = endpointConfiguration.ToString();
         ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
      }

      public TrackPortTypeClient(EndpointConfiguration endpointConfiguration, string remoteAddress) :
         base(TrackPortTypeClient.GetBindingForEndpoint(endpointConfiguration),
            new System.ServiceModel.EndpointAddress(remoteAddress))
      {
         this.Endpoint.Name = endpointConfiguration.ToString();
         ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
      }

      public TrackPortTypeClient(EndpointConfiguration endpointConfiguration,
         System.ServiceModel.EndpointAddress remoteAddress) :
         base(TrackPortTypeClient.GetBindingForEndpoint(endpointConfiguration), remoteAddress)
      {
         this.Endpoint.Name = endpointConfiguration.ToString();
         ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
      }

      public TrackPortTypeClient(System.ServiceModel.Channels.Binding binding,
         System.ServiceModel.EndpointAddress remoteAddress) :
         base(binding, remoteAddress)
      {
      }

      [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
      System.Threading.Tasks.Task<trackResponse> TrackPortType.trackAsync(trackRequest1 request)
      {
         return base.Channel.trackAsync(request);
      }

      public System.Threading.Tasks.Task<trackResponse> trackAsync(TrackRequest TrackRequest)
      {
         trackRequest1 inValue = new trackRequest1();
         inValue.TrackRequest = TrackRequest;
         return ((TrackPortType) (this)).trackAsync(inValue);
      }

      [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
      System.Threading.Tasks.Task<getTrackingDocumentsResponse> TrackPortType.getTrackingDocumentsAsync(
         getTrackingDocumentsRequest1 request)
      {
         return base.Channel.getTrackingDocumentsAsync(request);
      }

      public System.Threading.Tasks.Task<getTrackingDocumentsResponse> getTrackingDocumentsAsync(
         GetTrackingDocumentsRequest GetTrackingDocumentsRequest)
      {
         getTrackingDocumentsRequest1 inValue = new getTrackingDocumentsRequest1();
         inValue.GetTrackingDocumentsRequest = GetTrackingDocumentsRequest;
         return ((TrackPortType) (this)).getTrackingDocumentsAsync(inValue);
      }

      [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
      System.Threading.Tasks.Task<sendNotificationsResponse> TrackPortType.sendNotificationsAsync(
         sendNotificationsRequest1 request)
      {
         return base.Channel.sendNotificationsAsync(request);
      }

      public System.Threading.Tasks.Task<sendNotificationsResponse> sendNotificationsAsync(
         SendNotificationsRequest SendNotificationsRequest)
      {
         sendNotificationsRequest1 inValue = new sendNotificationsRequest1();
         inValue.SendNotificationsRequest = SendNotificationsRequest;
         return ((TrackPortType) (this)).sendNotificationsAsync(inValue);
      }

      public virtual System.Threading.Tasks.Task OpenAsync()
      {
         return System.Threading.Tasks.Task.Factory.FromAsync(
            ((System.ServiceModel.ICommunicationObject) (this)).BeginOpen(null, null),
            new System.Action<System.IAsyncResult>(((System.ServiceModel.ICommunicationObject) (this)).EndOpen));
      }

      public virtual System.Threading.Tasks.Task CloseAsync()
      {
         return System.Threading.Tasks.Task.Factory.FromAsync(
            ((System.ServiceModel.ICommunicationObject) (this)).BeginClose(null, null),
            new System.Action<System.IAsyncResult>(((System.ServiceModel.ICommunicationObject) (this)).EndClose));
      }

      private static System.ServiceModel.Channels.Binding GetBindingForEndpoint(
         EndpointConfiguration endpointConfiguration)
      {
         if ((endpointConfiguration == EndpointConfiguration.TrackServicePort))
         {
            System.ServiceModel.BasicHttpBinding result = new System.ServiceModel.BasicHttpBinding();
            result.MaxBufferSize = int.MaxValue;
            result.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max;
            result.MaxReceivedMessageSize = int.MaxValue;
            result.AllowCookies = true;
            result.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport;
            return result;
         }

         throw new System.InvalidOperationException(string.Format("Could not find endpoint with name \'{0}\'.",
            endpointConfiguration));
      }

      private static System.ServiceModel.EndpointAddress GetEndpointAddress(EndpointConfiguration endpointConfiguration)
      {
         if ((endpointConfiguration == EndpointConfiguration.TrackServicePort))
         {
            return new System.ServiceModel.EndpointAddress("https://wsbeta.fedex.com/web-services/track");
         }

         throw new System.InvalidOperationException(string.Format("Could not find endpoint with name \'{0}\'.",
            endpointConfiguration));
      }

      private static System.ServiceModel.Channels.Binding GetDefaultBinding()
      {
         return TrackPortTypeClient.GetBindingForEndpoint(EndpointConfiguration.TrackServicePort);
      }

      private static System.ServiceModel.EndpointAddress GetDefaultEndpointAddress()
      {
         return TrackPortTypeClient.GetEndpointAddress(EndpointConfiguration.TrackServicePort);
      }

      public enum EndpointConfiguration
      {

         TrackServicePort,
      }
   }
}