<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Altium.Sdk.Ids</name>
    </assembly>
    <members>
        <member name="M:Altium.Sdk.Ids.Extensions.ServiceCollectionExtensions.AddIdsEvents(Microsoft.Extensions.DependencyInjection.IServiceCollection,Altium.Sdk.Ids.Contracts.Models.Configs.IEventChannelUsageConfig,Altium.Sdk.Ids.Services.Repositories.ICollectionCleaner{Altium.Sdk.Ids.Models.ValueObjects.SessionDataKey})">
            <summary>
            Adds the services needed to use the IDS event channel feature.
            </summary>
            <param name="collection">The collection to add services to.</param>
            <param name="eventChannelConfig">The feature toggling configuration.</param>
            <param name="sessionDataCollection">
            The abstraction providing session data management capabilities for the channel events.
            </param>
        </member>
        <member name="T:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder">
            <summary>
            Encapsulates all SignalR connection-related logic, state and data. Accumulates connection state as it builds it.
            Initializes connection lifetime managing entities, but is not tied to its lifetime itself.
            </summary>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder.CreateConnection(System.String,System.String)">
            <summary>
            Initializes a new connection to the specified endpoint using the provided means of authentication.
            </summary>
            <param name="endpointUrl">The full endpoint to connect to.</param>
            <param name="authToken">The valid authentication token.</param>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder.AddProcessor``1(System.String,System.String,System.Action{``0})">
            <summary>
            Processes events that come from the specified <paramref name="channel"/>'s <paramref name="method"/>,
            using <typeparamref name="TEventContract"/> to deserialize the event data.
            </summary>
            <typeparam name="TEventContract"></typeparam>
            <param name="channel"></param>
            <param name="method"></param>
            <param name="processor"></param>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder.AddSlowConnectionNotification(System.Action{System.String})">
            <summary>
            Adds an action to be performed when the client detects a slow or frequently dropping connection.
            Provides the connection Id.
            </summary>
            <param name="action">The action that receives the connection Id.</param>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder.AddErrorNotification(System.Action{System.String,System.Exception})">
            <summary>
            Adds an action to be performed when the client observes an exception.
            Provides the connection Id and the error exception.
            </summary>
            <param name="action">The action that receives the connection Id, and the error exception.</param>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder.AddStateChangeNotification(System.Action{System.String,System.String,System.String})">
            <summary>
            Adds an action to be performed when the connection state changes.
            Provides the connection Id, the old state and the new state.
            For information about connection state values see <see cref="T:Microsoft.AspNet.SignalR.Client.ConnectionState"/>.
            </summary>
            <param name="action">The action that receives the connection Id, old state and new state.</param>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder.StartAndRetrieveAsync">
            <summary>
            Completes the initialization of the connection and returns its lifetime tracking object.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Infrastructure.Builders.SignalRConnectionBuilder">
            <remarks>Stateful and not thread-safe.</remarks>
        </member>
        <member name="T:Altium.Sdk.Ids.Infrastructure.Scope.MultiDisposableScope">
            <summary>
            Allows to bind together the lifetime of multiple related instances,
            as well as perform extra actions before their disposal.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Infrastructure.StaticWrappers.IdsEventsWrapper">
            <summary>
            Initializes the IDS event channel feature. Meant for use in static initialization contexts,
            where DI is not available.
            </summary>
        </member>
        <member name="M:Altium.Sdk.Ids.Infrastructure.StaticWrappers.IdsEventsWrapper.TryUseIdsEvents(System.Uri,System.Func{System.String},Altium.Sdk.Ids.Services.Repositories.ICollectionCleaner{Altium.Sdk.Ids.Models.ValueObjects.SessionDataKey},Altium.Sdk.Ids.Contracts.Models.Configs.IEventChannelUsageConfig,System.Func{System.String})">
            <summary>
            Initializes the IDS event channel feature.
            </summary>
            <param name="identityServiceUri">IDS URI, global or regional.</param>
            <param name="sessionFactory">The delegate that should produce valid AFS session(s)
            (regional or global, depending on the endpoint). Can be any user's session.
            If <paramref name="authTokenFactory"/> is not set, this parameter is required.</param>
            <param name="usageConfig">
            Allows to dynamically toggle the feature after initialization. If null, the feature is always on.
            </param>
            <param name="sessionCollectionCleaner">
            The abstraction that provides session data management capabilities for the channel events.
            </param>
            <param name="authTokenFactory">The delegate that should produce valid authentication tokens.
            If <paramref name="sessionFactory"/> is not set or returns null, this parameter will be used.</param>
        </member>
        <member name="T:Altium.Sdk.Ids.Models.ValueObjects.SessionDataKey">
            <summary>
            Contains the data that identifies a session (UserId).
            Exists mostly to provide strong separation of collections that store session data.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.Clients.ISecurityTokensClient">
            <summary>
            The client for SecurityTokens controller of EventChannels IDS API.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.EventChannels.IEventChannelConnectionService">
            <summary>
            Establishes the connection to IDS event channel and attaches all the processing and telemetry to its events.
            </summary>
        </member>
        <member name="M:Altium.Sdk.Ids.Services.EventChannels.IEventChannelConnectionService.TryConnectAsync(System.String,System.String)">
            <summary>
            Connects to the event channel using the provided session Id to retrieve the channel's security token
            via an extra API call.
            </summary>
            <param name="baseServiceUrl">IDS URI.</param>
            <param name="sessionId">
            The valid AFS Session Id (regional or global) to use for connection authentication.
            Can be any authenticated user.
            </param>
            <returns>
            True if the connection was successfully established.
            False if the connection is already established or there were errors during initialization.
            </returns>
        </member>
        <member name="M:Altium.Sdk.Ids.Services.EventChannels.IEventChannelConnectionService.TryConnectByKeyAsync(System.String,System.String)">
            <summary>
            Connects to the event channel using the provided auth token.
            </summary>
            <param name="baseServiceUrl">IDS URI.</param>
            <param name="authToken">The valid authentication token.</param>
            <returns>
            True if the connection was successfully established.
            False if the connection is already established or there were errors during initialization.
            </returns>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.Processing.IEventProcessingService">
            <summary>
            Processes the events by type and tracks last received event version.
            </summary>
        </member>
        <member name="M:Altium.Sdk.Ids.Services.Processing.IEventProcessingService.ResetState">
            <summary>
            Resets the last received version.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.Repositories.DisposableObjectRepository`2">
            <summary>
            Manages the lifetime of the objects it contains.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.Repositories.ICollectionCleaner`1">
            <summary>
            A role-interface for a generic abstract key-value collection that provides only the deletion capability.
            </summary>
            <typeparam name="TKey">Any type that is supported by the specific implementations of this interface.</typeparam>
        </member>
        <member name="M:Altium.Sdk.Ids.Services.Repositories.ICollectionCleaner`1.TryRemove(`0)">
            <summary>
            Removes an element by its key.
            </summary>
            <param name="key">The key that uniquely identifies the element that should be removed.</param>
            <returns>True if the element was successfully deleted. Otherwise, false.</returns>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.Repositories.IKeyValueRepository`2">
            <summary>
            Performs only the basic storage operations based on item key only.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.Repositories.KeyValueRepository`2">
            <summary>
            A basic key-value store that does not assume any properties for the objects it holds and does not manage their state.
            </summary>
        </member>
        <member name="T:Altium.Sdk.Ids.Services.SignalR.ISignalRConnectionBuilderFactory">
            <summary>
            Produces new instances of the stateful <see cref="T:Altium.Sdk.Ids.Infrastructure.Builders.ISignalRConnectionBuilder"/>.
            </summary>
        </member>
    </members>
</doc>
