Microsoft.Azure.EventHubs.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.Azure.EventHubs</name>
    </assembly>
    <members>
        <member name="T:Microsoft.Azure.EventHubs.Amqp.AmqpEventHubClient.TokenProviderAdapter">
            <summary>
            Provides an adapter from TokenProvider to ICbsTokenProvider for AMQP CBS usage.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.BatchOptions">
            <summary>
            Options to define partiton key and maximum message size while creating an <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.BatchOptions.PartitionKey">
            <summary>
            Partition key associated with the batch.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.BatchOptions.MaxMessageSize">
            <summary>
            The maximum size allowed for the batch.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.Core.EventHubsPlugin">
            <summary>
                This class provides methods that can be overridden to manipulate messages for custom plugin functionality.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Core.EventHubsPlugin.Name">
            <summary>
                Gets the name of the <see cref="T:Microsoft.Azure.EventHubs.Core.EventHubsPlugin" />.
            </summary>
            <remarks>This name is used to identify the plugin, and prevent a plugin from being registered multiple times.</remarks>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Core.EventHubsPlugin.ShouldContinueOnException">
            <summary>
                Determines whether or an exception in the plugin should prevent a send or receive operation.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Core.EventHubsPlugin.BeforeEventSend(Microsoft.Azure.EventHubs.EventData)">
            <summary>
                This operation is called before an event is sent.
            </summary>
            <param name="eventData">The <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to be modified by the plugin</param>
            <returns>The modified event <see cref="T:Microsoft.Azure.EventHubs.EventData" /></returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventData">
            <summary>
            The data structure encapsulating the Event being sent-to and received-from EventHubs.
            Each EventHubs partition can be visualized as a Stream of EventData.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventData.#ctor(System.Byte[])">
            <summary>
            Construct EventData to send to EventHub.
            Typical pattern to create a Sending EventData is:
            <para>i. Serialize the sending ApplicationEvent to be sent to EventHubs into bytes.</para>
            <para>ii. If complex serialization logic is involved (for example: multiple types of data) - add a Hint using the <see cref="P:Microsoft.Azure.EventHubs.EventData.Properties" /> for the Consumer.</para>
            </summary>
            <example>Sample Code:
            <code>
            EventData eventData = new EventData(telemetryEventBytes);
            eventData.Properties["eventType"] = "com.microsoft.azure.monitoring.EtlEvent";
            await partitionSender.SendAsync(eventData);
            </code>
            </example>
            <param name="array">The actual payload of data in bytes to be sent to the EventHub.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventData.#ctor(System.ArraySegment{System.Byte})">
            <summary>
            Construct EventData to send to EventHub.
            Typical pattern to create a Sending EventData is:
            <para>i. Serialize the sending ApplicationEvent to be sent to EventHub into bytes.</para>
            <para>ii. If complex serialization logic is involved (for example: multiple types of data) - add a Hint using the <see cref="P:Microsoft.Azure.EventHubs.EventData.Properties" /> for the Consumer.</para>
            </summary>
            <example>Sample Code:
            <code>
            EventData eventData = new EventData(new ArraySegment&lt;byte&gt;(eventBytes, offset, count));
            eventData.Properties["eventType"] = "com.microsoft.azure.monitoring.EtlEvent";
            await partitionSender.SendAsync(eventData);
            </code>
            </example>
            <param name="arraySegment">The payload bytes, offset and length to be sent to the EventHub.</param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.Body">
            <summary>
            Get the actual Payload/Data wrapped by EventData.
            This is intended to be used after receiving EventData using <see cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" />.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.Properties">
            <summary>
            Application property bag
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.SystemProperties">
            <summary>
            SystemProperties that are populated by EventHubService.
            As these are populated by Service, they are only present on a Received EventData.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventData.Dispose">
            <summary>
            Disposes resources attached to an Event Data
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection">
            <summary>
            A collection used to store properties which are set by the Event Hubs service.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.#ctor(System.Int64,System.DateTime,System.String,System.String)">
            <summary>
            Construct and initialize a new instance.
            </summary>
            <param name="sequenceNumber"></param>
            <param name="enqueuedTimeUtc"></param>
            <param name="offset"></param>
            <param name="partitionKey"></param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.SequenceNumber">
            <summary>Gets the logical sequence number of the event within the partition stream of the Event Hub.</summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.EnqueuedTimeUtc">
            <summary>Gets or sets the date and time of the sent time in UTC.</summary>
            <value>The enqueue time in UTC. This value represents the actual time of enqueuing the message.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.Offset">
            <summary>
            Gets the offset of the data relative to the Event Hub partition stream. The offset is a marker or identifier for an event within the Event Hubs stream. The identifier is unique within a partition of the Event Hubs stream.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.PartitionKey">
            <summary>Gets the partition key of the corresponding partition that stored the <see cref="T:Microsoft.Azure.EventHubs.EventData" /></summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventDataBatch">
            <summary>A helper class for creating an IEnumerable&lt;<see cref="T:Microsoft.Azure.EventHubs.EventData" />&gt; taking into account the max size limit, so that the IEnumerable&lt;<see cref="T:Microsoft.Azure.EventHubs.EventData" />&gt; can be passed to the Send or SendAsync method of an <see cref="T:Microsoft.Azure.EventHubs.EventHubClient" /> to send the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> objects as a batch.</summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventDataBatch.#ctor(System.Int64,System.String)">
            <summary>
            Creates a new <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.
            </summary>
            <param name="maxSizeInBytes">The maximum size allowed for the batch</param>
            <param name="partitionKey">Partition key associated with the batch</param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventDataBatch.Count">
            <summary>Gets the current event count in the batch.</summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventDataBatch.TryAdd(Microsoft.Azure.EventHubs.EventData)">
            <summary>Tries to add an event data to the batch if permitted by the batch's size limit.</summary>
            <param name="eventData">The <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to add.</param>
            <returns>A boolean value indicating if the event data has been added to the batch or not.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown when the EventData is null.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown when the batch is already disposed.</exception>
            <remarks>
            This method checks the sizes of the batch, the EventData object and the specified limit to determine
            if the EventData object can be added.
            </remarks>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventDataBatch.Dispose">
            <summary>
            Disposes resources attached to an EventDataBatch.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventDataBatch.ToEnumerable">
            <summary>Returns the enumerator of EventData objects in the batch.</summary>
            <returns>IEnumerable of EventData objects.</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventDataDiagnosticExtensions">
            <summary>
            Diagnostic extension methods for <see cref="T:Microsoft.Azure.EventHubs.EventData" />.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventDataDiagnosticExtensions.ExtractActivity(Microsoft.Azure.EventHubs.EventData,System.String)">
            <summary>
            Creates <see cref="T:System.Diagnostics.Activity" /> based on the tracing context stored in the <see cref="T:Microsoft.Azure.EventHubs.EventData" />
            <param name="eventData">The event received from EventHub</param>
            <param name="activityName">Optional Activity name</param>
            <returns>New <see cref="T:System.Diagnostics.Activity" /> with tracing context</returns>
            </summary>
            <remarks>
            Tracing context is used to correlate telemetry between producer and consumer and
            represented by 'Diagnostic-Id' and 'Correlation-Context' properties in <see cref="P:Microsoft.Azure.EventHubs.EventData.Properties" />.
             
            .NET SDK automatically injects context when sending message to the ServiceBus (if diagnostics is enabled by tracing system).
             
            <para>
            'Diagnostic-Id' uniquely identifies operation that enqueued the event
            </para>
            <para>
            'Correlation-Context' is comma separated list of string key value pairs representing optional context for the operation.
            </para>
             
            If there is no tracing context in the event, this method returns <see cref="T:System.Diagnostics.Activity" /> without parent.
             
            Returned <see cref="T:System.Diagnostics.Activity" /> needs to be started before it can be used (see example below)
            </remarks>
            <example>
            <code>
            async Task ProcessAsync(EventData eventData)
            {
               var activity = eventData.ExtractActivity();
               activity.Start();
               Logger.LogInformation($"Event received, Id = {Activity.Current.Id}")
               try
               {
                  // process event
               }
               catch (Exception ex)
               {
                    Logger.LogError($"Exception {ex}, Id = {Activity.Current.Id}")
               }
               finally
               {
                    activity.Stop();
                    // Activity is stopped, we no longer have it in Activity.Current
                    Logger.LogInformation($"Event processed, Id = {activity.Id}, Duration = {activity.Duration}")
               }
            }
            </code>
             
            Note that every log is stamped with <see cref="P:System.Diagnostics.Activity.Current" />.Id, that could be used within
            any nested method call (sync or async) - <see cref="P:System.Diagnostics.Activity.Current" /> is an ambient context that flows with async method calls.
             
            </example>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubClient">
            <summary>
            Anchor class - all EventHub client operations start here.
            See <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(System.String)" />
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubClient.EventHubName">
            <summary>
            Gets the name of the EventHub.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(System.String)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified connection string. You can populate the EntityPath property with the name of the Event Hub.
            </summary>
            <param name="connectionString"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.Create(System.Uri,System.String,Microsoft.Azure.EventHubs.ITokenProvider,System.Nullable{System.TimeSpan},Microsoft.Azure.EventHubs.TransportType)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified endpoint, entity path, and token provider.
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Event Hub path</param>
            <param name="tokenProvider">Token provider which will generate security tokens for authorization.</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations.</param>
            <param name="transportType">Transport type on connection.</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.Create(System.Uri,System.String,Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext,Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential,System.Nullable{System.TimeSpan},Microsoft.Azure.EventHubs.TransportType)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified endpoint, entity path, AAD authentication context.
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Event Hub path</param>
            <param name="authContext">AuthenticationContext for AAD.</param>
            <param name="clientCredential">The app credential.</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations.</param>
            <param name="transportType">Transport type on connection.</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.Create(System.Uri,System.String,Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext,System.String,System.Uri,Microsoft.IdentityModel.Clients.ActiveDirectory.IPlatformParameters,Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier,System.Nullable{System.TimeSpan},Microsoft.Azure.EventHubs.TransportType)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified endpoint, entity path, AAD authentication context.
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Event Hub path</param>
            <param name="authContext">AuthenticationContext for AAD.</param>
            <param name="clientId">ClientId for AAD.</param>
            <param name="redirectUri">The redirectUri on Client App.</param>
            <param name="platformParameters">Platform parameters</param>
            <param name="userIdentifier">User Identifier</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations.</param>
            <param name="transportType">Transport type on connection.</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.Create(System.Uri,System.String,Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext,Microsoft.IdentityModel.Clients.ActiveDirectory.ClientAssertionCertificate,System.Nullable{System.TimeSpan},Microsoft.Azure.EventHubs.TransportType)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified endpoint, entity path, AAD authentication context.
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Event Hub path</param>
            <param name="authContext">AuthenticationContext for AAD.</param>
            <param name="clientAssertionCertificate">The client assertion certificate credential.</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations.</param>
            <param name="transportType">Transport type on connection.</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreateWithManagedServiceIdentity(System.Uri,System.String,System.Nullable{System.TimeSpan},Microsoft.Azure.EventHubs.TransportType)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified endpoint, entity path on Azure Managed Service Identity authentication.
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Event Hub path</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations.</param>
            <param name="transportType">Transport type on connection.</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.Create(Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder)">
            <summary>
            Creates a new instance of the Event Hubs client using the specified connection string builder.
            </summary>
            <param name="csb"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CloseAsync">
            <summary>
            Closes and releases resources associated with <see cref="T:Microsoft.Azure.EventHubs.EventHubClient" />.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)">
            <summary>
            Send <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to EventHub. The sent EventData will land on any arbitrarily chosen EventHubs partition.
            <para>There are 3 ways to send to EventHubs, each exposed as a method (along with its sendBatch overload):</para>
            <para>i. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
            <para>ii. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData},System.String)" /></para>
            <para>iii. <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
            Use this method to send if:
            <para>a) the <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> operation should be highly available and</para>
            <para>b) the data needs to be evenly distributed among all partitions; exception being, when a subset of partitions are unavailable</para>
            <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> sends the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to a Service Gateway, which in-turn will forward the EventData to one of the EventHub's partitions.
            Here's the message forwarding algorithm:
            <para>i. Forward the EventDatas to EventHub partitions, by equally distributing the data among all partitions (ex: Round-robin the EventDatas to all EventHub partitions) </para>
            <para>ii. If one of the EventHub partitions is unavailable for a moment, the Service Gateway will automatically detect it and forward the message to another available partition - making the send operation highly-available.</para>
            </summary>
            <param name="eventData">the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to be sent.</param>
            <returns>A Task that completes when the send operations is done.</returns>
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" />
            <seealso cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})">
            <summary>
            Send a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to EventHub. The sent EventData will land on any arbitrarily chosen EventHub partition.
            This is the most recommended way to send to EventHub.
             
            <para>There are 3 ways to send to EventHubs, to understand this particular type of send refer to the overload <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" />, which is used to send single <see cref="T:Microsoft.Azure.EventHubs.EventData" />.
            Use this overload if you need to send a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" />.</para>
             
            Sending a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s is useful in the following cases:
            <para>i. Efficient send - sending a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> maximizes the overall throughput by optimally using the number of sessions created to EventHub's service.</para>
            <para>ii. Send multiple <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s in a Transaction. To acheieve ACID properties, the Gateway Service will forward all <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s in the batch to a single EventHub partition.</para>
            </summary>
            <example>
            Sample code:
            <code>
            var client = EventHubClient.Create("__connectionString__");
            while (true)
            {
                var events = new List&lt;EventData&gt;();
                for (int count = 1; count &lt; 11; count++)
                {
                    var payload = new PayloadEvent(count);
                    byte[] payloadBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload));
                    var sendEvent = new EventData(payloadBytes);
                    var applicationProperties = new Dictionary&lt;string, string&gt;();
                    applicationProperties["from"] = "csharpClient";
                    sendEvent.Properties = applicationProperties;
                    events.Add(sendEvent);
                }
                     
                await client.SendAsync(events);
                Console.WriteLine("Sent Batch... Size: {0}", events.Count);
            }
            </code>
            </example>
            <param name="eventDatas">A batch of events to send to EventHub</param>
            <returns>A Task that completes when the send operations is done.</returns>
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" />
            <seealso cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)">
            <summary>
             Sends an '<see cref="T:Microsoft.Azure.EventHubs.EventData" /> with a partitionKey to EventHub. All <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s with a partitionKey are guaranteed to land on the same partition.
             This send pattern emphasize data correlation over general availability and latency.
             <para>There are 3 ways to send to EventHubs, each exposed as a method (along with its batched overload):</para>
             <para>i. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
             <para>ii. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData},System.String)" /></para>
             <para>iii. <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
             Use this type of send if:
             <para>a) There is a need for correlation of events based on Sender instance; The sender can generate a UniqueId and set it as partitionKey - which on the received Message can be used for correlation</para>
             <para>b) The client wants to take control of distribution of data across partitions.</para>
             Multiple PartitionKeys could be mapped to one Partition. EventHubs service uses a proprietary Hash algorithm to map the PartitionKey to a PartitionId.
             Using this type of send (Sending using a specific partitionKey) could sometimes result in partitions which are not evenly distributed.
            </summary>
            <param name="eventData">the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to be sent.</param>
            <param name="partitionKey">the partitionKey will be hashed to determine the partitionId to send the EventData to. On the Received message this can be accessed at <see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.PartitionKey" />.</param>
            <returns>A Task that completes when the send operation is done.</returns>
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" />
            <seealso cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData},System.String)">
            <summary>
            Send a 'batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> with the same partitionKey' to EventHub. All <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s with a partitionKey are guaranteed to land on the same partition.
            Multiple PartitionKey's will be mapped to one Partition.
            <para>
            There are 3 ways to send to EventHubs, to understand this particular type of send refer to the overload <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" />,
            which is the same type of send and is used to send single <see cref="T:Microsoft.Azure.EventHubs.EventData" />.
            </para>
            Sending a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s is useful in the following cases:
            <para>i. Efficient send - sending a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> maximizes the overall throughput by optimally using the number of sessions created to EventHubs service.</para>
            <para>ii. Sending multiple events in One Transaction. This is the reason why all events sent in a batch needs to have same partitionKey (so that they are sent to one partition only).</para>
            </summary>
            <param name="eventDatas">the batch of events to send to EventHub</param>
            <param name="partitionKey">the partitionKey will be hashed to determine the partitionId to send the EventData to. On the Received message this can be accessed at <see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.PartitionKey" />.</param>
            <returns>A Task that completes when the send operation is done.</returns>
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" />
            <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventDataBatch)">
            <summary>
            Send a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> in <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.
            </summary>
            <param name="eventDataBatch">the batch of events to send to EventHub</param>
            <returns>A Task that completes when the send operation is done.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreatePartitionSender(System.String)">
            <summary>
            Create a <see cref="T:Microsoft.Azure.EventHubs.PartitionSender" /> which can publish <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s directly to a specific EventHub partition (sender type iii. in the below list).
            <para />
            There are 3 patterns/ways to send to EventHubs:
            <para>i. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
            <para>ii. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData},System.String)" /></para>
            <para>iii. <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
            </summary>
            <param name="partitionId">partitionId of EventHub to send the <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s to.</param>
            <returns>The created PartitionSender</returns>
            <seealso cref="T:Microsoft.Azure.EventHubs.PartitionSender" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreateReceiver(System.String,System.String,Microsoft.Azure.EventHubs.EventPosition,Microsoft.Azure.EventHubs.ReceiverOptions)">
            <summary>
            Create the EventHub receiver with given <see cref="T:Microsoft.Azure.EventHubs.EventPosition" />.
            The receiver is created for a specific EventHub Partition from the specific consumer group.
            </summary>
            <param name="consumerGroupName">the consumer group name that this receiver should be grouped under.</param>
            <param name="partitionId">the partition Id that the receiver belongs to. All data received will be from this partition only.</param>
            <param name="eventPosition">The starting <see cref="T:Microsoft.Azure.EventHubs.EventPosition" /> at which to start receiving messages.</param>
            <param name="receiverOptions">Options for a event hub receiver.</param>
            <returns>The created PartitionReceiver</returns>
            <seealso cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreateEpochReceiver(System.String,System.String,Microsoft.Azure.EventHubs.EventPosition,System.Int64,Microsoft.Azure.EventHubs.ReceiverOptions)">
            <summary>
            Create a Epoch based EventHub receiver with given <see cref="T:Microsoft.Azure.EventHubs.EventPosition" />.
            The receiver is created for a specific EventHub Partition from the specific consumer group.
            <para />It is important to pay attention to the following when creating epoch based receiver:
            <para />- Ownership enforcement: Once you created an epoch based receiver, you cannot create a non-epoch receiver to the same consumerGroup-Partition combo until all receivers to the combo are closed.
            <para />- Ownership stealing: If a receiver with higher epoch value is created for a consumerGroup-Partition combo, any older epoch receiver to that combo will be force closed.
            <para />- Any receiver closed due to lost of ownership to a consumerGroup-Partition combo will get ReceiverDisconnectedException for all operations from that receiver.
            </summary>
            <param name="consumerGroupName">the consumer group name that this receiver should be grouped under.</param>
            <param name="partitionId">the partition Id that the receiver belongs to. All data received will be from this partition only.</param>
            <param name="eventPosition">The starting <see cref="T:Microsoft.Azure.EventHubs.EventPosition" /> at which to start receiving messages.</param>
            <param name="epoch">a unique identifier (epoch value) that the service uses, to enforce partition/lease ownership.</param>
            <param name="receiverOptions">Options for a event hub receiver.</param>
            <returns>The created PartitionReceiver</returns>
            <seealso cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" />
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.GetRuntimeInformationAsync">
            <summary>
            Retrieves EventHub runtime information
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.GetPartitionRuntimeInformationAsync(System.String)">
            <summary>Retrieves runtime information for the specified partition of the Event Hub.</summary>
            <param name="partitionId">The partition ID.</param>
            <returns>Returns <see cref="T:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation" />.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreateBatch">
            <summary>Creates a batch where event data objects can be added for later SendAsync call.</summary>
            <returns>Returns <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.CreateBatch(Microsoft.Azure.EventHubs.BatchOptions)">
            <summary>Creates a batch where event data objects can be added for later SendAsync call.</summary>
            <param name="options"><see cref="T:Microsoft.Azure.EventHubs.BatchOptions" /> to define partition key and max message size.</param>
            <returns>Returns <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.</returns>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubClient.EnableReceiverRuntimeMetric">
            <summary> Gets or sets a value indicating whether the runtime metric of a receiver is enabled. </summary>
            <value> true if a client wants to access <see cref="T:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation" /> using <see cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" />. </value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubClient.WebProxy">
            <summary>
            Gets or sets the web proxy.
            A proxy is applicable only when transport type is set to AmqpWebSockets.
            If not set, systemwide proxy settings will be honored.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.OnCreateReceiver(System.String,System.String,Microsoft.Azure.EventHubs.EventPosition,System.Nullable{System.Int64},Microsoft.Azure.EventHubs.ReceiverOptions)">
            <summary></summary>
            <param name="consumerGroupName"></param>
            <param name="partitionId"></param>
            <param name="eventPosition"></param>
            <param name="epoch"></param>
            <param name="receiverOptions"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.OnGetRuntimeInformationAsync">
            <summary></summary>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.OnGetPartitionRuntimeInformationAsync(System.String)">
            <summary></summary>
            <param name="partitionId"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.OnCloseAsync">
            <summary></summary>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubClient.OnRetryPolicyUpdate">
            <summary>
            Handle retry policy updates here.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation">
            <summary>
            Contains information regarding an event hub partition.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.Path">
            <summary>Gets the path of the event hub.</summary>
            <value>The path of the event hub.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.PartitionId">
            <summary>Gets the partition ID for a logical partition of an Event Hub.</summary>
            <value>The partition identifier.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.BeginSequenceNumber">
            <summary>Gets the begin sequence number.</summary>
            <value>The begin sequence number.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.LastEnqueuedSequenceNumber">
            <summary>Gets the end sequence number.</summary>
            <value>The end sequence number.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.LastEnqueuedOffset">
            <summary>Gets the offset of the last enqueued event.</summary>
            <value>The offset of the last enqueued event.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.LastEnqueuedTimeUtc">
            <summary>Gets the enqueued UTC time of the last event.</summary>
            <value>The enqueued time of the last event.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubPartitionRuntimeInformation.IsEmpty">
            <summary>Gets whether partition is empty or not.</summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubRuntimeInformation">
            <summary>
            Contains information regarding Event Hubs.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubRuntimeInformation.Path">
            <summary>Gets or sets the path to the Event Hub.</summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubRuntimeInformation.CreatedAt">
            <summary>Gets or sets the time at which the Event Hub was created.</summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubRuntimeInformation.PartitionCount">
            <summary>Gets or sets the number of partitions in an Event Hub.</summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubRuntimeInformation.PartitionIds">
            <summary>Gets or sets the partition IDs for an Event Hub.</summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubsDiagnosticSource">
            <summary>
            Diagnostic Source util for "Microsoft.Azure.EventHubs" source.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubsEventSource">
            <summary>
            EventSource for Microsoft-Azure-EventHubs traces.
             
            When defining Start/Stop tasks, the StopEvent.Id must be exactly StartEvent.Id + 1.
             
            Do not explicity include the Guid here, since EventSource has a mechanism to automatically
            map to an EventSource Guid based on the Name (Microsoft-Azure-EventHubs).
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventPosition">
            <summary>
            Represents options can be set during the creation of a event hub receiver.
            </summary>
            <summary>
            Defines a position of an <see cref="T:Microsoft.Azure.EventHubs.EventData" /> in the event hub partition.
            The position can be one of <see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.Offset" />, <see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.SequenceNumber" />
            or <see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.EnqueuedTimeUtc" />.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventPosition.FromStart">
            <summary>
            Returns the position for the start of a stream. Provide this position in receiver creation
            to starting receiving from the first available event in the partition.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventPosition.FromEnd">
            <summary>
            Returns the position for the end of a stream. Provide this position in receiver creation
            to start receiving from the next available event in the partition after the receiver is created.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventPosition.FromOffset(System.String,System.Boolean)">
            <summary>
            Creates a position at the given offset.
            </summary>
            <param name="offset"><see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.Offset" /> </param>
            <param name="inclusive">If true, the specified event is included; otherwise the next event is returned.</param>
            <returns>An <see cref="T:Microsoft.Azure.EventHubs.EventPosition" /> object.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventPosition.FromSequenceNumber(System.Int64,System.Boolean)">
            <summary>
            Creates a position at the given offset.
            </summary>
            <param name="sequenceNumber"><see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.SequenceNumber" /></param>
            <param name="inclusive">If true, the specified event is included; otherwise the next event is returned.</param>
            <returns>An <see cref="T:Microsoft.Azure.EventHubs.EventPosition" /> object.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventPosition.FromEnqueuedTime(System.DateTime)">
            <summary>
            Creates a position at the given offset.
            </summary>
            <param name="enqueuedTimeUtc"><see cref="P:Microsoft.Azure.EventHubs.EventData.SystemPropertiesCollection.EnqueuedTimeUtc" /></param>
            <returns>An <see cref="T:Microsoft.Azure.EventHubs.EventPosition" /> object.</returns>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventPosition.Offset">
            <summary>
            Gets the offset of the event at the position. It can be null if the position is just created
            from a sequence number or an enqueued time.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventPosition.IsInclusive">
            <summary>
            Indicates if the current event at the specified offset is included or not.
            It is only applicable if offset is set.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventPosition.EnqueuedTimeUtc">
            <summary>
            Gets the enqueued time of the event at the position. It can be null if the position is just created
            from an offset or a sequence number.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventPosition.SequenceNumber">
            <summary>
            Gets the sequence number of the event at the position. It can be null if the position is just created
            from an offset or an enqueued time.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.IPartitionReceiveHandler">
            <summary>
            A handler interface for the receive operation. Use any implementation of this interface to specify
            user action when using <see cref="M:Microsoft.Azure.EventHubs.PartitionReceiver.SetReceiveHandler(Microsoft.Azure.EventHubs.IPartitionReceiveHandler,System.Boolean)" />.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.IPartitionReceiveHandler.MaxBatchSize">
            <summary>
            Gets or sets the maximum batch size.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.IPartitionReceiveHandler.ProcessEventsAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})">
            <summary>
            Users should implement this method to specify the action to be performed on the received events.
            </summary>
            <seealso cref="M:Microsoft.Azure.EventHubs.PartitionReceiver.ReceiveAsync(System.Int32)" />
            <param name="events">The list of fetched events from the corresponding PartitionReceiver.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.IPartitionReceiveHandler.ProcessErrorAsync(System.Exception)">
            <summary>
            Implement in order to handle exceptions that are thrown during receipt of events.
            </summary>
            <param name="error">The <see cref="T:System.Exception" /> to be processed</param>
            <returns>An asynchronour operation</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.PartitionReceiver">
            <summary>
            This is a logical representation of receiving from a EventHub partition.
            <para>
            A PartitionReceiver is tied to a ConsumerGroup + Partition combination. If you are creating an epoch based
            PartitionReceiver (i.e. PartitionReceiver.Epoch != 0) you cannot have more than one active receiver per
            ConsumerGroup + Partition combo. You can have multiple receivers per ConsumerGroup + Partition combination with
            non-epoch receivers.
            </para>
            </summary>
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateReceiver(System.String,System.String,Microsoft.Azure.EventHubs.EventPosition,Microsoft.Azure.EventHubs.ReceiverOptions)" />
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateEpochReceiver(System.String,System.String,Microsoft.Azure.EventHubs.EventPosition,System.Int64,Microsoft.Azure.EventHubs.ReceiverOptions)" />
        </member>
        <member name="F:Microsoft.Azure.EventHubs.PartitionReceiver.DefaultConsumerGroupName">
            <summary>
            The default consumer group name: $Default.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.#ctor(Microsoft.Azure.EventHubs.EventHubClient,System.String,System.String,Microsoft.Azure.EventHubs.EventPosition,System.Nullable{System.Int64},Microsoft.Azure.EventHubs.ReceiverOptions)">
            <summary></summary>
            <param name="eventHubClient"></param>
            <param name="consumerGroupName"></param>
            <param name="partitionId"></param>
            <param name="eventPosition"></param>
            <param name="epoch"></param>
            <param name="receiverOptions"></param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.EventHubClient">
            <summary>
            The EventHubClient this PartitionReceiver was created from.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.ConsumerGroupName">
            <summary>
            The Consumer Group Name
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.PartitionId">
            <summary>
            Get the EventHub partition identifier.
            </summary>
            <value>The identifier representing the partition from which this receiver is fetching data</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.PrefetchCount">
            <summary>
            Get Prefetch Count configured on the Receiver.
            </summary>
            <value>The upper limit of events this receiver will actively receive regardless of whether a receive operation is pending.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.Epoch">
            <summary>
            Get the epoch value that this receiver is currently using for partition ownership.
            <para>A value of null means this receiver is not an epoch-based receiver.</para>
            </summary>
            <value>the epoch value that this receiver is currently using for partition ownership.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.EventPosition">
            <summary></summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.Identifier">
            <summary>Gets the identifier of a receiver which was set during the creation of the receiver.</summary>
            <value>A string representing the identifier of a receiver. It will return null if the identifier is not set.</value>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.ReceiveAsync(System.Int32)">
            <summary>
            Receive a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s from an EventHub partition
            </summary>
            <example>
            Sample code:
            <code>
            EventHubClient client = EventHubClient.Create("__connectionString__");
            PartitionReceiver receiver = client.CreateReceiver("ConsumerGroup1", "1");
            IEnumerable&lt;EventData&gt; receivedEvents = await receiver.ReceiveAsync(BatchSize);
                  
            while (true)
            {
                int batchSize = 0;
                if (receivedEvents != null)
                {
                    foreach (EventData receivedEvent in receivedEvents)
                    {
                        Console.WriteLine("Message Payload: {0}", Encoding.UTF8.GetString(receivedEvent.Body));
                        Console.WriteLine("Offset: {0}, SeqNo: {1}, EnqueueTime: {2}",
                            receivedEvent.SystemProperties.Offset,
                            receivedEvent.SystemProperties.SequenceNumber,
                            receivedEvent.SystemProperties.EnqueuedTime);
                        batchSize++;
                    }
                }
                      
                Console.WriteLine("ReceivedBatch Size: {0}", batchSize);
                receivedEvents = await receiver.ReceiveAsync();
            }
            </code>
            </example>
            <returns>A Task that will yield a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> from the partition on which this receiver is created. Returns 'null' if no EventData is present.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.ReceiveAsync(System.Int32,System.TimeSpan)">
            <summary>
            Receive a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s from an EventHub partition by allowing wait time on each individual call.
            </summary>
            <returns>A Task that will yield a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> from the partition on which this receiver is created. Returns 'null' if no EventData is present.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.SetReceiveHandler(Microsoft.Azure.EventHubs.IPartitionReceiveHandler,System.Boolean)">
            <summary>
            Sets the <see cref="T:Microsoft.Azure.EventHubs.IPartitionReceiveHandler" /> to process events.
            </summary>
            <param name="receiveHandler">The <see cref="T:Microsoft.Azure.EventHubs.IPartitionReceiveHandler" /> used to process events.</param>
            <param name="invokeWhenNoEvents">Flag to indicate whether the handler should be invoked when the receive call times out.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.CloseAsync">
            <summary>
            Closes and releases resources associated with <see cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" />.
            </summary>
            <returns>An asynchronous operation</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.OnReceiveAsync(System.Int32,System.TimeSpan)">
            <summary></summary>
            <param name="maxMessageCount"></param>
            <param name="waitTime"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.OnSetReceiveHandler(Microsoft.Azure.EventHubs.IPartitionReceiveHandler,System.Boolean)">
            <summary></summary>
            <param name="receiveHandler"></param>
            <param name="invokeWhenNoEvents"></param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.RuntimeInfo">
            <summary>
            Gets the approximate receiver runtime information for a logical partition of an Event Hub.
            To enable the setting, refer to <see cref="T:Microsoft.Azure.EventHubs.ReceiverOptions" /> and <see cref="P:Microsoft.Azure.EventHubs.EventHubClient.EnableReceiverRuntimeMetric" />
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionReceiver.ReceiverRuntimeMetricEnabled">
            <summary> Gets a value indicating whether the runtime metric of a receiver is enabled. </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionReceiver.OnCloseAsync">
            <summary></summary>
            <returns></returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.PartitionSender">
            <summary>
            This sender class is a logical representation of sending events to a specific EventHub partition. Do not use this class
            if you do not care about sending events to specific partitions, instead use <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" />.
            </summary>
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreatePartitionSender(System.String)" />
            <seealso cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(System.String)" />
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionSender.EventHubClient">
            <summary>
            Gets the <see cref="P:Microsoft.Azure.EventHubs.PartitionSender.EventHubClient" /> associated with this PartitionSender.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.PartitionSender.PartitionId">
            <summary>
            Gets the partition ID for this <see cref="T:Microsoft.Azure.EventHubs.PartitionSender" />.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionSender.CreateBatch">
            <summary>Creates a batch where event data objects can be added for later SendAsync call.</summary>
            <returns>Returns <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionSender.CreateBatch(Microsoft.Azure.EventHubs.BatchOptions)">
            <summary>Creates a batch where event data objects can be added for later SendAsync call.</summary>
            <param name="options"><see cref="T:Microsoft.Azure.EventHubs.BatchOptions" /> to define partition key and max message size.</param>
            <returns>Returns <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)">
            <summary>
            Send <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to a specific EventHub partition. The target partition is pre-determined when this PartitionSender was created.
            This send pattern emphasizes data correlation over general availability and latency.
            <para>There are 3 ways to send to EventHubs, each exposed as a method (along with its sendBatch overload):</para>
            <para>i. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
            <para>ii. <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(Microsoft.Azure.EventHubs.EventData,System.String)" /> or <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData},System.String)" /></para>
            <para>iii. <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" /> or <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})" /></para>
            Use this type of send if:
            <para>a. The client wants to take direct control of distribution of data across partitions. In this case client is responsible for making sure there is at least one sender per event hub partition.</para>
            <para>b. User cannot use partition key as a mean to direct events to specific partition, yet there is a need for data correlation with partitioning scheme.</para>
            </summary>
            <param name="eventData">the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to be sent.</param>
            <returns>A Task that completes when the send operations is done.</returns>
            <exception cref="T:Microsoft.Azure.EventHubs.MessageSizeExceededException">the total size of the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> exceeds a pre-defined limit set by the service. Default is 256k bytes.</exception>
            <exception cref="T:Microsoft.Azure.EventHubs.EventHubsException">Event Hubs service encountered problems during the operation.</exception>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.Azure.EventHubs.EventData})">
            <summary>
            Send <see cref="T:Microsoft.Azure.EventHubs.EventData" /> to a specific EventHub partition. The targeted partition is pre-determined when this PartitionSender was created.
            <para>
            There are 3 ways to send to EventHubs, to understand this particular type of send refer to the overload <see cref="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventData)" />, which is the same type of send and is used to send single <see cref="T:Microsoft.Azure.EventHubs.EventData" />.
            </para>
            Sending a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s is useful in the following cases:
            <para>i. Efficient send - sending a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> maximizes the overall throughput by optimally using the number of sessions created to EventHubs' service.</para>
            <para>ii. Sending multiple <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s in a Transaction. To acheive ACID properties, the Gateway Service will forward all <see cref="T:Microsoft.Azure.EventHubs.EventData" />'s in the batch to a single EventHub partition.</para>
            </summary>
            <example>
            Sample code:
            <code>
            EventHubClient client = EventHubClient.Create("__connectionString__");
            PartitionSender senderToPartitionOne = client.CreatePartitionSender("1");
                     
            while (true)
            {
                var events = new List&lt;EventData&gt;();
                for (int count = 1; count &lt; 11; count++)
                {
                    var payload = new PayloadEvent(count);
                    byte[] payloadBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload));
                    var sendEvent = new EventData(payloadBytes);
                    var applicationProperties = new Dictionary&lt;string, string&gt;();
                    applicationProperties["from"] = "csharpClient";
                    sendEvent.Properties = applicationProperties;
                    events.Add(sendEvent);
                }
                     
                await senderToPartitionOne.SendAsync(events);
                Console.WriteLine("Sent Batch... Size: {0}", events.Count);
                 
            }
            </code>
            </example>
            <param name="eventDatas">batch of events to send to EventHub</param>
            <returns>a Task that completes when the send operation is done.</returns>
            <exception cref="T:Microsoft.Azure.EventHubs.MessageSizeExceededException">the total size of the <see cref="T:Microsoft.Azure.EventHubs.EventData" /> exceeds a pre-defined limit set by the service. Default is 256k bytes.</exception>
            <exception cref="T:Microsoft.Azure.EventHubs.EventHubsException">Event Hubs service encountered problems during the operation.</exception>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionSender.SendAsync(Microsoft.Azure.EventHubs.EventDataBatch)">
            <summary>
            Send a batch of <see cref="T:Microsoft.Azure.EventHubs.EventData" /> in <see cref="T:Microsoft.Azure.EventHubs.EventDataBatch" />.
            </summary>
            <param name="eventDataBatch">the batch of events to send to EventHub</param>
            <returns>A Task that completes when the send operation is done.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.PartitionSender.CloseAsync">
            <summary>
            Closes and releases resources for the <see cref="T:Microsoft.Azure.EventHubs.PartitionSender" />.
            </summary>
            <returns>An asynchronous operation</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.AsyncLock">
            <summary>
            Used as an asynchronous semaphore for internal Event Hubs operations.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.AsyncLock.#ctor">
            <summary>
            Returns a new AsyncLock.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.AsyncLock.LockAsync">
            <summary>
            Sets a lock.
            </summary>
            <returns>An asynchronous operation</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.AsyncLock.LockAsync(System.Threading.CancellationToken)">
            <summary>
            Sets a lock, which allows for cancellation, using a <see cref="T:System.Threading.CancellationToken" />.
            </summary>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken" /> which can be used to cancel the lock</param>
            <returns>An asynchronous operation</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.AsyncLock.Dispose">
            <summary>
            Closes and releases any resources associated with the AsyncLock.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.AsyncLock.LockRelease">
            <summary>
            Used coordinate lock releases.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.AsyncLock.LockRelease.Dispose">
            <summary>
            Closes and releases resources associated with <see cref="T:Microsoft.Azure.EventHubs.AsyncLock.LockRelease" />.
            </summary>
            <returns>An asynchronous operation</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.AzureActiveDirectoryTokenProvider">
            <summary>
            Represents the Azure Active Directory token provider for the Event Hubs.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.AzureActiveDirectoryTokenProvider.GetTokenAsync(System.String,System.TimeSpan)">
            <summary>
            Gets a <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /> for the given audience and duration.
            </summary>
            <param name="appliesTo">The URI which the access token applies to</param>
            <param name="timeout">The time span that specifies the timeout value for the message that gets the security token</param>
            <returns><see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /></returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ClientEntity">
            <summary>
            Contract for all client entities with Open-Close/Abort state m/c
            main-purpose: closeAll related entities
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.#ctor(System.String)">
            <summary></summary>
            <param name="clientId"></param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ClientEntity.ClientId">
            <summary>
            Gets the client ID.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ClientEntity.RegisteredPlugins">
            <summary>
            Gets a list of currently registered plugins for this Client.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ClientEntity.RetryPolicy">
            <summary>
            Gets the <see cref="T:Microsoft.Azure.EventHubs.RetryPolicy" /> for the ClientEntity.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.CloseAsync">
            <summary>
            Closes the ClientEntity.
            </summary>
            <returns>The asynchronous operation</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.RegisterPlugin(Microsoft.Azure.EventHubs.Core.EventHubsPlugin)">
            <summary>
            Registers a <see cref="T:Microsoft.Azure.EventHubs.Core.EventHubsPlugin" /> to be used with this client.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.UnregisterPlugin(System.String)">
            <summary>
            Unregisters a <see cref="T:Microsoft.Azure.EventHubs.Core.EventHubsPlugin" />.
            </summary>
            <param name="pluginName">The <see cref="P:Microsoft.Azure.EventHubs.Core.EventHubsPlugin.Name" /> of the plugin to be unregistered.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.Close">
            <summary>
            Closes the ClientEntity.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.GetNextId">
            <summary></summary>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ClientEntity.OnRetryPolicyUpdate">
            <summary>
            Derived entity to override for retry policy updates.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubsCommunicationException">
            <summary>
            Exception for signaling general communication errors related to messaging operations.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsCommunicationException.#ctor(System.String)">
            <summary></summary>
            <param name="message"></param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsCommunicationException.#ctor(System.String,System.Exception)">
            <summary></summary>
            <param name="message"></param>
            <param name="innerException"></param>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.TransportType">
            <summary>
             Supported transport types
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.TransportType.Amqp">
            <summary>
            AMQP over the default TCP transport protocol
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.TransportType.AmqpWebSockets">
            <summary>
            AMQP over the Web Sockets transport protocol
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder">
            <summary>
            EventHubsConnectionStringBuilder can be used to construct a connection string which can establish communication with Event Hubs entities.
            It can also be used to perform basic validation on an existing connection string.
            <para />
            A connection string is basically a string consisted of key-value pair separated by ";".
            Basic format is "&lt;key&gt;=&lt;value&gt;[;&lt;key&gt;=&lt;value&gt;]" where supported key name are as follow:
            <para /> Endpoint - the URL that contains the Event Hubs namespace
            <para /> EntityPath - the path to the Event Hub entity
            <para /> SharedAccessKeyName - the key name to the corresponding shared access policy rule for the namespace, or entity.
            <para /> SharedAccessKey - the key for the corresponding shared access policy rule of the namespace or entity.
            </summary>
            <example>
            Sample code:
            <code>
            var connectionStringBuiler = new EventHubsConnectionStringBuilder(
                "amqps://EventHubsNamespaceName.servicebus.windows.net",
                "EventHubsEntityName", // Event Hub Name
                "SharedAccessSignatureKeyName",
                "SharedAccessSignatureKey");
             string connectionString = connectionStringBuiler.ToString();
            </code>
            </example>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.#ctor(System.Uri,System.String,System.String,System.String)">
            <summary>
            Build a connection string consumable by <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(System.String)" />
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Entity path or Event Hub name.</param>
            <param name="sharedAccessKeyName">Shared Access Key name</param>
            <param name="sharedAccessKey">Shared Access Key</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.#ctor(System.Uri,System.String,System.String,System.String,System.TimeSpan)">
            <summary>
            Build a connection string consumable by <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(System.String)" />
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Entity path or Event Hub name.</param>
            <param name="sharedAccessKeyName">Shared Access Key name</param>
            <param name="sharedAccessKey">Shared Access Key</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.#ctor(System.Uri,System.String,System.String,System.TimeSpan)">
            <summary>
            Build a connection string consumable by <see cref="M:Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(System.String)" />
            </summary>
            <param name="endpointAddress">Fully qualified domain name for Event Hubs. Most likely, {yournamespace}.servicebus.windows.net</param>
            <param name="entityPath">Entity path or Event Hub name.</param>
            <param name="sharedAccessSignature">Shared Access Signature</param>
            <param name="operationTimeout">Operation timeout for Event Hubs operations</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.#ctor(System.String)">
            <summary>
            ConnectionString format:
            Endpoint=sb://namespace_DNS_Name;EntityPath=EVENT_HUB_NAME;SharedAccessKeyName=SHARED_ACCESS_KEY_NAME;SharedAccessKey=SHARED_ACCESS_KEY
            </summary>
            <param name="connectionString">Event Hubs ConnectionString</param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.Endpoint">
            <summary>
            Gets or sets the Event Hubs endpoint.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.SasKey">
            <summary>
            Get the shared access policy key value from the connection string
            </summary>
            <value>Shared Access Signature key</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.SasKeyName">
            <summary>
            Get the shared access policy owner name from the connection string
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.SharedAccessSignature">
            <summary>
            Gets or sets the SAS access token.
            </summary>
            <value>Shared Access Signature</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.EntityPath">
            <summary>
            Get the entity path value from the connection string
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.OperationTimeout">
            <summary>
            OperationTimeout is applied in erroneous situations to notify the caller about the relevant <see cref="T:Microsoft.Azure.EventHubs.EventHubsException" />
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.TransportType">
            <summary>
            Transport type for the client connection.
            Avaiable options are Amqp and AmqpWebSockets.
            Defaults to Amqp if not specified.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.Clone">
            <summary>
            Creates a cloned object of the current <see cref="T:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder" />.
            </summary>
            <returns>A new <see cref="T:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder" /></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsConnectionStringBuilder.ToString">
            <summary>
            Returns an interoperable connection string that can be used to connect to Event Hubs Namespace
            </summary>
            <returns>the connection string</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubsException">
            <summary>
            Base Exception for various Event Hubs errors.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsException.#ctor(System.Boolean)">
            <summary>
            Returns a new EventHubsException
            </summary>
            <param name="isTransient">Specifies whether or not the exception is transient.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsException.#ctor(System.Boolean,System.String)">
            <summary>
            Returns a new EventHubsException
            </summary>
            <param name="isTransient">Specifies whether or not the exception is transient.</param>
            <param name="message">The detailed message exception.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsException.#ctor(System.Boolean,System.Exception)">
            <summary>
            Returns a new EventHubsException
            </summary>
            <param name="isTransient">Specifies whether or not the exception is transient.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsException.#ctor(System.Boolean,System.String,System.Exception)">
            <summary>
            Returns a new EventHubsException
            </summary>
            <param name="isTransient">Specifies whether or not the exception is transient.</param>
            <param name="message">The detailed message exception.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsException.Message">
            <summary>
            Gets the message as a formatted string.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsException.IsTransient">
            <summary>
            A boolean indicating if the exception is a transient error or not.
            </summary>
            <value>returns true when user can retry the operation that generated the exception without additional intervention.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.EventHubsException.EventHubsNamespace">
            <summary>
            Gets the Event Hubs namespace from which the exception occured, if available.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.EventHubsTimeoutException">
            <summary>
                The exception that is thrown when a time out is encountered. Callers retry the operation.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.EventHubsTimeoutException.#ctor(System.String,System.Exception)">
            <summary>
                 
            </summary>
            <param name="message"></param>
            <param name="innerException"></param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ExceptionUtility.PrepareForRethrow(System.Exception)">
            <summary>
                Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown.
            </summary>
            <param name="exception">The exception. May not be <c>null</c>.</param>
            <returns>The <see cref="T:System.Exception" /> that was passed into this method.</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.Primitives.TaskExtensions">
            <summary>
            Provides synchronous extension methods for tasks.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Primitives.TaskExtensions.WaitAndUnwrapException(System.Threading.Tasks.Task)">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <param name="task">The task. May not be <c>null</c>.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Primitives.TaskExtensions.WaitAndUnwrapException(System.Threading.Tasks.Task,System.Threading.CancellationToken)">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <param name="task">The task. May not be <c>null</c>.</param>
            <param name="cancellationToken">A cancellation token to observe while waiting for the task to complete.</param>
            <exception cref="T:System.OperationCanceledException">The <paramref name="cancellationToken" /> was cancelled before the <paramref name="task" /> completed, or the <paramref name="task" /> raised an <see cref="T:System.OperationCanceledException" />.</exception>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Primitives.TaskExtensions.WaitAndUnwrapException``1(System.Threading.Tasks.Task{``0})">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <typeparam name="TResult">The type of the result of the task.</typeparam>
            <param name="task">The task. May not be <c>null</c>.</param>
            <returns>The result of the task.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Primitives.TaskExtensions.WaitAndUnwrapException``1(System.Threading.Tasks.Task{``0},System.Threading.CancellationToken)">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <typeparam name="TResult">The type of the result of the task.</typeparam>
            <param name="task">The task. May not be <c>null</c>.</param>
            <param name="cancellationToken">A cancellation token to observe while waiting for the task to complete.</param>
            <returns>The result of the task.</returns>
            <exception cref="T:System.OperationCanceledException">The <paramref name="cancellationToken" /> was cancelled before the <paramref name="task" /> completed, or the <paramref name="task" /> raised an <see cref="T:System.OperationCanceledException" />.</exception>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Primitives.TaskExtensions.WaitWithoutException(System.Threading.Tasks.Task)">
            <summary>
            Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved.
            </summary>
            <param name="task">The task. May not be <c>null</c>.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.Primitives.TaskExtensions.WaitWithoutException(System.Threading.Tasks.Task,System.Threading.CancellationToken)">
            <summary>
            Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved.
            </summary>
            <param name="task">The task. May not be <c>null</c>.</param>
            <param name="cancellationToken">A cancellation token to observe while waiting for the task to complete.</param>
            <exception cref="T:System.OperationCanceledException">The <paramref name="cancellationToken" /> was cancelled before the <paramref name="task" /> completed.</exception>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ITokenProvider">
            <summary>
            Provides interface definition of a token provider.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ITokenProvider.GetTokenAsync(System.String,System.TimeSpan)">
            <summary>
            Gets a <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" />.
            </summary>
            <param name="appliesTo">The URI which the access token applies to</param>
            <param name="timeout">The time span that specifies the timeout value for the message that gets the security token</param>
            <returns><see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /></returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.JsonSecurityToken">
            <summary>
            Extends SecurityToken for JWT specific properties
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.JsonSecurityToken.#ctor(System.String,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Microsoft.Azure.EventHubs.JsonSecurityToken" /> class.
            </summary>
            <param name="rawToken">Raw JSON Web Token string</param>
            <param name="audience">The audience</param>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ManagedServiceIdentityTokenProvider">
            <summary>
            Represents the Azure Active Directory token provider for Azure Managed Service Identity integration.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ManagedServiceIdentityTokenProvider.GetTokenAsync(System.String,System.TimeSpan)">
            <summary>
            Gets a <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /> for the given audience and duration.
            </summary>
            <param name="appliesTo">The URI which the access token applies to</param>
            <param name="timeout">The time span that specifies the timeout value for the message that gets the security token</param>
            <returns><see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /></returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.MessageSizeExceededException">
            <summary>
            The exception is thrown when the message size exceeds what AMQP allows on the link.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.MessagingEntityNotFoundException">
            <summary>
            The exception that is thrown when the Event Hub is not found on the namespace.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.QuotaExceededException">
            <summary>
            Provides an Event Hubs quota exceeded exception.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.QuotaExceededException.#ctor(System.String)">
            <summary></summary>
            <param name="message"></param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.QuotaExceededException.#ctor(System.String,System.Exception)">
            <summary></summary>
            <param name="message"></param>
            <param name="innerException"></param>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ReceiverDisconnectedException">
            <summary>
            This exception is thrown if two or more <see cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" /> instances connect
            to the same partition with different epoch values.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.RetryExponential">
            <summary>
            RetryPolicy implementation where the delay between retries will grow in a staggered exponential manner.
            RetryPolicy can be set on the client using <see cref="T:Microsoft.Azure.EventHubs.EventHubClient" />.
            RetryIntervals will be computed using a retryFactor which is a function of deltaBackOff (MaximumBackoff - MinimumBackoff) and MaximumRetryCount
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryExponential.#ctor(System.TimeSpan,System.TimeSpan,System.Int32)">
            <summary>
            Returns a new RetryExponential retry policy object.
            </summary>
            <param name="minimumBackoff">Minimum backoff interval.</param>
            <param name="maximumBackoff">Maximum backoff interval.</param>
            <param name="maximumRetryCount">Maximum retry count.</param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryExponential.OnGetNextRetryInterval(System.Exception,System.TimeSpan,System.Int32,System.Int32)">
            <summary></summary>
            <param name="lastException"></param>
            <param name="remainingTime"></param>
            <param name="baseWaitTimeSecs"></param>
            <param name="retryCount"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryExponential.Clone">
            <summary>Creates a new copy of this instance.</summary>
            <returns>The created new copy of this instance.</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.RetryPolicy">
            <summary>
            Represents an abstraction for retrying messaging operations. Users should not
            implement this class, and instead should use one of the provided implementations.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryPolicy.IsRetryableException(System.Exception)">
            <summary>
            Determines whether or not the exception can be retried.
            </summary>
            <param name="exception"></param>
            <returns>A bool indicating whether or not the operation can be retried.</returns>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.RetryPolicy.Default">
            <summary>
            Returns the default retry policy, <see cref="T:Microsoft.Azure.EventHubs.RetryExponential" />.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.RetryPolicy.NoRetry">
            <summary>
            Returns the default retry policy, <see cref="P:Microsoft.Azure.EventHubs.RetryPolicy.NoRetry" />.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryPolicy.OnGetNextRetryInterval(System.Exception,System.TimeSpan,System.Int32,System.Int32)">
            <summary></summary>
            <param name="lastException"></param>
            <param name="remainingTime"></param>
            <param name="baseWaitTime"></param>
            <param name="retryCount"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryPolicy.GetNextRetryInterval(System.Exception,System.TimeSpan,System.Int32)">
            <summary>
            Gets the timespan for the next retry operation.
            </summary>
            <param name="lastException">The last exception that was thrown</param>
            <param name="remainingTime">Remaining time for the cumulative timeout</param>
            <param name="retryCount">Current retry count</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.RetryPolicy.Clone">
            <summary>Creates a new copy of the current <see cref="T:Microsoft.Azure.EventHubs.RetryPolicy" /> and clones it into a new instance.</summary>
            <returns>A new copy of <see cref="T:Microsoft.Azure.EventHubs.RetryPolicy" />.</returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.SecurityToken">
            <summary>
            Provides information about a security token such as audience, expiry time, and the string token value.
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.SecurityToken.token">
            <summary>
            Token literal
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.SecurityToken.expiresAtUtc">
            <summary>
            Expiry date-time
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.SecurityToken.audience">
            <summary>
            Token audience
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.SecurityToken.tokenType">
            <summary>
            Token type
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.SecurityToken.#ctor(System.String,System.DateTime,System.String,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /> class.
            </summary>
            <param name="tokenString">The token</param>
            <param name="expiresAtUtc">The expiration time</param>
            <param name="audience">The audience</param>
            <param name="tokenType">The type of the token</param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.SecurityToken.Audience">
            <summary>
            Gets the audience of this token.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.SecurityToken.ExpiresAtUtc">
            <summary>
            Gets the expiration time of this token.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.SecurityToken.TokenValue">
            <summary>
            Gets the actual token.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.SecurityToken.TokenType">
            <summary>
            Gets the token type.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ServerBusyException">
            <summary>
            The exception that is thrown when a server is busy. Callers should wait a while and retry the operation.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.SharedAccessSignatureToken">
            <summary>
            A SecurityToken that wraps a Shared Access Signature
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.SharedAccessSignatureToken.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Microsoft.Azure.EventHubs.SharedAccessSignatureToken" /> class.
            </summary>
            <param name="tokenString">The token</param>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.SharedAccessSignatureTokenProvider">
            <summary>
            The SharedAccessSignatureTokenProvider generates tokens using a shared access key or existing signature.
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.SharedAccessSignatureTokenProvider.EpochTime">
            <summary>
            Represents 00:00:00 UTC Thursday 1, January 1970.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.SharedAccessSignatureTokenProvider.#ctor(System.String,System.String,System.Func{System.String,System.Byte[]},System.TimeSpan,Microsoft.Azure.EventHubs.TokenScope)">
            <summary></summary>
            <param name="keyName"></param>
            <param name="sharedAccessKey"></param>
            <param name="customKeyEncoder"></param>
            <param name="tokenTimeToLive"></param>
            <param name="tokenScope"></param>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.SharedAccessSignatureTokenProvider.GetTokenAsync(System.String,System.TimeSpan)">
            <summary>
            Gets a <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /> for the given audience and duration.
            </summary>
            <param name="appliesTo">The URI which the access token applies to</param>
            <param name="timeout">The time span that specifies the timeout value for the message that gets the security token</param>
            <returns><see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.SharedAccessSignatureTokenProvider.BuildSignature(System.String)">
            <summary></summary>
            <param name="targetUri"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.StringUtility.FormatForUser(System.String,System.Object[])">
            <summary>
            Formats a string+parameters using CurrentCulture.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.StringUtility.FormatInvariant(System.String,System.Object)">
            <summary>
            Formats a string+parameter using InvariantCulture. This overload avoids allocating an array when there's only one replacement parameter
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.StringUtility.FormatInvariant(System.String,System.Object[])">
            <summary>
            Formats a string+parameters using InvariantCulture.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.TokenProvider">
            <summary>
            This abstract base class can be extended to implement additional token providers.
            </summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateSharedAccessSignatureTokenProvider(System.String)">
            <summary>
            Construct a TokenProvider based on a sharedAccessSignature.
            </summary>
            <param name="sharedAccessSignature">The shared access signature</param>
            <returns>A TokenProvider initialized with the shared access signature</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateSharedAccessSignatureTokenProvider(System.String,System.String)">
            <summary>
            Construct a TokenProvider based on the provided Key Name and Shared Access Key.
            </summary>
            <param name="keyName">The key name of the corresponding SharedAccessKeyAuthorizationRule.</param>
            <param name="sharedAccessKey">The key associated with the SharedAccessKeyAuthorizationRule</param>
            <returns>A TokenProvider initialized with the provided RuleId and Password</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateSharedAccessSignatureTokenProvider(System.String,System.String,System.TimeSpan)">
            <summary>
            Construct a TokenProvider based on the provided Key Name and Shared Access Key.
            </summary>
            <param name="keyName">The key name of the corresponding SharedAccessKeyAuthorizationRule.</param>
            <param name="sharedAccessKey">The key associated with the SharedAccessKeyAuthorizationRule</param>
            <param name="tokenTimeToLive">The token time to live</param>
            <returns>A TokenProvider initialized with the provided RuleId and Password</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateSharedAccessSignatureTokenProvider(System.String,System.String,Microsoft.Azure.EventHubs.TokenScope)">
            <summary>
            Construct a TokenProvider based on the provided Key Name and Shared Access Key.
            </summary>
            <param name="keyName">The key name of the corresponding SharedAccessKeyAuthorizationRule.</param>
            <param name="sharedAccessKey">The key associated with the SharedAccessKeyAuthorizationRule</param>
            <param name="tokenScope">The tokenScope of tokens to request.</param>
            <returns>A TokenProvider initialized with the provided RuleId and Password</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateSharedAccessSignatureTokenProvider(System.String,System.String,System.TimeSpan,Microsoft.Azure.EventHubs.TokenScope)">
            <summary>
            Construct a TokenProvider based on the provided Key Name and Shared Access Key.
            </summary>
            <param name="keyName">The key name of the corresponding SharedAccessKeyAuthorizationRule.</param>
            <param name="sharedAccessKey">The key associated with the SharedAccessKeyAuthorizationRule</param>
            <param name="tokenTimeToLive">The token time to live</param>
            <param name="tokenScope">The tokenScope of tokens to request.</param>
            <returns>A TokenProvider initialized with the provided RuleId and Password</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateAadTokenProvider(Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext,Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential)">
            <summary>Creates an Azure Active Directory token provider.</summary>
            <param name="authContext">AuthenticationContext for AAD.</param>
            <param name="clientCredential">The app credential.</param>
            <returns>The <see cref="T:Microsoft.Azure.EventHubs.TokenProvider" /> for returning Json web token.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateAadTokenProvider(Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext,System.String,System.Uri,Microsoft.IdentityModel.Clients.ActiveDirectory.IPlatformParameters,Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier)">
            <summary>Creates an Azure Active Directory token provider.</summary>
            <param name="authContext">AuthenticationContext for AAD.</param>
            <param name="clientId">ClientId for AAD.</param>
            <param name="redirectUri">The redirectUri on Client App.</param>
            <param name="platformParameters">Platform parameters</param>
            <param name="userIdentifier">User Identifier</param>
            <returns>The <see cref="T:Microsoft.Azure.EventHubs.TokenProvider" /> for returning Json web token.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateAadTokenProvider(Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext,Microsoft.IdentityModel.Clients.ActiveDirectory.ClientAssertionCertificate)">
            <summary>Creates an Azure Active Directory token provider.</summary>
            <param name="authContext">AuthenticationContext for AAD.</param>
            <param name="clientAssertionCertificate">The client assertion certificate credential.</param>
            <returns>The <see cref="T:Microsoft.Azure.EventHubs.TokenProvider" /> for returning Json web token.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.CreateManagedServiceIdentityTokenProvider">
            <summary>Creates Azure Managed Service Identity token provider.</summary>
            <returns>The <see cref="T:Microsoft.Azure.EventHubs.TokenProvider" /> for returning Json web token.</returns>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.TokenProvider.GetTokenAsync(System.String,System.TimeSpan)">
            <summary>
            Gets a <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" /> for the given audience and duration.
            </summary>
            <param name="appliesTo">The URI which the access token applies to</param>
            <param name="timeout">The time span that specifies the timeout value for the message that gets the security token</param>
            <returns></returns>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.TokenScope">
            <summary>
            A enum representing the scope of the <see cref="T:Microsoft.Azure.EventHubs.SecurityToken" />.
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.TokenScope.Namespace">
            <summary>
            The namespace.
            </summary>
        </member>
        <member name="F:Microsoft.Azure.EventHubs.TokenScope.Entity">
            <summary>
            The entity.
            </summary>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ReceiverOptions">
            <summary>
            Represents options can be set during the creation of a event hub receiver.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverOptions.Identifier">
            <summary>Gets or sets the identifier of a receiver.</summary>
            <value>A string representing the identifier of a receiver. It will return null if the identifier is not set.</value>
            <exception cref="T:System.ArgumentException">Thrown if the length of the value is greater than the maximum length of 64.</exception>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverOptions.EnableReceiverRuntimeMetric">
            <summary> Gets or sets a value indicating whether the runtime metric of a receiver is enabled. </summary>
            <value> true if a client wants to access <see cref="T:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation" /> using <see cref="T:Microsoft.Azure.EventHubs.PartitionReceiver" />. </value>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation">
            <summary>Represents the approximate receiver runtime information for a logical partition of an Event Hub.</summary>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.#ctor(System.String)">
            <summary>
            Construct a new instance for the given partition.
            </summary>
            <param name="partitionId"></param>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.PartitionId">
            <summary>Gets the partition ID for a logical partition of an Event Hub.</summary>
            <value>The partition identifier.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.LastSequenceNumber">
            <summary>Gets the last sequence number of the event within the partition stream of the Event Hub.</summary>
            <value>The logical sequence number of the event.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.LastEnqueuedTimeUtc">
            <summary>Gets the enqueued UTC time of the last event.</summary>
            <value>The enqueued time of the last event.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.LastEnqueuedOffset">
            <summary>Gets the offset of the last enqueued event.</summary>
            <value>The offset of the last enqueued event.</value>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.RetrievalTime">
            <summary>Gets the time of when the runtime info was retrieved.</summary>
            <value>The enqueued time of the last event.</value>
        </member>
        <member name="M:Microsoft.Azure.EventHubs.ReceiverRuntimeInformation.Update(Microsoft.Azure.EventHubs.EventData)">
            <summary>
            Update the properties of this instance with the values from the given event.
            </summary>
            <param name="updateFrom"></param>
        </member>
        <member name="T:Microsoft.Azure.EventHubs.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.AmqpMessageSizeExceeded">
            <summary>
              Looks up a localized string similar to The received message (delivery-id:{0}, size:{1} bytes) exceeds the limit ({2} bytes) currently allowed on the link..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.ArgumentInvalidCombination">
            <summary>
              Looks up a localized string similar to Please make sure either all or none of the following arguments are defined: '{0},{1}'..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.ArgumentNullOrWhiteSpace">
            <summary>
              Looks up a localized string similar to The argument {0} is null or white space..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.ArgumentStringTooBig">
            <summary>
              Looks up a localized string similar to The argument '{0}' cannot exceed {1} characters..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.CannotSendAnEmptyEvent">
            <summary>
              Looks up a localized string similar to Sending empty {0} is not a valid operation..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.EventDataListIsNullOrEmpty">
            <summary>
              Looks up a localized string similar to There are no event data supplied. Please make sure input events are not empty..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.FailedToSerializeUnsupportedType">
            <summary>
              Looks up a localized string similar to Serialization operation failed due to unsupported type {0}..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.InvalidEncoding">
            <summary>
              Looks up a localized string similar to The string has an invalid encoding format..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.MissingSystemProperty">
            <summary>
              Looks up a localized string similar to System property '{0}' is missing in the event..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.PartitionSenderInvalidWithPartitionKeyOnBatch">
            <summary>
              Looks up a localized string similar to EventData batch with partitionKey cannot be sent on PartitionSender..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.PluginAlreadyRegistered">
            <summary>
              Looks up a localized string similar to The {0} plugin has already been registered..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.PluginRegistrationFailed">
            <summary>
              Looks up a localized string similar to There was an error trying to register the {0} plugin..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.ReceiverIdentifierOverMaxValue">
            <summary>
              Looks up a localized string similar to The 'identifier' parameter exceeds the maximum allowed size of {0} characters..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.SasTokenShouldBeAlone">
            <summary>
              Looks up a localized string similar to {0} cannot be specified along with {1}. {0} alone should be sufficient to Authenticate the request..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.TimeoutMustBeNonNegative">
            <summary>
              Looks up a localized string similar to Argument {0} must be a non-negative timeout value. The provided value was {1}..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.TimeoutMustBePositive">
            <summary>
              Looks up a localized string similar to Argument {0} must be a positive timeout value. The provided value was {1}..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.TokenMissingAudience">
            <summary>
              Looks up a localized string similar to The provided token does not specify the 'Audience' value..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.TokenMissingExpiresOn">
            <summary>
              Looks up a localized string similar to The provided token does not specify the 'ExpiresOn' value..
            </summary>
        </member>
        <member name="P:Microsoft.Azure.EventHubs.Resources.ValueOutOfRange">
            <summary>
              Looks up a localized string similar to The value supplied must be between {0} and {1}..
            </summary>
        </member>
    </members>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>EhjCmHVnboxBUKgmT+fkmYpNEUM=</DigestValue></Reference></SignedInfo><SignatureValue>TjoeRCyE8gN/2cQ8hITUoO6hsbGFyrrKteCf9EHVMBKE8ydrEqGzBBqFKiRMJ0cHlKSICjEzTpgLGKkaMNn5M6x1e9us8UlsZa9TmpeU+Ys6HfrvgZBm9dBRcgff0AdkeuCObRU8l4BUQUfp7Lec00fuTnV9Uhl6ELPv5bQyWiX1IVVlmv/607pDqz5zNQc8FLIDcKvd7oDOq5pAHnovwqIiWXj/mtvFf3vAeVawQzvJVN1nnZD3cxJXCjeo3NhxFikGfFZBENQuDnIxaRmVhHDoiCZLTDPM0WBG8iejU0rhoPfBu0EHAvmstzJKGZ4hoUaChp78Uboxp+g3tsLQJQ==</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>m1K+Tyy0HVPLPV0jHraDo5/A5UrgV7PC+C3WipFfzBLODN0Ct0Z49Gub3ufLICGP1D4OJZRyOnhjZi61X+Hbl/2IjqiIl1VMHR4+qWlJLRNj+X7DparTv3/CBzkhMGY2lZdvp96rpRL2heloKGkmmxqet6/sU3hvw8wxMIf29zYrMEBZSEaAUajNDIDd40qeLXRV7OanRHrVE770wiR9DP0zzeYjX5rN1CltAtUyWmonz7DJAYuUr+UMi3offSITg4byWkvThGNXGmtJeDpU6Y/hhcblP5Yl5175yMvHofLyGw0iW7kv/Izp2yjEVRe26PTXes/9nNOP7ul2KoKMoQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIE2zCCA8OgAwIBAgITMwAAAbHd7bpU6WW4XwABAAABsTANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xODA3MTIyMDExMTlaFw0xOTA3MjYyMDExMTlaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xHjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtSvk8stB1Tyz1dIx62g6OfwOVK4Fezwvgt1oqRX8wSzgzdArdGePRrm97nyyAhj9Q+DiWUcjp4Y2YutV/h25f9iI6oiJdVTB0ePqlpSS0TY/l+w6Wq079/wgc5ITBmNpWXb6feq6US9oXpaChpJpsanrev7FN4b8PMMTCH9vc2KzBAWUhGgFGozQyA3eNKni10Vezmp0R61RO+9MIkfQz9M83mI1+azdQpbQLVMlpqJ8+wyQGLlK/lDIt6H30iE4OG8lpL04RjVxprSXg6VOmP4YXG5T+WJede+cjLx6Hy8hsNIlu5L/yM6dsoxFUXtuj013rP/ZzTj+7pdiqCjKECAwEAAaOCAV8wggFbMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBREE7QCnXc+kFVx9eQcf6wXFM8+czBQBgNVHREESTBHpEUwQzEpMCcGA1UECxMgTWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJpY28xFjAUBgNVBAUTDTIyOTgwMys0Mzc5NTAwHwYDVR0jBBgwFoAUyxHoytK0FlgByTcuMxYWuUyaCh8wVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljQ29kU2lnUENBXzA4LTMxLTIwMTAuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNDb2RTaWdQQ0FfMDgtMzEtMjAxMC5jcnQwDQYJKoZIhvcNAQEFBQADggEBAIOp8qYzxaF7HNJegK7spKbD6ShdVyUjjd0lCWlw6E1pFi+UuwXZm4DsWdBoZBuDNKjcz2ONnWt2APV7r0J0B8X8kcDirEUzll2x/fqORrJJ4kMGGZiFcXjTnunblRZBMTRwLEOWogJ3qS89YUpjWfGXfdFSlWCFqLwbRQc/2cGP91D1uX4IieRCxFiOQcCVOEkf1x34ME8pLztHWZI37pch7RdmkBwvLW1r/wt15aoS3fqvxBG04CEyWr8FzkX5P41Wrs5R1syufQQZMBLyv59IJpwOAA0oraXeRC3M1If/lEmVVwxNNJwjCt3DjTIJ9L01KMXe0Ig/qRIToTBwoBE=</X509Certificate><X509Certificate>MIIFvDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMxMjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBCmXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTwaKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vyc1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ+NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dPY+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlfA9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrStBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnkpDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJNRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDordEN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7ts3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jshrg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6IybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0=</X509Certificate><X509Certificate>MIIFmTCCA4GgAwIBAgIQea0WoUqgpa1Mc1j0BxMuZTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDEwNTA5MjMxOTIyWhcNMjEwNTA5MjMyODEzWjBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDzXfqAZ9Rap6kMLJAg0DUIPHWEzbcHiZyJ2t7Ow2D6kWhanpRxKRh2fMLgyCV2lA5Y+gQ0Nubfr/eAuulYCyuT5Z0F43cikfc0ZDwikR1e4QmQvBT+/HVYGeF5tweSo66IWQjYnwfKA1j8aCltMtfSqMtL/OELSDJP5uu4rU/kXG8TlJnbldV126gat5SRtHdb9UgMj2p5fRRwBH1tr5D12nDYR7e/my9s5wW34RFgrHmRFHzF1qbk4X7Vw37lktI8ALU2gt554W3ztW74nzPJy1J9c5g224uha6KVl5uj3sJNJv8GlmclBsjnrOTuEjOVMZnINQhONMp5U9W1vmMyWUA2wKVOBE0921sHM+RYv+8/U2TYQlk1V/0PRXwkBE2e1jh0EZcikM5oRHSSb9VLb7CG48c2QqDQ/MHAWvmjYbkwR3GWChawkcBCle8Qfyhq4yofseTNAz93cQTHIPxJDx1FiKTXy36IrY4t7EXbxFEEySr87IaemhGXW97OU4jm4rf9rJXCKEDb7wSQ34EzOdmyRaUjhwalVYkxuwYtYA5BGH0fLrWXyxHrFdUkpZTvFRSJ/Utz+jJb/NEzAPlZYnAHMuouq0Ate8rdIWcbMJmPFqojqEHRsG4RmzbE3kB0nOFYZcFgHnpbOMiPuwQmfNQWQOW2a2yqhv0Av87BNQIDAQABo1EwTzALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggIBAMURTQM6YN1dUhF3j7K7NsiyBb+0t6jYIJ1cEwO2HCL6BhM1tshj1JpHbyZX0lXxBLEmX9apUGigvNK4bszD6azfGc14rFl0rGY0NsQbPmw4TDMOMBINoyb+UVMA/69aToQNDx/kbQUuToVLjWwzb1TSZKu/UK99ejmgN+1jAw/8EwbOFjbUVDuVG1FiOuVNF9QFOZKaJ6hbqr3su77jIIlgcWxWs6UT0G0OI36VA+1oPfLYY7hrTbboMLXhypRL96KqXZkwsj2nwlFsKCABJCcrSwC3nRFrcL6yEIK8DJto0I07JIeqmShynTNfWZC99d6TnjpiWjQ54ohVHbkGsMGJay3XacMZEjaE0Mmg2v8vaXiy5Xra69cMwPe9Yxe4ORM4ojZbe/KFVmodZGLBOOKqv1FmopT1EpxmIhBr8rcwki3yKfA9OxRDaKLxnCk3y844ICVtfGfzfiQSJAMIgUfspZ6X9RjXz7vV73aW7/3O21adlaBC+ZdY4dcxItNfWeY+biIA6kOEtiXb2fMIVmjAZGsdfOy2k6JiV24u2OdYj8QxSSbd3ik1h/UwcXBbFDxpvYkSfesuo/7Yf56CWlIKK8FDK9kwiJ/IEPuJjeahhXUzfmye23MTZGJppS99ypZtn/gETTCSPW4hFCHJPeDD/YprnUr90aGdmUN3P7Da</X509Certificate></X509Data></KeyInfo><Object Id="ts-countersig"><X509Data><X509Certificate>MIIE2jCCA8KgAwIBAgITMwAAAQii+Uk6wLzpWAAAAAABCDANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTgwODIzMjAyMDI3WhcNMTkxMTIzMjAyMDI3WjCByjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046QTg0MS00QkI0LUNBOTMxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIHNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7nYVW8D1vF9H+Np9rsDfXj5qO3efQTdBKUy8kK5zu2QbTqQrAtPz32S1pGznILaw9Vroc0RL+bHD+A+3G1+hk35brsgTa1HR/NeHWJc8FXBLzVkeNz0oZvHJ9WKMLsQlRa298hhG342GRgw222kwOXKFo0GimWuTkiJp24p98iEvgIYQavN3qSM6giFZONzqwyEJARo9Eu9KHppS2sC7AR8asAZfkBqpdwbw1DnrPcr01IimEEVHBqdZPsLhbg0rkIDCy0XajW0HsaisIJgpS3LePUlVnmiio0mEH0s4ASJ/5B/sca7/hSOcTclznzJXwSgMgM7/xxKWzZImdQDiZAgMBAAGjggEJMIIBBTAdBgNVHQ4EFgQUryk+Y1deSQhnMh4mC/394aUdl2QwHwYDVR0jBBgwFoAUIzT42VJGcArtQPt2+7MrsMM1sw8wVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljcm9zb2Z0VGltZVN0YW1wUENBLmNybDBYBggrBgEFBQcBAQRMMEowSAYIKwYBBQUHMAKGPGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0VGltZVN0YW1wUENBLmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUFAAOCAQEAMNTUvMQ68dXnRkqOLqksPUC9I2MhjMGl4bF2s8xtG/aCP1iW9RdXOe/dWHhbzMTKlBUhxRJsxPv4EbgpfH+4Oy3VFiHi3V5HvZlbSAqvd+mmYjpCh4nfwFV4YMfTk09eiHkkriORgYYwacpj7rqcV6fuSLchQ+qjvPkQXm090rmnmC3zQaKtRP3p4hd52xCXMUuoYRqeyeS34+3+WHWLYKxHo81yTFi/SZc3+sUNOmrWbVzHK3osyTsNS0XF3BHNni19Wt0KlkdnCMFeQs99GPcYH3nXKjNaTPQ/c8eVJbJE0brjYTGu78wKUBkpGs40Kbx+VuJ2Eb8VTPaUaCc3Cg==</X509Certificate><X509Certificate>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</X509Certificate></X509Data><CounterSignature ts-format="cms-timestamp-message" xmlns="http://schemas.microsoft.com/xmldsig/timestamp/2003">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</CounterSignature></Object></Signature></doc>