// #nullable disable using System; using System.ClientModel; using System.ClientModel.Primitives; using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; using OpenAI; namespace OpenAI.Batch { [Experimental("OPENAI001")] public partial class BatchClient { private readonly Uri _endpoint; protected BatchClient() { } public ClientPipeline Pipeline { get; } public virtual CollectionResult GetBatches(string after, int? limit, RequestOptions options) { return new BatchClientGetBatchesCollectionResult(this, after, limit, options); } public virtual AsyncCollectionResult GetBatchesAsync(string after, int? limit, RequestOptions options) { return new BatchClientGetBatchesAsyncCollectionResult(this, after, limit, options); } public virtual CollectionResult GetBatches(BatchCollectionOptions options = default, CancellationToken cancellationToken = default) { return new BatchClientGetBatchesCollectionResultOfT(this, options?.AfterId, options?.PageSizeLimit, cancellationToken.ToRequestOptions()); } public virtual AsyncCollectionResult GetBatchesAsync(BatchCollectionOptions options = default, CancellationToken cancellationToken = default) { return new BatchClientGetBatchesAsyncCollectionResultOfT(this, options?.AfterId, options?.PageSizeLimit, cancellationToken.ToRequestOptions()); } public virtual ClientResult GetBatch(string batchId, RequestOptions options) { Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); using PipelineMessage message = CreateGetBatchRequest(batchId, options); return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options)); } public virtual async Task GetBatchAsync(string batchId, RequestOptions options) { Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); using PipelineMessage message = CreateGetBatchRequest(batchId, options); return ClientResult.FromResponse(await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } } }