//
#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));
}
}
}