using DataConnection.REST.Models;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace DataConnection.REST.Interfaces
{
///
/// Interface for discovering metadata (entities, properties) from a REST service.
///
public interface IRestMetadataDiscovery
{
///
/// Discovers a list of available entities from the REST service without detailed field information.
///
/// Cancellation token.
/// A list of discovered entity summaries.
Task> DiscoverEntitySummariesAsync(CancellationToken cancellationToken = default);
///
/// Discovers detailed information for a specific entity including all its properties.
///
/// The name of the entity to get details for.
/// Cancellation token.
/// Detailed entity information or null if not found.
Task DiscoverEntityDetailsAsync(string entityName, CancellationToken cancellationToken = default);
///
/// Discovers entities and their properties from the REST service metadata.
///
/// Cancellation token.
/// A list of discovered entity information.
Task> DiscoverEntitiesAsync(CancellationToken cancellationToken = default);
}
}