diff --git a/CHANGELOG.md b/CHANGELOG.md index 34c4a5097..5b668cb2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 2.2.0-beta.3 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 2.2.0-beta.2 (2025-02-18) ### Bugs fixed diff --git a/api/OpenAI.net8.0.cs b/api/OpenAI.net8.0.cs index db067ca29..8f4fd74f2 100644 --- a/api/OpenAI.net8.0.cs +++ b/api/OpenAI.net8.0.cs @@ -19,6 +19,8 @@ public class OpenAIClient { public virtual ModerationClient GetModerationClient(string model); public virtual OpenAIFileClient GetOpenAIFileClient(); public virtual OpenAIModelClient GetOpenAIModelClient(); + public virtual Responses.OpenAIResponseClient GetOpenAIResponseClient(); + public virtual Responses.OpenAIResponseClient GetOpenAIResponseClient(string model); [Experimental("OPENAI002")] public virtual RealtimeConversation.RealtimeConversationClient GetRealtimeConversationClient(string model); [Experimental("OPENAI001")] @@ -267,7 +269,7 @@ public class AssistantModificationOptions : IJsonModel, IEquatable, IJsonModel, IPersistableModel { + public class AssistantResponseFormat : IEquatable, IEquatable, IJsonModel, IPersistableModel { public static AssistantResponseFormat Auto { get; } public static AssistantResponseFormat JsonObject { get; } public static AssistantResponseFormat Text { get; } @@ -765,7 +767,7 @@ public class RunStepTokenUsage : IJsonModel, IPersistableMode public static implicit operator BinaryContent(RunStepTokenUsage runStepTokenUsage); } [Experimental("OPENAI001")] - public abstract class RunStepToolCall : IJsonModel, IPersistableModel { + public class RunStepToolCall : IJsonModel, IPersistableModel { public string CodeInterpreterInput { get; } public IReadOnlyList CodeInterpreterOutputs { get; } public FileSearchRankingOptions FileSearchRankingOptions { get; } @@ -788,7 +790,7 @@ public enum RunStepToolCallKind { public class RunStepUpdate : StreamingUpdate { } [Experimental("OPENAI001")] - public abstract class RunStepUpdateCodeInterpreterOutput : IJsonModel, IPersistableModel { + public class RunStepUpdateCodeInterpreterOutput : IJsonModel, IPersistableModel { public string ImageFileId { get; } public string Logs { get; } public int OutputIndex { get; } @@ -1251,6 +1253,7 @@ public class ChatClient { public virtual AsyncCollectionResult CompleteChatStreamingAsync(IEnumerable messages, ChatCompletionOptions options = null, CancellationToken cancellationToken = default); } public class ChatCompletion : IJsonModel, IPersistableModel { + public IReadOnlyList Annotations { get; } public ChatMessageContent Content { get; } public IReadOnlyList ContentTokenLogProbabilities { get; } public DateTimeOffset CreatedAt { get; } @@ -1296,6 +1299,7 @@ public class ChatCompletionOptions : IJsonModel, IPersist public IList Tools { get; } public int? TopLogProbabilityCount { get; set; } public float? TopP { get; set; } + public ChatWebSearchOptions WebSearchOptions { get; set; } public static explicit operator ChatCompletionOptions(ClientResult result); public static implicit operator BinaryContent(ChatCompletionOptions chatCompletionOptions); } @@ -1393,6 +1397,14 @@ public class ChatMessage : IJsonModel, IPersistableModel, IPersistableModel { + public int EndIndex { get; } + public int StartIndex { get; } + public string WebResourceTitle { get; } + public Uri WebResourceUri { get; } + public static explicit operator ChatMessageAnnotation(ClientResult result); + public static implicit operator BinaryContent(ChatMessageAnnotation chatMessageAnnotation); + } public class ChatMessageContent : ObjectModel.Collection { public ChatMessageContent(); public ChatMessageContent(params ChatMessageContentPart[] contentParts); @@ -1582,6 +1594,10 @@ public class ChatToolChoice : IJsonModel, IPersistableModel, IPersistableModel { + public static explicit operator ChatWebSearchOptions(ClientResult result); + public static implicit operator BinaryContent(ChatWebSearchOptions chatWebSearchOptions); + } public class DeveloperChatMessage : ChatMessage, IJsonModel, IPersistableModel { public DeveloperChatMessage(params ChatMessageContentPart[] contentParts); public DeveloperChatMessage(IEnumerable contentParts); @@ -1598,10 +1614,11 @@ public class FunctionChatMessage : ChatMessage, IJsonModel, public static implicit operator BinaryContent(FunctionChatMessage functionChatMessage); } public static class OpenAIChatModelFactory { - public static ChatCompletion ChatCompletion(string id = null, ChatFinishReason finishReason = ChatFinishReason.Stop, ChatMessageContent content = null, string refusal = null, IEnumerable toolCalls = null, ChatMessageRole role = ChatMessageRole.System, ChatFunctionCall functionCall = null, IEnumerable contentTokenLogProbabilities = null, IEnumerable refusalTokenLogProbabilities = null, DateTimeOffset createdAt = default, string model = null, string systemFingerprint = null, ChatTokenUsage usage = null, ChatOutputAudio outputAudio = null); + public static ChatCompletion ChatCompletion(string id = null, ChatFinishReason finishReason = ChatFinishReason.Stop, ChatMessageContent content = null, string refusal = null, IEnumerable toolCalls = null, ChatMessageRole role = ChatMessageRole.System, ChatFunctionCall functionCall = null, IEnumerable contentTokenLogProbabilities = null, IEnumerable refusalTokenLogProbabilities = null, DateTimeOffset createdAt = default, string model = null, string systemFingerprint = null, ChatTokenUsage usage = null, ChatOutputAudio outputAudio = null, IEnumerable messageAnnotations = null); [EditorBrowsable(EditorBrowsableState.Never)] public static ChatCompletion ChatCompletion(string id, ChatFinishReason finishReason, ChatMessageContent content, string refusal, IEnumerable toolCalls, ChatMessageRole role, ChatFunctionCall functionCall, IEnumerable contentTokenLogProbabilities, IEnumerable refusalTokenLogProbabilities, DateTimeOffset createdAt, string model, string systemFingerprint, ChatTokenUsage usage); public static ChatInputTokenUsageDetails ChatInputTokenUsageDetails(int audioTokenCount = 0, int cachedTokenCount = 0); + public static ChatMessageAnnotation ChatMessageAnnotation(int startIndex = 0, int endIndex = 0, Uri webResourceUri = null, string webResourceTitle = null); public static ChatOutputAudio ChatOutputAudio(BinaryData audioBytes, string id = null, string transcript = null, DateTimeOffset expiresAt = default); public static ChatOutputTokenUsageDetails ChatOutputTokenUsageDetails(int reasoningTokenCount = 0, int audioTokenCount = 0, int acceptedPredictionTokenCount = 0, int rejectedPredictionTokenCount = 0); [EditorBrowsable(EditorBrowsableState.Never)] @@ -1752,7 +1769,8 @@ public enum FilePurpose { BatchOutput = 3, FineTune = 4, FineTuneResults = 5, - Vision = 6 + Vision = 6, + UserData = 7 } [Obsolete("This struct is obsolete. If this is a fine-tuning training file, it may take some time to process after it has been uploaded. While the file is processing, you can still create a fine-tuning job but it will not start until the file processing has completed.")] public enum FileStatus { @@ -1764,7 +1782,9 @@ public enum FileStatus { public FileUploadPurpose(string value); public static FileUploadPurpose Assistants { get; } public static FileUploadPurpose Batch { get; } + public static FileUploadPurpose Evaluations { get; } public static FileUploadPurpose FineTune { get; } + public static FileUploadPurpose UserData { get; } public static FileUploadPurpose Vision { get; } public readonly bool Equals(FileUploadPurpose other); [EditorBrowsable(EditorBrowsableState.Never)] @@ -1778,6 +1798,7 @@ public enum FileStatus { } public class OpenAIFile : IJsonModel, IPersistableModel { public DateTimeOffset CreatedAt { get; } + public DateTimeOffset? ExpiresAt { get; } public string Filename { get; } public string Id { get; } public FilePurpose Purpose { get; } @@ -1856,7 +1877,9 @@ public class OpenAIFileCollection : ObjectModel.ReadOnlyCollection, public static class OpenAIFilesModelFactory { public static FileDeletionResult FileDeletionResult(string fileId = null, bool deleted = false); public static OpenAIFileCollection OpenAIFileCollection(IEnumerable items = null); - public static OpenAIFile OpenAIFileInfo(string id = null, int? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, FilePurpose purpose = FilePurpose.Assistants, FileStatus status = FileStatus.Uploaded, string statusDetails = null); + public static OpenAIFile OpenAIFileInfo(string id = null, int? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, FilePurpose purpose = FilePurpose.Assistants, FileStatus status = FileStatus.Uploaded, string statusDetails = null, DateTimeOffset? expiresAt = null); + [EditorBrowsable(EditorBrowsableState.Never)] + public static OpenAIFile OpenAIFileInfo(string id, int? sizeInBytes, DateTimeOffset createdAt, string filename, FilePurpose purpose, FileStatus status, string statusDetails); } } namespace OpenAI.FineTuning { @@ -2170,7 +2193,7 @@ public enum ConversationContentModalities { Audio = 2 } [Experimental("OPENAI002")] - public abstract class ConversationContentPart : IJsonModel, IPersistableModel { + public class ConversationContentPart : IJsonModel, IPersistableModel { public string AudioTranscript { get; } public string Text { get; } public static ConversationContentPart CreateInputAudioTranscriptPart(string transcript = null); @@ -2294,7 +2317,7 @@ public class ConversationInputTranscriptionOptions : IJsonModel, IPersistableModel { + public class ConversationItem : IJsonModel, IPersistableModel { public string FunctionArguments { get; } public string FunctionCallId { get; } public string FunctionName { get; } @@ -2662,7 +2685,7 @@ public enum ConversationTurnDetectionKind { Disabled = 1 } [Experimental("OPENAI002")] - public abstract class ConversationTurnDetectionOptions : IJsonModel, IPersistableModel { + public class ConversationTurnDetectionOptions : IJsonModel, IPersistableModel { public ConversationTurnDetectionKind Kind { get; protected internal set; } public static ConversationTurnDetectionOptions CreateDisabledTurnDetectionOptions(); public static ConversationTurnDetectionOptions CreateServerVoiceActivityTurnDetectionOptions(float? detectionThreshold = null, TimeSpan? prefixPaddingDuration = null, TimeSpan? silenceDuration = null, bool? enableAutomaticResponseCreation = null); @@ -2670,7 +2693,7 @@ public abstract class ConversationTurnDetectionOptions : IJsonModel, IPersistableModel { + public class ConversationUpdate : IJsonModel, IPersistableModel { public string EventId { get; } public ConversationUpdateKind Kind { get; protected internal set; } public BinaryData GetRawContent(); @@ -2805,6 +2828,644 @@ public class RealtimeConversationSession : IDisposable { public override readonly string ToString(); } } +namespace OpenAI.Responses { + public class ComputerCallAction : IJsonModel, IPersistableModel { + public Drawing.Point? ClickCoordinates { get; } + public ComputerCallActionMouseButton? ClickMouseButton { get; } + public Drawing.Point? DoubleClickCoordinates { get; } + public IList DragPath { get; } + public IList KeyPressKeyCodes { get; } + public ComputerCallActionKind Kind { get; } + public Drawing.Point? MoveCoordinates { get; } + public Drawing.Point? ScrollCoordinates { get; } + public int? ScrollHorizontalOffset { get; } + public int? ScrollVerticalOffset { get; } + public string TypeText { get; } + public static ComputerCallAction CreateClickAction(Drawing.Point clickCoordinates, ComputerCallActionMouseButton clickMouseButton); + public static ComputerCallAction CreateDoubleClickAction(Drawing.Point doubleClickCoordinates, ComputerCallActionMouseButton doubleClickMouseButton); + public static ComputerCallAction CreateDragAction(IList dragPath); + public static ComputerCallAction CreateKeyPressAction(IList keyCodes); + public static ComputerCallAction CreateMoveAction(Drawing.Point moveCoordinates); + public static ComputerCallAction CreateScreenshotAction(); + public static ComputerCallAction CreateScrollAction(Drawing.Point scrollCoordinates, int horizontalOffset, int verticalOffset); + public static ComputerCallAction CreateTypeAction(string typeText); + public static ComputerCallAction CreateWaitAction(); + public static explicit operator ComputerCallAction(ClientResult result); + public static implicit operator BinaryContent(ComputerCallAction computerCallAction); + } + public enum ComputerCallActionKind { + Click = 0, + DoubleClick = 1, + Drag = 2, + KeyPress = 3, + Move = 4, + Screenshot = 5, + Scroll = 6, + Type = 7, + Wait = 8 + } + public enum ComputerCallActionMouseButton { + Left = 0, + Right = 1, + Wheel = 2, + Back = 3, + Forward = 4 + } + public class ComputerCallOutputResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ComputerCallOutputResponseItem(string callId, IEnumerable acknowledgedSafetyChecks, ComputerOutput output); + public IList AcknowledgedSafetyChecks { get; } + public string CallId { get; set; } + public ComputerOutput Output { get; set; } + public ComputerCallOutputStatus? Status { get; } + public new static explicit operator ComputerCallOutputResponseItem(ClientResult result); + public static implicit operator BinaryContent(ComputerCallOutputResponseItem computerCallOutputResponseItem); + } + public enum ComputerCallOutputStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class ComputerCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ComputerCallResponseItem(string id, string callId, ComputerCallAction action, IEnumerable pendingSafetyChecks); + public ComputerCallAction Action { get; set; } + public string CallId { get; set; } + public IList PendingSafetyChecks { get; } + public ComputerCallStatus Status { get; } + public new static explicit operator ComputerCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(ComputerCallResponseItem computerCallResponseItem); + } + public class ComputerCallSafetyCheck : IJsonModel, IPersistableModel { + public ComputerCallSafetyCheck(string id, string code, string message); + public string Code { get; set; } + public string Id { get; set; } + public string Message { get; set; } + public static explicit operator ComputerCallSafetyCheck(ClientResult result); + public static implicit operator BinaryContent(ComputerCallSafetyCheck computerCallSafetyCheck); + } + public enum ComputerCallStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class ComputerOutput : IJsonModel, IPersistableModel { + public static ComputerOutput CreateScreenshotOutput(BinaryData screenshotImageBytes, string screenshotImageBytesMediaType); + public static ComputerOutput CreateScreenshotOutput(string screenshotImageFileId); + public static ComputerOutput CreateScreenshotOutput(Uri screenshotImageUri); + public static explicit operator ComputerOutput(ClientResult result); + public static implicit operator BinaryContent(ComputerOutput computerOutput); + } + public readonly partial struct ComputerToolEnvironment : IEquatable { + public ComputerToolEnvironment(string value); + public static ComputerToolEnvironment Browser { get; } + public static ComputerToolEnvironment Mac { get; } + public static ComputerToolEnvironment Ubuntu { get; } + public static ComputerToolEnvironment Windows { get; } + public readonly bool Equals(ComputerToolEnvironment other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ComputerToolEnvironment left, ComputerToolEnvironment right); + public static implicit operator ComputerToolEnvironment(string value); + public static bool operator !=(ComputerToolEnvironment left, ComputerToolEnvironment right); + public override readonly string ToString(); + } + public class FileSearchCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public FileSearchCallResponseItem(string id, IEnumerable queries, IEnumerable results); + public IList Queries { get; } + public IList Results { get; set; } + public FileSearchCallStatus Status { get; } + public new static explicit operator FileSearchCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(FileSearchCallResponseItem fileSearchCallResponseItem); + } + public class FileSearchCallResult : IJsonModel, IPersistableModel { + public IDictionary Attributes { get; } + public string FileId { get; set; } + public string Filename { get; set; } + public float? Score { get; set; } + public string Text { get; set; } + public static explicit operator FileSearchCallResult(ClientResult result); + public static implicit operator BinaryContent(FileSearchCallResult fileSearchCallResult); + } + public enum FileSearchCallStatus { + InProgress = 0, + Searching = 1, + Completed = 2, + Incomplete = 3, + Failed = 4 + } + public readonly partial struct FileSearchToolRanker : IEquatable { + public FileSearchToolRanker(string value); + public static FileSearchToolRanker Auto { get; } + public static FileSearchToolRanker Default20241115 { get; } + public readonly bool Equals(FileSearchToolRanker other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(FileSearchToolRanker left, FileSearchToolRanker right); + public static implicit operator FileSearchToolRanker(string value); + public static bool operator !=(FileSearchToolRanker left, FileSearchToolRanker right); + public override readonly string ToString(); + } + public class FileSearchToolRankingOptions : IJsonModel, IPersistableModel { + public FileSearchToolRanker? Ranker { get; set; } + public float? ScoreThreshold { get; set; } + public static explicit operator FileSearchToolRankingOptions(ClientResult result); + public static implicit operator BinaryContent(FileSearchToolRankingOptions fileSearchToolRankingOptions); + } + public class FunctionCallOutputResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public FunctionCallOutputResponseItem(string callId, string functionOutput); + public string CallId { get; set; } + public string FunctionOutput { get; set; } + public FunctionCallOutputStatus? Status { get; } + public new static explicit operator FunctionCallOutputResponseItem(ClientResult result); + public static implicit operator BinaryContent(FunctionCallOutputResponseItem functionCallOutputResponseItem); + } + public enum FunctionCallOutputStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class FunctionCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public FunctionCallResponseItem(string id, string callId, string functionName, BinaryData functionArguments); + public string CallId { get; set; } + public BinaryData FunctionArguments { get; set; } + public string FunctionName { get; set; } + public FunctionCallStatus? Status { get; } + public new static explicit operator FunctionCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(FunctionCallResponseItem functionCallResponseItem); + } + public enum FunctionCallStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class MessageResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public MessageResponseItem(MessageRole role); + public IList Content { get; } + public MessageRole Role { get; } + public MessageStatus? Status { get; } + public new static explicit operator MessageResponseItem(ClientResult result); + public static implicit operator BinaryContent(MessageResponseItem messageResponseItem); + } + public readonly partial struct MessageRole : IEquatable { + public MessageRole(string value); + public static MessageRole Assistant { get; } + public static MessageRole Developer { get; } + public static MessageRole System { get; } + public static MessageRole User { get; } + public readonly bool Equals(MessageRole other); + [EditorBrowsable(global::EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(global::EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(MessageRole left, MessageRole right); + public static implicit operator MessageRole(string value); + public static bool operator !=(MessageRole left, MessageRole right); + public override readonly string ToString(); + } + public enum MessageStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class OpenAIResponse : IJsonModel, IPersistableModel { + public bool AllowParallelToolCalls { get; } + public DateTimeOffset CreatedAt { get; } + public string EndUserId { get; } + public ResponseError Error { get; } + public string Id { get; } + public ResponseIncompleteStatusDetails IncompleteStatusDetails { get; } + public string Instructions { get; } + public int? MaxOutputTokenCount { get; } + public IDictionary Metadata { get; } + public string Model { get; } + public IList OutputItems { get; } + public string PreviousResponseId { get; } + public ResponseReasoningOptions ReasoningOptions { get; } + public ResponseStatus? Status { get; } + public float Temperature { get; } + public ResponseTextOptions TextOptions { get; } + public BinaryData ToolChoice { get; } + public IList Tools { get; } + public float TopP { get; } + public ResponseTruncationMode? TruncationMode { get; } + public ResponseTokenUsage Usage { get; } + public static explicit operator OpenAIResponse(ClientResult result); + public static implicit operator BinaryContent(OpenAIResponse openAIResponse); + } + public class OpenAIResponseClient { + protected OpenAIResponseClient(); + protected internal OpenAIResponseClient(ClientPipeline pipeline, string model, OpenAIClientOptions options); + public OpenAIResponseClient(string model, ApiKeyCredential credential, OpenAIClientOptions options); + public OpenAIResponseClient(string model, ApiKeyCredential credential); + public OpenAIResponseClient(string model, string apiKey); + public ClientPipeline Pipeline { get; } + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult CreateResponse(BinaryContent content, RequestOptions options = null); + public virtual ClientResult CreateResponse(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual ClientResult CreateResponse(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual Task CreateResponseAsync(BinaryContent content, RequestOptions options = null); + public virtual Task> CreateResponseAsync(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual Task> CreateResponseAsync(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual CollectionResult CreateResponseStreaming(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual CollectionResult CreateResponseStreaming(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual AsyncCollectionResult CreateResponseStreamingAsync(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual AsyncCollectionResult CreateResponseStreamingAsync(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult DeleteResponse(string responseId, RequestOptions options); + public virtual ClientResult DeleteResponse(string responseId, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual Task DeleteResponseAsync(string responseId, RequestOptions options); + public virtual Task> DeleteResponseAsync(string responseId, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult GetResponse(string responseId, RequestOptions options); + public virtual ClientResult GetResponse(string responseId, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual Task GetResponseAsync(string responseId, RequestOptions options); + public virtual Task> GetResponseAsync(string responseId, CancellationToken cancellationToken = default); + public virtual CollectionResult GetResponseInputItems(string responseId, ResponseItemCollectionOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual CollectionResult GetResponseInputItems(string responseId, int? limit, string order, string after, string before, RequestOptions options = null); + public virtual AsyncCollectionResult GetResponseInputItemsAsync(string responseId, ResponseItemCollectionOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual AsyncCollectionResult GetResponseInputItemsAsync(string responseId, int? limit, string order, string after, string before, RequestOptions options = null); + } + public class ReasoningResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ReasoningResponseItem(string id, IEnumerable summaryTextParts); + public ReasoningStatus? Status { get; } + public IReadOnlyList SummaryTextParts { get; } + public new static explicit operator ReasoningResponseItem(ClientResult result); + public static implicit operator BinaryContent(ReasoningResponseItem reasoningResponseItem); + } + public enum ReasoningStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class ReferenceResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ReferenceResponseItem(string id); + public new static explicit operator ReferenceResponseItem(ClientResult result); + public static implicit operator BinaryContent(ReferenceResponseItem referenceResponseItem); + } + public class ResponseContentPart : IJsonModel, IPersistableModel { + public BinaryData InputFileBytes { get; } + public string InputFileId { get; } + public string InputFilename { get; } + public ResponseImageDetailLevel? InputImageDetailLevel { get; } + public string InputImageFileId { get; } + public ResponseContentPartKind Kind { get; } + public IReadOnlyList OutputTextAnnotations { get; } + public string Refusal { get; } + public string Text { get; } + public static ResponseContentPart CreateInputFilePart(string fileId, string filename, BinaryData fileBytes); + public static ResponseContentPart CreateInputImagePart(BinaryData imageBytes, string imageBytesMediaType, ResponseImageDetailLevel? imageDetailLevel = null); + public static ResponseContentPart CreateInputImagePart(string imageFileId, ResponseImageDetailLevel? imageDetailLevel = null); + public static ResponseContentPart CreateInputImagePart(Uri imageUri, ResponseImageDetailLevel? imageDetailLevel = null); + public static ResponseContentPart CreateInputTextPart(string text); + public static ResponseContentPart CreateOutputTextPart(string text, IEnumerable annotations); + public static ResponseContentPart CreateRefusalPart(string refusal); + public static explicit operator ResponseContentPart(ClientResult result); + public static implicit operator BinaryContent(ResponseContentPart responseContentPart); + } + public enum ResponseContentPartKind { + InputText = 0, + InputImage = 1, + InputFile = 2, + OutputText = 3, + Refusal = 4 + } + public class ResponseCreationOptions : IJsonModel, IPersistableModel { + public bool? AllowParallelToolCalls { get; set; } + public string EndUserId { get; set; } + public string Instructions { get; set; } + public int? MaxOutputTokenCount { get; set; } + public IDictionary Metadata { get; } + public string PreviousResponseId { get; set; } + public ResponseReasoningOptions ReasoningOptions { get; set; } + public bool? StoredOutputEnabled { get; set; } + public float? Temperature { get; set; } + public ResponseTextOptions TextOptions { get; set; } + public BinaryData ToolChoice { get; set; } + public IList Tools { get; set; } + public float? TopP { get; set; } + public ResponseTruncationMode? TruncationMode { get; set; } + public static explicit operator ResponseCreationOptions(ClientResult result); + public static implicit operator BinaryContent(ResponseCreationOptions responseCreationOptions); + } + public class ResponseDeletionResult : IJsonModel, IPersistableModel { + public bool Deleted { get; } + public string Id { get; } + public static explicit operator ResponseDeletionResult(ClientResult result); + public static implicit operator BinaryContent(ResponseDeletionResult responseDeletionResult); + } + public class ResponseError : IJsonModel, IPersistableModel { + public string Code { get; } + public string Message { get; } + public static explicit operator ResponseError(ClientResult result); + public static implicit operator BinaryContent(ResponseError responseError); + } + public readonly partial struct ResponseImageDetailLevel : IEquatable { + public ResponseImageDetailLevel(string value); + public static ResponseImageDetailLevel Auto { get; } + public static ResponseImageDetailLevel High { get; } + public static ResponseImageDetailLevel Low { get; } + public readonly bool Equals(ResponseImageDetailLevel other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseImageDetailLevel left, ResponseImageDetailLevel right); + public static implicit operator ResponseImageDetailLevel(string value); + public static bool operator !=(ResponseImageDetailLevel left, ResponseImageDetailLevel right); + public override readonly string ToString(); + } + public class ResponseIncompleteStatusDetails : IJsonModel, IPersistableModel { + public ResponseIncompleteStatusReason? Reason { get; } + public static explicit operator ResponseIncompleteStatusDetails(ClientResult result); + public static implicit operator BinaryContent(ResponseIncompleteStatusDetails responseIncompleteStatusDetails); + } + public readonly partial struct ResponseIncompleteStatusReason : IEquatable { + public ResponseIncompleteStatusReason(string value); + public static ResponseIncompleteStatusReason ContentFilter { get; } + public static ResponseIncompleteStatusReason MaxOutputTokens { get; } + public readonly bool Equals(ResponseIncompleteStatusReason other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseIncompleteStatusReason left, ResponseIncompleteStatusReason right); + public static implicit operator ResponseIncompleteStatusReason(string value); + public static bool operator !=(ResponseIncompleteStatusReason left, ResponseIncompleteStatusReason right); + public override readonly string ToString(); + } + public class ResponseItem : IJsonModel, IPersistableModel { + public string Id { get; } + public static MessageResponseItem CreateAssistantMessageItem(string id, string content); + public static ResponseItem CreateComputerCallItem(string id, string callId, ComputerCallAction action, IEnumerable pendingSafetyChecks); + [Experimental("OPENAICUA001")] + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, BinaryData screenshotImageBytes, string screenshotImageBytesMediaType); + [Experimental("OPENAICUA001")] + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, string screenshotImageFileId); + [Experimental("OPENAICUA001")] + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, Uri screenshotImageUri); + public static MessageResponseItem CreateDeveloperMessageItem(string content); + public static FileSearchCallResponseItem CreateFileSearchCallResponseItem(string id, IEnumerable queries, IEnumerable results); + public static FunctionCallResponseItem CreateFunctionCall(string id, string callId, string functionName, BinaryData functionArguments); + public static FunctionCallOutputResponseItem CreateFunctionCallOutputItem(string callId, string functionOutput); + public static ReasoningResponseItem CreateReasoningItem(string id, IEnumerable summaryTextParts); + public static ReferenceResponseItem CreateReferenceItem(string id); + public static MessageResponseItem CreateSystemMessageItem(string content); + public static MessageResponseItem CreateUserMessageItem(IEnumerable contentParts); + public static MessageResponseItem CreateUserMessageItem(string content); + public static WebSearchCallResponseItem CreateWebSearchCallItem(string id); + public static explicit operator ResponseItem(ClientResult result); + public static implicit operator BinaryContent(ResponseItem responseItem); + } + [Experimental("OPENAI001")] + public class ResponseItemCollectionOptions { + public string AfterId { get; set; } + public string BeforeId { get; set; } + public ResponseItemCollectionOrder? Order { get; set; } + public int? PageSizeLimit { get; set; } + } + [Experimental("OPENAI001")] + public readonly partial struct ResponseItemCollectionOrder : IEquatable { + public ResponseItemCollectionOrder(string value); + public static ResponseItemCollectionOrder Ascending { get; } + public static ResponseItemCollectionOrder Descending { get; } + public readonly bool Equals(ResponseItemCollectionOrder other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseItemCollectionOrder left, ResponseItemCollectionOrder right); + public static implicit operator ResponseItemCollectionOrder(string value); + public static bool operator !=(ResponseItemCollectionOrder left, ResponseItemCollectionOrder right); + public override readonly string ToString(); + } + public class ResponseMessageAnnotation : IJsonModel, IPersistableModel { + public string FileCitationFileId { get; } + public int? FileCitationIndex { get; } + public string FilePathFileId { get; } + public int? FilePathIndex { get; } + public ResponseMessageAnnotationKind Kind { get; } + public int? UriCitationEndIndex { get; } + public int? UriCitationStartIndex { get; } + public string UriCitationTitle { get; } + public string UriCitationUri { get; } + public static explicit operator ResponseMessageAnnotation(ClientResult result); + public static implicit operator BinaryContent(ResponseMessageAnnotation responseMessageAnnotation); + } + public enum ResponseMessageAnnotationKind { + FileCitation = 0, + UriCitation = 1, + FilePath = 2 + } + public class ResponseOutputTokenUsageDetails : IJsonModel, IPersistableModel { + public int ReasoningTokenCount { get; } + public static explicit operator ResponseOutputTokenUsageDetails(ClientResult result); + public static implicit operator BinaryContent(ResponseOutputTokenUsageDetails responseOutputTokenUsageDetails); + } + public readonly partial struct ResponseReasoningEffortLevel : IEquatable { + public ResponseReasoningEffortLevel(string value); + public static ResponseReasoningEffortLevel High { get; } + public static ResponseReasoningEffortLevel Low { get; } + public static ResponseReasoningEffortLevel Medium { get; } + public readonly bool Equals(ResponseReasoningEffortLevel other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseReasoningEffortLevel left, ResponseReasoningEffortLevel right); + public static implicit operator ResponseReasoningEffortLevel(string value); + public static bool operator !=(ResponseReasoningEffortLevel left, ResponseReasoningEffortLevel right); + public override readonly string ToString(); + } + public class ResponseReasoningOptions : IJsonModel, IPersistableModel { + public ResponseReasoningOptions(); + public ResponseReasoningOptions(ResponseReasoningEffortLevel? reasoningEffortLevel); + public ResponseReasoningEffortLevel? ReasoningEffortLevel { get; set; } + public ResponseReasoningSummaryVerbosity? ReasoningSummaryVerbosity { get; set; } + public static explicit operator ResponseReasoningOptions(ClientResult result); + public static implicit operator BinaryContent(ResponseReasoningOptions responseReasoningOptions); + } + public readonly partial struct ResponseReasoningSummaryVerbosity : IEquatable { + public ResponseReasoningSummaryVerbosity(string value); + public static ResponseReasoningSummaryVerbosity Concise { get; } + public static ResponseReasoningSummaryVerbosity Detailed { get; } + public readonly bool Equals(ResponseReasoningSummaryVerbosity other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseReasoningSummaryVerbosity left, ResponseReasoningSummaryVerbosity right); + public static implicit operator ResponseReasoningSummaryVerbosity(string value); + public static bool operator !=(ResponseReasoningSummaryVerbosity left, ResponseReasoningSummaryVerbosity right); + public override readonly string ToString(); + } + public enum ResponseStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2, + Failed = 3 + } + public class ResponseTextFormat : IJsonModel, IPersistableModel { + public static ResponseTextFormat CreateJsonObjectFormat(); + public static ResponseTextFormat CreateJsonSchemaFormat(string jsonSchemaFormatName, BinaryData jsonSchema, string jsonSchemaFormatDescription = null, bool? jsonSchemaIsStrict = null); + public static ResponseTextFormat CreateTextFormat(); + public static explicit operator ResponseTextFormat(ClientResult result); + public static implicit operator BinaryContent(ResponseTextFormat responseTextFormat); + } + public class ResponseTextOptions : IJsonModel, IPersistableModel { + public ResponseTextFormat ResponseFormat { get; set; } + public static explicit operator ResponseTextOptions(ClientResult result); + public static implicit operator BinaryContent(ResponseTextOptions responseTextOptions); + } + public class ResponseTokenUsage : IJsonModel, IPersistableModel { + public int InputTokenCount { get; } + public int OutputTokenCount { get; } + public ResponseOutputTokenUsageDetails OutputTokenDetails { get; } + public int TotalTokenCount { get; } + public static explicit operator ResponseTokenUsage(ClientResult result); + public static implicit operator BinaryContent(ResponseTokenUsage responseTokenUsage); + } + public class ResponseTool : IJsonModel, IPersistableModel { + [Experimental("OPENAICUA001")] + public static ResponseTool CreateComputerTool(int displayWidth, int displayHeight, ComputerToolEnvironment environment); + public static ResponseTool CreateFileSearchTool(IEnumerable vectorStoreIds, int? maxResultCount = null, FileSearchToolRankingOptions rankingOptions = null, BinaryData filters = null); + public static ResponseTool CreateFunctionTool(string functionName, string functionDescription, BinaryData functionParameters, bool functionSchemaIsStrict = false); + public static ResponseTool CreateWebSearchTool(WebSearchToolLocation webSearchToolUserLocation = null, WebSearchToolContextSize? webSearchToolContextSize = null); + public static explicit operator ResponseTool(ClientResult result); + public static implicit operator BinaryContent(ResponseTool responseTool); + } + public readonly partial struct ResponseTruncationMode : IEquatable { + public ResponseTruncationMode(string value); + public static ResponseTruncationMode Auto { get; } + public static ResponseTruncationMode Disabled { get; } + public readonly bool Equals(ResponseTruncationMode other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseTruncationMode left, ResponseTruncationMode right); + public static implicit operator ResponseTruncationMode(string value); + public static bool operator !=(ResponseTruncationMode left, ResponseTruncationMode right); + public override readonly string ToString(); + } + public class StreamingResponseContentPartDeltaUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public int ContentPartIndex { get; } + public string FunctionArguments { get; } + public string ItemId { get; } + public int ItemIndex { get; } + public string Refusal { get; } + public string Text { get; } + } + public class StreamingResponseErrorUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public string Code { get; } + public string Message { get; } + public string Param { get; } + public new static explicit operator StreamingResponseErrorUpdate(ClientResult result); + public static implicit operator BinaryContent(StreamingResponseErrorUpdate streamingResponseErrorUpdate); + } + public class StreamingResponseFileSearchCallUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public string OutputItemId { get; } + public int OutputItemIndex { get; } + } + public class StreamingResponseItemUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public ResponseItem Item { get; } + public int ItemIndex { get; } + } + public class StreamingResponseStatusUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public OpenAIResponse Response { get; } + } + public class StreamingResponseTextAnnotationUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public ResponseMessageAnnotation Annotation { get; } + public int ContentIndex { get; } + public string ItemId { get; } + public int OutputIndex { get; } + public new static explicit operator StreamingResponseTextAnnotationUpdate(ClientResult result); + public static implicit operator BinaryContent(StreamingResponseTextAnnotationUpdate streamingResponseTextAnnotationUpdate); + } + public class StreamingResponseUpdate : IJsonModel, IPersistableModel { + public StreamingResponseUpdateKind Kind { get; } + public static explicit operator StreamingResponseUpdate(ClientResult result); + public static implicit operator BinaryContent(StreamingResponseUpdate streamingResponseUpdate); + } + public readonly partial struct StreamingResponseUpdateKind : IEquatable { + public StreamingResponseUpdateKind(string value); + public static StreamingResponseUpdateKind Error { get; } + public static StreamingResponseUpdateKind ResponseCompleted { get; } + public static StreamingResponseUpdateKind ResponseContentPartAdded { get; } + public static StreamingResponseUpdateKind ResponseContentPartDone { get; } + public static StreamingResponseUpdateKind ResponseCreated { get; } + public static StreamingResponseUpdateKind ResponseFailed { get; } + public static StreamingResponseUpdateKind ResponseFileSearchCallCompleted { get; } + public static StreamingResponseUpdateKind ResponseFileSearchCallInProgress { get; } + public static StreamingResponseUpdateKind ResponseFileSearchCallSearching { get; } + public static StreamingResponseUpdateKind ResponseFunctionCallArgumentsDelta { get; } + public static StreamingResponseUpdateKind ResponseFunctionCallArgumentsDone { get; } + public static StreamingResponseUpdateKind ResponseIncomplete { get; } + public static StreamingResponseUpdateKind ResponseInProgress { get; } + public static StreamingResponseUpdateKind ResponseOutputItemAdded { get; } + public static StreamingResponseUpdateKind ResponseOutputItemDone { get; } + public static StreamingResponseUpdateKind ResponseOutputTextAnnotationAdded { get; } + public static StreamingResponseUpdateKind ResponseOutputTextDelta { get; } + public static StreamingResponseUpdateKind ResponseOutputTextDone { get; } + public static StreamingResponseUpdateKind ResponseRefusalDelta { get; } + public static StreamingResponseUpdateKind ResponseRefusalDone { get; } + public static StreamingResponseUpdateKind ResponseWebSearchCallCompleted { get; } + public static StreamingResponseUpdateKind ResponseWebSearchCallInProgress { get; } + public static StreamingResponseUpdateKind ResponseWebSearchCallSearching { get; } + public readonly bool Equals(StreamingResponseUpdateKind other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(StreamingResponseUpdateKind left, StreamingResponseUpdateKind right); + public static implicit operator StreamingResponseUpdateKind(string value); + public static bool operator !=(StreamingResponseUpdateKind left, StreamingResponseUpdateKind right); + public override readonly string ToString(); + } + public class StreamingResponseWebSearchCallUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public string OutputItemId { get; } + public int OutputItemIndex { get; } + } + public class WebSearchCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public WebSearchCallResponseItem(string id); + public WebSearchCallStatus Status { get; } + public new static explicit operator WebSearchCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(WebSearchCallResponseItem webSearchCallResponseItem); + } + public enum WebSearchCallStatus { + InProgress = 0, + Searching = 1, + Completed = 2, + Failed = 3 + } + public readonly partial struct WebSearchToolContextSize : IEquatable { + public WebSearchToolContextSize(string value); + public static WebSearchToolContextSize High { get; } + public static WebSearchToolContextSize Low { get; } + public static WebSearchToolContextSize Medium { get; } + public readonly bool Equals(WebSearchToolContextSize other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(WebSearchToolContextSize left, WebSearchToolContextSize right); + public static implicit operator WebSearchToolContextSize(string value); + public static bool operator !=(WebSearchToolContextSize left, WebSearchToolContextSize right); + public override readonly string ToString(); + } + public class WebSearchToolLocation : IJsonModel, IPersistableModel { + public static WebSearchToolLocation CreateApproximateLocation(string country = null, string region = null, string city = null, string timezone = null); + public static explicit operator WebSearchToolLocation(ClientResult result); + public static implicit operator BinaryContent(WebSearchToolLocation webSearchToolLocation); + } +} namespace OpenAI.VectorStores { [Experimental("OPENAI001")] public class AddFileToVectorStoreOperation : OperationResult { @@ -3072,6 +3733,7 @@ public class VectorStoreExpirationPolicy : IJsonModel, IPersistableModel { + public IDictionary Attributes { get; } public FileChunkingStrategy ChunkingStrategy { get; } public DateTimeOffset CreatedAt { get; } public string FileId { get; } diff --git a/api/OpenAI.netstandard2.0.cs b/api/OpenAI.netstandard2.0.cs index 52b1d8263..e1e5cd624 100644 --- a/api/OpenAI.netstandard2.0.cs +++ b/api/OpenAI.netstandard2.0.cs @@ -16,6 +16,8 @@ public class OpenAIClient { public virtual ModerationClient GetModerationClient(string model); public virtual OpenAIFileClient GetOpenAIFileClient(); public virtual OpenAIModelClient GetOpenAIModelClient(); + public virtual Responses.OpenAIResponseClient GetOpenAIResponseClient(); + public virtual Responses.OpenAIResponseClient GetOpenAIResponseClient(string model); public virtual RealtimeConversation.RealtimeConversationClient GetRealtimeConversationClient(string model); public virtual VectorStoreClient GetVectorStoreClient(); } @@ -254,7 +256,7 @@ public class AssistantModificationOptions : IJsonModel, IEquatable, IJsonModel, IPersistableModel { + public class AssistantResponseFormat : IEquatable, IEquatable, IJsonModel, IPersistableModel { public static AssistantResponseFormat Auto { get; } public static AssistantResponseFormat JsonObject { get; } public static AssistantResponseFormat Text { get; } @@ -702,7 +704,7 @@ public class RunStepTokenUsage : IJsonModel, IPersistableMode public static explicit operator RunStepTokenUsage(ClientResult result); public static implicit operator BinaryContent(RunStepTokenUsage runStepTokenUsage); } - public abstract class RunStepToolCall : IJsonModel, IPersistableModel { + public class RunStepToolCall : IJsonModel, IPersistableModel { public string CodeInterpreterInput { get; } public IReadOnlyList CodeInterpreterOutputs { get; } public FileSearchRankingOptions FileSearchRankingOptions { get; } @@ -722,7 +724,7 @@ public enum RunStepToolCallKind { } public class RunStepUpdate : StreamingUpdate { } - public abstract class RunStepUpdateCodeInterpreterOutput : IJsonModel, IPersistableModel { + public class RunStepUpdateCodeInterpreterOutput : IJsonModel, IPersistableModel { public string ImageFileId { get; } public string Logs { get; } public int OutputIndex { get; } @@ -1163,6 +1165,7 @@ public class ChatClient { public virtual AsyncCollectionResult CompleteChatStreamingAsync(IEnumerable messages, ChatCompletionOptions options = null, CancellationToken cancellationToken = default); } public class ChatCompletion : IJsonModel, IPersistableModel { + public IReadOnlyList Annotations { get; } public ChatMessageContent Content { get; } public IReadOnlyList ContentTokenLogProbabilities { get; } public DateTimeOffset CreatedAt { get; } @@ -1207,6 +1210,7 @@ public class ChatCompletionOptions : IJsonModel, IPersist public IList Tools { get; } public int? TopLogProbabilityCount { get; set; } public float? TopP { get; set; } + public ChatWebSearchOptions WebSearchOptions { get; set; } public static explicit operator ChatCompletionOptions(ClientResult result); public static implicit operator BinaryContent(ChatCompletionOptions chatCompletionOptions); } @@ -1304,6 +1308,14 @@ public class ChatMessage : IJsonModel, IPersistableModel, IPersistableModel { + public int EndIndex { get; } + public int StartIndex { get; } + public string WebResourceTitle { get; } + public Uri WebResourceUri { get; } + public static explicit operator ChatMessageAnnotation(ClientResult result); + public static implicit operator BinaryContent(ChatMessageAnnotation chatMessageAnnotation); + } public class ChatMessageContent : ObjectModel.Collection { public ChatMessageContent(); public ChatMessageContent(params ChatMessageContentPart[] contentParts); @@ -1493,6 +1505,10 @@ public class ChatToolChoice : IJsonModel, IPersistableModel, IPersistableModel { + public static explicit operator ChatWebSearchOptions(ClientResult result); + public static implicit operator BinaryContent(ChatWebSearchOptions chatWebSearchOptions); + } public class DeveloperChatMessage : ChatMessage, IJsonModel, IPersistableModel { public DeveloperChatMessage(params ChatMessageContentPart[] contentParts); public DeveloperChatMessage(IEnumerable contentParts); @@ -1509,10 +1525,11 @@ public class FunctionChatMessage : ChatMessage, IJsonModel, public static implicit operator BinaryContent(FunctionChatMessage functionChatMessage); } public static class OpenAIChatModelFactory { - public static ChatCompletion ChatCompletion(string id = null, ChatFinishReason finishReason = ChatFinishReason.Stop, ChatMessageContent content = null, string refusal = null, IEnumerable toolCalls = null, ChatMessageRole role = ChatMessageRole.System, ChatFunctionCall functionCall = null, IEnumerable contentTokenLogProbabilities = null, IEnumerable refusalTokenLogProbabilities = null, DateTimeOffset createdAt = default, string model = null, string systemFingerprint = null, ChatTokenUsage usage = null, ChatOutputAudio outputAudio = null); + public static ChatCompletion ChatCompletion(string id = null, ChatFinishReason finishReason = ChatFinishReason.Stop, ChatMessageContent content = null, string refusal = null, IEnumerable toolCalls = null, ChatMessageRole role = ChatMessageRole.System, ChatFunctionCall functionCall = null, IEnumerable contentTokenLogProbabilities = null, IEnumerable refusalTokenLogProbabilities = null, DateTimeOffset createdAt = default, string model = null, string systemFingerprint = null, ChatTokenUsage usage = null, ChatOutputAudio outputAudio = null, IEnumerable messageAnnotations = null); [EditorBrowsable(EditorBrowsableState.Never)] public static ChatCompletion ChatCompletion(string id, ChatFinishReason finishReason, ChatMessageContent content, string refusal, IEnumerable toolCalls, ChatMessageRole role, ChatFunctionCall functionCall, IEnumerable contentTokenLogProbabilities, IEnumerable refusalTokenLogProbabilities, DateTimeOffset createdAt, string model, string systemFingerprint, ChatTokenUsage usage); public static ChatInputTokenUsageDetails ChatInputTokenUsageDetails(int audioTokenCount = 0, int cachedTokenCount = 0); + public static ChatMessageAnnotation ChatMessageAnnotation(int startIndex = 0, int endIndex = 0, Uri webResourceUri = null, string webResourceTitle = null); public static ChatOutputAudio ChatOutputAudio(BinaryData audioBytes, string id = null, string transcript = null, DateTimeOffset expiresAt = default); public static ChatOutputTokenUsageDetails ChatOutputTokenUsageDetails(int reasoningTokenCount = 0, int audioTokenCount = 0, int acceptedPredictionTokenCount = 0, int rejectedPredictionTokenCount = 0); [EditorBrowsable(EditorBrowsableState.Never)] @@ -1663,7 +1680,8 @@ public enum FilePurpose { BatchOutput = 3, FineTune = 4, FineTuneResults = 5, - Vision = 6 + Vision = 6, + UserData = 7 } [Obsolete("This struct is obsolete. If this is a fine-tuning training file, it may take some time to process after it has been uploaded. While the file is processing, you can still create a fine-tuning job but it will not start until the file processing has completed.")] public enum FileStatus { @@ -1675,7 +1693,9 @@ public enum FileStatus { public FileUploadPurpose(string value); public static FileUploadPurpose Assistants { get; } public static FileUploadPurpose Batch { get; } + public static FileUploadPurpose Evaluations { get; } public static FileUploadPurpose FineTune { get; } + public static FileUploadPurpose UserData { get; } public static FileUploadPurpose Vision { get; } public readonly bool Equals(FileUploadPurpose other); [EditorBrowsable(EditorBrowsableState.Never)] @@ -1689,6 +1709,7 @@ public enum FileStatus { } public class OpenAIFile : IJsonModel, IPersistableModel { public DateTimeOffset CreatedAt { get; } + public DateTimeOffset? ExpiresAt { get; } public string Filename { get; } public string Id { get; } public FilePurpose Purpose { get; } @@ -1759,7 +1780,9 @@ public class OpenAIFileCollection : ObjectModel.ReadOnlyCollection, public static class OpenAIFilesModelFactory { public static FileDeletionResult FileDeletionResult(string fileId = null, bool deleted = false); public static OpenAIFileCollection OpenAIFileCollection(IEnumerable items = null); - public static OpenAIFile OpenAIFileInfo(string id = null, int? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, FilePurpose purpose = FilePurpose.Assistants, FileStatus status = FileStatus.Uploaded, string statusDetails = null); + public static OpenAIFile OpenAIFileInfo(string id = null, int? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, FilePurpose purpose = FilePurpose.Assistants, FileStatus status = FileStatus.Uploaded, string statusDetails = null, DateTimeOffset? expiresAt = null); + [EditorBrowsable(EditorBrowsableState.Never)] + public static OpenAIFile OpenAIFileInfo(string id, int? sizeInBytes, DateTimeOffset createdAt, string filename, FilePurpose purpose, FileStatus status, string statusDetails); } } namespace OpenAI.FineTuning { @@ -2068,7 +2091,7 @@ public enum ConversationContentModalities { Text = 1, Audio = 2 } - public abstract class ConversationContentPart : IJsonModel, IPersistableModel { + public class ConversationContentPart : IJsonModel, IPersistableModel { public string AudioTranscript { get; } public string Text { get; } public static ConversationContentPart CreateInputAudioTranscriptPart(string transcript = null); @@ -2178,7 +2201,7 @@ public class ConversationInputTranscriptionOptions : IJsonModel, IPersistableModel { + public class ConversationItem : IJsonModel, IPersistableModel { public string FunctionArguments { get; } public string FunctionCallId { get; } public string FunctionName { get; } @@ -2515,14 +2538,14 @@ public enum ConversationTurnDetectionKind { ServerVoiceActivityDetection = 0, Disabled = 1 } - public abstract class ConversationTurnDetectionOptions : IJsonModel, IPersistableModel { + public class ConversationTurnDetectionOptions : IJsonModel, IPersistableModel { public ConversationTurnDetectionKind Kind { get; protected internal set; } public static ConversationTurnDetectionOptions CreateDisabledTurnDetectionOptions(); public static ConversationTurnDetectionOptions CreateServerVoiceActivityTurnDetectionOptions(float? detectionThreshold = null, TimeSpan? prefixPaddingDuration = null, TimeSpan? silenceDuration = null, bool? enableAutomaticResponseCreation = null); public static explicit operator ConversationTurnDetectionOptions(ClientResult result); public static implicit operator BinaryContent(ConversationTurnDetectionOptions conversationTurnDetectionOptions); } - public abstract class ConversationUpdate : IJsonModel, IPersistableModel { + public class ConversationUpdate : IJsonModel, IPersistableModel { public string EventId { get; } public ConversationUpdateKind Kind { get; protected internal set; } public BinaryData GetRawContent(); @@ -2652,6 +2675,638 @@ public class RealtimeConversationSession : IDisposable { public override readonly string ToString(); } } +namespace OpenAI.Responses { + public class ComputerCallAction : IJsonModel, IPersistableModel { + public Drawing.Point? ClickCoordinates { get; } + public ComputerCallActionMouseButton? ClickMouseButton { get; } + public Drawing.Point? DoubleClickCoordinates { get; } + public IList DragPath { get; } + public IList KeyPressKeyCodes { get; } + public ComputerCallActionKind Kind { get; } + public Drawing.Point? MoveCoordinates { get; } + public Drawing.Point? ScrollCoordinates { get; } + public int? ScrollHorizontalOffset { get; } + public int? ScrollVerticalOffset { get; } + public string TypeText { get; } + public static ComputerCallAction CreateClickAction(Drawing.Point clickCoordinates, ComputerCallActionMouseButton clickMouseButton); + public static ComputerCallAction CreateDoubleClickAction(Drawing.Point doubleClickCoordinates, ComputerCallActionMouseButton doubleClickMouseButton); + public static ComputerCallAction CreateDragAction(IList dragPath); + public static ComputerCallAction CreateKeyPressAction(IList keyCodes); + public static ComputerCallAction CreateMoveAction(Drawing.Point moveCoordinates); + public static ComputerCallAction CreateScreenshotAction(); + public static ComputerCallAction CreateScrollAction(Drawing.Point scrollCoordinates, int horizontalOffset, int verticalOffset); + public static ComputerCallAction CreateTypeAction(string typeText); + public static ComputerCallAction CreateWaitAction(); + public static explicit operator ComputerCallAction(ClientResult result); + public static implicit operator BinaryContent(ComputerCallAction computerCallAction); + } + public enum ComputerCallActionKind { + Click = 0, + DoubleClick = 1, + Drag = 2, + KeyPress = 3, + Move = 4, + Screenshot = 5, + Scroll = 6, + Type = 7, + Wait = 8 + } + public enum ComputerCallActionMouseButton { + Left = 0, + Right = 1, + Wheel = 2, + Back = 3, + Forward = 4 + } + public class ComputerCallOutputResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ComputerCallOutputResponseItem(string callId, IEnumerable acknowledgedSafetyChecks, ComputerOutput output); + public IList AcknowledgedSafetyChecks { get; } + public string CallId { get; set; } + public ComputerOutput Output { get; set; } + public ComputerCallOutputStatus? Status { get; } + public new static explicit operator ComputerCallOutputResponseItem(ClientResult result); + public static implicit operator BinaryContent(ComputerCallOutputResponseItem computerCallOutputResponseItem); + } + public enum ComputerCallOutputStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class ComputerCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ComputerCallResponseItem(string id, string callId, ComputerCallAction action, IEnumerable pendingSafetyChecks); + public ComputerCallAction Action { get; set; } + public string CallId { get; set; } + public IList PendingSafetyChecks { get; } + public ComputerCallStatus Status { get; } + public new static explicit operator ComputerCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(ComputerCallResponseItem computerCallResponseItem); + } + public class ComputerCallSafetyCheck : IJsonModel, IPersistableModel { + public ComputerCallSafetyCheck(string id, string code, string message); + public string Code { get; set; } + public string Id { get; set; } + public string Message { get; set; } + public static explicit operator ComputerCallSafetyCheck(ClientResult result); + public static implicit operator BinaryContent(ComputerCallSafetyCheck computerCallSafetyCheck); + } + public enum ComputerCallStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class ComputerOutput : IJsonModel, IPersistableModel { + public static ComputerOutput CreateScreenshotOutput(BinaryData screenshotImageBytes, string screenshotImageBytesMediaType); + public static ComputerOutput CreateScreenshotOutput(string screenshotImageFileId); + public static ComputerOutput CreateScreenshotOutput(Uri screenshotImageUri); + public static explicit operator ComputerOutput(ClientResult result); + public static implicit operator BinaryContent(ComputerOutput computerOutput); + } + public readonly partial struct ComputerToolEnvironment : IEquatable { + public ComputerToolEnvironment(string value); + public static ComputerToolEnvironment Browser { get; } + public static ComputerToolEnvironment Mac { get; } + public static ComputerToolEnvironment Ubuntu { get; } + public static ComputerToolEnvironment Windows { get; } + public readonly bool Equals(ComputerToolEnvironment other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ComputerToolEnvironment left, ComputerToolEnvironment right); + public static implicit operator ComputerToolEnvironment(string value); + public static bool operator !=(ComputerToolEnvironment left, ComputerToolEnvironment right); + public override readonly string ToString(); + } + public class FileSearchCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public FileSearchCallResponseItem(string id, IEnumerable queries, IEnumerable results); + public IList Queries { get; } + public IList Results { get; set; } + public FileSearchCallStatus Status { get; } + public new static explicit operator FileSearchCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(FileSearchCallResponseItem fileSearchCallResponseItem); + } + public class FileSearchCallResult : IJsonModel, IPersistableModel { + public IDictionary Attributes { get; } + public string FileId { get; set; } + public string Filename { get; set; } + public float? Score { get; set; } + public string Text { get; set; } + public static explicit operator FileSearchCallResult(ClientResult result); + public static implicit operator BinaryContent(FileSearchCallResult fileSearchCallResult); + } + public enum FileSearchCallStatus { + InProgress = 0, + Searching = 1, + Completed = 2, + Incomplete = 3, + Failed = 4 + } + public readonly partial struct FileSearchToolRanker : IEquatable { + public FileSearchToolRanker(string value); + public static FileSearchToolRanker Auto { get; } + public static FileSearchToolRanker Default20241115 { get; } + public readonly bool Equals(FileSearchToolRanker other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(FileSearchToolRanker left, FileSearchToolRanker right); + public static implicit operator FileSearchToolRanker(string value); + public static bool operator !=(FileSearchToolRanker left, FileSearchToolRanker right); + public override readonly string ToString(); + } + public class FileSearchToolRankingOptions : IJsonModel, IPersistableModel { + public FileSearchToolRanker? Ranker { get; set; } + public float? ScoreThreshold { get; set; } + public static explicit operator FileSearchToolRankingOptions(ClientResult result); + public static implicit operator BinaryContent(FileSearchToolRankingOptions fileSearchToolRankingOptions); + } + public class FunctionCallOutputResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public FunctionCallOutputResponseItem(string callId, string functionOutput); + public string CallId { get; set; } + public string FunctionOutput { get; set; } + public FunctionCallOutputStatus? Status { get; } + public new static explicit operator FunctionCallOutputResponseItem(ClientResult result); + public static implicit operator BinaryContent(FunctionCallOutputResponseItem functionCallOutputResponseItem); + } + public enum FunctionCallOutputStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class FunctionCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public FunctionCallResponseItem(string id, string callId, string functionName, BinaryData functionArguments); + public string CallId { get; set; } + public BinaryData FunctionArguments { get; set; } + public string FunctionName { get; set; } + public FunctionCallStatus? Status { get; } + public new static explicit operator FunctionCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(FunctionCallResponseItem functionCallResponseItem); + } + public enum FunctionCallStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class MessageResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public MessageResponseItem(MessageRole role); + public IList Content { get; } + public MessageRole Role { get; } + public MessageStatus? Status { get; } + public new static explicit operator MessageResponseItem(ClientResult result); + public static implicit operator BinaryContent(MessageResponseItem messageResponseItem); + } + public readonly partial struct MessageRole : IEquatable { + public MessageRole(string value); + public static MessageRole Assistant { get; } + public static MessageRole Developer { get; } + public static MessageRole System { get; } + public static MessageRole User { get; } + public readonly bool Equals(MessageRole other); + [EditorBrowsable(global::EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(global::EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(MessageRole left, MessageRole right); + public static implicit operator MessageRole(string value); + public static bool operator !=(MessageRole left, MessageRole right); + public override readonly string ToString(); + } + public enum MessageStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class OpenAIResponse : IJsonModel, IPersistableModel { + public bool AllowParallelToolCalls { get; } + public DateTimeOffset CreatedAt { get; } + public string EndUserId { get; } + public ResponseError Error { get; } + public string Id { get; } + public ResponseIncompleteStatusDetails IncompleteStatusDetails { get; } + public string Instructions { get; } + public int? MaxOutputTokenCount { get; } + public IDictionary Metadata { get; } + public string Model { get; } + public IList OutputItems { get; } + public string PreviousResponseId { get; } + public ResponseReasoningOptions ReasoningOptions { get; } + public ResponseStatus? Status { get; } + public float Temperature { get; } + public ResponseTextOptions TextOptions { get; } + public BinaryData ToolChoice { get; } + public IList Tools { get; } + public float TopP { get; } + public ResponseTruncationMode? TruncationMode { get; } + public ResponseTokenUsage Usage { get; } + public static explicit operator OpenAIResponse(ClientResult result); + public static implicit operator BinaryContent(OpenAIResponse openAIResponse); + } + public class OpenAIResponseClient { + protected OpenAIResponseClient(); + protected internal OpenAIResponseClient(ClientPipeline pipeline, string model, OpenAIClientOptions options); + public OpenAIResponseClient(string model, ApiKeyCredential credential, OpenAIClientOptions options); + public OpenAIResponseClient(string model, ApiKeyCredential credential); + public OpenAIResponseClient(string model, string apiKey); + public ClientPipeline Pipeline { get; } + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult CreateResponse(BinaryContent content, RequestOptions options = null); + public virtual ClientResult CreateResponse(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual ClientResult CreateResponse(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual Task CreateResponseAsync(BinaryContent content, RequestOptions options = null); + public virtual Task> CreateResponseAsync(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual Task> CreateResponseAsync(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual CollectionResult CreateResponseStreaming(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual CollectionResult CreateResponseStreaming(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual AsyncCollectionResult CreateResponseStreamingAsync(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual AsyncCollectionResult CreateResponseStreamingAsync(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult DeleteResponse(string responseId, RequestOptions options); + public virtual ClientResult DeleteResponse(string responseId, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual Task DeleteResponseAsync(string responseId, RequestOptions options); + public virtual Task> DeleteResponseAsync(string responseId, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult GetResponse(string responseId, RequestOptions options); + public virtual ClientResult GetResponse(string responseId, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual Task GetResponseAsync(string responseId, RequestOptions options); + public virtual Task> GetResponseAsync(string responseId, CancellationToken cancellationToken = default); + public virtual CollectionResult GetResponseInputItems(string responseId, ResponseItemCollectionOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual CollectionResult GetResponseInputItems(string responseId, int? limit, string order, string after, string before, RequestOptions options = null); + public virtual AsyncCollectionResult GetResponseInputItemsAsync(string responseId, ResponseItemCollectionOptions options = null, CancellationToken cancellationToken = default); + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual AsyncCollectionResult GetResponseInputItemsAsync(string responseId, int? limit, string order, string after, string before, RequestOptions options = null); + } + public class ReasoningResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ReasoningResponseItem(string id, IEnumerable summaryTextParts); + public ReasoningStatus? Status { get; } + public IReadOnlyList SummaryTextParts { get; } + public new static explicit operator ReasoningResponseItem(ClientResult result); + public static implicit operator BinaryContent(ReasoningResponseItem reasoningResponseItem); + } + public enum ReasoningStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2 + } + public class ReferenceResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public ReferenceResponseItem(string id); + public new static explicit operator ReferenceResponseItem(ClientResult result); + public static implicit operator BinaryContent(ReferenceResponseItem referenceResponseItem); + } + public class ResponseContentPart : IJsonModel, IPersistableModel { + public BinaryData InputFileBytes { get; } + public string InputFileId { get; } + public string InputFilename { get; } + public ResponseImageDetailLevel? InputImageDetailLevel { get; } + public string InputImageFileId { get; } + public ResponseContentPartKind Kind { get; } + public IReadOnlyList OutputTextAnnotations { get; } + public string Refusal { get; } + public string Text { get; } + public static ResponseContentPart CreateInputFilePart(string fileId, string filename, BinaryData fileBytes); + public static ResponseContentPart CreateInputImagePart(BinaryData imageBytes, string imageBytesMediaType, ResponseImageDetailLevel? imageDetailLevel = null); + public static ResponseContentPart CreateInputImagePart(string imageFileId, ResponseImageDetailLevel? imageDetailLevel = null); + public static ResponseContentPart CreateInputImagePart(Uri imageUri, ResponseImageDetailLevel? imageDetailLevel = null); + public static ResponseContentPart CreateInputTextPart(string text); + public static ResponseContentPart CreateOutputTextPart(string text, IEnumerable annotations); + public static ResponseContentPart CreateRefusalPart(string refusal); + public static explicit operator ResponseContentPart(ClientResult result); + public static implicit operator BinaryContent(ResponseContentPart responseContentPart); + } + public enum ResponseContentPartKind { + InputText = 0, + InputImage = 1, + InputFile = 2, + OutputText = 3, + Refusal = 4 + } + public class ResponseCreationOptions : IJsonModel, IPersistableModel { + public bool? AllowParallelToolCalls { get; set; } + public string EndUserId { get; set; } + public string Instructions { get; set; } + public int? MaxOutputTokenCount { get; set; } + public IDictionary Metadata { get; } + public string PreviousResponseId { get; set; } + public ResponseReasoningOptions ReasoningOptions { get; set; } + public bool? StoredOutputEnabled { get; set; } + public float? Temperature { get; set; } + public ResponseTextOptions TextOptions { get; set; } + public BinaryData ToolChoice { get; set; } + public IList Tools { get; set; } + public float? TopP { get; set; } + public ResponseTruncationMode? TruncationMode { get; set; } + public static explicit operator ResponseCreationOptions(ClientResult result); + public static implicit operator BinaryContent(ResponseCreationOptions responseCreationOptions); + } + public class ResponseDeletionResult : IJsonModel, IPersistableModel { + public bool Deleted { get; } + public string Id { get; } + public static explicit operator ResponseDeletionResult(ClientResult result); + public static implicit operator BinaryContent(ResponseDeletionResult responseDeletionResult); + } + public class ResponseError : IJsonModel, IPersistableModel { + public string Code { get; } + public string Message { get; } + public static explicit operator ResponseError(ClientResult result); + public static implicit operator BinaryContent(ResponseError responseError); + } + public readonly partial struct ResponseImageDetailLevel : IEquatable { + public ResponseImageDetailLevel(string value); + public static ResponseImageDetailLevel Auto { get; } + public static ResponseImageDetailLevel High { get; } + public static ResponseImageDetailLevel Low { get; } + public readonly bool Equals(ResponseImageDetailLevel other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseImageDetailLevel left, ResponseImageDetailLevel right); + public static implicit operator ResponseImageDetailLevel(string value); + public static bool operator !=(ResponseImageDetailLevel left, ResponseImageDetailLevel right); + public override readonly string ToString(); + } + public class ResponseIncompleteStatusDetails : IJsonModel, IPersistableModel { + public ResponseIncompleteStatusReason? Reason { get; } + public static explicit operator ResponseIncompleteStatusDetails(ClientResult result); + public static implicit operator BinaryContent(ResponseIncompleteStatusDetails responseIncompleteStatusDetails); + } + public readonly partial struct ResponseIncompleteStatusReason : IEquatable { + public ResponseIncompleteStatusReason(string value); + public static ResponseIncompleteStatusReason ContentFilter { get; } + public static ResponseIncompleteStatusReason MaxOutputTokens { get; } + public readonly bool Equals(ResponseIncompleteStatusReason other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseIncompleteStatusReason left, ResponseIncompleteStatusReason right); + public static implicit operator ResponseIncompleteStatusReason(string value); + public static bool operator !=(ResponseIncompleteStatusReason left, ResponseIncompleteStatusReason right); + public override readonly string ToString(); + } + public class ResponseItem : IJsonModel, IPersistableModel { + public string Id { get; } + public static MessageResponseItem CreateAssistantMessageItem(string id, string content); + public static ResponseItem CreateComputerCallItem(string id, string callId, ComputerCallAction action, IEnumerable pendingSafetyChecks); + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, BinaryData screenshotImageBytes, string screenshotImageBytesMediaType); + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, string screenshotImageFileId); + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, Uri screenshotImageUri); + public static MessageResponseItem CreateDeveloperMessageItem(string content); + public static FileSearchCallResponseItem CreateFileSearchCallResponseItem(string id, IEnumerable queries, IEnumerable results); + public static FunctionCallResponseItem CreateFunctionCall(string id, string callId, string functionName, BinaryData functionArguments); + public static FunctionCallOutputResponseItem CreateFunctionCallOutputItem(string callId, string functionOutput); + public static ReasoningResponseItem CreateReasoningItem(string id, IEnumerable summaryTextParts); + public static ReferenceResponseItem CreateReferenceItem(string id); + public static MessageResponseItem CreateSystemMessageItem(string content); + public static MessageResponseItem CreateUserMessageItem(IEnumerable contentParts); + public static MessageResponseItem CreateUserMessageItem(string content); + public static WebSearchCallResponseItem CreateWebSearchCallItem(string id); + public static explicit operator ResponseItem(ClientResult result); + public static implicit operator BinaryContent(ResponseItem responseItem); + } + public class ResponseItemCollectionOptions { + public string AfterId { get; set; } + public string BeforeId { get; set; } + public ResponseItemCollectionOrder? Order { get; set; } + public int? PageSizeLimit { get; set; } + } + public readonly partial struct ResponseItemCollectionOrder : IEquatable { + public ResponseItemCollectionOrder(string value); + public static ResponseItemCollectionOrder Ascending { get; } + public static ResponseItemCollectionOrder Descending { get; } + public readonly bool Equals(ResponseItemCollectionOrder other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseItemCollectionOrder left, ResponseItemCollectionOrder right); + public static implicit operator ResponseItemCollectionOrder(string value); + public static bool operator !=(ResponseItemCollectionOrder left, ResponseItemCollectionOrder right); + public override readonly string ToString(); + } + public class ResponseMessageAnnotation : IJsonModel, IPersistableModel { + public string FileCitationFileId { get; } + public int? FileCitationIndex { get; } + public string FilePathFileId { get; } + public int? FilePathIndex { get; } + public ResponseMessageAnnotationKind Kind { get; } + public int? UriCitationEndIndex { get; } + public int? UriCitationStartIndex { get; } + public string UriCitationTitle { get; } + public string UriCitationUri { get; } + public static explicit operator ResponseMessageAnnotation(ClientResult result); + public static implicit operator BinaryContent(ResponseMessageAnnotation responseMessageAnnotation); + } + public enum ResponseMessageAnnotationKind { + FileCitation = 0, + UriCitation = 1, + FilePath = 2 + } + public class ResponseOutputTokenUsageDetails : IJsonModel, IPersistableModel { + public int ReasoningTokenCount { get; } + public static explicit operator ResponseOutputTokenUsageDetails(ClientResult result); + public static implicit operator BinaryContent(ResponseOutputTokenUsageDetails responseOutputTokenUsageDetails); + } + public readonly partial struct ResponseReasoningEffortLevel : IEquatable { + public ResponseReasoningEffortLevel(string value); + public static ResponseReasoningEffortLevel High { get; } + public static ResponseReasoningEffortLevel Low { get; } + public static ResponseReasoningEffortLevel Medium { get; } + public readonly bool Equals(ResponseReasoningEffortLevel other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseReasoningEffortLevel left, ResponseReasoningEffortLevel right); + public static implicit operator ResponseReasoningEffortLevel(string value); + public static bool operator !=(ResponseReasoningEffortLevel left, ResponseReasoningEffortLevel right); + public override readonly string ToString(); + } + public class ResponseReasoningOptions : IJsonModel, IPersistableModel { + public ResponseReasoningOptions(); + public ResponseReasoningOptions(ResponseReasoningEffortLevel? reasoningEffortLevel); + public ResponseReasoningEffortLevel? ReasoningEffortLevel { get; set; } + public ResponseReasoningSummaryVerbosity? ReasoningSummaryVerbosity { get; set; } + public static explicit operator ResponseReasoningOptions(ClientResult result); + public static implicit operator BinaryContent(ResponseReasoningOptions responseReasoningOptions); + } + public readonly partial struct ResponseReasoningSummaryVerbosity : IEquatable { + public ResponseReasoningSummaryVerbosity(string value); + public static ResponseReasoningSummaryVerbosity Concise { get; } + public static ResponseReasoningSummaryVerbosity Detailed { get; } + public readonly bool Equals(ResponseReasoningSummaryVerbosity other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseReasoningSummaryVerbosity left, ResponseReasoningSummaryVerbosity right); + public static implicit operator ResponseReasoningSummaryVerbosity(string value); + public static bool operator !=(ResponseReasoningSummaryVerbosity left, ResponseReasoningSummaryVerbosity right); + public override readonly string ToString(); + } + public enum ResponseStatus { + InProgress = 0, + Completed = 1, + Incomplete = 2, + Failed = 3 + } + public class ResponseTextFormat : IJsonModel, IPersistableModel { + public static ResponseTextFormat CreateJsonObjectFormat(); + public static ResponseTextFormat CreateJsonSchemaFormat(string jsonSchemaFormatName, BinaryData jsonSchema, string jsonSchemaFormatDescription = null, bool? jsonSchemaIsStrict = null); + public static ResponseTextFormat CreateTextFormat(); + public static explicit operator ResponseTextFormat(ClientResult result); + public static implicit operator BinaryContent(ResponseTextFormat responseTextFormat); + } + public class ResponseTextOptions : IJsonModel, IPersistableModel { + public ResponseTextFormat ResponseFormat { get; set; } + public static explicit operator ResponseTextOptions(ClientResult result); + public static implicit operator BinaryContent(ResponseTextOptions responseTextOptions); + } + public class ResponseTokenUsage : IJsonModel, IPersistableModel { + public int InputTokenCount { get; } + public int OutputTokenCount { get; } + public ResponseOutputTokenUsageDetails OutputTokenDetails { get; } + public int TotalTokenCount { get; } + public static explicit operator ResponseTokenUsage(ClientResult result); + public static implicit operator BinaryContent(ResponseTokenUsage responseTokenUsage); + } + public class ResponseTool : IJsonModel, IPersistableModel { + public static ResponseTool CreateComputerTool(int displayWidth, int displayHeight, ComputerToolEnvironment environment); + public static ResponseTool CreateFileSearchTool(IEnumerable vectorStoreIds, int? maxResultCount = null, FileSearchToolRankingOptions rankingOptions = null, BinaryData filters = null); + public static ResponseTool CreateFunctionTool(string functionName, string functionDescription, BinaryData functionParameters, bool functionSchemaIsStrict = false); + public static ResponseTool CreateWebSearchTool(WebSearchToolLocation webSearchToolUserLocation = null, WebSearchToolContextSize? webSearchToolContextSize = null); + public static explicit operator ResponseTool(ClientResult result); + public static implicit operator BinaryContent(ResponseTool responseTool); + } + public readonly partial struct ResponseTruncationMode : IEquatable { + public ResponseTruncationMode(string value); + public static ResponseTruncationMode Auto { get; } + public static ResponseTruncationMode Disabled { get; } + public readonly bool Equals(ResponseTruncationMode other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(ResponseTruncationMode left, ResponseTruncationMode right); + public static implicit operator ResponseTruncationMode(string value); + public static bool operator !=(ResponseTruncationMode left, ResponseTruncationMode right); + public override readonly string ToString(); + } + public class StreamingResponseContentPartDeltaUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public int ContentPartIndex { get; } + public string FunctionArguments { get; } + public string ItemId { get; } + public int ItemIndex { get; } + public string Refusal { get; } + public string Text { get; } + } + public class StreamingResponseErrorUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public string Code { get; } + public string Message { get; } + public string Param { get; } + public new static explicit operator StreamingResponseErrorUpdate(ClientResult result); + public static implicit operator BinaryContent(StreamingResponseErrorUpdate streamingResponseErrorUpdate); + } + public class StreamingResponseFileSearchCallUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public string OutputItemId { get; } + public int OutputItemIndex { get; } + } + public class StreamingResponseItemUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public ResponseItem Item { get; } + public int ItemIndex { get; } + } + public class StreamingResponseStatusUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public OpenAIResponse Response { get; } + } + public class StreamingResponseTextAnnotationUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public ResponseMessageAnnotation Annotation { get; } + public int ContentIndex { get; } + public string ItemId { get; } + public int OutputIndex { get; } + public new static explicit operator StreamingResponseTextAnnotationUpdate(ClientResult result); + public static implicit operator BinaryContent(StreamingResponseTextAnnotationUpdate streamingResponseTextAnnotationUpdate); + } + public class StreamingResponseUpdate : IJsonModel, IPersistableModel { + public StreamingResponseUpdateKind Kind { get; } + public static explicit operator StreamingResponseUpdate(ClientResult result); + public static implicit operator BinaryContent(StreamingResponseUpdate streamingResponseUpdate); + } + public readonly partial struct StreamingResponseUpdateKind : IEquatable { + public StreamingResponseUpdateKind(string value); + public static StreamingResponseUpdateKind Error { get; } + public static StreamingResponseUpdateKind ResponseCompleted { get; } + public static StreamingResponseUpdateKind ResponseContentPartAdded { get; } + public static StreamingResponseUpdateKind ResponseContentPartDone { get; } + public static StreamingResponseUpdateKind ResponseCreated { get; } + public static StreamingResponseUpdateKind ResponseFailed { get; } + public static StreamingResponseUpdateKind ResponseFileSearchCallCompleted { get; } + public static StreamingResponseUpdateKind ResponseFileSearchCallInProgress { get; } + public static StreamingResponseUpdateKind ResponseFileSearchCallSearching { get; } + public static StreamingResponseUpdateKind ResponseFunctionCallArgumentsDelta { get; } + public static StreamingResponseUpdateKind ResponseFunctionCallArgumentsDone { get; } + public static StreamingResponseUpdateKind ResponseIncomplete { get; } + public static StreamingResponseUpdateKind ResponseInProgress { get; } + public static StreamingResponseUpdateKind ResponseOutputItemAdded { get; } + public static StreamingResponseUpdateKind ResponseOutputItemDone { get; } + public static StreamingResponseUpdateKind ResponseOutputTextAnnotationAdded { get; } + public static StreamingResponseUpdateKind ResponseOutputTextDelta { get; } + public static StreamingResponseUpdateKind ResponseOutputTextDone { get; } + public static StreamingResponseUpdateKind ResponseRefusalDelta { get; } + public static StreamingResponseUpdateKind ResponseRefusalDone { get; } + public static StreamingResponseUpdateKind ResponseWebSearchCallCompleted { get; } + public static StreamingResponseUpdateKind ResponseWebSearchCallInProgress { get; } + public static StreamingResponseUpdateKind ResponseWebSearchCallSearching { get; } + public readonly bool Equals(StreamingResponseUpdateKind other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(StreamingResponseUpdateKind left, StreamingResponseUpdateKind right); + public static implicit operator StreamingResponseUpdateKind(string value); + public static bool operator !=(StreamingResponseUpdateKind left, StreamingResponseUpdateKind right); + public override readonly string ToString(); + } + public class StreamingResponseWebSearchCallUpdate : StreamingResponseUpdate, IJsonModel, IPersistableModel { + public string OutputItemId { get; } + public int OutputItemIndex { get; } + } + public class WebSearchCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { + public WebSearchCallResponseItem(string id); + public WebSearchCallStatus Status { get; } + public new static explicit operator WebSearchCallResponseItem(ClientResult result); + public static implicit operator BinaryContent(WebSearchCallResponseItem webSearchCallResponseItem); + } + public enum WebSearchCallStatus { + InProgress = 0, + Searching = 1, + Completed = 2, + Failed = 3 + } + public readonly partial struct WebSearchToolContextSize : IEquatable { + public WebSearchToolContextSize(string value); + public static WebSearchToolContextSize High { get; } + public static WebSearchToolContextSize Low { get; } + public static WebSearchToolContextSize Medium { get; } + public readonly bool Equals(WebSearchToolContextSize other); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly bool Equals(object obj); + [EditorBrowsable(EditorBrowsableState.Never)] + public override readonly int GetHashCode(); + public static bool operator ==(WebSearchToolContextSize left, WebSearchToolContextSize right); + public static implicit operator WebSearchToolContextSize(string value); + public static bool operator !=(WebSearchToolContextSize left, WebSearchToolContextSize right); + public override readonly string ToString(); + } + public class WebSearchToolLocation : IJsonModel, IPersistableModel { + public static WebSearchToolLocation CreateApproximateLocation(string country = null, string region = null, string city = null, string timezone = null); + public static explicit operator WebSearchToolLocation(ClientResult result); + public static implicit operator BinaryContent(WebSearchToolLocation webSearchToolLocation); + } +} namespace OpenAI.VectorStores { public class AddFileToVectorStoreOperation : OperationResult { public string FileId { get; } @@ -2901,6 +3556,7 @@ public class VectorStoreExpirationPolicy : IJsonModel, IPersistableModel { + public IDictionary Attributes { get; } public FileChunkingStrategy ChunkingStrategy { get; } public DateTimeOffset CreatedAt { get; } public string FileId { get; } diff --git a/examples/Responses/Example01_CuaFlow.cs b/examples/Responses/Example01_CuaFlow.cs new file mode 100644 index 000000000..f3e90da28 --- /dev/null +++ b/examples/Responses/Example01_CuaFlow.cs @@ -0,0 +1,45 @@ +using NUnit.Framework; +using OpenAI.Responses; +using System; +using System.ClientModel; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; + +namespace OpenAI.Examples; + +#pragma warning disable OPENAICUA001 + +public partial class ResponsesExamples +{ + [Test] + public async Task Example01_CuaFlow() + { + OpenAIResponseClient client = new( + model: "computer-use-preview", + credential: new ApiKeyCredential(Environment.GetEnvironmentVariable("OPENAI_API_KEY"))); + + OpenAIResponse response = await client.CreateResponseAsync( + [ResponseItem.CreateUserMessageItem("Click on the OK button")], + new ResponseCreationOptions() + { + Tools = { ResponseTool.CreateComputerTool(1024, 768, ComputerToolEnvironment.Windows) }, + }); + + if (response.OutputItems.FirstOrDefault() is ComputerCallResponseItem computerCall) + { + if (computerCall.Action.Kind == ComputerCallActionKind.Screenshot) + { + Uri screenshotLink = new("https://uxmovement.com/wp-content/uploads/2011/05/left-to-right-mapping.png"); + + response = await client.CreateResponseAsync( + [ResponseItem.CreateComputerCallOutputItem(computerCall.Id, [], screenshotLink)]); + } + else if (computerCall.Action.Kind == ComputerCallActionKind.Click) + { + Console.WriteLine($"Instruction from model: click"); + } + } + } +} diff --git a/src/Custom/Administration/Internal/GeneratorStubs.cs b/src/Custom/Administration/Internal/GeneratorStubs.cs index 7ed945616..3227e60df 100644 --- a/src/Custom/Administration/Internal/GeneratorStubs.cs +++ b/src/Custom/Administration/Internal/GeneratorStubs.cs @@ -1,36 +1,36 @@ namespace OpenAI.Administration; -[CodeGenModel("AuditLogActorServiceAccount")] internal partial class InternalAuditLogActorServiceAccount { } -[CodeGenModel("AuditLogActorUser")] internal partial class InternalAuditLogActorUser { } -[CodeGenModel("AuditLogActorApiKey")] internal partial class InternalAuditLogActorApiKey { } -[CodeGenModel("AuditLogActorSession")] internal partial class InternalAuditLogActorSession { } -[CodeGenModel("AuditLogActor")] internal partial class InternalAuditLogActor { } -[CodeGenModel("AuditLog")] internal partial class InternalAuditLog { } -[CodeGenModel("ListAuditLogsResponse")] internal partial class InternalListAuditLogsResponse { } -[CodeGenModel("Invite")] internal partial class InternalInvite { } -[CodeGenModel("InviteListResponse")] internal partial class InternalInviteListResponse { } -[CodeGenModel("InviteRequest")] internal partial class InternalInviteRequest { } -[CodeGenModel("InviteDeleteResponse")] internal partial class InternalInviteDeleteResponse { } -[CodeGenModel("User")] internal partial class InternalUser { } -[CodeGenModel("UserListResponse")] internal partial class InternalUserListResponse { } -[CodeGenModel("UserRoleUpdateRequest")] internal partial class InternalUserRoleUpdateRequest { } -[CodeGenModel("UserDeleteResponse")] internal partial class InternalUserDeleteResponse { } -[CodeGenModel("Project")] internal partial class InternalProject { } -[CodeGenModel("ProjectListResponse")] internal partial class InternalProjectListResponse { } -[CodeGenModel("ProjectCreateRequest")] internal partial class InternalProjectCreateRequest { } -[CodeGenModel("ProjectUpdateRequest")] internal partial class InternalProjectUpdateRequest { } -[CodeGenModel("DefaultProjectErrorResponse")] internal partial class InternalDefaultProjectErrorResponse { } -[CodeGenModel("ProjectUser")] internal partial class InternalProjectUser { } -[CodeGenModel("ProjectUserListResponse")] internal partial class InternalProjectUserListResponse { } -[CodeGenModel("ProjectUserCreateRequest")] internal partial class InternalProjectUserCreateRequest { } -[CodeGenModel("ProjectUserUpdateRequest")] internal partial class InternalProjectUserUpdateRequest { } -[CodeGenModel("ProjectUserDeleteResponse")] internal partial class InternalProjectUserDeleteResponse { } -[CodeGenModel("ProjectServiceAccount")] internal partial class InternalProjectServiceAccount { } -[CodeGenModel("ProjectServiceAccountListResponse")] internal partial class InternalProjectServiceAccountListResponse { } -[CodeGenModel("ProjectServiceAccountCreateRequest")] internal partial class InternalProjectServiceAccountCreateRequest { } -[CodeGenModel("ProjectServiceAccountCreateResponse")] internal partial class InternalProjectServiceAccountCreateResponse { } -[CodeGenModel("ProjectServiceAccountApiKey")] internal partial class InternalProjectServiceAccountApiKey { } -[CodeGenModel("ProjectServiceAccountDeleteResponse")] internal partial class InternalProjectServiceAccountDeleteResponse { } -[CodeGenModel("ProjectApiKey")] internal partial class InternalProjectApiKey { } -[CodeGenModel("ProjectApiKeyListResponse")] internal partial class InternalProjectApiKeyListResponse { } -[CodeGenModel("ProjectApiKeyDeleteResponse")] internal partial class InternalProjectApiKeyDeleteResponse { } +[CodeGenType("AuditLogActorServiceAccount")] internal partial class InternalAuditLogActorServiceAccount { } +[CodeGenType("AuditLogActorUser")] internal partial class InternalAuditLogActorUser { } +[CodeGenType("AuditLogActorApiKey")] internal partial class InternalAuditLogActorApiKey { } +[CodeGenType("AuditLogActorSession")] internal partial class InternalAuditLogActorSession { } +[CodeGenType("AuditLogActor")] internal partial class InternalAuditLogActor { } +[CodeGenType("AuditLog")] internal partial class InternalAuditLog { } +[CodeGenType("ListAuditLogsResponse")] internal partial class InternalListAuditLogsResponse { } +[CodeGenType("Invite")] internal partial class InternalInvite { } +[CodeGenType("InviteListResponse")] internal partial class InternalInviteListResponse { } +[CodeGenType("InviteRequest")] internal partial class InternalInviteRequest { } +[CodeGenType("InviteDeleteResponse")] internal partial class InternalInviteDeleteResponse { } +[CodeGenType("User")] internal partial class InternalUser { } +[CodeGenType("UserListResponse")] internal partial class InternalUserListResponse { } +[CodeGenType("UserRoleUpdateRequest")] internal partial class InternalUserRoleUpdateRequest { } +[CodeGenType("UserDeleteResponse")] internal partial class InternalUserDeleteResponse { } +[CodeGenType("Project")] internal partial class InternalProject { } +[CodeGenType("ProjectListResponse")] internal partial class InternalProjectListResponse { } +[CodeGenType("ProjectCreateRequest")] internal partial class InternalProjectCreateRequest { } +[CodeGenType("ProjectUpdateRequest")] internal partial class InternalProjectUpdateRequest { } +[CodeGenType("DefaultProjectErrorResponse")] internal partial class InternalDefaultProjectErrorResponse { } +[CodeGenType("ProjectUser")] internal partial class InternalProjectUser { } +[CodeGenType("ProjectUserListResponse")] internal partial class InternalProjectUserListResponse { } +[CodeGenType("ProjectUserCreateRequest")] internal partial class InternalProjectUserCreateRequest { } +[CodeGenType("ProjectUserUpdateRequest")] internal partial class InternalProjectUserUpdateRequest { } +[CodeGenType("ProjectUserDeleteResponse")] internal partial class InternalProjectUserDeleteResponse { } +[CodeGenType("ProjectServiceAccount")] internal partial class InternalProjectServiceAccount { } +[CodeGenType("ProjectServiceAccountListResponse")] internal partial class InternalProjectServiceAccountListResponse { } +[CodeGenType("ProjectServiceAccountCreateRequest")] internal partial class InternalProjectServiceAccountCreateRequest { } +[CodeGenType("ProjectServiceAccountCreateResponse")] internal partial class InternalProjectServiceAccountCreateResponse { } +[CodeGenType("ProjectServiceAccountApiKey")] internal partial class InternalProjectServiceAccountApiKey { } +[CodeGenType("ProjectServiceAccountDeleteResponse")] internal partial class InternalProjectServiceAccountDeleteResponse { } +[CodeGenType("ProjectApiKey")] internal partial class InternalProjectApiKey { } +[CodeGenType("ProjectApiKeyListResponse")] internal partial class InternalProjectApiKeyListResponse { } +[CodeGenType("ProjectApiKeyDeleteResponse")] internal partial class InternalProjectApiKeyDeleteResponse { } diff --git a/src/Custom/Assistants/Assistant.cs b/src/Custom/Assistants/Assistant.cs index db714f552..ba12c4a82 100644 --- a/src/Custom/Assistants/Assistant.cs +++ b/src/Custom/Assistants/Assistant.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantObject")] +[CodeGenType("AssistantObject")] public partial class Assistant { // CUSTOM: Made internal. diff --git a/src/Custom/Assistants/AssistantClient.cs b/src/Custom/Assistants/AssistantClient.cs index 408bcb7e0..4aee9923d 100644 --- a/src/Custom/Assistants/AssistantClient.cs +++ b/src/Custom/Assistants/AssistantClient.cs @@ -12,8 +12,8 @@ namespace OpenAI.Assistants; /// The service client for OpenAI assistants operations. [Experimental("OPENAI001")] -[CodeGenClient("Assistants")] -[CodeGenSuppress("AssistantClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Assistants")] +[CodeGenSuppress("AssistantClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateAssistantAsync", typeof(AssistantCreationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateAssistant", typeof(AssistantCreationOptions), typeof(CancellationToken))] [CodeGenSuppress("GetAssistantAsync", typeof(string))] @@ -22,8 +22,8 @@ namespace OpenAI.Assistants; [CodeGenSuppress("ModifyAssistant", typeof(string), typeof(AssistantModificationOptions))] [CodeGenSuppress("DeleteAssistantAsync", typeof(string))] [CodeGenSuppress("DeleteAssistant", typeof(string))] -[CodeGenSuppress("ListAssistantsAsync", typeof(int?), typeof(AssistantCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] -[CodeGenSuppress("ListAssistants", typeof(int?), typeof(AssistantCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("ListAssistantsAsync", typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("ListAssistants", typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] public partial class AssistantClient { private readonly InternalAssistantMessageClient _messageSubClient; @@ -725,11 +725,10 @@ public virtual AsyncCollectionResult CreateRunStreamingAsync( options.AssistantId = assistantId; options.Stream = true; - async Task sendRequestAsync() => - await CreateRunAsync(threadId, options, cancellationToken.ToRequestOptions(streaming: true)) - .ConfigureAwait(false); - - return new AsyncStreamingUpdateCollection(sendRequestAsync, cancellationToken); + return new AsyncSseUpdateCollection( + async () => await CreateRunAsync(threadId, options, cancellationToken.ToRequestOptions(streaming: true)).ConfigureAwait(false), + StreamingUpdate.FromSseItem, + cancellationToken); } /// @@ -753,8 +752,10 @@ public virtual CollectionResult CreateRunStreaming( options.AssistantId = assistantId; options.Stream = true; - ClientResult sendRequest() => CreateRun(threadId, options, cancellationToken.ToRequestOptions(streaming: true)); - return new StreamingUpdateCollection(sendRequest, cancellationToken); + return new SseUpdateCollection( + () => CreateRun(threadId, options, cancellationToken.ToRequestOptions(streaming: true)), + StreamingUpdate.FromSseItem, + cancellationToken); } /// @@ -818,11 +819,10 @@ public virtual AsyncCollectionResult CreateThreadAndRunStreamin runOptions.Stream = true; BinaryContent protocolContent = CreateThreadAndRunProtocolContent(assistantId, threadOptions, runOptions); - async Task sendRequestAsync() => - await CreateThreadAndRunAsync(protocolContent, cancellationToken.ToRequestOptions(streaming: true)) - .ConfigureAwait(false); - - return new AsyncStreamingUpdateCollection(sendRequestAsync, cancellationToken); + return new AsyncSseUpdateCollection( + async () => await CreateThreadAndRunAsync(protocolContent, cancellationToken.ToRequestOptions(streaming: true)).ConfigureAwait(false), + StreamingUpdate.FromSseItem, + cancellationToken); } /// @@ -844,8 +844,10 @@ public virtual CollectionResult CreateThreadAndRunStreaming( runOptions.Stream = true; BinaryContent protocolContent = CreateThreadAndRunProtocolContent(assistantId, threadOptions, runOptions); - ClientResult sendRequest() => CreateThreadAndRun(protocolContent, cancellationToken.ToRequestOptions(streaming: true)); - return new StreamingUpdateCollection(sendRequest, cancellationToken); + return new SseUpdateCollection( + () => CreateThreadAndRun(protocolContent, cancellationToken.ToRequestOptions(streaming: true)), + StreamingUpdate.FromSseItem, + cancellationToken); } /// @@ -1043,11 +1045,10 @@ public virtual AsyncCollectionResult SubmitToolOutputsToRunStre BinaryContent content = new InternalSubmitToolOutputsRunRequest(toolOutputs.ToList(), stream: true, null); - async Task sendRequestAsync() => - await SubmitToolOutputsToRunAsync(threadId, runId, content, cancellationToken.ToRequestOptions(streaming: true)) - .ConfigureAwait(false); - - return new AsyncStreamingUpdateCollection(sendRequestAsync, cancellationToken); + return new AsyncSseUpdateCollection( + async () => await SubmitToolOutputsToRunAsync(threadId, runId, content, cancellationToken.ToRequestOptions(streaming: true)).ConfigureAwait(false), + StreamingUpdate.FromSseItem, + cancellationToken); } /// @@ -1070,8 +1071,10 @@ public virtual CollectionResult SubmitToolOutputsToRunStreaming BinaryContent content = new InternalSubmitToolOutputsRunRequest(toolOutputs.ToList(), stream: true, null); - ClientResult sendRequest() => SubmitToolOutputsToRun(threadId, runId, content, cancellationToken.ToRequestOptions(streaming: true)); - return new StreamingUpdateCollection(sendRequest, cancellationToken); + return new SseUpdateCollection( + () => SubmitToolOutputsToRun(threadId, runId, content, cancellationToken.ToRequestOptions(streaming: true)), + StreamingUpdate.FromSseItem, + cancellationToken); } /// diff --git a/src/Custom/Assistants/AssistantCollectionOrder.cs b/src/Custom/Assistants/AssistantCollectionOrder.cs index 275d5d98d..a72909fac 100644 --- a/src/Custom/Assistants/AssistantCollectionOrder.cs +++ b/src/Custom/Assistants/AssistantCollectionOrder.cs @@ -1,17 +1,40 @@ -using System.Diagnostics.CodeAnalysis; +using System; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace OpenAI.Assistants; -// CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("ListAssistantsRequestOrder")] -public readonly partial struct AssistantCollectionOrder +public readonly partial struct AssistantCollectionOrder: IEquatable { - // CUSTOM: Renamed. - [CodeGenMember("Asc")] - public static AssistantCollectionOrder Ascending { get; } = new AssistantCollectionOrder(AscValue); + public static AssistantCollectionOrder Ascending { get; } = new AssistantCollectionOrder("asc"); - // CUSTOM: Renamed. - [CodeGenMember("Desc")] - public static AssistantCollectionOrder Descending { get; } = new AssistantCollectionOrder(DescValue); + public static AssistantCollectionOrder Descending { get; } = new AssistantCollectionOrder("desc"); + + private readonly string _value; + private const string AscValue = "asc"; + private const string DescValue = "desc"; + + public AssistantCollectionOrder(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static bool operator ==(AssistantCollectionOrder left, AssistantCollectionOrder right) => left.Equals(right); + + public static bool operator !=(AssistantCollectionOrder left, AssistantCollectionOrder right) => !left.Equals(right); + + public static implicit operator AssistantCollectionOrder(string value) => new AssistantCollectionOrder(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AssistantCollectionOrder other && Equals(other); + + public bool Equals(AssistantCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; } diff --git a/src/Custom/Assistants/AssistantCreationOptions.cs b/src/Custom/Assistants/AssistantCreationOptions.cs index 1072600ce..461044410 100644 --- a/src/Custom/Assistants/AssistantCreationOptions.cs +++ b/src/Custom/Assistants/AssistantCreationOptions.cs @@ -1,3 +1,4 @@ +using OpenAI.Chat; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; @@ -7,7 +8,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when creating a new . /// [Experimental("OPENAI001")] -[CodeGenModel("CreateAssistantRequest")] +[CodeGenType("CreateAssistantRequest")] [CodeGenSuppress(nameof(AssistantCreationOptions), typeof(string))] public partial class AssistantCreationOptions { @@ -39,11 +40,9 @@ public partial class AssistantCreationOptions [CodeGenMember("TopP")] public float? NucleusSamplingFactor { get; set; } - internal AssistantCreationOptions(InternalCreateAssistantRequestModel model) - : this() - { - Model = model.ToString(); - } + // CUSTOM: Made internal. + [CodeGenMember("ReasoningEffort")] + internal ChatReasoningEffortLevel? ReasoningEffortLevel { get; set; } /// /// Creates a new instance of . diff --git a/src/Custom/Assistants/AssistantDeletionResult.cs b/src/Custom/Assistants/AssistantDeletionResult.cs index 2dd2e16e6..cdec0e457 100644 --- a/src/Custom/Assistants/AssistantDeletionResult.cs +++ b/src/Custom/Assistants/AssistantDeletionResult.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("DeleteAssistantResponse")] +[CodeGenType("DeleteAssistantResponse")] public partial class AssistantDeletionResult { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/AssistantModificationOptions.cs b/src/Custom/Assistants/AssistantModificationOptions.cs index 295559878..2d69ce463 100644 --- a/src/Custom/Assistants/AssistantModificationOptions.cs +++ b/src/Custom/Assistants/AssistantModificationOptions.cs @@ -1,3 +1,4 @@ +using OpenAI.Chat; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; @@ -7,7 +8,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when modifying an existing . /// [Experimental("OPENAI001")] -[CodeGenModel("ModifyAssistantRequest")] +[CodeGenType("ModifyAssistantRequest")] public partial class AssistantModificationOptions { /// @@ -42,4 +43,8 @@ public partial class AssistantModificationOptions /// [CodeGenMember("TopP")] public float? NucleusSamplingFactor { get; set; } + + // CUSTOM: Made internal. + [CodeGenMember("ReasoningEffort")] + internal ChatReasoningEffortLevel? ReasoningEffortLevel { get; set; } } diff --git a/src/Custom/Assistants/AssistantResponseFormat.cs b/src/Custom/Assistants/AssistantResponseFormat.cs index 68b9b33dc..c25bf8078 100644 --- a/src/Custom/Assistants/AssistantResponseFormat.cs +++ b/src/Custom/Assistants/AssistantResponseFormat.cs @@ -7,7 +7,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantResponseFormat")] +[CodeGenType("AssistantResponseFormat")] public partial class AssistantResponseFormat : IEquatable, IEquatable { public static AssistantResponseFormat Auto { get; } = CreateAutoFormat(); diff --git a/src/Custom/Assistants/AssistantThread.cs b/src/Custom/Assistants/AssistantThread.cs index ea5e65f72..d1c2b68c1 100644 --- a/src/Custom/Assistants/AssistantThread.cs +++ b/src/Custom/Assistants/AssistantThread.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("ThreadObject")] +[CodeGenType("ThreadObject")] public partial class AssistantThread { // CUSTOM: Made internal. diff --git a/src/Custom/Assistants/CodeInterpreterToolResources.cs b/src/Custom/Assistants/CodeInterpreterToolResources.cs index 5f80800f4..de3ecbe91 100644 --- a/src/Custom/Assistants/CodeInterpreterToolResources.cs +++ b/src/Custom/Assistants/CodeInterpreterToolResources.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; /// The AssistantObjectToolResourcesCodeInterpreter. [Experimental("OPENAI001")] -[CodeGenModel("AssistantObjectToolResourcesCodeInterpreter")] +[CodeGenType("AssistantObjectToolResourcesCodeInterpreter")] public partial class CodeInterpreterToolResources { private ChangeTrackingList _fileIds = new ChangeTrackingList(); diff --git a/src/Custom/Assistants/FileSearchRankingOptions.cs b/src/Custom/Assistants/FileSearchRankingOptions.cs index 210ffe204..8ae085dc2 100644 --- a/src/Custom/Assistants/FileSearchRankingOptions.cs +++ b/src/Custom/Assistants/FileSearchRankingOptions.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("FileSearchRankingOptions")] +[CodeGenType("FileSearchRankingOptions")] [CodeGenSuppress(nameof(FileSearchRankingOptions), typeof(float))] [CodeGenSuppress(nameof(FileSearchRankingOptions), typeof(FileSearchRankingOptions), typeof(float), typeof(IDictionary))] public partial class FileSearchRankingOptions diff --git a/src/Custom/Assistants/FileSearchToolDefinition.cs b/src/Custom/Assistants/FileSearchToolDefinition.cs index 7bde340cf..8d333be3b 100644 --- a/src/Custom/Assistants/FileSearchToolDefinition.cs +++ b/src/Custom/Assistants/FileSearchToolDefinition.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantToolsFileSearch")] +[CodeGenType("AssistantToolsFileSearch")] [CodeGenSuppress(nameof(FileSearchToolDefinition))] public partial class FileSearchToolDefinition : ToolDefinition { diff --git a/src/Custom/Assistants/FileSearchToolResources.cs b/src/Custom/Assistants/FileSearchToolResources.cs index f85e5cf48..af56bbded 100644 --- a/src/Custom/Assistants/FileSearchToolResources.cs +++ b/src/Custom/Assistants/FileSearchToolResources.cs @@ -6,7 +6,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("ToolResourcesFileSearch")] +[CodeGenType("ToolResourcesFileSearch")] [CodeGenSerialization(nameof(NewVectorStores), "vector_stores", SerializationValueHook = nameof(SerializeNewVectorStores))] public partial class FileSearchToolResources { diff --git a/src/Custom/Assistants/FunctionToolDefinition.cs b/src/Custom/Assistants/FunctionToolDefinition.cs index 448cca2c4..2e8c2adfd 100644 --- a/src/Custom/Assistants/FunctionToolDefinition.cs +++ b/src/Custom/Assistants/FunctionToolDefinition.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantToolsFunction")] +[CodeGenType("AssistantToolsFunction")] [CodeGenSuppress(nameof(FunctionToolDefinition), typeof(InternalFunctionDefinition))] public partial class FunctionToolDefinition : ToolDefinition { diff --git a/src/Custom/Assistants/GeneratorStubs.cs b/src/Custom/Assistants/GeneratorStubs.cs index 8afcfeb68..7b01cbb72 100644 --- a/src/Custom/Assistants/GeneratorStubs.cs +++ b/src/Custom/Assistants/GeneratorStubs.cs @@ -7,46 +7,46 @@ namespace OpenAI.Assistants; * that are not otherwise attributed elsewhere. */ [Experimental("OPENAI001")] -[CodeGenModel("AssistantToolsCode")] +[CodeGenType("AssistantToolsCode")] public partial class CodeInterpreterToolDefinition : ToolDefinition { } [Experimental("OPENAI001")] -[CodeGenModel("MessageObjectStatus")] +[CodeGenType("MessageObjectStatus")] public readonly partial struct MessageStatus { } [Experimental("OPENAI001")] -[CodeGenModel("MessageObjectIncompleteDetails")] +[CodeGenType("MessageObjectIncompleteDetails1")] public partial class MessageFailureDetails { } [Experimental("OPENAI001")] -[CodeGenModel("MessageObjectIncompleteDetailsReason")] +[CodeGenType("MessageObjectIncompleteDetailsReason")] public readonly partial struct MessageFailureReason { } [Experimental("OPENAI001")] -[CodeGenModel("RunObjectLastError")] +[CodeGenType("RunObjectLastError1")] public partial class RunError { } [Experimental("OPENAI001")] -[CodeGenModel("RunObjectLastErrorCode")] +[CodeGenType("RunObjectLastErrorCode")] public readonly partial struct RunErrorCode { } [Experimental("OPENAI001")] -[CodeGenModel("RunObjectIncompleteDetails")] +[CodeGenType("RunObjectIncompleteDetails1")] public partial class RunIncompleteDetails { } [Experimental("OPENAI001")] -[CodeGenModel("RunStepObjectStatus")] +[CodeGenType("RunStepObjectStatus")] public readonly partial struct RunStepStatus { } [Experimental("OPENAI001")] -[CodeGenModel("RunStepObjectLastError")] +[CodeGenType("RunStepObjectLastError1")] public partial class RunStepError { } [Experimental("OPENAI001")] -[CodeGenModel("RunStepObjectLastErrorCode")] +[CodeGenType("RunStepObjectLastErrorCode")] public readonly partial struct RunStepErrorCode { } [Experimental("OPENAI001")] -[CodeGenModel("RunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] +[CodeGenType("RunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] public partial class RunStepCodeInterpreterOutput { } diff --git a/src/Custom/Assistants/Internal/GeneratorStubs.Internal.cs b/src/Custom/Assistants/Internal/GeneratorStubs.Internal.cs index 0fc14de68..cb27e0ed7 100644 --- a/src/Custom/Assistants/Internal/GeneratorStubs.Internal.cs +++ b/src/Custom/Assistants/Internal/GeneratorStubs.Internal.cs @@ -4,88 +4,85 @@ namespace OpenAI.Assistants; * This file stubs and performs minimal customization to generated internal types for the OpenAI.Assistants namespace. */ -[CodeGenModel("SubmitToolOutputsRunRequest")] +[CodeGenType("SubmitToolOutputsRunRequest")] internal partial class InternalSubmitToolOutputsRunRequest { } -[CodeGenModel("CreateAssistantRequestModel")] -internal readonly partial struct InternalCreateAssistantRequestModel { } - -[CodeGenModel("MessageContentTextObjectAnnotation")] +[CodeGenType("MessageContentTextObjectAnnotation")] internal partial class InternalMessageContentTextObjectAnnotation { } -[CodeGenModel("MessageContentTextAnnotationsFileCitationObject")] +[CodeGenType("MessageContentTextAnnotationsFileCitationObject")] internal partial class InternalMessageContentTextAnnotationsFileCitationObject { } -[CodeGenModel("MessageContentTextAnnotationsFilePathObject")] +[CodeGenType("MessageContentTextAnnotationsFilePathObject")] internal partial class InternalMessageContentTextAnnotationsFilePathObject { } -[CodeGenModel("MessageDeltaContentImageFileObjectImageFile")] +[CodeGenType("MessageDeltaContentImageFileObjectImageFile")] internal partial class InternalMessageDeltaContentImageFileObjectImageFile { [CodeGenMember("Detail")] internal string Detail { get; set; } } -[CodeGenModel("MessageDeltaContentImageUrlObjectImageUrl")] +[CodeGenType("MessageDeltaContentImageUrlObjectImageUrl")] internal partial class InternalMessageDeltaContentImageUrlObjectImageUrl { [CodeGenMember("Detail")] internal string Detail { get; } } -[CodeGenModel("MessageDeltaContentImageFileObject")] +[CodeGenType("MessageDeltaContentImageFileObject")] internal partial class InternalMessageDeltaContentImageFileObject { } -[CodeGenModel("MessageDeltaContentImageUrlObject")] +[CodeGenType("MessageDeltaContentImageUrlObject")] internal partial class InternalMessageDeltaContentImageUrlObject { } -[CodeGenModel("MessageDeltaObjectDelta")] +[CodeGenType("MessageDeltaObjectDelta")] internal partial class InternalMessageDeltaObjectDelta { [CodeGenMember("Role")] internal MessageRole? Role { get; } } -[CodeGenModel("MessageDeltaContentTextObject")] +[CodeGenType("MessageDeltaContentTextObject")] internal partial class InternalMessageDeltaContentTextObject { } -[CodeGenModel("MessageDeltaContentTextObjectText")] +[CodeGenType("MessageDeltaContentTextObjectText")] internal partial class InternalMessageDeltaContentTextObjectText { } -[CodeGenModel("MessageDeltaContentTextAnnotationsFileCitationObject")] +[CodeGenType("MessageDeltaContentTextAnnotationsFileCitationObject")] internal partial class InternalMessageDeltaContentTextAnnotationsFileCitationObject { } -[CodeGenModel("MessageDeltaTextContentAnnotation")] +[CodeGenType("MessageDeltaTextContentAnnotation")] internal partial class InternalMessageDeltaTextContentAnnotation { } -[CodeGenModel("MessageDeltaContentTextAnnotationsFileCitationObjectFileCitation")] +[CodeGenType("MessageDeltaContentTextAnnotationsFileCitationObjectFileCitation")] internal partial class InternalMessageDeltaContentTextAnnotationsFileCitationObjectFileCitation { } -[CodeGenModel("RunStepDeltaObject")] +[CodeGenType("RunStepDeltaObject")] internal partial class InternalRunStepDelta { private readonly object Object; } -[CodeGenModel("RunStepDeltaObjectDelta")] +[CodeGenType("RunStepDeltaObjectDelta")] internal partial class InternalRunStepDeltaObjectDelta { } -[CodeGenModel("MessageDeltaContentTextAnnotationsFilePathObject")] +[CodeGenType("MessageDeltaContentTextAnnotationsFilePathObject")] internal partial class InternalMessageDeltaContentTextAnnotationsFilePathObject { } -[CodeGenModel("MessageDeltaContentTextAnnotationsFilePathObjectFilePath")] +[CodeGenType("MessageDeltaContentTextAnnotationsFilePathObjectFilePath")] internal partial class InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath { } -[CodeGenModel("MessageDeltaContent")] +[CodeGenType("MessageDeltaContent")] internal partial class InternalMessageDeltaContent { } -[CodeGenModel("DeleteAssistantResponseObject")] +[CodeGenType("DeleteAssistantResponseObject")] internal readonly partial struct InternalDeleteAssistantResponseObject { } -[CodeGenModel("DeleteThreadResponseObject")] +[CodeGenType("DeleteThreadResponseObject")] internal readonly partial struct InternalDeleteThreadResponseObject { } -[CodeGenModel("DeleteMessageResponseObject")] +[CodeGenType("DeleteMessageResponseObject")] internal readonly partial struct InternalDeleteMessageResponseObject { } -[CodeGenModel("CreateThreadAndRunRequest")] +[CodeGenType("CreateThreadAndRunRequest")] internal partial class InternalCreateThreadAndRunRequest { public string Model { get; set; } @@ -94,291 +91,291 @@ internal partial class InternalCreateThreadAndRunRequest public ToolConstraint ToolChoice { get; set; } } -[CodeGenModel("MessageContentImageUrlObjectImageUrl")] +[CodeGenType("MessageContentImageUrlObjectImageUrl")] internal partial class InternalMessageContentImageUrlObjectImageUrl { [CodeGenMember("Detail")] internal string Detail { get; } } -[CodeGenModel("MessageContentImageFileObjectImageFile")] +[CodeGenType("MessageContentImageFileObjectImageFile")] internal partial class InternalMessageContentItemFileObjectImageFile { [CodeGenMember("Detail")] internal string Detail { get; set; } } -[CodeGenModel("MessageContentTextObjectText")] +[CodeGenType("MessageContentTextObjectText")] internal partial class InternalMessageContentTextObjectText { } -[CodeGenModel("MessageContentRefusalObjectType")] +[CodeGenType("MessageContentRefusalObjectType")] internal readonly partial struct InternalMessageContentRefusalObjectType { } -[CodeGenModel("RunStepDetailsMessageCreationObjectMessageCreation")] +[CodeGenType("RunStepDetailsMessageCreationObjectMessageCreation")] internal partial class InternalRunStepDetailsMessageCreationObjectMessageCreation { } -[CodeGenModel("RunStepDetailsToolCallsFunctionObjectFunction")] +[CodeGenType("RunStepDetailsToolCallsFunctionObjectFunction")] internal partial class InternalRunStepDetailsToolCallsFunctionObjectFunction { } -[CodeGenModel("RunStepDetailsToolCallsCodeObjectCodeInterpreter")] +[CodeGenType("RunStepDetailsToolCallsCodeObjectCodeInterpreter")] internal partial class InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter { } -[CodeGenModel("RunStepDetailsToolCallsCodeOutputImageObjectImage")] +[CodeGenType("RunStepDetailsToolCallsCodeOutputImageObjectImage")] internal partial class InternalRunStepDetailsToolCallsCodeOutputImageObjectImage { } -[CodeGenModel("MessageContentTextAnnotationsFileCitationObjectFileCitation")] +[CodeGenType("MessageContentTextAnnotationsFileCitationObjectFileCitation")] internal partial class InternalMessageContentTextAnnotationsFileCitationObjectFileCitation { } -[CodeGenModel("MessageContentTextAnnotationsFilePathObjectFilePath")] +[CodeGenType("MessageContentTextAnnotationsFilePathObjectFilePath")] internal partial class InternalMessageContentTextAnnotationsFilePathObjectFilePath { } -[CodeGenModel("RunObjectRequiredAction")] +[CodeGenType("RunObjectRequiredAction1")] internal partial class InternalRunRequiredAction { private readonly object Type; } -[CodeGenModel("RunObjectRequiredActionSubmitToolOutputs")] +[CodeGenType("RunObjectRequiredActionSubmitToolOutputs")] internal partial class InternalRunObjectRequiredActionSubmitToolOutputs { private readonly object Type; } -[CodeGenModel("RunToolCallObjectFunction")] +[CodeGenType("RunToolCallObjectFunction")] internal partial class InternalRunToolCallObjectFunction { } -[CodeGenModel("ListAssistantsResponse")] +[CodeGenType("ListAssistantsResponse")] internal partial class InternalListAssistantsResponse : IInternalListResponse { } -[CodeGenModel("ListAssistantsResponseObject")] +[CodeGenType("ListAssistantsResponseObject")] internal readonly partial struct InternalListAssistantsResponseObject { } -[CodeGenModel("ListThreadsResponse")] +[CodeGenType("ListThreadsResponse")] internal partial class InternalListThreadsResponse : IInternalListResponse { } -[CodeGenModel("ListThreadsResponseObject")] +[CodeGenType("ListThreadsResponseObject")] internal readonly partial struct InternalListThreadsResponseObject { } -[CodeGenModel("ListMessagesResponse")] +[CodeGenType("ListMessagesResponse")] internal partial class InternalListMessagesResponse : IInternalListResponse { } -[CodeGenModel("ListMessagesResponseObject")] +[CodeGenType("ListMessagesResponseObject")] internal readonly partial struct InternalListMessagesResponseObject { } -[CodeGenModel("ListRunsResponse")] +[CodeGenType("ListRunsResponse")] internal partial class InternalListRunsResponse : IInternalListResponse { } -[CodeGenModel("ListRunsResponseObject")] +[CodeGenType("ListRunsResponseObject")] internal readonly partial struct InternalListRunsResponseObject { } -[CodeGenModel("ListRunStepsResponse")] +[CodeGenType("ListRunStepsResponse")] internal partial class InternalListRunStepsResponse : IInternalListResponse { } -[CodeGenModel("ListRunStepsResponseObject")] +[CodeGenType("ListRunStepsResponseObject")] internal readonly partial struct InternalListRunStepsResponseObject { } -[CodeGenModel("RunStepDetailsToolCallsCodeObject")] +[CodeGenType("RunStepDetailsToolCallsCodeObject")] internal partial class InternalRunStepDetailsToolCallsCodeObject { } -[CodeGenModel("RunStepDetailsToolCallsFileSearchObject")] +[CodeGenType("RunStepDetailsToolCallsFileSearchObject")] internal partial class InternalRunStepDetailsToolCallsFileSearchObject { } -[CodeGenModel("RunStepDetailsToolCallsFunctionObject")] +[CodeGenType("RunStepDetailsToolCallsFunctionObject")] internal partial class InternalRunStepDetailsToolCallsFunctionObject { } -[CodeGenModel("TruncationObjectType")] +[CodeGenType("TruncationObjectType")] internal readonly partial struct InternalTruncationObjectType { } -[CodeGenModel("AssistantsNamedToolChoiceType")] +[CodeGenType("AssistantsNamedToolChoiceType")] internal readonly partial struct InternalAssistantsNamedToolChoiceType { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsCodeObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsCodeObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsCodeObject { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsCodeOutputImageObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsCodeOutputImageObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsCodeOutputLogsObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsCodeOutputLogsObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject { [CodeGenMember("Logs")] public string InternalLogs { get; set; } } -[CodeGenModel("RunStepDeltaStepDetailsMessageCreationObject")] +[CodeGenType("RunStepDeltaStepDetailsMessageCreationObject")] internal partial class InternalRunStepDeltaStepDetailsMessageCreationObject { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsObject { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsFileSearchObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsFileSearchObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsFileSearchObject { [CodeGenMember("FileSearch")] public InternalRunStepDetailsToolCallsFileSearchObjectFileSearch FileSearch { get; set; } } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsFunctionObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsFunctionObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsFunctionObject { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsObjectToolCallsObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsObjectToolCallsObject")] internal partial class InternalRunStepDeltaStepDetailsToolCallsObjectToolCallsObject { } -[CodeGenModel("RunStepDeltaStepDetailsMessageCreationObjectMessageCreation")] +[CodeGenType("RunStepDeltaStepDetailsMessageCreationObjectMessageCreation")] internal partial class InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter")] internal partial class InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage")] internal partial class InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage { } -[CodeGenModel("RunStepDeltaStepDetails")] +[CodeGenType("RunStepDeltaStepDetails")] internal partial class InternalRunStepDeltaStepDetails { } -[CodeGenModel("RunStepDeltaStepDetailsToolCallsFunctionObjectFunction")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsFunctionObjectFunction")] internal partial class InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction { } -[CodeGenModel("AssistantsNamedToolChoiceFunction")] +[CodeGenType("AssistantsNamedToolChoiceFunction")] internal partial class InternalAssistantsNamedToolChoiceFunction { } -[CodeGenModel("AssistantObjectObject")] +[CodeGenType("AssistantObjectObject")] internal readonly partial struct InternalAssistantObjectObject { } -[CodeGenModel("MessageObjectObject")] +[CodeGenType("MessageObjectObject")] internal readonly partial struct InternalMessageObjectObject { } -[CodeGenModel("RunObjectObject")] +[CodeGenType("RunObjectObject")] internal readonly partial struct InternalRunObjectObject { } -[CodeGenModel("RunStepObjectObject")] +[CodeGenType("RunStepObjectObject")] internal readonly partial struct InternalRunStepObjectObject { } -[CodeGenModel("ThreadObjectObject")] +[CodeGenType("ThreadObjectObject")] internal readonly partial struct InternalThreadObjectObject { } -[CodeGenModel("MessageRequestContentTextObjectType")] +[CodeGenType("MessageRequestContentTextObjectType")] internal readonly partial struct InternalMessageRequestContentTextObjectType { } -[CodeGenModel("MessageContentImageUrlObjectImageUrlDetail")] +[CodeGenType("MessageContentImageUrlObjectImageUrlDetail")] internal readonly partial struct InternalMessageContentImageUrlObjectImageUrlDetail { } -[CodeGenModel("MessageContentImageFileObjectImageFileDetail")] +[CodeGenType("MessageContentImageFileObjectImageFileDetail")] internal readonly partial struct InternalMessageContentImageFileObjectImageFileDetail { } -[CodeGenModel("MessageDeltaContentImageFileObjectImageFileDetail")] +[CodeGenType("MessageDeltaContentImageFileObjectImageFileDetail")] internal readonly partial struct InternalMessageDeltaContentImageFileObjectImageFileDetail { } -[CodeGenModel("MessageDeltaContentImageUrlObjectImageUrlDetail")] +[CodeGenType("MessageDeltaContentImageUrlObjectImageUrlDetail")] internal readonly partial struct InternalMessageDeltaContentImageUrlObjectImageUrlDetail { } -[CodeGenModel("MessageDeltaObject")] +[CodeGenType("MessageDeltaObject")] internal partial class InternalMessageDeltaObject { } -[CodeGenModel("MessageDeltaObjectDeltaRole")] +[CodeGenType("MessageDeltaObjectDeltaRole")] internal readonly partial struct InternalMessageDeltaObjectDeltaRole { } -[CodeGenModel("MessageDeltaObjectObject")] +[CodeGenType("MessageDeltaObjectObject")] internal readonly partial struct InternalMessageDeltaObjectObject { } -[CodeGenModel("MessageObjectAttachment")] +[CodeGenType("MessageObjectAttachment")] internal partial class InternalMessageObjectAttachment { } -[CodeGenModel("MessageContentImageFileObjectType")] +[CodeGenType("MessageContentImageFileObjectType")] internal readonly partial struct InternalMessageContentImageFileObjectType { } -[CodeGenModel("MessageContentImageUrlObjectType")] +[CodeGenType("MessageContentImageUrlObjectType")] internal readonly partial struct InternalMessageContentImageUrlObjectType { } -[CodeGenModel("MessageContentTextObjectType")] +[CodeGenType("MessageContentTextObjectType")] internal readonly partial struct InternalMessageContentTextObjectType { } -[CodeGenModel("RunObjectRequiredActionType")] +[CodeGenType("RunObjectRequiredAction1Type")] internal readonly partial struct InternalRunObjectRequiredActionType { } -[CodeGenModel("RunStepDeltaObjectObject")] +[CodeGenType("RunStepDeltaObjectObject")] internal readonly partial struct InternalRunStepDeltaObjectObject { } -[CodeGenModel("RunToolCallObjectType")] +[CodeGenType("RunToolCallObjectType")] internal readonly partial struct InternalRunToolCallObjectType { } -[CodeGenModel("MessageObjectRole")] +[CodeGenType("MessageObjectRole")] internal readonly partial struct InternalMessageObjectRole { } -[CodeGenModel("CreateRunRequestModel")] -internal readonly partial struct InternalCreateRunRequestModel { } - -[CodeGenModel("CreateAssistantRequestToolResources")] +[CodeGenType("CreateAssistantRequestToolResources1")] internal partial class InternalCreateAssistantRequestToolResources { } -[CodeGenModel("CreateAssistantRequestToolResourcesCodeInterpreter")] +[CodeGenType("CreateAssistantRequestToolResourcesCodeInterpreter")] internal partial class InternalCreateAssistantRequestToolResourcesCodeInterpreter { } -[CodeGenModel("CreateThreadAndRunRequestModel")] +[CodeGenType("CreateThreadAndRunRequestModel")] internal readonly partial struct InternalCreateThreadAndRunRequestModel { } -[CodeGenModel("CreateThreadAndRunRequestToolChoice")] +[CodeGenType("CreateThreadAndRunRequestToolChoice1")] internal readonly partial struct InternalCreateThreadAndRunRequestToolChoice { } -[CodeGenModel("CreateThreadAndRunRequestToolResources")] +[CodeGenType("CreateThreadAndRunRequestToolResources1")] internal partial class InternalCreateThreadAndRunRequestToolResources { } -[CodeGenModel("CreateThreadAndRunRequestToolResourcesCodeInterpreter")] +[CodeGenType("CreateThreadAndRunRequestToolResourcesCodeInterpreter")] internal partial class InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter { } -[CodeGenModel("CreateThreadRequestToolResources")] +[CodeGenType("CreateThreadRequestToolResources1")] internal partial class InternalCreateThreadRequestToolResources { } -[CodeGenModel("CreateThreadRequestToolResourcesCodeInterpreter")] +[CodeGenType("CreateThreadRequestToolResourcesCodeInterpreter")] internal partial class InternalCreateThreadRequestToolResourcesCodeInterpreter { } -[CodeGenModel("CreateThreadRequestToolResourcesFileSearchBase")] +[CodeGenType("CreateThreadRequestToolResourcesFileSearchBase")] internal partial class InternalCreateThreadRequestToolResourcesFileSearchBase { } -[CodeGenModel("ModifyAssistantRequestToolResources")] +[CodeGenType("ModifyAssistantRequestToolResources1")] internal partial class InternalModifyAssistantRequestToolResources { } -[CodeGenModel("ModifyAssistantRequestToolResourcesCodeInterpreter")] +[CodeGenType("ModifyAssistantRequestToolResourcesCodeInterpreter")] internal partial class InternalModifyAssistantRequestToolResourcesCodeInterpreter { } -[CodeGenModel("ModifyThreadRequestToolResources")] +[CodeGenType("ModifyThreadRequestToolResources1")] internal partial class InternalModifyThreadRequestToolResources { } -[CodeGenModel("ModifyThreadRequestToolResourcesCodeInterpreter")] +[CodeGenType("ModifyThreadRequestToolResourcesCodeInterpreter")] internal partial class InternalModifyThreadRequestToolResourcesCodeInterpreter { } -[CodeGenModel("ThreadObjectToolResources")] +[CodeGenType("ThreadObjectToolResources1")] internal partial class InternalThreadObjectToolResources { } -[CodeGenModel("ThreadObjectToolResourcesCodeInterpreter")] +[CodeGenType("ThreadObjectToolResourcesCodeInterpreter")] internal partial class InternalThreadObjectToolResourcesCodeInterpreter { } -[CodeGenModel("ThreadObjectToolResourcesFileSearch")] +[CodeGenType("ThreadObjectToolResourcesFileSearch")] internal partial class InternalThreadObjectToolResourcesFileSearch { } -[CodeGenModel("AssistantToolsFileSearchTypeOnly")] +[CodeGenType("AssistantToolsFileSearchTypeOnly")] internal partial class InternalAssistantToolsFileSearchTypeOnly { } -[CodeGenModel("AssistantToolsFileSearchTypeOnlyType")] +[CodeGenType("AssistantToolsFileSearchTypeOnlyType")] internal readonly partial struct InternalAssistantToolsFileSearchTypeOnlyType { } -[CodeGenModel("AssistantResponseFormatText")] +[CodeGenType("AssistantResponseFormatText")] internal partial class InternalAssistantResponseFormatText { } -[CodeGenModel("AssistantResponseFormatJsonObject")] +[CodeGenType("AssistantResponseFormatJsonObject")] internal partial class InternalAssistantResponseFormatJsonObject { } -[CodeGenModel("AssistantResponseFormatJsonSchema")] +[CodeGenType("AssistantResponseFormatJsonSchema")] internal partial class InternalAssistantResponseFormatJsonSchema { } -[CodeGenModel("UnknownAssistantResponseFormat")] +[CodeGenType("UnknownAssistantResponseFormat")] internal partial class InternalUnknownAssistantResponseFormat { } -[CodeGenModel("MessageDeltaContentRefusalObject")] +[CodeGenType("MessageDeltaContentRefusalObject")] internal partial class InternalMessageDeltaContentRefusalObject { } -[CodeGenModel("ToolResourcesFileSearchIdsOnly")] +[CodeGenType("ToolResourcesFileSearchIdsOnly")] internal partial class InternalToolResourcesFileSearchIdsOnly { } -[CodeGenModel("RunStepDetailsToolCallsFileSearchRankingOptionsObject")] +[CodeGenType("RunStepDetailsToolCallsFileSearchRankingOptionsObject")] internal partial class InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject { } -[CodeGenModel("RunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker")] +[CodeGenType("RunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker")] internal readonly partial struct InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker { } -[CodeGenModel("IncludedRunStepProperty")] -internal readonly partial struct InternalIncludedRunStepProperty { } \ No newline at end of file +[CodeGenType("IncludedRunStepProperty")] +internal readonly partial struct InternalIncludedRunStepProperty { } + +[CodeGenType("AssistantSupportedModels")] +internal readonly partial struct InternalAssistantSupportedModels { } diff --git a/src/Custom/Assistants/Internal/InternalAssistantMessageClient.cs b/src/Custom/Assistants/Internal/InternalAssistantMessageClient.cs index 111dcf265..15e8f3eb5 100644 --- a/src/Custom/Assistants/Internal/InternalAssistantMessageClient.cs +++ b/src/Custom/Assistants/Internal/InternalAssistantMessageClient.cs @@ -5,12 +5,12 @@ namespace OpenAI.Assistants; -[CodeGenClient("Messages")] +[CodeGenType("Messages")] [CodeGenSuppress("InternalAssistantMessageClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] [CodeGenSuppress("CreateMessageAsync", typeof(string), typeof(MessageCreationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateMessage", typeof(string), typeof(MessageCreationOptions), typeof(CancellationToken))] -[CodeGenSuppress("ListMessagesAsync", typeof(string), typeof(int?), typeof(MessageCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] -[CodeGenSuppress("ListMessages", typeof(string), typeof(int?), typeof(MessageCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("ListMessagesAsync", typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("ListMessages", typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("GetMessageAsync", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("GetMessage", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("ModifyMessageAsync", typeof(string), typeof(string), typeof(MessageModificationOptions), typeof(CancellationToken))] diff --git a/src/Custom/Assistants/Internal/InternalAssistantRunClient.Protocol.cs b/src/Custom/Assistants/Internal/InternalAssistantRunClient.Protocol.cs index 86e942ae1..342f4fe2b 100644 --- a/src/Custom/Assistants/Internal/InternalAssistantRunClient.Protocol.cs +++ b/src/Custom/Assistants/Internal/InternalAssistantRunClient.Protocol.cs @@ -6,8 +6,12 @@ namespace OpenAI.Assistants; -[CodeGenSuppress("CreateRunAsync", typeof(string), typeof(BinaryContent), typeof(IEnumerable), typeof(RequestOptions))] -[CodeGenSuppress("CreateRun", typeof(string), typeof(BinaryContent), typeof(IEnumerable), typeof(RequestOptions))] +[CodeGenSuppress("CreateRunAsync", typeof(string), typeof(BinaryContent), typeof(string), typeof(IEnumerable), typeof(RequestOptions))] +[CodeGenSuppress("CreateRun", typeof(string), typeof(BinaryContent), typeof(string), typeof(IEnumerable), typeof(RequestOptions))] +[CodeGenSuppress("CreateThreadAndRunAsync", typeof(BinaryContent), typeof(string), typeof(RequestOptions))] +[CodeGenSuppress("CreateThreadAndRun", typeof(BinaryContent), typeof(string), typeof(RequestOptions))] +[CodeGenSuppress("SubmitToolOutputsToRunAsync", typeof(string), typeof(string), typeof(BinaryContent), typeof(string), typeof(RequestOptions))] +[CodeGenSuppress("SubmitToolOutputsToRun", typeof(string), typeof(string), typeof(BinaryContent), typeof(string), typeof(RequestOptions))] [CodeGenSuppress("ListRunStepsAsync", typeof(string), typeof(string), typeof(IEnumerable), typeof(int?), typeof(string), typeof(string), typeof(string), typeof(RequestOptions))] [CodeGenSuppress("ListRunSteps", typeof(string), typeof(string), typeof(IEnumerable), typeof(int?), typeof(string), typeof(string), typeof(string), typeof(RequestOptions))] [CodeGenSuppress("GetRunStepAsync", typeof(string), typeof(string), typeof(string), typeof(IEnumerable), typeof(RequestOptions))] @@ -29,7 +33,10 @@ public virtual async Task CreateThreadAndRunAsync(BinaryContent co PipelineMessage message = null; try { - message = CreateCreateThreadAndRunRequest(content, options); + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + message = CreateCreateThreadAndRunRequest(content, acceptHeaderValue, options); return ClientResult.FromResponse(await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } finally @@ -56,7 +63,11 @@ public virtual ClientResult CreateThreadAndRun(BinaryContent content, RequestOpt PipelineMessage message = null; try { - message = CreateCreateThreadAndRunRequest(content, options); + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + + message = CreateCreateThreadAndRunRequest(content, acceptHeaderValue, options); return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options)); } finally @@ -86,10 +97,14 @@ public virtual async Task CreateRunAsync(string threadId, BinaryCo PipelineMessage message = null; try { + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + // Always request the included properties. IEnumerable includedRunStepProperties = [InternalIncludedRunStepProperty.FileSearchResultContent]; - message = CreateCreateRunRequest(threadId, content, includedRunStepProperties, options); + message = CreateCreateRunRequest(threadId, content, acceptHeaderValue, includedRunStepProperties, options); return ClientResult.FromResponse(await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } finally @@ -119,10 +134,14 @@ public virtual ClientResult CreateRun(string threadId, BinaryContent content, Re PipelineMessage message = null; try { + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + // Always request the included properties. IEnumerable includedRunStepProperties = [InternalIncludedRunStepProperty.FileSearchResultContent]; - message = CreateCreateRunRequest(threadId, content, includedRunStepProperties, options); + message = CreateCreateRunRequest(threadId, content, acceptHeaderValue, includedRunStepProperties, options); return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options)); } finally @@ -274,7 +293,11 @@ public virtual async Task SubmitToolOutputsToRunAsync(string threa PipelineMessage message = null; try { - message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, options); + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + + message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, acceptHeaderValue, options); return ClientResult.FromResponse(await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } finally @@ -308,7 +331,11 @@ public virtual ClientResult SubmitToolOutputsToRun(string threadId, string runId PipelineMessage message = null; try { - message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, options); + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + + message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, acceptHeaderValue, options); return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options)); } finally diff --git a/src/Custom/Assistants/Internal/InternalAssistantRunClient.cs b/src/Custom/Assistants/Internal/InternalAssistantRunClient.cs index 21813f852..751b22fe1 100644 --- a/src/Custom/Assistants/Internal/InternalAssistantRunClient.cs +++ b/src/Custom/Assistants/Internal/InternalAssistantRunClient.cs @@ -6,24 +6,24 @@ namespace OpenAI.Assistants; -[CodeGenClient("Runs")] +[CodeGenType("Runs")] [CodeGenSuppress("InternalAssistantRunClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] -[CodeGenSuppress("CreateThreadAndRunAsync", typeof(InternalCreateThreadAndRunRequest), typeof(CancellationToken))] -[CodeGenSuppress("CreateThreadAndRun", typeof(InternalCreateThreadAndRunRequest), typeof(CancellationToken))] -[CodeGenSuppress("CreateRunAsync", typeof(string), typeof(RunCreationOptions), typeof(IEnumerable), typeof(CancellationToken))] -[CodeGenSuppress("CreateRun", typeof(string), typeof(RunCreationOptions), typeof(IEnumerable), typeof(CancellationToken))] -[CodeGenSuppress("ListRunsAsync", typeof(string), typeof(int?), typeof(RunCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] -[CodeGenSuppress("ListRuns", typeof(string), typeof(int?), typeof(RunCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("CreateThreadAndRunAsync", typeof(InternalCreateThreadAndRunRequest), typeof(AcceptHeaderValue), typeof(CancellationToken))] +[CodeGenSuppress("CreateThreadAndRun", typeof(InternalCreateThreadAndRunRequest), typeof(AcceptHeaderValue), typeof(CancellationToken))] +[CodeGenSuppress("CreateRunAsync", typeof(string), typeof(RunCreationOptions), typeof(AcceptHeaderValue), typeof(IEnumerable), typeof(CancellationToken))] +[CodeGenSuppress("CreateRun", typeof(string), typeof(RunCreationOptions), typeof(AcceptHeaderValue), typeof(IEnumerable), typeof(CancellationToken))] +[CodeGenSuppress("ListRunsAsync", typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("ListRuns", typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("GetRunAsync", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("GetRun", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("ModifyRunAsync", typeof(string), typeof(string), typeof(RunModificationOptions), typeof(CancellationToken))] [CodeGenSuppress("ModifyRun", typeof(string), typeof(string), typeof(RunModificationOptions), typeof(CancellationToken))] [CodeGenSuppress("CancelRunAsync", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("CancelRun", typeof(string), typeof(string), typeof(CancellationToken))] -[CodeGenSuppress("SubmitToolOutputsToRunAsync", typeof(string), typeof(string), typeof(InternalSubmitToolOutputsRunRequest), typeof(CancellationToken))] -[CodeGenSuppress("SubmitToolOutputsToRun", typeof(string), typeof(string), typeof(InternalSubmitToolOutputsRunRequest), typeof(CancellationToken))] -[CodeGenSuppress("ListRunStepsAsync", typeof(string), typeof(string), typeof(int?), typeof(RunStepCollectionOrder?), typeof(string), typeof(string), typeof(IEnumerable), typeof(CancellationToken))] -[CodeGenSuppress("ListRunSteps", typeof(string), typeof(string), typeof(int?), typeof(RunStepCollectionOrder?), typeof(string), typeof(string), typeof(IEnumerable), typeof(CancellationToken))] +[CodeGenSuppress("SubmitToolOutputsToRunAsync", typeof(string), typeof(string), typeof(InternalSubmitToolOutputsRunRequest), typeof(AcceptHeaderValue), typeof(CancellationToken))] +[CodeGenSuppress("SubmitToolOutputsToRun", typeof(string), typeof(string), typeof(InternalSubmitToolOutputsRunRequest), typeof(AcceptHeaderValue), typeof(CancellationToken))] +[CodeGenSuppress("ListRunStepsAsync", typeof(string), typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(IEnumerable), typeof(CancellationToken))] +[CodeGenSuppress("ListRunSteps", typeof(string), typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(IEnumerable), typeof(CancellationToken))] [CodeGenSuppress("GetRunStepAsync", typeof(string), typeof(string), typeof(string), typeof(IEnumerable), typeof(CancellationToken))] [CodeGenSuppress("GetRunStep", typeof(string), typeof(string), typeof(string), typeof(IEnumerable), typeof(CancellationToken))] internal partial class InternalAssistantRunClient diff --git a/src/Custom/Assistants/Internal/InternalAssistantThreadClient.cs b/src/Custom/Assistants/Internal/InternalAssistantThreadClient.cs index 799bd1121..16993fa12 100644 --- a/src/Custom/Assistants/Internal/InternalAssistantThreadClient.cs +++ b/src/Custom/Assistants/Internal/InternalAssistantThreadClient.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; -[CodeGenClient("Threads")] +[CodeGenType("Threads")] [CodeGenSuppress("InternalAssistantThreadClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] [CodeGenSuppress("CreateThreadAsync", typeof(ThreadCreationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateThread", typeof(ThreadCreationOptions), typeof(CancellationToken))] diff --git a/src/Custom/Assistants/Internal/InternalAssistantToolsFileSearchFileSearch.cs b/src/Custom/Assistants/Internal/InternalAssistantToolsFileSearchFileSearch.cs index 781f98db2..7f4ccf12d 100644 --- a/src/Custom/Assistants/Internal/InternalAssistantToolsFileSearchFileSearch.cs +++ b/src/Custom/Assistants/Internal/InternalAssistantToolsFileSearchFileSearch.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("AssistantToolsFileSearchFileSearch")] +[CodeGenType("AssistantToolsFileSearchFileSearch")] internal partial class InternalAssistantToolsFileSearchFileSearch { [CodeGenMember("MaxNumResults")] diff --git a/src/Custom/Assistants/Internal/InternalMessageImageFileContent.cs b/src/Custom/Assistants/Internal/InternalMessageImageFileContent.cs index 1aac69dd4..e49bdebfe 100644 --- a/src/Custom/Assistants/Internal/InternalMessageImageFileContent.cs +++ b/src/Custom/Assistants/Internal/InternalMessageImageFileContent.cs @@ -9,7 +9,7 @@ namespace OpenAI.Assistants; /// Use the method to /// create an instance of this type. /// -[CodeGenModel("MessageContentImageFileObject")] +[CodeGenType("MessageContentImageFileObject")] [CodeGenSuppress("InternalMessageImageFileContent", typeof(InternalMessageContentItemFileObjectImageFile))] internal partial class InternalMessageImageFileContent { diff --git a/src/Custom/Assistants/Internal/InternalMessageImageUrlContent.cs b/src/Custom/Assistants/Internal/InternalMessageImageUrlContent.cs index 76388449d..5f8b81716 100644 --- a/src/Custom/Assistants/Internal/InternalMessageImageUrlContent.cs +++ b/src/Custom/Assistants/Internal/InternalMessageImageUrlContent.cs @@ -9,7 +9,7 @@ namespace OpenAI.Assistants; /// Use the method to /// create an instance of this type. /// -[CodeGenModel("MessageContentImageUrlObject")] +[CodeGenType("MessageContentImageUrlObject")] [CodeGenSuppress("MessageImageUrlContent", typeof(InternalMessageContentImageUrlObjectImageUrl))] internal partial class InternalMessageImageUrlContent { diff --git a/src/Custom/Assistants/Internal/InternalMessageRefusalContent.cs b/src/Custom/Assistants/Internal/InternalMessageRefusalContent.cs index ed0188314..46908fe01 100644 --- a/src/Custom/Assistants/Internal/InternalMessageRefusalContent.cs +++ b/src/Custom/Assistants/Internal/InternalMessageRefusalContent.cs @@ -9,7 +9,7 @@ namespace OpenAI.Assistants; /// Use the method to /// create an instance of this type. /// -[CodeGenModel("MessageContentRefusalObject")] +[CodeGenType("MessageContentRefusalObject")] internal partial class InternalMessageRefusalContent { [CodeGenMember("Type")] diff --git a/src/Custom/Assistants/Internal/InternalRequestMessageTextContent.cs b/src/Custom/Assistants/Internal/InternalRequestMessageTextContent.cs index 9925844e2..0ac72f75c 100644 --- a/src/Custom/Assistants/Internal/InternalRequestMessageTextContent.cs +++ b/src/Custom/Assistants/Internal/InternalRequestMessageTextContent.cs @@ -7,7 +7,7 @@ /// Use the method to create an instance of this /// type. /// -[CodeGenModel("MessageRequestContentTextObject")] +[CodeGenType("MessageRequestContentTextObject")] internal partial class InternalRequestMessageTextContent { [CodeGenMember("Text")] diff --git a/src/Custom/Assistants/Internal/InternalRequiredFunctionToolCall.cs b/src/Custom/Assistants/Internal/InternalRequiredFunctionToolCall.cs index 4bd70fc9c..5dded028f 100644 --- a/src/Custom/Assistants/Internal/InternalRequiredFunctionToolCall.cs +++ b/src/Custom/Assistants/Internal/InternalRequiredFunctionToolCall.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; /// /// A requested invocation of a defined function tool, needed by an Assistants API run to continue. /// -[CodeGenModel("RunToolCallObject")] +[CodeGenType("RunToolCallObject")] internal partial class InternalRequiredFunctionToolCall : InternalRequiredToolCall { // CUSTOM: diff --git a/src/Custom/Assistants/Internal/InternalResponseMessageTextContent.cs b/src/Custom/Assistants/Internal/InternalResponseMessageTextContent.cs index 0d7b79794..18ea17dbb 100644 --- a/src/Custom/Assistants/Internal/InternalResponseMessageTextContent.cs +++ b/src/Custom/Assistants/Internal/InternalResponseMessageTextContent.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; /// /// Represents an item of annotated text content within an Assistants API response message. /// -[CodeGenModel("MessageContentTextObject")] +[CodeGenType("MessageContentTextObject")] internal partial class InternalResponseMessageTextContent { /// diff --git a/src/Custom/Assistants/Internal/InternalRunStepCodeInterpreterLogOutput.cs b/src/Custom/Assistants/Internal/InternalRunStepCodeInterpreterLogOutput.cs index 4d0a1d8e0..9c73c27a2 100644 --- a/src/Custom/Assistants/Internal/InternalRunStepCodeInterpreterLogOutput.cs +++ b/src/Custom/Assistants/Internal/InternalRunStepCodeInterpreterLogOutput.cs @@ -1,7 +1,7 @@ namespace OpenAI.Assistants { /// Text output from the Code Interpreter tool call as part of a run step. - [CodeGenModel("RunStepDetailsToolCallsCodeOutputLogsObject")] + [CodeGenType("RunStepDetailsToolCallsCodeOutputLogsObject")] internal partial class InternalRunStepCodeInterpreterLogOutput : RunStepCodeInterpreterOutput { /// The text output from the Code Interpreter tool call. diff --git a/src/Custom/Assistants/Internal/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.cs b/src/Custom/Assistants/Internal/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.cs index b7ec3a1fa..1dd45e58f 100644 --- a/src/Custom/Assistants/Internal/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.cs +++ b/src/Custom/Assistants/Internal/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("RunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch")] internal partial class InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch { // CUSTOM: reuse input model for ranking options, which differs only in the request presence of 'auto' as a selection diff --git a/src/Custom/Assistants/Internal/InternalRunStepDetailsMessageCreationObject.cs b/src/Custom/Assistants/Internal/InternalRunStepDetailsMessageCreationObject.cs index 9c0ab12f5..f4ee99e22 100644 --- a/src/Custom/Assistants/Internal/InternalRunStepDetailsMessageCreationObject.cs +++ b/src/Custom/Assistants/Internal/InternalRunStepDetailsMessageCreationObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("RunStepDetailsMessageCreationObject")] +[CodeGenType("RunStepDetailsMessageCreationObject")] internal partial class InternalRunStepDetailsMessageCreationObject : RunStepDetails { /// diff --git a/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsCodeOutputImageObject.cs b/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsCodeOutputImageObject.cs index 15558d514..0090ca92e 100644 --- a/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsCodeOutputImageObject.cs +++ b/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsCodeOutputImageObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("RunStepDetailsToolCallsCodeOutputImageObject")] +[CodeGenType("RunStepDetailsToolCallsCodeOutputImageObject")] internal partial class InternalRunStepDetailsToolCallsCodeOutputImageObject { /// diff --git a/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.cs b/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.cs index cd956c983..10dcd16d9 100644 --- a/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.cs +++ b/src/Custom/Assistants/Internal/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("RunStepDetailsToolCallsFileSearchObjectFileSearch")] +[CodeGenType("RunStepDetailsToolCallsFileSearchObjectFileSearch")] internal partial class InternalRunStepDetailsToolCallsFileSearchObjectFileSearch { // CUSTOM: reuse input model for ranking options, which differs only in the request presence of 'auto' as a selection diff --git a/src/Custom/Assistants/Internal/InternalRunStepToolCallDetailsCollection.cs b/src/Custom/Assistants/Internal/InternalRunStepToolCallDetailsCollection.cs index 59e91f6e1..dc12c2cff 100644 --- a/src/Custom/Assistants/Internal/InternalRunStepToolCallDetailsCollection.cs +++ b/src/Custom/Assistants/Internal/InternalRunStepToolCallDetailsCollection.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; -[CodeGenModel("RunStepDetailsToolCallsObject")] +[CodeGenType("RunStepDetailsToolCallsObject")] internal partial class InternalRunStepDetailsToolCallsObject : IReadOnlyList { [CodeGenMember("ToolCalls")] diff --git a/src/Custom/Assistants/Internal/UnknownAssistantToolDefinition.cs b/src/Custom/Assistants/Internal/UnknownAssistantToolDefinition.cs index d9c826db6..02539ee02 100644 --- a/src/Custom/Assistants/Internal/UnknownAssistantToolDefinition.cs +++ b/src/Custom/Assistants/Internal/UnknownAssistantToolDefinition.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownAssistantToolDefinition")] +[CodeGenType("UnknownAssistantToolDefinition")] internal partial class UnknownAssistantToolDefinition { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownMessageContentTextObjectAnnotation.cs b/src/Custom/Assistants/Internal/UnknownMessageContentTextObjectAnnotation.cs index bf2ac05a0..bb8dad508 100644 --- a/src/Custom/Assistants/Internal/UnknownMessageContentTextObjectAnnotation.cs +++ b/src/Custom/Assistants/Internal/UnknownMessageContentTextObjectAnnotation.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownMessageContentTextObjectAnnotation")] +[CodeGenType("UnknownMessageContentTextObjectAnnotation")] internal partial class UnknownMessageContentTextObjectAnnotation { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownMessageDeltaContent.cs b/src/Custom/Assistants/Internal/UnknownMessageDeltaContent.cs index 3fcd7656c..07603d430 100644 --- a/src/Custom/Assistants/Internal/UnknownMessageDeltaContent.cs +++ b/src/Custom/Assistants/Internal/UnknownMessageDeltaContent.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownMessageDeltaContent")] +[CodeGenType("UnknownMessageDeltaContent")] internal partial class UnknownMessageDeltaContent { } diff --git a/src/Custom/Assistants/Internal/UnknownMessageDeltaTextContentAnnotation.cs b/src/Custom/Assistants/Internal/UnknownMessageDeltaTextContentAnnotation.cs index 53016f480..14ebb397f 100644 --- a/src/Custom/Assistants/Internal/UnknownMessageDeltaTextContentAnnotation.cs +++ b/src/Custom/Assistants/Internal/UnknownMessageDeltaTextContentAnnotation.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownMessageDeltaTextContentAnnotation")] +[CodeGenType("UnknownMessageDeltaTextContentAnnotation")] internal partial class UnknownMessageDeltaTextContentAnnotation { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetails.cs b/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetails.cs index 1d309757d..f89548c91 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetails.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetails.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepDeltaStepDetails")] +[CodeGenType("UnknownRunStepDeltaStepDetails")] internal partial class UnknownRunStepDeltaStepDetails { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs b/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs index 30579f8f8..d30878b66 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] +[CodeGenType("UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] internal partial class UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.cs b/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.cs index 55ffc905e..3cfae59c7 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject")] +[CodeGenType("UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject")] internal partial class UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepDetails.cs b/src/Custom/Assistants/Internal/UnknownRunStepDetails.cs index 2fd75b988..3095cded7 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepDetails.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepDetails.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepDetails")] +[CodeGenType("UnknownRunStepDetails")] internal partial class UnknownRunStepDetails { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs b/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs index d6fbc0575..4f6a2591f 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] +[CodeGenType("UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] internal partial class UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs b/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs index 0540c25da..59b87ffc6 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepDetailsToolCallsObjectToolCallsObject")] +[CodeGenType("UnknownRunStepDetailsToolCallsObjectToolCallsObject")] internal partial class UnknownRunStepDetailsToolCallsObjectToolCallsObject { } \ No newline at end of file diff --git a/src/Custom/Assistants/Internal/UnknownRunStepObjectStepDetails.cs b/src/Custom/Assistants/Internal/UnknownRunStepObjectStepDetails.cs index d18908820..b43e6bb23 100644 --- a/src/Custom/Assistants/Internal/UnknownRunStepObjectStepDetails.cs +++ b/src/Custom/Assistants/Internal/UnknownRunStepObjectStepDetails.cs @@ -1,6 +1,6 @@ namespace OpenAI.Assistants; -[CodeGenModel("UnknownRunStepObjectStepDetails")] +[CodeGenType("UnknownRunStepObjectStepDetails")] internal partial class UnknownRunStepObjectStepDetails { } \ No newline at end of file diff --git a/src/Custom/Assistants/MessageCollectionOrder.cs b/src/Custom/Assistants/MessageCollectionOrder.cs index 47d03e935..250a8a814 100644 --- a/src/Custom/Assistants/MessageCollectionOrder.cs +++ b/src/Custom/Assistants/MessageCollectionOrder.cs @@ -1,17 +1,40 @@ -using System.Diagnostics.CodeAnalysis; +using System; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace OpenAI.Assistants; -// CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("ListMessagesRequestOrder")] -public readonly partial struct MessageCollectionOrder +public readonly partial struct MessageCollectionOrder : IEquatable { - // CUSTOM: Renamed. - [CodeGenMember("Asc")] - public static MessageCollectionOrder Ascending { get; } = new MessageCollectionOrder(AscValue); + public static MessageCollectionOrder Ascending { get; } = new MessageCollectionOrder("asc"); - // CUSTOM: Renamed. - [CodeGenMember("Desc")] - public static MessageCollectionOrder Descending { get; } = new MessageCollectionOrder(DescValue); + public static MessageCollectionOrder Descending { get; } = new MessageCollectionOrder("desc"); + + private readonly string _value; + private const string AscValue = "asc"; + private const string DescValue = "desc"; + + public MessageCollectionOrder(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static bool operator ==(MessageCollectionOrder left, MessageCollectionOrder right) => left.Equals(right); + + public static bool operator !=(MessageCollectionOrder left, MessageCollectionOrder right) => !left.Equals(right); + + public static implicit operator MessageCollectionOrder(string value) => new MessageCollectionOrder(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MessageCollectionOrder other && Equals(other); + + public bool Equals(MessageCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; } diff --git a/src/Custom/Assistants/MessageContent.cs b/src/Custom/Assistants/MessageContent.cs index ff21c52c3..32c082067 100644 --- a/src/Custom/Assistants/MessageContent.cs +++ b/src/Custom/Assistants/MessageContent.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("MessageContent")] +[CodeGenType("MessageContent")] public abstract partial class MessageContent { /// diff --git a/src/Custom/Assistants/MessageCreationAttachment.cs b/src/Custom/Assistants/MessageCreationAttachment.cs index c75d00c7b..b75ccccd3 100644 --- a/src/Custom/Assistants/MessageCreationAttachment.cs +++ b/src/Custom/Assistants/MessageCreationAttachment.cs @@ -7,7 +7,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("CreateMessageRequestAttachment")] +[CodeGenType("CreateMessageRequestAttachment")] [CodeGenSerialization(nameof(Tools), "tools", SerializationValueHook = nameof(SerializeTools), DeserializationValueHook = nameof(DeserializeTools))] public partial class MessageCreationAttachment { diff --git a/src/Custom/Assistants/MessageCreationOptions.cs b/src/Custom/Assistants/MessageCreationOptions.cs index 676ac91fc..7953bbeab 100644 --- a/src/Custom/Assistants/MessageCreationOptions.cs +++ b/src/Custom/Assistants/MessageCreationOptions.cs @@ -8,7 +8,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when creating a new . /// [Experimental("OPENAI001")] -[CodeGenModel("CreateMessageRequest")] +[CodeGenType("CreateMessageRequest")] [CodeGenSuppress("MessageCreationOptions", typeof(MessageRole), typeof(IEnumerable))] [CodeGenSerialization(nameof(Content), SerializationValueHook = nameof(SerializeContent))] public partial class MessageCreationOptions diff --git a/src/Custom/Assistants/MessageDeletionResult.cs b/src/Custom/Assistants/MessageDeletionResult.cs index d084006f7..2c39d94bd 100644 --- a/src/Custom/Assistants/MessageDeletionResult.cs +++ b/src/Custom/Assistants/MessageDeletionResult.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("DeleteMessageResponse")] +[CodeGenType("DeleteMessageResponse")] public partial class MessageDeletionResult { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/MessageModificationOptions.cs b/src/Custom/Assistants/MessageModificationOptions.cs index 55cffbb38..769732884 100644 --- a/src/Custom/Assistants/MessageModificationOptions.cs +++ b/src/Custom/Assistants/MessageModificationOptions.cs @@ -6,7 +6,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when modifying an existing . /// [Experimental("OPENAI001")] -[CodeGenModel("ModifyMessageRequest")] +[CodeGenType("ModifyMessageRequest")] public partial class MessageModificationOptions { } diff --git a/src/Custom/Assistants/MessageRole.cs b/src/Custom/Assistants/MessageRole.cs index 28dce0718..89abae2c2 100644 --- a/src/Custom/Assistants/MessageRole.cs +++ b/src/Custom/Assistants/MessageRole.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("CreateMessageRequestRole")] +[CodeGenType("CreateMessageRequestRole")] public enum MessageRole { /// diff --git a/src/Custom/Assistants/RunCollectionOrder.cs b/src/Custom/Assistants/RunCollectionOrder.cs index 0b2f91749..7e08c2003 100644 --- a/src/Custom/Assistants/RunCollectionOrder.cs +++ b/src/Custom/Assistants/RunCollectionOrder.cs @@ -1,17 +1,41 @@ -using System.Diagnostics.CodeAnalysis; +using System; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace OpenAI.Assistants; -// CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("ListRunsRequestOrder")] -public readonly partial struct RunCollectionOrder +public readonly partial struct RunCollectionOrder: IEquatable { - // CUSTOM: Renamed. - [CodeGenMember("Asc")] - public static RunCollectionOrder Ascending { get; } = new RunCollectionOrder(AscValue); + public static RunCollectionOrder Ascending { get; } = new RunCollectionOrder("asc"); - // CUSTOM: Renamed. - [CodeGenMember("Desc")] - public static RunCollectionOrder Descending { get; } = new RunCollectionOrder(DescValue); + public static RunCollectionOrder Descending { get; } = new RunCollectionOrder("desc"); + + private readonly string _value; + private const string AscValue = "asc"; + private const string DescValue = "desc"; + + public RunCollectionOrder(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static bool operator ==(RunCollectionOrder left, RunCollectionOrder right) => left.Equals(right); + + public static bool operator !=(RunCollectionOrder left, RunCollectionOrder right) => !left.Equals(right); + + public static implicit operator RunCollectionOrder(string value) => new RunCollectionOrder(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is RunCollectionOrder other && Equals(other); + + public bool Equals(RunCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; } + diff --git a/src/Custom/Assistants/RunCreationOptions.cs b/src/Custom/Assistants/RunCreationOptions.cs index 575006617..96fbe89bb 100644 --- a/src/Custom/Assistants/RunCreationOptions.cs +++ b/src/Custom/Assistants/RunCreationOptions.cs @@ -1,3 +1,4 @@ +using OpenAI.Chat; using System.ClientModel.Primitives; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; @@ -10,7 +11,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when creating a new . /// [Experimental("OPENAI001")] -[CodeGenModel("CreateRunRequest")] +[CodeGenType("CreateRunRequest")] [CodeGenSuppress("RunCreationOptions", typeof(string))] [CodeGenSerialization(nameof(ToolConstraint), "tool_choice", SerializationValueHook = nameof(SerializeToolConstraint))] public partial class RunCreationOptions @@ -131,6 +132,10 @@ private set [CodeGenMember("ToolChoice")] public ToolConstraint ToolConstraint { get; set; } + // CUSTOM: Made internal. + [CodeGenMember("ReasoningEffort")] + internal ChatReasoningEffortLevel? ReasoningEffortLevel { get; set; } + /// /// Creates a new instance of . /// diff --git a/src/Custom/Assistants/RunIncompleteReason.cs b/src/Custom/Assistants/RunIncompleteReason.cs index 692300ebf..e096ed8f9 100644 --- a/src/Custom/Assistants/RunIncompleteReason.cs +++ b/src/Custom/Assistants/RunIncompleteReason.cs @@ -6,7 +6,7 @@ namespace OpenAI.Assistants { [Experimental("OPENAI001")] - [CodeGenModel("RunObjectIncompleteDetailsReason")] + [CodeGenType("RunObjectIncompleteDetailsReason")] public readonly partial struct RunIncompleteReason { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/RunModificationOptions.cs b/src/Custom/Assistants/RunModificationOptions.cs index 8b8a125b8..17cddcbea 100644 --- a/src/Custom/Assistants/RunModificationOptions.cs +++ b/src/Custom/Assistants/RunModificationOptions.cs @@ -6,7 +6,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when modifying an existing . /// [Experimental("OPENAI001")] -[CodeGenModel("ModifyRunRequest")] +[CodeGenType("ModifyRunRequest")] public partial class RunModificationOptions { } diff --git a/src/Custom/Assistants/RunStatus.cs b/src/Custom/Assistants/RunStatus.cs index 6075e7460..d2a8cde74 100644 --- a/src/Custom/Assistants/RunStatus.cs +++ b/src/Custom/Assistants/RunStatus.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunObjectStatus")] +[CodeGenType("RunObjectStatus")] public readonly partial struct RunStatus { /// diff --git a/src/Custom/Assistants/RunStep.cs b/src/Custom/Assistants/RunStep.cs index 5f24da9e1..bf59f3d82 100644 --- a/src/Custom/Assistants/RunStep.cs +++ b/src/Custom/Assistants/RunStep.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunStepObject")] +[CodeGenType("RunStepObject")] public partial class RunStep { // CUSTOM: Made internal. diff --git a/src/Custom/Assistants/RunStepCollectionOrder.cs b/src/Custom/Assistants/RunStepCollectionOrder.cs index 5cc86bd75..e6532a65f 100644 --- a/src/Custom/Assistants/RunStepCollectionOrder.cs +++ b/src/Custom/Assistants/RunStepCollectionOrder.cs @@ -1,17 +1,40 @@ -using System.Diagnostics.CodeAnalysis; +using System; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace OpenAI.Assistants; -// CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("ListRunStepsRequestOrder")] -public readonly partial struct RunStepCollectionOrder +public readonly partial struct RunStepCollectionOrder : IEquatable { - // CUSTOM: Renamed. - [CodeGenMember("Asc")] - public static RunStepCollectionOrder Ascending { get; } = new RunStepCollectionOrder(AscValue); + public static RunStepCollectionOrder Ascending { get; } = new RunStepCollectionOrder("asc"); - // CUSTOM: Renamed. - [CodeGenMember("Desc")] - public static RunStepCollectionOrder Descending { get; } = new RunStepCollectionOrder(DescValue); + public static RunStepCollectionOrder Descending { get; } = new RunStepCollectionOrder("desc"); + + private readonly string _value; + private const string AscValue = "asc"; + private const string DescValue = "desc"; + + public RunStepCollectionOrder(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static bool operator ==(RunStepCollectionOrder left, RunStepCollectionOrder right) => left.Equals(right); + + public static bool operator !=(RunStepCollectionOrder left, RunStepCollectionOrder right) => !left.Equals(right); + + public static implicit operator RunStepCollectionOrder(string value) => new RunStepCollectionOrder(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is RunStepCollectionOrder other && Equals(other); + + public bool Equals(RunStepCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; } diff --git a/src/Custom/Assistants/RunStepDetails.cs b/src/Custom/Assistants/RunStepDetails.cs index e003f0ece..876559167 100644 --- a/src/Custom/Assistants/RunStepDetails.cs +++ b/src/Custom/Assistants/RunStepDetails.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants { [Experimental("OPENAI001")] - [CodeGenModel("RunStepObjectStepDetails")] + [CodeGenType("RunStepObjectStepDetails")] public abstract partial class RunStepDetails { public string CreatedMessageId => AsInternalMessageCreation?.InternalMessageId; diff --git a/src/Custom/Assistants/RunStepFileSearchResult.cs b/src/Custom/Assistants/RunStepFileSearchResult.cs index 9146d759d..c9c5b4ba0 100644 --- a/src/Custom/Assistants/RunStepFileSearchResult.cs +++ b/src/Custom/Assistants/RunStepFileSearchResult.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunStepDetailsToolCallsFileSearchResultObject")] +[CodeGenType("RunStepDetailsToolCallsFileSearchResultObject")] public partial class RunStepFileSearchResult { } diff --git a/src/Custom/Assistants/RunStepFileSearchResultContent.cs b/src/Custom/Assistants/RunStepFileSearchResultContent.cs index 992ad6852..968369685 100644 --- a/src/Custom/Assistants/RunStepFileSearchResultContent.cs +++ b/src/Custom/Assistants/RunStepFileSearchResultContent.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants; // CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("RunStepDetailsToolCallsFileSearchResultObjectContent")] +[CodeGenType("RunStepDetailsToolCallsFileSearchResultObjectContent")] public partial class RunStepFileSearchResultContent { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/RunStepFileSearchResultContentKind.cs b/src/Custom/Assistants/RunStepFileSearchResultContentKind.cs index 059dce544..5e53b6ed4 100644 --- a/src/Custom/Assistants/RunStepFileSearchResultContentKind.cs +++ b/src/Custom/Assistants/RunStepFileSearchResultContentKind.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants; // CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("RunStepDetailsToolCallsFileSearchResultObjectContentType")] +[CodeGenType("RunStepDetailsToolCallsFileSearchResultObjectContentType")] public enum RunStepFileSearchResultContentKind { Text, diff --git a/src/Custom/Assistants/RunStepKind.cs b/src/Custom/Assistants/RunStepKind.cs index e74539f70..e574cdb93 100644 --- a/src/Custom/Assistants/RunStepKind.cs +++ b/src/Custom/Assistants/RunStepKind.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunStepObjectType")] +[CodeGenType("RunStepObjectType")] public enum RunStepKind { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/RunStepTokenUsage.cs b/src/Custom/Assistants/RunStepTokenUsage.cs index 66f01c908..f5be81732 100644 --- a/src/Custom/Assistants/RunStepTokenUsage.cs +++ b/src/Custom/Assistants/RunStepTokenUsage.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants { [Experimental("OPENAI001")] - [CodeGenModel("RunStepCompletionUsage")] + [CodeGenType("RunStepCompletionUsage")] public partial class RunStepTokenUsage { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/RunStepToolCall.cs b/src/Custom/Assistants/RunStepToolCall.cs index 8d2d34cc1..222165753 100644 --- a/src/Custom/Assistants/RunStepToolCall.cs +++ b/src/Custom/Assistants/RunStepToolCall.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunStepDetailsToolCallsObjectToolCallsObject")] +[CodeGenType("RunStepDetailsToolCallsObjectToolCallsObject")] public partial class RunStepToolCall { private IReadOnlyList _codeInterpreterOutputs; diff --git a/src/Custom/Assistants/RunStepToolCallKind.cs b/src/Custom/Assistants/RunStepToolCallKind.cs index f99fc0a7d..9fe5be2f6 100644 --- a/src/Custom/Assistants/RunStepToolCallKind.cs +++ b/src/Custom/Assistants/RunStepToolCallKind.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunStepDetailsToolCallType")] +[CodeGenType("RunStepDetailsToolCallType")] public enum RunStepToolCallKind { CodeInterpreter, diff --git a/src/Custom/Assistants/RunTokenUsage.cs b/src/Custom/Assistants/RunTokenUsage.cs index 9bfc6e9e6..3bb109fd7 100644 --- a/src/Custom/Assistants/RunTokenUsage.cs +++ b/src/Custom/Assistants/RunTokenUsage.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants { [Experimental("OPENAI001")] - [CodeGenModel("RunCompletionUsage")] + [CodeGenType("RunCompletionUsage")] public partial class RunTokenUsage { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/RunTruncationStrategy.cs b/src/Custom/Assistants/RunTruncationStrategy.cs index fe895710d..7a27a422c 100644 --- a/src/Custom/Assistants/RunTruncationStrategy.cs +++ b/src/Custom/Assistants/RunTruncationStrategy.cs @@ -6,7 +6,7 @@ namespace OpenAI.Assistants { /// Controls for how a thread will be truncated prior to the run. Use this to control the intial context window of the run. [Experimental("OPENAI001")] - [CodeGenModel("TruncationObject")] + [CodeGenType("TruncationObject")] [CodeGenSuppress(nameof(RunTruncationStrategy), typeof(InternalTruncationObjectType))] public partial class RunTruncationStrategy { diff --git a/src/Custom/Assistants/Streaming/AsyncStreamingUpdateCollection.cs b/src/Custom/Assistants/Streaming/AsyncStreamingUpdateCollection.cs deleted file mode 100644 index 9fbdce2e8..000000000 --- a/src/Custom/Assistants/Streaming/AsyncStreamingUpdateCollection.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.ClientModel; -using System.ClientModel.Primitives; -using System.Collections.Generic; -using System.Linq; -using System.Net.ServerSentEvents; -using System.Threading; -using System.Threading.Tasks; - -#nullable enable - -namespace OpenAI.Assistants; - -/// -/// Implementation of collection abstraction over streaming assistant updates. -/// -internal class AsyncStreamingUpdateCollection : AsyncCollectionResult -{ - private readonly Func> _sendRequestAsync; - private readonly CancellationToken _cancellationToken; - - public AsyncStreamingUpdateCollection(Func> sendRequestAsync, - CancellationToken cancellationToken) - { - Argument.AssertNotNull(sendRequestAsync, nameof(sendRequestAsync)); - - _sendRequestAsync = sendRequestAsync; - _cancellationToken = cancellationToken; - } - - public override ContinuationToken? GetContinuationToken(ClientResult page) - // Continuation is not supported for SSE streams. - => null; - - public async override IAsyncEnumerable GetRawPagesAsync() - { - // We don't currently support resuming a dropped connection from the - // last received event, so the response collection has a single element. - yield return await _sendRequestAsync(); - } - - protected async override IAsyncEnumerable GetValuesFromPageAsync(ClientResult page) - { - await using IAsyncEnumerator enumerator = new AsyncStreamingUpdateEnumerator(page, _cancellationToken); - while (await enumerator.MoveNextAsync().ConfigureAwait(false)) - { - yield return enumerator.Current; - } - } - - private sealed class AsyncStreamingUpdateEnumerator : IAsyncEnumerator - { - private static ReadOnlySpan TerminalData => "[DONE]"u8; - - private readonly CancellationToken _cancellationToken; - private readonly PipelineResponse _response; - - // These enumerators represent what is effectively a doubly-nested - // loop over the outer event collection and the inner update collection, - // i.e.: - // foreach (var sse in _events) { - // // get _updates from sse event - // foreach (var update in _updates) { ... } - // } - private IAsyncEnumerator>? _events; - private IEnumerator? _updates; - - private StreamingUpdate? _current; - private bool _started; - - public AsyncStreamingUpdateEnumerator(ClientResult page, CancellationToken cancellationToken) - { - Argument.AssertNotNull(page, nameof(page)); - - _response = page.GetRawResponse(); - _cancellationToken = cancellationToken; - } - - StreamingUpdate IAsyncEnumerator.Current - => _current!; - - async ValueTask IAsyncEnumerator.MoveNextAsync() - { - if (_events is null && _started) - { - throw new ObjectDisposedException(nameof(AsyncStreamingUpdateEnumerator)); - } - - _cancellationToken.ThrowIfCancellationRequested(); - _events ??= CreateEventEnumeratorAsync(); - _started = true; - - if (_updates is not null && _updates.MoveNext()) - { - _current = _updates.Current; - return true; - } - - if (await _events.MoveNextAsync().ConfigureAwait(false)) - { - if (_events.Current.Data.AsSpan().SequenceEqual(TerminalData)) - { - _current = default; - return false; - } - - var updates = StreamingUpdate.FromEvent(_events.Current); - _updates = updates.GetEnumerator(); - - if (_updates.MoveNext()) - { - _current = _updates.Current; - return true; - } - } - - _current = default; - return false; - } - - private IAsyncEnumerator> CreateEventEnumeratorAsync() - { - if (_response.ContentStream is null) - { - throw new InvalidOperationException("Unable to create result from response with null ContentStream"); - } - - IAsyncEnumerable> enumerable = SseParser.Create(_response.ContentStream, (_, bytes) => bytes.ToArray()).EnumerateAsync(); - return enumerable.GetAsyncEnumerator(_cancellationToken); - } - - public async ValueTask DisposeAsync() - { - await DisposeAsyncCore().ConfigureAwait(false); - - GC.SuppressFinalize(this); - } - - private async ValueTask DisposeAsyncCore() - { - if (_events is not null) - { - await _events.DisposeAsync().ConfigureAwait(false); - _events = null; - - // Dispose the response so we don't leave the network connection open. - _response?.Dispose(); - } - } - } -} diff --git a/src/Custom/Assistants/Streaming/RunStepDetailsUpdateCodeInterpreterOutput.cs b/src/Custom/Assistants/Streaming/RunStepDetailsUpdateCodeInterpreterOutput.cs index 77c041f15..68a43165e 100644 --- a/src/Custom/Assistants/Streaming/RunStepDetailsUpdateCodeInterpreterOutput.cs +++ b/src/Custom/Assistants/Streaming/RunStepDetailsUpdateCodeInterpreterOutput.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("RunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] +[CodeGenType("RunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")] public partial class RunStepUpdateCodeInterpreterOutput { /// diff --git a/src/Custom/Assistants/Streaming/StreamingUpdate.cs b/src/Custom/Assistants/Streaming/StreamingUpdate.cs index 9f6a362b8..67e71f293 100644 --- a/src/Custom/Assistants/Streaming/StreamingUpdate.cs +++ b/src/Custom/Assistants/Streaming/StreamingUpdate.cs @@ -1,3 +1,4 @@ +using System.ClientModel.Primitives; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Net.ServerSentEvents; @@ -41,15 +42,16 @@ internal StreamingUpdate(StreamingUpdateReason updateKind) UpdateKind = updateKind; } - internal static IEnumerable FromEvent(SseItem sseItem) + internal static IEnumerable FromSseItem(SseItem sseItem) { StreamingUpdateReason updateKind = StreamingUpdateReasonExtensions.FromSseEventLabel(sseItem.EventType); using JsonDocument dataDocument = JsonDocument.Parse(sseItem.Data); JsonElement e = dataDocument.RootElement; + ModelReaderWriterOptions serializationOptions = ModelReaderWriterOptions.Json; return updateKind switch { - StreamingUpdateReason.ThreadCreated => ThreadUpdate.DeserializeThreadCreationUpdates(e, updateKind), + StreamingUpdateReason.ThreadCreated => ThreadUpdate.DeserializeThreadCreationUpdates(e, updateKind, serializationOptions), StreamingUpdateReason.RunCreated or StreamingUpdateReason.RunQueued or StreamingUpdateReason.RunInProgress @@ -58,20 +60,20 @@ or StreamingUpdateReason.RunIncomplete or StreamingUpdateReason.RunFailed or StreamingUpdateReason.RunCancelling or StreamingUpdateReason.RunCancelled - or StreamingUpdateReason.RunExpired => RunUpdate.DeserializeRunUpdates(e, updateKind), + or StreamingUpdateReason.RunExpired => RunUpdate.DeserializeRunUpdates(e, updateKind, serializationOptions), StreamingUpdateReason.RunRequiresAction => RequiredActionUpdate.DeserializeRequiredActionUpdates(e), StreamingUpdateReason.RunStepCreated or StreamingUpdateReason.RunStepInProgress or StreamingUpdateReason.RunStepCompleted or StreamingUpdateReason.RunStepFailed or StreamingUpdateReason.RunStepCancelled - or StreamingUpdateReason.RunStepExpired => RunStepUpdate.DeserializeRunStepUpdates(e, updateKind), + or StreamingUpdateReason.RunStepExpired => RunStepUpdate.DeserializeRunStepUpdates(e, updateKind, serializationOptions), StreamingUpdateReason.MessageCreated or StreamingUpdateReason.MessageInProgress or StreamingUpdateReason.MessageCompleted - or StreamingUpdateReason.MessageFailed => MessageStatusUpdate.DeserializeMessageStatusUpdates(e, updateKind), - StreamingUpdateReason.RunStepUpdated => RunStepDetailsUpdate.DeserializeRunStepDetailsUpdates(e, updateKind), - StreamingUpdateReason.MessageUpdated => MessageContentUpdate.DeserializeMessageContentUpdates(e, updateKind), + or StreamingUpdateReason.MessageFailed => MessageStatusUpdate.DeserializeMessageStatusUpdates(e, updateKind, serializationOptions), + StreamingUpdateReason.RunStepUpdated => RunStepDetailsUpdate.DeserializeRunStepDetailsUpdates(e, updateKind, serializationOptions), + StreamingUpdateReason.MessageUpdated => MessageContentUpdate.DeserializeMessageContentUpdates(e, updateKind, serializationOptions), _ => null, }; } diff --git a/src/Custom/Assistants/Streaming/StreamingUpdateCollection.cs b/src/Custom/Assistants/Streaming/StreamingUpdateCollection.cs deleted file mode 100644 index 3ddf7d609..000000000 --- a/src/Custom/Assistants/Streaming/StreamingUpdateCollection.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.ClientModel; -using System.ClientModel.Primitives; -using System.Collections; -using System.Collections.Generic; -using System.Net.ServerSentEvents; -using System.Threading; - -#nullable enable - -namespace OpenAI.Assistants; - -/// -/// Implementation of collection abstraction over streaming assistant updates. -/// -internal class StreamingUpdateCollection : CollectionResult -{ - private readonly Func _sendRequest; - private readonly CancellationToken _cancellationToken; - - public StreamingUpdateCollection( - Func sendRequest, - CancellationToken cancellationToken) - { - Argument.AssertNotNull(sendRequest, nameof(sendRequest)); - - _sendRequest = sendRequest; - _cancellationToken = cancellationToken; - } - - public override ContinuationToken? GetContinuationToken(ClientResult page) - // Continuation is not supported for SSE streams. - => null; - - public override IEnumerable GetRawPages() - { - // We don't currently support resuming a dropped connection from the - // last received event, so the response collection has a single element. - yield return _sendRequest(); - } - protected override IEnumerable GetValuesFromPage(ClientResult page) - { - using IEnumerator enumerator = new StreamingUpdateEnumerator(page, _cancellationToken); - while (enumerator.MoveNext()) - { - yield return enumerator.Current; - } - } - - private sealed class StreamingUpdateEnumerator : IEnumerator - { - private static ReadOnlySpan TerminalData => "[DONE]"u8; - - private readonly CancellationToken _cancellationToken; - private readonly PipelineResponse _response; - - // These enumerators represent what is effectively a doubly-nested - // loop over the outer event collection and the inner update collection, - // i.e.: - // foreach (var sse in _events) { - // // get _updates from sse event - // foreach (var update in _updates) { ... } - // } - private IEnumerator>? _events; - private IEnumerator? _updates; - - private StreamingUpdate? _current; - private bool _started; - - public StreamingUpdateEnumerator(ClientResult page, CancellationToken cancellationToken) - { - Argument.AssertNotNull(page, nameof(page)); - - _response = page.GetRawResponse(); - _cancellationToken = cancellationToken; - } - - StreamingUpdate IEnumerator.Current - => _current!; - - object IEnumerator.Current => _current!; - - public bool MoveNext() - { - if (_events is null && _started) - { - throw new ObjectDisposedException(nameof(StreamingUpdateEnumerator)); - } - - - _cancellationToken.ThrowIfCancellationRequested(); - _events ??= CreateEventEnumerator(); - _started = true; - - if (_updates is not null && _updates.MoveNext()) - { - _current = _updates.Current; - return true; - } - - if (_events.MoveNext()) - { - if (_events.Current.Data.AsSpan().SequenceEqual(TerminalData)) - { - _current = default; - return false; - } - - var updates = StreamingUpdate.FromEvent(_events.Current); - _updates = updates.GetEnumerator(); - - if (_updates.MoveNext()) - { - _current = _updates.Current; - return true; - } - } - - _current = default; - return false; - } - - private IEnumerator> CreateEventEnumerator() - { - if (_response.ContentStream is null) - { - throw new InvalidOperationException("Unable to create result from response with null ContentStream"); - } - - IEnumerable> enumerable = SseParser.Create(_response.ContentStream, (_, bytes) => bytes.ToArray()).Enumerate(); - return enumerable.GetEnumerator(); - } - - public void Reset() - { - throw new NotSupportedException("Cannot seek back in an SSE stream."); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - if (disposing && _events is not null) - { - _events.Dispose(); - _events = null; - - // Dispose the response so we don't leave the network connection open. - _response?.Dispose(); - } - } - } -} diff --git a/src/Custom/Assistants/ThreadCreationOptions.cs b/src/Custom/Assistants/ThreadCreationOptions.cs index 82d02e471..7298a4b46 100644 --- a/src/Custom/Assistants/ThreadCreationOptions.cs +++ b/src/Custom/Assistants/ThreadCreationOptions.cs @@ -8,7 +8,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when creating a new . /// [Experimental("OPENAI001")] -[CodeGenModel("CreateThreadRequest")] +[CodeGenType("CreateThreadRequest")] public partial class ThreadCreationOptions { // CUSTOM: reuse a common type for request/response model representations of tool resources diff --git a/src/Custom/Assistants/ThreadDeletionResult.cs b/src/Custom/Assistants/ThreadDeletionResult.cs index a7a8234f1..a31c23169 100644 --- a/src/Custom/Assistants/ThreadDeletionResult.cs +++ b/src/Custom/Assistants/ThreadDeletionResult.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("DeleteThreadResponse")] +[CodeGenType("DeleteThreadResponse")] public partial class ThreadDeletionResult { // CUSTOM: Renamed. diff --git a/src/Custom/Assistants/ThreadMessage.cs b/src/Custom/Assistants/ThreadMessage.cs index 401479440..8d191bcb7 100644 --- a/src/Custom/Assistants/ThreadMessage.cs +++ b/src/Custom/Assistants/ThreadMessage.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("MessageObject")] +[CodeGenType("MessageObject")] public partial class ThreadMessage { // CUSTOM: Made internal. diff --git a/src/Custom/Assistants/ThreadModificationOptions.cs b/src/Custom/Assistants/ThreadModificationOptions.cs index 31c81001c..9a0d13471 100644 --- a/src/Custom/Assistants/ThreadModificationOptions.cs +++ b/src/Custom/Assistants/ThreadModificationOptions.cs @@ -6,7 +6,7 @@ namespace OpenAI.Assistants; /// Represents additional options available when modifying an existing . /// [Experimental("OPENAI001")] -[CodeGenModel("ModifyThreadRequest")] +[CodeGenType("ModifyThreadRequest")] public partial class ThreadModificationOptions { // CUSTOM: reuse common request/response models for tool resources. Note that modification operations use the diff --git a/src/Custom/Assistants/ThreadRun.cs b/src/Custom/Assistants/ThreadRun.cs index 6b7c41d51..3d4717321 100644 --- a/src/Custom/Assistants/ThreadRun.cs +++ b/src/Custom/Assistants/ThreadRun.cs @@ -10,7 +10,7 @@ namespace OpenAI.Assistants; // hierarchy and formatted into a more intuitive collection for the consumer. [Experimental("OPENAI001")] -[CodeGenModel("RunObject")] +[CodeGenType("RunObject")] public partial class ThreadRun { // CUSTOM: Made internal. diff --git a/src/Custom/Assistants/ToolConstraint.cs b/src/Custom/Assistants/ToolConstraint.cs index e19da8e75..43ab5bd48 100644 --- a/src/Custom/Assistants/ToolConstraint.cs +++ b/src/Custom/Assistants/ToolConstraint.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantsNamedToolChoice")] +[CodeGenType("AssistantsNamedToolChoice")] public partial class ToolConstraint { private readonly string _plainTextValue; diff --git a/src/Custom/Assistants/ToolDefinition.cs b/src/Custom/Assistants/ToolDefinition.cs index 020c861bd..396432429 100644 --- a/src/Custom/Assistants/ToolDefinition.cs +++ b/src/Custom/Assistants/ToolDefinition.cs @@ -4,7 +4,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantToolDefinition")] +[CodeGenType("AssistantToolDefinition")] public abstract partial class ToolDefinition { public static CodeInterpreterToolDefinition CreateCodeInterpreter() diff --git a/src/Custom/Assistants/ToolOutput.cs b/src/Custom/Assistants/ToolOutput.cs index fbdc8c911..345f9bde3 100644 --- a/src/Custom/Assistants/ToolOutput.cs +++ b/src/Custom/Assistants/ToolOutput.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("SubmitToolOutputsRunRequestToolOutput")] +[CodeGenType("SubmitToolOutputsRunRequestToolOutput")] public partial class ToolOutput { /// diff --git a/src/Custom/Assistants/ToolResources.cs b/src/Custom/Assistants/ToolResources.cs index 0cd833266..ca11d0533 100644 --- a/src/Custom/Assistants/ToolResources.cs +++ b/src/Custom/Assistants/ToolResources.cs @@ -5,7 +5,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("AssistantObjectToolResources")] +[CodeGenType("AssistantObjectToolResources1")] [CodeGenSerialization(nameof(FileSearch), "file_search", SerializationValueHook = nameof(SerializeFileSearch))] public partial class ToolResources { diff --git a/src/Custom/Assistants/VectorStoreCreationHelper.cs b/src/Custom/Assistants/VectorStoreCreationHelper.cs index ebba2b8d0..e2faa5e80 100644 --- a/src/Custom/Assistants/VectorStoreCreationHelper.cs +++ b/src/Custom/Assistants/VectorStoreCreationHelper.cs @@ -7,7 +7,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("ToolResourcesFileSearchVectorStore")] +[CodeGenType("ToolResourcesFileSearchVectorStore")] public partial class VectorStoreCreationHelper { [CodeGenMember("ChunkingStrategy")] diff --git a/src/Custom/Audio/AudioClient.cs b/src/Custom/Audio/AudioClient.cs index 8dd2e7efe..9a2247680 100644 --- a/src/Custom/Audio/AudioClient.cs +++ b/src/Custom/Audio/AudioClient.cs @@ -12,8 +12,8 @@ namespace OpenAI.Audio; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// The service client for OpenAI audio operations. -[CodeGenClient("Audio")] -[CodeGenSuppress("AudioClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Audio")] +[CodeGenSuppress("AudioClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateSpeechAsync", typeof(SpeechGenerationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateSpeech", typeof(SpeechGenerationOptions), typeof(CancellationToken))] public partial class AudioClient @@ -157,7 +157,7 @@ public virtual async Task> TranscribeAudioAsync options ??= new(); CreateAudioTranscriptionOptions(audio, audioFilename, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); ClientResult result = await TranscribeAudioAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue(AudioTranscription.FromResponse(result.GetRawResponse()), result.GetRawResponse()); } @@ -181,7 +181,7 @@ public virtual ClientResult TranscribeAudio(Stream audio, st options ??= new(); CreateAudioTranscriptionOptions(audio, audioFilename, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); ClientResult result = TranscribeAudio(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue(AudioTranscription.FromResponse(result.GetRawResponse()), result.GetRawResponse()); } @@ -243,7 +243,7 @@ public virtual async Task> TranslateAudioAsync(St options ??= new(); CreateAudioTranslationOptions(audio, audioFilename, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); ClientResult result = await TranslateAudioAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue(AudioTranslation.FromResponse(result.GetRawResponse()), result.GetRawResponse()); } @@ -267,7 +267,7 @@ public virtual ClientResult TranslateAudio(Stream audio, strin options ??= new(); CreateAudioTranslationOptions(audio, audioFilename, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(audio, audioFilename); ClientResult result = TranslateAudio(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue(AudioTranslation.FromResponse(result.GetRawResponse()), result.GetRawResponse()); } diff --git a/src/Custom/Audio/AudioTranscription.cs b/src/Custom/Audio/AudioTranscription.cs index a8483d33b..8395da987 100644 --- a/src/Custom/Audio/AudioTranscription.cs +++ b/src/Custom/Audio/AudioTranscription.cs @@ -2,7 +2,7 @@ namespace OpenAI.Audio; -[CodeGenModel("CreateTranscriptionResponseVerboseJson")] +[CodeGenType("CreateTranscriptionResponseVerboseJson")] public partial class AudioTranscription { // CUSTOM: Made private. This property does not add value in the context of a strongly-typed class. diff --git a/src/Custom/Audio/AudioTranscriptionFormat.cs b/src/Custom/Audio/AudioTranscriptionFormat.cs index d5a3aca55..2b49c6682 100644 --- a/src/Custom/Audio/AudioTranscriptionFormat.cs +++ b/src/Custom/Audio/AudioTranscriptionFormat.cs @@ -3,7 +3,7 @@ namespace OpenAI.Audio; /// The format of the transcription. -[CodeGenModel("TranscriptionAudioResponseFormat")] +[CodeGenType("TranscriptionAudioResponseFormat")] public readonly partial struct AudioTranscriptionFormat { // CUSTOM: Hide from browsing as this is equivalent to Simple diff --git a/src/Custom/Audio/AudioTranscriptionOptions.cs b/src/Custom/Audio/AudioTranscriptionOptions.cs index 1230af13f..4e6818424 100644 --- a/src/Custom/Audio/AudioTranscriptionOptions.cs +++ b/src/Custom/Audio/AudioTranscriptionOptions.cs @@ -5,7 +5,7 @@ namespace OpenAI.Audio; -[CodeGenModel("CreateTranscriptionRequest")] +[CodeGenType("CreateTranscriptionRequest")] [CodeGenSuppress("AudioTranscriptionOptions", typeof(BinaryData), typeof(InternalCreateTranscriptionRequestModel))] public partial class AudioTranscriptionOptions { @@ -31,9 +31,9 @@ public AudioTranscriptionOptions() /// public AudioTimestampGranularities TimestampGranularities { get; set; } - internal MultipartFormDataBinaryContent ToMultipartContent(Stream audio, string audioFilename) + internal MultiPartFormDataBinaryContent ToMultipartContent(Stream audio, string audioFilename) { - MultipartFormDataBinaryContent content = new(); + MultiPartFormDataBinaryContent content = new(); content.Add(audio, "file", audioFilename); content.Add(Model.ToString(), "model"); diff --git a/src/Custom/Audio/AudioTranslation.cs b/src/Custom/Audio/AudioTranslation.cs index d5dc6f060..9a7b51f90 100644 --- a/src/Custom/Audio/AudioTranslation.cs +++ b/src/Custom/Audio/AudioTranslation.cs @@ -2,7 +2,7 @@ namespace OpenAI.Audio; -[CodeGenModel("CreateTranslationResponseVerboseJson")] +[CodeGenType("CreateTranslationResponseVerboseJson")] public partial class AudioTranslation { // CUSTOM: Made private. This property does not add value in the context of a strongly-typed class. diff --git a/src/Custom/Audio/AudioTranslationFormat.cs b/src/Custom/Audio/AudioTranslationFormat.cs index 969a65413..998f35732 100644 --- a/src/Custom/Audio/AudioTranslationFormat.cs +++ b/src/Custom/Audio/AudioTranslationFormat.cs @@ -3,7 +3,7 @@ namespace OpenAI.Audio; /// The format of the transcription. -[CodeGenModel("TranslationAudioResponseFormat")] +[CodeGenType("TranslationAudioResponseFormat")] public readonly partial struct AudioTranslationFormat { // CUSTOM: Hide from browsing as this is equivalent to Simple diff --git a/src/Custom/Audio/AudioTranslationOptions.cs b/src/Custom/Audio/AudioTranslationOptions.cs index 14acc2aa1..b1d3f7609 100644 --- a/src/Custom/Audio/AudioTranslationOptions.cs +++ b/src/Custom/Audio/AudioTranslationOptions.cs @@ -3,7 +3,7 @@ namespace OpenAI.Audio; -[CodeGenModel("CreateTranslationRequest")] +[CodeGenType("CreateTranslationRequest")] [CodeGenSuppress("AudioTranslationOptions", typeof(BinaryData), typeof(InternalCreateTranslationRequestModel))] public partial class AudioTranslationOptions { @@ -21,9 +21,9 @@ public AudioTranslationOptions() { } - internal MultipartFormDataBinaryContent ToMultipartContent(Stream audio, string audioFilename) + internal MultiPartFormDataBinaryContent ToMultipartContent(Stream audio, string audioFilename) { - MultipartFormDataBinaryContent content = new(); + MultiPartFormDataBinaryContent content = new(); content.Add(audio, "file", audioFilename); content.Add(Model.ToString(), "model"); diff --git a/src/Custom/Audio/GeneratedSpeechFormat.cs b/src/Custom/Audio/GeneratedSpeechFormat.cs index 8ef097051..26fb17bac 100644 --- a/src/Custom/Audio/GeneratedSpeechFormat.cs +++ b/src/Custom/Audio/GeneratedSpeechFormat.cs @@ -1,7 +1,7 @@ namespace OpenAI.Audio; /// The audio format in which to generate the speech. -[CodeGenModel("CreateSpeechRequestResponseFormat")] +[CodeGenType("CreateSpeechRequestResponseFormat")] public readonly partial struct GeneratedSpeechFormat { } \ No newline at end of file diff --git a/src/Custom/Audio/GeneratedSpeechVoice.cs b/src/Custom/Audio/GeneratedSpeechVoice.cs index cecbea1bb..5a28431cd 100644 --- a/src/Custom/Audio/GeneratedSpeechVoice.cs +++ b/src/Custom/Audio/GeneratedSpeechVoice.cs @@ -5,7 +5,7 @@ namespace OpenAI.Audio; /// The voice to use in the generated speech. Previews of the available voices can be found in the /// text-to-speech guide. /// -[CodeGenModel("CreateSpeechRequestVoice")] +[CodeGenType("CreateSpeechRequestVoice")] public readonly partial struct GeneratedSpeechVoice { } \ No newline at end of file diff --git a/src/Custom/Audio/Internal/GeneratorStubs.cs b/src/Custom/Audio/Internal/GeneratorStubs.cs index 909339d7a..dbab1b779 100644 --- a/src/Custom/Audio/Internal/GeneratorStubs.cs +++ b/src/Custom/Audio/Internal/GeneratorStubs.cs @@ -2,29 +2,29 @@ namespace OpenAI.Audio; // CUSTOM: Made internal. -[CodeGenModel("CreateSpeechRequestModel")] +[CodeGenType("CreateSpeechRequestModel")] internal readonly partial struct InternalCreateSpeechRequestModel { } -[CodeGenModel("CreateTranscriptionRequestModel")] +[CodeGenType("CreateTranscriptionRequestModel")] internal readonly partial struct InternalCreateTranscriptionRequestModel { } -[CodeGenModel("CreateTranscriptionRequestTimestampGranularities")] +[CodeGenType("CreateTranscriptionRequestTimestampGranularities")] internal readonly partial struct InternalCreateTranscriptionRequestTimestampGranularities { } -[CodeGenModel("CreateTranscriptionResponseJson")] +[CodeGenType("CreateTranscriptionResponseJson")] internal partial class InternalCreateTranscriptionResponseJson { } -[CodeGenModel("CreateTranscriptionResponseVerboseJsonTask")] +[CodeGenType("CreateTranscriptionResponseVerboseJsonTask")] internal readonly partial struct InternalCreateTranscriptionResponseVerboseJsonTask { } -[CodeGenModel("CreateTranslationRequestModel")] +[CodeGenType("CreateTranslationRequestModel")] internal readonly partial struct InternalCreateTranslationRequestModel { } -[CodeGenModel("CreateTranslationResponseJson")] +[CodeGenType("CreateTranslationResponseJson")] internal partial class InternalCreateTranslationResponseJson { } -[CodeGenModel("CreateTranslationResponseVerboseJsonTask")] +[CodeGenType("CreateTranslationResponseVerboseJsonTask")] internal readonly partial struct InternalCreateTranslationResponseVerboseJsonTask { } -[CodeGenModel("AudioResponseFormat")] +[CodeGenType("AudioResponseFormat")] internal readonly partial struct InternalAudioResponseFormat { } \ No newline at end of file diff --git a/src/Custom/Audio/SpeechGenerationOptions.cs b/src/Custom/Audio/SpeechGenerationOptions.cs index dc94bc72c..409851900 100644 --- a/src/Custom/Audio/SpeechGenerationOptions.cs +++ b/src/Custom/Audio/SpeechGenerationOptions.cs @@ -1,7 +1,7 @@ namespace OpenAI.Audio; /// The options to configure text-to-speech audio generation. -[CodeGenModel("CreateSpeechRequest")] +[CodeGenType("CreateSpeechRequest")] [CodeGenSuppress("SpeechGenerationOptions", typeof(InternalCreateSpeechRequestModel), typeof(string), typeof(GeneratedSpeechVoice))] public partial class SpeechGenerationOptions { diff --git a/src/Custom/Audio/TranscribedSegment.cs b/src/Custom/Audio/TranscribedSegment.cs index ab11007c3..48af7a52f 100644 --- a/src/Custom/Audio/TranscribedSegment.cs +++ b/src/Custom/Audio/TranscribedSegment.cs @@ -5,7 +5,7 @@ namespace OpenAI.Audio; /// A segment of the transcribed audio. -[CodeGenModel("TranscriptionSegment")] +[CodeGenType("TranscriptionSegment")] [StructLayout(LayoutKind.Auto)] public readonly partial struct TranscribedSegment { diff --git a/src/Custom/Audio/TranscribedWord.cs b/src/Custom/Audio/TranscribedWord.cs index 5b0d76c4f..25c087ce0 100644 --- a/src/Custom/Audio/TranscribedWord.cs +++ b/src/Custom/Audio/TranscribedWord.cs @@ -5,7 +5,7 @@ namespace OpenAI.Audio; /// A word of the transcribed audio. -[CodeGenModel("TranscriptionWord")] +[CodeGenType("TranscriptionWord")] [StructLayout(LayoutKind.Auto)] public readonly partial struct TranscribedWord { diff --git a/src/Custom/Batch/BatchClient.cs b/src/Custom/Batch/BatchClient.cs index c6f6fd867..2729490fa 100644 --- a/src/Custom/Batch/BatchClient.cs +++ b/src/Custom/Batch/BatchClient.cs @@ -13,8 +13,8 @@ namespace OpenAI.Batch; // - Suppressed convenience methods for now. /// The service client for OpenAI batch operations. [Experimental("OPENAI001")] -[CodeGenClient("Batches")] -[CodeGenSuppress("BatchClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Batches")] +[CodeGenSuppress("BatchClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateBatch", typeof(string), typeof(InternalCreateBatchRequestEndpoint), typeof(InternalBatchCompletionTimeframe), typeof(IDictionary), typeof(CancellationToken))] [CodeGenSuppress("CreateBatchAsync", typeof(string), typeof(InternalCreateBatchRequestEndpoint), typeof(InternalBatchCompletionTimeframe), typeof(IDictionary), typeof(CancellationToken))] [CodeGenSuppress("CreateBatch", typeof(BinaryContent), typeof(RequestOptions))] @@ -81,6 +81,6 @@ protected internal BatchClient(ClientPipeline pipeline, OpenAIClientOptions opti internal virtual CreateBatchOperation CreateCreateBatchOperation(string batchId, string status, PipelineResponse response) { - return new CreateBatchOperation(Pipeline, _endpoint, batchId, status, response); + return new CreateBatchOperation(this, _endpoint, batchId, status, response); } } diff --git a/src/Custom/Batch/CreateBatchOperation.Protocol.cs b/src/Custom/Batch/CreateBatchOperation.Protocol.cs index 2a096567c..7c9b4041c 100644 --- a/src/Custom/Batch/CreateBatchOperation.Protocol.cs +++ b/src/Custom/Batch/CreateBatchOperation.Protocol.cs @@ -17,20 +17,19 @@ namespace OpenAI.Batch; [Experimental("OPENAI001")] public class CreateBatchOperation : OperationResult { - private readonly ClientPipeline _pipeline; + private readonly BatchClient _parentClient; private readonly Uri _endpoint; - private readonly string _batchId; internal CreateBatchOperation( - ClientPipeline pipeline, + BatchClient parentClient, Uri endpoint, string batchId, string status, PipelineResponse response) - : base(response) + : base(response) { - _pipeline = pipeline; + _parentClient = parentClient; _endpoint = endpoint; _batchId = batchId; @@ -160,8 +159,8 @@ private static bool GetHasCompleted(string? status) /// The response returned from the service. public virtual async Task GetBatchAsync(RequestOptions? options) { - using PipelineMessage message = CreateRetrieveBatchRequest(_batchId, options); - return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + using PipelineMessage message = _parentClient.CreateRetrieveBatchRequest(_batchId, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } /// @@ -172,8 +171,8 @@ public virtual async Task GetBatchAsync(RequestOptions? options) /// The response returned from the service. public virtual ClientResult GetBatch(RequestOptions? options) { - using PipelineMessage message = CreateRetrieveBatchRequest(_batchId, options); - return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); + using PipelineMessage message = _parentClient.CreateRetrieveBatchRequest(_batchId, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); } /// @@ -184,8 +183,8 @@ public virtual ClientResult GetBatch(RequestOptions? options) /// The response returned from the service. public virtual async Task CancelAsync(RequestOptions? options) { - using PipelineMessage message = CreateCancelBatchRequest(_batchId, options); - return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + using PipelineMessage message = _parentClient.CreateCancelBatchRequest(_batchId, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } /// @@ -196,43 +195,7 @@ public virtual async Task CancelAsync(RequestOptions? options) /// The response returned from the service. public virtual ClientResult Cancel(RequestOptions? options) { - using PipelineMessage message = CreateCancelBatchRequest(_batchId, options); - return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); - } - - internal virtual PipelineMessage CreateRetrieveBatchRequest(string batchId, RequestOptions? options) - { - var message = _pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/batches/", false); - uri.AppendPath(batchId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; + using PipelineMessage message = _parentClient.CreateCancelBatchRequest(_batchId, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); } - - internal virtual PipelineMessage CreateCancelBatchRequest(string batchId, RequestOptions? options) - { - var message = _pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/batches/", false); - uri.AppendPath(batchId, true); - uri.AppendPath("/cancel", false); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - private static PipelineMessageClassifier? _pipelineMessageClassifier200; - private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 ??= PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); } \ No newline at end of file diff --git a/src/Custom/Batch/Internal/GeneratorStubs.cs b/src/Custom/Batch/Internal/GeneratorStubs.cs index a3675b6f1..233a1f056 100644 --- a/src/Custom/Batch/Internal/GeneratorStubs.cs +++ b/src/Custom/Batch/Internal/GeneratorStubs.cs @@ -2,53 +2,53 @@ namespace OpenAI.Batch; // CUSTOM: Made internal. -[CodeGenModel("CreateBatchRequestCompletionWindow")] +[CodeGenType("CreateBatchRequestCompletionWindow")] internal readonly partial struct InternalBatchCompletionTimeframe { } -[CodeGenModel("BatchErrorsDatum")] +[CodeGenType("BatchErrorsDatum")] internal partial class InternalBatchError { } -[CodeGenModel("BatchErrors")] +[CodeGenType("BatchErrors")] internal partial class InternalBatchErrors { } -[CodeGenModel("BatchErrorsObject")] +[CodeGenType("BatchErrorsObject")] internal readonly partial struct InternalBatchErrorsObject { } -[CodeGenModel("Batch")] +[CodeGenType("Batch")] internal partial class InternalBatchJob { } -[CodeGenModel("BatchObject")] +[CodeGenType("BatchObject")] internal readonly partial struct InternalBatchObject { } -[CodeGenModel("BatchRequestCounts")] +[CodeGenType("BatchRequestCounts")] internal partial class InternalBatchRequestCounts { } -[CodeGenModel("BatchRequestInput")] +[CodeGenType("BatchRequestInput")] internal partial class InternalBatchRequestInput { } -[CodeGenModel("BatchRequestInputMethod")] +[CodeGenType("BatchRequestInputMethod")] internal readonly partial struct InternalBatchRequestInputMethod { } -[CodeGenModel("BatchRequestOutput")] +[CodeGenType("BatchRequestOutput")] internal partial class InternalBatchRequestOutput { } -[CodeGenModel("BatchRequestOutputError")] +[CodeGenType("BatchRequestOutputError1")] internal partial class InternalBatchRequestOutputError { } -[CodeGenModel("BatchRequestOutputResponse")] +[CodeGenType("BatchRequestOutputResponse1")] internal partial class InternalBatchRequestOutputResponse { } -[CodeGenModel("BatchStatus")] +[CodeGenType("BatchStatus")] internal readonly partial struct InternalBatchStatus { } -[CodeGenModel("CreateBatchRequest")] +[CodeGenType("CreateBatchRequest")] internal partial class InternalCreateBatchRequest { } -[CodeGenModel("CreateBatchRequestEndpoint")] +[CodeGenType("CreateBatchRequestEndpoint")] internal readonly partial struct InternalCreateBatchRequestEndpoint { } -[CodeGenModel("ListBatchesResponse")] +[CodeGenType("ListBatchesResponse")] internal partial class InternalListBatchesResponse { } -[CodeGenModel("ListBatchesResponseObject")] +[CodeGenType("ListBatchesResponseObject")] internal readonly partial struct InternalListBatchesResponseObject { } \ No newline at end of file diff --git a/src/Custom/Chat/ChatAudioOptions.cs b/src/Custom/Chat/ChatAudioOptions.cs index 03b4f6a51..d0b7afeaa 100644 --- a/src/Custom/Chat/ChatAudioOptions.cs +++ b/src/Custom/Chat/ChatAudioOptions.cs @@ -11,7 +11,7 @@ namespace OpenAI.Chat; /// When provided to a instance's property, /// the request's specified content modalities will be automatically updated to reflect desired audio output. /// -[CodeGenModel("CreateChatCompletionRequestAudio")] +[CodeGenType("CreateChatCompletionRequestAudio1")] public partial class ChatAudioOptions { // CUSTOM: Renamed. diff --git a/src/Custom/Chat/ChatClient.cs b/src/Custom/Chat/ChatClient.cs index cff46f3b5..6befdfc5c 100644 --- a/src/Custom/Chat/ChatClient.cs +++ b/src/Custom/Chat/ChatClient.cs @@ -14,8 +14,8 @@ namespace OpenAI.Chat; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// The service client for OpenAI chat operations. -[CodeGenClient("Chat")] -[CodeGenSuppress("ChatClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Chat")] +[CodeGenSuppress("ChatClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateChatCompletionAsync", typeof(ChatCompletionOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateChatCompletion", typeof(ChatCompletionOptions), typeof(CancellationToken))] public partial class ChatClient @@ -188,10 +188,10 @@ public virtual AsyncCollectionResult CompleteChat CreateChatCompletionOptions(messages, ref options, stream: true); using BinaryContent content = options; - - async Task sendRequestAsync() => - await CompleteChatAsync(content, cancellationToken.ToRequestOptions(streaming: true)).ConfigureAwait(false); - return new InternalAsyncStreamingChatCompletionUpdateCollection(sendRequestAsync, cancellationToken); + return new AsyncSseUpdateCollection( + async () => await CompleteChatAsync(content, cancellationToken.ToRequestOptions(streaming: true)).ConfigureAwait(false), + StreamingChatCompletionUpdate.DeserializeStreamingChatCompletionUpdate, + cancellationToken); } /// @@ -215,8 +215,10 @@ public virtual CollectionResult CompleteChatStrea CreateChatCompletionOptions(messages, ref options, stream: true); using BinaryContent content = options; - ClientResult sendRequest() => CompleteChat(content, cancellationToken.ToRequestOptions(streaming: true)); - return new InternalStreamingChatCompletionUpdateCollection(sendRequest, cancellationToken); + return new SseUpdateCollection( + () => CompleteChat(content, cancellationToken.ToRequestOptions(streaming: true)), + StreamingChatCompletionUpdate.DeserializeStreamingChatCompletionUpdate, + cancellationToken); } /// diff --git a/src/Custom/Chat/ChatCompletion.cs b/src/Custom/Chat/ChatCompletion.cs index bb57e3c0f..cb0d45451 100644 --- a/src/Custom/Chat/ChatCompletion.cs +++ b/src/Custom/Chat/ChatCompletion.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; +using System.Linq; namespace OpenAI.Chat; /// A chat completion generated by the model. -[CodeGenModel("CreateChatCompletionResponse")] +[CodeGenType("CreateChatCompletionResponse")] public partial class ChatCompletion { private IReadOnlyList _contentTokenLogProbabilities; @@ -87,4 +88,7 @@ public partial class ChatCompletion /// The audio response generated by the model. public ChatOutputAudio OutputAudio => Choices[0].Message.Audio; + + public IReadOnlyList Annotations + => [.. Choices[0].Message.Annotations]; } diff --git a/src/Custom/Chat/ChatCompletionOptions.cs b/src/Custom/Chat/ChatCompletionOptions.cs index f23abf28a..fa02f9f49 100644 --- a/src/Custom/Chat/ChatCompletionOptions.cs +++ b/src/Custom/Chat/ChatCompletionOptions.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat; /// /// Request-level options for chat completion. /// -[CodeGenModel("CreateChatCompletionRequest")] +[CodeGenType("CreateChatCompletionRequest")] [CodeGenSuppress("ChatCompletionOptions", typeof(IEnumerable), typeof(InternalCreateChatCompletionRequestModel?))] [CodeGenSerialization(nameof(Messages), SerializationValueHook = nameof(SerializeMessagesValue))] [CodeGenSerialization(nameof(StopSequences), SerializationValueHook = nameof(SerializeStopSequencesValue), DeserializationValueHook = nameof(DeserializeStopSequencesValue))] @@ -109,7 +109,7 @@ public ChatCompletionOptions() // CUSTOM: Renamed. /// - /// Whether to enable parallel function calling during tool use. + /// Whether to enable parallel function calling during tool use. /// /// /// Assumed true if not otherwise specified. diff --git a/src/Custom/Chat/ChatFinishReason.cs b/src/Custom/Chat/ChatFinishReason.cs index 85690c961..0debf3489 100644 --- a/src/Custom/Chat/ChatFinishReason.cs +++ b/src/Custom/Chat/ChatFinishReason.cs @@ -37,7 +37,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("CreateChatCompletionResponseChoiceFinishReason1")] +[CodeGenType("CreateChatCompletionResponseChoiceFinishReason1")] public enum ChatFinishReason { /// diff --git a/src/Custom/Chat/ChatFunction.cs b/src/Custom/Chat/ChatFunction.cs index c3f309063..d66303ccc 100644 --- a/src/Custom/Chat/ChatFunction.cs +++ b/src/Custom/Chat/ChatFunction.cs @@ -6,7 +6,7 @@ namespace OpenAI.Chat; /// Represents the definition of a function that the model may call, as supplied in a chat completion request. /// [Obsolete($"This class is obsolete. Please use {nameof(ChatTool)} instead.")] -[CodeGenModel("ChatCompletionFunctions")] +[CodeGenType("ChatCompletionFunctions")] [CodeGenSuppress("ChatFunction", typeof(string))] public partial class ChatFunction { diff --git a/src/Custom/Chat/ChatFunctionCall.cs b/src/Custom/Chat/ChatFunctionCall.cs index 12ece7882..091a2855f 100644 --- a/src/Custom/Chat/ChatFunctionCall.cs +++ b/src/Custom/Chat/ChatFunctionCall.cs @@ -20,7 +20,7 @@ namespace OpenAI.Chat; /// /// [Obsolete($"This class is obsolete. Please use {nameof(ChatToolCall)} instead.")] -[CodeGenModel("ChatCompletionRequestAssistantMessageFunctionCall")] +[CodeGenType("ChatCompletionRequestAssistantMessageFunctionCall1")] [CodeGenSerialization(nameof(FunctionArguments), SerializationValueHook = nameof(SerializeFunctionArgumentsValue), DeserializationValueHook = nameof(DeserializeFunctionArgumentsValue))] public partial class ChatFunctionCall { @@ -32,7 +32,7 @@ public partial class ChatFunctionCall // CUSTOM: // - Renamed. // - Changed type from string to BinaryData. - /// + /// /// The arguments to call the function with, as generated by the model in JSON format. Note /// that the model does not always generate valid JSON, and may hallucinate parameters not /// defined by your function schema. Validate the arguments in your code before calling your diff --git a/src/Custom/Chat/ChatFunctionChoice.cs b/src/Custom/Chat/ChatFunctionChoice.cs index 248dfb662..836076731 100644 --- a/src/Custom/Chat/ChatFunctionChoice.cs +++ b/src/Custom/Chat/ChatFunctionChoice.cs @@ -7,7 +7,7 @@ namespace OpenAI.Chat; /// Represents a desired manner in which the model should use the functions defined in a chat completion request. /// [Obsolete($"This class is obsolete. Please use {nameof(ChatToolChoice)} instead.")] -[CodeGenModel("ChatCompletionFunctionChoice")] +[CodeGenType("ChatCompletionFunctionChoice")] [CodeGenSuppress("ChatFunctionChoice", typeof(IDictionary))] public partial class ChatFunctionChoice { diff --git a/src/Custom/Chat/ChatImageDetailLevel.cs b/src/Custom/Chat/ChatImageDetailLevel.cs index 5676bc43a..90dcaa295 100644 --- a/src/Custom/Chat/ChatImageDetailLevel.cs +++ b/src/Custom/Chat/ChatImageDetailLevel.cs @@ -4,7 +4,7 @@ namespace OpenAI.Chat; /// The level of detail with which the model should process the image and generate its textual understanding of /// it. Learn more in the vision guide. /// -[CodeGenModel("ChatCompletionRequestMessageContentPartImageImageUrlDetail")] +[CodeGenType("ChatCompletionRequestMessageContentPartImageImageUrlDetail")] public readonly partial struct ChatImageDetailLevel { } diff --git a/src/Custom/Chat/ChatInputAudioFormat.cs b/src/Custom/Chat/ChatInputAudioFormat.cs index cd32981ed..c28d7be5d 100644 --- a/src/Custom/Chat/ChatInputAudioFormat.cs +++ b/src/Custom/Chat/ChatInputAudioFormat.cs @@ -4,7 +4,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionRequestMessageContentPartAudioInputAudioFormat")] +[CodeGenType("ChatCompletionRequestMessageContentPartAudioInputAudioFormat")] public readonly partial struct ChatInputAudioFormat { diff --git a/src/Custom/Chat/ChatInputTokenUsageDetails.cs b/src/Custom/Chat/ChatInputTokenUsageDetails.cs index 9e10f6e32..19eddd67b 100644 --- a/src/Custom/Chat/ChatInputTokenUsageDetails.cs +++ b/src/Custom/Chat/ChatInputTokenUsageDetails.cs @@ -1,7 +1,7 @@ namespace OpenAI.Chat; /// A breakdown of the number of tokens used in the input as reported in . -[CodeGenModel("CompletionUsagePromptTokensDetails")] +[CodeGenType("CompletionUsagePromptTokensDetails")] public partial class ChatInputTokenUsageDetails { // CUSTOM: Renamed. diff --git a/src/Custom/Chat/ChatMessageAnnotation.cs b/src/Custom/Chat/ChatMessageAnnotation.cs new file mode 100644 index 000000000..6ddfcb0a1 --- /dev/null +++ b/src/Custom/Chat/ChatMessageAnnotation.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; + +namespace OpenAI.Chat; + +[CodeGenType("ChatCompletionResponseMessageAnnotation")] +public partial class ChatMessageAnnotation +{ + public int StartIndex => UrlCitation?.StartIndex + ?? 0; + public int EndIndex => UrlCitation?.EndIndex + ?? 0; + public Uri WebResourceUri => UrlCitation?.Url; + public string WebResourceTitle => UrlCitation?.Title; + + [CodeGenMember("UrlCitation")] + internal InternalChatCompletionResponseMessageAnnotationUrlCitation UrlCitation { get; } + + [CodeGenMember("Type")] + internal InternalChatCompletionResponseMessageAnnotationType Type { get; } = "url_citation"; + +} \ No newline at end of file diff --git a/src/Custom/Chat/ChatMessageContent.cs b/src/Custom/Chat/ChatMessageContent.cs index 54868ae32..aa810a8df 100644 --- a/src/Custom/Chat/ChatMessageContent.cs +++ b/src/Custom/Chat/ChatMessageContent.cs @@ -5,7 +5,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatMessageContent")] +[CodeGenType("ChatMessageContent")] public partial class ChatMessageContent : Collection { public ChatMessageContent() @@ -28,6 +28,10 @@ public ChatMessageContent(params ChatMessageContentPart[] contentParts) { } + internal ChatMessageContent(IDictionary additionalBinaryDataProperties) + : this() + { } + internal bool IsInnerCollectionDefined() { return !(Items is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined); diff --git a/src/Custom/Chat/ChatMessageContentPart.cs b/src/Custom/Chat/ChatMessageContentPart.cs index abcc1aa03..e4b009215 100644 --- a/src/Custom/Chat/ChatMessageContentPart.cs +++ b/src/Custom/Chat/ChatMessageContentPart.cs @@ -25,7 +25,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatMessageContentPart")] +[CodeGenType("ChatMessageContentPart")] [CodeGenSuppress("ChatMessageContentPart", typeof(IDictionary))] public partial class ChatMessageContentPart { diff --git a/src/Custom/Chat/ChatMessageRole.cs b/src/Custom/Chat/ChatMessageRole.cs index 53dce4c77..e238e81f0 100644 --- a/src/Custom/Chat/ChatMessageRole.cs +++ b/src/Custom/Chat/ChatMessageRole.cs @@ -54,7 +54,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatCompletionRole")] +[CodeGenType("ChatCompletionRole")] public enum ChatMessageRole { /// diff --git a/src/Custom/Chat/ChatOutputAudio.cs b/src/Custom/Chat/ChatOutputAudio.cs index 1c151bc93..7c281cd97 100644 --- a/src/Custom/Chat/ChatOutputAudio.cs +++ b/src/Custom/Chat/ChatOutputAudio.cs @@ -7,7 +7,7 @@ namespace OpenAI.Chat; /// /// Represents the audio output generated by the model as part of a chat completion response. /// -[CodeGenModel("ChatCompletionResponseMessageAudio")] +[CodeGenType("ChatCompletionResponseMessageAudio1")] public partial class ChatOutputAudio { // CUSTOM: Renamed. diff --git a/src/Custom/Chat/ChatOutputAudioFormat.cs b/src/Custom/Chat/ChatOutputAudioFormat.cs index 12cb5e909..51007b9c8 100644 --- a/src/Custom/Chat/ChatOutputAudioFormat.cs +++ b/src/Custom/Chat/ChatOutputAudioFormat.cs @@ -8,7 +8,7 @@ namespace OpenAI.Chat; /// Specifies the audio format the model should use when generating output audio as part of a chat completion /// response. /// -[CodeGenModel("CreateChatCompletionRequestAudioFormat")] +[CodeGenType("CreateChatCompletionRequestAudioFormat")] public readonly partial struct ChatOutputAudioFormat { diff --git a/src/Custom/Chat/ChatOutputAudioReference.cs b/src/Custom/Chat/ChatOutputAudioReference.cs index 2991ca107..2efae4c84 100644 --- a/src/Custom/Chat/ChatOutputAudioReference.cs +++ b/src/Custom/Chat/ChatOutputAudioReference.cs @@ -14,7 +14,7 @@ namespace OpenAI.Chat; /// responses, respectively. The constructor overload can also be /// used to automatically populate the appropriate properties from a instance. /// -[CodeGenModel("ChatCompletionRequestAssistantMessageAudio")] +[CodeGenType("ChatCompletionRequestAssistantMessageAudio1")] public partial class ChatOutputAudioReference { } \ No newline at end of file diff --git a/src/Custom/Chat/ChatOutputAudioVoice.cs b/src/Custom/Chat/ChatOutputAudioVoice.cs index 4d8fc3bd1..5b6902978 100644 --- a/src/Custom/Chat/ChatOutputAudioVoice.cs +++ b/src/Custom/Chat/ChatOutputAudioVoice.cs @@ -7,7 +7,7 @@ namespace OpenAI.Chat; /// /// Specifies the available voices that the model can use when generating output audio as part of a chat completion. /// -[CodeGenModel("CreateChatCompletionRequestAudioVoice")] +[CodeGenType("CreateChatCompletionRequestAudioVoice")] public readonly partial struct ChatOutputAudioVoice { diff --git a/src/Custom/Chat/ChatOutputPrediction.cs b/src/Custom/Chat/ChatOutputPrediction.cs index d355c4d38..a564591af 100644 --- a/src/Custom/Chat/ChatOutputPrediction.cs +++ b/src/Custom/Chat/ChatOutputPrediction.cs @@ -4,7 +4,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatOutputPrediction")] +[CodeGenType("ChatOutputPrediction")] public partial class ChatOutputPrediction { public static ChatOutputPrediction CreateStaticContentPrediction(IEnumerable staticContentParts) diff --git a/src/Custom/Chat/ChatOutputTokenUsageDetails.cs b/src/Custom/Chat/ChatOutputTokenUsageDetails.cs index 27bac3698..ea402a2e5 100644 --- a/src/Custom/Chat/ChatOutputTokenUsageDetails.cs +++ b/src/Custom/Chat/ChatOutputTokenUsageDetails.cs @@ -1,11 +1,11 @@ namespace OpenAI.Chat; /// A breakdown of the number of tokens used to generate the output as reported in . -[CodeGenModel("CompletionUsageCompletionTokensDetails")] +[CodeGenType("CompletionUsageCompletionTokensDetails")] public partial class ChatOutputTokenUsageDetails { // CUSTOM: Renamed. - /// The number of tokens consumed internally by the model for the purpose of reasoning. + /// The number of tokens consumed internally by the model for the purpose of reasoning. /// Only applicable to models with reasoning capabilities, such as the OpenAI o1 series. [CodeGenMember("ReasoningTokens")] public int ReasoningTokenCount { get; } diff --git a/src/Custom/Chat/ChatReasoningEffortLevel.cs b/src/Custom/Chat/ChatReasoningEffortLevel.cs index 8f11b7d71..77add09ba 100644 --- a/src/Custom/Chat/ChatReasoningEffortLevel.cs +++ b/src/Custom/Chat/ChatReasoningEffortLevel.cs @@ -4,6 +4,6 @@ namespace OpenAI.Chat; -[CodeGenModel("CreateChatCompletionRequestReasoningEffort")] +[CodeGenType("ReasoningEffort")] public readonly partial struct ChatReasoningEffortLevel {} \ No newline at end of file diff --git a/src/Custom/Chat/ChatResponseFormat.cs b/src/Custom/Chat/ChatResponseFormat.cs index eb1f0f39d..c7cbe9f14 100644 --- a/src/Custom/Chat/ChatResponseFormat.cs +++ b/src/Custom/Chat/ChatResponseFormat.cs @@ -21,7 +21,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatResponseFormat")] +[CodeGenType("ChatResponseFormat")] public partial class ChatResponseFormat { /// Creates a new requesting plain text. @@ -86,7 +86,7 @@ public partial class ChatResponseFormat /// in the /// structured outputs guide. /// - /// + /// /// or is null. /// is an empty string, and was expected to be non-empty. public static ChatResponseFormat CreateJsonSchemaFormat(string jsonSchemaFormatName, BinaryData jsonSchema, string jsonSchemaFormatDescription = null, bool? jsonSchemaIsStrict = null) diff --git a/src/Custom/Chat/ChatTokenLogProbabilityDetails.cs b/src/Custom/Chat/ChatTokenLogProbabilityDetails.cs index a7896f567..a241ed79c 100644 --- a/src/Custom/Chat/ChatTokenLogProbabilityDetails.cs +++ b/src/Custom/Chat/ChatTokenLogProbabilityDetails.cs @@ -7,7 +7,7 @@ namespace OpenAI.Chat; /// Represents a single token's log probability information, as requested via /// . /// -[CodeGenModel("ChatCompletionTokenLogprob")] +[CodeGenType("ChatCompletionTokenLogprob")] public partial class ChatTokenLogProbabilityDetails { // CUSTOM: Renamed. diff --git a/src/Custom/Chat/ChatTokenTopLogProbabilityDetails.cs b/src/Custom/Chat/ChatTokenTopLogProbabilityDetails.cs index 3260ce645..586179ca7 100644 --- a/src/Custom/Chat/ChatTokenTopLogProbabilityDetails.cs +++ b/src/Custom/Chat/ChatTokenTopLogProbabilityDetails.cs @@ -8,7 +8,7 @@ namespace OpenAI.Chat; /// and /// . /// -[CodeGenModel("ChatCompletionTokenLogprobTopLogprob")] +[CodeGenType("ChatCompletionTokenLogprobTopLogprob")] public partial class ChatTokenTopLogProbabilityDetails { // CUSTOM: Renamed. diff --git a/src/Custom/Chat/ChatTokenUsage.cs b/src/Custom/Chat/ChatTokenUsage.cs index 9fe7f2893..83f0b4829 100644 --- a/src/Custom/Chat/ChatTokenUsage.cs +++ b/src/Custom/Chat/ChatTokenUsage.cs @@ -3,7 +3,7 @@ namespace OpenAI.Chat; /// /// Represents computed token consumption statistics for a chat completion request. /// -[CodeGenModel("CompletionUsage")] +[CodeGenType("CompletionUsage")] public partial class ChatTokenUsage { // CUSTOM: Renamed. diff --git a/src/Custom/Chat/ChatTool.cs b/src/Custom/Chat/ChatTool.cs index 6cdb2f64b..88081a4a2 100644 --- a/src/Custom/Chat/ChatTool.cs +++ b/src/Custom/Chat/ChatTool.cs @@ -11,7 +11,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatCompletionTool")] +[CodeGenType("ChatCompletionTool")] public partial class ChatTool { // CUSTOM: Made internal. @@ -116,7 +116,7 @@ internal ChatTool(InternalFunctionDefinition function) /// about structured outputs in the /// function calling guide. /// - /// + /// public static ChatTool CreateFunctionTool(string functionName, string functionDescription = null, BinaryData functionParameters = null, bool? functionSchemaIsStrict = null) { Argument.AssertNotNull(functionName, nameof(functionName)); diff --git a/src/Custom/Chat/ChatToolCall.cs b/src/Custom/Chat/ChatToolCall.cs index 88df04d8c..2f4b4e115 100644 --- a/src/Custom/Chat/ChatToolCall.cs +++ b/src/Custom/Chat/ChatToolCall.cs @@ -11,7 +11,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatCompletionMessageToolCall")] +[CodeGenType("ChatCompletionMessageToolCall")] [CodeGenSuppress("ChatToolCall", typeof(string), typeof(InternalChatCompletionMessageToolCallFunction))] public partial class ChatToolCall { @@ -30,7 +30,7 @@ public partial class ChatToolCall public string FunctionName => Function?.Name; // CUSTOM: Spread. - /// + /// /// The arguments that the model is calling the function with, which are generated by the model in JSON format. /// Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your /// function schema. Validate the arguments in your code before calling your function. diff --git a/src/Custom/Chat/ChatToolCallKind.cs b/src/Custom/Chat/ChatToolCallKind.cs index edf4b5db4..63f702c58 100644 --- a/src/Custom/Chat/ChatToolCallKind.cs +++ b/src/Custom/Chat/ChatToolCallKind.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionMessageToolCallType")] +[CodeGenType("ChatCompletionMessageToolCallType")] public enum ChatToolCallKind { Function, diff --git a/src/Custom/Chat/ChatToolChoice.cs b/src/Custom/Chat/ChatToolChoice.cs index 2c598de78..6d6a2bc84 100644 --- a/src/Custom/Chat/ChatToolChoice.cs +++ b/src/Custom/Chat/ChatToolChoice.cs @@ -24,7 +24,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatCompletionToolChoice")] +[CodeGenType("ChatCompletionToolChoice")] public partial class ChatToolChoice { private readonly bool _predefined; diff --git a/src/Custom/Chat/ChatToolKind.cs b/src/Custom/Chat/ChatToolKind.cs index 7d7f7a7af..3f8cbbe01 100644 --- a/src/Custom/Chat/ChatToolKind.cs +++ b/src/Custom/Chat/ChatToolKind.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionToolType")] +[CodeGenType("ChatCompletionToolType")] public enum ChatToolKind { Function, diff --git a/src/Custom/Chat/ChatWebSearchOptions.cs b/src/Custom/Chat/ChatWebSearchOptions.cs new file mode 100644 index 000000000..ca6a24bfe --- /dev/null +++ b/src/Custom/Chat/ChatWebSearchOptions.cs @@ -0,0 +1,14 @@ +using OpenAI.Internal; +using System; + +namespace OpenAI.Chat; + +[CodeGenType("CreateChatCompletionRequestWebSearchOptions")] +public partial class ChatWebSearchOptions +{ + [CodeGenMember("UserLocation")] + internal InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 UserLocation { get; set; } + + [CodeGenMember("SearchContextSize")] + internal InternalWebSearchContextSize? SearchContextSize { get; set; } +} \ No newline at end of file diff --git a/src/Custom/Chat/Internal/GeneratorStubs.cs b/src/Custom/Chat/Internal/GeneratorStubs.cs index 3547f3a9a..fd4233785 100644 --- a/src/Custom/Chat/Internal/GeneratorStubs.cs +++ b/src/Custom/Chat/Internal/GeneratorStubs.cs @@ -1,109 +1,135 @@ +using System.Runtime.InteropServices; + namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionFunctionCallOption")] +[CodeGenType("ChatCompletionFunctionCallOption")] internal partial class InternalChatCompletionFunctionCallOption { } -[CodeGenModel("ChatCompletionMessageToolCallChunkType")] +[CodeGenType("ChatCompletionMessageToolCallChunkType")] internal readonly partial struct InternalChatCompletionMessageToolCallChunkType { } -[CodeGenModel("ChatCompletionNamedToolChoice")] +[CodeGenType("ChatCompletionNamedToolChoice")] internal partial class InternalChatCompletionNamedToolChoice { } -[CodeGenModel("ChatCompletionNamedToolChoiceFunction")] +[CodeGenType("ChatCompletionNamedToolChoiceFunction")] internal partial class InternalChatCompletionNamedToolChoiceFunction { } -[CodeGenModel("ChatCompletionNamedToolChoiceType")] +[CodeGenType("ChatCompletionNamedToolChoiceType")] internal readonly partial struct InternalChatCompletionNamedToolChoiceType { } -[CodeGenModel("ChatCompletionRequestMessageContentPartImage")] +[CodeGenType("ChatCompletionRequestMessageContentPartImage")] internal partial class InternalChatCompletionRequestMessageContentPartImage { } -[CodeGenModel("ChatCompletionRequestMessageContentPartImageType")] +[CodeGenType("ChatCompletionRequestMessageContentPartImageType")] internal readonly partial struct InternalChatCompletionRequestMessageContentPartImageType { } -[CodeGenModel("ChatCompletionRequestMessageContentPartText")] +[CodeGenType("ChatCompletionRequestMessageContentPartText")] internal partial class InternalChatCompletionRequestMessageContentPartText { } -[CodeGenModel("ChatCompletionRequestMessageContentPartTextType")] +[CodeGenType("ChatCompletionRequestMessageContentPartTextType")] internal readonly partial struct InternalChatCompletionRequestMessageContentPartTextType { } -[CodeGenModel("ChatCompletionResponseMessageFunctionCall")] +[CodeGenType("ChatCompletionResponseMessageFunctionCall")] internal partial class InternalChatCompletionResponseMessageFunctionCall { } -[CodeGenModel("ChatCompletionResponseMessageRole")] +[CodeGenType("ChatCompletionResponseMessageRole")] internal readonly partial struct InternalChatCompletionResponseMessageRole { } -[CodeGenModel("ChatCompletionStreamOptions")] +[CodeGenType("ChatCompletionStreamOptions")] internal partial class InternalChatCompletionStreamOptions { } -[CodeGenModel("ChatCompletionStreamResponseDeltaRole2")] +[CodeGenType("ChatCompletionStreamResponseDeltaRole3")] internal readonly partial struct InternalChatCompletionStreamResponseDeltaRole { } -[CodeGenModel("CreateChatCompletionFunctionResponse")] +[CodeGenType("CreateChatCompletionFunctionResponse")] internal partial class InternalCreateChatCompletionFunctionResponse { } -[CodeGenModel("CreateChatCompletionFunctionResponseChoice")] +[CodeGenType("CreateChatCompletionFunctionResponseChoice")] internal partial class InternalCreateChatCompletionFunctionResponseChoice { } -[CodeGenModel("CreateChatCompletionFunctionResponseChoiceFinishReason")] +[CodeGenType("CreateChatCompletionFunctionResponseChoiceFinishReason")] internal readonly partial struct InternalCreateChatCompletionFunctionResponseChoiceFinishReason { } -[CodeGenModel("CreateChatCompletionFunctionResponseObject")] +[CodeGenType("CreateChatCompletionFunctionResponseObject")] internal readonly partial struct InternalCreateChatCompletionFunctionResponseObject { } -[CodeGenModel("ChatCompletionRequestMessageContentPartRefusal")] +[CodeGenType("ChatCompletionRequestMessageContentPartRefusal")] internal partial class InternalChatCompletionRequestMessageContentPartRefusal { } -[CodeGenModel("ChatCompletionRequestMessageContentPartRefusalType")] +[CodeGenType("ChatCompletionRequestMessageContentPartRefusalType")] internal readonly partial struct InternalChatCompletionRequestMessageContentPartRefusalType { } -[CodeGenModel("CreateChatCompletionRequestModel")] +[CodeGenType("CreateChatCompletionRequestModel")] internal readonly partial struct InternalCreateChatCompletionRequestModel { } -[CodeGenModel("CreateChatCompletionRequestServiceTier")] +[CodeGenType("CreateChatCompletionRequestServiceTier")] internal readonly partial struct InternalCreateChatCompletionRequestServiceTier { } -[CodeGenModel("CreateChatCompletionRequestToolChoice")] +[CodeGenType("CreateChatCompletionRequestToolChoice")] internal readonly partial struct InternalCreateChatCompletionRequestToolChoice { } -[CodeGenModel("CreateChatCompletionResponseChoice")] +[CodeGenType("CreateChatCompletionResponseChoice")] internal partial class InternalCreateChatCompletionResponseChoice { } -[CodeGenModel("CreateChatCompletionResponseChoiceLogprobs")] +[CodeGenType("CreateChatCompletionResponseChoiceLogprobs1")] internal partial class InternalCreateChatCompletionResponseChoiceLogprobs { } -[CodeGenModel("CreateChatCompletionResponseObject")] +[CodeGenType("CreateChatCompletionResponseObject")] internal readonly partial struct InternalCreateChatCompletionResponseObject { } -[CodeGenModel("CreateChatCompletionResponseServiceTier")] +[CodeGenType("CreateChatCompletionResponseServiceTier")] internal readonly partial struct InternalCreateChatCompletionResponseServiceTier { } -[CodeGenModel("CreateChatCompletionStreamResponseChoiceFinishReason")] +[CodeGenType("CreateChatCompletionStreamResponseChoiceFinishReason")] internal readonly partial struct InternalCreateChatCompletionStreamResponseChoiceFinishReason { } -[CodeGenModel("CreateChatCompletionStreamResponseChoiceLogprobs")] +[CodeGenType("CreateChatCompletionStreamResponseChoiceLogprobs1")] internal partial class InternalCreateChatCompletionStreamResponseChoiceLogprobs { } -[CodeGenModel("CreateChatCompletionStreamResponseObject")] +[CodeGenType("CreateChatCompletionStreamResponseObject")] internal readonly partial struct InternalCreateChatCompletionStreamResponseObject { } -[CodeGenModel("CreateChatCompletionStreamResponseServiceTier")] +[CodeGenType("CreateChatCompletionStreamResponseServiceTier")] internal readonly partial struct InternalCreateChatCompletionStreamResponseServiceTier { } -[CodeGenModel("CreateChatCompletionStreamResponseUsage")] +[CodeGenType("CreateChatCompletionStreamResponseUsage1")] internal partial class InternalCreateChatCompletionStreamResponseUsage { } -[CodeGenModel("CreateChatCompletionRequestModality")] +[CodeGenType("CreateChatCompletionRequestModality")] internal readonly partial struct InternalCreateChatCompletionRequestModality { } -[CodeGenModel("ChatCompletionRequestMessageContentPartAudioType")] +[CodeGenType("ChatCompletionRequestMessageContentPartAudioType")] internal readonly partial struct InternalChatCompletionRequestMessageContentPartAudioType { } -[CodeGenModel("ChatCompletionRequestMessageContentPartAudio")] +[CodeGenType("ChatCompletionRequestMessageContentPartAudio")] internal partial class InternalChatCompletionRequestMessageContentPartAudio { } -[CodeGenModel("ChatCompletionRequestMessageContentPartAudioInputAudio")] +[CodeGenType("ChatCompletionRequestMessageContentPartAudioInputAudio")] internal partial class InternalChatCompletionRequestMessageContentPartAudioInputAudio { } -[CodeGenModel("UnknownChatOutputPrediction")] -internal partial class InternalUnknownChatOutputPrediction { } \ No newline at end of file +[CodeGenType("UnknownChatOutputPrediction")] +internal partial class InternalUnknownChatOutputPrediction { } + +[CodeGenType("ChatCompletionRequestMessageContentPartFileType")] +internal readonly partial struct InternalChatCompletionRequestMessageContentPartFileType { } + +[CodeGenType("CreateChatCompletionRequestWebSearchOptionsUserLocation1Type")] +internal readonly partial struct InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type { } + +[CodeGenType("ChatCompletionResponseMessageAnnotationType")] +internal readonly partial struct InternalChatCompletionResponseMessageAnnotationType { } + +[CodeGenType("ChatCompletionRequestMessageContentPartFile")] +internal partial class InternalChatCompletionRequestMessageContentPartFile { } + +[CodeGenType("ChatCompletionRequestMessageContentPartFileFile")] +internal partial class InternalChatCompletionRequestMessageContentPartFileFile { } + +[CodeGenType("CreateChatCompletionRequestWebSearchOptionsUserLocation1")] +internal partial class InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 { } + +[CodeGenType("ChatCompletionResponseMessageAnnotationUrlCitation")] +internal partial class InternalChatCompletionResponseMessageAnnotationUrlCitation { } + +[CodeGenType("CreateChatCompletionStreamResponseChoiceFinishReason1")] +internal readonly partial struct InternalCreateChatCompletionStreamResponseChoiceFinishReason1 { } diff --git a/src/Custom/Chat/Internal/InternalChatCompletionMessageToolCallFunction.cs b/src/Custom/Chat/Internal/InternalChatCompletionMessageToolCallFunction.cs index 3820ad9b8..ed0cb41c3 100644 --- a/src/Custom/Chat/Internal/InternalChatCompletionMessageToolCallFunction.cs +++ b/src/Custom/Chat/Internal/InternalChatCompletionMessageToolCallFunction.cs @@ -2,7 +2,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionMessageToolCallFunction")] +[CodeGenType("ChatCompletionMessageToolCallFunction")] [CodeGenSerialization(nameof(Arguments), SerializationValueHook = nameof(SerializeArgumentsValue), DeserializationValueHook = nameof(DeserializeArgumentsValue))] internal partial class InternalChatCompletionMessageToolCallFunction { diff --git a/src/Custom/Chat/Internal/InternalChatCompletionRequestMessageContentPartImageImageUrl.cs b/src/Custom/Chat/Internal/InternalChatCompletionRequestMessageContentPartImageImageUrl.cs index ab2f56ab1..13d33edd8 100644 --- a/src/Custom/Chat/Internal/InternalChatCompletionRequestMessageContentPartImageImageUrl.cs +++ b/src/Custom/Chat/Internal/InternalChatCompletionRequestMessageContentPartImageImageUrl.cs @@ -4,7 +4,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionRequestMessageContentPartImageImageUrl")] +[CodeGenType("ChatCompletionRequestMessageContentPartImageImageUrl")] [CodeGenSuppress("InternalChatCompletionRequestMessageContentPartImageImageUrl", typeof(string))] internal partial class InternalChatCompletionRequestMessageContentPartImageImageUrl { diff --git a/src/Custom/Chat/Internal/InternalChatCompletionResponseMessage.cs b/src/Custom/Chat/Internal/InternalChatCompletionResponseMessage.cs index 607a63c74..373c0f99d 100644 --- a/src/Custom/Chat/Internal/InternalChatCompletionResponseMessage.cs +++ b/src/Custom/Chat/Internal/InternalChatCompletionResponseMessage.cs @@ -3,7 +3,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionResponseMessage")] +[CodeGenType("ChatCompletionResponseMessage")] [CodeGenSuppress("InternalChatCompletionResponseMessage", typeof(IEnumerable))] internal partial class InternalChatCompletionResponseMessage { diff --git a/src/Custom/Chat/Internal/InternalChatCompletionStreamResponseDelta.cs b/src/Custom/Chat/Internal/InternalChatCompletionStreamResponseDelta.cs index 1b7c58d68..1f9759860 100644 --- a/src/Custom/Chat/Internal/InternalChatCompletionStreamResponseDelta.cs +++ b/src/Custom/Chat/Internal/InternalChatCompletionStreamResponseDelta.cs @@ -2,7 +2,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatCompletionStreamResponseDelta")] +[CodeGenType("ChatCompletionStreamResponseDelta")] [CodeGenSuppress("InternalChatCompletionStreamResponseDelta")] internal partial class InternalChatCompletionStreamResponseDelta { diff --git a/src/Custom/Chat/Internal/InternalChatOutputPredictionContent.cs b/src/Custom/Chat/Internal/InternalChatOutputPredictionContent.cs index a3d643a9b..53eb69157 100644 --- a/src/Custom/Chat/Internal/InternalChatOutputPredictionContent.cs +++ b/src/Custom/Chat/Internal/InternalChatOutputPredictionContent.cs @@ -6,7 +6,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatOutputPredictionContent")] +[CodeGenType("ChatOutputPredictionContent")] internal partial class InternalChatOutputPredictionContent { // CUSTOM: Assign type to a collection of content parts diff --git a/src/Custom/Chat/Internal/InternalChatOutputPredictionKind.cs b/src/Custom/Chat/Internal/InternalChatOutputPredictionKind.cs index c0ee32bb1..7b567d2b6 100644 --- a/src/Custom/Chat/Internal/InternalChatOutputPredictionKind.cs +++ b/src/Custom/Chat/Internal/InternalChatOutputPredictionKind.cs @@ -4,7 +4,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatOutputPredictionType")] +[CodeGenType("ChatOutputPredictionType")] internal readonly partial struct InternalChatOutputPredictionKind { // CUSTOM: Rename for clarity. diff --git a/src/Custom/Chat/Internal/InternalChatResponseFormatJsonObject.cs b/src/Custom/Chat/Internal/InternalChatResponseFormatJsonObject.cs index f161ae7a8..a04c80e25 100644 --- a/src/Custom/Chat/Internal/InternalChatResponseFormatJsonObject.cs +++ b/src/Custom/Chat/Internal/InternalChatResponseFormatJsonObject.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatResponseFormatJsonObject")] +[CodeGenType("ChatResponseFormatJsonObject")] internal partial class InternalChatResponseFormatJsonObject { } \ No newline at end of file diff --git a/src/Custom/Chat/Internal/InternalChatResponseFormatJsonSchema.cs b/src/Custom/Chat/Internal/InternalChatResponseFormatJsonSchema.cs index cd9e63b5a..deb15ac4c 100644 --- a/src/Custom/Chat/Internal/InternalChatResponseFormatJsonSchema.cs +++ b/src/Custom/Chat/Internal/InternalChatResponseFormatJsonSchema.cs @@ -5,7 +5,7 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatResponseFormatJsonSchema")] +[CodeGenType("ChatResponseFormatJsonSchema")] internal partial class InternalChatResponseFormatJsonSchema { } \ No newline at end of file diff --git a/src/Custom/Chat/Internal/InternalChatResponseFormatText.cs b/src/Custom/Chat/Internal/InternalChatResponseFormatText.cs index 3df5a8bf5..0b4a58c1c 100644 --- a/src/Custom/Chat/Internal/InternalChatResponseFormatText.cs +++ b/src/Custom/Chat/Internal/InternalChatResponseFormatText.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("ChatResponseFormatText")] +[CodeGenType("ChatResponseFormatText")] internal partial class InternalChatResponseFormatText { } diff --git a/src/Custom/Chat/Internal/InternalUnknownChatMessage.cs b/src/Custom/Chat/Internal/InternalUnknownChatMessage.cs index cb046b82e..ea5fe1b6e 100644 --- a/src/Custom/Chat/Internal/InternalUnknownChatMessage.cs +++ b/src/Custom/Chat/Internal/InternalUnknownChatMessage.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("UnknownChatCompletionRequestMessage")] +[CodeGenType("UnknownChatCompletionRequestMessage")] internal partial class InternalUnknownChatMessage : ChatMessage { diff --git a/src/Custom/Chat/Internal/InternalUnknownChatResponseFormat.cs b/src/Custom/Chat/Internal/InternalUnknownChatResponseFormat.cs index b869078fc..64d220fc9 100644 --- a/src/Custom/Chat/Internal/InternalUnknownChatResponseFormat.cs +++ b/src/Custom/Chat/Internal/InternalUnknownChatResponseFormat.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("UnknownChatResponseFormat")] +[CodeGenType("UnknownChatResponseFormat")] internal partial class InternalUnknownChatResponseFormat { } \ No newline at end of file diff --git a/src/Custom/Chat/Messages/AssistantChatMessage.cs b/src/Custom/Chat/Messages/AssistantChatMessage.cs index 99d83eec3..da669844d 100644 --- a/src/Custom/Chat/Messages/AssistantChatMessage.cs +++ b/src/Custom/Chat/Messages/AssistantChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat; /// messages are originated by the model on responses, instances typically /// represent chat history or example interactions to guide model behavior. /// -[CodeGenModel("ChatCompletionRequestAssistantMessage")] +[CodeGenType("ChatCompletionRequestAssistantMessage")] public partial class AssistantChatMessage : ChatMessage { // CUSTOM: Made internal. @@ -88,7 +88,7 @@ public AssistantChatMessage(ChatFunctionCall functionCall) /// Creates a new instance of that represents a prior response from the model /// that included audio with a correlation ID. /// - /// The audio reference with an id, produced by the model. + /// The audio reference with an id, produced by the model. public AssistantChatMessage(ChatOutputAudioReference outputAudioReference) { Argument.AssertNotNull(outputAudioReference, nameof(outputAudioReference)); @@ -102,7 +102,7 @@ public AssistantChatMessage(ChatOutputAudioReference outputAudioReference) /// /// /// This constructor will copy the content, tool_calls, and function_call from a chat - /// completion response into a new assistant role request message. + /// completion response into a new assistant role request message. /// /// /// The from which the conversation history request message should be created. diff --git a/src/Custom/Chat/Messages/ChatMessage.cs b/src/Custom/Chat/Messages/ChatMessage.cs index 08221dd2d..207a55c17 100644 --- a/src/Custom/Chat/Messages/ChatMessage.cs +++ b/src/Custom/Chat/Messages/ChatMessage.cs @@ -52,7 +52,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatCompletionRequestMessage")] +[CodeGenType("ChatCompletionRequestMessage")] public partial class ChatMessage { /// diff --git a/src/Custom/Chat/Messages/DeveloperChatMessage.cs b/src/Custom/Chat/Messages/DeveloperChatMessage.cs index e21ae9c01..81da6810b 100644 --- a/src/Custom/Chat/Messages/DeveloperChatMessage.cs +++ b/src/Custom/Chat/Messages/DeveloperChatMessage.cs @@ -8,7 +8,7 @@ namespace OpenAI.Chat; /// assistant role response messages. These messages may help control behavior, style, tone, and /// restrictions for a model-based assistant. Developer messages replace system messages for o1 models and newer. /// -[CodeGenModel("ChatCompletionRequestDeveloperMessage")] +[CodeGenType("ChatCompletionRequestDeveloperMessage")] [CodeGenSuppress("DeveloperChatMessage", typeof(ChatMessageContent))] public partial class DeveloperChatMessage : ChatMessage { diff --git a/src/Custom/Chat/Messages/FunctionChatMessage.cs b/src/Custom/Chat/Messages/FunctionChatMessage.cs index 54d98fdc6..cc9a79fd5 100644 --- a/src/Custom/Chat/Messages/FunctionChatMessage.cs +++ b/src/Custom/Chat/Messages/FunctionChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat; /// assistant response message. /// [Obsolete($"This class is obsolete. Please use {nameof(ToolChatMessage)} instead.")] -[CodeGenModel("ChatCompletionRequestFunctionMessage")] +[CodeGenType("ChatCompletionRequestFunctionMessage")] [CodeGenSuppress("FunctionChatMessage", typeof(string))] [CodeGenSuppress("FunctionChatMessage", typeof(ChatMessageContent), typeof(string))] public partial class FunctionChatMessage : ChatMessage diff --git a/src/Custom/Chat/Messages/SystemChatMessage.cs b/src/Custom/Chat/Messages/SystemChatMessage.cs index 946295bd1..8b3906487 100644 --- a/src/Custom/Chat/Messages/SystemChatMessage.cs +++ b/src/Custom/Chat/Messages/SystemChatMessage.cs @@ -8,7 +8,7 @@ namespace OpenAI.Chat; /// assistant role response messages. These messages may help control behavior, style, tone, and /// restrictions for a model-based assistant. Developer messages replace system messages for o1 models and newer. /// -[CodeGenModel("ChatCompletionRequestSystemMessage")] +[CodeGenType("ChatCompletionRequestSystemMessage")] [CodeGenSuppress("SystemChatMessage", typeof(ChatMessageContent))] public partial class SystemChatMessage : ChatMessage { diff --git a/src/Custom/Chat/Messages/ToolChatMessage.cs b/src/Custom/Chat/Messages/ToolChatMessage.cs index 16925d08c..78acec671 100644 --- a/src/Custom/Chat/Messages/ToolChatMessage.cs +++ b/src/Custom/Chat/Messages/ToolChatMessage.cs @@ -19,7 +19,7 @@ namespace OpenAI.Chat; /// /// /// -[CodeGenModel("ChatCompletionRequestToolMessage")] +[CodeGenType("ChatCompletionRequestToolMessage")] [CodeGenSuppress("ToolChatMessage", typeof(ChatMessageContent), typeof(string))] [CodeGenSuppress("ToolChatMessage", typeof(string))] public partial class ToolChatMessage : ChatMessage diff --git a/src/Custom/Chat/Messages/UserChatMessage.cs b/src/Custom/Chat/Messages/UserChatMessage.cs index e2c97ca16..4d6ffb0ec 100644 --- a/src/Custom/Chat/Messages/UserChatMessage.cs +++ b/src/Custom/Chat/Messages/UserChatMessage.cs @@ -8,7 +8,7 @@ namespace OpenAI.Chat; /// information originating from the caller and serves as a prompt for the model to complete. User messages may result /// in either direct assistant message responses or in calls to supplied tools or functions. /// -[CodeGenModel("ChatCompletionRequestUserMessage")] +[CodeGenType("ChatCompletionRequestUserMessage")] [CodeGenSuppress("UserChatMessage", typeof(ChatMessageContent))] public partial class UserChatMessage : ChatMessage { diff --git a/src/Custom/Chat/OpenAIChatModelFactory.cs b/src/Custom/Chat/OpenAIChatModelFactory.cs index 84c27a756..0e62ebe36 100644 --- a/src/Custom/Chat/OpenAIChatModelFactory.cs +++ b/src/Custom/Chat/OpenAIChatModelFactory.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; +using System.Security.Cryptography.X509Certificates; namespace OpenAI.Chat; @@ -57,16 +58,19 @@ public static ChatCompletion ChatCompletion( string model = null, string systemFingerprint = null, ChatTokenUsage usage = default, - ChatOutputAudio outputAudio = default) + ChatOutputAudio outputAudio = default, + IEnumerable messageAnnotations = default) { content ??= new ChatMessageContent(); toolCalls ??= new List(); contentTokenLogProbabilities ??= new List(); refusalTokenLogProbabilities ??= new List(); + messageAnnotations ??= new List(); - InternalChatCompletionResponseMessage message = new InternalChatCompletionResponseMessage( + InternalChatCompletionResponseMessage message = new( refusal, toolCalls.ToList(), + messageAnnotations.ToList(), outputAudio, role, content, @@ -99,6 +103,27 @@ public static ChatCompletion ChatCompletion( additionalBinaryDataProperties: null); } + /// + /// Creates a new instance of for mocks and testing. + /// + /// + /// + /// + /// + /// + public static ChatMessageAnnotation ChatMessageAnnotation( + int startIndex = default, + int endIndex = default, + Uri webResourceUri = default, + string webResourceTitle = default) + { + return new ChatMessageAnnotation( + new InternalChatCompletionResponseMessageAnnotationUrlCitation( + endIndex, + startIndex, + webResourceUri, + webResourceTitle)); + } /// Initializes a new instance of . /// A new instance for mocking. diff --git a/src/Custom/Chat/Streaming/InternalChatCompletionMessageToolCallChunkFunction.cs b/src/Custom/Chat/Streaming/InternalChatCompletionMessageToolCallChunkFunction.cs index a8cb6ba76..82917aad0 100644 --- a/src/Custom/Chat/Streaming/InternalChatCompletionMessageToolCallChunkFunction.cs +++ b/src/Custom/Chat/Streaming/InternalChatCompletionMessageToolCallChunkFunction.cs @@ -3,7 +3,7 @@ namespace OpenAI.Chat; // CUSTOM: Renamed. -[CodeGenModel("ChatCompletionMessageToolCallChunkFunction")] +[CodeGenType("ChatCompletionMessageToolCallChunkFunction")] [CodeGenSerialization(nameof(Arguments), SerializationValueHook = nameof(SerializeArgumentsValue), DeserializationValueHook = nameof(DeserializeArgumentsValue))] internal partial class InternalChatCompletionMessageToolCallChunkFunction { diff --git a/src/Custom/Chat/Streaming/InternalCreateChatCompletionStreamResponseChoice.cs b/src/Custom/Chat/Streaming/InternalCreateChatCompletionStreamResponseChoice.cs index 9e3a45c5e..a7fff414e 100644 --- a/src/Custom/Chat/Streaming/InternalCreateChatCompletionStreamResponseChoice.cs +++ b/src/Custom/Chat/Streaming/InternalCreateChatCompletionStreamResponseChoice.cs @@ -1,6 +1,6 @@ namespace OpenAI.Chat; -[CodeGenModel("CreateChatCompletionStreamResponseChoice")] +[CodeGenType("CreateChatCompletionStreamResponseChoice")] internal partial class InternalCreateChatCompletionStreamResponseChoice { // CUSTOM: Changed type from string. diff --git a/src/Custom/Chat/Streaming/StreamingChatCompletionUpdate.cs b/src/Custom/Chat/Streaming/StreamingChatCompletionUpdate.cs index 84d5472ff..de5b90374 100644 --- a/src/Custom/Chat/Streaming/StreamingChatCompletionUpdate.cs +++ b/src/Custom/Chat/Streaming/StreamingChatCompletionUpdate.cs @@ -4,7 +4,7 @@ namespace OpenAI.Chat; /// An incremental update corresponding to a streaming chat completion generated by the model. -[CodeGenModel("CreateChatCompletionStreamResponse")] +[CodeGenType("CreateChatCompletionStreamResponse")] public partial class StreamingChatCompletionUpdate { private ChatMessageContent _contentUpdate; diff --git a/src/Custom/Chat/Streaming/StreamingChatFunctionCallUpdate.cs b/src/Custom/Chat/Streaming/StreamingChatFunctionCallUpdate.cs index 7c89be491..7f07a666c 100644 --- a/src/Custom/Chat/Streaming/StreamingChatFunctionCallUpdate.cs +++ b/src/Custom/Chat/Streaming/StreamingChatFunctionCallUpdate.cs @@ -3,7 +3,7 @@ namespace OpenAI.Chat; [Obsolete($"This class is obsolete. Please use {nameof(StreamingChatToolCallUpdate)} instead.")] -[CodeGenModel("ChatCompletionStreamResponseDeltaFunctionCall")] +[CodeGenType("ChatCompletionStreamResponseDeltaFunctionCall")] [CodeGenSerialization(nameof(FunctionArgumentsUpdate), SerializationValueHook = nameof(SerializeFunctionArgumentsUpdateValue), DeserializationValueHook = nameof(DeserializeFunctionArgumentsUpdateValue))] public partial class StreamingChatFunctionCallUpdate { diff --git a/src/Custom/Chat/Streaming/StreamingChatOutputAudioUpdate.cs b/src/Custom/Chat/Streaming/StreamingChatOutputAudioUpdate.cs index ef1058f99..e5cb9c8c7 100644 --- a/src/Custom/Chat/Streaming/StreamingChatOutputAudioUpdate.cs +++ b/src/Custom/Chat/Streaming/StreamingChatOutputAudioUpdate.cs @@ -5,7 +5,7 @@ namespace OpenAI.Chat; /// /// Represents an audio update in a streaming chat response. /// -[CodeGenModel("ChatCompletionMessageAudioChunk")] +[CodeGenType("ChatCompletionMessageAudioChunk")] public partial class StreamingChatOutputAudioUpdate { // CUSTOM: Renamed for clarity of incremental data availability while streaming. diff --git a/src/Custom/Chat/Streaming/StreamingChatToolCallUpdate.cs b/src/Custom/Chat/Streaming/StreamingChatToolCallUpdate.cs index 0256ac302..d5effde61 100644 --- a/src/Custom/Chat/Streaming/StreamingChatToolCallUpdate.cs +++ b/src/Custom/Chat/Streaming/StreamingChatToolCallUpdate.cs @@ -3,7 +3,7 @@ namespace OpenAI.Chat; using System; /// A streaming update representing part of a tool call made by the model. -[CodeGenModel("ChatCompletionMessageToolCallChunk")] +[CodeGenType("ChatCompletionMessageToolCallChunk")] [CodeGenSuppress("StreamingChatToolCallUpdate", typeof(int))] public partial class StreamingChatToolCallUpdate { @@ -33,7 +33,7 @@ public partial class StreamingChatToolCallUpdate public string FunctionName => Function?.Name; // CUSTOM: Spread. - /// + /// /// The update to the arguments that the model is calling the function with, which are generated by the model /// in JSON format. As part of a streaming response, the arguments are chunked and streamed across streaming /// updates, and must therefore be accumulated in order to reconstruct them. Note that the model does not diff --git a/src/Custom/Assistants/FileSearchRanker.cs b/src/Custom/Common/FileSearchRanker.cs similarity index 75% rename from src/Custom/Assistants/FileSearchRanker.cs rename to src/Custom/Common/FileSearchRanker.cs index a0a7caf1c..a635f462c 100644 --- a/src/Custom/Assistants/FileSearchRanker.cs +++ b/src/Custom/Common/FileSearchRanker.cs @@ -3,7 +3,7 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] -[CodeGenModel("FileSearchRankingOptionsRanker")] +[CodeGenType("FileSearchRanker")] public readonly partial struct FileSearchRanker { } diff --git a/src/Custom/Common/Internal/GeneratorStubs.cs b/src/Custom/Common/Internal/GeneratorStubs.cs index a6172b6ac..5f90238ba 100644 --- a/src/Custom/Common/Internal/GeneratorStubs.cs +++ b/src/Custom/Common/Internal/GeneratorStubs.cs @@ -1,19 +1,26 @@ namespace OpenAI.Internal; -[CodeGenModel("OmniTypedResponseFormat")] +[CodeGenType("OmniTypedResponseFormat")] internal partial class InternalOmniTypedResponseFormat { } -[CodeGenModel("ResponseFormatJsonObject")] +[CodeGenType("ResponseFormatJsonObject")] internal partial class InternalResponseFormatJsonObject { } -[CodeGenModel("ResponseFormatJsonSchema")] +[CodeGenType("ResponseFormatJsonSchema")] internal partial class InternalResponseFormatJsonSchema { } -[CodeGenModel("ResponseFormatJsonSchemaSchema")] +[CodeGenType("ResponseFormatJsonSchemaSchema")] internal partial class InternalResponseFormatJsonSchemaSchema { } -[CodeGenModel("ResponseFormatText")] +[CodeGenType("ResponseFormatText")] internal partial class InternalResponseFormatText { } -[CodeGenModel("UnknownOmniTypedResponseFormat")] +[CodeGenType("UnknownOmniTypedResponseFormat")] internal partial class InternalUnknownOmniTypedResponseFormat { } + +[CodeGenType("WebSearchLocation")] +internal partial class InternalWebSearchLocation { } + +[CodeGenType("WebSearchContextSize")] +internal readonly partial struct InternalWebSearchContextSize { } + diff --git a/src/Custom/Common/Internal/InternalResponseFormatJsonSchemaJsonSchema.cs b/src/Custom/Common/Internal/InternalResponseFormatJsonSchemaJsonSchema.cs index 452c7c078..713bd853f 100644 --- a/src/Custom/Common/Internal/InternalResponseFormatJsonSchemaJsonSchema.cs +++ b/src/Custom/Common/Internal/InternalResponseFormatJsonSchemaJsonSchema.cs @@ -2,7 +2,7 @@ namespace OpenAI.Internal; -[CodeGenModel("ResponseFormatJsonSchemaJsonSchema")] +[CodeGenType("ResponseFormatJsonSchemaJsonSchema")] internal partial class InternalResponseFormatJsonSchemaJsonSchema { [CodeGenMember("Schema")] diff --git a/src/Custom/Embeddings/EmbeddingClient.cs b/src/Custom/Embeddings/EmbeddingClient.cs index 2386d0078..359ce4aef 100644 --- a/src/Custom/Embeddings/EmbeddingClient.cs +++ b/src/Custom/Embeddings/EmbeddingClient.cs @@ -15,8 +15,8 @@ namespace OpenAI.Embeddings; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// The service client for OpenAI embedding operations. -[CodeGenClient("Embeddings")] -[CodeGenSuppress("EmbeddingClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Embeddings")] +[CodeGenSuppress("EmbeddingClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateEmbeddingAsync", typeof(EmbeddingGenerationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateEmbedding", typeof(EmbeddingGenerationOptions), typeof(CancellationToken))] public partial class EmbeddingClient diff --git a/src/Custom/Embeddings/EmbeddingGenerationOptions.cs b/src/Custom/Embeddings/EmbeddingGenerationOptions.cs index ba546cbaa..8d9853f16 100644 --- a/src/Custom/Embeddings/EmbeddingGenerationOptions.cs +++ b/src/Custom/Embeddings/EmbeddingGenerationOptions.cs @@ -2,7 +2,7 @@ namespace OpenAI.Embeddings; -[CodeGenModel("CreateEmbeddingRequest")] +[CodeGenType("CreateEmbeddingRequest")] [CodeGenSuppress("EmbeddingGenerationOptions", typeof(BinaryData), typeof(InternalCreateEmbeddingRequestModel))] public partial class EmbeddingGenerationOptions { diff --git a/src/Custom/Embeddings/EmbeddingTokenUsage.cs b/src/Custom/Embeddings/EmbeddingTokenUsage.cs index cdf1d8a48..388312e5c 100644 --- a/src/Custom/Embeddings/EmbeddingTokenUsage.cs +++ b/src/Custom/Embeddings/EmbeddingTokenUsage.cs @@ -1,6 +1,6 @@ namespace OpenAI.Embeddings; -[CodeGenModel("CreateEmbeddingResponseUsage")] +[CodeGenType("CreateEmbeddingResponseUsage")] public partial class EmbeddingTokenUsage { // CUSTOM: Renamed. diff --git a/src/Custom/Embeddings/Internal/GeneratorStubs.cs b/src/Custom/Embeddings/Internal/GeneratorStubs.cs index 0b0502e87..9928a1805 100644 --- a/src/Custom/Embeddings/Internal/GeneratorStubs.cs +++ b/src/Custom/Embeddings/Internal/GeneratorStubs.cs @@ -2,14 +2,14 @@ namespace OpenAI.Embeddings; // CUSTOM: Made internal. -[CodeGenModel("CreateEmbeddingRequestEncodingFormat")] +[CodeGenType("CreateEmbeddingRequestEncodingFormat")] internal readonly partial struct InternalCreateEmbeddingRequestEncodingFormat { } -[CodeGenModel("CreateEmbeddingRequestModel")] +[CodeGenType("CreateEmbeddingRequestModel")] internal readonly partial struct InternalCreateEmbeddingRequestModel { } -[CodeGenModel("CreateEmbeddingResponseObject")] +[CodeGenType("CreateEmbeddingResponseObject")] internal readonly partial struct InternalCreateEmbeddingResponseObject { } -[CodeGenModel("EmbeddingObject")] +[CodeGenType("EmbeddingObject")] internal readonly partial struct InternalEmbeddingObject { } \ No newline at end of file diff --git a/src/Custom/Embeddings/OpenAIEmbedding.cs b/src/Custom/Embeddings/OpenAIEmbedding.cs index e27164e63..ac644c843 100644 --- a/src/Custom/Embeddings/OpenAIEmbedding.cs +++ b/src/Custom/Embeddings/OpenAIEmbedding.cs @@ -10,7 +10,7 @@ namespace OpenAI.Embeddings; /// /// Represents an embedding vector returned by embedding endpoint. /// -[CodeGenModel("Embedding")] +[CodeGenType("Embedding")] [CodeGenSuppress("OpenAIEmbedding", typeof(int), typeof(BinaryData))] public partial class OpenAIEmbedding { diff --git a/src/Custom/Embeddings/OpenAIEmbeddingCollection.Serialization.cs b/src/Custom/Embeddings/OpenAIEmbeddingCollection.Serialization.cs index dd25cd2a3..c295154c0 100644 --- a/src/Custom/Embeddings/OpenAIEmbeddingCollection.Serialization.cs +++ b/src/Custom/Embeddings/OpenAIEmbeddingCollection.Serialization.cs @@ -30,7 +30,7 @@ internal static void SerializeOpenAIEmbeddingCollection(OpenAIEmbeddingCollectio writer.WriteStringValue(instance.Object.ToString()); writer.WritePropertyName("usage"u8); writer.WriteObjectValue(instance.Usage, options); - writer.WriteSerializedAdditionalRawData(instance.SerializedAdditionalRawData, options); + writer.WriteSerializedAdditionalRawData(instance._additionalBinaryDataProperties, options); writer.WriteEndObject(); } diff --git a/src/Custom/Embeddings/OpenAIEmbeddingCollection.cs b/src/Custom/Embeddings/OpenAIEmbeddingCollection.cs index 212807087..b7118d779 100644 --- a/src/Custom/Embeddings/OpenAIEmbeddingCollection.cs +++ b/src/Custom/Embeddings/OpenAIEmbeddingCollection.cs @@ -4,7 +4,7 @@ namespace OpenAI.Embeddings; -[CodeGenModel("CreateEmbeddingResponse")] +[CodeGenType("CreateEmbeddingResponse")] [CodeGenSuppress("Data")] [CodeGenSuppress(nameof(OpenAIEmbeddingCollection))] [CodeGenSuppress(nameof(OpenAIEmbeddingCollection), typeof(string), typeof(EmbeddingTokenUsage))] @@ -46,7 +46,7 @@ internal OpenAIEmbeddingCollection(IReadOnlyList data, string m Model = model; Object = @object; Usage = usage; - SerializedAdditionalRawData = serializedAdditionalRawData; + _additionalBinaryDataProperties = serializedAdditionalRawData; } // CUSTOM: Set the inherited Items property via the base constructor in favor of the suppressed Data property. diff --git a/src/Custom/Files/FileDeletionResult.cs b/src/Custom/Files/FileDeletionResult.cs index e29c72d2a..d3b059532 100644 --- a/src/Custom/Files/FileDeletionResult.cs +++ b/src/Custom/Files/FileDeletionResult.cs @@ -1,6 +1,6 @@ namespace OpenAI.Files; -[CodeGenModel("DeleteFileResponse")] +[CodeGenType("DeleteFileResponse")] public partial class FileDeletionResult { // CUSTOM: Renamed. diff --git a/src/Custom/Files/FilePurpose.Serialization.cs b/src/Custom/Files/FilePurpose.Serialization.cs new file mode 100644 index 000000000..bdc07f3af --- /dev/null +++ b/src/Custom/Files/FilePurpose.Serialization.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Files +{ + internal static partial class FilePurposeExtensions + { + public static string ToSerialString(this FilePurpose value) => value switch + { + FilePurpose.Assistants => "assistants", + FilePurpose.AssistantsOutput => "assistants_output", + FilePurpose.Batch => "batch", + FilePurpose.BatchOutput => "batch_output", + FilePurpose.FineTune => "fine-tune", + FilePurpose.FineTuneResults => "fine-tune-results", + FilePurpose.Vision => "vision", + FilePurpose.UserData => "user_data", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FilePurpose value.") + }; + } +} diff --git a/src/Custom/Files/FilePurpose.cs b/src/Custom/Files/FilePurpose.cs index a532bb855..bbe6e66f8 100644 --- a/src/Custom/Files/FilePurpose.cs +++ b/src/Custom/Files/FilePurpose.cs @@ -1,6 +1,6 @@ namespace OpenAI.Files; -[CodeGenModel("OpenAIFilePurpose")] +[CodeGenType("OpenAIFilePurpose")] public enum FilePurpose { Assistants, @@ -16,4 +16,6 @@ public enum FilePurpose FineTuneResults, Vision, + + UserData, } \ No newline at end of file diff --git a/src/Custom/Files/FileStatus.cs b/src/Custom/Files/FileStatus.cs index 4582490bf..fd20baa0f 100644 --- a/src/Custom/Files/FileStatus.cs +++ b/src/Custom/Files/FileStatus.cs @@ -6,7 +6,7 @@ namespace OpenAI.Files; [Obsolete($"This struct is obsolete. If this is a fine-tuning training file, it may take some time to process" + $" after it has been uploaded. While the file is processing, you can still create a fine-tuning job but it" + $" will not start until the file processing has completed.")] -[CodeGenModel("OpenAIFileStatus")] +[CodeGenType("OpenAIFileStatus")] public enum FileStatus { Uploaded, diff --git a/src/Custom/Files/FileUploadPurpose.Serialization.cs b/src/Custom/Files/FileUploadPurpose.Serialization.cs new file mode 100644 index 000000000..cf4c65706 --- /dev/null +++ b/src/Custom/Files/FileUploadPurpose.Serialization.cs @@ -0,0 +1,48 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Files +{ + internal static partial class FilePurposeExtensions + { + public static FilePurpose ToFilePurpose(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "assistants")) + { + return FilePurpose.Assistants; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "assistants_output")) + { + return FilePurpose.AssistantsOutput; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "batch")) + { + return FilePurpose.Batch; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "batch_output")) + { + return FilePurpose.BatchOutput; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "fine-tune")) + { + return FilePurpose.FineTune; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "fine-tune-results")) + { + return FilePurpose.FineTuneResults; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "vision")) + { + return FilePurpose.Vision; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "user_data")) + { + return FilePurpose.UserData; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FilePurpose value."); + } + } +} diff --git a/src/Custom/Files/FileUploadPurpose.cs b/src/Custom/Files/FileUploadPurpose.cs index 2f3e9d8ca..ca5f6cdda 100644 --- a/src/Custom/Files/FileUploadPurpose.cs +++ b/src/Custom/Files/FileUploadPurpose.cs @@ -1,6 +1,9 @@ namespace OpenAI.Files; -[CodeGenModel("CreateFileRequestPurpose")] +[CodeGenType("CreateFileRequestPurpose")] public readonly partial struct FileUploadPurpose { + // CUSTOM: Renamed. + [CodeGenMember("Evals")] + public static FileUploadPurpose Evaluations { get; } = new("evals"); } \ No newline at end of file diff --git a/src/Custom/Files/Internal/GeneratorStubs.cs b/src/Custom/Files/Internal/GeneratorStubs.cs index 509a21a93..8a12f29f0 100644 --- a/src/Custom/Files/Internal/GeneratorStubs.cs +++ b/src/Custom/Files/Internal/GeneratorStubs.cs @@ -1,18 +1,18 @@ namespace OpenAI.Files; -[CodeGenModel("DeleteFileResponseObject")] +[CodeGenType("DeleteFileResponseObject")] internal readonly partial struct InternalDeleteFileResponseObject { } -[CodeGenModel("OpenAIFileObject")] +[CodeGenType("OpenAIFileObject")] internal readonly partial struct InternalOpenAIFileObject { } -[CodeGenModel("AddUploadPartRequest")] internal partial class InternalAddUploadPartRequest { } -[CodeGenModel("CompleteUploadRequest")] internal partial class InternalCompleteUploadRequest { } -[CodeGenModel("CreateUploadRequest")] internal partial class InternalCreateUploadRequest { } -[CodeGenModel("CreateUploadRequestPurpose")] internal readonly partial struct InternalCreateUploadRequestPurpose { } -[CodeGenModel("ListFilesResponseObject")] internal readonly partial struct InternalListFilesResponseObject { } -[CodeGenModel("Upload")] internal partial class InternalUpload { } -[CodeGenModel("UploadObject")] internal readonly partial struct InternalUploadObject { } -[CodeGenModel("UploadPart")] internal partial class InternalUploadPart { } -[CodeGenModel("UploadPartObject")] internal readonly partial struct InternalUploadPartObject { } -[CodeGenModel("UploadStatus")] internal readonly partial struct InternalUploadStatus { } +[CodeGenType("AddUploadPartRequest")] internal partial class InternalAddUploadPartRequest { } +[CodeGenType("CompleteUploadRequest")] internal partial class InternalCompleteUploadRequest { } +[CodeGenType("CreateUploadRequest")] internal partial class InternalCreateUploadRequest { } +[CodeGenType("CreateUploadRequestPurpose")] internal readonly partial struct InternalCreateUploadRequestPurpose { } +[CodeGenType("ListFilesResponseObject")] internal readonly partial struct InternalListFilesResponseObject { } +[CodeGenType("Upload")] internal partial class InternalUpload { } +[CodeGenType("UploadObject")] internal readonly partial struct InternalUploadObject { } +[CodeGenType("UploadPart")] internal partial class InternalUploadPart { } +[CodeGenType("UploadPartObject")] internal readonly partial struct InternalUploadPartObject { } +[CodeGenType("UploadStatus")] internal readonly partial struct InternalUploadStatus { } diff --git a/src/Custom/Files/Internal/InternalFileUploadOptions.cs b/src/Custom/Files/Internal/InternalFileUploadOptions.cs index feec447c3..a91166e35 100644 --- a/src/Custom/Files/Internal/InternalFileUploadOptions.cs +++ b/src/Custom/Files/Internal/InternalFileUploadOptions.cs @@ -2,7 +2,7 @@ namespace OpenAI.Files; -[CodeGenModel("CreateFileRequest")] +[CodeGenType("CreateFileRequest")] [CodeGenSuppress("InternalFileUploadOptions", typeof(Stream), typeof(FileUploadPurpose))] internal partial class InternalFileUploadOptions { @@ -29,9 +29,9 @@ public InternalFileUploadOptions() { } - internal MultipartFormDataBinaryContent ToMultipartContent(Stream file, string filename) + internal MultiPartFormDataBinaryContent ToMultipartContent(Stream file, string filename) { - MultipartFormDataBinaryContent content = new(); + MultiPartFormDataBinaryContent content = new(); content.Add(file, "file", filename); diff --git a/src/Custom/Files/Internal/InternalUploadsClient.cs b/src/Custom/Files/Internal/InternalUploadsClient.cs index cc828239e..f9999eee4 100644 --- a/src/Custom/Files/Internal/InternalUploadsClient.cs +++ b/src/Custom/Files/Internal/InternalUploadsClient.cs @@ -4,7 +4,7 @@ namespace OpenAI.Files; -[CodeGenClient("Uploads")] +[CodeGenType("Uploads")] [CodeGenSuppress("InternalUploadsClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] internal partial class InternalUploadsClient { diff --git a/src/Custom/Files/OpenAIFile.cs b/src/Custom/Files/OpenAIFile.cs index 6ac471424..488246b05 100644 --- a/src/Custom/Files/OpenAIFile.cs +++ b/src/Custom/Files/OpenAIFile.cs @@ -2,7 +2,7 @@ namespace OpenAI.Files; -[CodeGenModel("OpenAIFile")] +[CodeGenType("OpenAIFile")] public partial class OpenAIFile { // CUSTOM: Made private. This property does not add value in the context of a strongly-typed class. diff --git a/src/Custom/Files/OpenAIFileClient.cs b/src/Custom/Files/OpenAIFileClient.cs index 2b50ac4d2..90e8f6ffd 100644 --- a/src/Custom/Files/OpenAIFileClient.cs +++ b/src/Custom/Files/OpenAIFileClient.cs @@ -11,8 +11,8 @@ namespace OpenAI.Files; // - Renamed. // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. /// The service client for OpenAI file operations. -[CodeGenClient("Files")] -[CodeGenSuppress("OpenAIFileClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Files")] +[CodeGenSuppress("OpenAIFileClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("ListFilesAsync", typeof(string), typeof(CancellationToken))] [CodeGenSuppress("ListFiles", typeof(string), typeof(CancellationToken))] [CodeGenSuppress("RetrieveFileAsync", typeof(string), typeof(CancellationToken))] @@ -96,7 +96,7 @@ public virtual async Task> UploadFileAsync(Stream file, Purpose = purpose }; - using MultipartFormDataBinaryContent content = options.ToMultipartContent(file, filename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(file, filename); ClientResult result = await UploadFileAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue((OpenAIFile)result, result.GetRawResponse()); } @@ -123,7 +123,7 @@ public virtual ClientResult UploadFile(Stream file, string filename, Purpose = purpose }; - using MultipartFormDataBinaryContent content = options.ToMultipartContent(file, filename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(file, filename); ClientResult result = UploadFile(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue((OpenAIFile)result, result.GetRawResponse()); } diff --git a/src/Custom/Files/OpenAIFileCollection.cs b/src/Custom/Files/OpenAIFileCollection.cs index 4693bb44d..07ab6a5ca 100644 --- a/src/Custom/Files/OpenAIFileCollection.cs +++ b/src/Custom/Files/OpenAIFileCollection.cs @@ -4,7 +4,7 @@ namespace OpenAI.Files; -[CodeGenModel("ListFilesResponse")] +[CodeGenType("ListFilesResponse")] [CodeGenSuppress("Data")] [CodeGenSuppress(nameof(OpenAIFileCollection))] [CodeGenSuppress(nameof(OpenAIFileCollection), typeof(string), typeof(string), typeof(bool))] @@ -12,9 +12,9 @@ namespace OpenAI.Files; public partial class OpenAIFileCollection : ReadOnlyCollection { // CUSTOM: Made private. This property does not add value in the context of a strongly-typed class. - [CodeGenMember("Object")] + [CodeGenMember("Object")] private InternalListFilesResponseObject Object { get; } = InternalListFilesResponseObject.List; - + // CUSTOM: Internalizing pending stanardized pagination representation for the list operation. [CodeGenMember("FirstId")] internal string FirstId { get; } diff --git a/src/Custom/Files/OpenAIFilesModelFactory.cs b/src/Custom/Files/OpenAIFilesModelFactory.cs index 78242157d..a470cb920 100644 --- a/src/Custom/Files/OpenAIFilesModelFactory.cs +++ b/src/Custom/Files/OpenAIFilesModelFactory.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; namespace OpenAI.Files; @@ -18,19 +19,30 @@ public static FileDeletionResult FileDeletionResult(string fileId = null, bool d additionalBinaryDataProperties: null); } - /// Initializes a new instance of . - /// A new instance for mocking. - public static OpenAIFile OpenAIFileInfo(string id = null, int? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, FilePurpose purpose = default, FileStatus status = default, string statusDetails = null) + [EditorBrowsable(EditorBrowsableState.Never)] + public static OpenAIFile OpenAIFileInfo(string id, int? sizeInBytes, DateTimeOffset createdAt, string filename, FilePurpose purpose, FileStatus status, string statusDetails) => + OpenAIFileInfo( + id: id, + sizeInBytes: sizeInBytes, + createdAt: createdAt, + filename: filename, + purpose: purpose, + status: status, + statusDetails: statusDetails, + expiresAt: default); + + public static OpenAIFile OpenAIFileInfo(string id = null, int? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, FilePurpose purpose = default, FileStatus status = default, string statusDetails = null, DateTimeOffset? expiresAt = null) { return new OpenAIFile( - id, - createdAt, - filename, - purpose, + id: id, + createdAt: createdAt, + expiresAt: expiresAt, + filename: filename, + purpose: purpose, @object: InternalOpenAIFileObject.File, - sizeInBytes, - status, - statusDetails, + sizeInBytes: sizeInBytes, + status: status, + statusDetails: statusDetails, additionalBinaryDataProperties: null); } diff --git a/src/Custom/FineTuning/FineTuningClient.cs b/src/Custom/FineTuning/FineTuningClient.cs index 5c9d78c15..4b6a3a0bc 100644 --- a/src/Custom/FineTuning/FineTuningClient.cs +++ b/src/Custom/FineTuning/FineTuningClient.cs @@ -12,8 +12,8 @@ namespace OpenAI.FineTuning; // - Suppressed convenience methods for now. /// The service client for OpenAI fine-tuning operations. [Experimental("OPENAI001")] -[CodeGenClient("FineTuning")] -[CodeGenSuppress("FineTuningClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("FineTuning")] +[CodeGenSuppress("FineTuningClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateFineTuningJobAsync", typeof(FineTuningOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateFineTuningJob", typeof(FineTuningOptions), typeof(CancellationToken))] [CodeGenSuppress("ListPaginatedFineTuningJobsAsync", typeof(string), typeof(int?), typeof(CancellationToken))] diff --git a/src/Custom/FineTuning/Internal/GeneratorStubs.cs b/src/Custom/FineTuning/Internal/GeneratorStubs.cs index 117370cc5..b04a10520 100644 --- a/src/Custom/FineTuning/Internal/GeneratorStubs.cs +++ b/src/Custom/FineTuning/Internal/GeneratorStubs.cs @@ -1,3 +1,4 @@ +using OpenAI.Chat; using System; using System.Collections.Generic; using System.Runtime.InteropServices; @@ -6,100 +7,104 @@ namespace OpenAI.FineTuning; // CUSTOM: Made internal. -[CodeGenModel("FineTuneChatCompletionRequestAssistantMessage")] -internal partial class InternalFineTuneChatCompletionRequestAssistantMessage { } +[CodeGenType("FineTuneChatCompletionRequestAssistantMessage")] +internal partial class InternalFineTuneChatCompletionRequestAssistantMessage +{ + [CodeGenMember("Content")] + public ChatMessageContent Content { get; set; } +} -[CodeGenModel("FinetuneChatRequestInput")] +[CodeGenType("FinetuneChatRequestInput")] internal partial class InternalFinetuneChatRequestInput { } -[CodeGenModel("FinetuneCompletionRequestInput")] +[CodeGenType("FinetuneCompletionRequestInput")] internal partial class InternalFinetuneCompletionRequestInput { } -[CodeGenModel("FineTuningIntegration")] +[CodeGenType("FineTuningIntegration")] internal partial class InternalFineTuningIntegration { } -[CodeGenModel("FineTuningIntegrationType")] +[CodeGenType("FineTuningIntegrationType")] internal readonly partial struct InternalFineTuningIntegrationType { } -[CodeGenModel("FineTuningIntegrationWandb")] +[CodeGenType("FineTuningIntegrationWandb")] internal partial class InternalFineTuningIntegrationWandb { } -[CodeGenModel("CreateFineTuningJobRequestWandbIntegrationWandb")] +[CodeGenType("CreateFineTuningJobRequestWandbIntegrationWandb")] internal partial class InternalCreateFineTuningJobRequestWandbIntegrationWandb { [CodeGenMember("Project")] public string Project { get; set; } } -[CodeGenModel("FineTuningJobObject")] +[CodeGenType("FineTuningJobObject")] internal readonly partial struct InternalFineTuningJobObject { } -[CodeGenModel("FineTuningJobCheckpoint")] +[CodeGenType("FineTuningJobCheckpoint")] internal partial class InternalFineTuningJobCheckpoint { } -[CodeGenModel("FineTuningJobCheckpointMetrics")] +[CodeGenType("FineTuningJobCheckpointMetrics")] internal partial class InternalFineTuningJobCheckpointMetrics { } -[CodeGenModel("FineTuningJobCheckpointObject")] +[CodeGenType("FineTuningJobCheckpointObject")] internal readonly partial struct InternalFineTuningJobCheckpointObject { } -[CodeGenModel("ListFineTuningJobCheckpointsResponse")] +[CodeGenType("ListFineTuningJobCheckpointsResponse")] internal partial class InternalListFineTuningJobCheckpointsResponse { } -[CodeGenModel("ListFineTuningJobCheckpointsResponseObject")] +[CodeGenType("ListFineTuningJobCheckpointsResponseObject")] internal readonly partial struct InternalListFineTuningJobCheckpointsResponseObject { } -[CodeGenModel("ListFineTuningJobEventsResponse")] +[CodeGenType("ListFineTuningJobEventsResponse")] internal partial class InternalListFineTuningJobEventsResponse { } -[CodeGenModel("ListPaginatedFineTuningJobsResponse")] +[CodeGenType("ListPaginatedFineTuningJobsResponse")] internal partial class InternalListPaginatedFineTuningJobsResponse { } -[CodeGenModel("ListPaginatedFineTuningJobsResponseObject")] +[CodeGenType("ListPaginatedFineTuningJobsResponseObject")] internal readonly partial struct InternalListPaginatedFineTuningJobsResponseObject { } -[CodeGenModel("FineTuningIntegrationWandbWandb")] +[CodeGenType("FineTuningIntegrationWandbWandb")] internal partial class FineTuningIntegrationWandbWandb { } -[CodeGenModel("FineTuningJobHyperparametersBatchSizeChoiceEnum")] +[CodeGenType("FineTuningJobHyperparametersBatchSizeChoiceEnum")] internal readonly partial struct FineTuningJobHyperparametersBatchSizeChoiceEnum { } -[CodeGenModel("FineTuningJobHyperparametersLearningRateMultiplierChoiceEnum")] +[CodeGenType("FineTuningJobHyperparametersLearningRateMultiplierChoiceEnum")] internal readonly partial struct FineTuningJobHyperparametersLearningRateMultiplierChoiceEnum { } -[CodeGenModel("FineTuningJobHyperparametersNEpochsChoiceEnum")] +[CodeGenType("FineTuningJobHyperparametersNEpochsChoiceEnum")] internal readonly partial struct FineTuningJobHyperparametersNEpochsChoiceEnum { } -[CodeGenModel("UnknownCreateFineTuningJobRequestIntegration")] +[CodeGenType("UnknownCreateFineTuningJobRequestIntegration")] internal partial class UnknownCreateFineTuningJobRequestIntegration { } -[CodeGenModel("UnknownFineTuningIntegration")] +[CodeGenType("UnknownFineTuningIntegration")] internal partial class UnknownFineTuningIntegration { } -[CodeGenModel("FineTuningJobEventObject")] +[CodeGenType("FineTuningJobEventObject")] internal readonly partial struct InternalFineTuningJobEventObject { } -[CodeGenModel("ListFineTuningJobEventsResponseObject")] +[CodeGenType("ListFineTuningJobEventsResponseObject")] internal readonly partial struct InternalListFineTuningJobEventsResponseObject { } -[CodeGenModel("CreateFineTuningJobRequestModel")] +[CodeGenType("CreateFineTuningJobRequestModel")] internal readonly partial struct InternalCreateFineTuningJobRequestModel { } // Future public types follow -[CodeGenModel("CreateFineTuningJobRequestIntegration")] +[CodeGenType("CreateFineTuningJobRequestIntegration")] internal partial class FineTuningIntegration { } -[CodeGenModel("FineTuningJob")] +[CodeGenType("FineTuningJob")] internal partial class FineTuningJob { } -[CodeGenModel("FineTuningJobError")] +[CodeGenType("FineTuningJobError1")] internal partial class FineTuningJobError { } -[CodeGenModel("FineTuningJobEvent")] +[CodeGenType("FineTuningJobEvent")] internal partial class FineTuningJobEvent { } -[CodeGenModel("FineTuningJobEventLevel")] +[CodeGenType("FineTuningJobEventLevel")] internal enum FineTuningJobEventLevel { Info, @@ -107,7 +112,7 @@ internal enum FineTuningJobEventLevel Error } -[CodeGenModel("FineTuningJobHyperparameters")] +[CodeGenType("FineTuningJobHyperparameters")] [StructLayout(LayoutKind.Auto)] internal readonly partial struct FineTuningJobHyperparameters { @@ -116,52 +121,59 @@ internal readonly partial struct FineTuningJobHyperparameters public BinaryData LearningRateMultiplier { get; } } -[CodeGenModel("FineTuningJobStatus")] +[CodeGenType("FineTuningJobStatus")] internal readonly partial struct FineTuningJobStatus { } -[CodeGenModel("CreateFineTuningJobRequest")] +[CodeGenType("CreateFineTuningJobRequest")] internal partial class FineTuningOptions { } -[CodeGenModel("CreateFineTuningJobRequestHyperparametersBatchSizeChoiceEnum")] +[CodeGenType("CreateFineTuningJobRequestHyperparametersBatchSizeChoiceEnum")] internal readonly partial struct HyperparameterBatchSize { } -[CodeGenModel("CreateFineTuningJobRequestHyperparametersNEpochsChoiceEnum")] +[CodeGenType("CreateFineTuningJobRequestHyperparametersNEpochsChoiceEnum")] internal readonly partial struct HyperparameterCycleCount { } -[CodeGenModel("CreateFineTuningJobRequestHyperparametersLearningRateMultiplierChoiceEnum")] +[CodeGenType("CreateFineTuningJobRequestHyperparametersLearningRateMultiplierChoiceEnum")] internal readonly partial struct HyperparameterLearningRate { } -[CodeGenModel("CreateFineTuningJobRequestHyperparameters")] +[CodeGenType("CreateFineTuningJobRequestHyperparameters")] internal partial class HyperparameterOptions { } -[CodeGenModel("CreateFineTuningJobRequestWandbIntegration")] +[CodeGenType("CreateFineTuningJobRequestWandbIntegration")] internal partial class WeightsAndBiasesIntegration { } // TODO: not yet integrated -[CodeGenModel("FineTuneChatRequestInput")] +[CodeGenType("FineTuneChatRequestInput")] internal partial class InternalTodoFineTuneChatRequestInput { } -[CodeGenModel("FineTuneCompletionRequestInput")] +[CodeGenType("FineTuneCompletionRequestInput")] internal partial class InternalTodoFineTuneCompletionRequestInput { } -[CodeGenModel("FineTuneDPOMethod")] +[CodeGenType("FineTuneDPOMethod")] internal partial class InternalTodoFineTuneDPOMethod { } -[CodeGenModel("FineTuneDPOMethodHyperparameters")] +[CodeGenType("FineTuneDPOMethodHyperparameters")] internal partial class InternalTodoFineTuneDPOMethodHyperparameters { } -[CodeGenModel("FineTuneMethod")] +[CodeGenType("FineTuneMethod")] internal partial class InternalTodoFineTuneMethod { } -[CodeGenModel("FineTuneMethodType")] +[CodeGenType("FineTuneMethodType")] internal readonly partial struct InternalTodoFineTuneMethodType { } -[CodeGenModel("FineTuneSupervisedMethod")] +[CodeGenType("FineTuneSupervisedMethod")] internal partial class InternalTodoFineTuneSupervisedMethod { } -[CodeGenModel("FineTuneSupervisedMethodHyperparameters")] +[CodeGenType("FineTuneSupervisedMethodHyperparameters")] internal partial class InternalFineTuneSupervisedMethodHyperparameters { } -[CodeGenModel("FineTuningJobEventType")] -internal readonly partial struct InternalFineTuningJobEventType { } \ No newline at end of file +[CodeGenType("FineTuningJobEventType")] +internal readonly partial struct InternalFineTuningJobEventType { } + +[CodeGenType("FineTuneChatCompletionRequestAssistantMessageWeight")] +internal readonly partial struct InternalFineTuneChatCompletionRequestAssistantMessageWeight { } + +[CodeGenType("FineTuneChatCompletionRequestAssistantMessageRole")] +internal readonly partial struct InternalFineTuneChatCompletionRequestAssistantMessageRole { } + diff --git a/src/Custom/Images/GeneratedImage.cs b/src/Custom/Images/GeneratedImage.cs index 5c8158c76..086320a51 100644 --- a/src/Custom/Images/GeneratedImage.cs +++ b/src/Custom/Images/GeneratedImage.cs @@ -5,7 +5,7 @@ namespace OpenAI.Images; /// /// Represents the result data for an image generation request. /// -[CodeGenModel("Image")] +[CodeGenType("Image")] public partial class GeneratedImage { // CUSTOM: diff --git a/src/Custom/Images/GeneratedImageCollection.cs b/src/Custom/Images/GeneratedImageCollection.cs index 4679345ae..e4932d3ef 100644 --- a/src/Custom/Images/GeneratedImageCollection.cs +++ b/src/Custom/Images/GeneratedImageCollection.cs @@ -7,7 +7,7 @@ namespace OpenAI.Images; /// /// Represents an image generation response payload that contains information for multiple generated images. /// -[CodeGenModel("ImagesResponse")] +[CodeGenType("ImagesResponse")] [CodeGenSuppress("Data")] [CodeGenSuppress("Created")] [CodeGenSuppress(nameof(GeneratedImageCollection))] diff --git a/src/Custom/Images/GeneratedImageFormat.cs b/src/Custom/Images/GeneratedImageFormat.cs index 499354405..6c8355c25 100644 --- a/src/Custom/Images/GeneratedImageFormat.cs +++ b/src/Custom/Images/GeneratedImageFormat.cs @@ -2,7 +2,7 @@ namespace OpenAI.Images; // CUSTOM: Renamed. /// The format in which the generated images are returned by the service. -[CodeGenModel("CreateImageRequestResponseFormat")] +[CodeGenType("CreateImageRequestResponseFormat")] public readonly partial struct GeneratedImageFormat { // CUSTOM: Renamed. diff --git a/src/Custom/Images/GeneratedImageQuality.cs b/src/Custom/Images/GeneratedImageQuality.cs index b769e599b..b68ef4870 100644 --- a/src/Custom/Images/GeneratedImageQuality.cs +++ b/src/Custom/Images/GeneratedImageQuality.cs @@ -1,11 +1,11 @@ namespace OpenAI.Images; // CUSTOM: Renamed. -/// +/// /// The quality of the image that will be generated. creates images with finer details and /// greater consistency across the image. /// -[CodeGenModel("CreateImageRequestQuality")] +[CodeGenType("CreateImageRequestQuality")] public readonly partial struct GeneratedImageQuality { [CodeGenMember("Hd")] diff --git a/src/Custom/Images/GeneratedImageSize.cs b/src/Custom/Images/GeneratedImageSize.cs index f2a9050f6..ddf7b143d 100644 --- a/src/Custom/Images/GeneratedImageSize.cs +++ b/src/Custom/Images/GeneratedImageSize.cs @@ -4,7 +4,7 @@ namespace OpenAI.Images; // CUSTOM: Added custom struct in favor of the generated extensible enum. /// The size of the image that will be generated. -[CodeGenModel("CreateImageRequestSize")] +[CodeGenType("CreateImageRequestSize")] [CodeGenSuppress("GeneratedImageSize", typeof(string))] // CUSTOM: remove the implicit operator [CodeGenSuppress("", typeof(string))] diff --git a/src/Custom/Images/GeneratedImageStyle.cs b/src/Custom/Images/GeneratedImageStyle.cs index 60a53c958..a83817d1c 100644 --- a/src/Custom/Images/GeneratedImageStyle.cs +++ b/src/Custom/Images/GeneratedImageStyle.cs @@ -6,7 +6,7 @@ namespace OpenAI.Images; /// hyper-real and dramatic images. causes the model to produce more natural, less hyper-real /// looking images. /// -[CodeGenModel("CreateImageRequestStyle")] +[CodeGenType("CreateImageRequestStyle")] public readonly partial struct GeneratedImageStyle { } \ No newline at end of file diff --git a/src/Custom/Images/ImageClient.cs b/src/Custom/Images/ImageClient.cs index 7eda78f4f..15a623653 100644 --- a/src/Custom/Images/ImageClient.cs +++ b/src/Custom/Images/ImageClient.cs @@ -13,8 +13,8 @@ namespace OpenAI.Images; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// The service client for OpenAI image operations. -[CodeGenClient("Images")] -[CodeGenSuppress("ImageClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Images")] +[CodeGenSuppress("ImageClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateImageAsync", typeof(ImageGenerationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateImage", typeof(ImageGenerationOptions), typeof(CancellationToken))] public partial class ImageClient @@ -191,7 +191,7 @@ public virtual async Task> GenerateImageEditAsync(S options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, null, null, null, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); ClientResult result = await GenerateImageEditsAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue(((GeneratedImageCollection)result).FirstOrDefault(), result.GetRawResponse()); } @@ -220,7 +220,7 @@ public virtual ClientResult GenerateImageEdit(Stream image, stri options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, null, null, null, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); ClientResult result = GenerateImageEdits(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue(((GeneratedImageCollection)result).FirstOrDefault(), result.GetRawResponse()); } @@ -297,7 +297,7 @@ public virtual async Task> GenerateImageEditAsync(S options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, mask, maskFilename, null, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); ClientResult result = await GenerateImageEditsAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue(((GeneratedImageCollection)result).FirstOrDefault(), result.GetRawResponse()); } @@ -334,7 +334,7 @@ public virtual ClientResult GenerateImageEdit(Stream image, stri options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, mask, maskFilename, null, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); ClientResult result = GenerateImageEdits(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue(((GeneratedImageCollection)result).FirstOrDefault(), result.GetRawResponse()); } @@ -420,7 +420,7 @@ public virtual async Task> GenerateImageE options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, null, null, imageCount, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); ClientResult result = await GenerateImageEditsAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue((GeneratedImageCollection)result, result.GetRawResponse()); } @@ -450,7 +450,7 @@ public virtual ClientResult GenerateImageEdits(Stream options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, null, null, imageCount, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, null, null); ClientResult result = GenerateImageEdits(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue((GeneratedImageCollection)result, result.GetRawResponse()); } @@ -530,7 +530,7 @@ public virtual async Task> GenerateImageE options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, mask, maskFilename, imageCount, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); ClientResult result = await GenerateImageEditsAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue((GeneratedImageCollection)result, result.GetRawResponse()); } @@ -568,7 +568,7 @@ public virtual ClientResult GenerateImageEdits(Stream options ??= new(); CreateImageEditOptions(image, imageFilename, prompt, mask, maskFilename, imageCount, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename, mask, maskFilename); ClientResult result = GenerateImageEdits(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue((GeneratedImageCollection)result, result.GetRawResponse()); } @@ -654,7 +654,7 @@ public virtual async Task> GenerateImageVariationAs options ??= new(); CreateImageVariationOptions(image, imageFilename, null, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); ClientResult result = await GenerateImageVariationsAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue(((GeneratedImageCollection)result).FirstOrDefault(), result.GetRawResponse()); } @@ -678,7 +678,7 @@ public virtual ClientResult GenerateImageVariation(Stream image, options ??= new(); CreateImageVariationOptions(image, imageFilename, null, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); ClientResult result = GenerateImageVariations(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue(((GeneratedImageCollection)result).FirstOrDefault(), result.GetRawResponse()); } @@ -739,7 +739,7 @@ public virtual async Task> GenerateImageV options ??= new(); CreateImageVariationOptions(image, imageFilename, imageCount, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); ClientResult result = await GenerateImageVariationsAsync(content, content.ContentType, cancellationToken.ToRequestOptions()).ConfigureAwait(false); return ClientResult.FromValue((GeneratedImageCollection)result, result.GetRawResponse()); } @@ -764,7 +764,7 @@ public virtual ClientResult GenerateImageVariations(St options ??= new(); CreateImageVariationOptions(image, imageFilename, imageCount, ref options); - using MultipartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); + using MultiPartFormDataBinaryContent content = options.ToMultipartContent(image, imageFilename); ClientResult result = GenerateImageVariations(content, content.ContentType, cancellationToken.ToRequestOptions()); return ClientResult.FromValue((GeneratedImageCollection)result, result.GetRawResponse()); } diff --git a/src/Custom/Images/ImageEditOptions.cs b/src/Custom/Images/ImageEditOptions.cs index 62126899e..984d2a714 100644 --- a/src/Custom/Images/ImageEditOptions.cs +++ b/src/Custom/Images/ImageEditOptions.cs @@ -6,7 +6,7 @@ namespace OpenAI.Images; /// /// Represents additional options available to control the behavior of an image generation operation. /// -[CodeGenModel("CreateImageEditRequest")] +[CodeGenType("CreateImageEditRequest")] [CodeGenSuppress("ImageEditOptions", typeof(BinaryData), typeof(string))] public partial class ImageEditOptions { @@ -91,9 +91,9 @@ public ImageEditOptions() [CodeGenMember("User")] public string EndUserId { get; set; } - internal MultipartFormDataBinaryContent ToMultipartContent(Stream image, string imageFilename, Stream mask, string maskFilename) + internal MultiPartFormDataBinaryContent ToMultipartContent(Stream image, string imageFilename, Stream mask, string maskFilename) { - MultipartFormDataBinaryContent content = new(); + MultiPartFormDataBinaryContent content = new(); content.Add(image, "image", imageFilename); content.Add(Prompt, "prompt"); diff --git a/src/Custom/Images/ImageGenerationOptions.cs b/src/Custom/Images/ImageGenerationOptions.cs index 688e7e701..b53184561 100644 --- a/src/Custom/Images/ImageGenerationOptions.cs +++ b/src/Custom/Images/ImageGenerationOptions.cs @@ -3,7 +3,7 @@ namespace OpenAI.Images; /// /// Represents additional options available to control the behavior of an image generation operation. /// -[CodeGenModel("CreateImageRequest")] +[CodeGenType("CreateImageRequest")] [CodeGenSuppress("ImageGenerationOptions", typeof(string))] public partial class ImageGenerationOptions { diff --git a/src/Custom/Images/ImageVariationOptions.cs b/src/Custom/Images/ImageVariationOptions.cs index 43d6269e3..fbab2bacf 100644 --- a/src/Custom/Images/ImageVariationOptions.cs +++ b/src/Custom/Images/ImageVariationOptions.cs @@ -6,7 +6,7 @@ namespace OpenAI.Images; /// /// Represents additional options available to control the behavior of an image generation operation. /// -[CodeGenModel("CreateImageVariationRequest")] +[CodeGenType("CreateImageVariationRequest")] [CodeGenSuppress("ImageVariationOptions", typeof(BinaryData))] public partial class ImageVariationOptions { @@ -64,9 +64,9 @@ public ImageVariationOptions() [CodeGenMember("User")] public string EndUserId { get; set; } - internal MultipartFormDataBinaryContent ToMultipartContent(Stream image, string imageFilename) + internal MultiPartFormDataBinaryContent ToMultipartContent(Stream image, string imageFilename) { - MultipartFormDataBinaryContent content = new(); + MultiPartFormDataBinaryContent content = new(); content.Add(image, "image", imageFilename); content.Add(Model.Value.ToString(), "model"); diff --git a/src/Custom/Images/Internal/GeneratorStubs.cs b/src/Custom/Images/Internal/GeneratorStubs.cs index 3e85bb899..d6d618deb 100644 --- a/src/Custom/Images/Internal/GeneratorStubs.cs +++ b/src/Custom/Images/Internal/GeneratorStubs.cs @@ -2,23 +2,23 @@ namespace OpenAI.Images; // CUSTOM: Made internal. -[CodeGenModel("CreateImageEditRequestModel")] +[CodeGenType("CreateImageEditRequestModel")] internal readonly partial struct InternalCreateImageEditRequestModel { } -[CodeGenModel("CreateImageEditRequestResponseFormat")] +[CodeGenType("CreateImageEditRequestResponseFormat")] internal readonly partial struct InternalCreateImageEditRequestResponseFormat { } -[CodeGenModel("CreateImageEditRequestSize")] +[CodeGenType("CreateImageEditRequestSize")] internal readonly partial struct InternalCreateImageEditRequestSize { } -[CodeGenModel("CreateImageRequestModel")] +[CodeGenType("CreateImageRequestModel")] internal readonly partial struct InternalCreateImageRequestModel { } -[CodeGenModel("CreateImageVariationRequestModel")] +[CodeGenType("CreateImageVariationRequestModel")] internal readonly partial struct InternalCreateImageVariationRequestModel { } -[CodeGenModel("CreateImageVariationRequestResponseFormat")] +[CodeGenType("CreateImageVariationRequestResponseFormat")] internal readonly partial struct InternalCreateImageVariationRequestResponseFormat { } -[CodeGenModel("CreateImageVariationRequestSize")] +[CodeGenType("CreateImageVariationRequestSize")] internal readonly partial struct InternalCreateImageVariationRequestSize { } diff --git a/src/Custom/Internal/AcceptHeaderValue.cs b/src/Custom/Internal/AcceptHeaderValue.cs new file mode 100644 index 000000000..4feb80dd5 --- /dev/null +++ b/src/Custom/Internal/AcceptHeaderValue.cs @@ -0,0 +1,4 @@ +namespace OpenAI; + +[CodeGenType("CreateResponseRequestAccept")] +internal readonly partial struct AcceptHeaderValue { } diff --git a/src/Custom/Internal/InternalFunctionDefinition.cs b/src/Custom/Internal/InternalFunctionDefinition.cs index 7c4dafb6c..b23914be7 100644 --- a/src/Custom/Internal/InternalFunctionDefinition.cs +++ b/src/Custom/Internal/InternalFunctionDefinition.cs @@ -2,7 +2,7 @@ namespace OpenAI; -[CodeGenModel("FunctionObject")] +[CodeGenType("FunctionObject")] internal partial class InternalFunctionDefinition { /// diff --git a/src/Custom/LegacyCompletions/Internal/GeneratorStubs.cs b/src/Custom/LegacyCompletions/Internal/GeneratorStubs.cs index 43682d982..322153c56 100644 --- a/src/Custom/LegacyCompletions/Internal/GeneratorStubs.cs +++ b/src/Custom/LegacyCompletions/Internal/GeneratorStubs.cs @@ -2,23 +2,23 @@ namespace OpenAI.LegacyCompletions; // CUSTOM: Made internal. -[CodeGenModel("CreateCompletionRequest")] +[CodeGenType("CreateCompletionRequest")] internal partial class InternalCreateCompletionRequest { } -[CodeGenModel("CreateCompletionRequestModel")] +[CodeGenType("CreateCompletionRequestModel")] internal readonly partial struct InternalCreateCompletionRequestModel { } -[CodeGenModel("CreateCompletionResponse")] +[CodeGenType("CreateCompletionResponse")] internal partial class InternalCreateCompletionResponse { } -[CodeGenModel("CreateCompletionResponseChoice")] +[CodeGenType("CreateCompletionResponseChoice")] internal partial class InternalCreateCompletionResponseChoice { } -[CodeGenModel("CreateCompletionResponseChoiceFinishReason")] +[CodeGenType("CreateCompletionResponseChoiceFinishReason")] internal readonly partial struct InternalCreateCompletionResponseChoiceFinishReason { } -[CodeGenModel("CreateCompletionResponseChoiceLogprobs")] +[CodeGenType("CreateCompletionResponseChoiceLogprobs1")] internal partial class InternalCreateCompletionResponseChoiceLogprobs { } -[CodeGenModel("CreateCompletionResponseObject")] +[CodeGenType("CreateCompletionResponseObject")] internal readonly partial struct InternalCreateCompletionResponseObject { } \ No newline at end of file diff --git a/src/Custom/LegacyCompletions/Internal/LegacyCompletionClient.cs b/src/Custom/LegacyCompletions/Internal/LegacyCompletionClient.cs index 11491662e..a45fca3b0 100644 --- a/src/Custom/LegacyCompletions/Internal/LegacyCompletionClient.cs +++ b/src/Custom/LegacyCompletions/Internal/LegacyCompletionClient.cs @@ -9,8 +9,8 @@ namespace OpenAI.LegacyCompletions; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// The service client for OpenAI legacy completion operations. -[CodeGenClient("Completions")] -[CodeGenSuppress("LegacyCompletionClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Completions")] +[CodeGenSuppress("LegacyCompletionClient", typeof(ClientPipeline), typeof(Uri))] internal partial class LegacyCompletionClient { private readonly string _model; diff --git a/src/Custom/Models/Internal/GeneratorStubs.cs b/src/Custom/Models/Internal/GeneratorStubs.cs index 6210e27bf..0c1ab3a84 100644 --- a/src/Custom/Models/Internal/GeneratorStubs.cs +++ b/src/Custom/Models/Internal/GeneratorStubs.cs @@ -1,11 +1,11 @@ namespace OpenAI.Models; -[CodeGenModel("DeleteModelResponseObject")] +[CodeGenType("DeleteModelResponseObject")] internal readonly partial struct InternalDeleteModelResponseObject { } -[CodeGenModel("ListModelsResponseObject")] +[CodeGenType("ListModelsResponseObject")] internal readonly partial struct InternalListModelsResponseObject { } -[CodeGenModel("ModelObject")] +[CodeGenType("ModelObject")] internal readonly partial struct InternalModelObject { } diff --git a/src/Custom/Models/ModelDeletionResult.cs b/src/Custom/Models/ModelDeletionResult.cs index 4aa61f657..928337931 100644 --- a/src/Custom/Models/ModelDeletionResult.cs +++ b/src/Custom/Models/ModelDeletionResult.cs @@ -1,6 +1,6 @@ namespace OpenAI.Models; -[CodeGenModel("DeleteModelResponse")] +[CodeGenType("DeleteModelResponse")] public partial class ModelDeletionResult { // CUSTOM: Renamed. diff --git a/src/Custom/Models/OpenAIModel.cs b/src/Custom/Models/OpenAIModel.cs index a66b41dc9..66526ee71 100644 --- a/src/Custom/Models/OpenAIModel.cs +++ b/src/Custom/Models/OpenAIModel.cs @@ -5,7 +5,7 @@ namespace OpenAI.Models; /// /// Represents information about a single available model entry. /// -[CodeGenModel("Model")] +[CodeGenType("Model")] public partial class OpenAIModel { // CUSTOM: Made private. This property does not add value in the context of a strongly-typed class. diff --git a/src/Custom/Models/OpenAIModelClient.cs b/src/Custom/Models/OpenAIModelClient.cs index 9cce4d38e..ea808b072 100644 --- a/src/Custom/Models/OpenAIModelClient.cs +++ b/src/Custom/Models/OpenAIModelClient.cs @@ -11,8 +11,8 @@ namespace OpenAI.Models; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Renamed convenience methods. /// The service client for OpenAI model operations. -[CodeGenClient("ModelsOps")] -[CodeGenSuppress("OpenAIModelClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Models")] +[CodeGenSuppress("OpenAIModelClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("ListModelsAsync", typeof(CancellationToken))] [CodeGenSuppress("ListModels", typeof(CancellationToken))] [CodeGenSuppress("RetrieveModelAsync", typeof(string), typeof(CancellationToken))] diff --git a/src/Custom/Models/OpenAIModelCollection.cs b/src/Custom/Models/OpenAIModelCollection.cs index a3f179dc4..8203ee07c 100644 --- a/src/Custom/Models/OpenAIModelCollection.cs +++ b/src/Custom/Models/OpenAIModelCollection.cs @@ -8,7 +8,7 @@ namespace OpenAI.Models; /// /// Represents a collection of entries for available models. /// -[CodeGenModel("ListModelsResponse")] +[CodeGenType("ListModelsResponse")] [CodeGenSuppress("Data")] [CodeGenSuppress(nameof(OpenAIModelCollection))] [CodeGenSuppress(nameof(OpenAIModelCollection), typeof(InternalListModelsResponseObject), typeof(IDictionary))] diff --git a/src/Custom/Moderations/Internal/GeneratorStubs.cs b/src/Custom/Moderations/Internal/GeneratorStubs.cs index ab9f19b35..bc6c8b967 100644 --- a/src/Custom/Moderations/Internal/GeneratorStubs.cs +++ b/src/Custom/Moderations/Internal/GeneratorStubs.cs @@ -1,25 +1,25 @@ namespace OpenAI.Moderations; -[CodeGenModel("CreateModerationRequestModel")] +[CodeGenType("CreateModerationRequestModel")] internal readonly partial struct InternalCreateModerationRequestModel { } -[CodeGenModel("CreateModerationRequestInput2")] +[CodeGenType("CreateModerationRequestInput2")] internal partial class InternalCreateModerationRequestInput2 { } -[CodeGenModel("CreateModerationRequestInput2Type")] +[CodeGenType("CreateModerationRequestInput2Type")] internal readonly partial struct InternalCreateModerationRequestInput2Type { } -[CodeGenModel("CreateModerationRequestInput3")] +[CodeGenType("CreateModerationRequestInput3")] internal partial class InternalCreateModerationRequestInput3 { } -[CodeGenModel("CreateModerationRequestInput3Type")] +[CodeGenType("CreateModerationRequestInput3Type")] internal readonly partial struct InternalCreateModerationRequestInput3Type { } -[CodeGenModel("CreateModerationRequestInputImageUrl")] +[CodeGenType("CreateModerationRequestInputImageUrl")] internal partial class InternalCreateModerationRequestInputImageUrl { } -[CodeGenModel("CreateModerationResponseResultCategories")] +[CodeGenType("CreateModerationResponseResultCategories")] internal partial class InternalModerationCategories { } -[CodeGenModel("CreateModerationResponseResultCategoryScores")] +[CodeGenType("CreateModerationResponseResultCategoryScores")] internal partial class InternalModerationCategoryScores { } diff --git a/src/Custom/Moderations/Internal/InternalCreateModerationResponseResultCategoryAppliedInputTypes.cs b/src/Custom/Moderations/Internal/InternalCreateModerationResponseResultCategoryAppliedInputTypes.cs index a01ee12fa..c6a950d8a 100644 --- a/src/Custom/Moderations/Internal/InternalCreateModerationResponseResultCategoryAppliedInputTypes.cs +++ b/src/Custom/Moderations/Internal/InternalCreateModerationResponseResultCategoryAppliedInputTypes.cs @@ -4,7 +4,7 @@ namespace OpenAI.Moderations; -[CodeGenModel("CreateModerationResponseResultCategoryAppliedInputTypes")] +[CodeGenType("CreateModerationResponseResultCategoryAppliedInputTypes")] internal partial class InternalCreateModerationResponseResultCategoryAppliedInputTypes { // CUSTOM: normalize to List for internal representation diff --git a/src/Custom/Moderations/ModerationApplicableInputKinds.cs b/src/Custom/Moderations/ModerationApplicableInputKinds.cs index e12c0ab25..39752a41a 100644 --- a/src/Custom/Moderations/ModerationApplicableInputKinds.cs +++ b/src/Custom/Moderations/ModerationApplicableInputKinds.cs @@ -4,7 +4,7 @@ namespace OpenAI.Moderations; /// The kinds of inputs that is applicable to. [Flags] -[CodeGenModel("ModerationAppliedInputType")] +[CodeGenType("ModerationAppliedInputType")] internal enum ModerationApplicableInputKinds : int { None = 0, diff --git a/src/Custom/Moderations/ModerationClient.cs b/src/Custom/Moderations/ModerationClient.cs index eb38878d3..586217329 100644 --- a/src/Custom/Moderations/ModerationClient.cs +++ b/src/Custom/Moderations/ModerationClient.cs @@ -15,8 +15,8 @@ namespace OpenAI.Moderations; // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// The service client for OpenAI moderation operations. -[CodeGenClient("Moderations")] -[CodeGenSuppress("ModerationClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("Moderations")] +[CodeGenSuppress("ModerationClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateModerationAsync", typeof(ModerationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateModeration", typeof(ModerationOptions), typeof(CancellationToken))] public partial class ModerationClient diff --git a/src/Custom/Moderations/ModerationOptions.cs b/src/Custom/Moderations/ModerationOptions.cs index b88459dd8..f503da981 100644 --- a/src/Custom/Moderations/ModerationOptions.cs +++ b/src/Custom/Moderations/ModerationOptions.cs @@ -3,7 +3,7 @@ namespace OpenAI.Moderations; -[CodeGenModel("CreateModerationRequest")] +[CodeGenType("CreateModerationRequest")] [CodeGenSuppress("ModerationOptions", typeof(BinaryData))] internal partial class ModerationOptions { diff --git a/src/Custom/Moderations/ModerationResult.cs b/src/Custom/Moderations/ModerationResult.cs index 3a4694cb5..b2d6b49c6 100644 --- a/src/Custom/Moderations/ModerationResult.cs +++ b/src/Custom/Moderations/ModerationResult.cs @@ -5,7 +5,7 @@ namespace OpenAI.Moderations; // CUSTOM: // - Removes the redundant classes `ModerationCategories` and `ModerationCategoryScores` and moves their properties into this type. -[CodeGenModel("CreateModerationResponseResult")] +[CodeGenType("CreateModerationResponseResult")] [CodeGenSuppress("Categories")] [CodeGenSuppress("CategoryScores")] [CodeGenSuppress("CategoryAppliedInputTypes")] diff --git a/src/Custom/Moderations/ModerationResultCollection.cs b/src/Custom/Moderations/ModerationResultCollection.cs index e21362f71..bc01cfcc2 100644 --- a/src/Custom/Moderations/ModerationResultCollection.cs +++ b/src/Custom/Moderations/ModerationResultCollection.cs @@ -4,7 +4,7 @@ namespace OpenAI.Moderations; -[CodeGenModel("CreateModerationResponse")] +[CodeGenType("CreateModerationResponse")] [CodeGenSuppress("Results")] [CodeGenSuppress(nameof(ModerationResultCollection))] [CodeGenSuppress(nameof(ModerationResultCollection), typeof(string), typeof(string))] diff --git a/src/Custom/OpenAIClient.cs b/src/Custom/OpenAIClient.cs index 33b152ece..2e7e0498d 100644 --- a/src/Custom/OpenAIClient.cs +++ b/src/Custom/OpenAIClient.cs @@ -9,6 +9,7 @@ using OpenAI.Models; using OpenAI.Moderations; using OpenAI.RealtimeConversation; +using OpenAI.Responses; using OpenAI.VectorStores; using System; using System.ClientModel; @@ -25,7 +26,7 @@ namespace OpenAI; /// A top-level client factory that enables convenient creation of scenario-specific sub-clients while reusing shared /// configuration details like endpoint, authentication, and pipeline customization. /// -[CodeGenModel("OpenAIClient")] +[CodeGenType("OpenAIClient")] [CodeGenSuppress("OpenAIClient", typeof(ApiKeyCredential))] [CodeGenSuppress("OpenAIClient", typeof(Uri), typeof(ApiKeyCredential), typeof(OpenAIClientOptions))] [CodeGenSuppress("_cachedAssistantClient")] @@ -44,6 +45,7 @@ namespace OpenAI; [CodeGenSuppress("_cachedOpenAIModelClient")] [CodeGenSuppress("_cachedModerationClient")] [CodeGenSuppress("_cachedRealtimeConversationClient")] +[CodeGenSuppress("_cachedResponsesClient")] [CodeGenSuppress("_cachedVectorStoreClient")] [CodeGenSuppress("GetAssistantClient")] [CodeGenSuppress("GetAudioClient")] @@ -61,15 +63,14 @@ namespace OpenAI; [CodeGenSuppress("GetModelClient")] [CodeGenSuppress("GetModerationClient")] [CodeGenSuppress("GetRealtimeConversationClient")] +[CodeGenSuppress("GetResponsesClient")] [CodeGenSuppress("GetVectorStoreClient")] public partial class OpenAIClient { private const string OpenAIV1Endpoint = "https://api.openai.com/v1"; - private const string OpenAIBetaHeaderValue = "assistants=v2"; private static class KnownHeaderNames { - public const string OpenAIBeta = "OpenAI-Beta"; public const string OpenAIOrganization = "OpenAI-Organization"; public const string OpenAIProject = "OpenAI-Project"; public const string UserAgent = "User-Agent"; @@ -241,6 +242,17 @@ protected internal OpenAIClient(ClientPipeline pipeline, OpenAIClientOptions opt /// A new . public virtual ModerationClient GetModerationClient(string model) => new(Pipeline, model, _options); + /// + /// Gets a new instance of that reuses the client configuration details provided to + /// the instance. + /// + /// + /// This method is functionally equivalent to using the constructor directly with + /// the same configuration details. + /// + /// A new . + public virtual OpenAIResponseClient GetOpenAIResponseClient(string model) => new(Pipeline, model, _options); + /// /// Gets a new instance of that reuses the client configuration details provided to /// the instance. @@ -261,7 +273,6 @@ internal static ClientPipeline CreatePipeline(ApiKeyCredential credential, OpenA return ClientPipeline.Create( options, perCallPolicies: [ - CreateAddBetaFeatureHeaderPolicy(), CreateAddCustomHeadersPolicy(options), ], perTryPolicies: [ @@ -276,17 +287,6 @@ internal static Uri GetEndpoint(OpenAIClientOptions options = null) return options?.Endpoint ?? new(OpenAIV1Endpoint); } - private static PipelinePolicy CreateAddBetaFeatureHeaderPolicy() - { - return new GenericActionPipelinePolicy((message) => - { - if (message?.Request?.Headers?.TryGetValue(KnownHeaderNames.OpenAIBeta, out string _) == false) - { - message.Request.Headers.Set(KnownHeaderNames.OpenAIBeta, OpenAIBetaHeaderValue); - } - }); - } - private static PipelinePolicy CreateAddCustomHeadersPolicy(OpenAIClientOptions options = null) { TelemetryDetails telemetryDetails = new(typeof(OpenAIClientOptions).Assembly, options?.UserAgentApplicationId); diff --git a/src/Custom/OpenAIClientOptions.cs b/src/Custom/OpenAIClientOptions.cs index 0f5b67fce..585882f74 100644 --- a/src/Custom/OpenAIClientOptions.cs +++ b/src/Custom/OpenAIClientOptions.cs @@ -4,7 +4,7 @@ namespace OpenAI; /// The options to configure the client. -[CodeGenModel("OpenAIClientOptions")] +[CodeGenType("OpenAIClientOptions")] public partial class OpenAIClientOptions : ClientPipelineOptions { private Uri _endpoint; diff --git a/src/Custom/OpenAIError.cs b/src/Custom/OpenAIError.cs index 3199b5290..7bdc7c596 100644 --- a/src/Custom/OpenAIError.cs +++ b/src/Custom/OpenAIError.cs @@ -10,7 +10,7 @@ namespace OpenAI.Internal; // - 'FromResponse' added for convenience with parent type // - 'ToExceptionMessage' added for encapsulated message formatting -[CodeGenModel("Error")] +[CodeGenType("Error")] internal partial class OpenAIError { internal static OpenAIError TryCreateFromResponse(PipelineResponse response) @@ -49,5 +49,5 @@ public string ToExceptionMessage(int httpStatus) // Custom: // - Renamed -[CodeGenModel("ErrorResponse")] +[CodeGenType("ErrorResponse")] internal partial class OpenAIErrorResponse { } diff --git a/src/Custom/OpenAIModelFactory.cs b/src/Custom/OpenAIModelFactory.cs index 48ad6dd20..dcbb06252 100644 --- a/src/Custom/OpenAIModelFactory.cs +++ b/src/Custom/OpenAIModelFactory.cs @@ -1,6 +1,6 @@ namespace OpenAI; -[CodeGenModel("OpenAIModelFactory")] +[CodeGenType("OpenAIModelFactory")] internal static partial class OpenAIModelFactory { } diff --git a/src/Custom/RealtimeConversation/ConversationContentPart.cs b/src/Custom/RealtimeConversation/ConversationContentPart.cs index 0648a83cd..1c8934fba 100644 --- a/src/Custom/RealtimeConversation/ConversationContentPart.cs +++ b/src/Custom/RealtimeConversation/ConversationContentPart.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeContentPart")] +[CodeGenType("RealtimeContentPart")] public partial class ConversationContentPart { public string Text => diff --git a/src/Custom/RealtimeConversation/ConversationContentPartKind.cs b/src/Custom/RealtimeConversation/ConversationContentPartKind.cs index 75adf721b..c87462431 100644 --- a/src/Custom/RealtimeConversation/ConversationContentPartKind.cs +++ b/src/Custom/RealtimeConversation/ConversationContentPartKind.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeContentPartType")] +[CodeGenType("RealtimeContentPartType")] public readonly partial struct ConversationContentPartKind { [CodeGenMember("Audio")] diff --git a/src/Custom/RealtimeConversation/ConversationFunctionTool.cs b/src/Custom/RealtimeConversation/ConversationFunctionTool.cs index dcb2621ee..c095c5484 100644 --- a/src/Custom/RealtimeConversation/ConversationFunctionTool.cs +++ b/src/Custom/RealtimeConversation/ConversationFunctionTool.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeFunctionTool")] +[CodeGenType("RealtimeFunctionTool")] public partial class ConversationFunctionTool : ConversationTool { [CodeGenMember("Name")] diff --git a/src/Custom/RealtimeConversation/ConversationIncompleteReason.cs b/src/Custom/RealtimeConversation/ConversationIncompleteReason.cs index bb2b76df0..3913ca477 100644 --- a/src/Custom/RealtimeConversation/ConversationIncompleteReason.cs +++ b/src/Custom/RealtimeConversation/ConversationIncompleteReason.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseStatusDetailsReason")] +[CodeGenType("RealtimeResponseStatusDetailsReason")] public readonly partial struct ConversationIncompleteReason { } \ No newline at end of file diff --git a/src/Custom/RealtimeConversation/ConversationInputTokenUsageDetails.cs b/src/Custom/RealtimeConversation/ConversationInputTokenUsageDetails.cs index 713ca5b8d..a3c38f534 100644 --- a/src/Custom/RealtimeConversation/ConversationInputTokenUsageDetails.cs +++ b/src/Custom/RealtimeConversation/ConversationInputTokenUsageDetails.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseUsageInputTokenDetails")] +[CodeGenType("RealtimeResponseUsageInputTokenDetails")] public partial class ConversationInputTokenUsageDetails { // CUSTOM: Remove output model optionality, make 'Count' names consistent with Chat diff --git a/src/Custom/RealtimeConversation/ConversationItem.cs b/src/Custom/RealtimeConversation/ConversationItem.cs index 96bc20804..bf6e8791c 100644 --- a/src/Custom/RealtimeConversation/ConversationItem.cs +++ b/src/Custom/RealtimeConversation/ConversationItem.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeConversationRequestItem")] +[CodeGenType("RealtimeConversationRequestItem")] public partial class ConversationItem { public string FunctionCallId => (this as InternalRealtimeRequestFunctionCallItem)?.CallId; diff --git a/src/Custom/RealtimeConversation/ConversationOutputTokenUsageDetails.cs b/src/Custom/RealtimeConversation/ConversationOutputTokenUsageDetails.cs index ba1c36561..fb346e199 100644 --- a/src/Custom/RealtimeConversation/ConversationOutputTokenUsageDetails.cs +++ b/src/Custom/RealtimeConversation/ConversationOutputTokenUsageDetails.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseUsageOutputTokenDetails")] +[CodeGenType("RealtimeResponseUsageOutputTokenDetails")] public partial class ConversationOutputTokenUsageDetails { // CUSTOM: Remove output model optionality, make 'Count' names consistent with Chat diff --git a/src/Custom/RealtimeConversation/ConversationRateLimitDetailsItem.cs b/src/Custom/RealtimeConversation/ConversationRateLimitDetailsItem.cs index 7f8fa721c..dd4f1786b 100644 --- a/src/Custom/RealtimeConversation/ConversationRateLimitDetailsItem.cs +++ b/src/Custom/RealtimeConversation/ConversationRateLimitDetailsItem.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventRateLimitsUpdatedRateLimitsItem")] +[CodeGenType("RealtimeServerEventRateLimitsUpdatedRateLimitsItem")] public partial class ConversationRateLimitDetailsItem { [CodeGenMember("Limit")] diff --git a/src/Custom/RealtimeConversation/ConversationResponseOptions.cs b/src/Custom/RealtimeConversation/ConversationResponseOptions.cs index 6060d1721..5c25f651b 100644 --- a/src/Custom/RealtimeConversation/ConversationResponseOptions.cs +++ b/src/Custom/RealtimeConversation/ConversationResponseOptions.cs @@ -8,7 +8,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseCreateParams")] +[CodeGenType("RealtimeResponseCreateParams")] public partial class ConversationResponseOptions { [CodeGenMember("Conversation")] diff --git a/src/Custom/RealtimeConversation/ConversationSessionOptions.cs b/src/Custom/RealtimeConversation/ConversationSessionOptions.cs index 5a0bd2be2..3dab08b6d 100644 --- a/src/Custom/RealtimeConversation/ConversationSessionOptions.cs +++ b/src/Custom/RealtimeConversation/ConversationSessionOptions.cs @@ -6,7 +6,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeRequestSession")] +[CodeGenType("RealtimeRequestSession")] public partial class ConversationSessionOptions { [CodeGenMember("Model")] diff --git a/src/Custom/RealtimeConversation/ConversationStatusDetails.cs b/src/Custom/RealtimeConversation/ConversationStatusDetails.cs index 346eebd12..7198a07df 100644 --- a/src/Custom/RealtimeConversation/ConversationStatusDetails.cs +++ b/src/Custom/RealtimeConversation/ConversationStatusDetails.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseStatusDetails")] +[CodeGenType("RealtimeResponseStatusDetails")] public partial class ConversationStatusDetails { [CodeGenMember("Type")] diff --git a/src/Custom/RealtimeConversation/ConversationTool.cs b/src/Custom/RealtimeConversation/ConversationTool.cs index be18996df..59e5e4a41 100644 --- a/src/Custom/RealtimeConversation/ConversationTool.cs +++ b/src/Custom/RealtimeConversation/ConversationTool.cs @@ -4,7 +4,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeTool")] +[CodeGenType("RealtimeTool")] public abstract partial class ConversationTool { [CodeGenMember("Type")] diff --git a/src/Custom/RealtimeConversation/ConversationToolChoiceKind.cs b/src/Custom/RealtimeConversation/ConversationToolChoiceKind.cs index 25a9a43c3..1a82a3f4f 100644 --- a/src/Custom/RealtimeConversation/ConversationToolChoiceKind.cs +++ b/src/Custom/RealtimeConversation/ConversationToolChoiceKind.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeToolChoiceLiteral")] +[CodeGenType("RealtimeToolChoiceLiteral")] public enum ConversationToolChoiceKind { Unknown, diff --git a/src/Custom/RealtimeConversation/ConversationTurnDetectionKind.cs b/src/Custom/RealtimeConversation/ConversationTurnDetectionKind.cs index 6b0bcf117..c0fc90686 100644 --- a/src/Custom/RealtimeConversation/ConversationTurnDetectionKind.cs +++ b/src/Custom/RealtimeConversation/ConversationTurnDetectionKind.cs @@ -4,7 +4,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeTurnDetectionType")] +[CodeGenType("RealtimeTurnDetectionType")] public enum ConversationTurnDetectionKind { [CodeGenMember("ServerVad")] diff --git a/src/Custom/RealtimeConversation/ConversationTurnDetectionOptions.cs b/src/Custom/RealtimeConversation/ConversationTurnDetectionOptions.cs index e8ebe583d..e40b689f1 100644 --- a/src/Custom/RealtimeConversation/ConversationTurnDetectionOptions.cs +++ b/src/Custom/RealtimeConversation/ConversationTurnDetectionOptions.cs @@ -4,7 +4,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeTurnDetection")] +[CodeGenType("RealtimeTurnDetection")] public partial class ConversationTurnDetectionOptions { [CodeGenMember("Kind")] diff --git a/src/Custom/RealtimeConversation/GeneratorStubs.cs b/src/Custom/RealtimeConversation/GeneratorStubs.cs index 3e3cfce8e..fe542184a 100644 --- a/src/Custom/RealtimeConversation/GeneratorStubs.cs +++ b/src/Custom/RealtimeConversation/GeneratorStubs.cs @@ -2,12 +2,12 @@ namespace OpenAI.RealtimeConversation; -[Experimental("OPENAI002")][CodeGenModel("RealtimeAudioFormat")] public readonly partial struct ConversationAudioFormat { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeAudioInputTranscriptionModel")] public readonly partial struct ConversationTranscriptionModel { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeAudioInputTranscriptionSettings")] public partial class ConversationInputTranscriptionOptions { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeItemStatus")] public readonly partial struct ConversationItemStatus { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeMessageRole")] public readonly partial struct ConversationMessageRole { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseStatus")] public readonly partial struct ConversationStatus { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseUsage")] public partial class ConversationTokenUsage { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeToolType")] public readonly partial struct ConversationToolKind { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeVoice")] public readonly partial struct ConversationVoice { } +[Experimental("OPENAI002")][CodeGenType("RealtimeAudioFormat")] public readonly partial struct ConversationAudioFormat { } +[Experimental("OPENAI002")][CodeGenType("RealtimeAudioInputTranscriptionModel")] public readonly partial struct ConversationTranscriptionModel { } +[Experimental("OPENAI002")][CodeGenType("RealtimeAudioInputTranscriptionSettings")] public partial class ConversationInputTranscriptionOptions { } +[Experimental("OPENAI002")][CodeGenType("RealtimeItemStatus")] public readonly partial struct ConversationItemStatus { } +[Experimental("OPENAI002")][CodeGenType("RealtimeMessageRole")] public readonly partial struct ConversationMessageRole { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseStatus")] public readonly partial struct ConversationStatus { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseUsage")] public partial class ConversationTokenUsage { } +[Experimental("OPENAI002")][CodeGenType("RealtimeToolType")] public readonly partial struct ConversationToolKind { } +[Experimental("OPENAI002")][CodeGenType("RealtimeVoice")] public readonly partial struct ConversationVoice { } diff --git a/src/Custom/RealtimeConversation/Internal/GeneratorStubs.cs b/src/Custom/RealtimeConversation/Internal/GeneratorStubs.cs index d26ba5e9a..5861b03f5 100644 --- a/src/Custom/RealtimeConversation/Internal/GeneratorStubs.cs +++ b/src/Custom/RealtimeConversation/Internal/GeneratorStubs.cs @@ -2,49 +2,49 @@ namespace OpenAI.RealtimeConversation; -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEvent")] internal partial class InternalRealtimeClientEvent { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventConversationItemCreate")] internal partial class InternalRealtimeClientEventConversationItemCreate { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventConversationItemDelete")] internal partial class InternalRealtimeClientEventConversationItemDelete { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventConversationItemTruncate")] internal partial class InternalRealtimeClientEventConversationItemTruncate { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventInputAudioBufferAppend")] internal partial class InternalRealtimeClientEventInputAudioBufferAppend { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventInputAudioBufferClear")] internal partial class InternalRealtimeClientEventInputAudioBufferClear { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventInputAudioBufferCommit")] internal partial class InternalRealtimeClientEventInputAudioBufferCommit { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventResponseCancel")] internal partial class InternalRealtimeClientEventResponseCancel { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventSessionUpdate")] internal partial class InternalRealtimeClientEventSessionUpdate { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeClientEventType")] internal readonly partial struct InternalRealtimeClientEventType { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeConversationResponseItemObject")] internal readonly partial struct InternalRealtimeConversationResponseItemObject { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeItemType")] internal readonly partial struct InternalRealtimeItemType { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeModality")] internal readonly partial struct InternalRealtimeRequestSessionModality { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeRequestAudioContentPart")] internal partial class InternalRealtimeRequestAudioContentPart { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeRequestFunctionCallItem")] internal partial class InternalRealtimeRequestFunctionCallItem { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeRequestFunctionCallOutputItem")] internal partial class InternalRealtimeRequestFunctionCallOutputItem { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeRequestMessageItem")] internal partial class InternalRealtimeRequestMessageItem { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeRequestSessionModel")] internal readonly partial struct InternalRealtimeRequestSessionModel { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeRequestTextContentPart")] internal partial class InternalRealtimeRequestTextContentPart { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseAudioContentPart")] internal partial class InternalRealtimeResponseAudioContentPart { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseFunctionCallItem")] internal partial class InternalRealtimeResponseFunctionCallItem { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseFunctionCallOutputItem")] internal partial class InternalRealtimeResponseFunctionCallOutputItem { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseModality")] internal readonly partial struct InternalRealtimeResponseModality { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseObject")] internal readonly partial struct InternalRealtimeResponseObject { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseOutputAudioFormat")] internal readonly partial struct InternalRealtimeResponseOutputAudioFormat { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseSessionObject")] internal readonly partial struct InternalRealtimeResponseSessionObject { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseStatusDetailsError")] internal partial class InternalRealtimeResponseStatusDetailsError { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseStatusDetailsType")] internal readonly partial struct InternalRealtimeResponseStatusDetailsType { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseTextContentPart")] internal partial class InternalRealtimeResponseTextContentPart { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeResponseVoice")] internal readonly partial struct InternalRealtimeResponseVoice { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeServerEventConversationCreated")] internal partial class InternalRealtimeServerEventConversationCreated { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeServerEventConversationCreatedConversation")] internal partial class InternalRealtimeServerEventConversationCreatedConversation { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeServerEventConversationItemInputAudioTranscriptionFailedError")] internal partial class InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeServerEventErrorError")] internal partial class InternalRealtimeServerEventErrorError { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeToolChoiceFunctionObject")] internal partial class InternalRealtimeToolChoiceFunctionObject { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeToolChoiceFunctionObjectFunction")] internal partial class InternalRealtimeToolChoiceFunctionObjectFunction { } -[Experimental("OPENAI002")][CodeGenModel("RealtimeToolChoiceObject")] internal partial class InternalRealtimeToolChoiceObject { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeClientEvent")] internal partial class UnknownRealtimeClientEvent { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeContentPart")] internal partial class UnknownRealtimeContentPart { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeConversationRequestItem")] internal partial class UnknownRealtimeRequestItem { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeConversationResponseItem")] internal partial class UnknownRealtimeResponseItem { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeRequestMessageItem")] internal partial class UnknownRealtimeRequestMessageItem { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeServerEvent")] internal partial class UnknownRealtimeServerEvent { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeTool")] internal partial class UnknownRealtimeTool { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeToolChoiceObject")] internal partial class UnknownRealtimeToolChoiceObject { } -[Experimental("OPENAI002")][CodeGenModel("UnknownRealtimeTurnDetection")] internal partial class UnknownRealtimeTurnDetection { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEvent")] internal partial class InternalRealtimeClientEvent { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventConversationItemCreate")] internal partial class InternalRealtimeClientEventConversationItemCreate { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventConversationItemDelete")] internal partial class InternalRealtimeClientEventConversationItemDelete { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventConversationItemTruncate")] internal partial class InternalRealtimeClientEventConversationItemTruncate { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventInputAudioBufferAppend")] internal partial class InternalRealtimeClientEventInputAudioBufferAppend { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventInputAudioBufferClear")] internal partial class InternalRealtimeClientEventInputAudioBufferClear { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventInputAudioBufferCommit")] internal partial class InternalRealtimeClientEventInputAudioBufferCommit { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventResponseCancel")] internal partial class InternalRealtimeClientEventResponseCancel { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventSessionUpdate")] internal partial class InternalRealtimeClientEventSessionUpdate { } +[Experimental("OPENAI002")][CodeGenType("RealtimeClientEventType")] internal readonly partial struct InternalRealtimeClientEventType { } +[Experimental("OPENAI002")][CodeGenType("RealtimeConversationResponseItemObject")] internal readonly partial struct InternalRealtimeConversationResponseItemObject { } +[Experimental("OPENAI002")][CodeGenType("RealtimeItemType")] internal readonly partial struct InternalRealtimeItemType { } +[Experimental("OPENAI002")][CodeGenType("RealtimeModality")] internal readonly partial struct InternalRealtimeRequestSessionModality { } +[Experimental("OPENAI002")][CodeGenType("RealtimeRequestAudioContentPart")] internal partial class InternalRealtimeRequestAudioContentPart { } +[Experimental("OPENAI002")][CodeGenType("RealtimeRequestFunctionCallItem")] internal partial class InternalRealtimeRequestFunctionCallItem { } +[Experimental("OPENAI002")][CodeGenType("RealtimeRequestFunctionCallOutputItem")] internal partial class InternalRealtimeRequestFunctionCallOutputItem { } +[Experimental("OPENAI002")][CodeGenType("RealtimeRequestMessageItem")] internal partial class InternalRealtimeRequestMessageItem { } +[Experimental("OPENAI002")][CodeGenType("RealtimeRequestSessionModel")] internal readonly partial struct InternalRealtimeRequestSessionModel { } +[Experimental("OPENAI002")][CodeGenType("RealtimeRequestTextContentPart")] internal partial class InternalRealtimeRequestTextContentPart { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseAudioContentPart")] internal partial class InternalRealtimeResponseAudioContentPart { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseFunctionCallItem")] internal partial class InternalRealtimeResponseFunctionCallItem { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseFunctionCallOutputItem")] internal partial class InternalRealtimeResponseFunctionCallOutputItem { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseModality")] internal readonly partial struct InternalRealtimeResponseModality { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseObject")] internal readonly partial struct InternalRealtimeResponseObject { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseOutputAudioFormat")] internal readonly partial struct InternalRealtimeResponseOutputAudioFormat { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseSessionObject")] internal readonly partial struct InternalRealtimeResponseSessionObject { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseStatusDetailsError")] internal partial class InternalRealtimeResponseStatusDetailsError { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseStatusDetailsType")] internal readonly partial struct InternalRealtimeResponseStatusDetailsType { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseTextContentPart")] internal partial class InternalRealtimeResponseTextContentPart { } +[Experimental("OPENAI002")][CodeGenType("RealtimeResponseVoice")] internal readonly partial struct InternalRealtimeResponseVoice { } +[Experimental("OPENAI002")][CodeGenType("RealtimeServerEventConversationCreated")] internal partial class InternalRealtimeServerEventConversationCreated { } +[Experimental("OPENAI002")][CodeGenType("RealtimeServerEventConversationCreatedConversation")] internal partial class InternalRealtimeServerEventConversationCreatedConversation { } +[Experimental("OPENAI002")][CodeGenType("RealtimeServerEventConversationItemInputAudioTranscriptionFailedError")] internal partial class InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError { } +[Experimental("OPENAI002")][CodeGenType("RealtimeServerEventErrorError")] internal partial class InternalRealtimeServerEventErrorError { } +[Experimental("OPENAI002")][CodeGenType("RealtimeToolChoiceFunctionObject")] internal partial class InternalRealtimeToolChoiceFunctionObject { } +[Experimental("OPENAI002")][CodeGenType("RealtimeToolChoiceFunctionObjectFunction")] internal partial class InternalRealtimeToolChoiceFunctionObjectFunction { } +[Experimental("OPENAI002")][CodeGenType("RealtimeToolChoiceObject")] internal partial class InternalRealtimeToolChoiceObject { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeClientEvent")] internal partial class UnknownRealtimeClientEvent { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeContentPart")] internal partial class UnknownRealtimeContentPart { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeConversationRequestItem")] internal partial class UnknownRealtimeRequestItem { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeConversationResponseItem")] internal partial class UnknownRealtimeResponseItem { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeRequestMessageItem")] internal partial class UnknownRealtimeRequestMessageItem { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeServerEvent")] internal partial class UnknownRealtimeServerEvent { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeTool")] internal partial class UnknownRealtimeTool { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeToolChoiceObject")] internal partial class UnknownRealtimeToolChoiceObject { } +[Experimental("OPENAI002")][CodeGenType("UnknownRealtimeTurnDetection")] internal partial class UnknownRealtimeTurnDetection { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeClientEventResponseCreate.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeClientEventResponseCreate.cs index 8524b830f..78b63893a 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeClientEventResponseCreate.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeClientEventResponseCreate.cs @@ -7,7 +7,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeClientEventResponseCreate")] +[CodeGenType("RealtimeClientEventResponseCreate")] internal partial class InternalRealtimeClientEventResponseCreate { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestAssistantMessageItem.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestAssistantMessageItem.cs index ec50f9923..575e0b567 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestAssistantMessageItem.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestAssistantMessageItem.cs @@ -4,7 +4,7 @@ namespace OpenAI.RealtimeConversation; -[CodeGenModel("RealtimeRequestAssistantMessageItem")] +[CodeGenType("RealtimeRequestAssistantMessageItem")] [Experimental("OPENAI002")] internal partial class InternalRealtimeRequestAssistantMessageItem { diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestSystemMessageItem.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestSystemMessageItem.cs index b44385e44..85aead774 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestSystemMessageItem.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestSystemMessageItem.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeRequestSystemMessageItem")] +[CodeGenType("RealtimeRequestSystemMessageItem")] internal partial class InternalRealtimeRequestSystemMessageItem { [CodeGenMember("Content")] diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestUserMessageItem.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestUserMessageItem.cs index bb457b6fd..166e5ceb6 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestUserMessageItem.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeRequestUserMessageItem.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeRequestUserMessageItem")] +[CodeGenType("RealtimeRequestUserMessageItem")] internal partial class InternalRealtimeRequestUserMessageItem { [CodeGenMember("Content")] diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponse.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponse.cs index bb6d9f175..b04fef20b 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponse.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponse.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponse")] +[CodeGenType("RealtimeResponse")] internal partial class InternalRealtimeResponse { [CodeGenMember("Output")] diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseItem.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseItem.cs index 6dd2e9143..48956fe42 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseItem.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseItem.cs @@ -4,7 +4,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeConversationResponseItem")] +[CodeGenType("RealtimeConversationResponseItem")] internal partial class InternalRealtimeConversationResponseItem { public string ResponseId diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseMessageItem.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseMessageItem.cs index 25dc0c539..bdbf5c3e2 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseMessageItem.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseMessageItem.cs @@ -4,7 +4,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseMessageItem")] +[CodeGenType("RealtimeResponseMessageItem")] internal partial class InternalRealtimeResponseMessageItem { // CUSTOM: Use the available strong type for roles. diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseSession.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseSession.cs index 4450188ef..47ed82615 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseSession.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeResponseSession.cs @@ -7,7 +7,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseSession")] +[CodeGenType("RealtimeResponseSession")] internal partial class InternalRealtimeResponseSession { [CodeGenMember("MaxResponseOutputTokens")] diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioDelta.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioDelta.cs index 734e4388a..55a39446d 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioDelta.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioDelta.cs @@ -14,6 +14,6 @@ namespace OpenAI.RealtimeConversation; /// an audio content part. This and other related delta events append audio data into the associated content part. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseAudioDelta")] +[CodeGenType("RealtimeServerEventResponseAudioDelta")] internal partial class InternalRealtimeServerEventResponseAudioDelta { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs index f55388fac..161de4e31 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs @@ -11,6 +11,6 @@ namespace OpenAI.RealtimeConversation; /// an output audio content part of a conversation item. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseAudioTranscriptDelta")] +[CodeGenType("RealtimeServerEventResponseAudioTranscriptDelta")] internal partial class InternalRealtimeServerEventResponseAudioTranscriptDelta { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartAdded.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartAdded.cs index c576fc459..863014fe3 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartAdded.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartAdded.cs @@ -12,7 +12,7 @@ namespace OpenAI.RealtimeConversation; /// command (response.content_part.done). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseContentPartAdded")] +[CodeGenType("RealtimeServerEventResponseContentPartAdded")] internal partial class InternalRealtimeServerEventResponseContentPartAdded { [CodeGenMember("Part")] diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartDone.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartDone.cs index 167698f34..a453a2096 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartDone.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseContentPartDone.cs @@ -12,7 +12,7 @@ namespace OpenAI.RealtimeConversation; /// ). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseContentPartDone")] +[CodeGenType("RealtimeServerEventResponseContentPartDone")] internal partial class InternalRealtimeServerEventResponseContentPartDone { [CodeGenMember("Part")] diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs index 712967a6d..ae2ca0b70 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs @@ -21,6 +21,6 @@ namespace OpenAI.RealtimeConversation; /// use of a compatible, incremental parser. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseFunctionCallArgumentsDelta")] +[CodeGenType("RealtimeServerEventResponseFunctionCallArgumentsDelta")] internal partial class InternalRealtimeServerEventResponseFunctionCallArgumentsDelta { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs index cbddbf1d4..886b38a3c 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs @@ -13,6 +13,6 @@ namespace OpenAI.RealtimeConversation; /// function call arguments and is typically interpreted as a JSON document with parameterization matching the /// associated function definition. /// -[CodeGenModel("RealtimeServerEventResponseFunctionCallArgumentsDone")] +[CodeGenType("RealtimeServerEventResponseFunctionCallArgumentsDone")] internal partial class InternalRealtimeServerEventResponseFunctionCallArgumentsDone { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseTextDelta.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseTextDelta.cs index e28a8629f..81f4225b9 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseTextDelta.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerEventResponseTextDelta.cs @@ -14,6 +14,6 @@ namespace OpenAI.RealtimeConversation; /// a text content part. This and other related delta events append text data into the associated content part. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseTextDelta")] +[CodeGenType("RealtimeServerEventResponseTextDelta")] internal partial class InternalRealtimeServerEventResponseTextDelta { } diff --git a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerVadTurnDetection.Serialization.cs b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerVadTurnDetection.Serialization.cs index 98aeaa1b1..f80db65eb 100644 --- a/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerVadTurnDetection.Serialization.cs +++ b/src/Custom/RealtimeConversation/Internal/InternalRealtimeServerVadTurnDetection.Serialization.cs @@ -7,7 +7,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerVadTurnDetection")] +[CodeGenType("RealtimeServerVadTurnDetection")] [CodeGenSerialization(nameof(PrefixPaddingMs), DeserializationValueHook = nameof(DeserializeMillisecondDuration), SerializationValueHook = nameof(SerializePrefixPaddingMs))] [CodeGenSerialization(nameof(SilenceDurationMs), DeserializationValueHook = nameof(DeserializeMillisecondDuration), SerializationValueHook = nameof(SerializeSilenceDurationMs))] internal partial class InternalRealtimeServerVadTurnDetection diff --git a/src/Custom/RealtimeConversation/RealtimeConversationClient.cs b/src/Custom/RealtimeConversation/RealtimeConversationClient.cs index 09a97f55f..bace07dea 100644 --- a/src/Custom/RealtimeConversation/RealtimeConversationClient.cs +++ b/src/Custom/RealtimeConversation/RealtimeConversationClient.cs @@ -8,7 +8,7 @@ namespace OpenAI.RealtimeConversation; -[CodeGenClient("Realtime")] +[CodeGenType("Realtime")] [CodeGenSuppress("StartRealtimeSessionAsync", typeof(IEnumerable), typeof(CancellationToken))] [CodeGenSuppress("StartRealtimeSessionAsync", typeof(BinaryContent), typeof(RequestOptions))] [CodeGenSuppress("StartRealtimeSession", typeof(IEnumerable), typeof(CancellationToken))] diff --git a/src/Custom/RealtimeConversation/ResponseConversationSelection.cs b/src/Custom/RealtimeConversation/ResponseConversationSelection.cs index b2f77da72..1f0c306bc 100644 --- a/src/Custom/RealtimeConversation/ResponseConversationSelection.cs +++ b/src/Custom/RealtimeConversation/ResponseConversationSelection.cs @@ -8,7 +8,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeResponseCreateParamsConversation")] +[CodeGenType("RealtimeResponseCreateParamsConversation")] public readonly partial struct ResponseConversationSelection { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationErrorUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationErrorUpdate.cs index 4ee9b0383..f080866c4 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationErrorUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationErrorUpdate.cs @@ -11,7 +11,7 @@ namespace OpenAI.RealtimeConversation; /// processing a request command or generating another response command. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventError")] +[CodeGenType("RealtimeServerEventError")] public partial class ConversationErrorUpdate { [CodeGenMember("Error")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioClearedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioClearedUpdate.cs index df2aee87b..c653fd500 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioClearedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioClearedUpdate.cs @@ -13,6 +13,6 @@ namespace OpenAI.RealtimeConversation; /// purging the user audio input buffer. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventInputAudioBufferCleared")] +[CodeGenType("RealtimeServerEventInputAudioBufferCleared")] public partial class ConversationInputAudioClearedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioCommittedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioCommittedUpdate.cs index bb9478f06..45f951b6b 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioCommittedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputAudioCommittedUpdate.cs @@ -13,6 +13,6 @@ namespace OpenAI.RealtimeConversation; /// completed submission of the user audio input buffer. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventInputAudioBufferCommitted")] +[CodeGenType("RealtimeServerEventInputAudioBufferCommitted")] public partial class ConversationInputAudioCommittedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechFinishedUpdate.cs index ca2c65105..008fafef5 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechFinishedUpdate.cs @@ -13,7 +13,7 @@ namespace OpenAI.RealtimeConversation; /// when the end of speech is detected. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventInputAudioBufferSpeechStopped")] +[CodeGenType("RealtimeServerEventInputAudioBufferSpeechStopped")] public partial class ConversationInputSpeechFinishedUpdate { [CodeGenMember("AudioEndMs")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechStartedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechStartedUpdate.cs index d08e69217..20f90ee44 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechStartedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputSpeechStartedUpdate.cs @@ -14,7 +14,7 @@ namespace OpenAI.RealtimeConversation; /// speech is detected. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventInputAudioBufferSpeechStarted")] +[CodeGenType("RealtimeServerEventInputAudioBufferSpeechStarted")] public partial class ConversationInputSpeechStartedUpdate { [CodeGenMember("AudioStartMs")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFailedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFailedUpdate.cs index 583341c43..bd18e4113 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFailedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFailedUpdate.cs @@ -13,7 +13,7 @@ namespace OpenAI.RealtimeConversation; /// settings. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventConversationItemInputAudioTranscriptionFailed")] +[CodeGenType("RealtimeServerEventConversationItemInputAudioTranscriptionFailed")] public partial class ConversationInputTranscriptionFailedUpdate { [CodeGenMember("Error")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFinishedUpdate.cs index 00a13bacb..f3024b4b3 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationInputTranscriptionFinishedUpdate.cs @@ -12,6 +12,6 @@ namespace OpenAI.RealtimeConversation; /// audio input buffer. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventConversationItemInputAudioTranscriptionCompleted")] +[CodeGenType("RealtimeServerEventConversationItemInputAudioTranscriptionCompleted")] public partial class ConversationInputTranscriptionFinishedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemCreatedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemCreatedUpdate.cs index ca5600641..cb355ba23 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemCreatedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemCreatedUpdate.cs @@ -13,7 +13,7 @@ namespace OpenAI.RealtimeConversation; /// (response.output_item.done). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventConversationItemCreated")] +[CodeGenType("RealtimeServerEventConversationItemCreated")] public partial class ConversationItemCreatedUpdate { [CodeGenMember("Item")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemDeletedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemDeletedUpdate.cs index 62a406b5e..4d403e61e 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemDeletedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemDeletedUpdate.cs @@ -12,6 +12,6 @@ namespace OpenAI.RealtimeConversation; /// (). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventConversationItemDeleted")] +[CodeGenType("RealtimeServerEventConversationItemDeleted")] public partial class ConversationItemDeletedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioFinishedUpdate.cs index dbfcf96cf..815b84b98 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioFinishedUpdate.cs @@ -15,6 +15,6 @@ namespace OpenAI.RealtimeConversation; /// has completed and the associated content part will soon be completed. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseAudioDone")] +[CodeGenType("RealtimeServerEventResponseAudioDone")] public partial class ConversationItemStreamingAudioFinishedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs index 1a889ca15..97c8a6669 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs @@ -12,6 +12,6 @@ namespace OpenAI.RealtimeConversation; /// received. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseAudioTranscriptDone")] +[CodeGenType("RealtimeServerEventResponseAudioTranscriptDone")] public partial class ConversationItemStreamingAudioTranscriptionFinishedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingFinishedUpdate.cs index 4f68f7d95..1112b4c86 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingFinishedUpdate.cs @@ -11,7 +11,7 @@ namespace OpenAI.RealtimeConversation; /// ). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseOutputItemDone")] +[CodeGenType("RealtimeServerEventResponseOutputItemDone")] public partial class ConversationItemStreamingFinishedUpdate { [CodeGenMember("Item")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingStartedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingStartedUpdate.cs index a5ce8974e..573336a01 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingStartedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingStartedUpdate.cs @@ -10,7 +10,7 @@ namespace OpenAI.RealtimeConversation; /// commands and paired with an ending response.output_item.done update. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseOutputItemAdded")] +[CodeGenType("RealtimeServerEventResponseOutputItemAdded")] public partial class ConversationItemStreamingStartedUpdate { [CodeGenMember("Item")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingTextFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingTextFinishedUpdate.cs index 83de35b2f..4d0cf4fef 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingTextFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingTextFinishedUpdate.cs @@ -15,6 +15,6 @@ namespace OpenAI.RealtimeConversation; /// has completed and the associated content part will soon be completed. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseTextDone")] +[CodeGenType("RealtimeServerEventResponseTextDone")] public partial class ConversationItemStreamingTextFinishedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemTruncatedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemTruncatedUpdate.cs index 942771cf2..34308ded0 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemTruncatedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemTruncatedUpdate.cs @@ -12,6 +12,6 @@ namespace OpenAI.RealtimeConversation; /// (). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventConversationItemTruncated")] +[CodeGenType("RealtimeServerEventConversationItemTruncated")] public partial class ConversationItemTruncatedUpdate { } diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationRateLimitsUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationRateLimitsUpdate.cs index 01119164f..8feadc090 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationRateLimitsUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationRateLimitsUpdate.cs @@ -10,7 +10,7 @@ namespace OpenAI.RealtimeConversation; /// the most recent information about configured rate limits. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventRateLimitsUpdated")] +[CodeGenType("RealtimeServerEventRateLimitsUpdated")] public partial class ConversationRateLimitsUpdate { public ConversationRateLimitDetailsItem TokenDetails diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseFinishedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseFinishedUpdate.cs index df314a7aa..3bcab28c5 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseFinishedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseFinishedUpdate.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation; /// completed and no further content part or item information will be transmitted. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseDone")] +[CodeGenType("RealtimeServerEventResponseDone")] public partial class ConversationResponseFinishedUpdate { [CodeGenMember("Response")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseStartedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseStartedUpdate.cs index 43ba27e8c..65d868a65 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseStartedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationResponseStartedUpdate.cs @@ -11,7 +11,7 @@ namespace OpenAI.RealtimeConversation; /// (). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventResponseCreated")] +[CodeGenType("RealtimeServerEventResponseCreated")] public partial class ConversationResponseStartedUpdate { [CodeGenMember("Response")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionConfiguredUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionConfiguredUpdate.cs index 4de52d8c3..89d909ecd 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionConfiguredUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionConfiguredUpdate.cs @@ -12,7 +12,7 @@ namespace OpenAI.RealtimeConversation; /// until the next response; shared session configuration, such as input audio format, will apply immediately. /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventSessionUpdated")] +[CodeGenType("RealtimeServerEventSessionUpdated")] public partial class ConversationSessionConfiguredUpdate { [CodeGenMember("Session")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionStartedUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionStartedUpdate.cs index 317cac277..7ca5c9b82 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionStartedUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationSessionStartedUpdate.cs @@ -12,7 +12,7 @@ namespace OpenAI.RealtimeConversation; /// (). /// [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventSessionCreated")] +[CodeGenType("RealtimeServerEventSessionCreated")] public partial class ConversationSessionStartedUpdate { [CodeGenMember("Session")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdate.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdate.cs index dd47e04b6..c5477af09 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdate.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdate.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEvent")] +[CodeGenType("RealtimeServerEvent")] public partial class ConversationUpdate { [CodeGenMember("Kind")] diff --git a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdateKind.cs b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdateKind.cs index d8da3878d..df404d3de 100644 --- a/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdateKind.cs +++ b/src/Custom/RealtimeConversation/ResponseUpdates/ConversationUpdateKind.cs @@ -5,7 +5,7 @@ namespace OpenAI.RealtimeConversation; [Experimental("OPENAI002")] -[CodeGenModel("RealtimeServerEventType")] +[CodeGenType("RealtimeServerEventType")] public enum ConversationUpdateKind { /// diff --git a/src/Custom/Responses/Internal/GeneratorStubs.cs b/src/Custom/Responses/Internal/GeneratorStubs.cs new file mode 100644 index 000000000..bdfc4b11e --- /dev/null +++ b/src/Custom/Responses/Internal/GeneratorStubs.cs @@ -0,0 +1,45 @@ +namespace OpenAI.Responses; + +[CodeGenType("CreateResponsesRequestModel")] internal readonly partial struct InternalCreateResponsesRequestModel { } +[CodeGenType("ResponsesComputerCallClickAction")] internal partial class InternalResponsesComputerCallClickAction { } +[CodeGenType("ResponsesComputerCallDoubleClickAction")] internal partial class InternalResponsesComputerCallDoubleClickAction { } +[CodeGenType("ResponsesComputerCallDragAction")] internal partial class InternalResponsesComputerCallDragAction { } +[CodeGenType("ResponsesComputerCallKeyPressAction")] internal partial class InternalResponsesComputerCallKeyPressAction { } +[CodeGenType("ResponsesComputerCallMoveAction")] internal partial class InternalResponsesComputerCallMoveAction { } +[CodeGenType("ResponsesComputerCallScreenshotAction")] internal partial class InternalResponsesComputerCallScreenshotAction { } +[CodeGenType("ResponsesComputerCallScrollAction")] internal partial class InternalResponsesComputerCallScrollAction { } +[CodeGenType("ResponsesComputerCallTypeAction")] internal partial class InternalResponsesComputerCallTypeAction { } +[CodeGenType("ResponsesComputerCallWaitAction")] internal partial class InternalResponsesComputerCallWaitAction { } +[CodeGenType("ResponsesComputerTool")] internal partial class InternalResponsesComputerTool { } +[CodeGenType("ResponsesErrorResponse")] internal partial class InternalResponsesErrorResponse { } +[CodeGenType("ResponsesFileSearchTool")] internal partial class InternalResponsesFileSearchTool { } +[CodeGenType("ResponsesFunctionTool")] internal partial class InternalResponsesFunctionTool { } +[CodeGenType("ResponsesInputItemList")] internal partial class InternalResponsesInputItemList { } +[CodeGenType("ResponsesInputItemListObject")] internal readonly partial struct InternalResponsesInputItemListObject { } +[CodeGenType("ResponsesItemType")] internal readonly partial struct InternalResponsesItemType { } +[CodeGenType("ResponsesResponseObject")] internal readonly partial struct InternalCreateResponsesResponseObject { } +[CodeGenType("ResponsesToolType")] internal readonly partial struct InternalResponsesToolType { } +[CodeGenType("ResponsesWebSearchTool")] internal partial class InternalResponsesWebSearchTool { } +[CodeGenType("UnknownResponsesComputerCallItemAction")] internal partial class UnknownResponsesComputerCallItemAction { } +[CodeGenType("UnknownResponsesComputerCallOutputItemOutput")] internal partial class UnknownResponsesComputerCallOutputItemOutput { } +[CodeGenType("UnknownResponsesItem")] internal partial class InternalUnknownResponsesItem { } +[CodeGenType("UnknownResponsesMessage")] internal partial class InternalUnknownResponsesMessage { } +[CodeGenType("ResponsesTextFormatType")] internal readonly partial struct InternalResponsesTextFormatType { } +[CodeGenType("ResponsesToolChoiceOption")] internal readonly partial struct InternalResponsesToolChoiceOption { } +[CodeGenType("ResponsesToolChoiceObjectType")] internal readonly partial struct InternalResponsesToolChoiceObjectType { } +[CodeGenType("ResponsesTextFormatText")] internal partial class InternalResponsesTextFormatText { } +[CodeGenType("ResponsesTextFormatJsonObject")] internal partial class InternalResponsesTextFormatJsonObject { } +[CodeGenType("ResponsesTextFormatJsonSchema")] internal partial class InternalResponsesTextFormatJsonSchema { } +[CodeGenType("ResponsesToolChoiceObject")] internal partial class InternalResponsesToolChoiceObject { } +[CodeGenType("ResponsesToolChoiceObjectFileSearch")] internal partial class InternalResponsesToolChoiceObjectFileSearch { } +[CodeGenType("ResponsesToolChoiceObjectWebSearch")] internal partial class InternalResponsesToolChoiceObjectWebSearch { } +[CodeGenType("ResponsesToolChoiceObjectFunction")] internal partial class InternalResponsesToolChoiceObjectFunction { } +[CodeGenType("ResponsesToolChoiceObjectComputer")] internal partial class InternalResponsesToolChoiceObjectComputer { } +[CodeGenType("ResponsesComputerCallOutputItemOutputType")] internal readonly partial struct InternalResponsesComputerCallOutputItemOutputType { } +[CodeGenType("ResponsesComputerCallDragActionPath")] internal partial class InternalResponsesComputerCallDragActionPath { } +[CodeGenType("ResponsesComputerCallOutputItemScreenshot")] internal partial class InternalResponsesComputerCallOutputItemScreenshot { } +[CodeGenType("DeleteResponseResponseObject")] internal readonly partial struct InternalDeleteResponseResponseObject { } +[CodeGenType("ResponsesWebSearchApproximateLocation")] internal partial class InternalResponsesWebSearchApproximateLocation { } +[CodeGenType("ResponsesReasoningItemSummaryElement")] internal partial class InternalResponsesReasoningItemSummaryElement { } +[CodeGenType("ResponsesReasoningItemSummaryType")] internal readonly partial struct InternalResponsesReasoningItemSummaryType { } +[CodeGenType("ResponsesReasoningItemSummaryElementSummaryText")] internal partial class InternalResponsesReasoningItemSummaryElementSummaryText { } diff --git a/src/Custom/Responses/Internal/InternalCreateResponsesRequestIncludable.cs b/src/Custom/Responses/Internal/InternalCreateResponsesRequestIncludable.cs new file mode 100644 index 000000000..35d06d68f --- /dev/null +++ b/src/Custom/Responses/Internal/InternalCreateResponsesRequestIncludable.cs @@ -0,0 +1,14 @@ +using OpenAI.Telemetry; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Threading; + +namespace OpenAI.Responses; + +[CodeGenType("CreateResponsesRequestIncludable")] +internal readonly partial struct InternalCreateResponsesRequestIncludable +{ + public static implicit operator string(InternalCreateResponsesRequestIncludable self) => self.ToString(); +} \ No newline at end of file diff --git a/src/Custom/Responses/Internal/InternalResponsesComputerCallOutputItem.cs b/src/Custom/Responses/Internal/InternalResponsesComputerCallOutputItem.cs new file mode 100644 index 000000000..67fc241b9 --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesComputerCallOutputItem.cs @@ -0,0 +1,26 @@ +//using OpenAI.Telemetry; +//using System.ClientModel; +//using System.ClientModel.Primitives; +//using System.Collections.Generic; +//using System.Threading; + +//namespace OpenAI.Responses; + +//[CodeGenType("ResponsesComputerCallOutputItem")] +//internal partial class InternalResponsesComputerCallOutputItem +//{ +// internal InternalResponsesComputerCallOutputItem( +// string callId, +// InternalResponsesComputerCallOutputItemOutput output) +// : base(InternalResponsesItemType.ComputerCallOutput) +// { +// Argument.AssertNotNull(callId, nameof(callId)); +// Argument.AssertNotNull(output, nameof(output)); + +// CallId = callId; +// Output = output; +// } + +// [CodeGenMember("Output")] +// internal InternalResponsesComputerCallOutputItemOutput Output { get; set; } +//} diff --git a/src/Custom/Responses/Internal/InternalResponsesInputFileContentPart.cs b/src/Custom/Responses/Internal/InternalResponsesInputFileContentPart.cs new file mode 100644 index 000000000..bc3bcc5aa --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesInputFileContentPart.cs @@ -0,0 +1,13 @@ +using System; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesInputContentFile")] +internal partial class InternalResponsesInputFileContentPart +{ + // CUSTOM: + // - Renamed. + // - Changed type from string to BinaryData. + [CodeGenMember("FileData")] + public BinaryData FileBytes { get; set; } +} \ No newline at end of file diff --git a/src/Custom/Responses/Internal/InternalResponsesInputImageContentPart.cs b/src/Custom/Responses/Internal/InternalResponsesInputImageContentPart.cs new file mode 100644 index 000000000..fde30099b --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesInputImageContentPart.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesInputContentImage")] +internal partial class InternalResponsesInputImageContentPart +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/Internal/InternalResponsesInputTextContentPart.cs b/src/Custom/Responses/Internal/InternalResponsesInputTextContentPart.cs new file mode 100644 index 000000000..89565e241 --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesInputTextContentPart.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesInputContentText")] +internal partial class InternalResponsesInputTextContentPart +{ + // CUSTOM: Rename for parent recombination of common properties + [CodeGenMember("Text")] + public string InternalText { get; set; } +} diff --git a/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationFileCitation.cs b/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationFileCitation.cs new file mode 100644 index 000000000..74a2c213c --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationFileCitation.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesOutputTextAnnotationFileCitation")] +internal partial class InternalResponsesMessageAnnotationFileCitation +{ +} diff --git a/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationFilePath.cs b/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationFilePath.cs new file mode 100644 index 000000000..f55ea0d3b --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationFilePath.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesOutputTextAnnotationFilePath")] +internal partial class InternalResponsesMessageAnnotationFilePath +{ +} diff --git a/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationUrlCitation.cs b/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationUrlCitation.cs new file mode 100644 index 000000000..3842bbb1b --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesMessageAnnotationUrlCitation.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesOutputTextAnnotationUrlCitation")] +internal partial class InternalResponsesMessageAnnotationUrlCitation +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/Internal/InternalResponsesOutputRefusalContentPart.cs b/src/Custom/Responses/Internal/InternalResponsesOutputRefusalContentPart.cs new file mode 100644 index 000000000..ddaf0506d --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesOutputRefusalContentPart.cs @@ -0,0 +1,8 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesOutputContentRefusal")] +internal partial class InternalResponsesOutputRefusalContentPart +{ + [CodeGenMember("Refusal")] + public string InternalRefusal { get; set; } +} diff --git a/src/Custom/Responses/Internal/InternalResponsesOutputTextContentPart.cs b/src/Custom/Responses/Internal/InternalResponsesOutputTextContentPart.cs new file mode 100644 index 000000000..bdd5d3f49 --- /dev/null +++ b/src/Custom/Responses/Internal/InternalResponsesOutputTextContentPart.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesOutputContentText")] +internal partial class InternalResponsesOutputTextContentPart : ResponseContentPart +{ + // CUSTOM: Rename for parent recombination of common properties + [CodeGenMember("Text")] + public string InternalText { get; set; } +} diff --git a/src/Custom/Responses/Internal/InternalUnknownResponseTextFormat.cs b/src/Custom/Responses/Internal/InternalUnknownResponseTextFormat.cs new file mode 100644 index 000000000..4434cf9ea --- /dev/null +++ b/src/Custom/Responses/Internal/InternalUnknownResponseTextFormat.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("UnknownResponsesTextFormat")] +internal partial class InternalUnknownResponsesTextFormat +{ +} diff --git a/src/Custom/Responses/Items/ComputerCallAction.cs b/src/Custom/Responses/Items/ComputerCallAction.cs new file mode 100644 index 000000000..2ea96b08b --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallAction.cs @@ -0,0 +1,134 @@ +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerCallItemAction")] +public partial class ComputerCallAction +{ + // CUSTOM: + // - Renamed. + // - Made public. + // - Removed setter. + [CodeGenMember("Type")] + public ComputerCallActionKind Kind { get; } + + // CUSTOM: Exposed click action properties. + public Point? ClickCoordinates => this switch + { + InternalResponsesComputerCallClickAction click => new Point(click.X, click.Y), + _ => null + }; + public ComputerCallActionMouseButton? ClickMouseButton => (this as InternalResponsesComputerCallClickAction)?.Button; + + // CUSTOM: Exposed double-click action properties. + public Point? DoubleClickCoordinates => this switch + { + InternalResponsesComputerCallDoubleClickAction doubleClick => new Point(doubleClick.X, doubleClick.Y), + _ => null + }; + + // CUSTOM: Exposed drag action properties. + public IList DragPath => (this as InternalResponsesComputerCallDragAction)?.Path.Select(item => new Point(item.X, item.Y)).ToList(); + + // CUSTOM: Exposed key press action properties. + public IList KeyPressKeyCodes => (this as InternalResponsesComputerCallKeyPressAction)?.Keys; + + // CUSTOM: Exposed move action properties. + public Point? MoveCoordinates => this switch + { + InternalResponsesComputerCallMoveAction move => new Point(move.X, move.Y), + _ => null + }; + + // CUSTOM: Exposed scroll action properties. + public Point? ScrollCoordinates => this switch + { + InternalResponsesComputerCallScrollAction scroll => new Point(scroll.X, scroll.Y), + _ => null + }; + public int? ScrollHorizontalOffset => (this as InternalResponsesComputerCallScrollAction)?.ScrollX; + public int? ScrollVerticalOffset => (this as InternalResponsesComputerCallScrollAction)?.ScrollY; + + // CUSTOM: Exposed type action properties. + public string TypeText => (this as InternalResponsesComputerCallTypeAction)?.Text; + + public static ComputerCallAction CreateClickAction(Point clickCoordinates, ComputerCallActionMouseButton clickMouseButton) + { + return new InternalResponsesComputerCallClickAction( + kind: ComputerCallActionKind.Click, + additionalBinaryDataProperties: null, + button: clickMouseButton, + x: clickCoordinates.X, + y: clickCoordinates.Y); + } + + public static ComputerCallAction CreateDoubleClickAction(Point doubleClickCoordinates, ComputerCallActionMouseButton doubleClickMouseButton) + { + return new InternalResponsesComputerCallDoubleClickAction( + kind: ComputerCallActionKind.DoubleClick, + additionalBinaryDataProperties: null, + x: doubleClickCoordinates.X, + y: doubleClickCoordinates.Y); + } + + public static ComputerCallAction CreateDragAction(IList dragPath) + { + return new InternalResponsesComputerCallDragAction( + kind: ComputerCallActionKind.Drag, + additionalBinaryDataProperties: null, + path: dragPath.Select(item => new InternalResponsesComputerCallDragActionPath(item.X, item.Y)).ToList()); + } + + public static ComputerCallAction CreateKeyPressAction(IList keyCodes) + { + return new InternalResponsesComputerCallKeyPressAction( + kind: ComputerCallActionKind.KeyPress, + additionalBinaryDataProperties: null, + keys: keyCodes); + } + + public static ComputerCallAction CreateMoveAction(Point moveCoordinates) + { + return new InternalResponsesComputerCallMoveAction( + kind: ComputerCallActionKind.Move, + additionalBinaryDataProperties: null, + x: moveCoordinates.X, + y: moveCoordinates.Y); + } + + public static ComputerCallAction CreateScreenshotAction() + { + return new InternalResponsesComputerCallScreenshotAction( + kind: ComputerCallActionKind.Screenshot, + additionalBinaryDataProperties: null); + } + + public static ComputerCallAction CreateScrollAction(Point scrollCoordinates, int horizontalOffset, int verticalOffset) + { + return new InternalResponsesComputerCallScrollAction( + kind: ComputerCallActionKind.Scroll, + additionalBinaryDataProperties: null, + x: scrollCoordinates.X, + y: scrollCoordinates.Y, + scrollX: horizontalOffset, + scrollY: verticalOffset); + } + + public static ComputerCallAction CreateTypeAction(string typeText) + { + return new InternalResponsesComputerCallTypeAction( + kind: ComputerCallActionKind.Type, + additionalBinaryDataProperties: null, + text: typeText); + } + + public static ComputerCallAction CreateWaitAction() + { + return new InternalResponsesComputerCallWaitAction( + kind: ComputerCallActionKind.Wait, + additionalBinaryDataProperties: null); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/ComputerCallActionKind.cs b/src/Custom/Responses/Items/ComputerCallActionKind.cs new file mode 100644 index 000000000..256b057c9 --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallActionKind.cs @@ -0,0 +1,24 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerCallActionType")] +public enum ComputerCallActionKind +{ + Click, + + DoubleClick, + + Drag, + + [CodeGenMember("Keypress")] + KeyPress, + + Move, + + Screenshot, + + Scroll, + + Type, + + Wait +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/ComputerCallActionMouseButton.cs b/src/Custom/Responses/Items/ComputerCallActionMouseButton.cs new file mode 100644 index 000000000..f0f62e2e9 --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallActionMouseButton.cs @@ -0,0 +1,11 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerCallClickButtonType")] +public enum ComputerCallActionMouseButton +{ + Left, + Right, + Wheel, + Back, + Forward +} diff --git a/src/Custom/Responses/Items/ComputerCallOutputResponseItem.cs b/src/Custom/Responses/Items/ComputerCallOutputResponseItem.cs new file mode 100644 index 000000000..7bca786ca --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallOutputResponseItem.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerCallOutputItem")] +public partial class ComputerCallOutputResponseItem +{ +} diff --git a/src/Custom/Responses/Items/ComputerCallOutputStatus.cs b/src/Custom/Responses/Items/ComputerCallOutputStatus.cs new file mode 100644 index 000000000..2ddf8715b --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallOutputStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesComputerCallOutputItemStatus")] +public enum ComputerCallOutputStatus +{ + InProgress, + Completed, + Incomplete +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/ComputerCallResponseItem.cs b/src/Custom/Responses/Items/ComputerCallResponseItem.cs new file mode 100644 index 000000000..bb60b2109 --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallResponseItem.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom constructor with required `id` parameter. +[CodeGenType("ResponsesComputerCallItem")] +[CodeGenSuppress(nameof(ComputerCallResponseItem), typeof(string), typeof(ComputerCallAction), typeof(IEnumerable))] +public partial class ComputerCallResponseItem +{ + public ComputerCallResponseItem(string id, string callId, ComputerCallAction action, IEnumerable pendingSafetyChecks) : base(InternalResponsesItemType.ComputerCall, id) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(callId, nameof(callId)); + Argument.AssertNotNull(action, nameof(action)); + Argument.AssertNotNull(pendingSafetyChecks, nameof(pendingSafetyChecks)); + + CallId = callId; + Action = action; + PendingSafetyChecks = pendingSafetyChecks.ToList(); + } +} diff --git a/src/Custom/Responses/Items/ComputerCallSafetyCheck.cs b/src/Custom/Responses/Items/ComputerCallSafetyCheck.cs new file mode 100644 index 000000000..69bc886d3 --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallSafetyCheck.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerCallItemSafetyCheck")] +public partial class ComputerCallSafetyCheck +{ +} diff --git a/src/Custom/Responses/Items/ComputerCallStatus.cs b/src/Custom/Responses/Items/ComputerCallStatus.cs new file mode 100644 index 000000000..6271fa5de --- /dev/null +++ b/src/Custom/Responses/Items/ComputerCallStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesComputerCallItemStatus")] +public enum ComputerCallStatus +{ + InProgress, + Completed, + Incomplete +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/ComputerOutput.cs b/src/Custom/Responses/Items/ComputerOutput.cs new file mode 100644 index 000000000..3d1d43d32 --- /dev/null +++ b/src/Custom/Responses/Items/ComputerOutput.cs @@ -0,0 +1,41 @@ +using System; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerCallOutputItemOutput")] +public partial class ComputerOutput +{ + public static ComputerOutput CreateScreenshotOutput(Uri screenshotImageUri) + { + Argument.AssertNotNull(screenshotImageUri, nameof(screenshotImageUri)); + + return new InternalResponsesComputerCallOutputItemScreenshot() + { + ImageUrl = screenshotImageUri.AbsoluteUri, + }; + } + + public static ComputerOutput CreateScreenshotOutput(string screenshotImageFileId) + { + Argument.AssertNotNull(screenshotImageFileId, nameof(screenshotImageFileId)); + + return new InternalResponsesComputerCallOutputItemScreenshot() + { + FileId = screenshotImageFileId, + }; + } + + public static ComputerOutput CreateScreenshotOutput(BinaryData screenshotImageBytes, string screenshotImageBytesMediaType) + { + Argument.AssertNotNull(screenshotImageBytes, nameof(screenshotImageBytes)); + Argument.AssertNotNull(screenshotImageBytesMediaType, nameof(screenshotImageBytesMediaType)); + + string base64EncodedData = Convert.ToBase64String(screenshotImageBytes.ToArray()); + string dataUri = $"data:{screenshotImageBytesMediaType};base64,{base64EncodedData}"; + + return new InternalResponsesComputerCallOutputItemScreenshot() + { + ImageUrl = dataUri, + }; + } +} diff --git a/src/Custom/Responses/Items/FileSearchCallResponseItem.cs b/src/Custom/Responses/Items/FileSearchCallResponseItem.cs new file mode 100644 index 000000000..dc2420b69 --- /dev/null +++ b/src/Custom/Responses/Items/FileSearchCallResponseItem.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom constructor with required `id` parameter. +[CodeGenType("ResponsesFileSearchCallItem")] +[CodeGenSuppress(nameof(FileSearchCallResponseItem), typeof(IEnumerable), typeof(IEnumerable))] +public partial class FileSearchCallResponseItem +{ + public FileSearchCallResponseItem(string id, IEnumerable queries, IEnumerable results) : base(InternalResponsesItemType.FileSearchCall, id) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(queries, nameof(queries)); + + Queries = queries.ToList(); + Results = results?.ToList(); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/FileSearchCallResult.cs b/src/Custom/Responses/Items/FileSearchCallResult.cs new file mode 100644 index 000000000..e83191a39 --- /dev/null +++ b/src/Custom/Responses/Items/FileSearchCallResult.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesFileSearchCallItemResult")] +public partial class FileSearchCallResult +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/FileSearchCallStatus.cs b/src/Custom/Responses/Items/FileSearchCallStatus.cs new file mode 100644 index 000000000..3fac9a41d --- /dev/null +++ b/src/Custom/Responses/Items/FileSearchCallStatus.cs @@ -0,0 +1,12 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesFileSearchCallItemStatus")] +public enum FileSearchCallStatus +{ + InProgress, + Searching, + Completed, + Incomplete, + Failed +} diff --git a/src/Custom/Responses/Items/FunctionCallOutputResponseItem.cs b/src/Custom/Responses/Items/FunctionCallOutputResponseItem.cs new file mode 100644 index 000000000..03aebe9c5 --- /dev/null +++ b/src/Custom/Responses/Items/FunctionCallOutputResponseItem.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesFunctionCallOutput")] +public partial class FunctionCallOutputResponseItem +{ + // CUSTOM: Renamed. + [CodeGenMember("Output")] + public string FunctionOutput { get; set; } +} diff --git a/src/Custom/Responses/Items/FunctionCallOutputStatus.cs b/src/Custom/Responses/Items/FunctionCallOutputStatus.cs new file mode 100644 index 000000000..e1f96d0e9 --- /dev/null +++ b/src/Custom/Responses/Items/FunctionCallOutputStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesFunctionCallOutputStatus")] +public enum FunctionCallOutputStatus +{ + InProgress, + Completed, + Incomplete +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/FunctionCallResponseItem.cs b/src/Custom/Responses/Items/FunctionCallResponseItem.cs new file mode 100644 index 000000000..e0e7fd662 --- /dev/null +++ b/src/Custom/Responses/Items/FunctionCallResponseItem.cs @@ -0,0 +1,33 @@ +using System; + +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom constructor with required `id` parameter. +[CodeGenType("ResponsesFunctionCallItem")] +[CodeGenSuppress(nameof(FunctionCallResponseItem), typeof(string), typeof(string), typeof(BinaryData))] +public partial class FunctionCallResponseItem +{ + public FunctionCallResponseItem(string id, string callId, string functionName, BinaryData functionArguments) : base(InternalResponsesItemType.FunctionCall, id) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(callId, nameof(callId)); + Argument.AssertNotNull(functionName, nameof(functionName)); + Argument.AssertNotNull(functionArguments, nameof(functionArguments)); + + CallId = callId; + FunctionName = functionName; + FunctionArguments = functionArguments; + } + + // CUSTOM: Renamed. + [CodeGenMember("Name")] + public string FunctionName { get; set; } + + // CUSTOM: + // - Renamed. + // - Changed type from string to BinaryData. + [CodeGenMember("Arguments")] + public BinaryData FunctionArguments { get; set; } +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/FunctionCallStatus.cs b/src/Custom/Responses/Items/FunctionCallStatus.cs new file mode 100644 index 000000000..63e2b5c00 --- /dev/null +++ b/src/Custom/Responses/Items/FunctionCallStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesFunctionCallItemStatus")] +public enum FunctionCallStatus +{ + InProgress, + Completed, + Incomplete +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/Internal/InternalResponsesAssistantMessage.cs b/src/Custom/Responses/Items/Internal/InternalResponsesAssistantMessage.cs new file mode 100644 index 000000000..a45fe9f88 --- /dev/null +++ b/src/Custom/Responses/Items/Internal/InternalResponsesAssistantMessage.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesAssistantMessage")] +[CodeGenSuppress(nameof(InternalResponsesAssistantMessage), typeof(IEnumerable))] +internal partial class InternalResponsesAssistantMessage +{ + // CUSTOM: Use generalized content type. + [CodeGenMember("Content")] + public IList InternalContent { get; } + + public InternalResponsesAssistantMessage(IEnumerable internalContent) : base(MessageRole.Assistant) + { + Argument.AssertNotNull(internalContent, nameof(internalContent)); + InternalContent = internalContent.ToList(); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/Internal/InternalResponsesDeveloperMessage.cs b/src/Custom/Responses/Items/Internal/InternalResponsesDeveloperMessage.cs new file mode 100644 index 000000000..0f54a5b28 --- /dev/null +++ b/src/Custom/Responses/Items/Internal/InternalResponsesDeveloperMessage.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesDeveloperMessage")] +[CodeGenSuppress(nameof(InternalResponsesDeveloperMessage), typeof(IEnumerable))] +internal partial class InternalResponsesDeveloperMessage +{ + // CUSTOM: Use generalized content type. + [CodeGenMember("Content")] + public IList InternalContent { get; } + + public InternalResponsesDeveloperMessage(IEnumerable internalContent) : base(MessageRole.Developer) + { + Argument.AssertNotNull(internalContent, nameof(internalContent)); + InternalContent = internalContent.ToList(); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/Internal/InternalResponsesSystemMessage.cs b/src/Custom/Responses/Items/Internal/InternalResponsesSystemMessage.cs new file mode 100644 index 000000000..ae3eba5cb --- /dev/null +++ b/src/Custom/Responses/Items/Internal/InternalResponsesSystemMessage.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesSystemMessage")] +[CodeGenSuppress(nameof(InternalResponsesSystemMessage), typeof(IEnumerable))] +internal partial class InternalResponsesSystemMessage +{ + // CUSTOM: Use generalized content type. + [CodeGenMember("Content")] + public IList InternalContent { get; } + + public InternalResponsesSystemMessage(IEnumerable internalContent) : base(MessageRole.System) + { + Argument.AssertNotNull(internalContent, nameof(internalContent)); + InternalContent = internalContent.ToList(); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/Internal/InternalResponsesUserMessage.cs b/src/Custom/Responses/Items/Internal/InternalResponsesUserMessage.cs new file mode 100644 index 000000000..f3e2a4516 --- /dev/null +++ b/src/Custom/Responses/Items/Internal/InternalResponsesUserMessage.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesUserMessage")] +[CodeGenSuppress(nameof(InternalResponsesUserMessage), typeof(IEnumerable))] +internal partial class InternalResponsesUserMessage +{ + // CUSTOM: Use generalized content type. + [CodeGenMember("Content")] + public IList InternalContent { get; } + + public InternalResponsesUserMessage(IEnumerable internalContent) : base(MessageRole.User) + { + Argument.AssertNotNull(internalContent, nameof(internalContent)); + InternalContent = internalContent.ToList(); + } + +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/MessageResponseItem.cs b/src/Custom/Responses/Items/MessageResponseItem.cs new file mode 100644 index 000000000..62c4e9a6b --- /dev/null +++ b/src/Custom/Responses/Items/MessageResponseItem.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +namespace OpenAI.Responses; + +[CodeGenType("ResponsesMessage")] +[CodeGenSuppress("ResponsesMessage", typeof(MessageRole))] +public partial class MessageResponseItem +{ + // CUSTOM: Made public. + [CodeGenMember("Role")] + public MessageRole Role { get; } + + // CUSTOM: Recombined content from derived types. + public IList Content + => (this as InternalResponsesUserMessage)?.InternalContent + ?? (this as InternalResponsesDeveloperMessage)?.InternalContent + ?? (this as InternalResponsesSystemMessage)?.InternalContent + ?? (this as InternalResponsesAssistantMessage)?.InternalContent; +} diff --git a/src/Custom/Responses/Items/MessageRole.cs b/src/Custom/Responses/Items/MessageRole.cs new file mode 100644 index 000000000..d23375db0 --- /dev/null +++ b/src/Custom/Responses/Items/MessageRole.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesMessageRole")] +public readonly partial struct MessageRole +{ +} diff --git a/src/Custom/Responses/Items/MessageStatus.cs b/src/Custom/Responses/Items/MessageStatus.cs new file mode 100644 index 000000000..c5fd9ec87 --- /dev/null +++ b/src/Custom/Responses/Items/MessageStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesMessageStatus")] +public enum MessageStatus +{ + InProgress, + Completed, + Incomplete +} diff --git a/src/Custom/Responses/Items/ReasoningResponseItem.cs b/src/Custom/Responses/Items/ReasoningResponseItem.cs new file mode 100644 index 000000000..07921b9b4 --- /dev/null +++ b/src/Custom/Responses/Items/ReasoningResponseItem.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom constructor with required `id` parameter. +[CodeGenType("ResponsesReasoningItem")] +[CodeGenSuppress(nameof(ReasoningResponseItem), typeof(IEnumerable))] +public partial class ReasoningResponseItem +{ + public ReasoningResponseItem(string id, IEnumerable summaryTextParts) : base(InternalResponsesItemType.Reasoning, id) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(summaryTextParts, nameof(summaryTextParts)); + + Summary ??= []; + foreach (string summaryTextPart in summaryTextParts) + { + Summary.Add(new InternalResponsesReasoningItemSummaryElementSummaryText(summaryTextPart)); + } + } + + // CUSTOM: Made internal for simplified public reprojection + [CodeGenMember("Summary")] + internal IList Summary { get; } + + public IReadOnlyList SummaryTextParts + => Summary? + .Select(summaryElement => summaryElement as InternalResponsesReasoningItemSummaryElementSummaryText)? + .Select(summaryTextElement => summaryTextElement.Text)? + .ToList() + ?? []; +} diff --git a/src/Custom/Responses/Items/ReasoningStatus.cs b/src/Custom/Responses/Items/ReasoningStatus.cs new file mode 100644 index 000000000..93d7f077c --- /dev/null +++ b/src/Custom/Responses/Items/ReasoningStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesReasoningItemStatus")] +public enum ReasoningStatus +{ + InProgress, + Completed, + Incomplete +} \ No newline at end of file diff --git a/src/Custom/Responses/Items/ReferenceResponseItem.cs b/src/Custom/Responses/Items/ReferenceResponseItem.cs new file mode 100644 index 000000000..fa891500f --- /dev/null +++ b/src/Custom/Responses/Items/ReferenceResponseItem.cs @@ -0,0 +1,13 @@ +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom constructor with required `id` parameter. +[CodeGenType("ResponsesItemReferenceItem")] +[CodeGenSuppress(nameof(ReferenceResponseItem))] +public partial class ReferenceResponseItem +{ + public ReferenceResponseItem(string id) : base(InternalResponsesItemType.ItemReference, id) + { + } +} diff --git a/src/Custom/Responses/Items/ResponseItem.cs b/src/Custom/Responses/Items/ResponseItem.cs new file mode 100644 index 000000000..bffac68e3 --- /dev/null +++ b/src/Custom/Responses/Items/ResponseItem.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesItem")] +public partial class ResponseItem +{ + // CUSTOM: Added custom constructor to be able to set the ID for those items where it is required. + private protected ResponseItem(InternalResponsesItemType @type, string id) + { + Type = @type; + Id = id; + } + + public static MessageResponseItem CreateUserMessageItem(string content) + { + Argument.AssertNotNull(content, nameof(content)); + + return new InternalResponsesSystemMessage( + type: InternalResponsesItemType.Message, + id: null, + additionalBinaryDataProperties: null, + status: null, + MessageRole.User, + internalContent: [ResponseContentPart.CreateInputTextPart(content)]); + } + + public static MessageResponseItem CreateUserMessageItem(IEnumerable contentParts) + { + Argument.AssertNotNullOrEmpty(contentParts, nameof(contentParts)); + + return new InternalResponsesSystemMessage( + type: InternalResponsesItemType.Message, + id: null, + additionalBinaryDataProperties: null, + status: null, + MessageRole.User, + internalContent: [.. contentParts]); + } + + public static MessageResponseItem CreateDeveloperMessageItem(string content) + { + Argument.AssertNotNull(content, nameof(content)); + + return new InternalResponsesSystemMessage( + type: InternalResponsesItemType.Message, + id: null, + additionalBinaryDataProperties: null, + status: null, + MessageRole.Developer, + internalContent: [ResponseContentPart.CreateInputTextPart(content)]); + } + + public static MessageResponseItem CreateSystemMessageItem(string content) + { + Argument.AssertNotNull(content, nameof(content)); + + return new InternalResponsesSystemMessage( + type: InternalResponsesItemType.Message, + id: null, + additionalBinaryDataProperties: null, + status: null, + MessageRole.System, + internalContent: [ResponseContentPart.CreateInputTextPart(content)]); + } + + public static MessageResponseItem CreateAssistantMessageItem(string id, string content) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(content, nameof(content)); + + return new InternalResponsesAssistantMessage( + type: InternalResponsesItemType.Message, + id: id, + additionalBinaryDataProperties: null, + status: null, + MessageRole.Assistant, + internalContent: [ResponseContentPart.CreateInputTextPart(content)]); + } + + public static FileSearchCallResponseItem CreateFileSearchCallResponseItem(string id, IEnumerable queries, IEnumerable results) + { + return new FileSearchCallResponseItem(id, queries, results); + } + + public static ResponseItem CreateComputerCallItem(string id, string callId, ComputerCallAction action, IEnumerable pendingSafetyChecks) + { + return new ComputerCallResponseItem(id, callId, action, pendingSafetyChecks); + } + + [Experimental("OPENAICUA001")] + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, Uri screenshotImageUri) + { + return new ComputerCallOutputResponseItem( + callId, + acknowledgedSafetyChecks, + ComputerOutput.CreateScreenshotOutput(screenshotImageUri)); + } + + [Experimental("OPENAICUA001")] + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, string screenshotImageFileId) + { + return new ComputerCallOutputResponseItem( + callId, + acknowledgedSafetyChecks, + ComputerOutput.CreateScreenshotOutput(screenshotImageFileId)); + } + + [Experimental("OPENAICUA001")] + public static ResponseItem CreateComputerCallOutputItem(string callId, IList acknowledgedSafetyChecks, BinaryData screenshotImageBytes, string screenshotImageBytesMediaType) + { + return new ComputerCallOutputResponseItem( + callId, + acknowledgedSafetyChecks, + ComputerOutput.CreateScreenshotOutput(screenshotImageBytes, screenshotImageBytesMediaType)); + } + + public static WebSearchCallResponseItem CreateWebSearchCallItem(string id) + { + return new WebSearchCallResponseItem(id); + } + + public static FunctionCallResponseItem CreateFunctionCall(string id, string callId, string functionName, BinaryData functionArguments) + { + return new FunctionCallResponseItem(id, callId, functionName, functionArguments); + } + + public static FunctionCallOutputResponseItem CreateFunctionCallOutputItem(string callId, string functionOutput) + { + return new FunctionCallOutputResponseItem(callId, functionOutput); + } + + public static ReasoningResponseItem CreateReasoningItem(string id, IEnumerable summaryTextParts) + { + return new ReasoningResponseItem(id, summaryTextParts); + } + + public static ReferenceResponseItem CreateReferenceItem(string id) + { + return new ReferenceResponseItem(id); + } +} diff --git a/src/Custom/Responses/Items/WebSearchCallResponseItem.cs b/src/Custom/Responses/Items/WebSearchCallResponseItem.cs new file mode 100644 index 000000000..f1a53ab76 --- /dev/null +++ b/src/Custom/Responses/Items/WebSearchCallResponseItem.cs @@ -0,0 +1,14 @@ +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom constructor with required `id` parameter. +[CodeGenType("ResponsesWebSearchCallItem")] +[CodeGenSuppress(nameof(WebSearchCallResponseItem))] +public partial class WebSearchCallResponseItem +{ + public WebSearchCallResponseItem(string id) : base(InternalResponsesItemType.WebSearchCall, id) + { + Argument.AssertNotNull(id, nameof(id)); + } +} diff --git a/src/Custom/Responses/Items/WebSearchCallStatus.cs b/src/Custom/Responses/Items/WebSearchCallStatus.cs new file mode 100644 index 000000000..f1a184eb8 --- /dev/null +++ b/src/Custom/Responses/Items/WebSearchCallStatus.cs @@ -0,0 +1,11 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesWebSearchCallItemStatus")] +public enum WebSearchCallStatus +{ + InProgress, + Searching, + Completed, + Failed +} \ No newline at end of file diff --git a/src/Custom/Responses/OpenAIResponse.cs b/src/Custom/Responses/OpenAIResponse.cs new file mode 100644 index 000000000..c55ebc240 --- /dev/null +++ b/src/Custom/Responses/OpenAIResponse.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; + +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesResponse")] +public partial class OpenAIResponse +{ + // CUSTOM: Made private. This property does not add value in the context of a strongly-typed class. + [CodeGenMember("Object")] + internal InternalCreateResponsesResponseObject Object { get; } = "response"; + + // CUSTOM: Renamed. + [CodeGenMember("User")] + public string EndUserId { get; } + + // CUSTOM: Renamed. + [CodeGenMember("Reasoning")] + public ResponseReasoningOptions ReasoningOptions { get; } + + // CUSTOM: Renamed. + [CodeGenMember("MaxOutputTokens")] + public int? MaxOutputTokenCount { get; } + + // CUSTOM: Renamed. + [CodeGenMember("Text")] + public ResponseTextOptions TextOptions { get; } + + // CUSTOM: Renamed. + [CodeGenMember("Truncation")] + public ResponseTruncationMode? TruncationMode { get; } + + // CUSTOM: Renamed. + [CodeGenMember("IncompleteDetails")] + public ResponseIncompleteStatusDetails IncompleteStatusDetails { get; } + + // CUSTOM: Renamed. + [CodeGenMember("Output")] + public IList OutputItems { get; } + + // CUSTOM: Renamed. + [CodeGenMember("ParallelToolCalls")] + public bool AllowParallelToolCalls { get; } +} diff --git a/src/Custom/Responses/OpenAIResponseClient.Protocol.cs b/src/Custom/Responses/OpenAIResponseClient.Protocol.cs new file mode 100644 index 000000000..28b310d94 --- /dev/null +++ b/src/Custom/Responses/OpenAIResponseClient.Protocol.cs @@ -0,0 +1,110 @@ +using System.ClientModel; +using System.ClientModel.Primitives; +using System.ComponentModel; +using System.Threading.Tasks; + +namespace OpenAI.Responses; + +[CodeGenSuppress("CreateResponse", typeof(BinaryContent), typeof(string), typeof(RequestOptions))] +[CodeGenSuppress("CreateResponseAsync", typeof(BinaryContent), typeof(string), typeof(RequestOptions))] +[CodeGenSuppress("ListInputItems", typeof(string), typeof(int?), typeof(string), typeof(string), typeof(string), typeof(RequestOptions))] +[CodeGenSuppress("ListInputItemsAsync", typeof(string), typeof(int?), typeof(string), typeof(string), typeof(string), typeof(RequestOptions))] +public partial class OpenAIResponseClient +{ + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual async Task CreateResponseAsync(BinaryContent content, RequestOptions options = null) + { + Argument.AssertNotNull(content, nameof(content)); + + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + + using PipelineMessage message = CreateCreateResponseRequest(content, acceptHeaderValue, options); + PipelineResponse protocolResponse = await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false); + return ClientResult.FromResponse(protocolResponse); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult CreateResponse(BinaryContent content, RequestOptions options = null) + { + Argument.AssertNotNull(content, nameof(content)); + + string acceptHeaderValue = options?.BufferResponse == false + ? AcceptHeaderValue.TextEventStream.ToString() + : AcceptHeaderValue.ApplicationJson.ToString(); + + using PipelineMessage message = CreateCreateResponseRequest(content, acceptHeaderValue, options); + PipelineResponse protocolResponse = Pipeline.ProcessMessage(message, options); + return ClientResult.FromResponse(protocolResponse); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual async Task GetResponseAsync(string responseId, RequestOptions options) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + using PipelineMessage message = CreateGetResponseRequest(responseId, [], options); + + PipelineResponse protocolResponse = await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false); + return ClientResult.FromResponse(protocolResponse); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult GetResponse(string responseId, RequestOptions options) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + using PipelineMessage message = CreateGetResponseRequest(responseId, [], options); + PipelineResponse protocolResponse = Pipeline.ProcessMessage(message, options); + return ClientResult.FromResponse(protocolResponse); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual AsyncCollectionResult GetResponseInputItemsAsync( + string responseId, + int? limit, + string order, + string after, + string before, + RequestOptions options = null) + { + Argument.AssertNotNull(responseId, nameof(responseId)); + + return new AsyncResponseItemCollectionResult(this, responseId, limit, order, after, before, options); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual CollectionResult GetResponseInputItems( + string responseId, + int? limit, + string order, + string after, + string before, + RequestOptions options = null) + { + Argument.AssertNotNull(responseId, nameof(responseId)); + + return new ResponseItemCollectionResult(this, responseId, limit, order, after, before, options); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual async Task DeleteResponseAsync(string responseId, RequestOptions options) + { + Argument.AssertNotNull(responseId, nameof(responseId)); + + using PipelineMessage message = CreateDeleteResponseRequest(responseId, options); + PipelineResponse protocolResponse = await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false); + return ClientResult.FromResponse(protocolResponse); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public virtual ClientResult DeleteResponse(string responseId, RequestOptions options) + { + Argument.AssertNotNull(responseId, nameof(responseId)); + + using PipelineMessage message = CreateDeleteResponseRequest(responseId, options); + PipelineResponse protocolResponse = Pipeline.ProcessMessage(message, options); + return ClientResult.FromResponse(protocolResponse); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/OpenAIResponseClient.cs b/src/Custom/Responses/OpenAIResponseClient.cs new file mode 100644 index 000000000..809d749d8 --- /dev/null +++ b/src/Custom/Responses/OpenAIResponseClient.cs @@ -0,0 +1,251 @@ +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace OpenAI.Responses; + +[CodeGenType("Responses")] +[CodeGenSuppress("CreateResponseAsync", typeof(ResponseCreationOptions), typeof(AcceptHeaderValue), typeof(CancellationToken))] +[CodeGenSuppress("CreateResponse", typeof(ResponseCreationOptions), typeof(AcceptHeaderValue), typeof(CancellationToken))] +[CodeGenSuppress("GetResponse", typeof(string), typeof(IEnumerable), typeof(CancellationToken))] +[CodeGenSuppress("GetResponseAsync", typeof(string), typeof(IEnumerable), typeof(CancellationToken))] +[CodeGenSuppress("GetResponse", typeof(string), typeof(IEnumerable), typeof(RequestOptions))] +[CodeGenSuppress("GetResponseAsync", typeof(string), typeof(IEnumerable), typeof(RequestOptions))] +[CodeGenSuppress("ListInputItems", typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +[CodeGenSuppress("ListInputItemsAsync", typeof(string), typeof(int?), typeof(OpenAI.VectorStores.VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] +public partial class OpenAIResponseClient +{ + private readonly string _model; + + // CUSTOM: Added as a convenience. + /// Initializes a new instance of . + /// The name of the model to use in requests sent to the service. To learn more about the available models, see . + /// The API key to authenticate with the service. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public OpenAIResponseClient(string model, string apiKey) : this(model, new ApiKeyCredential(apiKey), new OpenAIClientOptions()) + { + } + + // CUSTOM: + // - Added `model` parameter. + // - Used a custom pipeline. + // - Demoted the endpoint parameter to be a property in the options class. + /// Initializes a new instance of . + /// The name of the model to use in requests sent to the service. To learn more about the available models, see . + /// The API key to authenticate with the service. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public OpenAIResponseClient(string model, ApiKeyCredential credential) : this(model, credential, new OpenAIClientOptions()) + { + } + + // CUSTOM: + // - Added `model` parameter. + // - Used a custom pipeline. + // - Demoted the endpoint parameter to be a property in the options class. + /// Initializes a new instance of . + /// The name of the model to use in requests sent to the service. To learn more about the available models, see . + /// The API key to authenticate with the service. + /// The options to configure the client. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public OpenAIResponseClient(string model, ApiKeyCredential credential, OpenAIClientOptions options) + { + Argument.AssertNotNullOrEmpty(model, nameof(model)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new OpenAIClientOptions(); + + _model = model; + Pipeline = OpenAIClient.CreatePipeline(credential, options); + _endpoint = OpenAIClient.GetEndpoint(options); + } + + // CUSTOM: + // - Added `model` parameter. + // - Used a custom pipeline. + // - Demoted the endpoint parameter to be a property in the options class. + // - Made protected. + /// Initializes a new instance of . + /// The HTTP pipeline to send and receive REST requests and responses. + /// The name of the model to use in requests sent to the service. To learn more about the available models, see . + /// The options to configure the client. + /// or is null. + /// is an empty string, and was expected to be non-empty. + protected internal OpenAIResponseClient(ClientPipeline pipeline, string model, OpenAIClientOptions options) + { + Argument.AssertNotNull(pipeline, nameof(pipeline)); + Argument.AssertNotNullOrEmpty(model, nameof(model)); + options ??= new OpenAIClientOptions(); + + _model = model; + Pipeline = pipeline; + _endpoint = OpenAIClient.GetEndpoint(options); + } + + public virtual async Task> CreateResponseAsync(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(inputItems, nameof(inputItems)); + + using BinaryContent content = CreatePerCallOptions(options, inputItems, stream: false); + ClientResult protocolResult = await CreateResponseAsync(content, cancellationToken.ToRequestOptions()).ConfigureAwait(false); + OpenAIResponse convenienceValue = (OpenAIResponse)protocolResult; + return ClientResult.FromValue(convenienceValue, protocolResult.GetRawResponse()); + } + + public virtual ClientResult CreateResponse(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(inputItems, nameof(inputItems)); + + using BinaryContent content = CreatePerCallOptions(options, inputItems, stream: false); + ClientResult protocolResult = CreateResponse(content, cancellationToken.ToRequestOptions()); + OpenAIResponse convenienceValue = (OpenAIResponse)protocolResult; + return ClientResult.FromValue(convenienceValue, protocolResult.GetRawResponse()); + } + + public virtual async Task> CreateResponseAsync(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(userInputText, nameof(userInputText)); + + return await CreateResponseAsync( + [ResponseItem.CreateUserMessageItem(userInputText)], + options, + cancellationToken) + .ConfigureAwait(false); + } + + public virtual ClientResult CreateResponse(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(userInputText, nameof(userInputText)); + + return CreateResponse( + [ResponseItem.CreateUserMessageItem(userInputText)], + options, + cancellationToken); + } + + public virtual AsyncCollectionResult CreateResponseStreamingAsync(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(inputItems, nameof(inputItems)); + + using BinaryContent content = CreatePerCallOptions(options, inputItems, stream: true); + return new AsyncSseUpdateCollection( + async () => await CreateResponseAsync(content, cancellationToken.ToRequestOptions(streaming: true)).ConfigureAwait(false), + StreamingResponseUpdate.DeserializeUpdateWithWrappers, + cancellationToken); + } + + public virtual CollectionResult CreateResponseStreaming(IEnumerable inputItems, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(inputItems, nameof(inputItems)); + + using BinaryContent content = CreatePerCallOptions(options, inputItems, stream: true); + return new SseUpdateCollection( + () => CreateResponse(content, cancellationToken.ToRequestOptions(streaming: true)), + StreamingResponseUpdate.DeserializeUpdateWithWrappers, + cancellationToken); + } + + public virtual AsyncCollectionResult CreateResponseStreamingAsync(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(userInputText, nameof(userInputText)); + + return CreateResponseStreamingAsync( + [ResponseItem.CreateUserMessageItem(userInputText)], + options, + cancellationToken); + } + + public virtual CollectionResult CreateResponseStreaming(string userInputText, ResponseCreationOptions options = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(userInputText, nameof(userInputText)); + + return CreateResponseStreaming( + [ResponseItem.CreateUserMessageItem(userInputText)], + options, + cancellationToken); + } + + public virtual async Task> GetResponseAsync(string responseId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + ClientResult protocolResult = await GetResponseAsync(responseId, cancellationToken.ToRequestOptions()).ConfigureAwait(false); + OpenAIResponse convenienceResult = (OpenAIResponse)protocolResult; + return ClientResult.FromValue(convenienceResult, protocolResult.GetRawResponse()); + } + + public virtual ClientResult GetResponse(string responseId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + ClientResult protocolResult = GetResponse(responseId, cancellationToken.ToRequestOptions()); + OpenAIResponse convenienceResult = (OpenAIResponse)protocolResult; + return ClientResult.FromValue(convenienceResult, protocolResult.GetRawResponse()); + } + + public virtual AsyncCollectionResult GetResponseInputItemsAsync(string responseId, ResponseItemCollectionOptions options = default, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + AsyncCollectionResult result = GetResponseInputItemsAsync(responseId, options?.PageSizeLimit, options?.Order?.ToString(), options?.AfterId, options?.BeforeId, cancellationToken.ToRequestOptions()); + + if (result is not AsyncCollectionResult responsesItemCollection) + { + throw new InvalidOperationException("Failed to cast protocol return type to expected collection type 'AsyncCollectionResult'."); + } + + return responsesItemCollection; + } + + public virtual CollectionResult GetResponseInputItems(string responseId, ResponseItemCollectionOptions options = default, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + CollectionResult result = GetResponseInputItems(responseId, options?.PageSizeLimit, options?.Order?.ToString(), options?.AfterId, options?.BeforeId, cancellationToken.ToRequestOptions()); + + if (result is not CollectionResult responsesItemCollection) + { + throw new InvalidOperationException("Failed to cast protocol return type to expected collection type 'CollectionResult'."); + } + + return responsesItemCollection; + } + + public virtual async Task> DeleteResponseAsync(string responseId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + ClientResult result = await DeleteResponseAsync(responseId, cancellationToken.CanBeCanceled ? new RequestOptions { CancellationToken = cancellationToken } : null).ConfigureAwait(false); + return ClientResult.FromValue((ResponseDeletionResult)result, result.GetRawResponse()); + } + + public virtual ClientResult DeleteResponse(string responseId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(responseId, nameof(responseId)); + + ClientResult result = DeleteResponse(responseId, cancellationToken.CanBeCanceled ? new RequestOptions { CancellationToken = cancellationToken } : null); + return ClientResult.FromValue((ResponseDeletionResult)result, result.GetRawResponse()); + } + + internal virtual ResponseCreationOptions CreatePerCallOptions(ResponseCreationOptions userOptions, IEnumerable inputItems, bool stream = false) + { + ResponseCreationOptions copiedOptions = userOptions is null + ? new() + : userOptions.GetClone(); + copiedOptions.Input = inputItems.ToList(); + copiedOptions.Model = _model; + // Note: as of 2025-03-03, some models *require* that "truncation": "auto" is explicitly provided; unless + // otherwise specified, ensure that value is set here. + copiedOptions.TruncationMode ??= ResponseTruncationMode.Auto; + if (stream) + { + copiedOptions.Stream = true; + } + return copiedOptions; + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Pagination/AsyncResponseItemCollectionResult.cs b/src/Custom/Responses/Pagination/AsyncResponseItemCollectionResult.cs new file mode 100644 index 000000000..6784f6c94 --- /dev/null +++ b/src/Custom/Responses/Pagination/AsyncResponseItemCollectionResult.cs @@ -0,0 +1,89 @@ +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; + +#nullable enable + +namespace OpenAI.Responses; + +internal class AsyncResponseItemCollectionResult : AsyncCollectionResult +{ + private readonly OpenAIResponseClient _parentClient; + private readonly RequestOptions? _options; + + // Initial values + private readonly string _responseId; + private readonly int? _limit; + private readonly string? _order; + private readonly string? _after; + private readonly string? _before; + + public AsyncResponseItemCollectionResult( + OpenAIResponseClient parentClient, + string responseId, + int? limit, string? order, string? after, string? before, + RequestOptions? options) + { + _parentClient = parentClient; + _responseId = responseId; + _limit = limit; + _order = order; + _after = after; + _before = before; + _options = options; + } + + public async override IAsyncEnumerable GetRawPagesAsync() + { + ClientResult page = await GetFirstPageAsync().ConfigureAwait(false); + yield return page; + + while (HasNextPage(page)) + { + page = await GetNextPageAsync(page); + yield return page; + } + } + + protected override IAsyncEnumerable GetValuesFromPageAsync(ClientResult page) + { + Argument.AssertNotNull(page, nameof(page)); + + PipelineResponse response = page.GetRawResponse(); + InternalResponsesInputItemList list = ModelReaderWriter.Read(response.Content)!; + return list.Data.ToAsyncEnumerable(_options?.CancellationToken ?? default); + } + + public override ContinuationToken? GetContinuationToken(ClientResult page) + { + Argument.AssertNotNull(page, nameof(page)); + + return ResponseItemCollectionPageToken.FromResponse(page, _limit, _order, _before); + } + + public async Task GetFirstPageAsync() + => await GetResponsesAsync(_responseId, _limit, _order, _after, _before, _options).ConfigureAwait(false); + + public async Task GetNextPageAsync(ClientResult result) + { + Argument.AssertNotNull(result, nameof(result)); + + PipelineResponse response = result.GetRawResponse(); + + using JsonDocument doc = JsonDocument.Parse(response.Content); + string lastId = doc.RootElement.GetProperty("last_id"u8).GetString()!; + + return await GetResponsesAsync(_responseId, _limit, _order, lastId, _before, _options).ConfigureAwait(false); + } + + public static bool HasNextPage(ClientResult result) => ResponseItemCollectionResult.HasNextPage(result); + + internal virtual async Task GetResponsesAsync(string responseId, int? limit, string? order, string? after, string? before, RequestOptions? options) + { + using PipelineMessage message = _parentClient.CreateListInputItemsRequest(responseId, limit, order, after, before, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + } +} diff --git a/src/Custom/Responses/Pagination/ResponseItemCollectionOptions.cs b/src/Custom/Responses/Pagination/ResponseItemCollectionOptions.cs new file mode 100644 index 000000000..c05e82d1a --- /dev/null +++ b/src/Custom/Responses/Pagination/ResponseItemCollectionOptions.cs @@ -0,0 +1,34 @@ +using System.Diagnostics.CodeAnalysis; + +namespace OpenAI.Responses; + +/// The options to configure how objects are retrieved and paginated. +[Experimental("OPENAI001")] +public class ResponseItemCollectionOptions +{ + /// Initializes a new instance of . + public ResponseItemCollectionOptions() { } + + /// + /// A limit on the number of objects to be returned per page. + /// + public int? PageSizeLimit { get; set; } + + /// + /// The order in which to retrieve objects when sorted by their + /// timestamp. + /// + public ResponseItemCollectionOrder? Order { get; set; } + + /// + /// The used to retrieve the page of objects that come + /// after this one. + /// + public string AfterId { get; set; } + + /// + /// The used to retrieve the page of objects that come + /// before this one. + /// + public string BeforeId { get; set; } +} diff --git a/src/Custom/Responses/Pagination/ResponseItemCollectionOrder.cs b/src/Custom/Responses/Pagination/ResponseItemCollectionOrder.cs new file mode 100644 index 000000000..98894f6f5 --- /dev/null +++ b/src/Custom/Responses/Pagination/ResponseItemCollectionOrder.cs @@ -0,0 +1,37 @@ +using System; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; + +namespace OpenAI.Responses; + +[Experimental("OPENAI001")] +public readonly partial struct ResponseItemCollectionOrder: IEquatable +{ + public static ResponseItemCollectionOrder Ascending { get; } = new("asc"); + + public static ResponseItemCollectionOrder Descending { get; } = new("desc"); + + private readonly string _value; + + public ResponseItemCollectionOrder(string value) + { + Argument.AssertNotNull(value, nameof(value)); + _value = value; + } + + public static bool operator ==(ResponseItemCollectionOrder left, ResponseItemCollectionOrder right) => left.Equals(right); + + public static bool operator !=(ResponseItemCollectionOrder left, ResponseItemCollectionOrder right) => !left.Equals(right); + + public static implicit operator ResponseItemCollectionOrder(string value) => new(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResponseItemCollectionOrder other && Equals(other); + + public bool Equals(ResponseItemCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; +} diff --git a/src/Custom/Responses/Pagination/ResponseItemCollectionPageToken.cs b/src/Custom/Responses/Pagination/ResponseItemCollectionPageToken.cs new file mode 100644 index 000000000..73d63f65c --- /dev/null +++ b/src/Custom/Responses/Pagination/ResponseItemCollectionPageToken.cs @@ -0,0 +1,148 @@ +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Diagnostics; +using System.IO; +using System.Text.Json; + +#nullable enable + +namespace OpenAI.Responses; + +internal class ResponseItemCollectionPageToken : ContinuationToken +{ + protected ResponseItemCollectionPageToken(int? limit, string? order, string? after, string? before) + { + Limit = limit; + Order = order; + After = after; + Before = before; + } + + public int? Limit { get; } + + public string? Order { get; } + + public string? After { get; } + + public string? Before { get; } + + public override BinaryData ToBytes() + { + using MemoryStream stream = new(); + using Utf8JsonWriter writer = new(stream); + + writer.WriteStartObject(); + + if (Limit.HasValue) + { + writer.WriteNumber("limit", Limit.Value); + } + + if (Order is not null) + { + writer.WriteString("order", Order); + } + + if (After is not null) + { + writer.WriteString("after", After); + } + + if (Before is not null) + { + writer.WriteString("before", Before); + } + + writer.WriteEndObject(); + + writer.Flush(); + stream.Position = 0; + + return BinaryData.FromStream(stream); + } + + public static ResponseItemCollectionPageToken FromToken(ContinuationToken token) + { + if (token is ResponseItemCollectionPageToken pageToken) + { + return pageToken; + } + + BinaryData data = token.ToBytes(); + + if (data.ToMemory().Length == 0) + { + throw new ArgumentException("Failed to create ResponsesItemCollectionPageToken from provided pageToken.", nameof(pageToken)); + } + + Utf8JsonReader reader = new(data); + + int? limit = null; + string? order = null; + string? after = null; + string? before = null; + + reader.Read(); + + Debug.Assert(reader.TokenType == JsonTokenType.StartObject); + + while (reader.Read()) + { + if (reader.TokenType == JsonTokenType.EndObject) + { + break; + } + + Debug.Assert(reader.TokenType == JsonTokenType.PropertyName); + + string propertyName = reader.GetString()!; + + switch (propertyName) + { + case "limit": + reader.Read(); + Debug.Assert(reader.TokenType == JsonTokenType.Number); + limit = reader.GetInt32(); + break; + case "order": + reader.Read(); + Debug.Assert(reader.TokenType == JsonTokenType.String); + order = reader.GetString(); + break; + case "after": + reader.Read(); + Debug.Assert(reader.TokenType == JsonTokenType.String); + after = reader.GetString(); + break; + case "before": + reader.Read(); + Debug.Assert(reader.TokenType == JsonTokenType.String); + before = reader.GetString(); + break; + default: + throw new JsonException($"Unrecognized property '{propertyName}'."); + } + } + + return new(limit, order, after, before); + } + + public static ResponseItemCollectionPageToken FromOptions(int? limit, string? order, string? after, string? before) + => new ResponseItemCollectionPageToken(limit, order, after, before); + + public static ResponseItemCollectionPageToken? FromResponse(ClientResult result, int? limit, string? order, string? before) + { + PipelineResponse response = result.GetRawResponse(); + using JsonDocument doc = JsonDocument.Parse(response.Content); + string lastId = doc.RootElement.GetProperty("last_id"u8).GetString()!; + bool hasMore = doc.RootElement.GetProperty("has_more"u8).GetBoolean(); + + if (!hasMore || lastId is null) + { + return null; + } + + return new(limit, order, lastId, before); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Pagination/ResponseItemCollectionResult.cs b/src/Custom/Responses/Pagination/ResponseItemCollectionResult.cs new file mode 100644 index 000000000..06b004b4a --- /dev/null +++ b/src/Custom/Responses/Pagination/ResponseItemCollectionResult.cs @@ -0,0 +1,97 @@ +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; + +#nullable enable + +namespace OpenAI.Responses; + +internal class ResponseItemCollectionResult : CollectionResult +{ + private readonly OpenAIResponseClient _parentClient; + private readonly RequestOptions? _options; + + // Initial values + private readonly string _responseId; + private readonly int? _limit; + private readonly string? _order; + private readonly string? _after; + private readonly string? _before; + + public ResponseItemCollectionResult( + OpenAIResponseClient parentClient, + string responseId, + int? limit, string? order, string? after, string? before, + RequestOptions? options) + { + _parentClient = parentClient; + _responseId = responseId; + _limit = limit; + _order = order; + _after = after; + _before = before; + _options = options; + } + + public override IEnumerable GetRawPages() + { + ClientResult page = GetFirstPage(); + yield return page; + + while (HasNextPage(page)) + { + page = GetNextPage(page); + yield return page; + } + } + + protected override IEnumerable GetValuesFromPage(ClientResult page) + { + Argument.AssertNotNull(page, nameof(page)); + + PipelineResponse response = page.GetRawResponse(); + InternalResponsesInputItemList list = ModelReaderWriter.Read(response.Content)!; + return list.Data; + } + + public override ContinuationToken? GetContinuationToken(ClientResult page) + { + Argument.AssertNotNull(page, nameof(page)); + + return ResponseItemCollectionPageToken.FromResponse(page, _limit, _order, _before); + } + + public ClientResult GetFirstPage() + => GetResponseInputItems(_responseId, _limit, _order, _after, _before, _options); + + public ClientResult GetNextPage(ClientResult result) + { + Argument.AssertNotNull(result, nameof(result)); + + PipelineResponse response = result.GetRawResponse(); + + using JsonDocument doc = JsonDocument.Parse(response.Content); + string lastId = doc.RootElement.GetProperty("last_id"u8).GetString()!; + + return GetResponseInputItems(_responseId, _limit, _order, lastId, _before, _options); + } + + public static bool HasNextPage(ClientResult result) + { + Argument.AssertNotNull(result, nameof(result)); + + PipelineResponse response = result.GetRawResponse(); + + using JsonDocument doc = JsonDocument.Parse(response.Content); + bool hasMore = doc.RootElement.GetProperty("has_more"u8).GetBoolean(); + + return hasMore; + } + + internal virtual ClientResult GetResponseInputItems(string responseId, int? limit, string? order, string? after, string? before, RequestOptions? options) + { + using PipelineMessage message = _parentClient.CreateListInputItemsRequest(responseId, limit, order, after, before, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); + } +} diff --git a/src/Custom/Responses/ResponseContentPart.cs b/src/Custom/Responses/ResponseContentPart.cs new file mode 100644 index 000000000..6d9a8358f --- /dev/null +++ b/src/Custom/Responses/ResponseContentPart.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesContent")] +public partial class ResponseContentPart +{ + [CodeGenMember("Type")] + public ResponseContentPartKind Kind { get; } + + // CUSTOM: Exposed input text properties. + public string Text + => (this as InternalResponsesInputTextContentPart)?.InternalText + ?? (this as InternalResponsesOutputTextContentPart)?.InternalText; + + // CUSTOM: Exposed input image properties. + public string InputImageFileId => (this as InternalResponsesInputImageContentPart)?.FileId; + public ResponseImageDetailLevel? InputImageDetailLevel => (this as InternalResponsesInputImageContentPart)?.Detail; + + // CUSTOM: Exposed input file properties. + public string InputFileId => (this as InternalResponsesInputFileContentPart)?.FileId; + public string InputFilename => (this as InternalResponsesInputFileContentPart)?.Filename; + public BinaryData InputFileBytes => (this as InternalResponsesInputFileContentPart)?.FileBytes; + + // CUSTOM: Exposed output text properties. + public IReadOnlyList OutputTextAnnotations => (this as InternalResponsesOutputTextContentPart)?.Annotations?.ToList()?.AsReadOnly(); + + // CUSTOM: Exposed refusal properties. + public string Refusal => (this as InternalResponsesOutputRefusalContentPart)?.InternalRefusal; + + public static ResponseContentPart CreateInputTextPart(string text) + { + return new InternalResponsesInputTextContentPart(text); + } + + public static ResponseContentPart CreateInputImagePart(BinaryData imageBytes, string imageBytesMediaType, ResponseImageDetailLevel? imageDetailLevel = null) + { + string base64EncodedData = Convert.ToBase64String(imageBytes.ToArray()); + string dataUri = $"data:{imageBytesMediaType};base64,{base64EncodedData}"; + return new InternalResponsesInputImageContentPart() + { + ImageUrl = dataUri, + Detail = imageDetailLevel, + }; + } + + public static ResponseContentPart CreateInputImagePart(string imageFileId, ResponseImageDetailLevel? imageDetailLevel = null) + { + return new InternalResponsesInputImageContentPart() + { + FileId = imageFileId, + Detail = imageDetailLevel, + }; + } + + public static ResponseContentPart CreateInputImagePart(Uri imageUri, ResponseImageDetailLevel? imageDetailLevel = default) + { + return new InternalResponsesInputImageContentPart() + { + ImageUrl = imageUri?.AbsoluteUri, + Detail = imageDetailLevel, + }; + } + + public static ResponseContentPart CreateInputFilePart(string fileId, string filename, BinaryData fileBytes) + { + return new InternalResponsesInputFileContentPart() + { + FileId = fileId, + Filename = filename, + FileBytes = fileBytes, + }; + } + + public static ResponseContentPart CreateOutputTextPart(string text, IEnumerable annotations) + { + return new InternalResponsesOutputTextContentPart(annotations, text); + } + + public static ResponseContentPart CreateRefusalPart(string refusal) + { + return new InternalResponsesOutputRefusalContentPart(refusal); + } +} diff --git a/src/Custom/Responses/ResponseContentPartKind.cs b/src/Custom/Responses/ResponseContentPartKind.cs new file mode 100644 index 000000000..1135bf00e --- /dev/null +++ b/src/Custom/Responses/ResponseContentPartKind.cs @@ -0,0 +1,11 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesContentType")] +public enum ResponseContentPartKind +{ + InputText, + InputImage, + InputFile, + OutputText, + Refusal, +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseCreationOptions.cs b/src/Custom/Responses/ResponseCreationOptions.cs new file mode 100644 index 000000000..872a71abf --- /dev/null +++ b/src/Custom/Responses/ResponseCreationOptions.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses; + +// CUSTOM: +// - Renamed. +// - Suppressed constructor in favor of custom default constructor. +[CodeGenType("CreateResponsesRequest")] +[CodeGenSuppress(nameof(ResponseCreationOptions), typeof(InternalCreateResponsesRequestModel), typeof(IEnumerable))] +public partial class ResponseCreationOptions +{ + // CUSTOM: Temporarily made internal. + [CodeGenMember("Include")] + internal IList Include { get; set; } + + // CUSTOM: + // - Made internal. This value comes from a parameter on the client method. + // - Added setter. + [CodeGenMember("Model")] + internal InternalCreateResponsesRequestModel Model { get; set; } + + // CUSTOM: + // - Made internal. This value comes from a parameter on the client method. + // - Added setter. + [CodeGenMember("Input")] + internal IList Input { get; set; } = new ChangeTrackingList(); + + // CUSTOM: Made internal. This value comes from a parameter on the client method. + internal bool? Stream { get; set; } + + // CUSTOM: Added public default constructor now that there are no required properties. + public ResponseCreationOptions() + { + Input = new ChangeTrackingList(); + Metadata = new ChangeTrackingDictionary(); + Tools = new ChangeTrackingList(); + Include = new ChangeTrackingList(); + } + + // CUSTOM: Renamed. + [CodeGenMember("User")] + public string EndUserId { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("Reasoning")] + public ResponseReasoningOptions ReasoningOptions { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("MaxOutputTokens")] + public int? MaxOutputTokenCount { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("Text")] + public ResponseTextOptions TextOptions { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("Truncation")] + public ResponseTruncationMode? TruncationMode { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("ParallelToolCalls")] + public bool? AllowParallelToolCalls { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("Store")] + public bool? StoredOutputEnabled { get; set; } + + internal ResponseCreationOptions GetClone() + { + ResponseCreationOptions copiedOptions = (ResponseCreationOptions)this.MemberwiseClone(); + + if (SerializedAdditionalRawData is not null) + { + copiedOptions.SerializedAdditionalRawData = new ChangeTrackingDictionary(); + foreach (KeyValuePair sourcePair in SerializedAdditionalRawData) + { + copiedOptions.SerializedAdditionalRawData[sourcePair.Key] = sourcePair.Value; + } + } + + return copiedOptions; + } +} diff --git a/src/Custom/Responses/ResponseDeletionResult.cs b/src/Custom/Responses/ResponseDeletionResult.cs new file mode 100644 index 000000000..9f337f1cc --- /dev/null +++ b/src/Custom/Responses/ResponseDeletionResult.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +[CodeGenType("DeleteResponseResponse")] +public partial class ResponseDeletionResult +{ + // CUSTOM: Made internal. + [CodeGenMember("Object")] + internal InternalDeleteResponseResponseObject Object { get; } = "response.deleted"; + +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseError.cs b/src/Custom/Responses/ResponseError.cs new file mode 100644 index 000000000..c8eb8cf0e --- /dev/null +++ b/src/Custom/Responses/ResponseError.cs @@ -0,0 +1,7 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesError")] +public partial class ResponseError +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseImageDetailLevel.cs b/src/Custom/Responses/ResponseImageDetailLevel.cs new file mode 100644 index 000000000..79dcfc12a --- /dev/null +++ b/src/Custom/Responses/ResponseImageDetailLevel.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesInputContentImageDetail")] +public readonly partial struct ResponseImageDetailLevel +{ +} diff --git a/src/Custom/Responses/ResponseIncompleteStatusDetails.cs b/src/Custom/Responses/ResponseIncompleteStatusDetails.cs new file mode 100644 index 000000000..53bd4573c --- /dev/null +++ b/src/Custom/Responses/ResponseIncompleteStatusDetails.cs @@ -0,0 +1,7 @@ +namespace OpenAI.Responses; + +// CUSTOM: Renamed. +[CodeGenType("ResponsesResponseIncompleteDetails1")] +public partial class ResponseIncompleteStatusDetails +{ +} diff --git a/src/Custom/Responses/ResponseIncompleteStatusReason.cs b/src/Custom/Responses/ResponseIncompleteStatusReason.cs new file mode 100644 index 000000000..9c027ea1b --- /dev/null +++ b/src/Custom/Responses/ResponseIncompleteStatusReason.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseIncompleteDetailsReason")] +public readonly partial struct ResponseIncompleteStatusReason +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseMessageAnnotation.cs b/src/Custom/Responses/ResponseMessageAnnotation.cs new file mode 100644 index 000000000..c4c0ef7cc --- /dev/null +++ b/src/Custom/Responses/ResponseMessageAnnotation.cs @@ -0,0 +1,26 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesOutputTextAnnotation")] +public partial class ResponseMessageAnnotation +{ + // CUSTOM: + // - Renamed. + // - Made public. + // - Removed setter. + [CodeGenMember("Type")] + public ResponseMessageAnnotationKind Kind { get; } + + // CUSTOM: Exposed file citation properties. + public string FileCitationFileId => (this as InternalResponsesMessageAnnotationFileCitation)?.FileId; + public int? FileCitationIndex => (this as InternalResponsesMessageAnnotationFileCitation)?.Index; + + // CUSTOM: Exposed URL citation properties. + public string UriCitationUri => (this as InternalResponsesMessageAnnotationUrlCitation).Url; + public string UriCitationTitle => (this as InternalResponsesMessageAnnotationUrlCitation)?.Title; + public int? UriCitationStartIndex => (this as InternalResponsesMessageAnnotationUrlCitation)?.StartIndex; + public int? UriCitationEndIndex => (this as InternalResponsesMessageAnnotationUrlCitation)?.EndIndex; + + // CUSTOM: Exposed file path properties. + public string FilePathFileId => (this as InternalResponsesMessageAnnotationFilePath)?.FileId; + public int? FilePathIndex => (this as InternalResponsesMessageAnnotationFilePath)?.Index; +} diff --git a/src/Custom/Responses/ResponseMessageAnnotationKind.cs b/src/Custom/Responses/ResponseMessageAnnotationKind.cs new file mode 100644 index 000000000..4927e1e2c --- /dev/null +++ b/src/Custom/Responses/ResponseMessageAnnotationKind.cs @@ -0,0 +1,12 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponseOutputTextAnnotationType")] +public enum ResponseMessageAnnotationKind +{ + FileCitation, + + [CodeGenMember("UrlCitation")] + UriCitation, + + FilePath +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseOutputTokenUsageDetails.cs b/src/Custom/Responses/ResponseOutputTokenUsageDetails.cs new file mode 100644 index 000000000..0cff8dfc7 --- /dev/null +++ b/src/Custom/Responses/ResponseOutputTokenUsageDetails.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseUsageOutputTokensDetails")] +public partial class ResponseOutputTokenUsageDetails +{ + // CUSTOM: Renamed. + [CodeGenMember("ReasoningTokens")] + public int ReasoningTokenCount { get; } + +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseReasoningEffortLevel.cs b/src/Custom/Responses/ResponseReasoningEffortLevel.cs new file mode 100644 index 000000000..9f6d8c828 --- /dev/null +++ b/src/Custom/Responses/ResponseReasoningEffortLevel.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesReasoningConfigurationEffort")] +public readonly partial struct ResponseReasoningEffortLevel +{ +} diff --git a/src/Custom/Responses/ResponseReasoningOptions.cs b/src/Custom/Responses/ResponseReasoningOptions.cs new file mode 100644 index 000000000..d9fdc4d7b --- /dev/null +++ b/src/Custom/Responses/ResponseReasoningOptions.cs @@ -0,0 +1,18 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesReasoningConfiguration")] +public partial class ResponseReasoningOptions +{ + // CUSTOM: Renamed. + [CodeGenMember("Effort")] + public ResponseReasoningEffortLevel? ReasoningEffortLevel { get; set; } + + // CUSTOM: Renamed. + [CodeGenMember("GenerateSummary")] + public ResponseReasoningSummaryVerbosity? ReasoningSummaryVerbosity { get; set; } + + // CUSTOM: Make default constructor public. + public ResponseReasoningOptions() + { + } +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseReasoningSummaryVerbosity.cs b/src/Custom/Responses/ResponseReasoningSummaryVerbosity.cs new file mode 100644 index 000000000..e1a44703a --- /dev/null +++ b/src/Custom/Responses/ResponseReasoningSummaryVerbosity.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesReasoningConfigurationGenerateSummary")] +public readonly partial struct ResponseReasoningSummaryVerbosity +{ +} diff --git a/src/Custom/Responses/ResponseStatus.cs b/src/Custom/Responses/ResponseStatus.cs new file mode 100644 index 000000000..da3906a59 --- /dev/null +++ b/src/Custom/Responses/ResponseStatus.cs @@ -0,0 +1,10 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStatus")] +public enum ResponseStatus +{ + InProgress, + Completed, + Incomplete, + Failed +} diff --git a/src/Custom/Responses/ResponseTextFormat.cs b/src/Custom/Responses/ResponseTextFormat.cs new file mode 100644 index 000000000..1796428c4 --- /dev/null +++ b/src/Custom/Responses/ResponseTextFormat.cs @@ -0,0 +1,25 @@ +using System; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesTextFormat")] +public partial class ResponseTextFormat +{ + public static ResponseTextFormat CreateTextFormat() => new InternalResponsesTextFormatText(); + + public static ResponseTextFormat CreateJsonObjectFormat() => new InternalResponsesTextFormatJsonObject(); + + public static ResponseTextFormat CreateJsonSchemaFormat(string jsonSchemaFormatName, BinaryData jsonSchema, string jsonSchemaFormatDescription = null, bool? jsonSchemaIsStrict = null) + { + Argument.AssertNotNullOrEmpty(jsonSchemaFormatName, nameof(jsonSchemaFormatName)); + Argument.AssertNotNull(jsonSchema, nameof(jsonSchema)); + + return new InternalResponsesTextFormatJsonSchema( + InternalResponsesTextFormatType.JsonSchema, + additionalBinaryDataProperties: null, + jsonSchemaFormatName, + jsonSchema, + jsonSchemaFormatDescription, + jsonSchemaIsStrict); + } +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseTextOptions.cs b/src/Custom/Responses/ResponseTextOptions.cs new file mode 100644 index 000000000..9c203d3d8 --- /dev/null +++ b/src/Custom/Responses/ResponseTextOptions.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponseTextOptions")] +public partial class ResponseTextOptions +{ + // CUSTOM: Renamed. + [CodeGenMember("Format")] + public ResponseTextFormat ResponseFormat { get; set; } +} \ No newline at end of file diff --git a/src/Custom/Responses/ResponseTokenUsage.cs b/src/Custom/Responses/ResponseTokenUsage.cs new file mode 100644 index 000000000..e66de7771 --- /dev/null +++ b/src/Custom/Responses/ResponseTokenUsage.cs @@ -0,0 +1,21 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseUsage")] +public partial class ResponseTokenUsage +{ + // CUSTOM: Renamed. + [CodeGenMember("InputTokens")] + public int InputTokenCount { get; } + + // CUSTOM: Renamed. + [CodeGenMember("OutputTokens")] + public int OutputTokenCount { get; } + + // CUSTOM: Renamed. + [CodeGenMember("TotalTokens")] + public int TotalTokenCount { get; } + + // CUSTOM: Renamed. + [CodeGenMember("OutputTokensDetails")] + public ResponseOutputTokenUsageDetails OutputTokenDetails { get; } +} diff --git a/src/Custom/Responses/ResponseTruncationMode.cs b/src/Custom/Responses/ResponseTruncationMode.cs new file mode 100644 index 000000000..69d06fd6e --- /dev/null +++ b/src/Custom/Responses/ResponseTruncationMode.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponseTruncation")] +public readonly partial struct ResponseTruncationMode +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/Internal/GeneratorStubs.cs b/src/Custom/Responses/Streaming/Internal/GeneratorStubs.cs new file mode 100644 index 000000000..c60ff1430 --- /dev/null +++ b/src/Custom/Responses/Streaming/Internal/GeneratorStubs.cs @@ -0,0 +1,22 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEventResponseFileSearchCallInProgress")] internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallInProgress { } +[CodeGenType("ResponsesResponseStreamEventResponseFileSearchCallSearching")] internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallSearching { } +[CodeGenType("ResponsesResponseStreamEventResponseFileSearchCallCompleted")] internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallCompleted { } +[CodeGenType("ResponsesResponseStreamEventResponseFunctionCallArgumentsDelta")] internal partial class InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta { } +[CodeGenType("ResponsesResponseStreamEventResponseFunctionCallArgumentsDone")] internal partial class InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone { } +[CodeGenType("ResponsesResponseStreamEventResponseOutputItemAdded")] internal partial class InternalResponsesResponseStreamEventResponseOutputItemAdded { } +[CodeGenType("ResponsesResponseStreamEventResponseOutputItemDone")] internal partial class InternalResponsesResponseStreamEventResponseOutputItemDone { } +[CodeGenType("ResponsesResponseStreamEventResponseOutputTextDelta")] internal partial class InternalResponsesResponseStreamEventResponseOutputTextDelta { } +[CodeGenType("ResponsesResponseStreamEventResponseOutputTextDone")] internal partial class InternalResponsesResponseStreamEventResponseOutputTextDone { } +[CodeGenType("ResponsesResponseStreamEventResponseRefusalDelta")] internal partial class InternalResponsesResponseStreamEventResponseRefusalDelta { } +[CodeGenType("ResponsesResponseStreamEventResponseRefusalDone")] internal partial class InternalResponsesResponseStreamEventResponseRefusalDone { } +[CodeGenType("UnknownResponsesResponseStreamEvent")] internal partial class UnknownResponsesResponseStreamEvent { } +[CodeGenType("ResponsesResponseStreamEventResponseFailed")] internal partial class InternalResponsesResponseStreamEventResponseFailed { } +[CodeGenType("ResponsesResponseStreamEventResponseIncomplete")] internal partial class InternalResponsesResponseStreamEventResponseIncomplete { } +[CodeGenType("ResponsesResponseStreamEventResponseCompleted")] internal partial class InternalResponsesResponseStreamEventResponseCompleted { } +[CodeGenType("ResponsesResponseStreamEventResponseCreated")] internal partial class InternalResponsesResponseStreamEventResponseCreated { } +[CodeGenType("ResponsesResponseStreamEventResponseInProgress")] internal partial class InternalResponsesResponseStreamEventResponseInProgress { } +[CodeGenType("ResponsesResponseStreamEventResponseWebSearchCallCompleted")] internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallCompleted { } +[CodeGenType("ResponsesResponseStreamEventResponseWebSearchCallInProgress")] internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallInProgress { } +[CodeGenType("ResponsesResponseStreamEventResponseWebSearchCallSearching")] internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallSearching { } diff --git a/src/Custom/Responses/Streaming/Internal/InternalResponsesResponseStreamEventResponseContentPartAdded.cs b/src/Custom/Responses/Streaming/Internal/InternalResponsesResponseStreamEventResponseContentPartAdded.cs new file mode 100644 index 000000000..0430e01b3 --- /dev/null +++ b/src/Custom/Responses/Streaming/Internal/InternalResponsesResponseStreamEventResponseContentPartAdded.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEventResponseContentPartAdded")] +internal partial class InternalResponsesResponseStreamEventResponseContentPartAdded +{ + // CUSTOM: Apply generalized content type. + [CodeGenMember("Part")] + public ResponseContentPart Part { get; } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/Internal/InternalResponsesResponseStreamEventResponseContentPartDone.cs b/src/Custom/Responses/Streaming/Internal/InternalResponsesResponseStreamEventResponseContentPartDone.cs new file mode 100644 index 000000000..93acfccfd --- /dev/null +++ b/src/Custom/Responses/Streaming/Internal/InternalResponsesResponseStreamEventResponseContentPartDone.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEventResponseContentPartDone")] +internal partial class InternalResponsesResponseStreamEventResponseContentPartDone +{ + // CUSTOM: Apply generalized content type. + [CodeGenMember("Part")] + public ResponseContentPart Part { get; } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseContentPartDeltaUpdate.Serialization.cs b/src/Custom/Responses/Streaming/StreamingResponseContentPartDeltaUpdate.Serialization.cs new file mode 100644 index 000000000..7e24067f7 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseContentPartDeltaUpdate.Serialization.cs @@ -0,0 +1,36 @@ +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace OpenAI.Responses; + +public partial class StreamingResponseContentPartDeltaUpdate : IJsonModel +{ + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, SerializeStreamingResponseContentPartDeltaUpdate, writer, options); + + StreamingResponseContentPartDeltaUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeResponsesItemStreamingPartDeltaUpdate, ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, options); + + StreamingResponseContentPartDeltaUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeResponsesItemStreamingPartDeltaUpdate, data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + internal static void SerializeStreamingResponseContentPartDeltaUpdate( + StreamingResponseContentPartDeltaUpdate instance, + Utf8JsonWriter writer, + ModelReaderWriterOptions options) + => writer.WriteFirstObject( + options, + instance._contentPartAdded, + instance._outputTextDelta, + instance._functionArgumentsDelta, + instance._refusalDelta); + + internal static StreamingResponseContentPartDeltaUpdate DeserializeResponsesItemStreamingPartDeltaUpdate(JsonElement element, ModelReaderWriterOptions options = null) + => DeserializeUpdateWithWrappers(element, options) as StreamingResponseContentPartDeltaUpdate; +} diff --git a/src/Custom/Responses/Streaming/StreamingResponseContentPartDeltaUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseContentPartDeltaUpdate.cs new file mode 100644 index 000000000..0676d1451 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseContentPartDeltaUpdate.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace OpenAI.Responses; + +/// +/// +/// +/// This type is a shared representation of the following response event types: +/// +/// response.content_part.added +/// response.output_text.delta +/// response.function_call_arguments.delta +/// +/// +public partial class StreamingResponseContentPartDeltaUpdate : StreamingResponseUpdate +{ + public string ItemId + => _contentPartAdded?.ItemId + ?? _outputTextDelta?.ItemId + ?? _functionArgumentsDelta?.ItemId; + + public int ItemIndex + => _contentPartAdded?.OutputIndex + ?? _outputTextDelta?.OutputIndex + ?? _functionArgumentsDelta?.OutputIndex + ?? 0; + + public int ContentPartIndex + => _contentPartAdded?.ContentIndex + ?? _outputTextDelta?.ContentIndex + ?? 0; + + public string Text + => _outputTextDelta?.Delta + ?? _contentPartAdded?.Part?.Text; + + public string FunctionArguments + => _functionArgumentsDelta?.Delta; + + public string Refusal + => _refusalDelta?.Delta; + + private readonly InternalResponsesResponseStreamEventResponseContentPartAdded _contentPartAdded; + private readonly InternalResponsesResponseStreamEventResponseOutputTextDelta _outputTextDelta; + private readonly InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta _functionArgumentsDelta; + private readonly InternalResponsesResponseStreamEventResponseRefusalDelta _refusalDelta; + + internal StreamingResponseContentPartDeltaUpdate(StreamingResponseUpdate baseUpdate) + : base(baseUpdate.Kind) + { + _contentPartAdded = baseUpdate as InternalResponsesResponseStreamEventResponseContentPartAdded; + _outputTextDelta = baseUpdate as InternalResponsesResponseStreamEventResponseOutputTextDelta; + _functionArgumentsDelta = baseUpdate as InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta; + _refusalDelta = baseUpdate as InternalResponsesResponseStreamEventResponseRefusalDelta; + } + + internal StreamingResponseContentPartDeltaUpdate() + { + } +} diff --git a/src/Custom/Responses/Streaming/StreamingResponseErrorUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseErrorUpdate.cs new file mode 100644 index 000000000..59e05d04c --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseErrorUpdate.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEventError")] +public partial class StreamingResponseErrorUpdate +{ +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseFileSearchCallUpdate.Serialization.cs b/src/Custom/Responses/Streaming/StreamingResponseFileSearchCallUpdate.Serialization.cs new file mode 100644 index 000000000..eacf9ce70 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseFileSearchCallUpdate.Serialization.cs @@ -0,0 +1,35 @@ +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace OpenAI.Responses; + +public partial class StreamingResponseFileSearchCallUpdate : IJsonModel +{ + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, SerializeStreamingResponseFileSearchCallUpdate, writer, options); + + StreamingResponseFileSearchCallUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeResponsesItemStreamingPartDeltaUpdate, ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, options); + + StreamingResponseFileSearchCallUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeResponsesItemStreamingPartDeltaUpdate, data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + internal static void SerializeStreamingResponseFileSearchCallUpdate( + StreamingResponseFileSearchCallUpdate instance, + Utf8JsonWriter writer, + ModelReaderWriterOptions options) + => writer.WriteFirstObject( + options, + instance._fileSearchCallCompleted, + instance._fileSearchCallInProgress, + instance._fileSearchCallSearching); + + internal static StreamingResponseFileSearchCallUpdate DeserializeResponsesItemStreamingPartDeltaUpdate(JsonElement element, ModelReaderWriterOptions options = null) + => DeserializeUpdateWithWrappers(element, options) as StreamingResponseFileSearchCallUpdate; +} diff --git a/src/Custom/Responses/Streaming/StreamingResponseFileSearchCallUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseFileSearchCallUpdate.cs new file mode 100644 index 000000000..df6a46271 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseFileSearchCallUpdate.cs @@ -0,0 +1,30 @@ +namespace OpenAI.Responses; + +public partial class StreamingResponseFileSearchCallUpdate : StreamingResponseUpdate +{ + public string OutputItemId + => _fileSearchCallCompleted?.ItemId + ?? _fileSearchCallInProgress?.ItemId + ?? _fileSearchCallSearching?.ItemId; + + public int OutputItemIndex + => _fileSearchCallCompleted?.OutputIndex + ?? _fileSearchCallInProgress?.OutputIndex + ?? _fileSearchCallSearching?.OutputIndex + ?? 0; + + private readonly InternalResponsesResponseStreamEventResponseFileSearchCallCompleted _fileSearchCallCompleted; + private readonly InternalResponsesResponseStreamEventResponseFileSearchCallInProgress _fileSearchCallInProgress; + private readonly InternalResponsesResponseStreamEventResponseFileSearchCallSearching _fileSearchCallSearching; + + internal StreamingResponseFileSearchCallUpdate(StreamingResponseUpdate baseUpdate) + : base(baseUpdate.Kind) + { + _fileSearchCallCompleted = baseUpdate as InternalResponsesResponseStreamEventResponseFileSearchCallCompleted; + _fileSearchCallInProgress = baseUpdate as InternalResponsesResponseStreamEventResponseFileSearchCallInProgress; + _fileSearchCallSearching = baseUpdate as InternalResponsesResponseStreamEventResponseFileSearchCallSearching; + } + + internal StreamingResponseFileSearchCallUpdate() + { } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseItemUpdate.Serialization.cs b/src/Custom/Responses/Streaming/StreamingResponseItemUpdate.Serialization.cs new file mode 100644 index 000000000..42a2d0c26 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseItemUpdate.Serialization.cs @@ -0,0 +1,36 @@ +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace OpenAI.Responses; + +public partial class StreamingResponseItemUpdate : IJsonModel +{ + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, SerializeStreamingResponseItemUpdate, writer, options); + + StreamingResponseItemUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeStreamingResponseItemUpdate, ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, options); + + StreamingResponseItemUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeStreamingResponseItemUpdate, data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + internal static void SerializeStreamingResponseItemUpdate( + StreamingResponseItemUpdate instance, + Utf8JsonWriter writer, + ModelReaderWriterOptions options) + => writer.WriteFirstObject( + options, + instance._outputItemAdded, + instance._outputItemDone); + + internal static StreamingResponseItemUpdate DeserializeStreamingResponseItemUpdate( + JsonElement element, + ModelReaderWriterOptions options) + => DeserializeUpdateWithWrappers(element, options) as StreamingResponseItemUpdate; +} diff --git a/src/Custom/Responses/Streaming/StreamingResponseItemUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseItemUpdate.cs new file mode 100644 index 000000000..7310272c0 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseItemUpdate.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses; + +public partial class StreamingResponseItemUpdate : StreamingResponseUpdate +{ + public ResponseItem Item + => _outputItemAdded?.Item + ?? _outputItemDone?.Item; + + public int ItemIndex + => _outputItemAdded?.OutputIndex + ?? _outputItemDone?.OutputIndex + ?? 0; + + private readonly InternalResponsesResponseStreamEventResponseOutputItemAdded _outputItemAdded; + private readonly InternalResponsesResponseStreamEventResponseOutputItemDone _outputItemDone; + + internal StreamingResponseItemUpdate(StreamingResponseUpdate baseUpdate) + : base(baseUpdate.Kind) + { + _outputItemAdded = baseUpdate as InternalResponsesResponseStreamEventResponseOutputItemAdded; + _outputItemDone = baseUpdate as InternalResponsesResponseStreamEventResponseOutputItemDone; + } + + internal StreamingResponseItemUpdate() + { } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseStatusUpdate.Serialization.cs b/src/Custom/Responses/Streaming/StreamingResponseStatusUpdate.Serialization.cs new file mode 100644 index 000000000..79499ca80 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseStatusUpdate.Serialization.cs @@ -0,0 +1,39 @@ +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace OpenAI.Responses; + +public partial class StreamingResponseStatusUpdate : IJsonModel +{ + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, SerializeStreamingResponseStatusUpdate, writer, options); + + StreamingResponseStatusUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeStreamingResponseStatusUpdate, ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, options); + + StreamingResponseStatusUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeStreamingResponseStatusUpdate, data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + internal static void SerializeStreamingResponseStatusUpdate( + StreamingResponseStatusUpdate instance, + Utf8JsonWriter writer, + ModelReaderWriterOptions options) + => writer.WriteFirstObject( + options, + instance._responseCompleted, + instance._responseIncomplete, + instance._responseInProgress, + instance._responseFailed, + instance._responseCreated); + + internal static StreamingResponseStatusUpdate DeserializeStreamingResponseStatusUpdate( + JsonElement element, + ModelReaderWriterOptions options) + => DeserializeUpdateWithWrappers(element, options) as StreamingResponseStatusUpdate; +} diff --git a/src/Custom/Responses/Streaming/StreamingResponseStatusUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseStatusUpdate.cs new file mode 100644 index 000000000..75f731bb2 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseStatusUpdate.cs @@ -0,0 +1,30 @@ +namespace OpenAI.Responses; + +public partial class StreamingResponseStatusUpdate : StreamingResponseUpdate +{ + public OpenAIResponse Response + => _responseCreated?.Response + ?? _responseInProgress?.Response + ?? _responseCompleted?.Response + ?? _responseFailed?.Response + ?? _responseIncomplete?.Response; + + private readonly InternalResponsesResponseStreamEventResponseCreated _responseCreated; + private readonly InternalResponsesResponseStreamEventResponseInProgress _responseInProgress; + private readonly InternalResponsesResponseStreamEventResponseCompleted _responseCompleted; + private readonly InternalResponsesResponseStreamEventResponseFailed _responseFailed; + private readonly InternalResponsesResponseStreamEventResponseIncomplete _responseIncomplete; + + internal StreamingResponseStatusUpdate(StreamingResponseUpdate baseUpdate) + : base(baseUpdate.Kind) + { + _responseCreated = baseUpdate as InternalResponsesResponseStreamEventResponseCreated; + _responseInProgress = baseUpdate as InternalResponsesResponseStreamEventResponseInProgress; + _responseCompleted = baseUpdate as InternalResponsesResponseStreamEventResponseCompleted; + _responseFailed = baseUpdate as InternalResponsesResponseStreamEventResponseFailed; + _responseIncomplete = baseUpdate as InternalResponsesResponseStreamEventResponseIncomplete; + } + + internal StreamingResponseStatusUpdate() + { } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseTextAnnotationUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseTextAnnotationUpdate.cs new file mode 100644 index 000000000..a334e99a8 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseTextAnnotationUpdate.cs @@ -0,0 +1,5 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEventResponseOutputTextAnnotationAdded")] +public partial class StreamingResponseTextAnnotationUpdate +{ } \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseUpdate.Serialization.cs b/src/Custom/Responses/Streaming/StreamingResponseUpdate.Serialization.cs new file mode 100644 index 000000000..ede956825 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseUpdate.Serialization.cs @@ -0,0 +1,39 @@ +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace OpenAI.Responses; + +public partial class StreamingResponseUpdate +{ + internal static StreamingResponseUpdate DeserializeUpdateWithWrappers(JsonElement element, ModelReaderWriterOptions options) + { + StreamingResponseUpdate directlyDeserializedUpdate + = DeserializeStreamingResponseUpdate(element, options); + return directlyDeserializedUpdate switch + { + InternalResponsesResponseStreamEventResponseContentPartAdded + or InternalResponsesResponseStreamEventResponseOutputTextDelta + or InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta + or InternalResponsesResponseStreamEventResponseRefusalDelta + => new StreamingResponseContentPartDeltaUpdate(directlyDeserializedUpdate), + InternalResponsesResponseStreamEventResponseOutputItemAdded + or InternalResponsesResponseStreamEventResponseOutputItemDone + => new StreamingResponseItemUpdate(directlyDeserializedUpdate), + InternalResponsesResponseStreamEventResponseCreated + or InternalResponsesResponseStreamEventResponseInProgress + or InternalResponsesResponseStreamEventResponseCompleted + or InternalResponsesResponseStreamEventResponseFailed + or InternalResponsesResponseStreamEventResponseIncomplete + => new StreamingResponseStatusUpdate(directlyDeserializedUpdate), + InternalResponsesResponseStreamEventResponseFileSearchCallCompleted + or InternalResponsesResponseStreamEventResponseFileSearchCallInProgress + or InternalResponsesResponseStreamEventResponseFileSearchCallSearching + => new StreamingResponseFileSearchCallUpdate(directlyDeserializedUpdate), + InternalResponsesResponseStreamEventResponseWebSearchCallCompleted + or InternalResponsesResponseStreamEventResponseWebSearchCallInProgress + or InternalResponsesResponseStreamEventResponseWebSearchCallSearching + => new StreamingResponseWebSearchCallUpdate(directlyDeserializedUpdate), + _ => directlyDeserializedUpdate, + }; + } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseUpdate.cs new file mode 100644 index 000000000..08ff93514 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseUpdate.cs @@ -0,0 +1,9 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEvent")] +public partial class StreamingResponseUpdate +{ + // CUSTOM: Made public and renamed to "Kind." + [CodeGenMember("Type")] + public StreamingResponseUpdateKind Kind { get; } +} \ No newline at end of file diff --git a/src/Custom/Responses/Streaming/StreamingResponseUpdateKind.cs b/src/Custom/Responses/Streaming/StreamingResponseUpdateKind.cs new file mode 100644 index 000000000..433ce4575 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseUpdateKind.cs @@ -0,0 +1,5 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesResponseStreamEventType")] +public readonly partial struct StreamingResponseUpdateKind +{ } diff --git a/src/Custom/Responses/Streaming/StreamingResponseWebSearchCallUpdate.Serialization.cs b/src/Custom/Responses/Streaming/StreamingResponseWebSearchCallUpdate.Serialization.cs new file mode 100644 index 000000000..29ee834ca --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseWebSearchCallUpdate.Serialization.cs @@ -0,0 +1,35 @@ +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace OpenAI.Responses; + +public partial class StreamingResponseWebSearchCallUpdate : IJsonModel +{ + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, SerializeStreamingResponseWebSearchCallUpdate, writer, options); + + StreamingResponseWebSearchCallUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeResponsesItemStreamingPartDeltaUpdate, ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + => CustomSerializationHelpers.SerializeInstance(this, options); + + StreamingResponseWebSearchCallUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + => CustomSerializationHelpers.DeserializeNewInstance(this, DeserializeResponsesItemStreamingPartDeltaUpdate, data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + internal static void SerializeStreamingResponseWebSearchCallUpdate( + StreamingResponseWebSearchCallUpdate instance, + Utf8JsonWriter writer, + ModelReaderWriterOptions options) + => writer.WriteFirstObject( + options, + instance._webSearchCallCompleted, + instance._webSearchCallInProgress, + instance._webSearchCallSearching); + + internal static StreamingResponseWebSearchCallUpdate DeserializeResponsesItemStreamingPartDeltaUpdate(JsonElement element, ModelReaderWriterOptions options = null) + => DeserializeUpdateWithWrappers(element, options) as StreamingResponseWebSearchCallUpdate; +} diff --git a/src/Custom/Responses/Streaming/StreamingResponseWebSearchCallUpdate.cs b/src/Custom/Responses/Streaming/StreamingResponseWebSearchCallUpdate.cs new file mode 100644 index 000000000..34b68d5b5 --- /dev/null +++ b/src/Custom/Responses/Streaming/StreamingResponseWebSearchCallUpdate.cs @@ -0,0 +1,30 @@ +namespace OpenAI.Responses; + +public partial class StreamingResponseWebSearchCallUpdate : StreamingResponseUpdate +{ + public string OutputItemId + => _webSearchCallCompleted?.ItemId + ?? _webSearchCallInProgress?.ItemId + ?? _webSearchCallSearching?.ItemId; + + public int OutputItemIndex + => _webSearchCallCompleted?.OutputIndex + ?? _webSearchCallInProgress?.OutputIndex + ?? _webSearchCallSearching?.OutputIndex + ?? 0; + + private readonly InternalResponsesResponseStreamEventResponseWebSearchCallCompleted _webSearchCallCompleted; + private readonly InternalResponsesResponseStreamEventResponseWebSearchCallInProgress _webSearchCallInProgress; + private readonly InternalResponsesResponseStreamEventResponseWebSearchCallSearching _webSearchCallSearching; + + internal StreamingResponseWebSearchCallUpdate(StreamingResponseUpdate baseUpdate) + : base(baseUpdate.Kind) + { + _webSearchCallCompleted = baseUpdate as InternalResponsesResponseStreamEventResponseWebSearchCallCompleted; + _webSearchCallInProgress = baseUpdate as InternalResponsesResponseStreamEventResponseWebSearchCallInProgress; + _webSearchCallSearching = baseUpdate as InternalResponsesResponseStreamEventResponseWebSearchCallSearching; + } + + internal StreamingResponseWebSearchCallUpdate() + { } +} \ No newline at end of file diff --git a/src/Custom/Responses/Tools/ComputerToolEnvironment.cs b/src/Custom/Responses/Tools/ComputerToolEnvironment.cs new file mode 100644 index 000000000..31c220a07 --- /dev/null +++ b/src/Custom/Responses/Tools/ComputerToolEnvironment.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesComputerToolEnvironment")] +public readonly partial struct ComputerToolEnvironment +{ +} diff --git a/src/Custom/Responses/Tools/FileSearchToolRanker.cs b/src/Custom/Responses/Tools/FileSearchToolRanker.cs new file mode 100644 index 000000000..94da685ce --- /dev/null +++ b/src/Custom/Responses/Tools/FileSearchToolRanker.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesFileSearchToolRankingOptionsRanker")] +public readonly partial struct FileSearchToolRanker +{ +} diff --git a/src/Custom/Responses/Tools/FileSearchToolRankingOptions.cs b/src/Custom/Responses/Tools/FileSearchToolRankingOptions.cs new file mode 100644 index 000000000..5929d8de7 --- /dev/null +++ b/src/Custom/Responses/Tools/FileSearchToolRankingOptions.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesFileSearchToolRankingOptions")] +public partial class FileSearchToolRankingOptions +{ +} diff --git a/src/Custom/Responses/Tools/Internal/InternalUnknownResponsesTool.cs b/src/Custom/Responses/Tools/Internal/InternalUnknownResponsesTool.cs new file mode 100644 index 000000000..477b0c90b --- /dev/null +++ b/src/Custom/Responses/Tools/Internal/InternalUnknownResponsesTool.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("UnknownResponsesTool")] +internal partial class InternalUnknownResponsesTool +{ +} diff --git a/src/Custom/Responses/Tools/ResponseTool.cs b/src/Custom/Responses/Tools/ResponseTool.cs new file mode 100644 index 000000000..a1d065830 --- /dev/null +++ b/src/Custom/Responses/Tools/ResponseTool.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; + +namespace OpenAI.Responses; + +[CodeGenType("ResponsesTool")] +public partial class ResponseTool +{ + // CUSTOM: Made internal. + [CodeGenMember("Type")] + internal InternalResponsesToolType Type { get; } + + //// CUSTOM: Exposed function tool properties. + //public string FunctionName => (this as InternalResponsesFunctionTool)?.Name; + //public string FunctionDescription => (this as InternalResponsesFunctionTool)?.Description; + //public BinaryData FunctionParameters => (this as InternalResponsesFunctionTool)?.Parameters; + //public bool? FunctionSchemaIsStrict => (this as InternalResponsesFunctionTool)?.Strict; + + //// CUSTOM: Exposed computer tool properties. + //public int? ComputerDisplayWidth => (this as InternalResponsesComputerTool)?.DisplayWidth; + //public int? ComputerDisplayHeight => (this as InternalResponsesComputerTool)?.DisplayHeight; + //public ComputerToolEnvironment? ComputerEnvironment => (this as InternalResponsesComputerTool)?.Environment; + + //// CUSTOM: Exposed file search tool properties. + //public IList FileSearchVectorStoreIds => (this as InternalResponsesFileSearchTool)?.VectorStoreIds; + //public int? FileSearchMaxResultCount => (this as InternalResponsesFileSearchTool)?.MaxNumResults; + + //// CUSTOM: Exposed web search tool properties. + //public IList WebSearchDomains => (this as InternalResponsesWebSearchTool)?.Domains; + //public WebSearchToolUserLocation WebSearchUserLocation => (this as InternalResponsesWebSearchTool)?.UserLocation; + + //// CUSTOM: Exposed code interpreter tool properties. + //// TODO + + public static ResponseTool CreateFunctionTool(string functionName, string functionDescription, BinaryData functionParameters, bool functionSchemaIsStrict = false) + { + return new InternalResponsesFunctionTool( + type: InternalResponsesToolType.Function, + additionalBinaryDataProperties: null, + functionName, + functionDescription, + functionParameters, + functionSchemaIsStrict); + } + + [Experimental("OPENAICUA001")] + public static ResponseTool CreateComputerTool(int displayWidth,int displayHeight, ComputerToolEnvironment environment) + { + return new InternalResponsesComputerTool( + type: InternalResponsesToolType.Computer, + additionalBinaryDataProperties: null, + displayWidth, + displayHeight, + environment); + } + + public static ResponseTool CreateFileSearchTool(IEnumerable vectorStoreIds, int? maxResultCount = null, FileSearchToolRankingOptions rankingOptions = null, BinaryData filters = null) + { + return new InternalResponsesFileSearchTool( + type: InternalResponsesToolType.FileSearch, + additionalBinaryDataProperties: null, + vectorStoreIds.ToList(), + maxResultCount, + rankingOptions, + filters); + } + + public static ResponseTool CreateWebSearchTool(WebSearchToolLocation webSearchToolUserLocation = null, WebSearchToolContextSize? webSearchToolContextSize = null) + { + return new InternalResponsesWebSearchTool( + type: InternalResponsesToolType.WebSearch, + additionalBinaryDataProperties: null, + webSearchToolUserLocation, + webSearchToolContextSize); + } +} diff --git a/src/Custom/Responses/Tools/ResponseToolChoice.cs b/src/Custom/Responses/Tools/ResponseToolChoice.cs new file mode 100644 index 000000000..6541382dd --- /dev/null +++ b/src/Custom/Responses/Tools/ResponseToolChoice.cs @@ -0,0 +1,27 @@ + +//namespace OpenAI.Responses; + +//public partial class ResponseToolChoice +//{ +// //internal BinaryData AsBinaryData { get; set; } + +// //public static ResponsesToolChoice CreateAutoToolChoice() +// // => new(ModelReaderWriter.Write(InternalResponsesToolChoiceEnum.Auto)); + +// //public static ResponsesToolChoice CreateNoneToolChoice() +// // => new(ModelReaderWriter.Write(InternalResponsesToolChoiceEnum.None)); + +// //public static ResponsesToolChoice CreateRequiredToolChoice() +// // => new(ModelReaderWriter.Write(InternalResponsesToolChoiceEnum.Required)); + +// //public static ResponsesToolChoice CreateFunctionToolChoice(string functionName) +// // => new( +// // ModelReaderWriter.Write( +// // new InternalResponsesFunctionToolChoice( +// // new InternalResponsesFunctionToolChoiceFunction(functionName)))); + +// //internal ResponsesToolChoice(BinaryData binaryDataToolChoice) +// //{ +// // AsBinaryData = binaryDataToolChoice; +// //} +//} diff --git a/src/Custom/Responses/Tools/WebSearchToolContextSize.cs b/src/Custom/Responses/Tools/WebSearchToolContextSize.cs new file mode 100644 index 000000000..eed8c5f8e --- /dev/null +++ b/src/Custom/Responses/Tools/WebSearchToolContextSize.cs @@ -0,0 +1,6 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesWebSearchContextSize")] +public readonly partial struct WebSearchToolContextSize +{ +} diff --git a/src/Custom/Responses/Tools/WebSearchToolLocation.cs b/src/Custom/Responses/Tools/WebSearchToolLocation.cs new file mode 100644 index 000000000..ae4849a9a --- /dev/null +++ b/src/Custom/Responses/Tools/WebSearchToolLocation.cs @@ -0,0 +1,16 @@ +namespace OpenAI.Responses; + +[CodeGenType("ResponsesWebSearchLocation")] +public partial class WebSearchToolLocation +{ + public static WebSearchToolLocation CreateApproximateLocation(string country = null, string region = null, string city = null, string timezone = null) + { + return new InternalResponsesWebSearchApproximateLocation( + type: "approximate", + additionalBinaryDataProperties: null, + country, + region, + city, + timezone); + } +} \ No newline at end of file diff --git a/src/Custom/VectorStores/AddFileToVectorStoreOperation.Protocol.cs b/src/Custom/VectorStores/AddFileToVectorStoreOperation.Protocol.cs index 254232f1a..fdc68741c 100644 --- a/src/Custom/VectorStores/AddFileToVectorStoreOperation.Protocol.cs +++ b/src/Custom/VectorStores/AddFileToVectorStoreOperation.Protocol.cs @@ -10,7 +10,7 @@ namespace OpenAI.VectorStores; public partial class AddFileToVectorStoreOperation : OperationResult { - private readonly ClientPipeline _pipeline; + private readonly VectorStoreClient _parentClient; private readonly Uri _endpoint; private readonly string _vectorStoreId; @@ -28,8 +28,8 @@ public partial class AddFileToVectorStoreOperation : OperationResult [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task GetFileAssociationAsync(RequestOptions? options) { - using PipelineMessage message = CreateGetVectorStoreFileRequest(_vectorStoreId, _fileId, options); - return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + using PipelineMessage message = _parentClient.CreateGetVectorStoreFileRequest(_vectorStoreId, _fileId, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } /// @@ -41,26 +41,8 @@ public virtual async Task GetFileAssociationAsync(RequestOptions? [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetFileAssociation(RequestOptions? options) { - using PipelineMessage message = CreateGetVectorStoreFileRequest(_vectorStoreId, _fileId, options); - return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); - } - - internal virtual PipelineMessage CreateGetVectorStoreFileRequest(string vectorStoreId, string fileId, RequestOptions? options) - { - var message = _pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/files/", false); - uri.AppendPath(fileId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; + using PipelineMessage message = _parentClient.CreateGetVectorStoreFileRequest(_vectorStoreId, _fileId, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); } private static PipelineMessageClassifier? _pipelineMessageClassifier200; diff --git a/src/Custom/VectorStores/AddFileToVectorStoreOperation.cs b/src/Custom/VectorStores/AddFileToVectorStoreOperation.cs index d160fb301..99b9325c7 100644 --- a/src/Custom/VectorStores/AddFileToVectorStoreOperation.cs +++ b/src/Custom/VectorStores/AddFileToVectorStoreOperation.cs @@ -13,12 +13,12 @@ namespace OpenAI.VectorStores; public partial class AddFileToVectorStoreOperation : OperationResult { internal AddFileToVectorStoreOperation( - ClientPipeline pipeline, + VectorStoreClient parentClient, Uri endpoint, ClientResult result) : base(result.GetRawResponse()) { - _pipeline = pipeline; + _parentClient = parentClient; _endpoint = endpoint; Value = result; diff --git a/src/Custom/VectorStores/CreateBatchFileJobOperation.Protocol.cs b/src/Custom/VectorStores/CreateBatchFileJobOperation.Protocol.cs index 8b649718e..1e0e2598b 100644 --- a/src/Custom/VectorStores/CreateBatchFileJobOperation.Protocol.cs +++ b/src/Custom/VectorStores/CreateBatchFileJobOperation.Protocol.cs @@ -14,7 +14,7 @@ namespace OpenAI.VectorStores; /// public partial class CreateBatchFileJobOperation : OperationResult { - private readonly ClientPipeline _pipeline; + private readonly VectorStoreClient _parentClient; private readonly Uri _endpoint; private readonly string _vectorStoreId; @@ -34,8 +34,8 @@ public partial class CreateBatchFileJobOperation : OperationResult [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task GetFileBatchAsync(RequestOptions? options) { - using PipelineMessage message = CreateGetVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); - return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + using PipelineMessage message = _parentClient.CreateGetVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } /// @@ -47,8 +47,8 @@ public virtual async Task GetFileBatchAsync(RequestOptions? option [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetFileBatch(RequestOptions? options) { - using PipelineMessage message = CreateGetVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); - return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); + using PipelineMessage message = _parentClient.CreateGetVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); } /// @@ -60,8 +60,8 @@ public virtual ClientResult GetFileBatch(RequestOptions? options) [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task CancelAsync(RequestOptions? options) { - using PipelineMessage message = CreateCancelVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); - return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + using PipelineMessage message = _parentClient.CreateCancelVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } /// @@ -73,45 +73,8 @@ public virtual async Task CancelAsync(RequestOptions? options) [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult Cancel(RequestOptions? options) { - using PipelineMessage message = CreateCancelVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); - return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); - } - - internal virtual PipelineMessage CreateGetVectorStoreFileBatchRequest(string vectorStoreId, string batchId, RequestOptions? options) - { - var message = _pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/file_batches/", false); - uri.AppendPath(batchId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateCancelVectorStoreFileBatchRequest(string vectorStoreId, string batchId, RequestOptions? options) - { - var message = _pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/file_batches/", false); - uri.AppendPath(batchId, true); - uri.AppendPath("/cancel", false); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; + using PipelineMessage message = _parentClient.CreateCancelVectorStoreFileBatchRequest(_vectorStoreId, _batchId, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); } private static PipelineMessageClassifier? _pipelineMessageClassifier200; diff --git a/src/Custom/VectorStores/CreateBatchFileJobOperation.cs b/src/Custom/VectorStores/CreateBatchFileJobOperation.cs index ad5acece8..7b299f28e 100644 --- a/src/Custom/VectorStores/CreateBatchFileJobOperation.cs +++ b/src/Custom/VectorStores/CreateBatchFileJobOperation.cs @@ -16,12 +16,12 @@ namespace OpenAI.VectorStores; public partial class CreateBatchFileJobOperation : OperationResult { internal CreateBatchFileJobOperation( - ClientPipeline pipeline, + VectorStoreClient parentClient, Uri endpoint, ClientResult result) : base(result.GetRawResponse()) { - _pipeline = pipeline; + _parentClient = parentClient; _endpoint = endpoint; Value = result; diff --git a/src/Custom/VectorStores/CreateVectorStoreOperation.Protocol.cs b/src/Custom/VectorStores/CreateVectorStoreOperation.Protocol.cs index 343c37155..1faeada23 100644 --- a/src/Custom/VectorStores/CreateVectorStoreOperation.Protocol.cs +++ b/src/Custom/VectorStores/CreateVectorStoreOperation.Protocol.cs @@ -10,7 +10,7 @@ namespace OpenAI.VectorStores; public partial class CreateVectorStoreOperation : OperationResult { - private readonly ClientPipeline _pipeline; + private readonly VectorStoreClient _parentClient; private readonly Uri _endpoint; private readonly string _vectorStoreId; @@ -27,8 +27,8 @@ public partial class CreateVectorStoreOperation : OperationResult [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task GetVectorStoreAsync(RequestOptions? options) { - using PipelineMessage message = CreateGetVectorStoreRequest(_vectorStoreId, options); - return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); + using PipelineMessage message = _parentClient.CreateGetVectorStoreRequest(_vectorStoreId, options); + return ClientResult.FromResponse(await _parentClient.Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } /// @@ -40,24 +40,8 @@ public virtual async Task GetVectorStoreAsync(RequestOptions? opti [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetVectorStore(RequestOptions? options) { - using PipelineMessage message = CreateGetVectorStoreRequest(_vectorStoreId, options); - return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); - } - - internal virtual PipelineMessage CreateGetVectorStoreRequest(string vectorStoreId, RequestOptions? options) - { - var message = _pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; + using PipelineMessage message = _parentClient.CreateGetVectorStoreRequest(_vectorStoreId, options); + return ClientResult.FromResponse(_parentClient.Pipeline.ProcessMessage(message, options)); } private static PipelineMessageClassifier? _pipelineMessageClassifier200; diff --git a/src/Custom/VectorStores/CreateVectorStoreOperation.cs b/src/Custom/VectorStores/CreateVectorStoreOperation.cs index d140e7473..00d71b037 100644 --- a/src/Custom/VectorStores/CreateVectorStoreOperation.cs +++ b/src/Custom/VectorStores/CreateVectorStoreOperation.cs @@ -13,12 +13,12 @@ namespace OpenAI.VectorStores; public partial class CreateVectorStoreOperation : OperationResult { internal CreateVectorStoreOperation( - ClientPipeline pipeline, + VectorStoreClient parentClient, Uri endpoint, ClientResult result) : base(result.GetRawResponse()) { - _pipeline = pipeline; + _parentClient = parentClient; _endpoint = endpoint; Value = result; diff --git a/src/Custom/VectorStores/FileChunkingStrategy.cs b/src/Custom/VectorStores/FileChunkingStrategy.cs index 3da40dad9..d81146fbb 100644 --- a/src/Custom/VectorStores/FileChunkingStrategy.cs +++ b/src/Custom/VectorStores/FileChunkingStrategy.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("FileChunkingStrategyResponseParam")] +[CodeGenType("FileChunkingStrategyResponseParam")] public abstract partial class FileChunkingStrategy { /// diff --git a/src/Custom/VectorStores/FileFromStoreRemovalResult.cs b/src/Custom/VectorStores/FileFromStoreRemovalResult.cs index fe5d63382..5945a69e6 100644 --- a/src/Custom/VectorStores/FileFromStoreRemovalResult.cs +++ b/src/Custom/VectorStores/FileFromStoreRemovalResult.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("DeleteVectorStoreFileResponse")] +[CodeGenType("DeleteVectorStoreFileResponse")] public partial class FileFromStoreRemovalResult { // CUSTOM: Renamed. diff --git a/src/Custom/VectorStores/Internal/GeneratorStubs.cs b/src/Custom/VectorStores/Internal/GeneratorStubs.cs index 1ca77f775..b67385a3c 100644 --- a/src/Custom/VectorStores/Internal/GeneratorStubs.cs +++ b/src/Custom/VectorStores/Internal/GeneratorStubs.cs @@ -2,65 +2,65 @@ namespace OpenAI.VectorStores; // CUSTOM: Made internal. -[CodeGenModel("CreateVectorStoreFileBatchRequest")] +[CodeGenType("CreateVectorStoreFileBatchRequest")] internal partial class InternalCreateVectorStoreFileBatchRequest { } -[CodeGenModel("CreateVectorStoreFileRequest")] +[CodeGenType("CreateVectorStoreFileRequest")] internal partial class InternalCreateVectorStoreFileRequest { } -[CodeGenModel("DeleteVectorStoreFileResponseObject")] +[CodeGenType("DeleteVectorStoreFileResponseObject")] internal readonly partial struct InternalDeleteVectorStoreFileResponseObject { } -[CodeGenModel("DeleteVectorStoreResponseObject")] +[CodeGenType("DeleteVectorStoreResponseObject")] internal readonly partial struct InternalDeleteVectorStoreResponseObject { } -[CodeGenModel("ListVectorStoreFilesResponse")] +[CodeGenType("ListVectorStoreFilesResponse")] internal partial class InternalListVectorStoreFilesResponse : IInternalListResponse { } -[CodeGenModel("ListVectorStoreFilesResponseObject")] +[CodeGenType("ListVectorStoreFilesResponseObject")] internal readonly partial struct InternalListVectorStoreFilesResponseObject { } -[CodeGenModel("ListVectorStoresResponse")] +[CodeGenType("ListVectorStoresResponse")] internal partial class InternalListVectorStoresResponse : IInternalListResponse { } -[CodeGenModel("ListVectorStoresResponseObject")] +[CodeGenType("ListVectorStoresResponseObject")] internal readonly partial struct InternalListVectorStoresResponseObject { } -[CodeGenModel("VectorStoreFileBatchObjectFileCounts")] +[CodeGenType("VectorStoreFileBatchObjectFileCounts")] internal partial class InternalVectorStoreFileBatchObjectFileCounts { } -[CodeGenModel("VectorStoreFileBatchObjectObject")] +[CodeGenType("VectorStoreFileBatchObjectObject")] internal readonly partial struct InternalVectorStoreFileBatchObjectObject { } -[CodeGenModel("VectorStoreFileObjectObject")] +[CodeGenType("VectorStoreFileObjectObject")] internal readonly partial struct InternalVectorStoreFileObjectObject { } -[CodeGenModel("VectorStoreObjectObject")] +[CodeGenType("VectorStoreObjectObject")] internal readonly partial struct InternalVectorStoreObjectObject { } -[CodeGenModel("StaticChunkingStrategy")] +[CodeGenType("StaticChunkingStrategy")] internal partial class InternalStaticChunkingStrategyDetails { } -[CodeGenModel("FileChunkingStrategyRequestParam")] +[CodeGenType("FileChunkingStrategyRequestParam")] internal partial class InternalFileChunkingStrategyRequestParam { } -[CodeGenModel("AutoChunkingStrategyRequestParam")] +[CodeGenType("AutoChunkingStrategyRequestParam")] internal partial class InternalAutoChunkingStrategyRequestParam { } -[CodeGenModel("StaticChunkingStrategyRequestParam")] +[CodeGenType("StaticChunkingStrategyRequestParam")] internal partial class InternalStaticChunkingStrategyRequestParam { } -[CodeGenModel("UnknownFileChunkingStrategyRequestParam")] +[CodeGenType("UnknownFileChunkingStrategyRequestParam")] internal partial class InternalUnknownFileChunkingStrategyRequestParamProxy { } -[CodeGenModel("AutoChunkingStrategyResponseParam")] +[CodeGenType("AutoChunkingStrategyResponseParam")] internal partial class InternalAutoChunkingStrategy { } -[CodeGenModel("OtherChunkingStrategyResponseParam")] +[CodeGenType("OtherChunkingStrategyResponseParam")] internal partial class InternalUnknownChunkingStrategy { } -[CodeGenModel("UnknownFileChunkingStrategyResponseParam")] +[CodeGenType("UnknownFileChunkingStrategyResponseParam")] internal partial class InternalUnknownFileChunkingStrategyResponseParamProxy { } -[CodeGenModel("ListFilesInVectorStoreBatchRequestOrder")] -internal readonly partial struct InternalListFilesInVectorStoreBatchRequestOrder { } \ No newline at end of file +[CodeGenType("VectorStoreFileAttributes")] +internal partial class InternalVectorStoreFileAttributes { } \ No newline at end of file diff --git a/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreCollectionResult.cs b/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreCollectionResult.cs index 9eb429289..90e260d97 100644 --- a/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreCollectionResult.cs +++ b/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreCollectionResult.cs @@ -83,7 +83,7 @@ public static bool HasNextPage(ClientResult result) internal virtual async Task GetVectorStoresAsync(int? limit, string? order, string? after, string? before, RequestOptions? options) { - using PipelineMessage message = _vectorStoreClient.CreateGetVectorStoresRequest(limit, order, after, before, options); + using PipelineMessage message = _vectorStoreClient.CreateListVectorStoresRequest(limit, order, after, before, options); return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } } diff --git a/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileBatchCollectionResult.cs b/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileBatchCollectionResult.cs index 80707e361..5d3af5a96 100644 --- a/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileBatchCollectionResult.cs +++ b/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileBatchCollectionResult.cs @@ -95,7 +95,7 @@ internal virtual async Task GetFileAssociationsAsync(string vector Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using PipelineMessage message = _vectorStoreClient.CreateGetFilesInVectorStoreBatchesRequest(vectorStoreId, batchId, limit, order, after, before, filter, options); + using PipelineMessage message = _vectorStoreClient.CreateListFilesInVectorStoreBatchRequest(vectorStoreId, batchId, limit, order, after, before, filter, options); return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } } diff --git a/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileCollectionResult.cs b/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileCollectionResult.cs index 0fdc218fc..cf35bff0b 100644 --- a/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileCollectionResult.cs +++ b/src/Custom/VectorStores/Internal/Pagination/AsyncVectorStoreFileCollectionResult.cs @@ -92,7 +92,7 @@ internal virtual async Task GetFileAssociationsAsync(string vector { Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using PipelineMessage message = _vectorStoreClient.CreateGetVectorStoreFilesRequest(vectorStoreId, limit, order, after, before, filter, options); + using PipelineMessage message = _vectorStoreClient.CreateListVectorStoreFilesRequest(vectorStoreId, limit, order, after, before, filter, options); return ClientResult.FromResponse(await _pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } } diff --git a/src/Custom/VectorStores/Internal/Pagination/VectorStoreCollectionResult.cs b/src/Custom/VectorStores/Internal/Pagination/VectorStoreCollectionResult.cs index f8faf783f..edcefd922 100644 --- a/src/Custom/VectorStores/Internal/Pagination/VectorStoreCollectionResult.cs +++ b/src/Custom/VectorStores/Internal/Pagination/VectorStoreCollectionResult.cs @@ -90,7 +90,7 @@ public static bool HasNextPage(ClientResult result) internal virtual ClientResult GetVectorStores(int? limit, string? order, string? after, string? before, RequestOptions? options) { - using PipelineMessage message = _vectorStoreClient.CreateGetVectorStoresRequest(limit, order, after, before, options); + using PipelineMessage message = _vectorStoreClient.CreateListVectorStoresRequest(limit, order, after, before, options); return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); } } diff --git a/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileBatchCollectionResult.cs b/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileBatchCollectionResult.cs index 7f8345cf6..4f76f6337 100644 --- a/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileBatchCollectionResult.cs +++ b/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileBatchCollectionResult.cs @@ -100,7 +100,7 @@ internal virtual ClientResult GetFileAssociations(string vectorStoreId, string b Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using PipelineMessage message = _vectorStoreClient.CreateGetFilesInVectorStoreBatchesRequest(vectorStoreId, batchId, limit, order, after, before, filter, options); + using PipelineMessage message = _vectorStoreClient.CreateListFilesInVectorStoreBatchRequest(vectorStoreId, batchId, limit, order, after, before, filter, options); return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); } } diff --git a/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileCollectionResult.cs b/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileCollectionResult.cs index 4b4a038f5..11536f27c 100644 --- a/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileCollectionResult.cs +++ b/src/Custom/VectorStores/Internal/Pagination/VectorStoreFileCollectionResult.cs @@ -97,7 +97,7 @@ internal virtual ClientResult GetFileAssociations(string vectorStoreId, int? lim { Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using PipelineMessage message = _vectorStoreClient.CreateGetVectorStoreFilesRequest(vectorStoreId, limit, order, after, before, filter, options); + using PipelineMessage message = _vectorStoreClient.CreateListVectorStoreFilesRequest(vectorStoreId, limit, order, after, before, filter, options); return ClientResult.FromResponse(_pipeline.ProcessMessage(message, options)); } } diff --git a/src/Custom/VectorStores/StaticFileChunkingStrategy.cs b/src/Custom/VectorStores/StaticFileChunkingStrategy.cs index 1912b776f..a895bc384 100644 --- a/src/Custom/VectorStores/StaticFileChunkingStrategy.cs +++ b/src/Custom/VectorStores/StaticFileChunkingStrategy.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("StaticChunkingStrategyResponseParam")] +[CodeGenType("StaticChunkingStrategyResponseParam")] public partial class StaticFileChunkingStrategy : FileChunkingStrategy { [CodeGenMember("Static")] diff --git a/src/Custom/VectorStores/VectorStore.cs b/src/Custom/VectorStores/VectorStore.cs index d63612d18..7f05397d0 100644 --- a/src/Custom/VectorStores/VectorStore.cs +++ b/src/Custom/VectorStores/VectorStore.cs @@ -6,7 +6,7 @@ namespace OpenAI.VectorStores; /// A representation of a file storage and indexing container used by the file_search tool for assistants. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreObject")] +[CodeGenType("VectorStoreObject")] public partial class VectorStore { // CUSTOM: Made internal. diff --git a/src/Custom/VectorStores/VectorStoreBatchFileJob.cs b/src/Custom/VectorStores/VectorStoreBatchFileJob.cs index 329a03b53..0e19bd05b 100644 --- a/src/Custom/VectorStores/VectorStoreBatchFileJob.cs +++ b/src/Custom/VectorStores/VectorStoreBatchFileJob.cs @@ -6,7 +6,7 @@ namespace OpenAI.VectorStores; /// Represents information about a bulk ingestion job of files into a vector store. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreFileBatchObject")] +[CodeGenType("VectorStoreFileBatchObject")] public partial class VectorStoreBatchFileJob { private readonly object Object; diff --git a/src/Custom/VectorStores/VectorStoreBatchFileJobStatus.cs b/src/Custom/VectorStores/VectorStoreBatchFileJobStatus.cs index d23f262a6..22a07935b 100644 --- a/src/Custom/VectorStores/VectorStoreBatchFileJobStatus.cs +++ b/src/Custom/VectorStores/VectorStoreBatchFileJobStatus.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreFileBatchObjectStatus")] +[CodeGenType("VectorStoreFileBatchObjectStatus")] public readonly partial struct VectorStoreBatchFileJobStatus { } \ No newline at end of file diff --git a/src/Custom/VectorStores/VectorStoreClient.Protocol.cs b/src/Custom/VectorStores/VectorStoreClient.Protocol.cs index 810460b8d..f6279e82c 100644 --- a/src/Custom/VectorStores/VectorStoreClient.Protocol.cs +++ b/src/Custom/VectorStores/VectorStoreClient.Protocol.cs @@ -683,289 +683,4 @@ internal virtual ClientResult GetBatchFileJob(string vectorStoreId, string batch using PipelineMessage message = CreateGetVectorStoreFileBatchRequest(vectorStoreId, batchId, options); return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options)); } - - internal virtual PipelineMessage CreateCreateVectorStoreRequest(BinaryContent content, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores", false); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - request.Headers.Set("Content-Type", "application/json"); - request.Content = content; - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateGetVectorStoresRequest(int? limit, string order, string after, string before, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores", false); - if (limit != null) - { - uri.AppendQuery("limit", limit.Value, true); - } - if (order != null) - { - uri.AppendQuery("order", order, true); - } - if (after != null) - { - uri.AppendQuery("after", after, true); - } - if (before != null) - { - uri.AppendQuery("before", before, true); - } - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateGetVectorStoreRequest(string vectorStoreId, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateModifyVectorStoreRequest(string vectorStoreId, BinaryContent content, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - request.Headers.Set("Content-Type", "application/json"); - request.Content = content; - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateDeleteVectorStoreRequest(string vectorStoreId, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "DELETE"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateGetVectorStoreFilesRequest(string vectorStoreId, int? limit, string order, string after, string before, string filter, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/files", false); - if (limit != null) - { - uri.AppendQuery("limit", limit.Value, true); - } - if (order != null) - { - uri.AppendQuery("order", order, true); - } - if (after != null) - { - uri.AppendQuery("after", after, true); - } - if (before != null) - { - uri.AppendQuery("before", before, true); - } - if (filter != null) - { - uri.AppendQuery("filter", filter, true); - } - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateCreateVectorStoreFileRequest(string vectorStoreId, BinaryContent content, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/files", false); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - request.Headers.Set("Content-Type", "application/json"); - request.Content = content; - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateDeleteVectorStoreFileRequest(string vectorStoreId, string fileId, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "DELETE"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/files/", false); - uri.AppendPath(fileId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateCancelVectorStoreFileBatchRequest(string vectorStoreId, string batchId, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/file_batches/", false); - uri.AppendPath(batchId, true); - uri.AppendPath("/cancel", false); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateCreateVectorStoreFileBatchRequest(string vectorStoreId, BinaryContent content, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "POST"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/file_batches", false); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - request.Headers.Set("Content-Type", "application/json"); - request.Content = content; - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateGetVectorStoreFileRequest(string vectorStoreId, string fileId, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/files/", false); - uri.AppendPath(fileId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateGetVectorStoreFileBatchRequest(string vectorStoreId, string batchId, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/file_batches/", false); - uri.AppendPath(batchId, true); - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } - - internal virtual PipelineMessage CreateGetFilesInVectorStoreBatchesRequest(string vectorStoreId, string batchId, int? limit, string order, string after, string before, string filter, RequestOptions options) - { - var message = Pipeline.CreateMessage(); - message.ResponseClassifier = PipelineMessageClassifier200; - var request = message.Request; - request.Method = "GET"; - var uri = new ClientUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/vector_stores/", false); - uri.AppendPath(vectorStoreId, true); - uri.AppendPath("/file_batches/", false); - uri.AppendPath(batchId, true); - uri.AppendPath("/files", false); - if (limit != null) - { - uri.AppendQuery("limit", limit.Value, true); - } - if (order != null) - { - uri.AppendQuery("order", order, true); - } - if (after != null) - { - uri.AppendQuery("after", after, true); - } - if (before != null) - { - uri.AppendQuery("before", before, true); - } - if (filter != null) - { - uri.AppendQuery("filter", filter, true); - } - request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); - message.Apply(options); - return message; - } } diff --git a/src/Custom/VectorStores/VectorStoreClient.cs b/src/Custom/VectorStores/VectorStoreClient.cs index 5f42766e6..545f59ce0 100644 --- a/src/Custom/VectorStores/VectorStoreClient.cs +++ b/src/Custom/VectorStores/VectorStoreClient.cs @@ -13,14 +13,14 @@ namespace OpenAI.VectorStores; /// The service client for OpenAI vector store operations. /// [Experimental("OPENAI001")] -[CodeGenClient("VectorStores")] -[CodeGenSuppress("VectorStoreClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] +[CodeGenType("VectorStores")] +[CodeGenSuppress("VectorStoreClient", typeof(ClientPipeline), typeof(Uri))] [CodeGenSuppress("CreateVectorStoreAsync", typeof(VectorStoreCreationOptions), typeof(CancellationToken))] [CodeGenSuppress("CreateVectorStore", typeof(VectorStoreCreationOptions), typeof(CancellationToken))] [CodeGenSuppress("ListVectorStoresAsync", typeof(int?), typeof(VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("ListVectorStores", typeof(int?), typeof(VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(CancellationToken))] -[CodeGenSuppress("ListVectorStoreFilesAsync", typeof(string), typeof(int?), typeof(VectorStoreFileAssociationCollectionOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] -[CodeGenSuppress("ListVectorStoreFiles", typeof(string), typeof(int?), typeof(VectorStoreFileAssociationCollectionOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] +[CodeGenSuppress("ListVectorStoreFilesAsync", typeof(string), typeof(int?), typeof(VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] +[CodeGenSuppress("ListVectorStoreFiles", typeof(string), typeof(int?), typeof(VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] [CodeGenSuppress("CreateVectorStoreFileAsync", typeof(string), typeof(InternalCreateVectorStoreFileRequest), typeof(CancellationToken))] [CodeGenSuppress("CreateVectorStoreFile", typeof(string), typeof(InternalCreateVectorStoreFileRequest), typeof(CancellationToken))] [CodeGenSuppress("GetVectorStoreFileAsync", typeof(string), typeof(string), typeof(CancellationToken))] @@ -33,8 +33,8 @@ namespace OpenAI.VectorStores; [CodeGenSuppress("GetVectorStoreFileBatch", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("CancelVectorStoreFileBatchAsync", typeof(string), typeof(string), typeof(CancellationToken))] [CodeGenSuppress("CancelVectorStoreFileBatch", typeof(string), typeof(string), typeof(CancellationToken))] -[CodeGenSuppress("ListFilesInVectorStoreBatchAsync", typeof(string), typeof(string), typeof(int?), typeof(InternalListFilesInVectorStoreBatchRequestOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] -[CodeGenSuppress("ListFilesInVectorStoreBatch", typeof(string), typeof(string), typeof(int?), typeof(InternalListFilesInVectorStoreBatchRequestOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] +[CodeGenSuppress("ListFilesInVectorStoreBatchAsync", typeof(string), typeof(string), typeof(int?), typeof(VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] +[CodeGenSuppress("ListFilesInVectorStoreBatch", typeof(string), typeof(string), typeof(int?), typeof(VectorStoreCollectionOrder?), typeof(string), typeof(string), typeof(VectorStoreFileStatusFilter?), typeof(CancellationToken))] public partial class VectorStoreClient { // CUSTOM: Added as a convenience. @@ -89,17 +89,17 @@ protected internal VectorStoreClient(ClientPipeline pipeline, OpenAIClientOption internal virtual CreateVectorStoreOperation CreateCreateVectorStoreOperation(ClientResult result) { - return new CreateVectorStoreOperation(Pipeline, _endpoint, result); + return new CreateVectorStoreOperation(this, _endpoint, result); } internal virtual AddFileToVectorStoreOperation CreateAddFileToVectorStoreOperation(ClientResult result) { - return new AddFileToVectorStoreOperation(Pipeline, _endpoint, result); + return new AddFileToVectorStoreOperation(this, _endpoint, result); } internal virtual CreateBatchFileJobOperation CreateBatchFileJobOperation(ClientResult result) { - return new CreateBatchFileJobOperation(Pipeline, _endpoint, result); + return new CreateBatchFileJobOperation(this, _endpoint, result); } /// Creates a vector store. diff --git a/src/Custom/VectorStores/VectorStoreCollectionOrder.cs b/src/Custom/VectorStores/VectorStoreCollectionOrder.cs index 89aa5eda2..447f2bef2 100644 --- a/src/Custom/VectorStores/VectorStoreCollectionOrder.cs +++ b/src/Custom/VectorStores/VectorStoreCollectionOrder.cs @@ -4,7 +4,7 @@ namespace OpenAI.VectorStores; // CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("ListVectorStoresRequestOrder")] +[CodeGenType("ListVectorStoresRequestOrder")] public readonly partial struct VectorStoreCollectionOrder { // CUSTOM: Renamed. diff --git a/src/Custom/VectorStores/VectorStoreCreationOptions.cs b/src/Custom/VectorStores/VectorStoreCreationOptions.cs index a421d5901..d9a7d141d 100644 --- a/src/Custom/VectorStores/VectorStoreCreationOptions.cs +++ b/src/Custom/VectorStores/VectorStoreCreationOptions.cs @@ -4,7 +4,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("CreateVectorStoreRequest")] +[CodeGenType("CreateVectorStoreRequest")] public partial class VectorStoreCreationOptions { /// Gets or sets the policy that controls when the new vector store will be automatically deleted. diff --git a/src/Custom/VectorStores/VectorStoreDeletionResult.cs b/src/Custom/VectorStores/VectorStoreDeletionResult.cs index 121e14361..422bef712 100644 --- a/src/Custom/VectorStores/VectorStoreDeletionResult.cs +++ b/src/Custom/VectorStores/VectorStoreDeletionResult.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("DeleteVectorStoreResponse")] +[CodeGenType("DeleteVectorStoreResponse")] public partial class VectorStoreDeletionResult { // CUSTOM: Renamed. diff --git a/src/Custom/VectorStores/VectorStoreExpirationAnchor.cs b/src/Custom/VectorStores/VectorStoreExpirationAnchor.cs index 98882c6f0..0eddc416b 100644 --- a/src/Custom/VectorStores/VectorStoreExpirationAnchor.cs +++ b/src/Custom/VectorStores/VectorStoreExpirationAnchor.cs @@ -7,7 +7,7 @@ namespace OpenAI.VectorStores; /// Represents the available timestamps to which the duration in a will apply. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreExpirationAfterAnchor")] +[CodeGenType("VectorStoreExpirationAfterAnchor")] public enum VectorStoreExpirationAnchor { /// diff --git a/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs b/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs index bf8bb7907..2b72c165d 100644 --- a/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs +++ b/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs @@ -8,7 +8,7 @@ namespace OpenAI.VectorStores; /// Represents the the configuration that controls when a vector store will be automatically deleted. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreExpirationAfter")] +[CodeGenType("VectorStoreExpirationAfter")] [CodeGenSuppress(nameof(VectorStoreExpirationPolicy))] [CodeGenSuppress(nameof(VectorStoreExpirationPolicy), typeof(int))] [CodeGenSuppress(nameof(VectorStoreExpirationPolicy), typeof(VectorStoreExpirationAnchor), typeof(int), typeof(IDictionary))] @@ -51,12 +51,12 @@ public VectorStoreExpirationPolicy() /// Initializes a new instance of . /// Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. /// The number of days after the anchor time that the vector store will expire. - /// Keeps track of any properties unknown to the library. + /// Keeps track of any properties unknown to the library. [SetsRequiredMembers] - internal VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days, IDictionary serializedAdditionalRawData) + internal VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days, IDictionary additionalBinaryDataProperties) { Anchor = anchor; Days = days; - SerializedAdditionalRawData = serializedAdditionalRawData ?? new ChangeTrackingDictionary(); + SerializedAdditionalRawData = additionalBinaryDataProperties ?? new ChangeTrackingDictionary(); } } diff --git a/src/Custom/VectorStores/VectorStoreFileAssociation.cs b/src/Custom/VectorStores/VectorStoreFileAssociation.cs index 4ab1114e1..d4a51bb0a 100644 --- a/src/Custom/VectorStores/VectorStoreFileAssociation.cs +++ b/src/Custom/VectorStores/VectorStoreFileAssociation.cs @@ -1,3 +1,6 @@ +using System; +using System.Collections; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace OpenAI.VectorStores; @@ -6,7 +9,7 @@ namespace OpenAI.VectorStores; /// A representation of a file association between an uploaded file and a vector store. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreFileObject")] +[CodeGenType("VectorStoreFileObject")] public partial class VectorStoreFileAssociation { // CUSTOM: Made internal. @@ -27,6 +30,10 @@ public partial class VectorStoreFileAssociation [CodeGenMember("UsageBytes")] public int Size { get; } + // CUSTOM: Changed type. + [CodeGenMember("Attributes")] + public IDictionary Attributes { get; } = new ChangeTrackingDictionary(); + [CodeGenMember("ChunkingStrategy")] public FileChunkingStrategy ChunkingStrategy { get; } } \ No newline at end of file diff --git a/src/Custom/VectorStores/VectorStoreFileAssociationCollectionOrder.cs b/src/Custom/VectorStores/VectorStoreFileAssociationCollectionOrder.cs index a71f40fa3..0c6eb27f4 100644 --- a/src/Custom/VectorStores/VectorStoreFileAssociationCollectionOrder.cs +++ b/src/Custom/VectorStores/VectorStoreFileAssociationCollectionOrder.cs @@ -1,17 +1,40 @@ -using System.Diagnostics.CodeAnalysis; +using System; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace OpenAI.VectorStores; -// CUSTOM: Renamed. [Experimental("OPENAI001")] -[CodeGenModel("ListVectorStoreFilesRequestOrder")] -public readonly partial struct VectorStoreFileAssociationCollectionOrder +public readonly partial struct VectorStoreFileAssociationCollectionOrder : IEquatable { - // CUSTOM: Renamed. - [CodeGenMember("Asc")] - public static VectorStoreFileAssociationCollectionOrder Ascending { get; } = new VectorStoreFileAssociationCollectionOrder(AscValue); + public static VectorStoreFileAssociationCollectionOrder Ascending { get; } = new VectorStoreFileAssociationCollectionOrder("asc"); - // CUSTOM: Renamed. - [CodeGenMember("Desc")] - public static VectorStoreFileAssociationCollectionOrder Descending { get; } = new VectorStoreFileAssociationCollectionOrder(DescValue); + public static VectorStoreFileAssociationCollectionOrder Descending { get; } = new VectorStoreFileAssociationCollectionOrder("desc"); + + private readonly string _value; + private const string AscValue = "asc"; + private const string DescValue = "desc"; + + public VectorStoreFileAssociationCollectionOrder(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static bool operator ==(VectorStoreFileAssociationCollectionOrder left, VectorStoreFileAssociationCollectionOrder right) => left.Equals(right); + + public static bool operator !=(VectorStoreFileAssociationCollectionOrder left, VectorStoreFileAssociationCollectionOrder right) => !left.Equals(right); + + public static implicit operator VectorStoreFileAssociationCollectionOrder(string value) => new VectorStoreFileAssociationCollectionOrder(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileAssociationCollectionOrder other && Equals(other); + + public bool Equals(VectorStoreFileAssociationCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; } diff --git a/src/Custom/VectorStores/VectorStoreFileAssociationError.cs b/src/Custom/VectorStores/VectorStoreFileAssociationError.cs index c46e71fc1..a273bb91a 100644 --- a/src/Custom/VectorStores/VectorStoreFileAssociationError.cs +++ b/src/Custom/VectorStores/VectorStoreFileAssociationError.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreFileObjectLastError")] +[CodeGenType("VectorStoreFileObjectLastError1")] public partial class VectorStoreFileAssociationError { } \ No newline at end of file diff --git a/src/Custom/VectorStores/VectorStoreFileAssociationErrorCode.cs b/src/Custom/VectorStores/VectorStoreFileAssociationErrorCode.cs index 82df53e38..d1a97a431 100644 --- a/src/Custom/VectorStores/VectorStoreFileAssociationErrorCode.cs +++ b/src/Custom/VectorStores/VectorStoreFileAssociationErrorCode.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreFileObjectLastErrorCode")] +[CodeGenType("VectorStoreFileObjectLastErrorCode")] public readonly partial struct VectorStoreFileAssociationErrorCode { } \ No newline at end of file diff --git a/src/Custom/VectorStores/VectorStoreFileAssociationStatus.cs b/src/Custom/VectorStores/VectorStoreFileAssociationStatus.cs index 2056ca2e1..86d040617 100644 --- a/src/Custom/VectorStores/VectorStoreFileAssociationStatus.cs +++ b/src/Custom/VectorStores/VectorStoreFileAssociationStatus.cs @@ -7,7 +7,7 @@ namespace OpenAI.VectorStores; /// Represents the possible states for a vector store file association. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreFileObjectStatus")] +[CodeGenType("VectorStoreFileObjectStatus")] public enum VectorStoreFileAssociationStatus { /// diff --git a/src/Custom/VectorStores/VectorStoreFileCounts.cs b/src/Custom/VectorStores/VectorStoreFileCounts.cs index 058d618b5..da981e471 100644 --- a/src/Custom/VectorStores/VectorStoreFileCounts.cs +++ b/src/Custom/VectorStores/VectorStoreFileCounts.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreObjectFileCounts")] +[CodeGenType("VectorStoreObjectFileCounts")] public partial class VectorStoreFileCounts { } \ No newline at end of file diff --git a/src/Custom/VectorStores/VectorStoreFileStatusFilter.cs b/src/Custom/VectorStores/VectorStoreFileStatusFilter.cs index 93e9b9b76..9f2d5b50e 100644 --- a/src/Custom/VectorStores/VectorStoreFileStatusFilter.cs +++ b/src/Custom/VectorStores/VectorStoreFileStatusFilter.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("ListVectorStoreFilesFilter")] +[CodeGenType("ListVectorStoreFilesFilter")] public readonly partial struct VectorStoreFileStatusFilter { } \ No newline at end of file diff --git a/src/Custom/VectorStores/VectorStoreModificationOptions.cs b/src/Custom/VectorStores/VectorStoreModificationOptions.cs index 193ab8fab..672fb952a 100644 --- a/src/Custom/VectorStores/VectorStoreModificationOptions.cs +++ b/src/Custom/VectorStores/VectorStoreModificationOptions.cs @@ -3,7 +3,7 @@ namespace OpenAI.VectorStores; [Experimental("OPENAI001")] -[CodeGenModel("UpdateVectorStoreRequest")] +[CodeGenType("UpdateVectorStoreRequest")] public partial class VectorStoreModificationOptions { /// Gets or sets the policy that controls when the new vector store will be automatically deleted. diff --git a/src/Custom/VectorStores/VectorStoreStatus.cs b/src/Custom/VectorStores/VectorStoreStatus.cs index 5cd98b5d0..804e04e22 100644 --- a/src/Custom/VectorStores/VectorStoreStatus.cs +++ b/src/Custom/VectorStores/VectorStoreStatus.cs @@ -7,7 +7,7 @@ namespace OpenAI.VectorStores; /// Represents the possible states for a vector store. /// [Experimental("OPENAI001")] -[CodeGenModel("VectorStoreObjectStatus")] +[CodeGenType("VectorStoreObjectStatus")] public enum VectorStoreStatus { /// diff --git a/src/Generated/AssistantClient.RestClient.cs b/src/Generated/AssistantClient.RestClient.cs index aceab6704..fb09295ec 100644 --- a/src/Generated/AssistantClient.RestClient.cs +++ b/src/Generated/AssistantClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class AssistantClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateAssistantRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateAssistantRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -25,13 +25,14 @@ internal PipelineMessage CreateCreateAssistantRequest(BinaryContent content, Req uri.AppendPath("/assistants", false); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateListAssistantsRequest(int? limit, string order, string after, string before, RequestOptions options) + internal virtual PipelineMessage CreateListAssistantsRequest(int? limit, string order, string after, string before, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -58,11 +59,12 @@ internal PipelineMessage CreateListAssistantsRequest(int? limit, string order, s } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateGetAssistantRequest(string assistantId, RequestOptions options) + internal virtual PipelineMessage CreateGetAssistantRequest(string assistantId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -74,11 +76,12 @@ internal PipelineMessage CreateGetAssistantRequest(string assistantId, RequestOp uri.AppendPath(assistantId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateModifyAssistantRequest(string assistantId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateModifyAssistantRequest(string assistantId, BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -90,13 +93,14 @@ internal PipelineMessage CreateModifyAssistantRequest(string assistantId, Binary uri.AppendPath(assistantId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateDeleteAssistantRequest(string assistantId, RequestOptions options) + internal virtual PipelineMessage CreateDeleteAssistantRequest(string assistantId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -108,6 +112,7 @@ internal PipelineMessage CreateDeleteAssistantRequest(string assistantId, Reques uri.AppendPath(assistantId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } diff --git a/src/Generated/AssistantClient.cs b/src/Generated/AssistantClient.cs index 8af7745ec..0f6dee07a 100644 --- a/src/Generated/AssistantClient.cs +++ b/src/Generated/AssistantClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Assistants @@ -11,9 +10,6 @@ namespace OpenAI.Assistants public partial class AssistantClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected AssistantClient() { diff --git a/src/Generated/AudioClient.RestClient.cs b/src/Generated/AudioClient.RestClient.cs index 32414e385..719788acf 100644 --- a/src/Generated/AudioClient.RestClient.cs +++ b/src/Generated/AudioClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class AudioClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateSpeechRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateSpeechRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -31,7 +31,7 @@ internal PipelineMessage CreateCreateSpeechRequest(BinaryContent content, Reques return message; } - internal PipelineMessage CreateCreateTranscriptionRequest(BinaryContent content, string contentType, RequestOptions options) + internal virtual PipelineMessage CreateCreateTranscriptionRequest(BinaryContent content, string contentType, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -48,7 +48,7 @@ internal PipelineMessage CreateCreateTranscriptionRequest(BinaryContent content, return message; } - internal PipelineMessage CreateCreateTranslationRequest(BinaryContent content, string contentType, RequestOptions options) + internal virtual PipelineMessage CreateCreateTranslationRequest(BinaryContent content, string contentType, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/AudioClient.cs b/src/Generated/AudioClient.cs index 1815a1756..a2c56925b 100644 --- a/src/Generated/AudioClient.cs +++ b/src/Generated/AudioClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Audio @@ -11,9 +10,6 @@ namespace OpenAI.Audio public partial class AudioClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected AudioClient() { diff --git a/src/Generated/BatchClient.RestClient.cs b/src/Generated/BatchClient.RestClient.cs index 5e7c89126..18728659b 100644 --- a/src/Generated/BatchClient.RestClient.cs +++ b/src/Generated/BatchClient.RestClient.cs @@ -13,7 +13,7 @@ public partial class BatchClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateListBatchesRequest(string after, int? limit, RequestOptions options) + internal virtual PipelineMessage CreateListBatchesRequest(string after, int? limit, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/BatchClient.cs b/src/Generated/BatchClient.cs index 48df1fec3..79c66e13f 100644 --- a/src/Generated/BatchClient.cs +++ b/src/Generated/BatchClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Batch @@ -11,9 +10,6 @@ namespace OpenAI.Batch public partial class BatchClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected BatchClient() { diff --git a/src/Generated/ChatClient.RestClient.cs b/src/Generated/ChatClient.RestClient.cs index 2b61a84e4..cebe4507a 100644 --- a/src/Generated/ChatClient.RestClient.cs +++ b/src/Generated/ChatClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class ChatClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateChatCompletionRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateChatCompletionRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/ChatClient.cs b/src/Generated/ChatClient.cs index 1812c542a..3285bd598 100644 --- a/src/Generated/ChatClient.cs +++ b/src/Generated/ChatClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Chat @@ -11,9 +10,6 @@ namespace OpenAI.Chat public partial class ChatClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected ChatClient() { diff --git a/src/Generated/EmbeddingClient.RestClient.cs b/src/Generated/EmbeddingClient.RestClient.cs index 5854624b1..ec3641cc6 100644 --- a/src/Generated/EmbeddingClient.RestClient.cs +++ b/src/Generated/EmbeddingClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class EmbeddingClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateEmbeddingRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateEmbeddingRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/EmbeddingClient.cs b/src/Generated/EmbeddingClient.cs index 2e81fb221..4db796369 100644 --- a/src/Generated/EmbeddingClient.cs +++ b/src/Generated/EmbeddingClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Embeddings @@ -11,9 +10,6 @@ namespace OpenAI.Embeddings public partial class EmbeddingClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected EmbeddingClient() { diff --git a/src/Generated/FineTuningClient.RestClient.cs b/src/Generated/FineTuningClient.RestClient.cs index 190bee083..2997b3f6c 100644 --- a/src/Generated/FineTuningClient.RestClient.cs +++ b/src/Generated/FineTuningClient.RestClient.cs @@ -13,7 +13,7 @@ public partial class FineTuningClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateListPaginatedFineTuningJobsRequest(string after, int? limit, RequestOptions options) + internal virtual PipelineMessage CreateListPaginatedFineTuningJobsRequest(string after, int? limit, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -36,7 +36,7 @@ internal PipelineMessage CreateListPaginatedFineTuningJobsRequest(string after, return message; } - internal PipelineMessage CreateCancelFineTuningJobRequest(string fineTuningJobId, RequestOptions options) + internal virtual PipelineMessage CreateCancelFineTuningJobRequest(string fineTuningJobId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -53,7 +53,7 @@ internal PipelineMessage CreateCancelFineTuningJobRequest(string fineTuningJobId return message; } - internal PipelineMessage CreateListFineTuningJobCheckpointsRequest(string fineTuningJobId, string after, int? limit, RequestOptions options) + internal virtual PipelineMessage CreateListFineTuningJobCheckpointsRequest(string fineTuningJobId, string after, int? limit, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -78,7 +78,7 @@ internal PipelineMessage CreateListFineTuningJobCheckpointsRequest(string fineTu return message; } - internal PipelineMessage CreateListFineTuningEventsRequest(string fineTuningJobId, string after, int? limit, RequestOptions options) + internal virtual PipelineMessage CreateListFineTuningEventsRequest(string fineTuningJobId, string after, int? limit, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/FineTuningClient.cs b/src/Generated/FineTuningClient.cs index d7df5cd35..28be3ec06 100644 --- a/src/Generated/FineTuningClient.cs +++ b/src/Generated/FineTuningClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.FineTuning @@ -11,9 +10,6 @@ namespace OpenAI.FineTuning public partial class FineTuningClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected FineTuningClient() { diff --git a/src/Generated/ImageClient.RestClient.cs b/src/Generated/ImageClient.RestClient.cs index 7118e55c4..51efb2d3c 100644 --- a/src/Generated/ImageClient.RestClient.cs +++ b/src/Generated/ImageClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class ImageClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateImageRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateImageRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -31,7 +31,7 @@ internal PipelineMessage CreateCreateImageRequest(BinaryContent content, Request return message; } - internal PipelineMessage CreateCreateImageEditRequest(BinaryContent content, string contentType, RequestOptions options) + internal virtual PipelineMessage CreateCreateImageEditRequest(BinaryContent content, string contentType, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -48,7 +48,7 @@ internal PipelineMessage CreateCreateImageEditRequest(BinaryContent content, str return message; } - internal PipelineMessage CreateCreateImageVariationRequest(BinaryContent content, string contentType, RequestOptions options) + internal virtual PipelineMessage CreateCreateImageVariationRequest(BinaryContent content, string contentType, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/ImageClient.cs b/src/Generated/ImageClient.cs index baaaa6c0e..e5842c934 100644 --- a/src/Generated/ImageClient.cs +++ b/src/Generated/ImageClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Images @@ -11,9 +10,6 @@ namespace OpenAI.Images public partial class ImageClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected ImageClient() { diff --git a/src/Generated/Internal/CodeGenMemberAttribute.cs b/src/Generated/Internal/CodeGenMemberAttribute.cs new file mode 100644 index 000000000..8f249d3fd --- /dev/null +++ b/src/Generated/Internal/CodeGenMemberAttribute.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; + +namespace OpenAI +{ + [AttributeUsage((AttributeTargets.Property | AttributeTargets.Field))] + internal partial class CodeGenMemberAttribute : CodeGenTypeAttribute + { + public CodeGenMemberAttribute(string originalName) : base(originalName) + { + } + } +} diff --git a/src/Generated/Internal/CodeGenSerializationAttribute.cs b/src/Generated/Internal/CodeGenSerializationAttribute.cs new file mode 100644 index 000000000..b46b91845 --- /dev/null +++ b/src/Generated/Internal/CodeGenSerializationAttribute.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; + +namespace OpenAI +{ + [AttributeUsage((AttributeTargets.Class | AttributeTargets.Struct), AllowMultiple = true, Inherited = true)] + internal partial class CodeGenSerializationAttribute : Attribute + { + public CodeGenSerializationAttribute(string propertyName) + { + PropertyName = propertyName; + } + + public CodeGenSerializationAttribute(string propertyName, string propertySerializationName) + { + PropertyName = propertyName; + PropertySerializationName = propertySerializationName; + } + + public string PropertyName { get; } + + public string PropertySerializationName { get; set; } + + public string SerializationValueHook { get; set; } + + public string DeserializationValueHook { get; set; } + } +} diff --git a/src/Generated/Internal/CodeGenSuppressAttribute.cs b/src/Generated/Internal/CodeGenSuppressAttribute.cs new file mode 100644 index 000000000..3f1011b4c --- /dev/null +++ b/src/Generated/Internal/CodeGenSuppressAttribute.cs @@ -0,0 +1,22 @@ +// + +#nullable disable + +using System; + +namespace OpenAI +{ + [AttributeUsage((AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct), AllowMultiple = true)] + internal partial class CodeGenSuppressAttribute : Attribute + { + public CodeGenSuppressAttribute(string member, params Type[] parameters) + { + Member = member; + Parameters = parameters; + } + + public string Member { get; } + + public Type[] Parameters { get; } + } +} diff --git a/src/Generated/Internal/CodeGenTypeAttribute.cs b/src/Generated/Internal/CodeGenTypeAttribute.cs new file mode 100644 index 000000000..cbaa03847 --- /dev/null +++ b/src/Generated/Internal/CodeGenTypeAttribute.cs @@ -0,0 +1,19 @@ +// + +#nullable disable + +using System; + +namespace OpenAI +{ + [AttributeUsage((AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct))] + internal partial class CodeGenTypeAttribute : Attribute + { + public CodeGenTypeAttribute(string originalName) + { + OriginalName = originalName; + } + + public string OriginalName { get; } + } +} diff --git a/src/Generated/Internal/MultiPartFormDataBinaryContent.cs b/src/Generated/Internal/MultiPartFormDataBinaryContent.cs new file mode 100644 index 000000000..945fc05aa --- /dev/null +++ b/src/Generated/Internal/MultiPartFormDataBinaryContent.cs @@ -0,0 +1,195 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.Globalization; +using System.IO; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading; +using System.Threading.Tasks; + +namespace OpenAI +{ + internal partial class MultiPartFormDataBinaryContent : BinaryContent + { + private readonly MultipartFormDataContent _multipartContent; + private static readonly Random _random = new Random(); + private static readonly char[] _boundaryValues = "0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray(); + + public MultiPartFormDataBinaryContent() + { + _multipartContent = new MultipartFormDataContent(CreateBoundary()); + } + + public string ContentType + { + get + { + return _multipartContent.Headers.ContentType.ToString(); + } + } + + internal HttpContent HttpContent => _multipartContent; + + private static string CreateBoundary() + { + Span chars = new char[70]; + byte[] random = new byte[70]; + _random.NextBytes(random); + int mask = 255 >> 2; + int i = 0; + for (; i < 70; i++) + { + chars[i] = _boundaryValues[random[i] & mask]; + } + return chars.ToString(); + } + + public void Add(string content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new StringContent(content), name, filename, contentType); + } + + public void Add(int content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(long content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(float content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(double content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(decimal content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(bool content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content ? "true" : "false"; + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(Stream content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new StreamContent(content), name, filename, contentType); + } + + public void Add(byte[] content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new ByteArrayContent(content), name, filename, contentType); + } + + public void Add(BinaryData content, string name, string filename = default, string contentType = default) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new ByteArrayContent(content.ToArray()), name, filename, contentType); + } + + private void Add(HttpContent content, string name, string filename, string contentType) + { + if (contentType != null) + { + Argument.AssertNotNullOrEmpty(contentType, nameof(contentType)); + AddContentTypeHeader(content, contentType); + } + if (filename != null) + { + Argument.AssertNotNullOrEmpty(filename, nameof(filename)); + _multipartContent.Add(content, name, filename); + } + else + { + _multipartContent.Add(content, name); + } + } + + public static void AddContentTypeHeader(HttpContent content, string contentType) + { + MediaTypeHeaderValue header = new MediaTypeHeaderValue(contentType); + content.Headers.ContentType = header; + } + + public override bool TryComputeLength(out long length) + { + if (_multipartContent.Headers.ContentLength is long contentLength) + { + length = contentLength; + return true; + } + length = 0; + return false; + } + + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { +#if NET6_0_OR_GREATER + _multipartContent.CopyTo(stream, default, cancellationToken); +#else + _multipartContent.CopyToAsync(stream).GetAwaiter().GetResult(); +#endif + } + + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { +#if NET6_0_OR_GREATER + await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); +#else + await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); +#endif + } + + public override void Dispose() + { + _multipartContent.Dispose(); + } + } +} diff --git a/src/Generated/InternalAssistantMessageClient.RestClient.cs b/src/Generated/InternalAssistantMessageClient.RestClient.cs index ee4043f1a..d095f507b 100644 --- a/src/Generated/InternalAssistantMessageClient.RestClient.cs +++ b/src/Generated/InternalAssistantMessageClient.RestClient.cs @@ -14,7 +14,7 @@ internal partial class InternalAssistantMessageClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateMessageRequest(string threadId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateMessageRequest(string threadId, BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -27,13 +27,14 @@ internal PipelineMessage CreateCreateMessageRequest(string threadId, BinaryConte uri.AppendPath("/messages", false); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateListMessagesRequest(string threadId, int? limit, string order, string after, string before, RequestOptions options) + internal virtual PipelineMessage CreateListMessagesRequest(string threadId, int? limit, string order, string after, string before, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -62,11 +63,12 @@ internal PipelineMessage CreateListMessagesRequest(string threadId, int? limit, } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateGetMessageRequest(string threadId, string messageId, RequestOptions options) + internal virtual PipelineMessage CreateGetMessageRequest(string threadId, string messageId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -80,11 +82,12 @@ internal PipelineMessage CreateGetMessageRequest(string threadId, string message uri.AppendPath(messageId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateModifyMessageRequest(string threadId, string messageId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateModifyMessageRequest(string threadId, string messageId, BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -98,13 +101,14 @@ internal PipelineMessage CreateModifyMessageRequest(string threadId, string mess uri.AppendPath(messageId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateDeleteMessageRequest(string threadId, string messageId, RequestOptions options) + internal virtual PipelineMessage CreateDeleteMessageRequest(string threadId, string messageId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -118,6 +122,7 @@ internal PipelineMessage CreateDeleteMessageRequest(string threadId, string mess uri.AppendPath(messageId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } diff --git a/src/Generated/InternalAssistantMessageClient.cs b/src/Generated/InternalAssistantMessageClient.cs index 803c34566..4d1925265 100644 --- a/src/Generated/InternalAssistantMessageClient.cs +++ b/src/Generated/InternalAssistantMessageClient.cs @@ -13,14 +13,17 @@ namespace OpenAI.Assistants internal partial class InternalAssistantMessageClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected InternalAssistantMessageClient() { } + internal InternalAssistantMessageClient(ClientPipeline pipeline, Uri endpoint) + { + _endpoint = endpoint; + Pipeline = pipeline; + } + public ClientPipeline Pipeline { get; } public virtual ClientResult ListMessages(string threadId, int? limit = null, string order = null, string after = null, string before = null, RequestOptions options = null) diff --git a/src/Generated/InternalAssistantRunClient.RestClient.cs b/src/Generated/InternalAssistantRunClient.RestClient.cs index d0e3a535a..ae66bbf15 100644 --- a/src/Generated/InternalAssistantRunClient.RestClient.cs +++ b/src/Generated/InternalAssistantRunClient.RestClient.cs @@ -15,7 +15,7 @@ internal partial class InternalAssistantRunClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateThreadAndRunRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateThreadAndRunRequest(BinaryContent content, string accept, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -25,14 +25,15 @@ internal PipelineMessage CreateCreateThreadAndRunRequest(BinaryContent content, uri.Reset(_endpoint); uri.AppendPath("/threads/runs", false); request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); + request.Headers.Set("Accept", accept); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateCreateRunRequest(string threadId, BinaryContent content, IEnumerable include, RequestOptions options) + internal virtual PipelineMessage CreateCreateRunRequest(string threadId, BinaryContent content, string accept, IEnumerable include, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -48,14 +49,15 @@ internal PipelineMessage CreateCreateRunRequest(string threadId, BinaryContent c uri.AppendQueryDelimited("include[]", include, ",", null, true); } request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); + request.Headers.Set("Accept", accept); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateListRunsRequest(string threadId, int? limit, string order, string after, string before, RequestOptions options) + internal virtual PipelineMessage CreateListRunsRequest(string threadId, int? limit, string order, string after, string before, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -84,11 +86,12 @@ internal PipelineMessage CreateListRunsRequest(string threadId, int? limit, stri } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateGetRunRequest(string threadId, string runId, RequestOptions options) + internal virtual PipelineMessage CreateGetRunRequest(string threadId, string runId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -102,11 +105,12 @@ internal PipelineMessage CreateGetRunRequest(string threadId, string runId, Requ uri.AppendPath(runId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateModifyRunRequest(string threadId, string runId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateModifyRunRequest(string threadId, string runId, BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -120,13 +124,14 @@ internal PipelineMessage CreateModifyRunRequest(string threadId, string runId, B uri.AppendPath(runId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateCancelRunRequest(string threadId, string runId, RequestOptions options) + internal virtual PipelineMessage CreateCancelRunRequest(string threadId, string runId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -141,11 +146,12 @@ internal PipelineMessage CreateCancelRunRequest(string threadId, string runId, R uri.AppendPath("/cancel", false); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateSubmitToolOutputsToRunRequest(string threadId, string runId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateSubmitToolOutputsToRunRequest(string threadId, string runId, BinaryContent content, string accept, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -159,14 +165,15 @@ internal PipelineMessage CreateSubmitToolOutputsToRunRequest(string threadId, st uri.AppendPath(runId, true); uri.AppendPath("/submit_tool_outputs", false); request.Uri = uri.ToUri(); - request.Headers.Set("Accept", "application/json"); + request.Headers.Set("Accept", accept); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateListRunStepsRequest(string threadId, string runId, int? limit, string order, string after, string before, IEnumerable include, RequestOptions options) + internal virtual PipelineMessage CreateListRunStepsRequest(string threadId, string runId, int? limit, string order, string after, string before, IEnumerable include, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -201,11 +208,12 @@ internal PipelineMessage CreateListRunStepsRequest(string threadId, string runId } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateGetRunStepRequest(string threadId, string runId, string stepId, IEnumerable include, RequestOptions options) + internal virtual PipelineMessage CreateGetRunStepRequest(string threadId, string runId, string stepId, IEnumerable include, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -225,6 +233,7 @@ internal PipelineMessage CreateGetRunStepRequest(string threadId, string runId, } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } diff --git a/src/Generated/InternalAssistantRunClient.cs b/src/Generated/InternalAssistantRunClient.cs index 84636685d..d976b6417 100644 --- a/src/Generated/InternalAssistantRunClient.cs +++ b/src/Generated/InternalAssistantRunClient.cs @@ -13,14 +13,17 @@ namespace OpenAI.Assistants internal partial class InternalAssistantRunClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected InternalAssistantRunClient() { } + internal InternalAssistantRunClient(ClientPipeline pipeline, Uri endpoint) + { + _endpoint = endpoint; + Pipeline = pipeline; + } + public ClientPipeline Pipeline { get; } public virtual ClientResult ListRuns(string threadId, int? limit = null, string order = null, string after = null, string before = null, RequestOptions options = null) diff --git a/src/Generated/InternalAssistantThreadClient.RestClient.cs b/src/Generated/InternalAssistantThreadClient.RestClient.cs index 1064c666e..7608eceaa 100644 --- a/src/Generated/InternalAssistantThreadClient.RestClient.cs +++ b/src/Generated/InternalAssistantThreadClient.RestClient.cs @@ -14,7 +14,7 @@ internal partial class InternalAssistantThreadClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateThreadRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateThreadRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -25,13 +25,14 @@ internal PipelineMessage CreateCreateThreadRequest(BinaryContent content, Reques uri.AppendPath("/threads", false); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateGetThreadRequest(string threadId, RequestOptions options) + internal virtual PipelineMessage CreateGetThreadRequest(string threadId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -43,11 +44,12 @@ internal PipelineMessage CreateGetThreadRequest(string threadId, RequestOptions uri.AppendPath(threadId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateModifyThreadRequest(string threadId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateModifyThreadRequest(string threadId, BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -59,13 +61,14 @@ internal PipelineMessage CreateModifyThreadRequest(string threadId, BinaryConten uri.AppendPath(threadId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } - internal PipelineMessage CreateDeleteThreadRequest(string threadId, RequestOptions options) + internal virtual PipelineMessage CreateDeleteThreadRequest(string threadId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -77,6 +80,7 @@ internal PipelineMessage CreateDeleteThreadRequest(string threadId, RequestOptio uri.AppendPath(threadId, true); request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } diff --git a/src/Generated/InternalAssistantThreadClient.cs b/src/Generated/InternalAssistantThreadClient.cs index 6981b71d5..9aa524e63 100644 --- a/src/Generated/InternalAssistantThreadClient.cs +++ b/src/Generated/InternalAssistantThreadClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Assistants @@ -11,14 +10,17 @@ namespace OpenAI.Assistants internal partial class InternalAssistantThreadClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected InternalAssistantThreadClient() { } + internal InternalAssistantThreadClient(ClientPipeline pipeline, Uri endpoint) + { + _endpoint = endpoint; + Pipeline = pipeline; + } + public ClientPipeline Pipeline { get; } } } diff --git a/src/Generated/InternalUploadsClient.RestClient.cs b/src/Generated/InternalUploadsClient.RestClient.cs index e107394fd..37ec553a5 100644 --- a/src/Generated/InternalUploadsClient.RestClient.cs +++ b/src/Generated/InternalUploadsClient.RestClient.cs @@ -14,7 +14,7 @@ internal partial class InternalUploadsClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateUploadRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateUploadRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -31,7 +31,7 @@ internal PipelineMessage CreateCreateUploadRequest(BinaryContent content, Reques return message; } - internal PipelineMessage CreateAddUploadPartRequest(string uploadId, BinaryContent content, string contentType, RequestOptions options) + internal virtual PipelineMessage CreateAddUploadPartRequest(string uploadId, BinaryContent content, string contentType, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -50,7 +50,7 @@ internal PipelineMessage CreateAddUploadPartRequest(string uploadId, BinaryConte return message; } - internal PipelineMessage CreateCompleteUploadRequest(string uploadId, BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCompleteUploadRequest(string uploadId, BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -69,7 +69,7 @@ internal PipelineMessage CreateCompleteUploadRequest(string uploadId, BinaryCont return message; } - internal PipelineMessage CreateCancelUploadRequest(string uploadId, RequestOptions options) + internal virtual PipelineMessage CreateCancelUploadRequest(string uploadId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/InternalUploadsClient.cs b/src/Generated/InternalUploadsClient.cs index 79a2890df..63059cd66 100644 --- a/src/Generated/InternalUploadsClient.cs +++ b/src/Generated/InternalUploadsClient.cs @@ -14,14 +14,17 @@ namespace OpenAI.Files internal partial class InternalUploadsClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected InternalUploadsClient() { } + internal InternalUploadsClient(ClientPipeline pipeline, Uri endpoint) + { + _endpoint = endpoint; + Pipeline = pipeline; + } + public ClientPipeline Pipeline { get; } public virtual ClientResult CreateUpload(BinaryContent content, RequestOptions options = null) diff --git a/src/Generated/LegacyCompletionClient.RestClient.cs b/src/Generated/LegacyCompletionClient.RestClient.cs index 2ef638da5..e4a52c7b5 100644 --- a/src/Generated/LegacyCompletionClient.RestClient.cs +++ b/src/Generated/LegacyCompletionClient.RestClient.cs @@ -14,7 +14,7 @@ internal partial class LegacyCompletionClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateCompletionRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateCompletionRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/LegacyCompletionClient.cs b/src/Generated/LegacyCompletionClient.cs index c2fe216ce..06e2f1fb7 100644 --- a/src/Generated/LegacyCompletionClient.cs +++ b/src/Generated/LegacyCompletionClient.cs @@ -14,9 +14,6 @@ namespace OpenAI.LegacyCompletions internal partial class LegacyCompletionClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected LegacyCompletionClient() { diff --git a/src/Generated/Models/AcceptHeaderValue.cs b/src/Generated/Models/AcceptHeaderValue.cs new file mode 100644 index 000000000..ce043dc26 --- /dev/null +++ b/src/Generated/Models/AcceptHeaderValue.cs @@ -0,0 +1,43 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace OpenAI +{ + internal readonly partial struct AcceptHeaderValue : IEquatable + { + private readonly string _value; + private const string ApplicationJsonValue = "application/json"; + private const string TextEventStreamValue = "text/event-stream"; + + public AcceptHeaderValue(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static AcceptHeaderValue ApplicationJson { get; } = new AcceptHeaderValue(ApplicationJsonValue); + + public static AcceptHeaderValue TextEventStream { get; } = new AcceptHeaderValue(TextEventStreamValue); + + public static bool operator ==(AcceptHeaderValue left, AcceptHeaderValue right) => left.Equals(right); + + public static bool operator !=(AcceptHeaderValue left, AcceptHeaderValue right) => !left.Equals(right); + + public static implicit operator AcceptHeaderValue(string value) => new AcceptHeaderValue(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AcceptHeaderValue other && Equals(other); + + public bool Equals(AcceptHeaderValue other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/Assistant.Serialization.cs b/src/Generated/Models/Assistant.Serialization.cs index 00bb5cd22..f94ab4875 100644 --- a/src/Generated/Models/Assistant.Serialization.cs +++ b/src/Generated/Models/Assistant.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("name") != true) { - if (Name != null) + if (Optional.IsDefined(Name)) { writer.WritePropertyName("name"u8); writer.WriteStringValue(Name); @@ -55,7 +55,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("description") != true) { - if (Description != null) + if (Optional.IsDefined(Description)) { writer.WritePropertyName("description"u8); writer.WriteStringValue(Description); @@ -72,7 +72,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("instructions") != true) { - if (Instructions != null) + if (Optional.IsDefined(Instructions)) { writer.WritePropertyName("instructions"u8); writer.WriteStringValue(Instructions); @@ -82,7 +82,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("instructions"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("tools") != true) + if (_additionalBinaryDataProperties?.ContainsKey("tools") != true) { writer.WritePropertyName("tools"u8); writer.WriteStartArray(); @@ -94,19 +94,12 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) - { - writer.WritePropertyName("tool_resources"u8); - writer.WriteObjectValue(ToolResources, options); - } - else - { - writer.WriteNull("toolResources"u8); - } + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); } - if (true && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (options.Format != "W" && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -129,46 +122,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteObjectValue(ResponseFormat, options); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteObjectValue(ResponseFormat, options); } if (Optional.IsDefined(NucleusSamplingFactor) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (NucleusSamplingFactor != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(NucleusSamplingFactor.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(NucleusSamplingFactor.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -346,10 +318,7 @@ internal static Assistant DeserializeAssistant(JsonElement element, ModelReaderW nucleusSamplingFactor = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new Assistant( id, diff --git a/src/Generated/Models/Assistant.cs b/src/Generated/Models/Assistant.cs index 91f89ae97..f5c71e82e 100644 --- a/src/Generated/Models/Assistant.cs +++ b/src/Generated/Models/Assistant.cs @@ -36,7 +36,7 @@ internal Assistant(string id, DateTimeOffset createdAt, string name, string desc ToolResources = toolResources; Metadata = metadata; Temperature = temperature; - this.Object = @object; + Object = @object; ResponseFormat = responseFormat; NucleusSamplingFactor = nucleusSamplingFactor; _additionalBinaryDataProperties = additionalBinaryDataProperties; diff --git a/src/Generated/Models/AssistantChatMessage.Serialization.cs b/src/Generated/Models/AssistantChatMessage.Serialization.cs index 529601ef0..b8e47bbaa 100644 --- a/src/Generated/Models/AssistantChatMessage.Serialization.cs +++ b/src/Generated/Models/AssistantChatMessage.Serialization.cs @@ -23,15 +23,8 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri base.JsonModelWriteCore(writer, options); if (Optional.IsDefined(Refusal) && _additionalBinaryDataProperties?.ContainsKey("refusal") != true) { - if (Refusal != null) - { - writer.WritePropertyName("refusal"u8); - writer.WriteStringValue(Refusal); - } - else - { - writer.WriteNull("refusal"u8); - } + writer.WritePropertyName("refusal"u8); + writer.WriteStringValue(Refusal); } if (Optional.IsDefined(ParticipantName) && _additionalBinaryDataProperties?.ContainsKey("name") != true) { @@ -50,27 +43,13 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri } if (Optional.IsDefined(FunctionCall) && _additionalBinaryDataProperties?.ContainsKey("function_call") != true) { - if (FunctionCall != null) - { - writer.WritePropertyName("function_call"u8); - writer.WriteObjectValue(FunctionCall, options); - } - else - { - writer.WriteNull("functionCall"u8); - } + writer.WritePropertyName("function_call"u8); + writer.WriteObjectValue(FunctionCall, options); } if (Optional.IsDefined(OutputAudioReference) && _additionalBinaryDataProperties?.ContainsKey("audio") != true) { - if (OutputAudioReference != null) - { - writer.WritePropertyName("audio"u8); - writer.WriteObjectValue(OutputAudioReference, options); - } - else - { - writer.WriteNull("audio"u8); - } + writer.WritePropertyName("audio"u8); + writer.WriteObjectValue(OutputAudioReference, options); } } @@ -94,7 +73,7 @@ internal static AssistantChatMessage DeserializeAssistantChatMessage(JsonElement return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string refusal = default; string participantName = default; @@ -162,14 +141,10 @@ internal static AssistantChatMessage DeserializeAssistantChatMessage(JsonElement outputAudioReference = ChatOutputAudioReference.DeserializeChatOutputAudioReference(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. return new AssistantChatMessage( - content ?? new ChatMessageContent(), + content, role, additionalBinaryDataProperties, refusal, diff --git a/src/Generated/Models/AssistantChatMessage.cs b/src/Generated/Models/AssistantChatMessage.cs index 0fd143349..ef3c5688f 100644 --- a/src/Generated/Models/AssistantChatMessage.cs +++ b/src/Generated/Models/AssistantChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { public partial class AssistantChatMessage : ChatMessage { - internal AssistantChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string refusal, string participantName, IList toolCalls, ChatFunctionCall functionCall, ChatOutputAudioReference outputAudioReference) : base(content, role, additionalBinaryDataProperties) + internal AssistantChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties, string refusal, string participantName, IList toolCalls, ChatFunctionCall functionCall, ChatOutputAudioReference outputAudioReference) : base(content, role, additionalBinaryDataProperties) { Refusal = refusal; ParticipantName = participantName; diff --git a/src/Generated/Models/AssistantCollectionOrder.cs b/src/Generated/Models/AssistantCollectionOrder.cs deleted file mode 100644 index 41d2f8d50..000000000 --- a/src/Generated/Models/AssistantCollectionOrder.cs +++ /dev/null @@ -1,40 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - public readonly partial struct AssistantCollectionOrder : IEquatable - { - private readonly string _value; - private const string AscValue = "asc"; - private const string DescValue = "desc"; - - public AssistantCollectionOrder(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static bool operator ==(AssistantCollectionOrder left, AssistantCollectionOrder right) => left.Equals(right); - - public static bool operator !=(AssistantCollectionOrder left, AssistantCollectionOrder right) => !left.Equals(right); - - public static implicit operator AssistantCollectionOrder(string value) => new AssistantCollectionOrder(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is AssistantCollectionOrder other && Equals(other); - - public bool Equals(AssistantCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/AssistantCreationOptions.Serialization.cs b/src/Generated/Models/AssistantCreationOptions.Serialization.cs index a6c9bb9e7..0af1b78b6 100644 --- a/src/Generated/Models/AssistantCreationOptions.Serialization.cs +++ b/src/Generated/Models/AssistantCreationOptions.Serialization.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Text.Json; using OpenAI; +using OpenAI.Chat; namespace OpenAI.Assistants { @@ -29,39 +30,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Name) && _additionalBinaryDataProperties?.ContainsKey("name") != true) { - if (Name != null) - { - writer.WritePropertyName("name"u8); - writer.WriteStringValue(Name); - } - else - { - writer.WriteNull("name"u8); - } + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); } if (Optional.IsDefined(Description) && _additionalBinaryDataProperties?.ContainsKey("description") != true) { - if (Description != null) - { - writer.WritePropertyName("description"u8); - writer.WriteStringValue(Description); - } - else - { - writer.WriteNull("description"u8); - } + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); } if (Optional.IsDefined(Instructions) && _additionalBinaryDataProperties?.ContainsKey("instructions") != true) { - if (Instructions != null) - { - writer.WritePropertyName("instructions"u8); - writer.WriteStringValue(Instructions); - } - else - { - writer.WriteNull("instructions"u8); - } + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(Instructions); } if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) { @@ -81,15 +61,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (_additionalBinaryDataProperties?.ContainsKey("model") != true) { @@ -108,41 +81,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) - { - writer.WritePropertyName("tool_resources"u8); - writer.WriteObjectValue(ToolResources, options); - } - else - { - writer.WriteNull("toolResources"u8); - } + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteObjectValue(ResponseFormat, options); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteObjectValue(ResponseFormat, options); } if (Optional.IsDefined(NucleusSamplingFactor) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (NucleusSamplingFactor != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(NucleusSamplingFactor.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(NucleusSamplingFactor.Value); + } + if (Optional.IsDefined(ReasoningEffortLevel) && _additionalBinaryDataProperties?.ContainsKey("reasoning_effort") != true) + { + writer.WritePropertyName("reasoning_effort"u8); + writer.WriteStringValue(ReasoningEffortLevel.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -192,6 +149,7 @@ internal static AssistantCreationOptions DeserializeAssistantCreationOptions(Jso ToolResources toolResources = default; AssistantResponseFormat responseFormat = default; float? nucleusSamplingFactor = default; + ChatReasoningEffortLevel? reasoningEffortLevel = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -305,10 +263,17 @@ internal static AssistantCreationOptions DeserializeAssistantCreationOptions(Jso nucleusSamplingFactor = prop.Value.GetSingle(); continue; } - if (true) + if (prop.NameEquals("reasoning_effort"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + reasoningEffortLevel = null; + continue; + } + reasoningEffortLevel = new ChatReasoningEffortLevel(prop.Value.GetString()); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AssistantCreationOptions( name, @@ -321,6 +286,7 @@ internal static AssistantCreationOptions DeserializeAssistantCreationOptions(Jso toolResources, responseFormat, nucleusSamplingFactor, + reasoningEffortLevel, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/AssistantCreationOptions.cs b/src/Generated/Models/AssistantCreationOptions.cs index 0a1f7c5dc..86a5307cf 100644 --- a/src/Generated/Models/AssistantCreationOptions.cs +++ b/src/Generated/Models/AssistantCreationOptions.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using OpenAI.Chat; namespace OpenAI.Assistants { @@ -11,7 +12,7 @@ public partial class AssistantCreationOptions { private protected IDictionary _additionalBinaryDataProperties; - internal AssistantCreationOptions(string name, string description, string instructions, IDictionary metadata, float? temperature, string model, IList tools, ToolResources toolResources, AssistantResponseFormat responseFormat, float? nucleusSamplingFactor, IDictionary additionalBinaryDataProperties) + internal AssistantCreationOptions(string name, string description, string instructions, IDictionary metadata, float? temperature, string model, IList tools, ToolResources toolResources, AssistantResponseFormat responseFormat, float? nucleusSamplingFactor, ChatReasoningEffortLevel? reasoningEffortLevel, IDictionary additionalBinaryDataProperties) { Name = name; Description = description; @@ -23,6 +24,7 @@ internal AssistantCreationOptions(string name, string description, string instru ToolResources = toolResources; ResponseFormat = responseFormat; NucleusSamplingFactor = nucleusSamplingFactor; + ReasoningEffortLevel = reasoningEffortLevel; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/AssistantDeletionResult.Serialization.cs b/src/Generated/Models/AssistantDeletionResult.Serialization.cs index d6203fb79..82226bb17 100644 --- a/src/Generated/Models/AssistantDeletionResult.Serialization.cs +++ b/src/Generated/Models/AssistantDeletionResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static AssistantDeletionResult DeserializeAssistantDeletionResult(JsonE @object = new InternalDeleteAssistantResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AssistantDeletionResult(deleted, assistantId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/AssistantDeletionResult.cs b/src/Generated/Models/AssistantDeletionResult.cs index fbd0d0574..73bc08fa0 100644 --- a/src/Generated/Models/AssistantDeletionResult.cs +++ b/src/Generated/Models/AssistantDeletionResult.cs @@ -21,7 +21,7 @@ internal AssistantDeletionResult(bool deleted, string assistantId, InternalDelet { Deleted = deleted; AssistantId = assistantId; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/AssistantModificationOptions.Serialization.cs b/src/Generated/Models/AssistantModificationOptions.Serialization.cs index 7212963c9..3aaf61c60 100644 --- a/src/Generated/Models/AssistantModificationOptions.Serialization.cs +++ b/src/Generated/Models/AssistantModificationOptions.Serialization.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Text.Json; using OpenAI; +using OpenAI.Chat; namespace OpenAI.Assistants { @@ -29,39 +30,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Name) && _additionalBinaryDataProperties?.ContainsKey("name") != true) { - if (Name != null) - { - writer.WritePropertyName("name"u8); - writer.WriteStringValue(Name); - } - else - { - writer.WriteNull("name"u8); - } + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); } if (Optional.IsDefined(Description) && _additionalBinaryDataProperties?.ContainsKey("description") != true) { - if (Description != null) - { - writer.WritePropertyName("description"u8); - writer.WriteStringValue(Description); - } - else - { - writer.WriteNull("description"u8); - } + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); } if (Optional.IsDefined(Instructions) && _additionalBinaryDataProperties?.ContainsKey("instructions") != true) { - if (Instructions != null) - { - writer.WritePropertyName("instructions"u8); - writer.WriteStringValue(Instructions); - } - else - { - writer.WriteNull("instructions"u8); - } + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(Instructions); } if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) { @@ -81,15 +61,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (Optional.IsDefined(Model) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { @@ -108,41 +81,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) - { - writer.WritePropertyName("tool_resources"u8); - writer.WriteObjectValue(ToolResources, options); - } - else - { - writer.WriteNull("toolResources"u8); - } + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteObjectValue(ResponseFormat, options); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteObjectValue(ResponseFormat, options); } if (Optional.IsDefined(NucleusSamplingFactor) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (NucleusSamplingFactor != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(NucleusSamplingFactor.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(NucleusSamplingFactor.Value); + } + if (Optional.IsDefined(ReasoningEffortLevel) && _additionalBinaryDataProperties?.ContainsKey("reasoning_effort") != true) + { + writer.WritePropertyName("reasoning_effort"u8); + writer.WriteStringValue(ReasoningEffortLevel.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -192,6 +149,7 @@ internal static AssistantModificationOptions DeserializeAssistantModificationOpt ToolResources toolResources = default; AssistantResponseFormat responseFormat = default; float? nucleusSamplingFactor = default; + ChatReasoningEffortLevel? reasoningEffortLevel = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -305,10 +263,17 @@ internal static AssistantModificationOptions DeserializeAssistantModificationOpt nucleusSamplingFactor = prop.Value.GetSingle(); continue; } - if (true) + if (prop.NameEquals("reasoning_effort"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + reasoningEffortLevel = null; + continue; + } + reasoningEffortLevel = new ChatReasoningEffortLevel(prop.Value.GetString()); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AssistantModificationOptions( name, @@ -321,6 +286,7 @@ internal static AssistantModificationOptions DeserializeAssistantModificationOpt toolResources, responseFormat, nucleusSamplingFactor, + reasoningEffortLevel, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/AssistantModificationOptions.cs b/src/Generated/Models/AssistantModificationOptions.cs index c9d4cd4c5..ddbda2bb9 100644 --- a/src/Generated/Models/AssistantModificationOptions.cs +++ b/src/Generated/Models/AssistantModificationOptions.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using OpenAI; +using OpenAI.Chat; namespace OpenAI.Assistants { @@ -18,7 +19,7 @@ public AssistantModificationOptions() DefaultTools = new ChangeTrackingList(); } - internal AssistantModificationOptions(string name, string description, string instructions, IDictionary metadata, float? temperature, string model, IList defaultTools, ToolResources toolResources, AssistantResponseFormat responseFormat, float? nucleusSamplingFactor, IDictionary additionalBinaryDataProperties) + internal AssistantModificationOptions(string name, string description, string instructions, IDictionary metadata, float? temperature, string model, IList defaultTools, ToolResources toolResources, AssistantResponseFormat responseFormat, float? nucleusSamplingFactor, ChatReasoningEffortLevel? reasoningEffortLevel, IDictionary additionalBinaryDataProperties) { Name = name; Description = description; @@ -30,6 +31,7 @@ internal AssistantModificationOptions(string name, string description, string in ToolResources = toolResources; ResponseFormat = responseFormat; NucleusSamplingFactor = nucleusSamplingFactor; + ReasoningEffortLevel = reasoningEffortLevel; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/AssistantResponseFormat.Serialization.cs b/src/Generated/Models/AssistantResponseFormat.Serialization.cs index 8b20f6949..cbad6d8a5 100644 --- a/src/Generated/Models/AssistantResponseFormat.Serialization.cs +++ b/src/Generated/Models/AssistantResponseFormat.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.Assistants { - [PersistableModelProxy(typeof(InternalUnknownAssistantResponseFormat))] - public abstract partial class AssistantResponseFormat : IJsonModel + public partial class AssistantResponseFormat : IJsonModel { internal AssistantResponseFormat() { @@ -29,7 +28,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -58,7 +57,7 @@ protected virtual AssistantResponseFormat JsonModelCreateCore(ref Utf8JsonReader throw new FormatException($"The model {nameof(AssistantResponseFormat)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return AssistantResponseFormat.DeserializeAssistantResponseFormat(document.RootElement, options); + return DeserializeAssistantResponseFormat(document.RootElement, options); } protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) @@ -81,7 +80,7 @@ protected virtual AssistantResponseFormat PersistableModelCreateCore(BinaryData case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return AssistantResponseFormat.DeserializeAssistantResponseFormat(document.RootElement, options); + return DeserializeAssistantResponseFormat(document.RootElement, options); } default: throw new FormatException($"The model {nameof(AssistantResponseFormat)} does not support reading '{options.Format}' format."); @@ -101,7 +100,7 @@ public static explicit operator AssistantResponseFormat(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return AssistantResponseFormat.DeserializeAssistantResponseFormat(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeAssistantResponseFormat(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/AssistantResponseFormat.cs b/src/Generated/Models/AssistantResponseFormat.cs index d10278603..77a152a39 100644 --- a/src/Generated/Models/AssistantResponseFormat.cs +++ b/src/Generated/Models/AssistantResponseFormat.cs @@ -7,7 +7,7 @@ namespace OpenAI.Assistants { - public abstract partial class AssistantResponseFormat + public partial class AssistantResponseFormat { private protected IDictionary _additionalBinaryDataProperties; diff --git a/src/Generated/Models/AssistantThread.Serialization.cs b/src/Generated/Models/AssistantThread.Serialization.cs index d2c44e115..5d7239b66 100644 --- a/src/Generated/Models/AssistantThread.Serialization.cs +++ b/src/Generated/Models/AssistantThread.Serialization.cs @@ -41,9 +41,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("created_at"u8); writer.WriteNumberValue(CreatedAt, "U"); } - if (true && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (options.Format != "W" && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -67,21 +67,21 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) + if (Optional.IsDefined(ToolResources)) { writer.WritePropertyName("tool_resources"u8); writer.WriteObjectValue(ToolResources, options); } else { - writer.WriteNull("toolResources"u8); + writer.WriteNull("tool_resources"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -176,10 +176,7 @@ internal static AssistantThread DeserializeAssistantThread(JsonElement element, toolResources = ToolResources.DeserializeToolResources(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AssistantThread( id, diff --git a/src/Generated/Models/AssistantThread.cs b/src/Generated/Models/AssistantThread.cs index ffdf0bed5..c30482a99 100644 --- a/src/Generated/Models/AssistantThread.cs +++ b/src/Generated/Models/AssistantThread.cs @@ -25,7 +25,7 @@ internal AssistantThread(string id, DateTimeOffset createdAt, IReadOnlyDictionar Id = id; CreatedAt = createdAt; Metadata = metadata; - this.Object = @object; + Object = @object; ToolResources = toolResources; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/AudioTranscription.Serialization.cs b/src/Generated/Models/AudioTranscription.Serialization.cs index 8ed9f26bb..a77693edc 100644 --- a/src/Generated/Models/AudioTranscription.Serialization.cs +++ b/src/Generated/Models/AudioTranscription.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && Optional.IsCollectionDefined(Words) && _additionalBinaryDataProperties?.ContainsKey("words") != true) + if (Optional.IsCollectionDefined(Words) && _additionalBinaryDataProperties?.ContainsKey("words") != true) { writer.WritePropertyName("words"u8); writer.WriteStartArray(); @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && Optional.IsCollectionDefined(Segments) && _additionalBinaryDataProperties?.ContainsKey("segments") != true) + if (Optional.IsCollectionDefined(Segments) && _additionalBinaryDataProperties?.ContainsKey("segments") != true) { writer.WritePropertyName("segments"u8); writer.WriteStartArray(); @@ -71,7 +71,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("duration"u8); writer.WriteNumberValue(Convert.ToDouble(Duration.Value.ToString("s\\.FFF"))); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -168,10 +168,7 @@ internal static AudioTranscription DeserializeAudioTranscription(JsonElement ele duration = TimeSpan.FromSeconds(prop.Value.GetDouble()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AudioTranscription( language, diff --git a/src/Generated/Models/AudioTranscriptionOptions.Serialization.cs b/src/Generated/Models/AudioTranscriptionOptions.Serialization.cs index 6834f5fda..d86d686df 100644 --- a/src/Generated/Models/AudioTranscriptionOptions.Serialization.cs +++ b/src/Generated/Models/AudioTranscriptionOptions.Serialization.cs @@ -79,7 +79,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -188,10 +188,7 @@ internal static AudioTranscriptionOptions DeserializeAudioTranscriptionOptions(J internalTimestampGranularities = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AudioTranscriptionOptions( language, diff --git a/src/Generated/Models/AudioTranslation.Serialization.cs b/src/Generated/Models/AudioTranslation.Serialization.cs index 425466132..109b0e848 100644 --- a/src/Generated/Models/AudioTranslation.Serialization.cs +++ b/src/Generated/Models/AudioTranslation.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && Optional.IsCollectionDefined(Segments) && _additionalBinaryDataProperties?.ContainsKey("segments") != true) + if (Optional.IsCollectionDefined(Segments) && _additionalBinaryDataProperties?.ContainsKey("segments") != true) { writer.WritePropertyName("segments"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("duration"u8); writer.WriteNumberValue(Convert.ToDouble(Duration.Value.ToString("s\\.FFF"))); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -143,10 +143,7 @@ internal static AudioTranslation DeserializeAudioTranslation(JsonElement element duration = TimeSpan.FromSeconds(prop.Value.GetDouble()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AudioTranslation( language, diff --git a/src/Generated/Models/AudioTranslationOptions.Serialization.cs b/src/Generated/Models/AudioTranslationOptions.Serialization.cs index d127fe2aa..40112fc66 100644 --- a/src/Generated/Models/AudioTranslationOptions.Serialization.cs +++ b/src/Generated/Models/AudioTranslationOptions.Serialization.cs @@ -52,7 +52,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("model"u8); writer.WriteStringValue(Model.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -133,10 +133,7 @@ internal static AudioTranslationOptions DeserializeAudioTranslationOptions(JsonE model = new InternalCreateTranslationRequestModel(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new AudioTranslationOptions( prompt, diff --git a/src/Generated/Models/ChatAudioOptions.Serialization.cs b/src/Generated/Models/ChatAudioOptions.Serialization.cs index 1b6186096..cfe940a89 100644 --- a/src/Generated/Models/ChatAudioOptions.Serialization.cs +++ b/src/Generated/Models/ChatAudioOptions.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("format"u8); writer.WriteStringValue(OutputAudioFormat.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static ChatAudioOptions DeserializeChatAudioOptions(JsonElement element outputAudioFormat = new ChatOutputAudioFormat(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatAudioOptions(outputAudioVoice, outputAudioFormat, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatCompletion.Serialization.cs b/src/Generated/Models/ChatCompletion.Serialization.cs index 4d1bde5ac..d2b54f345 100644 --- a/src/Generated/Models/ChatCompletion.Serialization.cs +++ b/src/Generated/Models/ChatCompletion.Serialization.cs @@ -54,19 +54,12 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (Optional.IsDefined(ServiceTier) && _additionalBinaryDataProperties?.ContainsKey("service_tier") != true) { - if (ServiceTier != null) - { - writer.WritePropertyName("service_tier"u8); - writer.WriteStringValue(ServiceTier.Value.ToString()); - } - else - { - writer.WriteNull("serviceTier"u8); - } + writer.WritePropertyName("service_tier"u8); + writer.WriteStringValue(ServiceTier.Value.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("choices") != true) { @@ -83,7 +76,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("created"u8); writer.WriteNumberValue(CreatedAt, "U"); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -188,10 +181,7 @@ internal static ChatCompletion DeserializeChatCompletion(JsonElement element, Mo createdAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatCompletion( id, diff --git a/src/Generated/Models/ChatCompletion.cs b/src/Generated/Models/ChatCompletion.cs index c81c17e4c..90ecd562a 100644 --- a/src/Generated/Models/ChatCompletion.cs +++ b/src/Generated/Models/ChatCompletion.cs @@ -26,7 +26,7 @@ internal ChatCompletion(string id, string model, string systemFingerprint, ChatT Model = model; SystemFingerprint = systemFingerprint; Usage = usage; - this.Object = @object; + Object = @object; ServiceTier = serviceTier; Choices = choices; CreatedAt = createdAt; diff --git a/src/Generated/Models/ChatCompletionOptions.Serialization.cs b/src/Generated/Models/ChatCompletionOptions.Serialization.cs index 226bcf1c0..899fc289c 100644 --- a/src/Generated/Models/ChatCompletionOptions.Serialization.cs +++ b/src/Generated/Models/ChatCompletionOptions.Serialization.cs @@ -27,59 +27,36 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(ChatCompletionOptions)} does not support writing '{format}' format."); } + if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + if (Optional.IsDefined(TopP) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } if (Optional.IsDefined(FrequencyPenalty) && _additionalBinaryDataProperties?.ContainsKey("frequency_penalty") != true) { - if (FrequencyPenalty != null) - { - writer.WritePropertyName("frequency_penalty"u8); - writer.WriteNumberValue(FrequencyPenalty.Value); - } - else - { - writer.WriteNull("frequencyPenalty"u8); - } + writer.WritePropertyName("frequency_penalty"u8); + writer.WriteNumberValue(FrequencyPenalty.Value); } if (Optional.IsDefined(PresencePenalty) && _additionalBinaryDataProperties?.ContainsKey("presence_penalty") != true) { - if (PresencePenalty != null) - { - writer.WritePropertyName("presence_penalty"u8); - writer.WriteNumberValue(PresencePenalty.Value); - } - else - { - writer.WriteNull("presencePenalty"u8); - } + writer.WritePropertyName("presence_penalty"u8); + writer.WriteNumberValue(PresencePenalty.Value); + } + if (Optional.IsDefined(WebSearchOptions) && _additionalBinaryDataProperties?.ContainsKey("web_search_options") != true) + { + writer.WritePropertyName("web_search_options"u8); + writer.WriteObjectValue(WebSearchOptions, options); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { writer.WritePropertyName("response_format"u8); writer.WriteObjectValue(ResponseFormat, options); } - if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) - { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } - } - if (Optional.IsDefined(TopP) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) - { - if (TopP != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(TopP.Value); - } - else - { - writer.WriteNull("topP"u8); - } - } if (Optional.IsCollectionDefined(Tools) && _additionalBinaryDataProperties?.ContainsKey("tools") != true) { writer.WritePropertyName("tools"u8); @@ -90,13 +67,11 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - // CUSTOM: Check collection is defined so Messages can behave like an optional. if (Optional.IsCollectionDefined(Messages) && _additionalBinaryDataProperties?.ContainsKey("messages") != true) { writer.WritePropertyName("messages"u8); - this.SerializeMessagesValue(writer, options); + SerializeMessagesValue(writer, options); } - // CUSTOM: Add a null check to allow Model to behave like an optional if (Optional.IsDefined(Model) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { writer.WritePropertyName("model"u8); @@ -104,97 +79,48 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(N) && _additionalBinaryDataProperties?.ContainsKey("n") != true) { - if (N != null) - { - writer.WritePropertyName("n"u8); - writer.WriteNumberValue(N.Value); - } - else - { - writer.WriteNull("n"u8); - } + writer.WritePropertyName("n"u8); + writer.WriteNumberValue(N.Value); } if (Optional.IsDefined(Stream) && _additionalBinaryDataProperties?.ContainsKey("stream") != true) { - if (Stream != null) - { - writer.WritePropertyName("stream"u8); - writer.WriteBooleanValue(Stream.Value); - } - else - { - writer.WriteNull("stream"u8); - } + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); } if (Optional.IsDefined(StreamOptions) && _additionalBinaryDataProperties?.ContainsKey("stream_options") != true) { - if (StreamOptions != null) - { - writer.WritePropertyName("stream_options"u8); - writer.WriteObjectValue(StreamOptions, options); - } - else - { - writer.WriteNull("streamOptions"u8); - } + writer.WritePropertyName("stream_options"u8); + writer.WriteObjectValue(StreamOptions, options); } if (Optional.IsDefined(IncludeLogProbabilities) && _additionalBinaryDataProperties?.ContainsKey("logprobs") != true) { - if (IncludeLogProbabilities != null) - { - writer.WritePropertyName("logprobs"u8); - writer.WriteBooleanValue(IncludeLogProbabilities.Value); - } - else - { - writer.WriteNull("logprobs"u8); - } + writer.WritePropertyName("logprobs"u8); + writer.WriteBooleanValue(IncludeLogProbabilities.Value); } if (Optional.IsDefined(TopLogProbabilityCount) && _additionalBinaryDataProperties?.ContainsKey("top_logprobs") != true) { - if (TopLogProbabilityCount != null) - { - writer.WritePropertyName("top_logprobs"u8); - writer.WriteNumberValue(TopLogProbabilityCount.Value); - } - else - { - writer.WriteNull("topLogprobs"u8); - } + writer.WritePropertyName("top_logprobs"u8); + writer.WriteNumberValue(TopLogProbabilityCount.Value); } if (Optional.IsCollectionDefined(StopSequences) && _additionalBinaryDataProperties?.ContainsKey("stop") != true) { - if (StopSequences != null) - { - writer.WritePropertyName("stop"u8); - this.SerializeStopSequencesValue(writer, options); - } - else - { - writer.WriteNull("stop"u8); - } + writer.WritePropertyName("stop"u8); + SerializeStopSequencesValue(writer, options); } if (Optional.IsCollectionDefined(LogitBiases) && _additionalBinaryDataProperties?.ContainsKey("logit_bias") != true) { - if (LogitBiases != null) - { - writer.WritePropertyName("logit_bias"u8); - this.SerializeLogitBiasesValue(writer, options); - } - else - { - writer.WriteNull("logitBias"u8); - } + writer.WritePropertyName("logit_bias"u8); + SerializeLogitBiasesValue(writer, options); } if (Optional.IsDefined(ToolChoice) && _additionalBinaryDataProperties?.ContainsKey("tool_choice") != true) { writer.WritePropertyName("tool_choice"u8); - writer.WriteObjectValue(ToolChoice, options); + writer.WriteObjectValue(ToolChoice, options); } if (Optional.IsDefined(FunctionChoice) && _additionalBinaryDataProperties?.ContainsKey("function_call") != true) { writer.WritePropertyName("function_call"u8); - writer.WriteObjectValue(FunctionChoice, options); + writer.WriteObjectValue(FunctionChoice, options); } if (Optional.IsDefined(AllowParallelToolCalls) && _additionalBinaryDataProperties?.ContainsKey("parallel_tool_calls") != true) { @@ -208,39 +134,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Seed) && _additionalBinaryDataProperties?.ContainsKey("seed") != true) { - if (Seed != null) - { - writer.WritePropertyName("seed"u8); - writer.WriteNumberValue(Seed.Value); - } - else - { - writer.WriteNull("seed"u8); - } + writer.WritePropertyName("seed"u8); + writer.WriteNumberValue(Seed.Value); } if (Optional.IsDefined(_deprecatedMaxTokens) && _additionalBinaryDataProperties?.ContainsKey("max_tokens") != true) { - if (_deprecatedMaxTokens != null) - { - writer.WritePropertyName("max_tokens"u8); - writer.WriteNumberValue(_deprecatedMaxTokens.Value); - } - else - { - writer.WriteNull("maxTokens"u8); - } + writer.WritePropertyName("max_tokens"u8); + writer.WriteNumberValue(_deprecatedMaxTokens.Value); } if (Optional.IsDefined(MaxOutputTokenCount) && _additionalBinaryDataProperties?.ContainsKey("max_completion_tokens") != true) { - if (MaxOutputTokenCount != null) - { - writer.WritePropertyName("max_completion_tokens"u8); - writer.WriteNumberValue(MaxOutputTokenCount.Value); - } - else - { - writer.WriteNull("maxCompletionTokens"u8); - } + writer.WritePropertyName("max_completion_tokens"u8); + writer.WriteNumberValue(MaxOutputTokenCount.Value); } if (Optional.IsCollectionDefined(Functions) && _additionalBinaryDataProperties?.ContainsKey("functions") != true) { @@ -270,15 +175,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(StoredOutputEnabled) && _additionalBinaryDataProperties?.ContainsKey("store") != true) { - if (StoredOutputEnabled != null) - { - writer.WritePropertyName("store"u8); - writer.WriteBooleanValue(StoredOutputEnabled.Value); - } - else - { - writer.WriteNull("store"u8); - } + writer.WritePropertyName("store"u8); + writer.WriteBooleanValue(StoredOutputEnabled.Value); } if (Optional.IsDefined(ReasoningEffortLevel) && _additionalBinaryDataProperties?.ContainsKey("reasoning_effort") != true) { @@ -287,58 +185,30 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsCollectionDefined(InternalModalities) && _additionalBinaryDataProperties?.ContainsKey("modalities") != true) { - if (InternalModalities != null) - { - writer.WritePropertyName("modalities"u8); - writer.WriteStartArray(); - foreach (InternalCreateChatCompletionRequestModality item in InternalModalities) - { - writer.WriteStringValue(item.ToString()); - } - writer.WriteEndArray(); - } - else + writer.WritePropertyName("modalities"u8); + writer.WriteStartArray(); + foreach (InternalCreateChatCompletionRequestModality item in InternalModalities) { - writer.WriteNull("modalities"u8); + writer.WriteStringValue(item.ToString()); } + writer.WriteEndArray(); } if (Optional.IsDefined(AudioOptions) && _additionalBinaryDataProperties?.ContainsKey("audio") != true) { - if (AudioOptions != null) - { - writer.WritePropertyName("audio"u8); - writer.WriteObjectValue(AudioOptions, options); - } - else - { - writer.WriteNull("audio"u8); - } + writer.WritePropertyName("audio"u8); + writer.WriteObjectValue(AudioOptions, options); } if (Optional.IsDefined(OutputPrediction) && _additionalBinaryDataProperties?.ContainsKey("prediction") != true) { - if (OutputPrediction != null) - { - writer.WritePropertyName("prediction"u8); - writer.WriteObjectValue(OutputPrediction, options); - } - else - { - writer.WriteNull("prediction"u8); - } + writer.WritePropertyName("prediction"u8); + writer.WriteObjectValue(OutputPrediction, options); } if (Optional.IsDefined(_serviceTier) && _additionalBinaryDataProperties?.ContainsKey("service_tier") != true) { - if (_serviceTier != null) - { - writer.WritePropertyName("service_tier"u8); - writer.WriteStringValue(_serviceTier.Value.ToString()); - } - else - { - writer.WriteNull("serviceTier"u8); - } + writer.WritePropertyName("service_tier"u8); + writer.WriteStringValue(_serviceTier.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -378,11 +248,12 @@ internal static ChatCompletionOptions DeserializeChatCompletionOptions(JsonEleme { return null; } + float? temperature = default; + float? topP = default; float? frequencyPenalty = default; float? presencePenalty = default; + ChatWebSearchOptions webSearchOptions = default; ChatResponseFormat responseFormat = default; - float? temperature = default; - float? topP = default; IList tools = default; IList messages = default; InternalCreateChatCompletionRequestModel? model = default; @@ -411,53 +282,62 @@ internal static ChatCompletionOptions DeserializeChatCompletionOptions(JsonEleme IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { - if (prop.NameEquals("frequency_penalty"u8)) + if (prop.NameEquals("temperature"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { - frequencyPenalty = null; + temperature = null; continue; } - frequencyPenalty = prop.Value.GetSingle(); + temperature = prop.Value.GetSingle(); continue; } - if (prop.NameEquals("presence_penalty"u8)) + if (prop.NameEquals("top_p"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { - presencePenalty = null; + topP = null; continue; } - presencePenalty = prop.Value.GetSingle(); + topP = prop.Value.GetSingle(); continue; } - if (prop.NameEquals("response_format"u8)) + if (prop.NameEquals("frequency_penalty"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { + frequencyPenalty = null; continue; } - responseFormat = ChatResponseFormat.DeserializeChatResponseFormat(prop.Value, options); + frequencyPenalty = prop.Value.GetSingle(); continue; } - if (prop.NameEquals("temperature"u8)) + if (prop.NameEquals("presence_penalty"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { - temperature = null; + presencePenalty = null; continue; } - temperature = prop.Value.GetSingle(); + presencePenalty = prop.Value.GetSingle(); continue; } - if (prop.NameEquals("top_p"u8)) + if (prop.NameEquals("web_search_options"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { - topP = null; continue; } - topP = prop.Value.GetSingle(); + webSearchOptions = ChatWebSearchOptions.DeserializeChatWebSearchOptions(prop.Value, options); + continue; + } + if (prop.NameEquals("response_format"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + responseFormat = ChatResponseFormat.DeserializeChatResponseFormat(prop.Value, options); continue; } if (prop.NameEquals("tools"u8)) @@ -660,6 +540,7 @@ internal static ChatCompletionOptions DeserializeChatCompletionOptions(JsonEleme { if (prop.Value.ValueKind == JsonValueKind.Null) { + reasoningEffortLevel = null; continue; } reasoningEffortLevel = new ChatReasoningEffortLevel(prop.Value.GetString()); @@ -709,20 +590,17 @@ internal static ChatCompletionOptions DeserializeChatCompletionOptions(JsonEleme serviceTier = new InternalCreateChatCompletionRequestServiceTier(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Ensure messages collection is initialized. return new ChatCompletionOptions( + temperature, + topP, frequencyPenalty, presencePenalty, + webSearchOptions, responseFormat, - temperature, - topP, tools ?? new ChangeTrackingList(), - messages ?? new ChangeTrackingList(), + messages, model, n, stream, diff --git a/src/Generated/Models/ChatCompletionOptions.cs b/src/Generated/Models/ChatCompletionOptions.cs index 82f0a9006..9afb64d37 100644 --- a/src/Generated/Models/ChatCompletionOptions.cs +++ b/src/Generated/Models/ChatCompletionOptions.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using OpenAI; namespace OpenAI.Chat { @@ -11,15 +12,17 @@ public partial class ChatCompletionOptions { private protected IDictionary _additionalBinaryDataProperties; - internal ChatCompletionOptions(float? frequencyPenalty, float? presencePenalty, ChatResponseFormat responseFormat, float? temperature, float? topP, IList tools, IList messages, InternalCreateChatCompletionRequestModel? model, int? n, bool? stream, InternalChatCompletionStreamOptions streamOptions, bool? includeLogProbabilities, int? topLogProbabilityCount, IList stopSequences, IDictionary logitBiases, ChatToolChoice toolChoice, ChatFunctionChoice functionChoice, bool? allowParallelToolCalls, string endUserId, long? seed, int? deprecatedMaxTokens, int? maxOutputTokenCount, IList functions, IDictionary metadata, bool? storedOutputEnabled, ChatReasoningEffortLevel? reasoningEffortLevel, IList internalModalities, ChatAudioOptions audioOptions, ChatOutputPrediction outputPrediction, InternalCreateChatCompletionRequestServiceTier? serviceTier, IDictionary additionalBinaryDataProperties) + internal ChatCompletionOptions(float? temperature, float? topP, float? frequencyPenalty, float? presencePenalty, ChatWebSearchOptions webSearchOptions, ChatResponseFormat responseFormat, IList tools, IList messages, InternalCreateChatCompletionRequestModel? model, int? n, bool? stream, InternalChatCompletionStreamOptions streamOptions, bool? includeLogProbabilities, int? topLogProbabilityCount, IList stopSequences, IDictionary logitBiases, ChatToolChoice toolChoice, ChatFunctionChoice functionChoice, bool? allowParallelToolCalls, string endUserId, long? seed, int? deprecatedMaxTokens, int? maxOutputTokenCount, IList functions, IDictionary metadata, bool? storedOutputEnabled, ChatReasoningEffortLevel? reasoningEffortLevel, IList internalModalities, ChatAudioOptions audioOptions, ChatOutputPrediction outputPrediction, InternalCreateChatCompletionRequestServiceTier? serviceTier, IDictionary additionalBinaryDataProperties) { + Temperature = temperature; + TopP = topP; FrequencyPenalty = frequencyPenalty; PresencePenalty = presencePenalty; + WebSearchOptions = webSearchOptions; ResponseFormat = responseFormat; - Temperature = temperature; - TopP = topP; Tools = tools; - Messages = messages; + // Plugin customization: ensure initialization of collection + Messages = messages ?? new ChangeTrackingList(); Model = model; N = n; Stream = stream; @@ -46,15 +49,17 @@ internal ChatCompletionOptions(float? frequencyPenalty, float? presencePenalty, _additionalBinaryDataProperties = additionalBinaryDataProperties; } + public float? Temperature { get; set; } + + public float? TopP { get; set; } + public float? FrequencyPenalty { get; set; } public float? PresencePenalty { get; set; } - public ChatResponseFormat ResponseFormat { get; set; } - - public float? Temperature { get; set; } + public ChatWebSearchOptions WebSearchOptions { get; set; } - public float? TopP { get; set; } + public ChatResponseFormat ResponseFormat { get; set; } public IList Tools { get; } diff --git a/src/Generated/Models/ChatFinishReason.Serialization.cs b/src/Generated/Models/ChatFinishReason.Serialization.cs index 63be95cef..4f88b5040 100644 --- a/src/Generated/Models/ChatFinishReason.Serialization.cs +++ b/src/Generated/Models/ChatFinishReason.Serialization.cs @@ -8,37 +8,37 @@ namespace OpenAI.Chat { internal static partial class ChatFinishReasonExtensions { - public static string ToSerialString(this Chat.ChatFinishReason value) => value switch + public static string ToSerialString(this ChatFinishReason value) => value switch { - Chat.ChatFinishReason.Stop => "stop", - Chat.ChatFinishReason.Length => "length", - Chat.ChatFinishReason.ToolCalls => "tool_calls", - Chat.ChatFinishReason.ContentFilter => "content_filter", - Chat.ChatFinishReason.FunctionCall => "function_call", + ChatFinishReason.Stop => "stop", + ChatFinishReason.Length => "length", + ChatFinishReason.ToolCalls => "tool_calls", + ChatFinishReason.ContentFilter => "content_filter", + ChatFinishReason.FunctionCall => "function_call", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatFinishReason value.") }; - public static Chat.ChatFinishReason ToChatFinishReason(this string value) + public static ChatFinishReason ToChatFinishReason(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "stop")) { - return Chat.ChatFinishReason.Stop; + return ChatFinishReason.Stop; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "length")) { - return Chat.ChatFinishReason.Length; + return ChatFinishReason.Length; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "tool_calls")) { - return Chat.ChatFinishReason.ToolCalls; + return ChatFinishReason.ToolCalls; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "content_filter")) { - return Chat.ChatFinishReason.ContentFilter; + return ChatFinishReason.ContentFilter; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "function_call")) { - return Chat.ChatFinishReason.FunctionCall; + return ChatFinishReason.FunctionCall; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatFinishReason value."); } diff --git a/src/Generated/Models/ChatFunction.Serialization.cs b/src/Generated/Models/ChatFunction.Serialization.cs index e3b1e78f5..0e0d35158 100644 --- a/src/Generated/Models/ChatFunction.Serialization.cs +++ b/src/Generated/Models/ChatFunction.Serialization.cs @@ -53,7 +53,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static ChatFunction DeserializeChatFunction(JsonElement element, ModelR functionParameters = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatFunction(functionName, functionDescription, functionParameters, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatFunctionCall.Serialization.cs b/src/Generated/Models/ChatFunctionCall.Serialization.cs index e5f6142b7..f10d4a17a 100644 --- a/src/Generated/Models/ChatFunctionCall.Serialization.cs +++ b/src/Generated/Models/ChatFunctionCall.Serialization.cs @@ -39,9 +39,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("arguments") != true) { writer.WritePropertyName("arguments"u8); - this.SerializeFunctionArgumentsValue(writer, options); + SerializeFunctionArgumentsValue(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static ChatFunctionCall DeserializeChatFunctionCall(JsonElement element DeserializeFunctionArgumentsValue(prop, ref functionArguments); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatFunctionCall(functionName, functionArguments, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatFunctionChoice.Serialization.cs b/src/Generated/Models/ChatFunctionChoice.Serialization.cs index 4ec64d73c..5ddfa7c67 100644 --- a/src/Generated/Models/ChatFunctionChoice.Serialization.cs +++ b/src/Generated/Models/ChatFunctionChoice.Serialization.cs @@ -19,7 +19,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(ChatFunctionChoice)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -50,7 +50,7 @@ protected virtual ChatFunctionChoice JsonModelCreateCore(ref Utf8JsonReader read throw new FormatException($"The model {nameof(ChatFunctionChoice)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ChatFunctionChoice.DeserializeChatFunctionChoice(document.RootElement, options); + return DeserializeChatFunctionChoice(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -77,7 +77,7 @@ protected virtual ChatFunctionChoice PersistableModelCreateCore(BinaryData data, case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ChatFunctionChoice.DeserializeChatFunctionChoice(document.RootElement, options); + return DeserializeChatFunctionChoice(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ChatFunctionChoice)} does not support reading '{options.Format}' format."); @@ -99,7 +99,7 @@ public static explicit operator ChatFunctionChoice(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ChatFunctionChoice.DeserializeChatFunctionChoice(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeChatFunctionChoice(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ChatInputTokenUsageDetails.Serialization.cs b/src/Generated/Models/ChatInputTokenUsageDetails.Serialization.cs index 8b5fb999d..ec496985c 100644 --- a/src/Generated/Models/ChatInputTokenUsageDetails.Serialization.cs +++ b/src/Generated/Models/ChatInputTokenUsageDetails.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("cached_tokens"u8); writer.WriteNumberValue(CachedTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static ChatInputTokenUsageDetails DeserializeChatInputTokenUsageDetails cachedTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatInputTokenUsageDetails(audioTokenCount, cachedTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatMessage.Serialization.cs b/src/Generated/Models/ChatMessage.Serialization.cs index 3b134ad8b..cd8a6a0a1 100644 --- a/src/Generated/Models/ChatMessage.Serialization.cs +++ b/src/Generated/Models/ChatMessage.Serialization.cs @@ -10,7 +10,6 @@ namespace OpenAI.Chat { - [PersistableModelProxy(typeof(InternalUnknownChatMessage))] public partial class ChatMessage : IJsonModel { protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) @@ -20,18 +19,17 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(ChatMessage)} does not support writing '{format}' format."); } - // CUSTOM: Check inner collection is defined. - if (true && Optional.IsDefined(Content) && Content.IsInnerCollectionDefined() && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (Optional.IsDefined(Content) && Content.IsInnerCollectionDefined() && _additionalBinaryDataProperties?.ContainsKey("content") != true) { writer.WritePropertyName("content"u8); - this.SerializeContentValue(writer, options); + SerializeContentValue(writer, options); } if (_additionalBinaryDataProperties?.ContainsKey("role") != true) { writer.WritePropertyName("role"u8); writer.WriteStringValue(Role.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ChatMessage.cs b/src/Generated/Models/ChatMessage.cs index 89391cdf9..378e59d71 100644 --- a/src/Generated/Models/ChatMessage.cs +++ b/src/Generated/Models/ChatMessage.cs @@ -11,9 +11,10 @@ public partial class ChatMessage { private protected IDictionary _additionalBinaryDataProperties; - internal ChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties) + internal ChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties) { - Content = content; + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); Role = role; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/ChatMessageAnnotation.Serialization.cs b/src/Generated/Models/ChatMessageAnnotation.Serialization.cs new file mode 100644 index 000000000..46081e30a --- /dev/null +++ b/src/Generated/Models/ChatMessageAnnotation.Serialization.cs @@ -0,0 +1,153 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Chat +{ + public partial class ChatMessageAnnotation : IJsonModel + { + internal ChatMessageAnnotation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatMessageAnnotation)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("url_citation") != true) + { + writer.WritePropertyName("url_citation"u8); + writer.WriteObjectValue(UrlCitation, options); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ChatMessageAnnotation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ChatMessageAnnotation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatMessageAnnotation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeChatMessageAnnotation(document.RootElement, options); + } + + internal static ChatMessageAnnotation DeserializeChatMessageAnnotation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalChatCompletionResponseMessageAnnotationUrlCitation urlCitation = default; + InternalChatCompletionResponseMessageAnnotationType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("url_citation"u8)) + { + urlCitation = InternalChatCompletionResponseMessageAnnotationUrlCitation.DeserializeInternalChatCompletionResponseMessageAnnotationUrlCitation(prop.Value, options); + continue; + } + if (prop.NameEquals("type"u8)) + { + @type = new InternalChatCompletionResponseMessageAnnotationType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ChatMessageAnnotation(urlCitation, @type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ChatMessageAnnotation)} does not support writing '{options.Format}' format."); + } + } + + ChatMessageAnnotation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ChatMessageAnnotation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeChatMessageAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ChatMessageAnnotation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ChatMessageAnnotation chatMessageAnnotation) + { + if (chatMessageAnnotation == null) + { + return null; + } + return BinaryContent.Create(chatMessageAnnotation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ChatMessageAnnotation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeChatMessageAnnotation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ChatMessageAnnotation.cs b/src/Generated/Models/ChatMessageAnnotation.cs new file mode 100644 index 000000000..f5283347f --- /dev/null +++ b/src/Generated/Models/ChatMessageAnnotation.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Chat +{ + public partial class ChatMessageAnnotation + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ChatMessageAnnotation(InternalChatCompletionResponseMessageAnnotationUrlCitation urlCitation) + { + UrlCitation = urlCitation; + } + + internal ChatMessageAnnotation(InternalChatCompletionResponseMessageAnnotationUrlCitation urlCitation, InternalChatCompletionResponseMessageAnnotationType @type, IDictionary additionalBinaryDataProperties) + { + UrlCitation = urlCitation; + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ChatMessageContentPart.Serialization.cs b/src/Generated/Models/ChatMessageContentPart.Serialization.cs index 2cfaddfd1..068b012b8 100644 --- a/src/Generated/Models/ChatMessageContentPart.Serialization.cs +++ b/src/Generated/Models/ChatMessageContentPart.Serialization.cs @@ -19,7 +19,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(ChatMessageContentPart)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -50,7 +50,7 @@ protected virtual ChatMessageContentPart JsonModelCreateCore(ref Utf8JsonReader throw new FormatException($"The model {nameof(ChatMessageContentPart)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ChatMessageContentPart.DeserializeChatMessageContentPart(document.RootElement, options); + return DeserializeChatMessageContentPart(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -77,7 +77,7 @@ protected virtual ChatMessageContentPart PersistableModelCreateCore(BinaryData d case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ChatMessageContentPart.DeserializeChatMessageContentPart(document.RootElement, options); + return DeserializeChatMessageContentPart(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ChatMessageContentPart)} does not support reading '{options.Format}' format."); @@ -99,7 +99,7 @@ public static explicit operator ChatMessageContentPart(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ChatMessageContentPart.DeserializeChatMessageContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeChatMessageContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ChatMessageRole.Serialization.cs b/src/Generated/Models/ChatMessageRole.Serialization.cs index 2063ddd7d..625e06c60 100644 --- a/src/Generated/Models/ChatMessageRole.Serialization.cs +++ b/src/Generated/Models/ChatMessageRole.Serialization.cs @@ -8,42 +8,42 @@ namespace OpenAI.Chat { internal static partial class ChatMessageRoleExtensions { - public static string ToSerialString(this Chat.ChatMessageRole value) => value switch + public static string ToSerialString(this ChatMessageRole value) => value switch { - Chat.ChatMessageRole.System => "system", - Chat.ChatMessageRole.Developer => "developer", - Chat.ChatMessageRole.User => "user", - Chat.ChatMessageRole.Assistant => "assistant", - Chat.ChatMessageRole.Tool => "tool", - Chat.ChatMessageRole.Function => "function", + ChatMessageRole.System => "system", + ChatMessageRole.Developer => "developer", + ChatMessageRole.User => "user", + ChatMessageRole.Assistant => "assistant", + ChatMessageRole.Tool => "tool", + ChatMessageRole.Function => "function", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatMessageRole value.") }; - public static Chat.ChatMessageRole ToChatMessageRole(this string value) + public static ChatMessageRole ToChatMessageRole(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "system")) { - return Chat.ChatMessageRole.System; + return ChatMessageRole.System; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "developer")) { - return Chat.ChatMessageRole.Developer; + return ChatMessageRole.Developer; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "user")) { - return Chat.ChatMessageRole.User; + return ChatMessageRole.User; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "assistant")) { - return Chat.ChatMessageRole.Assistant; + return ChatMessageRole.Assistant; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "tool")) { - return Chat.ChatMessageRole.Tool; + return ChatMessageRole.Tool; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "function")) { - return Chat.ChatMessageRole.Function; + return ChatMessageRole.Function; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatMessageRole value."); } diff --git a/src/Generated/Models/ChatOutputAudio.Serialization.cs b/src/Generated/Models/ChatOutputAudio.Serialization.cs index 42f31f886..a52263dc5 100644 --- a/src/Generated/Models/ChatOutputAudio.Serialization.cs +++ b/src/Generated/Models/ChatOutputAudio.Serialization.cs @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("data"u8); writer.WriteBase64StringValue(AudioBytes.ToArray(), "D"); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static ChatOutputAudio DeserializeChatOutputAudio(JsonElement element, audioBytes = BinaryData.FromBytes(prop.Value.GetBytesFromBase64("D")); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatOutputAudio(id, expiresAt, transcript, audioBytes, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatOutputAudioReference.Serialization.cs b/src/Generated/Models/ChatOutputAudioReference.Serialization.cs index 590c2dd88..c63cb315f 100644 --- a/src/Generated/Models/ChatOutputAudioReference.Serialization.cs +++ b/src/Generated/Models/ChatOutputAudioReference.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("id"u8); writer.WriteStringValue(Id); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static ChatOutputAudioReference DeserializeChatOutputAudioReference(Jso id = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatOutputAudioReference(id, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatOutputPrediction.Serialization.cs b/src/Generated/Models/ChatOutputPrediction.Serialization.cs index ec8e32b7b..e77abbbed 100644 --- a/src/Generated/Models/ChatOutputPrediction.Serialization.cs +++ b/src/Generated/Models/ChatOutputPrediction.Serialization.cs @@ -10,7 +10,6 @@ namespace OpenAI.Chat { - [PersistableModelProxy(typeof(InternalUnknownChatOutputPrediction))] public partial class ChatOutputPrediction : IJsonModel { internal ChatOutputPrediction() @@ -36,7 +35,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ChatOutputTokenUsageDetails.Serialization.cs b/src/Generated/Models/ChatOutputTokenUsageDetails.Serialization.cs index 12d22dfe8..7f73cbb75 100644 --- a/src/Generated/Models/ChatOutputTokenUsageDetails.Serialization.cs +++ b/src/Generated/Models/ChatOutputTokenUsageDetails.Serialization.cs @@ -47,7 +47,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("rejected_prediction_tokens"u8); writer.WriteNumberValue(RejectedPredictionTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -130,10 +130,7 @@ internal static ChatOutputTokenUsageDetails DeserializeChatOutputTokenUsageDetai rejectedPredictionTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatOutputTokenUsageDetails(reasoningTokenCount, audioTokenCount, acceptedPredictionTokenCount, rejectedPredictionTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatResponseFormat.Serialization.cs b/src/Generated/Models/ChatResponseFormat.Serialization.cs index 2cc1ea4bd..6190268bd 100644 --- a/src/Generated/Models/ChatResponseFormat.Serialization.cs +++ b/src/Generated/Models/ChatResponseFormat.Serialization.cs @@ -10,7 +10,6 @@ namespace OpenAI.Chat { - [PersistableModelProxy(typeof(InternalUnknownChatResponseFormat))] public partial class ChatResponseFormat : IJsonModel { protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) @@ -25,7 +24,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ChatTokenLogProbabilityDetails.Serialization.cs b/src/Generated/Models/ChatTokenLogProbabilityDetails.Serialization.cs index be762ab42..54834fd6b 100644 --- a/src/Generated/Models/ChatTokenLogProbabilityDetails.Serialization.cs +++ b/src/Generated/Models/ChatTokenLogProbabilityDetails.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("bytes") != true) { - if (Utf8Bytes != null) + if (Optional.IsDefined(Utf8Bytes)) { writer.WritePropertyName("bytes"u8); writer.WriteStartArray(); @@ -68,7 +68,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -151,10 +151,7 @@ internal static ChatTokenLogProbabilityDetails DeserializeChatTokenLogProbabilit topLogProbabilities = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatTokenLogProbabilityDetails(token, logProbability, utf8Bytes, topLogProbabilities, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatTokenTopLogProbabilityDetails.Serialization.cs b/src/Generated/Models/ChatTokenTopLogProbabilityDetails.Serialization.cs index 3e4872d39..0ecf8c3f1 100644 --- a/src/Generated/Models/ChatTokenTopLogProbabilityDetails.Serialization.cs +++ b/src/Generated/Models/ChatTokenTopLogProbabilityDetails.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("bytes") != true) { - if (Utf8Bytes != null) + if (Optional.IsDefined(Utf8Bytes)) { writer.WritePropertyName("bytes"u8); writer.WriteStartArray(); @@ -58,7 +58,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("bytes"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -130,10 +130,7 @@ internal static ChatTokenTopLogProbabilityDetails DeserializeChatTokenTopLogProb utf8Bytes = new ReadOnlyMemory(array); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatTokenTopLogProbabilityDetails(token, logProbability, utf8Bytes, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatTokenUsage.Serialization.cs b/src/Generated/Models/ChatTokenUsage.Serialization.cs index d8b52c91e..fb222dc1f 100644 --- a/src/Generated/Models/ChatTokenUsage.Serialization.cs +++ b/src/Generated/Models/ChatTokenUsage.Serialization.cs @@ -49,14 +49,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(OutputTokenDetails) && _additionalBinaryDataProperties?.ContainsKey("completion_tokens_details") != true) { writer.WritePropertyName("completion_tokens_details"u8); - writer.WriteObjectValue(OutputTokenDetails, options); + writer.WriteObjectValue(OutputTokenDetails, options); } if (Optional.IsDefined(InputTokenDetails) && _additionalBinaryDataProperties?.ContainsKey("prompt_tokens_details") != true) { writer.WritePropertyName("prompt_tokens_details"u8); - writer.WriteObjectValue(InputTokenDetails, options); + writer.WriteObjectValue(InputTokenDetails, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -137,10 +137,7 @@ internal static ChatTokenUsage DeserializeChatTokenUsage(JsonElement element, Mo inputTokenDetails = ChatInputTokenUsageDetails.DeserializeChatInputTokenUsageDetails(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatTokenUsage( outputTokenCount, diff --git a/src/Generated/Models/ChatTool.Serialization.cs b/src/Generated/Models/ChatTool.Serialization.cs index 42c658144..4463b7902 100644 --- a/src/Generated/Models/ChatTool.Serialization.cs +++ b/src/Generated/Models/ChatTool.Serialization.cs @@ -34,14 +34,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("function") != true) { writer.WritePropertyName("function"u8); - writer.WriteObjectValue(Function, options); + writer.WriteObjectValue(Function, options); } if (_additionalBinaryDataProperties?.ContainsKey("type") != true) { writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -82,7 +82,7 @@ internal static ChatTool DeserializeChatTool(JsonElement element, ModelReaderWri return null; } InternalFunctionDefinition function = default; - Chat.ChatToolKind kind = default; + ChatToolKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -96,10 +96,7 @@ internal static ChatTool DeserializeChatTool(JsonElement element, ModelReaderWri kind = prop.Value.GetString().ToChatToolKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatTool(function, kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatTool.cs b/src/Generated/Models/ChatTool.cs index 2c11930ba..fbb6bcf26 100644 --- a/src/Generated/Models/ChatTool.cs +++ b/src/Generated/Models/ChatTool.cs @@ -12,7 +12,7 @@ public partial class ChatTool { private protected IDictionary _additionalBinaryDataProperties; - internal ChatTool(InternalFunctionDefinition function, Chat.ChatToolKind kind, IDictionary additionalBinaryDataProperties) + internal ChatTool(InternalFunctionDefinition function, ChatToolKind kind, IDictionary additionalBinaryDataProperties) { Function = function; Kind = kind; diff --git a/src/Generated/Models/ChatToolCall.Serialization.cs b/src/Generated/Models/ChatToolCall.Serialization.cs index c7cc7b0e2..c6feda16b 100644 --- a/src/Generated/Models/ChatToolCall.Serialization.cs +++ b/src/Generated/Models/ChatToolCall.Serialization.cs @@ -39,14 +39,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("function") != true) { writer.WritePropertyName("function"u8); - writer.WriteObjectValue(Function, options); + writer.WriteObjectValue(Function, options); } if (_additionalBinaryDataProperties?.ContainsKey("type") != true) { writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -88,7 +88,7 @@ internal static ChatToolCall DeserializeChatToolCall(JsonElement element, ModelR } string id = default; InternalChatCompletionMessageToolCallFunction function = default; - Chat.ChatToolCallKind kind = default; + ChatToolCallKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -107,10 +107,7 @@ internal static ChatToolCall DeserializeChatToolCall(JsonElement element, ModelR kind = prop.Value.GetString().ToChatToolCallKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ChatToolCall(id, function, kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ChatToolCall.cs b/src/Generated/Models/ChatToolCall.cs index f4eb9b869..3e3fe3032 100644 --- a/src/Generated/Models/ChatToolCall.cs +++ b/src/Generated/Models/ChatToolCall.cs @@ -11,7 +11,7 @@ public partial class ChatToolCall { private protected IDictionary _additionalBinaryDataProperties; - internal ChatToolCall(string id, InternalChatCompletionMessageToolCallFunction function, Chat.ChatToolCallKind kind, IDictionary additionalBinaryDataProperties) + internal ChatToolCall(string id, InternalChatCompletionMessageToolCallFunction function, ChatToolCallKind kind, IDictionary additionalBinaryDataProperties) { Id = id; Function = function; diff --git a/src/Generated/Models/ChatToolCallKind.Serialization.cs b/src/Generated/Models/ChatToolCallKind.Serialization.cs index e3711a393..1d9519d73 100644 --- a/src/Generated/Models/ChatToolCallKind.Serialization.cs +++ b/src/Generated/Models/ChatToolCallKind.Serialization.cs @@ -8,17 +8,17 @@ namespace OpenAI.Chat { internal static partial class ChatToolCallKindExtensions { - public static string ToSerialString(this Chat.ChatToolCallKind value) => value switch + public static string ToSerialString(this ChatToolCallKind value) => value switch { - Chat.ChatToolCallKind.Function => "function", + ChatToolCallKind.Function => "function", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatToolCallKind value.") }; - public static Chat.ChatToolCallKind ToChatToolCallKind(this string value) + public static ChatToolCallKind ToChatToolCallKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "function")) { - return Chat.ChatToolCallKind.Function; + return ChatToolCallKind.Function; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatToolCallKind value."); } diff --git a/src/Generated/Models/ChatToolChoice.Serialization.cs b/src/Generated/Models/ChatToolChoice.Serialization.cs index f775a36af..58be8eeaf 100644 --- a/src/Generated/Models/ChatToolChoice.Serialization.cs +++ b/src/Generated/Models/ChatToolChoice.Serialization.cs @@ -19,7 +19,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(ChatToolChoice)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -50,7 +50,7 @@ protected virtual ChatToolChoice JsonModelCreateCore(ref Utf8JsonReader reader, throw new FormatException($"The model {nameof(ChatToolChoice)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ChatToolChoice.DeserializeChatToolChoice(document.RootElement, options); + return DeserializeChatToolChoice(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -77,7 +77,7 @@ protected virtual ChatToolChoice PersistableModelCreateCore(BinaryData data, Mod case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ChatToolChoice.DeserializeChatToolChoice(document.RootElement, options); + return DeserializeChatToolChoice(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ChatToolChoice)} does not support reading '{options.Format}' format."); @@ -99,7 +99,7 @@ public static explicit operator ChatToolChoice(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ChatToolChoice.DeserializeChatToolChoice(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeChatToolChoice(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ChatToolKind.Serialization.cs b/src/Generated/Models/ChatToolKind.Serialization.cs index 4191a8230..d7f4d07f9 100644 --- a/src/Generated/Models/ChatToolKind.Serialization.cs +++ b/src/Generated/Models/ChatToolKind.Serialization.cs @@ -8,17 +8,17 @@ namespace OpenAI.Chat { internal static partial class ChatToolKindExtensions { - public static string ToSerialString(this Chat.ChatToolKind value) => value switch + public static string ToSerialString(this ChatToolKind value) => value switch { - Chat.ChatToolKind.Function => "function", + ChatToolKind.Function => "function", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatToolKind value.") }; - public static Chat.ChatToolKind ToChatToolKind(this string value) + public static ChatToolKind ToChatToolKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "function")) { - return Chat.ChatToolKind.Function; + return ChatToolKind.Function; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ChatToolKind value."); } diff --git a/src/Generated/Models/ChatWebSearchOptions.Serialization.cs b/src/Generated/Models/ChatWebSearchOptions.Serialization.cs new file mode 100644 index 000000000..8286978f7 --- /dev/null +++ b/src/Generated/Models/ChatWebSearchOptions.Serialization.cs @@ -0,0 +1,159 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; +using OpenAI.Internal; + +namespace OpenAI.Chat +{ + public partial class ChatWebSearchOptions : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatWebSearchOptions)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(UserLocation) && _additionalBinaryDataProperties?.ContainsKey("user_location") != true) + { + writer.WritePropertyName("user_location"u8); + writer.WriteObjectValue(UserLocation, options); + } + if (Optional.IsDefined(SearchContextSize) && _additionalBinaryDataProperties?.ContainsKey("search_context_size") != true) + { + writer.WritePropertyName("search_context_size"u8); + writer.WriteStringValue(SearchContextSize.Value.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ChatWebSearchOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ChatWebSearchOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatWebSearchOptions)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeChatWebSearchOptions(document.RootElement, options); + } + + internal static ChatWebSearchOptions DeserializeChatWebSearchOptions(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 userLocation = default; + InternalWebSearchContextSize? searchContextSize = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("user_location"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + userLocation = null; + continue; + } + userLocation = InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.DeserializeInternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(prop.Value, options); + continue; + } + if (prop.NameEquals("search_context_size"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + searchContextSize = new InternalWebSearchContextSize(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ChatWebSearchOptions(userLocation, searchContextSize, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ChatWebSearchOptions)} does not support writing '{options.Format}' format."); + } + } + + ChatWebSearchOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ChatWebSearchOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeChatWebSearchOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ChatWebSearchOptions)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ChatWebSearchOptions chatWebSearchOptions) + { + if (chatWebSearchOptions == null) + { + return null; + } + return BinaryContent.Create(chatWebSearchOptions, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ChatWebSearchOptions(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeChatWebSearchOptions(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ChatWebSearchOptions.cs b/src/Generated/Models/ChatWebSearchOptions.cs new file mode 100644 index 000000000..0ae70d025 --- /dev/null +++ b/src/Generated/Models/ChatWebSearchOptions.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI.Internal; + +namespace OpenAI.Chat +{ + public partial class ChatWebSearchOptions + { + private protected IDictionary _additionalBinaryDataProperties; + + public ChatWebSearchOptions() + { + } + + internal ChatWebSearchOptions(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 userLocation, InternalWebSearchContextSize? searchContextSize, IDictionary additionalBinaryDataProperties) + { + UserLocation = userLocation; + SearchContextSize = searchContextSize; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/CodeInterpreterToolDefinition.Serialization.cs b/src/Generated/Models/CodeInterpreterToolDefinition.Serialization.cs index 92cb9c4ec..ba5eac264 100644 --- a/src/Generated/Models/CodeInterpreterToolDefinition.Serialization.cs +++ b/src/Generated/Models/CodeInterpreterToolDefinition.Serialization.cs @@ -51,10 +51,7 @@ internal static CodeInterpreterToolDefinition DeserializeCodeInterpreterToolDefi @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new CodeInterpreterToolDefinition(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/CodeInterpreterToolResources.Serialization.cs b/src/Generated/Models/CodeInterpreterToolResources.Serialization.cs index 6798b11b8..654b7a04f 100644 --- a/src/Generated/Models/CodeInterpreterToolResources.Serialization.cs +++ b/src/Generated/Models/CodeInterpreterToolResources.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static CodeInterpreterToolResources DeserializeCodeInterpreterToolResou fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new CodeInterpreterToolResources(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ComputerCallAction.Serialization.cs b/src/Generated/Models/ComputerCallAction.Serialization.cs new file mode 100644 index 000000000..58acd7239 --- /dev/null +++ b/src/Generated/Models/ComputerCallAction.Serialization.cs @@ -0,0 +1,154 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerCallAction : IJsonModel + { + internal ComputerCallAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Kind.ToSerialString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ComputerCallAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerCallAction(document.RootElement, options); + } + + internal static ComputerCallAction DeserializeComputerCallAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "click": + return InternalResponsesComputerCallClickAction.DeserializeInternalResponsesComputerCallClickAction(element, options); + case "double_click": + return InternalResponsesComputerCallDoubleClickAction.DeserializeInternalResponsesComputerCallDoubleClickAction(element, options); + case "scroll": + return InternalResponsesComputerCallScrollAction.DeserializeInternalResponsesComputerCallScrollAction(element, options); + case "screenshot": + return InternalResponsesComputerCallScreenshotAction.DeserializeInternalResponsesComputerCallScreenshotAction(element, options); + case "type": + return InternalResponsesComputerCallTypeAction.DeserializeInternalResponsesComputerCallTypeAction(element, options); + case "wait": + return InternalResponsesComputerCallWaitAction.DeserializeInternalResponsesComputerCallWaitAction(element, options); + case "keypress": + return InternalResponsesComputerCallKeyPressAction.DeserializeInternalResponsesComputerCallKeyPressAction(element, options); + case "drag": + return InternalResponsesComputerCallDragAction.DeserializeInternalResponsesComputerCallDragAction(element, options); + case "move": + return InternalResponsesComputerCallMoveAction.DeserializeInternalResponsesComputerCallMoveAction(element, options); + } + } + return UnknownResponsesComputerCallItemAction.DeserializeUnknownResponsesComputerCallItemAction(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support writing '{options.Format}' format."); + } + } + + ComputerCallAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerCallAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ComputerCallAction computerCallAction) + { + if (computerCallAction == null) + { + return null; + } + return BinaryContent.Create(computerCallAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ComputerCallAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeComputerCallAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ComputerCallAction.cs b/src/Generated/Models/ComputerCallAction.cs new file mode 100644 index 000000000..8106f6fa4 --- /dev/null +++ b/src/Generated/Models/ComputerCallAction.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ComputerCallAction + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ComputerCallAction(ComputerCallActionKind kind) + { + Kind = kind; + } + + internal ComputerCallAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties) + { + Kind = kind; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ComputerCallActionKind.Serialization.cs b/src/Generated/Models/ComputerCallActionKind.Serialization.cs new file mode 100644 index 000000000..aca7ca0ea --- /dev/null +++ b/src/Generated/Models/ComputerCallActionKind.Serialization.cs @@ -0,0 +1,66 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ComputerCallActionKindExtensions + { + public static string ToSerialString(this ComputerCallActionKind value) => value switch + { + ComputerCallActionKind.Screenshot => "screenshot", + ComputerCallActionKind.Click => "click", + ComputerCallActionKind.DoubleClick => "double_click", + ComputerCallActionKind.Scroll => "scroll", + ComputerCallActionKind.Type => "type", + ComputerCallActionKind.Wait => "wait", + ComputerCallActionKind.KeyPress => "keypress", + ComputerCallActionKind.Drag => "drag", + ComputerCallActionKind.Move => "move", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallActionKind value.") + }; + + public static ComputerCallActionKind ToComputerCallActionKind(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "screenshot")) + { + return ComputerCallActionKind.Screenshot; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "click")) + { + return ComputerCallActionKind.Click; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "double_click")) + { + return ComputerCallActionKind.DoubleClick; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "scroll")) + { + return ComputerCallActionKind.Scroll; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "type")) + { + return ComputerCallActionKind.Type; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "wait")) + { + return ComputerCallActionKind.Wait; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "keypress")) + { + return ComputerCallActionKind.KeyPress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "drag")) + { + return ComputerCallActionKind.Drag; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "move")) + { + return ComputerCallActionKind.Move; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallActionKind value."); + } + } +} diff --git a/src/Generated/Models/ComputerCallActionMouseButton.Serialization.cs b/src/Generated/Models/ComputerCallActionMouseButton.Serialization.cs new file mode 100644 index 000000000..11dfe658c --- /dev/null +++ b/src/Generated/Models/ComputerCallActionMouseButton.Serialization.cs @@ -0,0 +1,46 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ComputerCallActionMouseButtonExtensions + { + public static string ToSerialString(this ComputerCallActionMouseButton value) => value switch + { + ComputerCallActionMouseButton.Left => "left", + ComputerCallActionMouseButton.Right => "right", + ComputerCallActionMouseButton.Wheel => "wheel", + ComputerCallActionMouseButton.Back => "back", + ComputerCallActionMouseButton.Forward => "forward,", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallActionMouseButton value.") + }; + + public static ComputerCallActionMouseButton ToComputerCallActionMouseButton(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "left")) + { + return ComputerCallActionMouseButton.Left; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "right")) + { + return ComputerCallActionMouseButton.Right; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "wheel")) + { + return ComputerCallActionMouseButton.Wheel; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "back")) + { + return ComputerCallActionMouseButton.Back; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "forward,")) + { + return ComputerCallActionMouseButton.Forward; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallActionMouseButton value."); + } + } +} diff --git a/src/Generated/Models/ComputerCallOutputResponseItem.Serialization.cs b/src/Generated/Models/ComputerCallOutputResponseItem.Serialization.cs new file mode 100644 index 000000000..4b4c2fb91 --- /dev/null +++ b/src/Generated/Models/ComputerCallOutputResponseItem.Serialization.cs @@ -0,0 +1,190 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerCallOutputResponseItem : IJsonModel + { + internal ComputerCallOutputResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallOutputResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("call_id") != true) + { + writer.WritePropertyName("call_id"u8); + writer.WriteStringValue(CallId); + } + if (_additionalBinaryDataProperties?.ContainsKey("acknowledged_safety_checks") != true) + { + writer.WritePropertyName("acknowledged_safety_checks"u8); + writer.WriteStartArray(); + foreach (ComputerCallSafetyCheck item in AcknowledgedSafetyChecks) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("output") != true) + { + writer.WritePropertyName("output"u8); + writer.WriteObjectValue(Output, options); + } + if (Optional.IsDefined(Status) && _additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToSerialString()); + } + } + + ComputerCallOutputResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ComputerCallOutputResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallOutputResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerCallOutputResponseItem(document.RootElement, options); + } + + internal static ComputerCallOutputResponseItem DeserializeComputerCallOutputResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string callId = default; + IList acknowledgedSafetyChecks = default; + ComputerOutput output = default; + ComputerCallOutputStatus? status = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("call_id"u8)) + { + callId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("acknowledged_safety_checks"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ComputerCallSafetyCheck.DeserializeComputerCallSafetyCheck(item, options)); + } + acknowledgedSafetyChecks = array; + continue; + } + if (prop.NameEquals("output"u8)) + { + output = ComputerOutput.DeserializeComputerOutput(prop.Value, options); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToComputerCallOutputStatus(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ComputerCallOutputResponseItem( + @type, + id, + additionalBinaryDataProperties, + callId, + acknowledgedSafetyChecks, + output, + status); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerCallOutputResponseItem)} does not support writing '{options.Format}' format."); + } + } + + ComputerCallOutputResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ComputerCallOutputResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerCallOutputResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerCallOutputResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ComputerCallOutputResponseItem computerCallOutputResponseItem) + { + if (computerCallOutputResponseItem == null) + { + return null; + } + return BinaryContent.Create(computerCallOutputResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ComputerCallOutputResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeComputerCallOutputResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ComputerCallOutputResponseItem.cs b/src/Generated/Models/ComputerCallOutputResponseItem.cs new file mode 100644 index 000000000..b045d3eb6 --- /dev/null +++ b/src/Generated/Models/ComputerCallOutputResponseItem.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerCallOutputResponseItem : ResponseItem + { + public ComputerCallOutputResponseItem(string callId, IEnumerable acknowledgedSafetyChecks, ComputerOutput output) : base(InternalResponsesItemType.ComputerCallOutput) + { + Argument.AssertNotNull(callId, nameof(callId)); + Argument.AssertNotNull(acknowledgedSafetyChecks, nameof(acknowledgedSafetyChecks)); + Argument.AssertNotNull(output, nameof(output)); + + CallId = callId; + AcknowledgedSafetyChecks = acknowledgedSafetyChecks.ToList(); + Output = output; + } + + internal ComputerCallOutputResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, string callId, IList acknowledgedSafetyChecks, ComputerOutput output, ComputerCallOutputStatus? status) : base(@type, id, additionalBinaryDataProperties) + { + CallId = callId; + AcknowledgedSafetyChecks = acknowledgedSafetyChecks; + Output = output; + Status = status; + } + + public string CallId { get; set; } + + public IList AcknowledgedSafetyChecks { get; } + + public ComputerOutput Output { get; set; } + + public ComputerCallOutputStatus? Status { get; } + } +} diff --git a/src/Generated/Models/ComputerCallOutputStatus.Serialization.cs b/src/Generated/Models/ComputerCallOutputStatus.Serialization.cs new file mode 100644 index 000000000..688b534a0 --- /dev/null +++ b/src/Generated/Models/ComputerCallOutputStatus.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ComputerCallOutputStatusExtensions + { + public static string ToSerialString(this ComputerCallOutputStatus value) => value switch + { + ComputerCallOutputStatus.InProgress => "in_progress", + ComputerCallOutputStatus.Completed => "completed", + ComputerCallOutputStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallOutputStatus value.") + }; + + public static ComputerCallOutputStatus ToComputerCallOutputStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return ComputerCallOutputStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return ComputerCallOutputStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return ComputerCallOutputStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallOutputStatus value."); + } + } +} diff --git a/src/Generated/Models/ComputerCallResponseItem.Serialization.cs b/src/Generated/Models/ComputerCallResponseItem.Serialization.cs new file mode 100644 index 000000000..a9e1bd82f --- /dev/null +++ b/src/Generated/Models/ComputerCallResponseItem.Serialization.cs @@ -0,0 +1,186 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerCallResponseItem : IJsonModel + { + internal ComputerCallResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("call_id") != true) + { + writer.WritePropertyName("call_id"u8); + writer.WriteStringValue(CallId); + } + if (_additionalBinaryDataProperties?.ContainsKey("action") != true) + { + writer.WritePropertyName("action"u8); + writer.WriteObjectValue(Action, options); + } + if (_additionalBinaryDataProperties?.ContainsKey("pending_safety_checks") != true) + { + writer.WritePropertyName("pending_safety_checks"u8); + writer.WriteStartArray(); + foreach (ComputerCallSafetyCheck item in PendingSafetyChecks) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToSerialString()); + } + } + + ComputerCallResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ComputerCallResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerCallResponseItem(document.RootElement, options); + } + + internal static ComputerCallResponseItem DeserializeComputerCallResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string callId = default; + ComputerCallAction action = default; + IList pendingSafetyChecks = default; + ComputerCallStatus status = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("call_id"u8)) + { + callId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("action"u8)) + { + action = ComputerCallAction.DeserializeComputerCallAction(prop.Value, options); + continue; + } + if (prop.NameEquals("pending_safety_checks"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ComputerCallSafetyCheck.DeserializeComputerCallSafetyCheck(item, options)); + } + pendingSafetyChecks = array; + continue; + } + if (prop.NameEquals("status"u8)) + { + status = prop.Value.GetString().ToComputerCallStatus(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ComputerCallResponseItem( + @type, + id, + additionalBinaryDataProperties, + callId, + action, + pendingSafetyChecks, + status); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerCallResponseItem)} does not support writing '{options.Format}' format."); + } + } + + ComputerCallResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ComputerCallResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerCallResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerCallResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ComputerCallResponseItem computerCallResponseItem) + { + if (computerCallResponseItem == null) + { + return null; + } + return BinaryContent.Create(computerCallResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ComputerCallResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeComputerCallResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ComputerCallResponseItem.cs b/src/Generated/Models/ComputerCallResponseItem.cs new file mode 100644 index 000000000..412735e83 --- /dev/null +++ b/src/Generated/Models/ComputerCallResponseItem.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ComputerCallResponseItem : ResponseItem + { + internal ComputerCallResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, string callId, ComputerCallAction action, IList pendingSafetyChecks, ComputerCallStatus status) : base(@type, id, additionalBinaryDataProperties) + { + CallId = callId; + Action = action; + PendingSafetyChecks = pendingSafetyChecks; + Status = status; + } + + public string CallId { get; set; } + + public ComputerCallAction Action { get; set; } + + public IList PendingSafetyChecks { get; } + + public ComputerCallStatus Status { get; } + } +} diff --git a/src/Generated/Models/ComputerCallSafetyCheck.Serialization.cs b/src/Generated/Models/ComputerCallSafetyCheck.Serialization.cs new file mode 100644 index 000000000..c16597217 --- /dev/null +++ b/src/Generated/Models/ComputerCallSafetyCheck.Serialization.cs @@ -0,0 +1,164 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerCallSafetyCheck : IJsonModel + { + internal ComputerCallSafetyCheck() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallSafetyCheck)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("id") != true) + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + if (_additionalBinaryDataProperties?.ContainsKey("code") != true) + { + writer.WritePropertyName("code"u8); + writer.WriteStringValue(Code); + } + if (_additionalBinaryDataProperties?.ContainsKey("message") != true) + { + writer.WritePropertyName("message"u8); + writer.WriteStringValue(Message); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ComputerCallSafetyCheck IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ComputerCallSafetyCheck JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallSafetyCheck)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerCallSafetyCheck(document.RootElement, options); + } + + internal static ComputerCallSafetyCheck DeserializeComputerCallSafetyCheck(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + string code = default; + string message = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("code"u8)) + { + code = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("message"u8)) + { + message = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ComputerCallSafetyCheck(id, code, message, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerCallSafetyCheck)} does not support writing '{options.Format}' format."); + } + } + + ComputerCallSafetyCheck IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ComputerCallSafetyCheck PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerCallSafetyCheck(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerCallSafetyCheck)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ComputerCallSafetyCheck computerCallSafetyCheck) + { + if (computerCallSafetyCheck == null) + { + return null; + } + return BinaryContent.Create(computerCallSafetyCheck, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ComputerCallSafetyCheck(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeComputerCallSafetyCheck(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ComputerCallSafetyCheck.cs b/src/Generated/Models/ComputerCallSafetyCheck.cs new file mode 100644 index 000000000..e6adbdff3 --- /dev/null +++ b/src/Generated/Models/ComputerCallSafetyCheck.cs @@ -0,0 +1,46 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerCallSafetyCheck + { + private protected IDictionary _additionalBinaryDataProperties; + + public ComputerCallSafetyCheck(string id, string code, string message) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(code, nameof(code)); + Argument.AssertNotNull(message, nameof(message)); + + Id = id; + Code = code; + Message = message; + } + + internal ComputerCallSafetyCheck(string id, string code, string message, IDictionary additionalBinaryDataProperties) + { + Id = id; + Code = code; + Message = message; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string Id { get; set; } + + public string Code { get; set; } + + public string Message { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ComputerCallStatus.Serialization.cs b/src/Generated/Models/ComputerCallStatus.Serialization.cs new file mode 100644 index 000000000..375152849 --- /dev/null +++ b/src/Generated/Models/ComputerCallStatus.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ComputerCallStatusExtensions + { + public static string ToSerialString(this ComputerCallStatus value) => value switch + { + ComputerCallStatus.InProgress => "in_progress", + ComputerCallStatus.Completed => "completed", + ComputerCallStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallStatus value.") + }; + + public static ComputerCallStatus ToComputerCallStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return ComputerCallStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return ComputerCallStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return ComputerCallStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ComputerCallStatus value."); + } + } +} diff --git a/src/Generated/Models/ComputerOutput.Serialization.cs b/src/Generated/Models/ComputerOutput.Serialization.cs new file mode 100644 index 000000000..7a02edd2b --- /dev/null +++ b/src/Generated/Models/ComputerOutput.Serialization.cs @@ -0,0 +1,138 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ComputerOutput : IJsonModel + { + internal ComputerOutput() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerOutput)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ComputerOutput IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ComputerOutput JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerOutput)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerOutput(document.RootElement, options); + } + + internal static ComputerOutput DeserializeComputerOutput(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "computer_screenshot": + return InternalResponsesComputerCallOutputItemScreenshot.DeserializeInternalResponsesComputerCallOutputItemScreenshot(element, options); + } + } + return UnknownResponsesComputerCallOutputItemOutput.DeserializeUnknownResponsesComputerCallOutputItemOutput(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerOutput)} does not support writing '{options.Format}' format."); + } + } + + ComputerOutput IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ComputerOutput PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerOutput(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerOutput)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ComputerOutput computerOutput) + { + if (computerOutput == null) + { + return null; + } + return BinaryContent.Create(computerOutput, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ComputerOutput(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeComputerOutput(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ComputerOutput.cs b/src/Generated/Models/ComputerOutput.cs new file mode 100644 index 000000000..7f71bbc0f --- /dev/null +++ b/src/Generated/Models/ComputerOutput.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ComputerOutput + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ComputerOutput(InternalResponsesComputerCallOutputItemOutputType @type) + { + Type = @type; + } + + internal ComputerOutput(InternalResponsesComputerCallOutputItemOutputType @type, IDictionary additionalBinaryDataProperties) + { + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal InternalResponsesComputerCallOutputItemOutputType Type { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ComputerToolEnvironment.cs b/src/Generated/Models/ComputerToolEnvironment.cs new file mode 100644 index 000000000..7a38cc801 --- /dev/null +++ b/src/Generated/Models/ComputerToolEnvironment.cs @@ -0,0 +1,50 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct ComputerToolEnvironment : IEquatable + { + private readonly string _value; + private const string WindowsValue = "windows"; + private const string MacValue = "mac"; + private const string UbuntuValue = "ubuntu"; + private const string BrowserValue = "browser"; + + public ComputerToolEnvironment(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static ComputerToolEnvironment Windows { get; } = new ComputerToolEnvironment(WindowsValue); + + public static ComputerToolEnvironment Mac { get; } = new ComputerToolEnvironment(MacValue); + + public static ComputerToolEnvironment Ubuntu { get; } = new ComputerToolEnvironment(UbuntuValue); + + public static ComputerToolEnvironment Browser { get; } = new ComputerToolEnvironment(BrowserValue); + + public static bool operator ==(ComputerToolEnvironment left, ComputerToolEnvironment right) => left.Equals(right); + + public static bool operator !=(ComputerToolEnvironment left, ComputerToolEnvironment right) => !left.Equals(right); + + public static implicit operator ComputerToolEnvironment(string value) => new ComputerToolEnvironment(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ComputerToolEnvironment other && Equals(other); + + public bool Equals(ComputerToolEnvironment other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/ConversationContentPart.Serialization.cs b/src/Generated/Models/ConversationContentPart.Serialization.cs index 76066d621..0aed7054a 100644 --- a/src/Generated/Models/ConversationContentPart.Serialization.cs +++ b/src/Generated/Models/ConversationContentPart.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.RealtimeConversation { - [PersistableModelProxy(typeof(UnknownRealtimeContentPart))] - public abstract partial class ConversationContentPart : IJsonModel + public partial class ConversationContentPart : IJsonModel { internal ConversationContentPart() { @@ -36,7 +35,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ConversationContentPart.cs b/src/Generated/Models/ConversationContentPart.cs index fe35eb936..492258a0b 100644 --- a/src/Generated/Models/ConversationContentPart.cs +++ b/src/Generated/Models/ConversationContentPart.cs @@ -7,7 +7,7 @@ namespace OpenAI.RealtimeConversation { - public abstract partial class ConversationContentPart + public partial class ConversationContentPart { private protected IDictionary _additionalBinaryDataProperties; diff --git a/src/Generated/Models/ConversationErrorUpdate.Serialization.cs b/src/Generated/Models/ConversationErrorUpdate.Serialization.cs index 2dc634db0..78e6e7ebc 100644 --- a/src/Generated/Models/ConversationErrorUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationErrorUpdate.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("error") != true) { writer.WritePropertyName("error"u8); - writer.WriteObjectValue(_error, options); + writer.WriteObjectValue(_error, options); } } @@ -59,7 +59,7 @@ internal static ConversationErrorUpdate DeserializeConversationErrorUpdate(JsonE return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRealtimeServerEventErrorError error = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static ConversationErrorUpdate DeserializeConversationErrorUpdate(JsonE error = InternalRealtimeServerEventErrorError.DeserializeInternalRealtimeServerEventErrorError(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationErrorUpdate(eventId, kind, additionalBinaryDataProperties, error); } diff --git a/src/Generated/Models/ConversationErrorUpdate.cs b/src/Generated/Models/ConversationErrorUpdate.cs index 706445488..92308e209 100644 --- a/src/Generated/Models/ConversationErrorUpdate.cs +++ b/src/Generated/Models/ConversationErrorUpdate.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationErrorUpdate : ConversationUpdate { - internal ConversationErrorUpdate(string eventId, InternalRealtimeServerEventErrorError error) : base(eventId, RealtimeConversation.ConversationUpdateKind.Error) + internal ConversationErrorUpdate(string eventId, InternalRealtimeServerEventErrorError error) : base(eventId, ConversationUpdateKind.Error) { _error = error; } - internal ConversationErrorUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeServerEventErrorError error) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationErrorUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeServerEventErrorError error) : base(eventId, kind, additionalBinaryDataProperties) { _error = error; } diff --git a/src/Generated/Models/ConversationFunctionTool.Serialization.cs b/src/Generated/Models/ConversationFunctionTool.Serialization.cs index 430145248..3b0c33fa9 100644 --- a/src/Generated/Models/ConversationFunctionTool.Serialization.cs +++ b/src/Generated/Models/ConversationFunctionTool.Serialization.cs @@ -102,10 +102,7 @@ internal static ConversationFunctionTool DeserializeConversationFunctionTool(Jso parameters = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationFunctionTool(kind, additionalBinaryDataProperties, name, description, parameters); } diff --git a/src/Generated/Models/ConversationInputAudioClearedUpdate.Serialization.cs b/src/Generated/Models/ConversationInputAudioClearedUpdate.Serialization.cs index 2ea91978a..33ab7c70c 100644 --- a/src/Generated/Models/ConversationInputAudioClearedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationInputAudioClearedUpdate.Serialization.cs @@ -54,7 +54,7 @@ internal static ConversationInputAudioClearedUpdate DeserializeConversationInput return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -68,10 +68,7 @@ internal static ConversationInputAudioClearedUpdate DeserializeConversationInput kind = prop.Value.GetString().ToConversationUpdateKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputAudioClearedUpdate(eventId, kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ConversationInputAudioClearedUpdate.cs b/src/Generated/Models/ConversationInputAudioClearedUpdate.cs index ce6fc9d78..60f01f580 100644 --- a/src/Generated/Models/ConversationInputAudioClearedUpdate.cs +++ b/src/Generated/Models/ConversationInputAudioClearedUpdate.cs @@ -9,11 +9,11 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationInputAudioClearedUpdate : ConversationUpdate { - internal ConversationInputAudioClearedUpdate(string eventId) : base(eventId, RealtimeConversation.ConversationUpdateKind.InputAudioCleared) + internal ConversationInputAudioClearedUpdate(string eventId) : base(eventId, ConversationUpdateKind.InputAudioCleared) { } - internal ConversationInputAudioClearedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationInputAudioClearedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties) : base(eventId, kind, additionalBinaryDataProperties) { } } diff --git a/src/Generated/Models/ConversationInputAudioCommittedUpdate.Serialization.cs b/src/Generated/Models/ConversationInputAudioCommittedUpdate.Serialization.cs index f111f6e0c..9395b4931 100644 --- a/src/Generated/Models/ConversationInputAudioCommittedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationInputAudioCommittedUpdate.Serialization.cs @@ -64,7 +64,7 @@ internal static ConversationInputAudioCommittedUpdate DeserializeConversationInp return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string previousItemId = default; string itemId = default; @@ -90,10 +90,7 @@ internal static ConversationInputAudioCommittedUpdate DeserializeConversationInp itemId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputAudioCommittedUpdate(eventId, kind, additionalBinaryDataProperties, previousItemId, itemId); } diff --git a/src/Generated/Models/ConversationInputAudioCommittedUpdate.cs b/src/Generated/Models/ConversationInputAudioCommittedUpdate.cs index 7368ff34e..a95ccecf8 100644 --- a/src/Generated/Models/ConversationInputAudioCommittedUpdate.cs +++ b/src/Generated/Models/ConversationInputAudioCommittedUpdate.cs @@ -9,13 +9,13 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationInputAudioCommittedUpdate : ConversationUpdate { - internal ConversationInputAudioCommittedUpdate(string eventId, string previousItemId, string itemId) : base(eventId, RealtimeConversation.ConversationUpdateKind.InputAudioCommitted) + internal ConversationInputAudioCommittedUpdate(string eventId, string previousItemId, string itemId) : base(eventId, ConversationUpdateKind.InputAudioCommitted) { PreviousItemId = previousItemId; ItemId = itemId; } - internal ConversationInputAudioCommittedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string previousItemId, string itemId) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationInputAudioCommittedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string previousItemId, string itemId) : base(eventId, kind, additionalBinaryDataProperties) { PreviousItemId = previousItemId; ItemId = itemId; diff --git a/src/Generated/Models/ConversationInputSpeechFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationInputSpeechFinishedUpdate.Serialization.cs index 3a8e0872c..1165e0b7a 100644 --- a/src/Generated/Models/ConversationInputSpeechFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationInputSpeechFinishedUpdate.Serialization.cs @@ -64,7 +64,7 @@ internal static ConversationInputSpeechFinishedUpdate DeserializeConversationInp return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string itemId = default; int audioEndMs = default; @@ -90,10 +90,7 @@ internal static ConversationInputSpeechFinishedUpdate DeserializeConversationInp audioEndMs = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputSpeechFinishedUpdate(eventId, kind, additionalBinaryDataProperties, itemId, audioEndMs); } diff --git a/src/Generated/Models/ConversationInputSpeechFinishedUpdate.cs b/src/Generated/Models/ConversationInputSpeechFinishedUpdate.cs index 34f97eeca..8a87f335c 100644 --- a/src/Generated/Models/ConversationInputSpeechFinishedUpdate.cs +++ b/src/Generated/Models/ConversationInputSpeechFinishedUpdate.cs @@ -9,13 +9,13 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationInputSpeechFinishedUpdate : ConversationUpdate { - internal ConversationInputSpeechFinishedUpdate(string eventId, string itemId, int audioEndMs) : base(eventId, RealtimeConversation.ConversationUpdateKind.InputSpeechStopped) + internal ConversationInputSpeechFinishedUpdate(string eventId, string itemId, int audioEndMs) : base(eventId, ConversationUpdateKind.InputSpeechStopped) { ItemId = itemId; _audioEndMs = audioEndMs; } - internal ConversationInputSpeechFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int audioEndMs) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationInputSpeechFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int audioEndMs) : base(eventId, kind, additionalBinaryDataProperties) { ItemId = itemId; _audioEndMs = audioEndMs; diff --git a/src/Generated/Models/ConversationInputSpeechStartedUpdate.Serialization.cs b/src/Generated/Models/ConversationInputSpeechStartedUpdate.Serialization.cs index 69ec19c46..92cba99ef 100644 --- a/src/Generated/Models/ConversationInputSpeechStartedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationInputSpeechStartedUpdate.Serialization.cs @@ -64,7 +64,7 @@ internal static ConversationInputSpeechStartedUpdate DeserializeConversationInpu return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string itemId = default; int audioStartMs = default; @@ -90,10 +90,7 @@ internal static ConversationInputSpeechStartedUpdate DeserializeConversationInpu audioStartMs = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputSpeechStartedUpdate(eventId, kind, additionalBinaryDataProperties, itemId, audioStartMs); } diff --git a/src/Generated/Models/ConversationInputSpeechStartedUpdate.cs b/src/Generated/Models/ConversationInputSpeechStartedUpdate.cs index 3c66eb859..cad996091 100644 --- a/src/Generated/Models/ConversationInputSpeechStartedUpdate.cs +++ b/src/Generated/Models/ConversationInputSpeechStartedUpdate.cs @@ -9,13 +9,13 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationInputSpeechStartedUpdate : ConversationUpdate { - internal ConversationInputSpeechStartedUpdate(string eventId, string itemId, int audioStartMs) : base(eventId, RealtimeConversation.ConversationUpdateKind.InputSpeechStarted) + internal ConversationInputSpeechStartedUpdate(string eventId, string itemId, int audioStartMs) : base(eventId, ConversationUpdateKind.InputSpeechStarted) { ItemId = itemId; _audioStartMs = audioStartMs; } - internal ConversationInputSpeechStartedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int audioStartMs) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationInputSpeechStartedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int audioStartMs) : base(eventId, kind, additionalBinaryDataProperties) { ItemId = itemId; _audioStartMs = audioStartMs; diff --git a/src/Generated/Models/ConversationInputTokenUsageDetails.Serialization.cs b/src/Generated/Models/ConversationInputTokenUsageDetails.Serialization.cs index f5902b67d..f7224a050 100644 --- a/src/Generated/Models/ConversationInputTokenUsageDetails.Serialization.cs +++ b/src/Generated/Models/ConversationInputTokenUsageDetails.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text_tokens"u8); writer.WriteNumberValue(TextTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -115,10 +115,7 @@ internal static ConversationInputTokenUsageDetails DeserializeConversationInputT textTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputTokenUsageDetails(audioTokenCount, cachedTokenCount, textTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.Serialization.cs b/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.Serialization.cs index 885a53b40..e41908367 100644 --- a/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.Serialization.cs @@ -45,7 +45,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("error") != true) { writer.WritePropertyName("error"u8); - writer.WriteObjectValue(_error, options); + writer.WriteObjectValue(_error, options); } } @@ -69,7 +69,7 @@ internal static ConversationInputTranscriptionFailedUpdate DeserializeConversati return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string itemId = default; int contentIndex = default; @@ -101,10 +101,7 @@ internal static ConversationInputTranscriptionFailedUpdate DeserializeConversati error = InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError.DeserializeInternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputTranscriptionFailedUpdate( eventId, diff --git a/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.cs b/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.cs index e9d2017ac..2a5c5d58d 100644 --- a/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.cs +++ b/src/Generated/Models/ConversationInputTranscriptionFailedUpdate.cs @@ -9,14 +9,14 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationInputTranscriptionFailedUpdate : ConversationUpdate { - internal ConversationInputTranscriptionFailedUpdate(string eventId, string itemId, int contentIndex, InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError error) : base(eventId, RealtimeConversation.ConversationUpdateKind.InputTranscriptionFailed) + internal ConversationInputTranscriptionFailedUpdate(string eventId, string itemId, int contentIndex, InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError error) : base(eventId, ConversationUpdateKind.InputTranscriptionFailed) { ItemId = itemId; ContentIndex = contentIndex; _error = error; } - internal ConversationInputTranscriptionFailedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int contentIndex, InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError error) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationInputTranscriptionFailedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int contentIndex, InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError error) : base(eventId, kind, additionalBinaryDataProperties) { ItemId = itemId; ContentIndex = contentIndex; diff --git a/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.Serialization.cs index 03a517a46..d722d838b 100644 --- a/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.Serialization.cs @@ -69,7 +69,7 @@ internal static ConversationInputTranscriptionFinishedUpdate DeserializeConversa return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string itemId = default; int contentIndex = default; @@ -101,10 +101,7 @@ internal static ConversationInputTranscriptionFinishedUpdate DeserializeConversa transcript = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputTranscriptionFinishedUpdate( eventId, diff --git a/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.cs b/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.cs index d96e14344..261aa9878 100644 --- a/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.cs +++ b/src/Generated/Models/ConversationInputTranscriptionFinishedUpdate.cs @@ -9,14 +9,14 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationInputTranscriptionFinishedUpdate : ConversationUpdate { - internal ConversationInputTranscriptionFinishedUpdate(string eventId, string itemId, int contentIndex, string transcript) : base(eventId, RealtimeConversation.ConversationUpdateKind.InputTranscriptionFinished) + internal ConversationInputTranscriptionFinishedUpdate(string eventId, string itemId, int contentIndex, string transcript) : base(eventId, ConversationUpdateKind.InputTranscriptionFinished) { ItemId = itemId; ContentIndex = contentIndex; Transcript = transcript; } - internal ConversationInputTranscriptionFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int contentIndex, string transcript) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationInputTranscriptionFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int contentIndex, string transcript) : base(eventId, kind, additionalBinaryDataProperties) { ItemId = itemId; ContentIndex = contentIndex; diff --git a/src/Generated/Models/ConversationInputTranscriptionOptions.Serialization.cs b/src/Generated/Models/ConversationInputTranscriptionOptions.Serialization.cs index a6183f7b6..eb8b7632d 100644 --- a/src/Generated/Models/ConversationInputTranscriptionOptions.Serialization.cs +++ b/src/Generated/Models/ConversationInputTranscriptionOptions.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("model"u8); writer.WriteStringValue(Model.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static ConversationInputTranscriptionOptions DeserializeConversationInp model = new ConversationTranscriptionModel(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationInputTranscriptionOptions(model, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ConversationItem.Serialization.cs b/src/Generated/Models/ConversationItem.Serialization.cs index 111d83747..458247615 100644 --- a/src/Generated/Models/ConversationItem.Serialization.cs +++ b/src/Generated/Models/ConversationItem.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.RealtimeConversation { - [PersistableModelProxy(typeof(UnknownRealtimeRequestItem))] - public abstract partial class ConversationItem : IJsonModel + public partial class ConversationItem : IJsonModel { internal ConversationItem() { @@ -41,7 +40,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("id"u8); writer.WriteStringValue(Id); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ConversationItem.cs b/src/Generated/Models/ConversationItem.cs index 90e10fc28..988f94a36 100644 --- a/src/Generated/Models/ConversationItem.cs +++ b/src/Generated/Models/ConversationItem.cs @@ -7,7 +7,7 @@ namespace OpenAI.RealtimeConversation { - public abstract partial class ConversationItem + public partial class ConversationItem { private protected IDictionary _additionalBinaryDataProperties; diff --git a/src/Generated/Models/ConversationItemCreatedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemCreatedUpdate.Serialization.cs index 62b71004a..943a2dc3c 100644 --- a/src/Generated/Models/ConversationItemCreatedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemCreatedUpdate.Serialization.cs @@ -40,7 +40,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("item") != true) { writer.WritePropertyName("item"u8); - writer.WriteObjectValue(_internalItem, options); + writer.WriteObjectValue(_internalItem, options); } } @@ -64,7 +64,7 @@ internal static ConversationItemCreatedUpdate DeserializeConversationItemCreated return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string previousItemId = default; InternalRealtimeConversationResponseItem internalItem = default; @@ -90,10 +90,7 @@ internal static ConversationItemCreatedUpdate DeserializeConversationItemCreated internalItem = InternalRealtimeConversationResponseItem.DeserializeInternalRealtimeConversationResponseItem(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemCreatedUpdate(eventId, kind, additionalBinaryDataProperties, previousItemId, internalItem); } diff --git a/src/Generated/Models/ConversationItemCreatedUpdate.cs b/src/Generated/Models/ConversationItemCreatedUpdate.cs index 23da0c644..6158ea73c 100644 --- a/src/Generated/Models/ConversationItemCreatedUpdate.cs +++ b/src/Generated/Models/ConversationItemCreatedUpdate.cs @@ -9,13 +9,13 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemCreatedUpdate : ConversationUpdate { - internal ConversationItemCreatedUpdate(string eventId, string previousItemId, InternalRealtimeConversationResponseItem internalItem) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemCreated) + internal ConversationItemCreatedUpdate(string eventId, string previousItemId, InternalRealtimeConversationResponseItem internalItem) : base(eventId, ConversationUpdateKind.ItemCreated) { PreviousItemId = previousItemId; _internalItem = internalItem; } - internal ConversationItemCreatedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string previousItemId, InternalRealtimeConversationResponseItem internalItem) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemCreatedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string previousItemId, InternalRealtimeConversationResponseItem internalItem) : base(eventId, kind, additionalBinaryDataProperties) { PreviousItemId = previousItemId; _internalItem = internalItem; diff --git a/src/Generated/Models/ConversationItemDeletedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemDeletedUpdate.Serialization.cs index 73928f1ee..60af8a2ea 100644 --- a/src/Generated/Models/ConversationItemDeletedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemDeletedUpdate.Serialization.cs @@ -59,7 +59,7 @@ internal static ConversationItemDeletedUpdate DeserializeConversationItemDeleted return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string itemId = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static ConversationItemDeletedUpdate DeserializeConversationItemDeleted itemId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemDeletedUpdate(eventId, kind, additionalBinaryDataProperties, itemId); } diff --git a/src/Generated/Models/ConversationItemDeletedUpdate.cs b/src/Generated/Models/ConversationItemDeletedUpdate.cs index cf51f880f..c13b7b4fc 100644 --- a/src/Generated/Models/ConversationItemDeletedUpdate.cs +++ b/src/Generated/Models/ConversationItemDeletedUpdate.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemDeletedUpdate : ConversationUpdate { - internal ConversationItemDeletedUpdate(string eventId, string itemId) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemDeleted) + internal ConversationItemDeletedUpdate(string eventId, string itemId) : base(eventId, ConversationUpdateKind.ItemDeleted) { ItemId = itemId; } - internal ConversationItemDeletedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemDeletedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId) : base(eventId, kind, additionalBinaryDataProperties) { ItemId = itemId; } diff --git a/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.Serialization.cs index ac6ea7c7c..3cfbbea93 100644 --- a/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.Serialization.cs @@ -74,7 +74,7 @@ internal static ConversationItemStreamingAudioFinishedUpdate DeserializeConversa return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -112,10 +112,7 @@ internal static ConversationItemStreamingAudioFinishedUpdate DeserializeConversa contentIndex = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemStreamingAudioFinishedUpdate( eventId, diff --git a/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.cs b/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.cs index 95ff09046..13b867c1f 100644 --- a/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.cs +++ b/src/Generated/Models/ConversationItemStreamingAudioFinishedUpdate.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemStreamingAudioFinishedUpdate : ConversationUpdate { - internal ConversationItemStreamingAudioFinishedUpdate(string eventId, string responseId, string itemId, int outputIndex, int contentIndex) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingPartAudioFinished) + internal ConversationItemStreamingAudioFinishedUpdate(string eventId, string responseId, string itemId, int outputIndex, int contentIndex) : base(eventId, ConversationUpdateKind.ItemStreamingPartAudioFinished) { ResponseId = responseId; ItemId = itemId; @@ -17,7 +17,7 @@ internal ConversationItemStreamingAudioFinishedUpdate(string eventId, string res ContentIndex = contentIndex; } - internal ConversationItemStreamingAudioFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemStreamingAudioFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.Serialization.cs index 328a2fd15..513873c25 100644 --- a/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.Serialization.cs @@ -79,7 +79,7 @@ internal static ConversationItemStreamingAudioTranscriptionFinishedUpdate Deseri return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static ConversationItemStreamingAudioTranscriptionFinishedUpdate Deseri transcript = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemStreamingAudioTranscriptionFinishedUpdate( eventId, diff --git a/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs b/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs index 32c919a71..4fb719863 100644 --- a/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs +++ b/src/Generated/Models/ConversationItemStreamingAudioTranscriptionFinishedUpdate.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemStreamingAudioTranscriptionFinishedUpdate : ConversationUpdate { - internal ConversationItemStreamingAudioTranscriptionFinishedUpdate(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string transcript) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingPartAudioTranscriptionFinished) + internal ConversationItemStreamingAudioTranscriptionFinishedUpdate(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string transcript) : base(eventId, ConversationUpdateKind.ItemStreamingPartAudioTranscriptionFinished) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal ConversationItemStreamingAudioTranscriptionFinishedUpdate(string eventI Transcript = transcript; } - internal ConversationItemStreamingAudioTranscriptionFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string transcript) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemStreamingAudioTranscriptionFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string transcript) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/ConversationItemStreamingFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemStreamingFinishedUpdate.Serialization.cs index 6709cf10b..e36fc817a 100644 --- a/src/Generated/Models/ConversationItemStreamingFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemStreamingFinishedUpdate.Serialization.cs @@ -45,7 +45,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("item") != true) { writer.WritePropertyName("item"u8); - writer.WriteObjectValue(_internalItem, options); + writer.WriteObjectValue(_internalItem, options); } } @@ -69,7 +69,7 @@ internal static ConversationItemStreamingFinishedUpdate DeserializeConversationI return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; int outputIndex = default; @@ -101,10 +101,7 @@ internal static ConversationItemStreamingFinishedUpdate DeserializeConversationI internalItem = InternalRealtimeConversationResponseItem.DeserializeInternalRealtimeConversationResponseItem(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemStreamingFinishedUpdate( eventId, diff --git a/src/Generated/Models/ConversationItemStreamingFinishedUpdate.cs b/src/Generated/Models/ConversationItemStreamingFinishedUpdate.cs index ab9cf68c8..d75edd563 100644 --- a/src/Generated/Models/ConversationItemStreamingFinishedUpdate.cs +++ b/src/Generated/Models/ConversationItemStreamingFinishedUpdate.cs @@ -9,14 +9,14 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemStreamingFinishedUpdate : ConversationUpdate { - internal ConversationItemStreamingFinishedUpdate(string eventId, string responseId, int outputIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingFinished) + internal ConversationItemStreamingFinishedUpdate(string eventId, string responseId, int outputIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, ConversationUpdateKind.ItemStreamingFinished) { ResponseId = responseId; OutputIndex = outputIndex; _internalItem = internalItem; } - internal ConversationItemStreamingFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, int outputIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemStreamingFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, int outputIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; OutputIndex = outputIndex; diff --git a/src/Generated/Models/ConversationItemStreamingStartedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemStreamingStartedUpdate.Serialization.cs index 61d947d1e..b3870e13a 100644 --- a/src/Generated/Models/ConversationItemStreamingStartedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemStreamingStartedUpdate.Serialization.cs @@ -45,7 +45,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("item") != true) { writer.WritePropertyName("item"u8); - writer.WriteObjectValue(_internalItem, options); + writer.WriteObjectValue(_internalItem, options); } } @@ -69,7 +69,7 @@ internal static ConversationItemStreamingStartedUpdate DeserializeConversationIt return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; int itemIndex = default; @@ -101,10 +101,7 @@ internal static ConversationItemStreamingStartedUpdate DeserializeConversationIt internalItem = InternalRealtimeConversationResponseItem.DeserializeInternalRealtimeConversationResponseItem(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemStreamingStartedUpdate( eventId, diff --git a/src/Generated/Models/ConversationItemStreamingStartedUpdate.cs b/src/Generated/Models/ConversationItemStreamingStartedUpdate.cs index ddb0b6e65..9ab47de95 100644 --- a/src/Generated/Models/ConversationItemStreamingStartedUpdate.cs +++ b/src/Generated/Models/ConversationItemStreamingStartedUpdate.cs @@ -9,14 +9,14 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemStreamingStartedUpdate : ConversationUpdate { - internal ConversationItemStreamingStartedUpdate(string eventId, string responseId, int itemIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingStarted) + internal ConversationItemStreamingStartedUpdate(string eventId, string responseId, int itemIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, ConversationUpdateKind.ItemStreamingStarted) { ResponseId = responseId; ItemIndex = itemIndex; _internalItem = internalItem; } - internal ConversationItemStreamingStartedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, int itemIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemStreamingStartedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, int itemIndex, InternalRealtimeConversationResponseItem internalItem) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemIndex = itemIndex; diff --git a/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.Serialization.cs index 7fcbc0dbc..4a6c8b82d 100644 --- a/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.Serialization.cs @@ -79,7 +79,7 @@ internal static ConversationItemStreamingTextFinishedUpdate DeserializeConversat return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static ConversationItemStreamingTextFinishedUpdate DeserializeConversat text = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemStreamingTextFinishedUpdate( eventId, diff --git a/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.cs b/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.cs index 4fa53a154..43b1b4682 100644 --- a/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.cs +++ b/src/Generated/Models/ConversationItemStreamingTextFinishedUpdate.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemStreamingTextFinishedUpdate : ConversationUpdate { - internal ConversationItemStreamingTextFinishedUpdate(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string text) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingPartTextFinished) + internal ConversationItemStreamingTextFinishedUpdate(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string text) : base(eventId, ConversationUpdateKind.ItemStreamingPartTextFinished) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal ConversationItemStreamingTextFinishedUpdate(string eventId, string resp Text = text; } - internal ConversationItemStreamingTextFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string text) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemStreamingTextFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string text) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/ConversationItemTruncatedUpdate.Serialization.cs b/src/Generated/Models/ConversationItemTruncatedUpdate.Serialization.cs index 8560e0f66..352ec9ca2 100644 --- a/src/Generated/Models/ConversationItemTruncatedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationItemTruncatedUpdate.Serialization.cs @@ -69,7 +69,7 @@ internal static ConversationItemTruncatedUpdate DeserializeConversationItemTrunc return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string itemId = default; int contentIndex = default; @@ -101,10 +101,7 @@ internal static ConversationItemTruncatedUpdate DeserializeConversationItemTrunc audioEndMs = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationItemTruncatedUpdate( eventId, diff --git a/src/Generated/Models/ConversationItemTruncatedUpdate.cs b/src/Generated/Models/ConversationItemTruncatedUpdate.cs index af0f9a51a..fab2fc08c 100644 --- a/src/Generated/Models/ConversationItemTruncatedUpdate.cs +++ b/src/Generated/Models/ConversationItemTruncatedUpdate.cs @@ -9,14 +9,14 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationItemTruncatedUpdate : ConversationUpdate { - internal ConversationItemTruncatedUpdate(string eventId, string itemId, int contentIndex, int audioEndMs) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemTruncated) + internal ConversationItemTruncatedUpdate(string eventId, string itemId, int contentIndex, int audioEndMs) : base(eventId, ConversationUpdateKind.ItemTruncated) { ItemId = itemId; ContentIndex = contentIndex; AudioEndMs = audioEndMs; } - internal ConversationItemTruncatedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int contentIndex, int audioEndMs) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationItemTruncatedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int contentIndex, int audioEndMs) : base(eventId, kind, additionalBinaryDataProperties) { ItemId = itemId; ContentIndex = contentIndex; diff --git a/src/Generated/Models/ConversationOutputTokenUsageDetails.Serialization.cs b/src/Generated/Models/ConversationOutputTokenUsageDetails.Serialization.cs index 9661ae7f7..d7a5fc612 100644 --- a/src/Generated/Models/ConversationOutputTokenUsageDetails.Serialization.cs +++ b/src/Generated/Models/ConversationOutputTokenUsageDetails.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("audio_tokens"u8); writer.WriteNumberValue(AudioTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static ConversationOutputTokenUsageDetails DeserializeConversationOutpu audioTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationOutputTokenUsageDetails(textTokenCount, audioTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ConversationRateLimitDetailsItem.Serialization.cs b/src/Generated/Models/ConversationRateLimitDetailsItem.Serialization.cs index 1579cc3cf..acb78d434 100644 --- a/src/Generated/Models/ConversationRateLimitDetailsItem.Serialization.cs +++ b/src/Generated/Models/ConversationRateLimitDetailsItem.Serialization.cs @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("reset_seconds"u8); writer.WriteNumberValue(Convert.ToDouble(TimeUntilReset.ToString("s\\.FFF"))); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static ConversationRateLimitDetailsItem DeserializeConversationRateLimi timeUntilReset = TimeSpan.FromSeconds(prop.Value.GetDouble()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationRateLimitDetailsItem(name, maximumCount, remainingCount, timeUntilReset, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ConversationRateLimitsUpdate.Serialization.cs b/src/Generated/Models/ConversationRateLimitsUpdate.Serialization.cs index b5f2a7e07..2000e13fa 100644 --- a/src/Generated/Models/ConversationRateLimitsUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationRateLimitsUpdate.Serialization.cs @@ -64,7 +64,7 @@ internal static ConversationRateLimitsUpdate DeserializeConversationRateLimitsUp return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); IReadOnlyList allDetails = default; foreach (var prop in element.EnumerateObject()) @@ -89,10 +89,7 @@ internal static ConversationRateLimitsUpdate DeserializeConversationRateLimitsUp allDetails = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationRateLimitsUpdate(eventId, kind, additionalBinaryDataProperties, allDetails); } diff --git a/src/Generated/Models/ConversationRateLimitsUpdate.cs b/src/Generated/Models/ConversationRateLimitsUpdate.cs index 446f87f45..dfe49bd87 100644 --- a/src/Generated/Models/ConversationRateLimitsUpdate.cs +++ b/src/Generated/Models/ConversationRateLimitsUpdate.cs @@ -10,12 +10,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationRateLimitsUpdate : ConversationUpdate { - internal ConversationRateLimitsUpdate(string eventId, IEnumerable allDetails) : base(eventId, RealtimeConversation.ConversationUpdateKind.RateLimitsUpdated) + internal ConversationRateLimitsUpdate(string eventId, IEnumerable allDetails) : base(eventId, ConversationUpdateKind.RateLimitsUpdated) { AllDetails = allDetails.ToList(); } - internal ConversationRateLimitsUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, IReadOnlyList allDetails) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationRateLimitsUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, IReadOnlyList allDetails) : base(eventId, kind, additionalBinaryDataProperties) { AllDetails = allDetails; } diff --git a/src/Generated/Models/ConversationResponseFinishedUpdate.Serialization.cs b/src/Generated/Models/ConversationResponseFinishedUpdate.Serialization.cs index 4f77c879b..8d24424fe 100644 --- a/src/Generated/Models/ConversationResponseFinishedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationResponseFinishedUpdate.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("response") != true) { writer.WritePropertyName("response"u8); - writer.WriteObjectValue(_internalResponse, options); + writer.WriteObjectValue(_internalResponse, options); } } @@ -59,7 +59,7 @@ internal static ConversationResponseFinishedUpdate DeserializeConversationRespon return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRealtimeResponse internalResponse = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static ConversationResponseFinishedUpdate DeserializeConversationRespon internalResponse = InternalRealtimeResponse.DeserializeInternalRealtimeResponse(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationResponseFinishedUpdate(eventId, kind, additionalBinaryDataProperties, internalResponse); } diff --git a/src/Generated/Models/ConversationResponseFinishedUpdate.cs b/src/Generated/Models/ConversationResponseFinishedUpdate.cs index 9f8a13be7..ceb4b6c23 100644 --- a/src/Generated/Models/ConversationResponseFinishedUpdate.cs +++ b/src/Generated/Models/ConversationResponseFinishedUpdate.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationResponseFinishedUpdate : ConversationUpdate { - internal ConversationResponseFinishedUpdate(string eventId, InternalRealtimeResponse internalResponse) : base(eventId, RealtimeConversation.ConversationUpdateKind.ResponseFinished) + internal ConversationResponseFinishedUpdate(string eventId, InternalRealtimeResponse internalResponse) : base(eventId, ConversationUpdateKind.ResponseFinished) { _internalResponse = internalResponse; } - internal ConversationResponseFinishedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponse internalResponse) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationResponseFinishedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponse internalResponse) : base(eventId, kind, additionalBinaryDataProperties) { _internalResponse = internalResponse; } diff --git a/src/Generated/Models/ConversationResponseOptions.Serialization.cs b/src/Generated/Models/ConversationResponseOptions.Serialization.cs index e7772a67b..7733221a5 100644 --- a/src/Generated/Models/ConversationResponseOptions.Serialization.cs +++ b/src/Generated/Models/ConversationResponseOptions.Serialization.cs @@ -81,7 +81,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(MaxOutputTokens) && _additionalBinaryDataProperties?.ContainsKey("max_output_tokens") != true) { writer.WritePropertyName("max_output_tokens"u8); - writer.WriteObjectValue(MaxOutputTokens, options); + writer.WriteObjectValue(MaxOutputTokens, options); } if (Optional.IsCollectionDefined(OverrideItems) && _additionalBinaryDataProperties?.ContainsKey("input") != true) { @@ -115,7 +115,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -162,7 +162,7 @@ internal static ConversationResponseOptions DeserializeConversationResponseOptio float? temperature = default; IDictionary metadata = default; ResponseConversationSelection? conversationSelection = default; - RealtimeConversation.ConversationMaxTokensChoice maxOutputTokens = default; + ConversationMaxTokensChoice maxOutputTokens = default; IList overrideItems = default; IList internalModalities = default; BinaryData internalToolChoice = default; @@ -251,7 +251,7 @@ internal static ConversationResponseOptions DeserializeConversationResponseOptio { continue; } - maxOutputTokens = RealtimeConversation.ConversationMaxTokensChoice.DeserializeConversationMaxTokensChoice(prop.Value, options); + maxOutputTokens = ConversationMaxTokensChoice.DeserializeConversationMaxTokensChoice(prop.Value, options); continue; } if (prop.NameEquals("input"u8)) @@ -291,10 +291,7 @@ internal static ConversationResponseOptions DeserializeConversationResponseOptio internalToolChoice = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationResponseOptions( instructions, diff --git a/src/Generated/Models/ConversationResponseOptions.cs b/src/Generated/Models/ConversationResponseOptions.cs index bf44530bc..e9b16d16d 100644 --- a/src/Generated/Models/ConversationResponseOptions.cs +++ b/src/Generated/Models/ConversationResponseOptions.cs @@ -20,7 +20,7 @@ public ConversationResponseOptions() _internalModalities = new ChangeTrackingList(); } - internal ConversationResponseOptions(string instructions, ConversationVoice? voice, ConversationAudioFormat? outputAudioFormat, IList tools, float? temperature, IDictionary metadata, ResponseConversationSelection? conversationSelection, RealtimeConversation.ConversationMaxTokensChoice maxOutputTokens, IList overrideItems, IList internalModalities, BinaryData internalToolChoice, IDictionary additionalBinaryDataProperties) + internal ConversationResponseOptions(string instructions, ConversationVoice? voice, ConversationAudioFormat? outputAudioFormat, IList tools, float? temperature, IDictionary metadata, ResponseConversationSelection? conversationSelection, ConversationMaxTokensChoice maxOutputTokens, IList overrideItems, IList internalModalities, BinaryData internalToolChoice, IDictionary additionalBinaryDataProperties) { Instructions = instructions; Voice = voice; diff --git a/src/Generated/Models/ConversationResponseStartedUpdate.Serialization.cs b/src/Generated/Models/ConversationResponseStartedUpdate.Serialization.cs index c449ef621..fef5d774b 100644 --- a/src/Generated/Models/ConversationResponseStartedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationResponseStartedUpdate.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("response") != true) { writer.WritePropertyName("response"u8); - writer.WriteObjectValue(_internalResponse, options); + writer.WriteObjectValue(_internalResponse, options); } } @@ -59,7 +59,7 @@ internal static ConversationResponseStartedUpdate DeserializeConversationRespons return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRealtimeResponse internalResponse = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static ConversationResponseStartedUpdate DeserializeConversationRespons internalResponse = InternalRealtimeResponse.DeserializeInternalRealtimeResponse(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationResponseStartedUpdate(eventId, kind, additionalBinaryDataProperties, internalResponse); } diff --git a/src/Generated/Models/ConversationResponseStartedUpdate.cs b/src/Generated/Models/ConversationResponseStartedUpdate.cs index 38759ffc4..88ac087b9 100644 --- a/src/Generated/Models/ConversationResponseStartedUpdate.cs +++ b/src/Generated/Models/ConversationResponseStartedUpdate.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationResponseStartedUpdate : ConversationUpdate { - internal ConversationResponseStartedUpdate(string eventId, InternalRealtimeResponse internalResponse) : base(eventId, RealtimeConversation.ConversationUpdateKind.ResponseStarted) + internal ConversationResponseStartedUpdate(string eventId, InternalRealtimeResponse internalResponse) : base(eventId, ConversationUpdateKind.ResponseStarted) { _internalResponse = internalResponse; } - internal ConversationResponseStartedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponse internalResponse) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationResponseStartedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponse internalResponse) : base(eventId, kind, additionalBinaryDataProperties) { _internalResponse = internalResponse; } diff --git a/src/Generated/Models/ConversationSessionConfiguredUpdate.Serialization.cs b/src/Generated/Models/ConversationSessionConfiguredUpdate.Serialization.cs index ee62e9ca5..bb455794c 100644 --- a/src/Generated/Models/ConversationSessionConfiguredUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationSessionConfiguredUpdate.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("session") != true) { writer.WritePropertyName("session"u8); - writer.WriteObjectValue(_internalSession, options); + writer.WriteObjectValue(_internalSession, options); } } @@ -59,7 +59,7 @@ internal static ConversationSessionConfiguredUpdate DeserializeConversationSessi return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRealtimeResponseSession internalSession = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static ConversationSessionConfiguredUpdate DeserializeConversationSessi internalSession = InternalRealtimeResponseSession.DeserializeInternalRealtimeResponseSession(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationSessionConfiguredUpdate(eventId, kind, additionalBinaryDataProperties, internalSession); } diff --git a/src/Generated/Models/ConversationSessionConfiguredUpdate.cs b/src/Generated/Models/ConversationSessionConfiguredUpdate.cs index 65a084a4b..dc270af26 100644 --- a/src/Generated/Models/ConversationSessionConfiguredUpdate.cs +++ b/src/Generated/Models/ConversationSessionConfiguredUpdate.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationSessionConfiguredUpdate : ConversationUpdate { - internal ConversationSessionConfiguredUpdate(string eventId, InternalRealtimeResponseSession internalSession) : base(eventId, RealtimeConversation.ConversationUpdateKind.SessionConfigured) + internal ConversationSessionConfiguredUpdate(string eventId, InternalRealtimeResponseSession internalSession) : base(eventId, ConversationUpdateKind.SessionConfigured) { _internalSession = internalSession; } - internal ConversationSessionConfiguredUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponseSession internalSession) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationSessionConfiguredUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponseSession internalSession) : base(eventId, kind, additionalBinaryDataProperties) { _internalSession = internalSession; } diff --git a/src/Generated/Models/ConversationSessionOptions.Serialization.cs b/src/Generated/Models/ConversationSessionOptions.Serialization.cs index b02b97b35..c91fc9863 100644 --- a/src/Generated/Models/ConversationSessionOptions.Serialization.cs +++ b/src/Generated/Models/ConversationSessionOptions.Serialization.cs @@ -69,27 +69,13 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(TurnDetectionOptions) && _additionalBinaryDataProperties?.ContainsKey("turn_detection") != true) { - if (TurnDetectionOptions != null) - { - writer.WritePropertyName("turn_detection"u8); - writer.WriteObjectValue(TurnDetectionOptions, options); - } - else - { - writer.WriteNull("turnDetection"u8); - } + writer.WritePropertyName("turn_detection"u8); + writer.WriteObjectValue(TurnDetectionOptions, options); } if (Optional.IsDefined(InputTranscriptionOptions) && _additionalBinaryDataProperties?.ContainsKey("input_audio_transcription") != true) { - if (InputTranscriptionOptions != null) - { - writer.WritePropertyName("input_audio_transcription"u8); - writer.WriteObjectValue(InputTranscriptionOptions, options); - } - else - { - writer.WriteNull("inputAudioTranscription"u8); - } + writer.WritePropertyName("input_audio_transcription"u8); + writer.WriteObjectValue(InputTranscriptionOptions, options); } if (Optional.IsCollectionDefined(_internalModalities) && _additionalBinaryDataProperties?.ContainsKey("modalities") != true) { @@ -125,7 +111,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -296,10 +282,7 @@ internal static ConversationSessionOptions DeserializeConversationSessionOptions maxResponseOutputTokens = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationSessionOptions( instructions, diff --git a/src/Generated/Models/ConversationSessionStartedUpdate.Serialization.cs b/src/Generated/Models/ConversationSessionStartedUpdate.Serialization.cs index af0750875..b1f22da01 100644 --- a/src/Generated/Models/ConversationSessionStartedUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationSessionStartedUpdate.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("session") != true) { writer.WritePropertyName("session"u8); - writer.WriteObjectValue(_internalSession, options); + writer.WriteObjectValue(_internalSession, options); } } @@ -59,7 +59,7 @@ internal static ConversationSessionStartedUpdate DeserializeConversationSessionS return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRealtimeResponseSession internalSession = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static ConversationSessionStartedUpdate DeserializeConversationSessionS internalSession = InternalRealtimeResponseSession.DeserializeInternalRealtimeResponseSession(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationSessionStartedUpdate(eventId, kind, additionalBinaryDataProperties, internalSession); } diff --git a/src/Generated/Models/ConversationSessionStartedUpdate.cs b/src/Generated/Models/ConversationSessionStartedUpdate.cs index e3dda4abc..ba2631e10 100644 --- a/src/Generated/Models/ConversationSessionStartedUpdate.cs +++ b/src/Generated/Models/ConversationSessionStartedUpdate.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationSessionStartedUpdate : ConversationUpdate { - internal ConversationSessionStartedUpdate(string eventId, InternalRealtimeResponseSession internalSession) : base(eventId, RealtimeConversation.ConversationUpdateKind.SessionStarted) + internal ConversationSessionStartedUpdate(string eventId, InternalRealtimeResponseSession internalSession) : base(eventId, ConversationUpdateKind.SessionStarted) { _internalSession = internalSession; } - internal ConversationSessionStartedUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponseSession internalSession) : base(eventId, kind, additionalBinaryDataProperties) + internal ConversationSessionStartedUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeResponseSession internalSession) : base(eventId, kind, additionalBinaryDataProperties) { _internalSession = internalSession; } diff --git a/src/Generated/Models/ConversationStatusDetails.Serialization.cs b/src/Generated/Models/ConversationStatusDetails.Serialization.cs index 7a9aaff72..b7b3aa3b1 100644 --- a/src/Generated/Models/ConversationStatusDetails.Serialization.cs +++ b/src/Generated/Models/ConversationStatusDetails.Serialization.cs @@ -40,9 +40,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(Error) && _additionalBinaryDataProperties?.ContainsKey("error") != true) { writer.WritePropertyName("error"u8); - writer.WriteObjectValue(Error, options); + writer.WriteObjectValue(Error, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -115,10 +115,7 @@ internal static ConversationStatusDetails DeserializeConversationStatusDetails(J error = InternalRealtimeResponseStatusDetailsError.DeserializeInternalRealtimeResponseStatusDetailsError(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationStatusDetails(statusKind, incompleteReason, error, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ConversationTokenUsage.Serialization.cs b/src/Generated/Models/ConversationTokenUsage.Serialization.cs index e7c45e9e6..1ca3c5b52 100644 --- a/src/Generated/Models/ConversationTokenUsage.Serialization.cs +++ b/src/Generated/Models/ConversationTokenUsage.Serialization.cs @@ -52,7 +52,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total_tokens"u8); writer.WriteNumberValue(TotalTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -145,10 +145,7 @@ internal static ConversationTokenUsage DeserializeConversationTokenUsage(JsonEle totalTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ConversationTokenUsage( inputTokenDetails, diff --git a/src/Generated/Models/ConversationTool.Serialization.cs b/src/Generated/Models/ConversationTool.Serialization.cs index b432b57fd..cee9fb1ee 100644 --- a/src/Generated/Models/ConversationTool.Serialization.cs +++ b/src/Generated/Models/ConversationTool.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ConversationToolChoiceKind.Serialization.cs b/src/Generated/Models/ConversationToolChoiceKind.Serialization.cs index 4d7f2010d..106ef37f7 100644 --- a/src/Generated/Models/ConversationToolChoiceKind.Serialization.cs +++ b/src/Generated/Models/ConversationToolChoiceKind.Serialization.cs @@ -8,27 +8,27 @@ namespace OpenAI.RealtimeConversation { internal static partial class ConversationToolChoiceKindExtensions { - public static string ToSerialString(this RealtimeConversation.ConversationToolChoiceKind value) => value switch + public static string ToSerialString(this ConversationToolChoiceKind value) => value switch { - RealtimeConversation.ConversationToolChoiceKind.Auto => "auto", - RealtimeConversation.ConversationToolChoiceKind.None => "none", - RealtimeConversation.ConversationToolChoiceKind.Required => "required", + ConversationToolChoiceKind.Auto => "auto", + ConversationToolChoiceKind.None => "none", + ConversationToolChoiceKind.Required => "required", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ConversationToolChoiceKind value.") }; - public static RealtimeConversation.ConversationToolChoiceKind ToConversationToolChoiceKind(this string value) + public static ConversationToolChoiceKind ToConversationToolChoiceKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "auto")) { - return RealtimeConversation.ConversationToolChoiceKind.Auto; + return ConversationToolChoiceKind.Auto; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "none")) { - return RealtimeConversation.ConversationToolChoiceKind.None; + return ConversationToolChoiceKind.None; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "required")) { - return RealtimeConversation.ConversationToolChoiceKind.Required; + return ConversationToolChoiceKind.Required; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ConversationToolChoiceKind value."); } diff --git a/src/Generated/Models/ConversationTurnDetectionKind.Serialization.cs b/src/Generated/Models/ConversationTurnDetectionKind.Serialization.cs index fd991f4c0..b9c1d3096 100644 --- a/src/Generated/Models/ConversationTurnDetectionKind.Serialization.cs +++ b/src/Generated/Models/ConversationTurnDetectionKind.Serialization.cs @@ -8,17 +8,17 @@ namespace OpenAI.RealtimeConversation { internal static partial class ConversationTurnDetectionKindExtensions { - public static string ToSerialString(this RealtimeConversation.ConversationTurnDetectionKind value) => value switch + public static string ToSerialString(this ConversationTurnDetectionKind value) => value switch { - RealtimeConversation.ConversationTurnDetectionKind.ServerVoiceActivityDetection => "server_vad", + ConversationTurnDetectionKind.ServerVoiceActivityDetection => "server_vad", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ConversationTurnDetectionKind value.") }; - public static RealtimeConversation.ConversationTurnDetectionKind ToConversationTurnDetectionKind(this string value) + public static ConversationTurnDetectionKind ToConversationTurnDetectionKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "server_vad")) { - return RealtimeConversation.ConversationTurnDetectionKind.ServerVoiceActivityDetection; + return ConversationTurnDetectionKind.ServerVoiceActivityDetection; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ConversationTurnDetectionKind value."); } diff --git a/src/Generated/Models/ConversationTurnDetectionOptions.Serialization.cs b/src/Generated/Models/ConversationTurnDetectionOptions.Serialization.cs index d308a20ee..f122cafbd 100644 --- a/src/Generated/Models/ConversationTurnDetectionOptions.Serialization.cs +++ b/src/Generated/Models/ConversationTurnDetectionOptions.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.RealtimeConversation { - [PersistableModelProxy(typeof(UnknownRealtimeTurnDetection))] - public abstract partial class ConversationTurnDetectionOptions : IJsonModel + public partial class ConversationTurnDetectionOptions : IJsonModel { internal ConversationTurnDetectionOptions() { @@ -36,7 +35,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -67,7 +66,7 @@ protected virtual ConversationTurnDetectionOptions JsonModelCreateCore(ref Utf8J throw new FormatException($"The model {nameof(ConversationTurnDetectionOptions)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ConversationTurnDetectionOptions.DeserializeConversationTurnDetectionOptions(document.RootElement, options); + return DeserializeConversationTurnDetectionOptions(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -94,7 +93,7 @@ protected virtual ConversationTurnDetectionOptions PersistableModelCreateCore(Bi case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ConversationTurnDetectionOptions.DeserializeConversationTurnDetectionOptions(document.RootElement, options); + return DeserializeConversationTurnDetectionOptions(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ConversationTurnDetectionOptions)} does not support reading '{options.Format}' format."); @@ -116,7 +115,7 @@ public static explicit operator ConversationTurnDetectionOptions(ClientResult re { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ConversationTurnDetectionOptions.DeserializeConversationTurnDetectionOptions(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeConversationTurnDetectionOptions(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ConversationTurnDetectionOptions.cs b/src/Generated/Models/ConversationTurnDetectionOptions.cs index bf1534995..810d69398 100644 --- a/src/Generated/Models/ConversationTurnDetectionOptions.cs +++ b/src/Generated/Models/ConversationTurnDetectionOptions.cs @@ -7,16 +7,16 @@ namespace OpenAI.RealtimeConversation { - public abstract partial class ConversationTurnDetectionOptions + public partial class ConversationTurnDetectionOptions { private protected IDictionary _additionalBinaryDataProperties; - private protected ConversationTurnDetectionOptions(RealtimeConversation.ConversationTurnDetectionKind kind) + private protected ConversationTurnDetectionOptions(ConversationTurnDetectionKind kind) { Kind = kind; } - internal ConversationTurnDetectionOptions(RealtimeConversation.ConversationTurnDetectionKind kind, IDictionary additionalBinaryDataProperties) + internal ConversationTurnDetectionOptions(ConversationTurnDetectionKind kind, IDictionary additionalBinaryDataProperties) { Kind = kind; _additionalBinaryDataProperties = additionalBinaryDataProperties; diff --git a/src/Generated/Models/ConversationUpdate.Serialization.cs b/src/Generated/Models/ConversationUpdate.Serialization.cs index e1256ed33..08fe03b63 100644 --- a/src/Generated/Models/ConversationUpdate.Serialization.cs +++ b/src/Generated/Models/ConversationUpdate.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.RealtimeConversation { - [PersistableModelProxy(typeof(UnknownRealtimeServerEvent))] - public abstract partial class ConversationUpdate : IJsonModel + public partial class ConversationUpdate : IJsonModel { internal ConversationUpdate() { @@ -41,7 +40,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -72,7 +71,7 @@ protected virtual ConversationUpdate JsonModelCreateCore(ref Utf8JsonReader read throw new FormatException($"The model {nameof(ConversationUpdate)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ConversationUpdate.DeserializeConversationUpdate(document.RootElement, options); + return DeserializeConversationUpdate(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -99,7 +98,7 @@ protected virtual ConversationUpdate PersistableModelCreateCore(BinaryData data, case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ConversationUpdate.DeserializeConversationUpdate(document.RootElement, options); + return DeserializeConversationUpdate(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ConversationUpdate)} does not support reading '{options.Format}' format."); @@ -121,7 +120,7 @@ public static explicit operator ConversationUpdate(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ConversationUpdate.DeserializeConversationUpdate(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeConversationUpdate(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ConversationUpdate.cs b/src/Generated/Models/ConversationUpdate.cs index 75eb30dc3..8fd2bfb48 100644 --- a/src/Generated/Models/ConversationUpdate.cs +++ b/src/Generated/Models/ConversationUpdate.cs @@ -7,17 +7,17 @@ namespace OpenAI.RealtimeConversation { - public abstract partial class ConversationUpdate + public partial class ConversationUpdate { private protected IDictionary _additionalBinaryDataProperties; - private protected ConversationUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind) + private protected ConversationUpdate(string eventId, ConversationUpdateKind kind) { EventId = eventId; Kind = kind; } - internal ConversationUpdate(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties) + internal ConversationUpdate(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties) { EventId = eventId; Kind = kind; diff --git a/src/Generated/Models/DeveloperChatMessage.Serialization.cs b/src/Generated/Models/DeveloperChatMessage.Serialization.cs index 9fa960482..c017616a4 100644 --- a/src/Generated/Models/DeveloperChatMessage.Serialization.cs +++ b/src/Generated/Models/DeveloperChatMessage.Serialization.cs @@ -48,7 +48,7 @@ internal static DeveloperChatMessage DeserializeDeveloperChatMessage(JsonElement return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string participantName = default; foreach (var prop in element.EnumerateObject()) @@ -68,10 +68,7 @@ internal static DeveloperChatMessage DeserializeDeveloperChatMessage(JsonElement participantName = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new DeveloperChatMessage(content, role, additionalBinaryDataProperties, participantName); } diff --git a/src/Generated/Models/DeveloperChatMessage.cs b/src/Generated/Models/DeveloperChatMessage.cs index b391b2890..5d416bb89 100644 --- a/src/Generated/Models/DeveloperChatMessage.cs +++ b/src/Generated/Models/DeveloperChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { public partial class DeveloperChatMessage : ChatMessage { - internal DeveloperChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string participantName) : base(content, role, additionalBinaryDataProperties) + internal DeveloperChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties, string participantName) : base(content, role, additionalBinaryDataProperties) { ParticipantName = participantName; } diff --git a/src/Generated/Models/EmbeddingGenerationOptions.Serialization.cs b/src/Generated/Models/EmbeddingGenerationOptions.Serialization.cs index c71be3f7c..df010fc12 100644 --- a/src/Generated/Models/EmbeddingGenerationOptions.Serialization.cs +++ b/src/Generated/Models/EmbeddingGenerationOptions.Serialization.cs @@ -59,7 +59,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("user"u8); writer.WriteStringValue(EndUserId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -140,10 +140,7 @@ internal static EmbeddingGenerationOptions DeserializeEmbeddingGenerationOptions endUserId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new EmbeddingGenerationOptions( dimensions, diff --git a/src/Generated/Models/EmbeddingTokenUsage.Serialization.cs b/src/Generated/Models/EmbeddingTokenUsage.Serialization.cs index 49f4c9685..4e0259033 100644 --- a/src/Generated/Models/EmbeddingTokenUsage.Serialization.cs +++ b/src/Generated/Models/EmbeddingTokenUsage.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total_tokens"u8); writer.WriteNumberValue(TotalTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static EmbeddingTokenUsage DeserializeEmbeddingTokenUsage(JsonElement e totalTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new EmbeddingTokenUsage(inputTokenCount, totalTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FileChunkingStrategy.Serialization.cs b/src/Generated/Models/FileChunkingStrategy.Serialization.cs index 42ed82c29..db0c67603 100644 --- a/src/Generated/Models/FileChunkingStrategy.Serialization.cs +++ b/src/Generated/Models/FileChunkingStrategy.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/FileDeletionResult.Serialization.cs b/src/Generated/Models/FileDeletionResult.Serialization.cs index 455776386..060a64dc4 100644 --- a/src/Generated/Models/FileDeletionResult.Serialization.cs +++ b/src/Generated/Models/FileDeletionResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static FileDeletionResult DeserializeFileDeletionResult(JsonElement ele @object = new InternalDeleteFileResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FileDeletionResult(deleted, fileId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FileDeletionResult.cs b/src/Generated/Models/FileDeletionResult.cs index a5b822c49..16dcb93b1 100644 --- a/src/Generated/Models/FileDeletionResult.cs +++ b/src/Generated/Models/FileDeletionResult.cs @@ -21,7 +21,7 @@ internal FileDeletionResult(bool deleted, string fileId, InternalDeleteFileRespo { Deleted = deleted; FileId = fileId; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/FileFromStoreRemovalResult.Serialization.cs b/src/Generated/Models/FileFromStoreRemovalResult.Serialization.cs index fb331ff03..a7909c761 100644 --- a/src/Generated/Models/FileFromStoreRemovalResult.Serialization.cs +++ b/src/Generated/Models/FileFromStoreRemovalResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static FileFromStoreRemovalResult DeserializeFileFromStoreRemovalResult @object = new InternalDeleteVectorStoreFileResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FileFromStoreRemovalResult(fileId, removed, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FileFromStoreRemovalResult.cs b/src/Generated/Models/FileFromStoreRemovalResult.cs index b6d00d34e..d2934eb72 100644 --- a/src/Generated/Models/FileFromStoreRemovalResult.cs +++ b/src/Generated/Models/FileFromStoreRemovalResult.cs @@ -21,7 +21,7 @@ internal FileFromStoreRemovalResult(string fileId, bool removed, InternalDeleteV { FileId = fileId; Removed = removed; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/FilePurpose.Serialization.cs b/src/Generated/Models/FilePurpose.Serialization.cs index 2fed310a1..e17ab21b2 100644 --- a/src/Generated/Models/FilePurpose.Serialization.cs +++ b/src/Generated/Models/FilePurpose.Serialization.cs @@ -2,55 +2,9 @@ #nullable disable -using System; - namespace OpenAI.Files { internal static partial class FilePurposeExtensions { - public static string ToSerialString(this Files.FilePurpose value) => value switch - { - Files.FilePurpose.Assistants => "assistants", - Files.FilePurpose.AssistantsOutput => "assistants_output", - Files.FilePurpose.Batch => "batch", - Files.FilePurpose.BatchOutput => "batch_output", - Files.FilePurpose.FineTune => "fine-tune", - Files.FilePurpose.FineTuneResults => "fine-tune-results", - Files.FilePurpose.Vision => "vision", - _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FilePurpose value.") - }; - - public static Files.FilePurpose ToFilePurpose(this string value) - { - if (StringComparer.OrdinalIgnoreCase.Equals(value, "assistants")) - { - return Files.FilePurpose.Assistants; - } - if (StringComparer.OrdinalIgnoreCase.Equals(value, "assistants_output")) - { - return Files.FilePurpose.AssistantsOutput; - } - if (StringComparer.OrdinalIgnoreCase.Equals(value, "batch")) - { - return Files.FilePurpose.Batch; - } - if (StringComparer.OrdinalIgnoreCase.Equals(value, "batch_output")) - { - return Files.FilePurpose.BatchOutput; - } - if (StringComparer.OrdinalIgnoreCase.Equals(value, "fine-tune")) - { - return Files.FilePurpose.FineTune; - } - if (StringComparer.OrdinalIgnoreCase.Equals(value, "fine-tune-results")) - { - return Files.FilePurpose.FineTuneResults; - } - if (StringComparer.OrdinalIgnoreCase.Equals(value, "vision")) - { - return Files.FilePurpose.Vision; - } - throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FilePurpose value."); - } } } diff --git a/src/Generated/Models/FileSearchCallResponseItem.Serialization.cs b/src/Generated/Models/FileSearchCallResponseItem.Serialization.cs new file mode 100644 index 000000000..19ede7a6f --- /dev/null +++ b/src/Generated/Models/FileSearchCallResponseItem.Serialization.cs @@ -0,0 +1,208 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FileSearchCallResponseItem : IJsonModel + { + internal FileSearchCallResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FileSearchCallResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("queries") != true) + { + writer.WritePropertyName("queries"u8); + writer.WriteStartArray(); + foreach (string item in Queries) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("results") != true) + { + if (Optional.IsCollectionDefined(Results)) + { + writer.WritePropertyName("results"u8); + writer.WriteStartArray(); + foreach (FileSearchCallResult item in Results) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + else + { + writer.WriteNull("results"u8); + } + } + } + + FileSearchCallResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (FileSearchCallResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FileSearchCallResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchCallResponseItem(document.RootElement, options); + } + + internal static FileSearchCallResponseItem DeserializeFileSearchCallResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + FileSearchCallStatus status = default; + IList queries = default; + IList results = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + status = prop.Value.GetString().ToFileSearchCallStatus(); + continue; + } + if (prop.NameEquals("queries"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(item.GetString()); + } + } + queries = array; + continue; + } + if (prop.NameEquals("results"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + results = new ChangeTrackingList(); + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(FileSearchCallResult.DeserializeFileSearchCallResult(item, options)); + } + results = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new FileSearchCallResponseItem( + @type, + id, + additionalBinaryDataProperties, + status, + queries, + results); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FileSearchCallResponseItem)} does not support writing '{options.Format}' format."); + } + } + + FileSearchCallResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (FileSearchCallResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeFileSearchCallResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchCallResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(FileSearchCallResponseItem fileSearchCallResponseItem) + { + if (fileSearchCallResponseItem == null) + { + return null; + } + return BinaryContent.Create(fileSearchCallResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator FileSearchCallResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeFileSearchCallResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/FileSearchCallResponseItem.cs b/src/Generated/Models/FileSearchCallResponseItem.cs new file mode 100644 index 000000000..5bac893bb --- /dev/null +++ b/src/Generated/Models/FileSearchCallResponseItem.cs @@ -0,0 +1,25 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class FileSearchCallResponseItem : ResponseItem + { + internal FileSearchCallResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, FileSearchCallStatus status, IList queries, IList results) : base(@type, id, additionalBinaryDataProperties) + { + Status = status; + Queries = queries; + Results = results; + } + + public FileSearchCallStatus Status { get; } + + public IList Queries { get; } + + public IList Results { get; set; } + } +} diff --git a/src/Generated/Models/FileSearchCallResult.Serialization.cs b/src/Generated/Models/FileSearchCallResult.Serialization.cs new file mode 100644 index 000000000..1bbf977ce --- /dev/null +++ b/src/Generated/Models/FileSearchCallResult.Serialization.cs @@ -0,0 +1,226 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FileSearchCallResult : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FileSearchCallResult)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(FileId) && _additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + if (Optional.IsDefined(Text) && _additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + if (Optional.IsDefined(Filename) && _additionalBinaryDataProperties?.ContainsKey("filename") != true) + { + writer.WritePropertyName("filename"u8); + writer.WriteStringValue(Filename); + } + if (Optional.IsCollectionDefined(Attributes) && _additionalBinaryDataProperties?.ContainsKey("attributes") != true) + { + writer.WritePropertyName("attributes"u8); + writer.WriteStartObject(); + foreach (var item in Attributes) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + writer.WriteEndObject(); + } + if (Optional.IsDefined(Score) && _additionalBinaryDataProperties?.ContainsKey("score") != true) + { + writer.WritePropertyName("score"u8); + writer.WriteNumberValue(Score.Value); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + FileSearchCallResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual FileSearchCallResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FileSearchCallResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchCallResult(document.RootElement, options); + } + + internal static FileSearchCallResult DeserializeFileSearchCallResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + string text = default; + string filename = default; + IDictionary attributes = default; + float? score = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("text"u8)) + { + text = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("filename"u8)) + { + filename = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("attributes"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, BinaryData.FromString(prop0.Value.GetRawText())); + } + } + attributes = dictionary; + continue; + } + if (prop.NameEquals("score"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + score = prop.Value.GetSingle(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new FileSearchCallResult( + fileId, + text, + filename, + attributes ?? new ChangeTrackingDictionary(), + score, + additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FileSearchCallResult)} does not support writing '{options.Format}' format."); + } + } + + FileSearchCallResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual FileSearchCallResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeFileSearchCallResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchCallResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(FileSearchCallResult fileSearchCallResult) + { + if (fileSearchCallResult == null) + { + return null; + } + return BinaryContent.Create(fileSearchCallResult, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator FileSearchCallResult(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeFileSearchCallResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/FileSearchCallResult.cs b/src/Generated/Models/FileSearchCallResult.cs new file mode 100644 index 000000000..db930c7ba --- /dev/null +++ b/src/Generated/Models/FileSearchCallResult.cs @@ -0,0 +1,46 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FileSearchCallResult + { + private protected IDictionary _additionalBinaryDataProperties; + + public FileSearchCallResult() + { + Attributes = new ChangeTrackingDictionary(); + } + + internal FileSearchCallResult(string fileId, string text, string filename, IDictionary attributes, float? score, IDictionary additionalBinaryDataProperties) + { + FileId = fileId; + Text = text; + Filename = filename; + Attributes = attributes; + Score = score; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string FileId { get; set; } + + public string Text { get; set; } + + public string Filename { get; set; } + + public IDictionary Attributes { get; } + + public float? Score { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/FileSearchCallStatus.Serialization.cs b/src/Generated/Models/FileSearchCallStatus.Serialization.cs new file mode 100644 index 000000000..82299e7e9 --- /dev/null +++ b/src/Generated/Models/FileSearchCallStatus.Serialization.cs @@ -0,0 +1,46 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class FileSearchCallStatusExtensions + { + public static string ToSerialString(this FileSearchCallStatus value) => value switch + { + FileSearchCallStatus.InProgress => "in_progress", + FileSearchCallStatus.Searching => "searching", + FileSearchCallStatus.Completed => "completed", + FileSearchCallStatus.Incomplete => "incomplete", + FileSearchCallStatus.Failed => "failed", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FileSearchCallStatus value.") + }; + + public static FileSearchCallStatus ToFileSearchCallStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return FileSearchCallStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "searching")) + { + return FileSearchCallStatus.Searching; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return FileSearchCallStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return FileSearchCallStatus.Incomplete; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "failed")) + { + return FileSearchCallStatus.Failed; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FileSearchCallStatus value."); + } + } +} diff --git a/src/Generated/Models/FileSearchRankingOptions.Serialization.cs b/src/Generated/Models/FileSearchRankingOptions.Serialization.cs index 04fe002e3..d42b59aab 100644 --- a/src/Generated/Models/FileSearchRankingOptions.Serialization.cs +++ b/src/Generated/Models/FileSearchRankingOptions.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("score_threshold"u8); writer.WriteNumberValue(_scoreThreshold); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static FileSearchRankingOptions DeserializeFileSearchRankingOptions(Jso scoreThreshold = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FileSearchRankingOptions(ranker, scoreThreshold, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FileSearchToolDefinition.Serialization.cs b/src/Generated/Models/FileSearchToolDefinition.Serialization.cs index 7fc0595e1..8c8dbc66c 100644 --- a/src/Generated/Models/FileSearchToolDefinition.Serialization.cs +++ b/src/Generated/Models/FileSearchToolDefinition.Serialization.cs @@ -24,7 +24,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (Optional.IsDefined(_fileSearch) && _additionalBinaryDataProperties?.ContainsKey("file_search") != true) { writer.WritePropertyName("file_search"u8); - writer.WriteObjectValue(_fileSearch, options); + writer.WriteObjectValue(_fileSearch, options); } } @@ -66,10 +66,7 @@ internal static FileSearchToolDefinition DeserializeFileSearchToolDefinition(Jso fileSearch = InternalAssistantToolsFileSearchFileSearch.DeserializeInternalAssistantToolsFileSearchFileSearch(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FileSearchToolDefinition(@type, additionalBinaryDataProperties, fileSearch); } diff --git a/src/Generated/Models/FileSearchToolRanker.cs b/src/Generated/Models/FileSearchToolRanker.cs new file mode 100644 index 000000000..6af4e03a0 --- /dev/null +++ b/src/Generated/Models/FileSearchToolRanker.cs @@ -0,0 +1,44 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct FileSearchToolRanker : IEquatable + { + private readonly string _value; + private const string AutoValue = "auto"; + private const string Default20241115Value = "default-2024-11-15"; + + public FileSearchToolRanker(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static FileSearchToolRanker Auto { get; } = new FileSearchToolRanker(AutoValue); + + public static FileSearchToolRanker Default20241115 { get; } = new FileSearchToolRanker(Default20241115Value); + + public static bool operator ==(FileSearchToolRanker left, FileSearchToolRanker right) => left.Equals(right); + + public static bool operator !=(FileSearchToolRanker left, FileSearchToolRanker right) => !left.Equals(right); + + public static implicit operator FileSearchToolRanker(string value) => new FileSearchToolRanker(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is FileSearchToolRanker other && Equals(other); + + public bool Equals(FileSearchToolRanker other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/FileSearchToolRankingOptions.Serialization.cs b/src/Generated/Models/FileSearchToolRankingOptions.Serialization.cs new file mode 100644 index 000000000..0af5cdad9 --- /dev/null +++ b/src/Generated/Models/FileSearchToolRankingOptions.Serialization.cs @@ -0,0 +1,157 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FileSearchToolRankingOptions : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FileSearchToolRankingOptions)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(Ranker) && _additionalBinaryDataProperties?.ContainsKey("ranker") != true) + { + writer.WritePropertyName("ranker"u8); + writer.WriteStringValue(Ranker.Value.ToString()); + } + if (Optional.IsDefined(ScoreThreshold) && _additionalBinaryDataProperties?.ContainsKey("score_threshold") != true) + { + writer.WritePropertyName("score_threshold"u8); + writer.WriteNumberValue(ScoreThreshold.Value); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + FileSearchToolRankingOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual FileSearchToolRankingOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FileSearchToolRankingOptions)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchToolRankingOptions(document.RootElement, options); + } + + internal static FileSearchToolRankingOptions DeserializeFileSearchToolRankingOptions(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + FileSearchToolRanker? ranker = default; + float? scoreThreshold = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("ranker"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + ranker = new FileSearchToolRanker(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("score_threshold"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + scoreThreshold = prop.Value.GetSingle(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new FileSearchToolRankingOptions(ranker, scoreThreshold, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FileSearchToolRankingOptions)} does not support writing '{options.Format}' format."); + } + } + + FileSearchToolRankingOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual FileSearchToolRankingOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeFileSearchToolRankingOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchToolRankingOptions)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(FileSearchToolRankingOptions fileSearchToolRankingOptions) + { + if (fileSearchToolRankingOptions == null) + { + return null; + } + return BinaryContent.Create(fileSearchToolRankingOptions, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator FileSearchToolRankingOptions(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeFileSearchToolRankingOptions(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/FileSearchToolRankingOptions.cs b/src/Generated/Models/FileSearchToolRankingOptions.cs new file mode 100644 index 000000000..b1569b52b --- /dev/null +++ b/src/Generated/Models/FileSearchToolRankingOptions.cs @@ -0,0 +1,35 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class FileSearchToolRankingOptions + { + private protected IDictionary _additionalBinaryDataProperties; + + public FileSearchToolRankingOptions() + { + } + + internal FileSearchToolRankingOptions(FileSearchToolRanker? ranker, float? scoreThreshold, IDictionary additionalBinaryDataProperties) + { + Ranker = ranker; + ScoreThreshold = scoreThreshold; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public FileSearchToolRanker? Ranker { get; set; } + + public float? ScoreThreshold { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/FileSearchToolResources.Serialization.cs b/src/Generated/Models/FileSearchToolResources.Serialization.cs index df2ec91f8..bb02e68ff 100644 --- a/src/Generated/Models/FileSearchToolResources.Serialization.cs +++ b/src/Generated/Models/FileSearchToolResources.Serialization.cs @@ -45,9 +45,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsCollectionDefined(NewVectorStores) && _additionalBinaryDataProperties?.ContainsKey("vector_stores") != true) { writer.WritePropertyName("vector_stores"u8); - this.SerializeNewVectorStores(writer, options); + SerializeNewVectorStores(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -127,10 +127,7 @@ internal static FileSearchToolResources DeserializeFileSearchToolResources(JsonE newVectorStores = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FileSearchToolResources(vectorStoreIds ?? new ChangeTrackingList(), newVectorStores ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FileStatus.Serialization.cs b/src/Generated/Models/FileStatus.Serialization.cs index cf3193c9f..9823464da 100644 --- a/src/Generated/Models/FileStatus.Serialization.cs +++ b/src/Generated/Models/FileStatus.Serialization.cs @@ -8,27 +8,27 @@ namespace OpenAI.Files { internal static partial class FileStatusExtensions { - public static string ToSerialString(this Files.FileStatus value) => value switch + public static string ToSerialString(this FileStatus value) => value switch { - Files.FileStatus.Uploaded => "uploaded", - Files.FileStatus.Processed => "processed", - Files.FileStatus.Error => "error", + FileStatus.Uploaded => "uploaded", + FileStatus.Processed => "processed", + FileStatus.Error => "error", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FileStatus value.") }; - public static Files.FileStatus ToFileStatus(this string value) + public static FileStatus ToFileStatus(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "uploaded")) { - return Files.FileStatus.Uploaded; + return FileStatus.Uploaded; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "processed")) { - return Files.FileStatus.Processed; + return FileStatus.Processed; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "error")) { - return Files.FileStatus.Error; + return FileStatus.Error; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FileStatus value."); } diff --git a/src/Generated/Models/FileUploadPurpose.cs b/src/Generated/Models/FileUploadPurpose.cs index af423aa35..c2b9151c8 100644 --- a/src/Generated/Models/FileUploadPurpose.cs +++ b/src/Generated/Models/FileUploadPurpose.cs @@ -15,6 +15,8 @@ namespace OpenAI.Files private const string BatchValue = "batch"; private const string FineTuneValue = "fine-tune"; private const string VisionValue = "vision"; + private const string UserDataValue = "user_data"; + private const string EvalsValue = "evals"; public FileUploadPurpose(string value) { @@ -31,6 +33,8 @@ public FileUploadPurpose(string value) public static FileUploadPurpose Vision { get; } = new FileUploadPurpose(VisionValue); + public static FileUploadPurpose UserData { get; } = new FileUploadPurpose(UserDataValue); + public static bool operator ==(FileUploadPurpose left, FileUploadPurpose right) => left.Equals(right); public static bool operator !=(FileUploadPurpose left, FileUploadPurpose right) => !left.Equals(right); diff --git a/src/Generated/Models/FineTuningIntegration.Serialization.cs b/src/Generated/Models/FineTuningIntegration.Serialization.cs index f70dc849d..25ca2bbb5 100644 --- a/src/Generated/Models/FineTuningIntegration.Serialization.cs +++ b/src/Generated/Models/FineTuningIntegration.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/FineTuningIntegrationWandbWandb.Serialization.cs b/src/Generated/Models/FineTuningIntegrationWandbWandb.Serialization.cs index 1001f4ab3..78f5b9124 100644 --- a/src/Generated/Models/FineTuningIntegrationWandbWandb.Serialization.cs +++ b/src/Generated/Models/FineTuningIntegrationWandbWandb.Serialization.cs @@ -38,27 +38,13 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Name) && _additionalBinaryDataProperties?.ContainsKey("name") != true) { - if (Name != null) - { - writer.WritePropertyName("name"u8); - writer.WriteStringValue(Name); - } - else - { - writer.WriteNull("name"u8); - } + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); } if (Optional.IsDefined(Entity) && _additionalBinaryDataProperties?.ContainsKey("entity") != true) { - if (Entity != null) - { - writer.WritePropertyName("entity"u8); - writer.WriteStringValue(Entity); - } - else - { - writer.WriteNull("entity"u8); - } + writer.WritePropertyName("entity"u8); + writer.WriteStringValue(Entity); } if (Optional.IsCollectionDefined(Tags) && _additionalBinaryDataProperties?.ContainsKey("tags") != true) { @@ -75,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -168,10 +154,7 @@ internal static FineTuningIntegrationWandbWandb DeserializeFineTuningIntegration tags = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FineTuningIntegrationWandbWandb(project, name, entity, tags ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FineTuningJob.Serialization.cs b/src/Generated/Models/FineTuningJob.Serialization.cs index 69d786bfa..d277df6ed 100644 --- a/src/Generated/Models/FineTuningJob.Serialization.cs +++ b/src/Generated/Models/FineTuningJob.Serialization.cs @@ -33,15 +33,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(UserProvidedSuffix) && _additionalBinaryDataProperties?.ContainsKey("user_provided_suffix") != true) { - if (UserProvidedSuffix != null) - { - writer.WritePropertyName("user_provided_suffix"u8); - writer.WriteStringValue(UserProvidedSuffix); - } - else - { - writer.WriteNull("userProvidedSuffix"u8); - } + writer.WritePropertyName("user_provided_suffix"u8); + writer.WriteStringValue(UserProvidedSuffix); } if (_additionalBinaryDataProperties?.ContainsKey("id") != true) { @@ -55,7 +48,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("error") != true) { - if (Error != null) + if (Optional.IsDefined(Error)) { writer.WritePropertyName("error"u8); writer.WriteObjectValue(Error, options); @@ -67,26 +60,26 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("fine_tuned_model") != true) { - if (FineTunedModel != null) + if (Optional.IsDefined(FineTunedModel)) { writer.WritePropertyName("fine_tuned_model"u8); writer.WriteStringValue(FineTunedModel); } else { - writer.WriteNull("fineTunedModel"u8); + writer.WriteNull("fine_tuned_model"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("finished_at") != true) { - if (FinishedAt != null) + if (Optional.IsDefined(FinishedAt)) { writer.WritePropertyName("finished_at"u8); writer.WriteNumberValue(FinishedAt.Value, "U"); } else { - writer.WriteNull("finishedAt"u8); + writer.WriteNull("finished_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("hyperparameters") != true) @@ -131,14 +124,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("trained_tokens") != true) { - if (TrainedTokens != null) + if (Optional.IsDefined(TrainedTokens)) { writer.WritePropertyName("trained_tokens"u8); writer.WriteNumberValue(TrainedTokens.Value); } else { - writer.WriteNull("trainedTokens"u8); + writer.WriteNull("trained_tokens"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("training_file") != true) @@ -148,32 +141,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("validation_file") != true) { - if (ValidationFile != null) + if (Optional.IsDefined(ValidationFile)) { writer.WritePropertyName("validation_file"u8); writer.WriteStringValue(ValidationFile); } else { - writer.WriteNull("validationFile"u8); + writer.WriteNull("validation_file"u8); } } if (Optional.IsCollectionDefined(Integrations) && _additionalBinaryDataProperties?.ContainsKey("integrations") != true) { - if (Integrations != null) - { - writer.WritePropertyName("integrations"u8); - writer.WriteStartArray(); - foreach (InternalFineTuningIntegration item in Integrations) - { - writer.WriteObjectValue(item, options); - } - writer.WriteEndArray(); - } - else + writer.WritePropertyName("integrations"u8); + writer.WriteStartArray(); + foreach (InternalFineTuningIntegration item in Integrations) { - writer.WriteNull("integrations"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); } if (_additionalBinaryDataProperties?.ContainsKey("seed") != true) { @@ -182,22 +168,38 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(EstimatedFinish) && _additionalBinaryDataProperties?.ContainsKey("estimated_finish") != true) { - if (EstimatedFinish != null) - { - writer.WritePropertyName("estimated_finish"u8); - writer.WriteNumberValue(EstimatedFinish.Value, "U"); - } - else - { - writer.WriteNull("estimatedFinish"u8); - } + writer.WritePropertyName("estimated_finish"u8); + writer.WriteNumberValue(EstimatedFinish.Value, "U"); } if (Optional.IsDefined(Method) && _additionalBinaryDataProperties?.ContainsKey("method") != true) { writer.WritePropertyName("method"u8); writer.WriteObjectValue(Method, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) + { + if (Optional.IsCollectionDefined(Metadata)) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + else + { + writer.WriteNull("metadata"u8); + } + } + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -256,6 +258,7 @@ internal static FineTuningJob DeserializeFineTuningJob(JsonElement element, Mode int seed = default; DateTimeOffset? estimatedFinish = default; InternalTodoFineTuneMethod @method = default; + IDictionary metadata = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -414,10 +417,29 @@ internal static FineTuningJob DeserializeFineTuningJob(JsonElement element, Mode @method = InternalTodoFineTuneMethod.DeserializeInternalTodoFineTuneMethod(prop.Value, options); continue; } - if (true) + if (prop.NameEquals("metadata"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + metadata = new ChangeTrackingDictionary(); + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + metadata = dictionary; + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FineTuningJob( userProvidedSuffix, @@ -439,6 +461,7 @@ internal static FineTuningJob DeserializeFineTuningJob(JsonElement element, Mode seed, estimatedFinish, @method, + metadata, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FineTuningJob.cs b/src/Generated/Models/FineTuningJob.cs index 7c29b6d61..9724f2c58 100644 --- a/src/Generated/Models/FineTuningJob.cs +++ b/src/Generated/Models/FineTuningJob.cs @@ -13,7 +13,7 @@ internal partial class FineTuningJob { private protected IDictionary _additionalBinaryDataProperties; - internal FineTuningJob(string id, DateTimeOffset createdAt, FineTuningJobError error, string fineTunedModel, DateTimeOffset? finishedAt, FineTuningJobHyperparameters hyperparameters, string model, string organizationId, IEnumerable resultFiles, FineTuningJobStatus status, int? trainedTokens, string trainingFile, string validationFile, int seed) + internal FineTuningJob(string id, DateTimeOffset createdAt, FineTuningJobError error, string fineTunedModel, DateTimeOffset? finishedAt, FineTuningJobHyperparameters hyperparameters, string model, string organizationId, IEnumerable resultFiles, FineTuningJobStatus status, int? trainedTokens, string trainingFile, string validationFile, int seed, IDictionary metadata) { Id = id; CreatedAt = createdAt; @@ -30,9 +30,10 @@ internal FineTuningJob(string id, DateTimeOffset createdAt, FineTuningJobError e ValidationFile = validationFile; Integrations = new ChangeTrackingList(); Seed = seed; + Metadata = metadata; } - internal FineTuningJob(string userProvidedSuffix, string id, DateTimeOffset createdAt, FineTuningJobError error, string fineTunedModel, DateTimeOffset? finishedAt, FineTuningJobHyperparameters hyperparameters, string model, InternalFineTuningJobObject @object, string organizationId, IList resultFiles, FineTuningJobStatus status, int? trainedTokens, string trainingFile, string validationFile, IList integrations, int seed, DateTimeOffset? estimatedFinish, InternalTodoFineTuneMethod @method, IDictionary additionalBinaryDataProperties) + internal FineTuningJob(string userProvidedSuffix, string id, DateTimeOffset createdAt, FineTuningJobError error, string fineTunedModel, DateTimeOffset? finishedAt, FineTuningJobHyperparameters hyperparameters, string model, InternalFineTuningJobObject @object, string organizationId, IList resultFiles, FineTuningJobStatus status, int? trainedTokens, string trainingFile, string validationFile, IList integrations, int seed, DateTimeOffset? estimatedFinish, InternalTodoFineTuneMethod @method, IDictionary metadata, IDictionary additionalBinaryDataProperties) { UserProvidedSuffix = userProvidedSuffix; Id = id; @@ -53,6 +54,7 @@ internal FineTuningJob(string userProvidedSuffix, string id, DateTimeOffset crea Seed = seed; EstimatedFinish = estimatedFinish; Method = @method; + Metadata = metadata; _additionalBinaryDataProperties = additionalBinaryDataProperties; } @@ -94,6 +96,8 @@ internal FineTuningJob(string userProvidedSuffix, string id, DateTimeOffset crea public InternalTodoFineTuneMethod Method { get; } + public IDictionary Metadata { get; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/Models/FineTuningJobError.Serialization.cs b/src/Generated/Models/FineTuningJobError.Serialization.cs index 20bbc87e6..f2df1dd73 100644 --- a/src/Generated/Models/FineTuningJobError.Serialization.cs +++ b/src/Generated/Models/FineTuningJobError.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("param") != true) { - if (Param != null) + if (Optional.IsDefined(Param)) { writer.WritePropertyName("param"u8); writer.WriteStringValue(Param); @@ -53,7 +53,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("param"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -119,10 +119,7 @@ internal static FineTuningJobError DeserializeFineTuningJobError(JsonElement ele @param = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FineTuningJobError(code, message, @param, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FineTuningJobEvent.Serialization.cs b/src/Generated/Models/FineTuningJobEvent.Serialization.cs index ea048b303..a282cf61d 100644 --- a/src/Generated/Models/FineTuningJobEvent.Serialization.cs +++ b/src/Generated/Models/FineTuningJobEvent.Serialization.cs @@ -73,7 +73,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -116,7 +116,7 @@ internal static FineTuningJobEvent DeserializeFineTuningJobEvent(JsonElement ele InternalFineTuningJobEventObject @object = default; string id = default; DateTimeOffset createdAt = default; - FineTuning.FineTuningJobEventLevel level = default; + FineTuningJobEventLevel level = default; string message = default; InternalFineTuningJobEventType? @type = default; BinaryData data = default; @@ -166,10 +166,7 @@ internal static FineTuningJobEvent DeserializeFineTuningJobEvent(JsonElement ele data = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FineTuningJobEvent( @object, diff --git a/src/Generated/Models/FineTuningJobEvent.cs b/src/Generated/Models/FineTuningJobEvent.cs index 0830a329d..0c4f8ec4a 100644 --- a/src/Generated/Models/FineTuningJobEvent.cs +++ b/src/Generated/Models/FineTuningJobEvent.cs @@ -11,7 +11,7 @@ internal partial class FineTuningJobEvent { private protected IDictionary _additionalBinaryDataProperties; - internal FineTuningJobEvent(string id, DateTimeOffset createdAt, FineTuning.FineTuningJobEventLevel level, string message) + internal FineTuningJobEvent(string id, DateTimeOffset createdAt, FineTuningJobEventLevel level, string message) { Id = id; CreatedAt = createdAt; @@ -19,7 +19,7 @@ internal FineTuningJobEvent(string id, DateTimeOffset createdAt, FineTuning.Fine Message = message; } - internal FineTuningJobEvent(InternalFineTuningJobEventObject @object, string id, DateTimeOffset createdAt, FineTuning.FineTuningJobEventLevel level, string message, InternalFineTuningJobEventType? @type, BinaryData data, IDictionary additionalBinaryDataProperties) + internal FineTuningJobEvent(InternalFineTuningJobEventObject @object, string id, DateTimeOffset createdAt, FineTuningJobEventLevel level, string message, InternalFineTuningJobEventType? @type, BinaryData data, IDictionary additionalBinaryDataProperties) { Object = @object; Id = id; @@ -37,7 +37,7 @@ internal FineTuningJobEvent(InternalFineTuningJobEventObject @object, string id, public DateTimeOffset CreatedAt { get; } - public FineTuning.FineTuningJobEventLevel Level { get; } + public FineTuningJobEventLevel Level { get; } public string Message { get; } diff --git a/src/Generated/Models/FineTuningJobEventLevel.Serialization.cs b/src/Generated/Models/FineTuningJobEventLevel.Serialization.cs index 18ef3bc2a..0014a83c8 100644 --- a/src/Generated/Models/FineTuningJobEventLevel.Serialization.cs +++ b/src/Generated/Models/FineTuningJobEventLevel.Serialization.cs @@ -8,27 +8,27 @@ namespace OpenAI.FineTuning { internal static partial class FineTuningJobEventLevelExtensions { - public static string ToSerialString(this FineTuning.FineTuningJobEventLevel value) => value switch + public static string ToSerialString(this FineTuningJobEventLevel value) => value switch { - FineTuning.FineTuningJobEventLevel.Info => "info", - FineTuning.FineTuningJobEventLevel.Warn => "warn", - FineTuning.FineTuningJobEventLevel.Error => "error", + FineTuningJobEventLevel.Info => "info", + FineTuningJobEventLevel.Warn => "warn", + FineTuningJobEventLevel.Error => "error", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FineTuningJobEventLevel value.") }; - public static FineTuning.FineTuningJobEventLevel ToFineTuningJobEventLevel(this string value) + public static FineTuningJobEventLevel ToFineTuningJobEventLevel(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "info")) { - return FineTuning.FineTuningJobEventLevel.Info; + return FineTuningJobEventLevel.Info; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "warn")) { - return FineTuning.FineTuningJobEventLevel.Warn; + return FineTuningJobEventLevel.Warn; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "error")) { - return FineTuning.FineTuningJobEventLevel.Error; + return FineTuningJobEventLevel.Error; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FineTuningJobEventLevel value."); } diff --git a/src/Generated/Models/FineTuningJobHyperparameters.Serialization.cs b/src/Generated/Models/FineTuningJobHyperparameters.Serialization.cs index 4b059813b..0313a08d5 100644 --- a/src/Generated/Models/FineTuningJobHyperparameters.Serialization.cs +++ b/src/Generated/Models/FineTuningJobHyperparameters.Serialization.cs @@ -67,7 +67,7 @@ private void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -140,10 +140,7 @@ internal static FineTuningJobHyperparameters DeserializeFineTuningJobHyperparame learningRateMultiplier = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FineTuningJobHyperparameters(nEpochs, batchSize, learningRateMultiplier, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FineTuningOptions.Serialization.cs b/src/Generated/Models/FineTuningOptions.Serialization.cs index 461e0d5ca..56be23c07 100644 --- a/src/Generated/Models/FineTuningOptions.Serialization.cs +++ b/src/Generated/Models/FineTuningOptions.Serialization.cs @@ -48,63 +48,51 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Suffix) && _additionalBinaryDataProperties?.ContainsKey("suffix") != true) { - if (Suffix != null) - { - writer.WritePropertyName("suffix"u8); - writer.WriteStringValue(Suffix); - } - else - { - writer.WriteNull("suffix"u8); - } + writer.WritePropertyName("suffix"u8); + writer.WriteStringValue(Suffix); } if (Optional.IsDefined(ValidationFile) && _additionalBinaryDataProperties?.ContainsKey("validation_file") != true) { - if (ValidationFile != null) - { - writer.WritePropertyName("validation_file"u8); - writer.WriteStringValue(ValidationFile); - } - else - { - writer.WriteNull("validationFile"u8); - } + writer.WritePropertyName("validation_file"u8); + writer.WriteStringValue(ValidationFile); } if (Optional.IsCollectionDefined(Integrations) && _additionalBinaryDataProperties?.ContainsKey("integrations") != true) { - if (Integrations != null) + writer.WritePropertyName("integrations"u8); + writer.WriteStartArray(); + foreach (FineTuningIntegration item in Integrations) { - writer.WritePropertyName("integrations"u8); - writer.WriteStartArray(); - foreach (FineTuningIntegration item in Integrations) - { - writer.WriteObjectValue(item, options); - } - writer.WriteEndArray(); - } - else - { - writer.WriteNull("integrations"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); } if (Optional.IsDefined(Seed) && _additionalBinaryDataProperties?.ContainsKey("seed") != true) { - if (Seed != null) - { - writer.WritePropertyName("seed"u8); - writer.WriteNumberValue(Seed.Value); - } - else - { - writer.WriteNull("seed"u8); - } + writer.WritePropertyName("seed"u8); + writer.WriteNumberValue(Seed.Value); } if (Optional.IsDefined(Method) && _additionalBinaryDataProperties?.ContainsKey("method") != true) { writer.WritePropertyName("method"u8); writer.WriteObjectValue(Method, options); } - if (true && _additionalBinaryDataProperties != null) + if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -152,6 +140,7 @@ internal static FineTuningOptions DeserializeFineTuningOptions(JsonElement eleme IList integrations = default; int? seed = default; InternalTodoFineTuneMethod @method = default; + IDictionary metadata = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -227,10 +216,28 @@ internal static FineTuningOptions DeserializeFineTuningOptions(JsonElement eleme @method = InternalTodoFineTuneMethod.DeserializeInternalTodoFineTuneMethod(prop.Value, options); continue; } - if (true) + if (prop.NameEquals("metadata"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + metadata = dictionary; + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FineTuningOptions( model, @@ -241,6 +248,7 @@ internal static FineTuningOptions DeserializeFineTuningOptions(JsonElement eleme integrations ?? new ChangeTrackingList(), seed, @method, + metadata ?? new ChangeTrackingDictionary(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/FineTuningOptions.cs b/src/Generated/Models/FineTuningOptions.cs index d3b1e74f5..d3fce23ce 100644 --- a/src/Generated/Models/FineTuningOptions.cs +++ b/src/Generated/Models/FineTuningOptions.cs @@ -19,9 +19,10 @@ public FineTuningOptions(InternalCreateFineTuningJobRequestModel model, string t Model = model; TrainingFile = trainingFile; Integrations = new ChangeTrackingList(); + Metadata = new ChangeTrackingDictionary(); } - internal FineTuningOptions(InternalCreateFineTuningJobRequestModel model, string trainingFile, HyperparameterOptions hyperparameters, string suffix, string validationFile, IList integrations, int? seed, InternalTodoFineTuneMethod @method, IDictionary additionalBinaryDataProperties) + internal FineTuningOptions(InternalCreateFineTuningJobRequestModel model, string trainingFile, HyperparameterOptions hyperparameters, string suffix, string validationFile, IList integrations, int? seed, InternalTodoFineTuneMethod @method, IDictionary metadata, IDictionary additionalBinaryDataProperties) { Model = model; TrainingFile = trainingFile; @@ -31,6 +32,7 @@ internal FineTuningOptions(InternalCreateFineTuningJobRequestModel model, string Integrations = integrations; Seed = seed; Method = @method; + Metadata = metadata; _additionalBinaryDataProperties = additionalBinaryDataProperties; } @@ -50,6 +52,8 @@ internal FineTuningOptions(InternalCreateFineTuningJobRequestModel model, string public InternalTodoFineTuneMethod Method { get; set; } + public IDictionary Metadata { get; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/Models/FunctionCallOutputResponseItem.Serialization.cs b/src/Generated/Models/FunctionCallOutputResponseItem.Serialization.cs new file mode 100644 index 000000000..48b5192bf --- /dev/null +++ b/src/Generated/Models/FunctionCallOutputResponseItem.Serialization.cs @@ -0,0 +1,168 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FunctionCallOutputResponseItem : IJsonModel + { + internal FunctionCallOutputResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FunctionCallOutputResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Status) && _additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("call_id") != true) + { + writer.WritePropertyName("call_id"u8); + writer.WriteStringValue(CallId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output") != true) + { + writer.WritePropertyName("output"u8); + writer.WriteStringValue(FunctionOutput); + } + } + + FunctionCallOutputResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (FunctionCallOutputResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FunctionCallOutputResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFunctionCallOutputResponseItem(document.RootElement, options); + } + + internal static FunctionCallOutputResponseItem DeserializeFunctionCallOutputResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + FunctionCallOutputStatus? status = default; + string callId = default; + string functionOutput = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToFunctionCallOutputStatus(); + continue; + } + if (prop.NameEquals("call_id"u8)) + { + callId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output"u8)) + { + functionOutput = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new FunctionCallOutputResponseItem( + @type, + id, + additionalBinaryDataProperties, + status, + callId, + functionOutput); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FunctionCallOutputResponseItem)} does not support writing '{options.Format}' format."); + } + } + + FunctionCallOutputResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (FunctionCallOutputResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeFunctionCallOutputResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FunctionCallOutputResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(FunctionCallOutputResponseItem functionCallOutputResponseItem) + { + if (functionCallOutputResponseItem == null) + { + return null; + } + return BinaryContent.Create(functionCallOutputResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator FunctionCallOutputResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeFunctionCallOutputResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/FunctionCallOutputResponseItem.cs b/src/Generated/Models/FunctionCallOutputResponseItem.cs new file mode 100644 index 000000000..ed460a91e --- /dev/null +++ b/src/Generated/Models/FunctionCallOutputResponseItem.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FunctionCallOutputResponseItem : ResponseItem + { + public FunctionCallOutputResponseItem(string callId, string functionOutput) : base(InternalResponsesItemType.FunctionCallOutput) + { + Argument.AssertNotNull(callId, nameof(callId)); + Argument.AssertNotNull(functionOutput, nameof(functionOutput)); + + CallId = callId; + FunctionOutput = functionOutput; + } + + internal FunctionCallOutputResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, FunctionCallOutputStatus? status, string callId, string functionOutput) : base(@type, id, additionalBinaryDataProperties) + { + Status = status; + CallId = callId; + FunctionOutput = functionOutput; + } + + public FunctionCallOutputStatus? Status { get; } + + public string CallId { get; set; } + } +} diff --git a/src/Generated/Models/FunctionCallOutputStatus.Serialization.cs b/src/Generated/Models/FunctionCallOutputStatus.Serialization.cs new file mode 100644 index 000000000..fdf1427c8 --- /dev/null +++ b/src/Generated/Models/FunctionCallOutputStatus.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class FunctionCallOutputStatusExtensions + { + public static string ToSerialString(this FunctionCallOutputStatus value) => value switch + { + FunctionCallOutputStatus.InProgress => "in_progress", + FunctionCallOutputStatus.Completed => "completed", + FunctionCallOutputStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FunctionCallOutputStatus value.") + }; + + public static FunctionCallOutputStatus ToFunctionCallOutputStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return FunctionCallOutputStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return FunctionCallOutputStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return FunctionCallOutputStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FunctionCallOutputStatus value."); + } + } +} diff --git a/src/Generated/Models/FunctionCallResponseItem.Serialization.cs b/src/Generated/Models/FunctionCallResponseItem.Serialization.cs new file mode 100644 index 000000000..c9429aa2e --- /dev/null +++ b/src/Generated/Models/FunctionCallResponseItem.Serialization.cs @@ -0,0 +1,187 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class FunctionCallResponseItem : IJsonModel + { + internal FunctionCallResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FunctionCallResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Status) && _additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("call_id") != true) + { + writer.WritePropertyName("call_id"u8); + writer.WriteStringValue(CallId); + } + if (_additionalBinaryDataProperties?.ContainsKey("name") != true) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(FunctionName); + } + if (_additionalBinaryDataProperties?.ContainsKey("arguments") != true) + { + writer.WritePropertyName("arguments"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(FunctionArguments); +#else + using (JsonDocument document = JsonDocument.Parse(FunctionArguments)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + + FunctionCallResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (FunctionCallResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FunctionCallResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFunctionCallResponseItem(document.RootElement, options); + } + + internal static FunctionCallResponseItem DeserializeFunctionCallResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + FunctionCallStatus? status = default; + string callId = default; + string functionName = default; + BinaryData functionArguments = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToFunctionCallStatus(); + continue; + } + if (prop.NameEquals("call_id"u8)) + { + callId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("name"u8)) + { + functionName = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("arguments"u8)) + { + functionArguments = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new FunctionCallResponseItem( + @type, + id, + additionalBinaryDataProperties, + status, + callId, + functionName, + functionArguments); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FunctionCallResponseItem)} does not support writing '{options.Format}' format."); + } + } + + FunctionCallResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (FunctionCallResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeFunctionCallResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FunctionCallResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(FunctionCallResponseItem functionCallResponseItem) + { + if (functionCallResponseItem == null) + { + return null; + } + return BinaryContent.Create(functionCallResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator FunctionCallResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeFunctionCallResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/FunctionCallResponseItem.cs b/src/Generated/Models/FunctionCallResponseItem.cs new file mode 100644 index 000000000..e92b76032 --- /dev/null +++ b/src/Generated/Models/FunctionCallResponseItem.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class FunctionCallResponseItem : ResponseItem + { + internal FunctionCallResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, FunctionCallStatus? status, string callId, string functionName, BinaryData functionArguments) : base(@type, id, additionalBinaryDataProperties) + { + Status = status; + CallId = callId; + FunctionName = functionName; + FunctionArguments = functionArguments; + } + + public FunctionCallStatus? Status { get; } + + public string CallId { get; set; } + } +} diff --git a/src/Generated/Models/FunctionCallStatus.Serialization.cs b/src/Generated/Models/FunctionCallStatus.Serialization.cs new file mode 100644 index 000000000..225abdf18 --- /dev/null +++ b/src/Generated/Models/FunctionCallStatus.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class FunctionCallStatusExtensions + { + public static string ToSerialString(this FunctionCallStatus value) => value switch + { + FunctionCallStatus.InProgress => "in_progress", + FunctionCallStatus.Completed => "completed", + FunctionCallStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FunctionCallStatus value.") + }; + + public static FunctionCallStatus ToFunctionCallStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return FunctionCallStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return FunctionCallStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return FunctionCallStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown FunctionCallStatus value."); + } + } +} diff --git a/src/Generated/Models/FunctionChatMessage.Serialization.cs b/src/Generated/Models/FunctionChatMessage.Serialization.cs index ae92c684e..59e067b67 100644 --- a/src/Generated/Models/FunctionChatMessage.Serialization.cs +++ b/src/Generated/Models/FunctionChatMessage.Serialization.cs @@ -52,7 +52,7 @@ internal static FunctionChatMessage DeserializeFunctionChatMessage(JsonElement e return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string functionName = default; foreach (var prop in element.EnumerateObject()) @@ -72,13 +72,9 @@ internal static FunctionChatMessage DeserializeFunctionChatMessage(JsonElement e functionName = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. - return new FunctionChatMessage(content ?? new ChatMessageContent(), role, additionalBinaryDataProperties, functionName); + return new FunctionChatMessage(content, role, additionalBinaryDataProperties, functionName); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/FunctionChatMessage.cs b/src/Generated/Models/FunctionChatMessage.cs index 4fa37e086..686508806 100644 --- a/src/Generated/Models/FunctionChatMessage.cs +++ b/src/Generated/Models/FunctionChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { public partial class FunctionChatMessage : ChatMessage { - internal FunctionChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string functionName) : base(content, role, additionalBinaryDataProperties) + internal FunctionChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties, string functionName) : base(content, role, additionalBinaryDataProperties) { FunctionName = functionName; } diff --git a/src/Generated/Models/FunctionToolDefinition.Serialization.cs b/src/Generated/Models/FunctionToolDefinition.Serialization.cs index fc2d3992f..6e09ab985 100644 --- a/src/Generated/Models/FunctionToolDefinition.Serialization.cs +++ b/src/Generated/Models/FunctionToolDefinition.Serialization.cs @@ -24,7 +24,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("function") != true) { writer.WritePropertyName("function"u8); - writer.WriteObjectValue(_internalFunction, options); + writer.WriteObjectValue(_internalFunction, options); } } @@ -62,10 +62,7 @@ internal static FunctionToolDefinition DeserializeFunctionToolDefinition(JsonEle internalFunction = InternalFunctionDefinition.DeserializeInternalFunctionDefinition(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new FunctionToolDefinition(@type, additionalBinaryDataProperties, internalFunction); } diff --git a/src/Generated/Models/GeneratedImage.Serialization.cs b/src/Generated/Models/GeneratedImage.Serialization.cs index a89305aef..fa6a11c94 100644 --- a/src/Generated/Models/GeneratedImage.Serialization.cs +++ b/src/Generated/Models/GeneratedImage.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("url"u8); writer.WriteStringValue(ImageUri.AbsoluteUri); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -111,10 +111,7 @@ internal static GeneratedImage DeserializeGeneratedImage(JsonElement element, Mo imageUri = new Uri(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new GeneratedImage(revisedPrompt, imageBytes, imageUri, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/GeneratedImageCollection.Serialization.cs b/src/Generated/Models/GeneratedImageCollection.Serialization.cs index b58c56430..ed8c4fed2 100644 --- a/src/Generated/Models/GeneratedImageCollection.Serialization.cs +++ b/src/Generated/Models/GeneratedImageCollection.Serialization.cs @@ -24,7 +24,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("created"u8); writer.WriteNumberValue(CreatedAt, "U"); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -55,7 +55,7 @@ protected virtual GeneratedImageCollection JsonModelCreateCore(ref Utf8JsonReade throw new FormatException($"The model {nameof(GeneratedImageCollection)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return GeneratedImageCollection.DeserializeGeneratedImageCollection(document.RootElement, options); + return DeserializeGeneratedImageCollection(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -82,7 +82,7 @@ protected virtual GeneratedImageCollection PersistableModelCreateCore(BinaryData case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return GeneratedImageCollection.DeserializeGeneratedImageCollection(document.RootElement, options); + return DeserializeGeneratedImageCollection(document.RootElement, options); } default: throw new FormatException($"The model {nameof(GeneratedImageCollection)} does not support reading '{options.Format}' format."); @@ -104,7 +104,7 @@ public static explicit operator GeneratedImageCollection(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return GeneratedImageCollection.DeserializeGeneratedImageCollection(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeGeneratedImageCollection(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/HyperparameterOptions.Serialization.cs b/src/Generated/Models/HyperparameterOptions.Serialization.cs index 5b9bc3c28..7ad18598a 100644 --- a/src/Generated/Models/HyperparameterOptions.Serialization.cs +++ b/src/Generated/Models/HyperparameterOptions.Serialization.cs @@ -63,7 +63,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -136,10 +136,7 @@ internal static HyperparameterOptions DeserializeHyperparameterOptions(JsonEleme nEpochs = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new HyperparameterOptions(batchSize, learningRateMultiplier, nEpochs, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ImageEditOptions.Serialization.cs b/src/Generated/Models/ImageEditOptions.Serialization.cs index 4b56a9f0a..575b51612 100644 --- a/src/Generated/Models/ImageEditOptions.Serialization.cs +++ b/src/Generated/Models/ImageEditOptions.Serialization.cs @@ -29,15 +29,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Model) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { - if (Model != null) - { - writer.WritePropertyName("model"u8); - writer.WriteStringValue(Model.Value.ToString()); - } - else - { - writer.WriteNull("model"u8); - } + writer.WritePropertyName("model"u8); + writer.WriteStringValue(Model.Value.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("image") != true) { @@ -56,46 +49,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(N) && _additionalBinaryDataProperties?.ContainsKey("n") != true) { - if (N != null) - { - writer.WritePropertyName("n"u8); - writer.WriteNumberValue(N.Value); - } - else - { - writer.WriteNull("n"u8); - } + writer.WritePropertyName("n"u8); + writer.WriteNumberValue(N.Value); } if (Optional.IsDefined(Size) && _additionalBinaryDataProperties?.ContainsKey("size") != true) { - if (Size != null) - { - writer.WritePropertyName("size"u8); - writer.WriteStringValue(Size.Value.ToString()); - } - else - { - writer.WriteNull("size"u8); - } + writer.WritePropertyName("size"u8); + writer.WriteStringValue(Size.Value.ToString()); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteStringValue(ResponseFormat.Value.ToString()); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteStringValue(ResponseFormat.Value.ToString()); } if (Optional.IsDefined(EndUserId) && _additionalBinaryDataProperties?.ContainsKey("user") != true) { writer.WritePropertyName("user"u8); writer.WriteStringValue(EndUserId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -210,10 +182,7 @@ internal static ImageEditOptions DeserializeImageEditOptions(JsonElement element endUserId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ImageEditOptions( model, diff --git a/src/Generated/Models/ImageGenerationOptions.Serialization.cs b/src/Generated/Models/ImageGenerationOptions.Serialization.cs index cb8f165d3..f4d097c38 100644 --- a/src/Generated/Models/ImageGenerationOptions.Serialization.cs +++ b/src/Generated/Models/ImageGenerationOptions.Serialization.cs @@ -34,51 +34,23 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteStringValue(ResponseFormat.Value.ToString()); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteStringValue(ResponseFormat.Value.ToString()); } if (Optional.IsDefined(Size) && _additionalBinaryDataProperties?.ContainsKey("size") != true) { - if (Size != null) - { - writer.WritePropertyName("size"u8); - writer.WriteStringValue(Size.Value.ToString()); - } - else - { - writer.WriteNull("size"u8); - } + writer.WritePropertyName("size"u8); + writer.WriteStringValue(Size.Value.ToString()); } if (Optional.IsDefined(Style) && _additionalBinaryDataProperties?.ContainsKey("style") != true) { - if (Style != null) - { - writer.WritePropertyName("style"u8); - writer.WriteStringValue(Style.Value.ToString()); - } - else - { - writer.WriteNull("style"u8); - } + writer.WritePropertyName("style"u8); + writer.WriteStringValue(Style.Value.ToString()); } if (Optional.IsDefined(Model) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { - if (Model != null) - { - writer.WritePropertyName("model"u8); - writer.WriteStringValue(Model.Value.ToString()); - } - else - { - writer.WriteNull("model"u8); - } + writer.WritePropertyName("model"u8); + writer.WriteStringValue(Model.Value.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("prompt") != true) { @@ -87,22 +59,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(N) && _additionalBinaryDataProperties?.ContainsKey("n") != true) { - if (N != null) - { - writer.WritePropertyName("n"u8); - writer.WriteNumberValue(N.Value); - } - else - { - writer.WriteNull("n"u8); - } + writer.WritePropertyName("n"u8); + writer.WriteNumberValue(N.Value); } if (Optional.IsDefined(EndUserId) && _additionalBinaryDataProperties?.ContainsKey("user") != true) { writer.WritePropertyName("user"u8); writer.WriteStringValue(EndUserId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -222,10 +187,7 @@ internal static ImageGenerationOptions DeserializeImageGenerationOptions(JsonEle endUserId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ImageGenerationOptions( quality, diff --git a/src/Generated/Models/ImageVariationOptions.Serialization.cs b/src/Generated/Models/ImageVariationOptions.Serialization.cs index 860fa87f2..9be8aef7c 100644 --- a/src/Generated/Models/ImageVariationOptions.Serialization.cs +++ b/src/Generated/Models/ImageVariationOptions.Serialization.cs @@ -29,15 +29,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Model) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { - if (Model != null) - { - writer.WritePropertyName("model"u8); - writer.WriteStringValue(Model.Value.ToString()); - } - else - { - writer.WriteNull("model"u8); - } + writer.WritePropertyName("model"u8); + writer.WriteStringValue(Model.Value.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("image") != true) { @@ -46,46 +39,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(N) && _additionalBinaryDataProperties?.ContainsKey("n") != true) { - if (N != null) - { - writer.WritePropertyName("n"u8); - writer.WriteNumberValue(N.Value); - } - else - { - writer.WriteNull("n"u8); - } + writer.WritePropertyName("n"u8); + writer.WriteNumberValue(N.Value); } if (Optional.IsDefined(Size) && _additionalBinaryDataProperties?.ContainsKey("size") != true) { - if (Size != null) - { - writer.WritePropertyName("size"u8); - writer.WriteStringValue(Size.Value.ToString()); - } - else - { - writer.WriteNull("size"u8); - } + writer.WritePropertyName("size"u8); + writer.WriteStringValue(Size.Value.ToString()); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteStringValue(ResponseFormat.Value.ToString()); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteStringValue(ResponseFormat.Value.ToString()); } if (Optional.IsDefined(EndUserId) && _additionalBinaryDataProperties?.ContainsKey("user") != true) { writer.WritePropertyName("user"u8); writer.WriteStringValue(EndUserId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -184,10 +156,7 @@ internal static ImageVariationOptions DeserializeImageVariationOptions(JsonEleme endUserId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ImageVariationOptions( model, diff --git a/src/Generated/Models/InternalAddUploadPartRequest.Serialization.cs b/src/Generated/Models/InternalAddUploadPartRequest.Serialization.cs index a8cfb5281..e244636e1 100644 --- a/src/Generated/Models/InternalAddUploadPartRequest.Serialization.cs +++ b/src/Generated/Models/InternalAddUploadPartRequest.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("data"u8); writer.WriteBase64StringValue(Data.ToArray(), "D"); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalAddUploadPartRequest DeserializeInternalAddUploadPartReq data = BinaryData.FromBytes(prop.Value.GetBytesFromBase64("D")); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAddUploadPartRequest(data, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAssistantResponseFormatJsonObject.Serialization.cs b/src/Generated/Models/InternalAssistantResponseFormatJsonObject.Serialization.cs index cc5ef9d4a..fa99ded1d 100644 --- a/src/Generated/Models/InternalAssistantResponseFormatJsonObject.Serialization.cs +++ b/src/Generated/Models/InternalAssistantResponseFormatJsonObject.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalAssistantResponseFormatJsonObject DeserializeInternalAss @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAssistantResponseFormatJsonObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAssistantResponseFormatJsonSchema.Serialization.cs b/src/Generated/Models/InternalAssistantResponseFormatJsonSchema.Serialization.cs index b62b36879..7b88fb4da 100644 --- a/src/Generated/Models/InternalAssistantResponseFormatJsonSchema.Serialization.cs +++ b/src/Generated/Models/InternalAssistantResponseFormatJsonSchema.Serialization.cs @@ -74,10 +74,7 @@ internal static InternalAssistantResponseFormatJsonSchema DeserializeInternalAss jsonSchema = InternalResponseFormatJsonSchemaJsonSchema.DeserializeInternalResponseFormatJsonSchemaJsonSchema(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAssistantResponseFormatJsonSchema(@type, additionalBinaryDataProperties, jsonSchema); } diff --git a/src/Generated/Models/InternalAssistantResponseFormatText.Serialization.cs b/src/Generated/Models/InternalAssistantResponseFormatText.Serialization.cs index a7e939ffa..691a9e688 100644 --- a/src/Generated/Models/InternalAssistantResponseFormatText.Serialization.cs +++ b/src/Generated/Models/InternalAssistantResponseFormatText.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalAssistantResponseFormatText DeserializeInternalAssistant @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAssistantResponseFormatText(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAssistantSupportedModels.cs b/src/Generated/Models/InternalAssistantSupportedModels.cs new file mode 100644 index 000000000..77d90308b --- /dev/null +++ b/src/Generated/Models/InternalAssistantSupportedModels.cs @@ -0,0 +1,128 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Assistants +{ + internal readonly partial struct InternalAssistantSupportedModels : IEquatable + { + private readonly string _value; + private const string O3MiniValue = "o3-mini"; + private const string O3Mini20250131Value = "o3-mini-2025-01-31"; + private const string O1Value = "o1"; + private const string O120241217Value = "o1-2024-12-17"; + private const string Gpt4oValue = "gpt-4o"; + private const string Gpt4o20241120Value = "gpt-4o-2024-11-20"; + private const string Gpt4o20240806Value = "gpt-4o-2024-08-06"; + private const string Gpt4o20240513Value = "gpt-4o-2024-05-13"; + private const string Gpt4oMiniValue = "gpt-4o-mini"; + private const string Gpt4oMini20240718Value = "gpt-4o-mini-2024-07-18"; + private const string Gpt45PreviewValue = "gpt-4.5-preview"; + private const string Gpt45Preview20250227Value = "gpt-4.5-preview-2025-02-27"; + private const string Gpt4TurboValue = "gpt-4-turbo"; + private const string Gpt4Turbo20240409Value = "gpt-4-turbo-2024-04-09"; + private const string Gpt40125PreviewValue = "gpt-4-0125-preview"; + private const string Gpt4TurboPreviewValue = "gpt-4-turbo-preview"; + private const string Gpt41106PreviewValue = "gpt-4-1106-preview"; + private const string Gpt4VisionPreviewValue = "gpt-4-vision-preview"; + private const string Gpt4Value = "gpt-4"; + private const string Gpt40314Value = "gpt-4-0314"; + private const string Gpt40613Value = "gpt-4-0613"; + private const string Gpt432kValue = "gpt-4-32k"; + private const string Gpt432k0314Value = "gpt-4-32k-0314"; + private const string Gpt432k0613Value = "gpt-4-32k-0613"; + private const string Gpt35TurboValue = "gpt-3.5-turbo"; + private const string Gpt35Turbo16kValue = "gpt-3.5-turbo-16k"; + private const string Gpt35Turbo0613Value = "gpt-3.5-turbo-0613"; + private const string Gpt35Turbo1106Value = "gpt-3.5-turbo-1106"; + private const string Gpt35Turbo0125Value = "gpt-3.5-turbo-0125"; + private const string Gpt35Turbo16k0613Value = "gpt-3.5-turbo-16k-0613"; + + public InternalAssistantSupportedModels(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalAssistantSupportedModels O3Mini { get; } = new InternalAssistantSupportedModels(O3MiniValue); + + public static InternalAssistantSupportedModels O3Mini20250131 { get; } = new InternalAssistantSupportedModels(O3Mini20250131Value); + + public static InternalAssistantSupportedModels O1 { get; } = new InternalAssistantSupportedModels(O1Value); + + public static InternalAssistantSupportedModels O120241217 { get; } = new InternalAssistantSupportedModels(O120241217Value); + + public static InternalAssistantSupportedModels Gpt4o { get; } = new InternalAssistantSupportedModels(Gpt4oValue); + + public static InternalAssistantSupportedModels Gpt4o20241120 { get; } = new InternalAssistantSupportedModels(Gpt4o20241120Value); + + public static InternalAssistantSupportedModels Gpt4o20240806 { get; } = new InternalAssistantSupportedModels(Gpt4o20240806Value); + + public static InternalAssistantSupportedModels Gpt4o20240513 { get; } = new InternalAssistantSupportedModels(Gpt4o20240513Value); + + public static InternalAssistantSupportedModels Gpt4oMini { get; } = new InternalAssistantSupportedModels(Gpt4oMiniValue); + + public static InternalAssistantSupportedModels Gpt4oMini20240718 { get; } = new InternalAssistantSupportedModels(Gpt4oMini20240718Value); + + public static InternalAssistantSupportedModels Gpt45Preview { get; } = new InternalAssistantSupportedModels(Gpt45PreviewValue); + + public static InternalAssistantSupportedModels Gpt45Preview20250227 { get; } = new InternalAssistantSupportedModels(Gpt45Preview20250227Value); + + public static InternalAssistantSupportedModels Gpt4Turbo { get; } = new InternalAssistantSupportedModels(Gpt4TurboValue); + + public static InternalAssistantSupportedModels Gpt4Turbo20240409 { get; } = new InternalAssistantSupportedModels(Gpt4Turbo20240409Value); + + public static InternalAssistantSupportedModels Gpt40125Preview { get; } = new InternalAssistantSupportedModels(Gpt40125PreviewValue); + + public static InternalAssistantSupportedModels Gpt4TurboPreview { get; } = new InternalAssistantSupportedModels(Gpt4TurboPreviewValue); + + public static InternalAssistantSupportedModels Gpt41106Preview { get; } = new InternalAssistantSupportedModels(Gpt41106PreviewValue); + + public static InternalAssistantSupportedModels Gpt4VisionPreview { get; } = new InternalAssistantSupportedModels(Gpt4VisionPreviewValue); + + public static InternalAssistantSupportedModels Gpt4 { get; } = new InternalAssistantSupportedModels(Gpt4Value); + + public static InternalAssistantSupportedModels Gpt40314 { get; } = new InternalAssistantSupportedModels(Gpt40314Value); + + public static InternalAssistantSupportedModels Gpt40613 { get; } = new InternalAssistantSupportedModels(Gpt40613Value); + + public static InternalAssistantSupportedModels Gpt432k { get; } = new InternalAssistantSupportedModels(Gpt432kValue); + + public static InternalAssistantSupportedModels Gpt432k0314 { get; } = new InternalAssistantSupportedModels(Gpt432k0314Value); + + public static InternalAssistantSupportedModels Gpt432k0613 { get; } = new InternalAssistantSupportedModels(Gpt432k0613Value); + + public static InternalAssistantSupportedModels Gpt35Turbo { get; } = new InternalAssistantSupportedModels(Gpt35TurboValue); + + public static InternalAssistantSupportedModels Gpt35Turbo16k { get; } = new InternalAssistantSupportedModels(Gpt35Turbo16kValue); + + public static InternalAssistantSupportedModels Gpt35Turbo0613 { get; } = new InternalAssistantSupportedModels(Gpt35Turbo0613Value); + + public static InternalAssistantSupportedModels Gpt35Turbo1106 { get; } = new InternalAssistantSupportedModels(Gpt35Turbo1106Value); + + public static InternalAssistantSupportedModels Gpt35Turbo0125 { get; } = new InternalAssistantSupportedModels(Gpt35Turbo0125Value); + + public static InternalAssistantSupportedModels Gpt35Turbo16k0613 { get; } = new InternalAssistantSupportedModels(Gpt35Turbo16k0613Value); + + public static bool operator ==(InternalAssistantSupportedModels left, InternalAssistantSupportedModels right) => left.Equals(right); + + public static bool operator !=(InternalAssistantSupportedModels left, InternalAssistantSupportedModels right) => !left.Equals(right); + + public static implicit operator InternalAssistantSupportedModels(string value) => new InternalAssistantSupportedModels(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalAssistantSupportedModels other && Equals(other); + + public bool Equals(InternalAssistantSupportedModels other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalAssistantToolsFileSearchFileSearch.Serialization.cs b/src/Generated/Models/InternalAssistantToolsFileSearchFileSearch.Serialization.cs index efe91100e..0dbb0a164 100644 --- a/src/Generated/Models/InternalAssistantToolsFileSearchFileSearch.Serialization.cs +++ b/src/Generated/Models/InternalAssistantToolsFileSearchFileSearch.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("max_num_results"u8); writer.WriteNumberValue(InternalMaxNumResults.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalAssistantToolsFileSearchFileSearch DeserializeInternalAs internalMaxNumResults = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAssistantToolsFileSearchFileSearch(rankingOptions, internalMaxNumResults, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAssistantToolsFileSearchTypeOnly.Serialization.cs b/src/Generated/Models/InternalAssistantToolsFileSearchTypeOnly.Serialization.cs index c73097323..adebde7f6 100644 --- a/src/Generated/Models/InternalAssistantToolsFileSearchTypeOnly.Serialization.cs +++ b/src/Generated/Models/InternalAssistantToolsFileSearchTypeOnly.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -81,10 +81,7 @@ internal static InternalAssistantToolsFileSearchTypeOnly DeserializeInternalAssi @type = new InternalAssistantToolsFileSearchTypeOnlyType(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAssistantToolsFileSearchTypeOnly(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAssistantsNamedToolChoiceFunction.Serialization.cs b/src/Generated/Models/InternalAssistantsNamedToolChoiceFunction.Serialization.cs index bd02f8444..4c4b7495a 100644 --- a/src/Generated/Models/InternalAssistantsNamedToolChoiceFunction.Serialization.cs +++ b/src/Generated/Models/InternalAssistantsNamedToolChoiceFunction.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("name"u8); writer.WriteStringValue(Name); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalAssistantsNamedToolChoiceFunction DeserializeInternalAss name = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAssistantsNamedToolChoiceFunction(name, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAutoChunkingStrategy.Serialization.cs b/src/Generated/Models/InternalAutoChunkingStrategy.Serialization.cs index 2c92732ee..6804f8839 100644 --- a/src/Generated/Models/InternalAutoChunkingStrategy.Serialization.cs +++ b/src/Generated/Models/InternalAutoChunkingStrategy.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalAutoChunkingStrategy DeserializeInternalAutoChunkingStra @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAutoChunkingStrategy(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalAutoChunkingStrategyRequestParam.Serialization.cs b/src/Generated/Models/InternalAutoChunkingStrategyRequestParam.Serialization.cs index c258abd77..c0f13df24 100644 --- a/src/Generated/Models/InternalAutoChunkingStrategyRequestParam.Serialization.cs +++ b/src/Generated/Models/InternalAutoChunkingStrategyRequestParam.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalAutoChunkingStrategyRequestParam DeserializeInternalAuto @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalAutoChunkingStrategyRequestParam(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchError.Serialization.cs b/src/Generated/Models/InternalBatchError.Serialization.cs index c3d3f4c0d..0940dccad 100644 --- a/src/Generated/Models/InternalBatchError.Serialization.cs +++ b/src/Generated/Models/InternalBatchError.Serialization.cs @@ -39,29 +39,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Param) && _additionalBinaryDataProperties?.ContainsKey("param") != true) { - if (Param != null) - { - writer.WritePropertyName("param"u8); - writer.WriteStringValue(Param); - } - else - { - writer.WriteNull("param"u8); - } + writer.WritePropertyName("param"u8); + writer.WriteStringValue(Param); } if (Optional.IsDefined(Line) && _additionalBinaryDataProperties?.ContainsKey("line") != true) { - if (Line != null) - { - writer.WritePropertyName("line"u8); - writer.WriteNumberValue(Line.Value); - } - else - { - writer.WriteNull("line"u8); - } + writer.WritePropertyName("line"u8); + writer.WriteNumberValue(Line.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -138,10 +124,7 @@ internal static InternalBatchError DeserializeInternalBatchError(JsonElement ele line = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchError(code, message, @param, line, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchErrors.Serialization.cs b/src/Generated/Models/InternalBatchErrors.Serialization.cs index 7d09b6dca..9c03f2263 100644 --- a/src/Generated/Models/InternalBatchErrors.Serialization.cs +++ b/src/Generated/Models/InternalBatchErrors.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -110,10 +110,7 @@ internal static InternalBatchErrors DeserializeInternalBatchErrors(JsonElement e data = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchErrors(@object, data ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchJob.Serialization.cs b/src/Generated/Models/InternalBatchJob.Serialization.cs index 99da02c43..cc9e8cb13 100644 --- a/src/Generated/Models/InternalBatchJob.Serialization.cs +++ b/src/Generated/Models/InternalBatchJob.Serialization.cs @@ -128,7 +128,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -149,7 +149,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("metadata"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -369,10 +369,7 @@ internal static InternalBatchJob DeserializeInternalBatchJob(JsonElement element metadata = dictionary; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchJob( id, diff --git a/src/Generated/Models/InternalBatchRequestCounts.Serialization.cs b/src/Generated/Models/InternalBatchRequestCounts.Serialization.cs index e1af9a276..61e6b74c4 100644 --- a/src/Generated/Models/InternalBatchRequestCounts.Serialization.cs +++ b/src/Generated/Models/InternalBatchRequestCounts.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("failed"u8); writer.WriteNumberValue(Failed); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalBatchRequestCounts DeserializeInternalBatchRequestCounts failed = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchRequestCounts(total, completed, failed, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchRequestInput.Serialization.cs b/src/Generated/Models/InternalBatchRequestInput.Serialization.cs index 103045cb5..356543095 100644 --- a/src/Generated/Models/InternalBatchRequestInput.Serialization.cs +++ b/src/Generated/Models/InternalBatchRequestInput.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("url"u8); writer.WriteStringValue(Url.AbsoluteUri); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -111,10 +111,7 @@ internal static InternalBatchRequestInput DeserializeInternalBatchRequestInput(J url = new Uri(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchRequestInput(customId, @method, url, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchRequestOutput.Serialization.cs b/src/Generated/Models/InternalBatchRequestOutput.Serialization.cs index e2f37f4af..6da0cfd42 100644 --- a/src/Generated/Models/InternalBatchRequestOutput.Serialization.cs +++ b/src/Generated/Models/InternalBatchRequestOutput.Serialization.cs @@ -39,29 +39,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Response) && _additionalBinaryDataProperties?.ContainsKey("response") != true) { - if (Response != null) - { - writer.WritePropertyName("response"u8); - writer.WriteObjectValue(Response, options); - } - else - { - writer.WriteNull("response"u8); - } + writer.WritePropertyName("response"u8); + writer.WriteObjectValue(Response, options); } if (Optional.IsDefined(Error) && _additionalBinaryDataProperties?.ContainsKey("error") != true) { - if (Error != null) - { - writer.WritePropertyName("error"u8); - writer.WriteObjectValue(Error, options); - } - else - { - writer.WriteNull("error"u8); - } + writer.WritePropertyName("error"u8); + writer.WriteObjectValue(Error, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -138,10 +124,7 @@ internal static InternalBatchRequestOutput DeserializeInternalBatchRequestOutput error = InternalBatchRequestOutputError.DeserializeInternalBatchRequestOutputError(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchRequestOutput(id, customId, response, error, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchRequestOutputError.Serialization.cs b/src/Generated/Models/InternalBatchRequestOutputError.Serialization.cs index a8c726285..32cfaa289 100644 --- a/src/Generated/Models/InternalBatchRequestOutputError.Serialization.cs +++ b/src/Generated/Models/InternalBatchRequestOutputError.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message"u8); writer.WriteStringValue(Message); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalBatchRequestOutputError DeserializeInternalBatchRequestO message = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchRequestOutputError(code, message, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalBatchRequestOutputResponse.Serialization.cs b/src/Generated/Models/InternalBatchRequestOutputResponse.Serialization.cs index 435633b71..7e6bc041e 100644 --- a/src/Generated/Models/InternalBatchRequestOutputResponse.Serialization.cs +++ b/src/Generated/Models/InternalBatchRequestOutputResponse.Serialization.cs @@ -60,7 +60,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndObject(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -141,10 +141,7 @@ internal static InternalBatchRequestOutputResponse DeserializeInternalBatchReque body = dictionary; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalBatchRequestOutputResponse(statusCode, requestId, body ?? new ChangeTrackingDictionary(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionFunctionCallOption.Serialization.cs b/src/Generated/Models/InternalChatCompletionFunctionCallOption.Serialization.cs index c43769045..7a00efa66 100644 --- a/src/Generated/Models/InternalChatCompletionFunctionCallOption.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionFunctionCallOption.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("name"u8); writer.WriteStringValue(Name); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalChatCompletionFunctionCallOption DeserializeInternalChat name = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionFunctionCallOption(name, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionMessageToolCallChunkFunction.Serialization.cs b/src/Generated/Models/InternalChatCompletionMessageToolCallChunkFunction.Serialization.cs index 1f5d4d3ad..ad43dca7d 100644 --- a/src/Generated/Models/InternalChatCompletionMessageToolCallChunkFunction.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionMessageToolCallChunkFunction.Serialization.cs @@ -35,9 +35,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(Arguments) && _additionalBinaryDataProperties?.ContainsKey("arguments") != true) { writer.WritePropertyName("arguments"u8); - this.SerializeArgumentsValue(writer, options); + SerializeArgumentsValue(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalChatCompletionMessageToolCallChunkFunction DeserializeIn DeserializeArgumentsValue(prop, ref arguments); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionMessageToolCallChunkFunction(name, arguments, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionMessageToolCallFunction.Serialization.cs b/src/Generated/Models/InternalChatCompletionMessageToolCallFunction.Serialization.cs index 48fde14d1..634017aef 100644 --- a/src/Generated/Models/InternalChatCompletionMessageToolCallFunction.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionMessageToolCallFunction.Serialization.cs @@ -39,9 +39,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("arguments") != true) { writer.WritePropertyName("arguments"u8); - this.SerializeArgumentsValue(writer, options); + SerializeArgumentsValue(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionMessageToolCallFunction DeserializeInterna DeserializeArgumentsValue(prop, ref arguments); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionMessageToolCallFunction(name, arguments, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionNamedToolChoice.Serialization.cs b/src/Generated/Models/InternalChatCompletionNamedToolChoice.Serialization.cs index c2d62dcba..85943af54 100644 --- a/src/Generated/Models/InternalChatCompletionNamedToolChoice.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionNamedToolChoice.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("function"u8); writer.WriteObjectValue(Function, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionNamedToolChoice DeserializeInternalChatCom function = InternalChatCompletionNamedToolChoiceFunction.DeserializeInternalChatCompletionNamedToolChoiceFunction(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionNamedToolChoice(@type, function, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionNamedToolChoiceFunction.Serialization.cs b/src/Generated/Models/InternalChatCompletionNamedToolChoiceFunction.Serialization.cs index 4c3b8a036..65ccae31d 100644 --- a/src/Generated/Models/InternalChatCompletionNamedToolChoiceFunction.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionNamedToolChoiceFunction.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("name"u8); writer.WriteStringValue(Name); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalChatCompletionNamedToolChoiceFunction DeserializeInterna name = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionNamedToolChoiceFunction(name, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudio.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudio.Serialization.cs index 4066d42a3..ff9774e9f 100644 --- a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudio.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudio.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("input_audio"u8); writer.WriteObjectValue(InputAudio, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionRequestMessageContentPartAudio Deserialize inputAudio = InternalChatCompletionRequestMessageContentPartAudioInputAudio.DeserializeInternalChatCompletionRequestMessageContentPartAudioInputAudio(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionRequestMessageContentPartAudio(@type, inputAudio, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudioInputAudio.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudioInputAudio.Serialization.cs index 99ed0481a..419b7b229 100644 --- a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudioInputAudio.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartAudioInputAudio.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("format"u8); writer.WriteStringValue(Format.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionRequestMessageContentPartAudioInputAudio D format = new ChatInputAudioFormat(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionRequestMessageContentPartAudioInputAudio(data, format, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFile.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFile.Serialization.cs new file mode 100644 index 000000000..f39cfe468 --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFile.Serialization.cs @@ -0,0 +1,153 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Chat +{ + internal partial class InternalChatCompletionRequestMessageContentPartFile : IJsonModel + { + internal InternalChatCompletionRequestMessageContentPartFile() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFile)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("file") != true) + { + writer.WritePropertyName("file"u8); + writer.WriteObjectValue(File, options); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalChatCompletionRequestMessageContentPartFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalChatCompletionRequestMessageContentPartFile JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFile)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalChatCompletionRequestMessageContentPartFile(document.RootElement, options); + } + + internal static InternalChatCompletionRequestMessageContentPartFile DeserializeInternalChatCompletionRequestMessageContentPartFile(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalChatCompletionRequestMessageContentPartFileType @type = default; + InternalChatCompletionRequestMessageContentPartFileFile @file = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalChatCompletionRequestMessageContentPartFileType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("file"u8)) + { + @file = InternalChatCompletionRequestMessageContentPartFileFile.DeserializeInternalChatCompletionRequestMessageContentPartFileFile(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalChatCompletionRequestMessageContentPartFile(@type, @file, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFile)} does not support writing '{options.Format}' format."); + } + } + + InternalChatCompletionRequestMessageContentPartFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalChatCompletionRequestMessageContentPartFile PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalChatCompletionRequestMessageContentPartFile(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFile)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalChatCompletionRequestMessageContentPartFile internalChatCompletionRequestMessageContentPartFile) + { + if (internalChatCompletionRequestMessageContentPartFile == null) + { + return null; + } + return BinaryContent.Create(internalChatCompletionRequestMessageContentPartFile, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalChatCompletionRequestMessageContentPartFile(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalChatCompletionRequestMessageContentPartFile(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFile.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFile.cs new file mode 100644 index 000000000..0bca8f3d9 --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFile.cs @@ -0,0 +1,39 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Chat +{ + internal partial class InternalChatCompletionRequestMessageContentPartFile + { + private protected IDictionary _additionalBinaryDataProperties; + + public InternalChatCompletionRequestMessageContentPartFile(InternalChatCompletionRequestMessageContentPartFileFile @file) + { + Argument.AssertNotNull(@file, nameof(@file)); + + File = @file; + } + + internal InternalChatCompletionRequestMessageContentPartFile(InternalChatCompletionRequestMessageContentPartFileType @type, InternalChatCompletionRequestMessageContentPartFileFile @file, IDictionary additionalBinaryDataProperties) + { + Type = @type; + File = @file; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public InternalChatCompletionRequestMessageContentPartFileType Type { get; } = "file"; + + public InternalChatCompletionRequestMessageContentPartFileFile File { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileFile.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileFile.Serialization.cs new file mode 100644 index 000000000..13a130c5e --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileFile.Serialization.cs @@ -0,0 +1,160 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Chat +{ + internal partial class InternalChatCompletionRequestMessageContentPartFileFile : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFileFile)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(FileName) && _additionalBinaryDataProperties?.ContainsKey("file_name") != true) + { + writer.WritePropertyName("file_name"u8); + writer.WriteStringValue(FileName); + } + if (Optional.IsDefined(FileData) && _additionalBinaryDataProperties?.ContainsKey("file_data") != true) + { + writer.WritePropertyName("file_data"u8); + writer.WriteStringValue(FileData); + } + if (Optional.IsDefined(FileId) && _additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalChatCompletionRequestMessageContentPartFileFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalChatCompletionRequestMessageContentPartFileFile JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFileFile)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalChatCompletionRequestMessageContentPartFileFile(document.RootElement, options); + } + + internal static InternalChatCompletionRequestMessageContentPartFileFile DeserializeInternalChatCompletionRequestMessageContentPartFileFile(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileName = default; + string fileData = default; + string fileId = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("file_name"u8)) + { + fileName = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("file_data"u8)) + { + fileData = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalChatCompletionRequestMessageContentPartFileFile(fileName, fileData, fileId, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFileFile)} does not support writing '{options.Format}' format."); + } + } + + InternalChatCompletionRequestMessageContentPartFileFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalChatCompletionRequestMessageContentPartFileFile PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalChatCompletionRequestMessageContentPartFileFile(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalChatCompletionRequestMessageContentPartFileFile)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalChatCompletionRequestMessageContentPartFileFile internalChatCompletionRequestMessageContentPartFileFile) + { + if (internalChatCompletionRequestMessageContentPartFileFile == null) + { + return null; + } + return BinaryContent.Create(internalChatCompletionRequestMessageContentPartFileFile, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalChatCompletionRequestMessageContentPartFileFile(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalChatCompletionRequestMessageContentPartFileFile(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileFile.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileFile.cs new file mode 100644 index 000000000..12b56addf --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileFile.cs @@ -0,0 +1,38 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Chat +{ + internal partial class InternalChatCompletionRequestMessageContentPartFileFile + { + private protected IDictionary _additionalBinaryDataProperties; + + public InternalChatCompletionRequestMessageContentPartFileFile() + { + } + + internal InternalChatCompletionRequestMessageContentPartFileFile(string fileName, string fileData, string fileId, IDictionary additionalBinaryDataProperties) + { + FileName = fileName; + FileData = fileData; + FileId = fileId; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string FileName { get; set; } + + public string FileData { get; set; } + + public string FileId { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileType.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileType.cs new file mode 100644 index 000000000..bac939c73 --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartFileType.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Chat +{ + internal readonly partial struct InternalChatCompletionRequestMessageContentPartFileType : IEquatable + { + private readonly string _value; + private const string FileValue = "file"; + + public InternalChatCompletionRequestMessageContentPartFileType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalChatCompletionRequestMessageContentPartFileType File { get; } = new InternalChatCompletionRequestMessageContentPartFileType(FileValue); + + public static bool operator ==(InternalChatCompletionRequestMessageContentPartFileType left, InternalChatCompletionRequestMessageContentPartFileType right) => left.Equals(right); + + public static bool operator !=(InternalChatCompletionRequestMessageContentPartFileType left, InternalChatCompletionRequestMessageContentPartFileType right) => !left.Equals(right); + + public static implicit operator InternalChatCompletionRequestMessageContentPartFileType(string value) => new InternalChatCompletionRequestMessageContentPartFileType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalChatCompletionRequestMessageContentPartFileType other && Equals(other); + + public bool Equals(InternalChatCompletionRequestMessageContentPartFileType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImage.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImage.Serialization.cs index 5c1248e27..3f05dc32d 100644 --- a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImage.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImage.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("image_url"u8); writer.WriteObjectValue(ImageUrl, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionRequestMessageContentPartImage Deserialize imageUrl = InternalChatCompletionRequestMessageContentPartImageImageUrl.DeserializeInternalChatCompletionRequestMessageContentPartImageImageUrl(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionRequestMessageContentPartImage(@type, imageUrl, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImageImageUrl.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImageImageUrl.Serialization.cs index 514e40e67..b43eb47a7 100644 --- a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImageImageUrl.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartImageImageUrl.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("url"u8); writer.WriteStringValue(Url); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalChatCompletionRequestMessageContentPartImageImageUrl Des url = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionRequestMessageContentPartImageImageUrl(detail, url, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartRefusal.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartRefusal.Serialization.cs index 0bd526080..566a6ccef 100644 --- a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartRefusal.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartRefusal.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("refusal"u8); writer.WriteStringValue(Refusal); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionRequestMessageContentPartRefusal Deseriali refusal = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionRequestMessageContentPartRefusal(@type, refusal, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartText.Serialization.cs b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartText.Serialization.cs index d318473d8..166dcc2a3 100644 --- a/src/Generated/Models/InternalChatCompletionRequestMessageContentPartText.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionRequestMessageContentPartText.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionRequestMessageContentPartText DeserializeI text = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionRequestMessageContentPartText(@type, text, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionResponseMessage.Serialization.cs b/src/Generated/Models/InternalChatCompletionResponseMessage.Serialization.cs index d9e55f613..421c7a66f 100644 --- a/src/Generated/Models/InternalChatCompletionResponseMessage.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionResponseMessage.Serialization.cs @@ -33,7 +33,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("refusal") != true) { - if (Refusal != null) + if (Optional.IsDefined(Refusal)) { writer.WritePropertyName("refusal"u8); writer.WriteStringValue(Refusal); @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("refusal"u8); } } - if (true && Optional.IsCollectionDefined(ToolCalls) && _additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) + if (Optional.IsCollectionDefined(ToolCalls) && _additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) { writer.WritePropertyName("tool_calls"u8); writer.WriteStartArray(); @@ -53,17 +53,20 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (Optional.IsDefined(Audio) && _additionalBinaryDataProperties?.ContainsKey("audio") != true) + if (Optional.IsCollectionDefined(Annotations) && _additionalBinaryDataProperties?.ContainsKey("annotations") != true) { - if (Audio != null) - { - writer.WritePropertyName("audio"u8); - writer.WriteObjectValue(Audio, options); - } - else + writer.WritePropertyName("annotations"u8); + writer.WriteStartArray(); + foreach (ChatMessageAnnotation item in Annotations) { - writer.WriteNull("audio"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); + } + if (Optional.IsDefined(Audio) && _additionalBinaryDataProperties?.ContainsKey("audio") != true) + { + writer.WritePropertyName("audio"u8); + writer.WriteObjectValue(Audio, options); } if (_additionalBinaryDataProperties?.ContainsKey("role") != true) { @@ -72,10 +75,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { - if (Content != null) + if (Optional.IsDefined(Content)) { writer.WritePropertyName("content"u8); - this.SerializeContentValue(writer, options); + SerializeContentValue(writer, options); } else { @@ -85,9 +88,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(FunctionCall) && _additionalBinaryDataProperties?.ContainsKey("function_call") != true) { writer.WritePropertyName("function_call"u8); - writer.WriteObjectValue(FunctionCall, options); + writer.WriteObjectValue(FunctionCall, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -129,8 +132,9 @@ internal static InternalChatCompletionResponseMessage DeserializeInternalChatCom } string refusal = default; IReadOnlyList toolCalls = default; + IList annotations = default; ChatOutputAudio audio = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; ChatMessageContent content = default; ChatFunctionCall functionCall = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); @@ -160,6 +164,20 @@ internal static InternalChatCompletionResponseMessage DeserializeInternalChatCom toolCalls = array; continue; } + if (prop.NameEquals("annotations"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ChatMessageAnnotation.DeserializeChatMessageAnnotation(item, options)); + } + annotations = array; + continue; + } if (prop.NameEquals("audio"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) @@ -189,18 +207,15 @@ internal static InternalChatCompletionResponseMessage DeserializeInternalChatCom functionCall = ChatFunctionCall.DeserializeChatFunctionCall(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. return new InternalChatCompletionResponseMessage( refusal, toolCalls ?? new ChangeTrackingList(), + annotations ?? new ChangeTrackingList(), audio, role, - content ?? new ChatMessageContent(), + content, functionCall, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionResponseMessage.cs b/src/Generated/Models/InternalChatCompletionResponseMessage.cs index 7b8f87e68..fc63a5473 100644 --- a/src/Generated/Models/InternalChatCompletionResponseMessage.cs +++ b/src/Generated/Models/InternalChatCompletionResponseMessage.cs @@ -16,16 +16,20 @@ internal InternalChatCompletionResponseMessage(string refusal, ChatMessageConten { Refusal = refusal; ToolCalls = new ChangeTrackingList(); - Content = content; + Annotations = new ChangeTrackingList(); + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); } - internal InternalChatCompletionResponseMessage(string refusal, IReadOnlyList toolCalls, ChatOutputAudio audio, Chat.ChatMessageRole role, ChatMessageContent content, ChatFunctionCall functionCall, IDictionary additionalBinaryDataProperties) + internal InternalChatCompletionResponseMessage(string refusal, IReadOnlyList toolCalls, IList annotations, ChatOutputAudio audio, ChatMessageRole role, ChatMessageContent content, ChatFunctionCall functionCall, IDictionary additionalBinaryDataProperties) { Refusal = refusal; ToolCalls = toolCalls; + Annotations = annotations; Audio = audio; Role = role; - Content = content; + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); FunctionCall = functionCall; _additionalBinaryDataProperties = additionalBinaryDataProperties; } @@ -34,6 +38,8 @@ internal InternalChatCompletionResponseMessage(string refusal, IReadOnlyList ToolCalls { get; } + public IList Annotations { get; } + public ChatOutputAudio Audio { get; } internal IDictionary SerializedAdditionalRawData diff --git a/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationType.cs b/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationType.cs new file mode 100644 index 000000000..312ff7502 --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationType.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Chat +{ + internal readonly partial struct InternalChatCompletionResponseMessageAnnotationType : IEquatable + { + private readonly string _value; + private const string UrlCitationValue = "url_citation"; + + public InternalChatCompletionResponseMessageAnnotationType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalChatCompletionResponseMessageAnnotationType UrlCitation { get; } = new InternalChatCompletionResponseMessageAnnotationType(UrlCitationValue); + + public static bool operator ==(InternalChatCompletionResponseMessageAnnotationType left, InternalChatCompletionResponseMessageAnnotationType right) => left.Equals(right); + + public static bool operator !=(InternalChatCompletionResponseMessageAnnotationType left, InternalChatCompletionResponseMessageAnnotationType right) => !left.Equals(right); + + public static implicit operator InternalChatCompletionResponseMessageAnnotationType(string value) => new InternalChatCompletionResponseMessageAnnotationType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalChatCompletionResponseMessageAnnotationType other && Equals(other); + + public bool Equals(InternalChatCompletionResponseMessageAnnotationType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationUrlCitation.Serialization.cs b/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationUrlCitation.Serialization.cs new file mode 100644 index 000000000..27b7b369f --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationUrlCitation.Serialization.cs @@ -0,0 +1,175 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Chat +{ + internal partial class InternalChatCompletionResponseMessageAnnotationUrlCitation : IJsonModel + { + internal InternalChatCompletionResponseMessageAnnotationUrlCitation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalChatCompletionResponseMessageAnnotationUrlCitation)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("end_index") != true) + { + writer.WritePropertyName("end_index"u8); + writer.WriteNumberValue(EndIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("start_index") != true) + { + writer.WritePropertyName("start_index"u8); + writer.WriteNumberValue(StartIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("url") != true) + { + writer.WritePropertyName("url"u8); + writer.WriteStringValue(Url.AbsoluteUri); + } + if (_additionalBinaryDataProperties?.ContainsKey("title") != true) + { + writer.WritePropertyName("title"u8); + writer.WriteStringValue(Title); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalChatCompletionResponseMessageAnnotationUrlCitation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalChatCompletionResponseMessageAnnotationUrlCitation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalChatCompletionResponseMessageAnnotationUrlCitation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalChatCompletionResponseMessageAnnotationUrlCitation(document.RootElement, options); + } + + internal static InternalChatCompletionResponseMessageAnnotationUrlCitation DeserializeInternalChatCompletionResponseMessageAnnotationUrlCitation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int endIndex = default; + int startIndex = default; + Uri url = default; + string title = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("end_index"u8)) + { + endIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("start_index"u8)) + { + startIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("url"u8)) + { + url = new Uri(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("title"u8)) + { + title = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalChatCompletionResponseMessageAnnotationUrlCitation(endIndex, startIndex, url, title, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalChatCompletionResponseMessageAnnotationUrlCitation)} does not support writing '{options.Format}' format."); + } + } + + InternalChatCompletionResponseMessageAnnotationUrlCitation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalChatCompletionResponseMessageAnnotationUrlCitation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalChatCompletionResponseMessageAnnotationUrlCitation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalChatCompletionResponseMessageAnnotationUrlCitation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalChatCompletionResponseMessageAnnotationUrlCitation internalChatCompletionResponseMessageAnnotationUrlCitation) + { + if (internalChatCompletionResponseMessageAnnotationUrlCitation == null) + { + return null; + } + return BinaryContent.Create(internalChatCompletionResponseMessageAnnotationUrlCitation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalChatCompletionResponseMessageAnnotationUrlCitation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalChatCompletionResponseMessageAnnotationUrlCitation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationUrlCitation.cs b/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationUrlCitation.cs new file mode 100644 index 000000000..fdacc9ec0 --- /dev/null +++ b/src/Generated/Models/InternalChatCompletionResponseMessageAnnotationUrlCitation.cs @@ -0,0 +1,45 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Chat +{ + internal partial class InternalChatCompletionResponseMessageAnnotationUrlCitation + { + private protected IDictionary _additionalBinaryDataProperties; + + internal InternalChatCompletionResponseMessageAnnotationUrlCitation(int endIndex, int startIndex, Uri url, string title) + { + EndIndex = endIndex; + StartIndex = startIndex; + Url = url; + Title = title; + } + + internal InternalChatCompletionResponseMessageAnnotationUrlCitation(int endIndex, int startIndex, Uri url, string title, IDictionary additionalBinaryDataProperties) + { + EndIndex = endIndex; + StartIndex = startIndex; + Url = url; + Title = title; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public int EndIndex { get; } + + public int StartIndex { get; } + + public Uri Url { get; } + + public string Title { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalChatCompletionResponseMessageFunctionCall.Serialization.cs b/src/Generated/Models/InternalChatCompletionResponseMessageFunctionCall.Serialization.cs index 4bea570ba..877fb2c5d 100644 --- a/src/Generated/Models/InternalChatCompletionResponseMessageFunctionCall.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionResponseMessageFunctionCall.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("arguments"u8); writer.WriteStringValue(Arguments); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalChatCompletionResponseMessageFunctionCall DeserializeInt arguments = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionResponseMessageFunctionCall(name, arguments, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionStreamOptions.Serialization.cs b/src/Generated/Models/InternalChatCompletionStreamOptions.Serialization.cs index cf88a53b3..114129354 100644 --- a/src/Generated/Models/InternalChatCompletionStreamOptions.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionStreamOptions.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("include_usage"u8); writer.WriteBooleanValue(IncludeUsage.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalChatCompletionStreamOptions DeserializeInternalChatCompl includeUsage = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatCompletionStreamOptions(includeUsage, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionStreamResponseDelta.Serialization.cs b/src/Generated/Models/InternalChatCompletionStreamResponseDelta.Serialization.cs index de9f8afcb..7d70eb599 100644 --- a/src/Generated/Models/InternalChatCompletionStreamResponseDelta.Serialization.cs +++ b/src/Generated/Models/InternalChatCompletionStreamResponseDelta.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("function_call"u8); writer.WriteObjectValue(FunctionCall, options); } - if (true && Optional.IsCollectionDefined(ToolCalls) && _additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) + if (Optional.IsCollectionDefined(ToolCalls) && _additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) { writer.WritePropertyName("tool_calls"u8); writer.WriteStartArray(); @@ -49,35 +49,20 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Refusal) && _additionalBinaryDataProperties?.ContainsKey("refusal") != true) { - if (Refusal != null) - { - writer.WritePropertyName("refusal"u8); - writer.WriteStringValue(Refusal); - } - else - { - writer.WriteNull("refusal"u8); - } + writer.WritePropertyName("refusal"u8); + writer.WriteStringValue(Refusal); } if (Optional.IsDefined(Role) && _additionalBinaryDataProperties?.ContainsKey("role") != true) { writer.WritePropertyName("role"u8); writer.WriteStringValue(Role.Value.ToSerialString()); } - // CUSTOM: Check inner collection is defined. - if (Optional.IsDefined(Content) && _additionalBinaryDataProperties?.ContainsKey("content") != true && Content.IsInnerCollectionDefined()) + if (Optional.IsDefined(Content) && Content.IsInnerCollectionDefined() && _additionalBinaryDataProperties?.ContainsKey("content") != true) { - if (Content != null) - { - writer.WritePropertyName("content"u8); - this.SerializeContentValue(writer, options); - } - else - { - writer.WriteNull("content"u8); - } + writer.WritePropertyName("content"u8); + SerializeContentValue(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -121,7 +106,7 @@ internal static InternalChatCompletionStreamResponseDelta DeserializeInternalCha StreamingChatFunctionCallUpdate functionCall = default; IReadOnlyList toolCalls = default; string refusal = default; - Chat.ChatMessageRole? role = default; + ChatMessageRole? role = default; ChatMessageContent content = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -182,19 +167,15 @@ internal static InternalChatCompletionStreamResponseDelta DeserializeInternalCha DeserializeContentValue(prop, ref content); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. return new InternalChatCompletionStreamResponseDelta( audio, functionCall, toolCalls ?? new ChangeTrackingList(), refusal, role, - content ?? new ChatMessageContent(), + content, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatCompletionStreamResponseDelta.cs b/src/Generated/Models/InternalChatCompletionStreamResponseDelta.cs index 1cdd4603e..9202a8017 100644 --- a/src/Generated/Models/InternalChatCompletionStreamResponseDelta.cs +++ b/src/Generated/Models/InternalChatCompletionStreamResponseDelta.cs @@ -11,14 +11,15 @@ internal partial class InternalChatCompletionStreamResponseDelta { private protected IDictionary _additionalBinaryDataProperties; - internal InternalChatCompletionStreamResponseDelta(StreamingChatOutputAudioUpdate audio, StreamingChatFunctionCallUpdate functionCall, IReadOnlyList toolCalls, string refusal, Chat.ChatMessageRole? role, ChatMessageContent content, IDictionary additionalBinaryDataProperties) + internal InternalChatCompletionStreamResponseDelta(StreamingChatOutputAudioUpdate audio, StreamingChatFunctionCallUpdate functionCall, IReadOnlyList toolCalls, string refusal, ChatMessageRole? role, ChatMessageContent content, IDictionary additionalBinaryDataProperties) { Audio = audio; FunctionCall = functionCall; ToolCalls = toolCalls; Refusal = refusal; Role = role; - Content = content; + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/InternalChatCompletionStreamResponseDeltaRole.cs b/src/Generated/Models/InternalChatCompletionStreamResponseDeltaRole.cs index c39d97b59..666eced49 100644 --- a/src/Generated/Models/InternalChatCompletionStreamResponseDeltaRole.cs +++ b/src/Generated/Models/InternalChatCompletionStreamResponseDeltaRole.cs @@ -11,6 +11,7 @@ namespace OpenAI.Chat internal readonly partial struct InternalChatCompletionStreamResponseDeltaRole : IEquatable { private readonly string _value; + private const string DeveloperValue = "developer"; private const string SystemValue = "system"; private const string UserValue = "user"; private const string AssistantValue = "assistant"; @@ -23,6 +24,8 @@ public InternalChatCompletionStreamResponseDeltaRole(string value) _value = value; } + public static InternalChatCompletionStreamResponseDeltaRole Developer { get; } = new InternalChatCompletionStreamResponseDeltaRole(DeveloperValue); + public static InternalChatCompletionStreamResponseDeltaRole System { get; } = new InternalChatCompletionStreamResponseDeltaRole(SystemValue); public static InternalChatCompletionStreamResponseDeltaRole User { get; } = new InternalChatCompletionStreamResponseDeltaRole(UserValue); diff --git a/src/Generated/Models/InternalChatOutputPredictionContent.Serialization.cs b/src/Generated/Models/InternalChatOutputPredictionContent.Serialization.cs index b87396419..166949e74 100644 --- a/src/Generated/Models/InternalChatOutputPredictionContent.Serialization.cs +++ b/src/Generated/Models/InternalChatOutputPredictionContent.Serialization.cs @@ -32,11 +32,10 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri throw new FormatException($"The model {nameof(InternalChatOutputPredictionContent)} does not support writing '{format}' format."); } base.JsonModelWriteCore(writer, options); - // CUSTOM: Check inner collection is defined. - if (Content.IsInnerCollectionDefined() && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { writer.WritePropertyName("content"u8); - this.SerializeContentValue(writer, options); + SerializeContentValue(writer, options); } } @@ -74,10 +73,7 @@ internal static InternalChatOutputPredictionContent DeserializeInternalChatOutpu DeserializeContentValue(prop, ref content); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatOutputPredictionContent(@type, additionalBinaryDataProperties, content); } diff --git a/src/Generated/Models/InternalChatOutputPredictionContent.cs b/src/Generated/Models/InternalChatOutputPredictionContent.cs index e23a7c124..7b56552b5 100644 --- a/src/Generated/Models/InternalChatOutputPredictionContent.cs +++ b/src/Generated/Models/InternalChatOutputPredictionContent.cs @@ -14,12 +14,14 @@ public InternalChatOutputPredictionContent(ChatMessageContent content) : base(In { Argument.AssertNotNull(content, nameof(content)); - Content = content; + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); } internal InternalChatOutputPredictionContent(InternalChatOutputPredictionKind @type, IDictionary additionalBinaryDataProperties, ChatMessageContent content) : base(@type, additionalBinaryDataProperties) { - Content = content; + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); } } } diff --git a/src/Generated/Models/InternalChatResponseFormatJsonObject.Serialization.cs b/src/Generated/Models/InternalChatResponseFormatJsonObject.Serialization.cs index 22c9f1605..577c68ce8 100644 --- a/src/Generated/Models/InternalChatResponseFormatJsonObject.Serialization.cs +++ b/src/Generated/Models/InternalChatResponseFormatJsonObject.Serialization.cs @@ -51,10 +51,7 @@ internal static InternalChatResponseFormatJsonObject DeserializeInternalChatResp @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatResponseFormatJsonObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalChatResponseFormatJsonSchema.Serialization.cs b/src/Generated/Models/InternalChatResponseFormatJsonSchema.Serialization.cs index a22d9777b..47a5db24d 100644 --- a/src/Generated/Models/InternalChatResponseFormatJsonSchema.Serialization.cs +++ b/src/Generated/Models/InternalChatResponseFormatJsonSchema.Serialization.cs @@ -67,10 +67,7 @@ internal static InternalChatResponseFormatJsonSchema DeserializeInternalChatResp jsonSchema = InternalResponseFormatJsonSchemaJsonSchema.DeserializeInternalResponseFormatJsonSchemaJsonSchema(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatResponseFormatJsonSchema(@type, additionalBinaryDataProperties, jsonSchema); } diff --git a/src/Generated/Models/InternalChatResponseFormatText.Serialization.cs b/src/Generated/Models/InternalChatResponseFormatText.Serialization.cs index 2100a5dfd..dbf3ffada 100644 --- a/src/Generated/Models/InternalChatResponseFormatText.Serialization.cs +++ b/src/Generated/Models/InternalChatResponseFormatText.Serialization.cs @@ -51,10 +51,7 @@ internal static InternalChatResponseFormatText DeserializeInternalChatResponseFo @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalChatResponseFormatText(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCompleteUploadRequest.Serialization.cs b/src/Generated/Models/InternalCompleteUploadRequest.Serialization.cs index 20bd2f55e..e5f4dbea2 100644 --- a/src/Generated/Models/InternalCompleteUploadRequest.Serialization.cs +++ b/src/Generated/Models/InternalCompleteUploadRequest.Serialization.cs @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("md5"u8); writer.WriteStringValue(Md5); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static InternalCompleteUploadRequest DeserializeInternalCompleteUploadR md5 = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCompleteUploadRequest(partIds, md5, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateAssistantRequestModel.cs b/src/Generated/Models/InternalCreateAssistantRequestModel.cs deleted file mode 100644 index 409d14569..000000000 --- a/src/Generated/Models/InternalCreateAssistantRequestModel.cs +++ /dev/null @@ -1,110 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - internal readonly partial struct InternalCreateAssistantRequestModel : IEquatable - { - private readonly string _value; - private const string Gpt4oValue = "gpt-4o"; - private const string Gpt4o20241120Value = "gpt-4o-2024-11-20"; - private const string Gpt4o20240806Value = "gpt-4o-2024-08-06"; - private const string Gpt4o20240513Value = "gpt-4o-2024-05-13"; - private const string Gpt4oMiniValue = "gpt-4o-mini"; - private const string Gpt4oMini20240718Value = "gpt-4o-mini-2024-07-18"; - private const string Gpt4TurboValue = "gpt-4-turbo"; - private const string Gpt4Turbo20240409Value = "gpt-4-turbo-2024-04-09"; - private const string Gpt40125PreviewValue = "gpt-4-0125-preview"; - private const string Gpt4TurboPreviewValue = "gpt-4-turbo-preview"; - private const string Gpt41106PreviewValue = "gpt-4-1106-preview"; - private const string Gpt4VisionPreviewValue = "gpt-4-vision-preview"; - private const string Gpt4Value = "gpt-4"; - private const string Gpt40314Value = "gpt-4-0314"; - private const string Gpt40613Value = "gpt-4-0613"; - private const string Gpt432kValue = "gpt-4-32k"; - private const string Gpt432k0314Value = "gpt-4-32k-0314"; - private const string Gpt432k0613Value = "gpt-4-32k-0613"; - private const string Gpt35TurboValue = "gpt-3.5-turbo"; - private const string Gpt35Turbo16kValue = "gpt-3.5-turbo-16k"; - private const string Gpt35Turbo0613Value = "gpt-3.5-turbo-0613"; - private const string Gpt35Turbo1106Value = "gpt-3.5-turbo-1106"; - private const string Gpt35Turbo0125Value = "gpt-3.5-turbo-0125"; - private const string Gpt35Turbo16k0613Value = "gpt-3.5-turbo-16k-0613"; - - public InternalCreateAssistantRequestModel(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static InternalCreateAssistantRequestModel Gpt4o { get; } = new InternalCreateAssistantRequestModel(Gpt4oValue); - - public static InternalCreateAssistantRequestModel Gpt4o20241120 { get; } = new InternalCreateAssistantRequestModel(Gpt4o20241120Value); - - public static InternalCreateAssistantRequestModel Gpt4o20240806 { get; } = new InternalCreateAssistantRequestModel(Gpt4o20240806Value); - - public static InternalCreateAssistantRequestModel Gpt4o20240513 { get; } = new InternalCreateAssistantRequestModel(Gpt4o20240513Value); - - public static InternalCreateAssistantRequestModel Gpt4oMini { get; } = new InternalCreateAssistantRequestModel(Gpt4oMiniValue); - - public static InternalCreateAssistantRequestModel Gpt4oMini20240718 { get; } = new InternalCreateAssistantRequestModel(Gpt4oMini20240718Value); - - public static InternalCreateAssistantRequestModel Gpt4Turbo { get; } = new InternalCreateAssistantRequestModel(Gpt4TurboValue); - - public static InternalCreateAssistantRequestModel Gpt4Turbo20240409 { get; } = new InternalCreateAssistantRequestModel(Gpt4Turbo20240409Value); - - public static InternalCreateAssistantRequestModel Gpt40125Preview { get; } = new InternalCreateAssistantRequestModel(Gpt40125PreviewValue); - - public static InternalCreateAssistantRequestModel Gpt4TurboPreview { get; } = new InternalCreateAssistantRequestModel(Gpt4TurboPreviewValue); - - public static InternalCreateAssistantRequestModel Gpt41106Preview { get; } = new InternalCreateAssistantRequestModel(Gpt41106PreviewValue); - - public static InternalCreateAssistantRequestModel Gpt4VisionPreview { get; } = new InternalCreateAssistantRequestModel(Gpt4VisionPreviewValue); - - public static InternalCreateAssistantRequestModel Gpt4 { get; } = new InternalCreateAssistantRequestModel(Gpt4Value); - - public static InternalCreateAssistantRequestModel Gpt40314 { get; } = new InternalCreateAssistantRequestModel(Gpt40314Value); - - public static InternalCreateAssistantRequestModel Gpt40613 { get; } = new InternalCreateAssistantRequestModel(Gpt40613Value); - - public static InternalCreateAssistantRequestModel Gpt432k { get; } = new InternalCreateAssistantRequestModel(Gpt432kValue); - - public static InternalCreateAssistantRequestModel Gpt432k0314 { get; } = new InternalCreateAssistantRequestModel(Gpt432k0314Value); - - public static InternalCreateAssistantRequestModel Gpt432k0613 { get; } = new InternalCreateAssistantRequestModel(Gpt432k0613Value); - - public static InternalCreateAssistantRequestModel Gpt35Turbo { get; } = new InternalCreateAssistantRequestModel(Gpt35TurboValue); - - public static InternalCreateAssistantRequestModel Gpt35Turbo16k { get; } = new InternalCreateAssistantRequestModel(Gpt35Turbo16kValue); - - public static InternalCreateAssistantRequestModel Gpt35Turbo0613 { get; } = new InternalCreateAssistantRequestModel(Gpt35Turbo0613Value); - - public static InternalCreateAssistantRequestModel Gpt35Turbo1106 { get; } = new InternalCreateAssistantRequestModel(Gpt35Turbo1106Value); - - public static InternalCreateAssistantRequestModel Gpt35Turbo0125 { get; } = new InternalCreateAssistantRequestModel(Gpt35Turbo0125Value); - - public static InternalCreateAssistantRequestModel Gpt35Turbo16k0613 { get; } = new InternalCreateAssistantRequestModel(Gpt35Turbo16k0613Value); - - public static bool operator ==(InternalCreateAssistantRequestModel left, InternalCreateAssistantRequestModel right) => left.Equals(right); - - public static bool operator !=(InternalCreateAssistantRequestModel left, InternalCreateAssistantRequestModel right) => !left.Equals(right); - - public static implicit operator InternalCreateAssistantRequestModel(string value) => new InternalCreateAssistantRequestModel(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is InternalCreateAssistantRequestModel other && Equals(other); - - public bool Equals(InternalCreateAssistantRequestModel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/InternalCreateAssistantRequestToolResources.Serialization.cs b/src/Generated/Models/InternalCreateAssistantRequestToolResources.Serialization.cs index 685addea4..aa7a982d8 100644 --- a/src/Generated/Models/InternalCreateAssistantRequestToolResources.Serialization.cs +++ b/src/Generated/Models/InternalCreateAssistantRequestToolResources.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_search"u8); writer.WriteObjectValue(FileSearch, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalCreateAssistantRequestToolResources DeserializeInternalC fileSearch = FileSearchToolResources.DeserializeFileSearchToolResources(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateAssistantRequestToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateAssistantRequestToolResourcesCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalCreateAssistantRequestToolResourcesCodeInterpreter.Serialization.cs index 36c62aac1..7c1321157 100644 --- a/src/Generated/Models/InternalCreateAssistantRequestToolResourcesCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalCreateAssistantRequestToolResourcesCodeInterpreter.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalCreateAssistantRequestToolResourcesCodeInterpreter Deser fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateAssistantRequestToolResourcesCodeInterpreter(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateBatchRequest.Serialization.cs b/src/Generated/Models/InternalCreateBatchRequest.Serialization.cs index 5dc6f5e4f..6a9a7aaf9 100644 --- a/src/Generated/Models/InternalCreateBatchRequest.Serialization.cs +++ b/src/Generated/Models/InternalCreateBatchRequest.Serialization.cs @@ -62,7 +62,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndObject(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -145,10 +145,7 @@ internal static InternalCreateBatchRequest DeserializeInternalCreateBatchRequest metadata = dictionary; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateBatchRequest(inputFileId, endpoint, completionWindow, metadata ?? new ChangeTrackingDictionary(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateChatCompletionFunctionResponse.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionFunctionResponse.Serialization.cs index 327b4890c..7e5773244 100644 --- a/src/Generated/Models/InternalCreateChatCompletionFunctionResponse.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionFunctionResponse.Serialization.cs @@ -71,7 +71,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("usage"u8); writer.WriteObjectValue(Usage, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -165,10 +165,7 @@ internal static InternalCreateChatCompletionFunctionResponse DeserializeInternal usage = ChatTokenUsage.DeserializeChatTokenUsage(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateChatCompletionFunctionResponse( id, diff --git a/src/Generated/Models/InternalCreateChatCompletionFunctionResponseChoice.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionFunctionResponseChoice.Serialization.cs index b4f1f585e..32e64ba51 100644 --- a/src/Generated/Models/InternalCreateChatCompletionFunctionResponseChoice.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionFunctionResponseChoice.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message"u8); writer.WriteObjectValue(Message, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalCreateChatCompletionFunctionResponseChoice DeserializeIn message = InternalChatCompletionResponseMessage.DeserializeInternalChatCompletionResponseMessage(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateChatCompletionFunctionResponseChoice(finishReason, index, message, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateChatCompletionRequestModel.cs b/src/Generated/Models/InternalCreateChatCompletionRequestModel.cs index cf542074f..fed976d93 100644 --- a/src/Generated/Models/InternalCreateChatCompletionRequestModel.cs +++ b/src/Generated/Models/InternalCreateChatCompletionRequestModel.cs @@ -19,6 +19,11 @@ namespace OpenAI.Chat private const string O1Preview20240912Value = "o1-preview-2024-09-12"; private const string O1MiniValue = "o1-mini"; private const string O1Mini20240912Value = "o1-mini-2024-09-12"; + private const string ComputerUsePreviewValue = "computer-use-preview"; + private const string ComputerUsePreview20250204Value = "computer-use-preview-2025-02-04"; + private const string ComputerUsePreview20250311Value = "computer-use-preview-2025-03-11"; + private const string Gpt45PreviewValue = "gpt-4.5-preview"; + private const string Gpt45Preview20250227Value = "gpt-4.5-preview-2025-02-27"; private const string Gpt4oValue = "gpt-4o"; private const string Gpt4o20241120Value = "gpt-4o-2024-11-20"; private const string Gpt4o20240806Value = "gpt-4o-2024-08-06"; @@ -74,6 +79,16 @@ public InternalCreateChatCompletionRequestModel(string value) public static InternalCreateChatCompletionRequestModel O1Mini20240912 { get; } = new InternalCreateChatCompletionRequestModel(O1Mini20240912Value); + public static InternalCreateChatCompletionRequestModel ComputerUsePreview { get; } = new InternalCreateChatCompletionRequestModel(ComputerUsePreviewValue); + + public static InternalCreateChatCompletionRequestModel ComputerUsePreview20250204 { get; } = new InternalCreateChatCompletionRequestModel(ComputerUsePreview20250204Value); + + public static InternalCreateChatCompletionRequestModel ComputerUsePreview20250311 { get; } = new InternalCreateChatCompletionRequestModel(ComputerUsePreview20250311Value); + + public static InternalCreateChatCompletionRequestModel Gpt45Preview { get; } = new InternalCreateChatCompletionRequestModel(Gpt45PreviewValue); + + public static InternalCreateChatCompletionRequestModel Gpt45Preview20250227 { get; } = new InternalCreateChatCompletionRequestModel(Gpt45Preview20250227Value); + public static InternalCreateChatCompletionRequestModel Gpt4o { get; } = new InternalCreateChatCompletionRequestModel(Gpt4oValue); public static InternalCreateChatCompletionRequestModel Gpt4o20241120 { get; } = new InternalCreateChatCompletionRequestModel(Gpt4o20241120Value); diff --git a/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.Serialization.cs new file mode 100644 index 000000000..055a3ffea --- /dev/null +++ b/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.Serialization.cs @@ -0,0 +1,154 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; +using OpenAI.Internal; + +namespace OpenAI.Chat +{ + internal partial class InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 : IJsonModel + { + internal InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("approximate") != true) + { + writer.WritePropertyName("approximate"u8); + writer.WriteObjectValue(Approximate, options); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(document.RootElement, options); + } + + internal static InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 DeserializeInternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type @type = default; + InternalWebSearchLocation approximate = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("approximate"u8)) + { + approximate = InternalWebSearchLocation.DeserializeInternalWebSearchLocation(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(@type, approximate, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1)} does not support writing '{options.Format}' format."); + } + } + + InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 internalCreateChatCompletionRequestWebSearchOptionsUserLocation1) + { + if (internalCreateChatCompletionRequestWebSearchOptionsUserLocation1 == null) + { + return null; + } + return BinaryContent.Create(internalCreateChatCompletionRequestWebSearchOptionsUserLocation1, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.cs b/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.cs new file mode 100644 index 000000000..60833a036 --- /dev/null +++ b/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1.cs @@ -0,0 +1,40 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; +using OpenAI.Internal; + +namespace OpenAI.Chat +{ + internal partial class InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1 + { + private protected IDictionary _additionalBinaryDataProperties; + + public InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(InternalWebSearchLocation approximate) + { + Argument.AssertNotNull(approximate, nameof(approximate)); + + Approximate = approximate; + } + + internal InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type @type, InternalWebSearchLocation approximate, IDictionary additionalBinaryDataProperties) + { + Type = @type; + Approximate = approximate; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type Type { get; } = "approximate"; + + public InternalWebSearchLocation Approximate { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type.cs b/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type.cs new file mode 100644 index 000000000..867e5f9a8 --- /dev/null +++ b/src/Generated/Models/InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Chat +{ + internal readonly partial struct InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type : IEquatable + { + private readonly string _value; + private const string ApproximateValue = "approximate"; + + public InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type Approximate { get; } = new InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type(ApproximateValue); + + public static bool operator ==(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type left, InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type right) => left.Equals(right); + + public static bool operator !=(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type left, InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type right) => !left.Equals(right); + + public static implicit operator InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type(string value) => new InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type other && Equals(other); + + public bool Equals(InternalCreateChatCompletionRequestWebSearchOptionsUserLocation1Type other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalCreateChatCompletionResponseChoice.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionResponseChoice.Serialization.cs index 69403c77f..497faa34a 100644 --- a/src/Generated/Models/InternalCreateChatCompletionResponseChoice.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionResponseChoice.Serialization.cs @@ -48,7 +48,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("logprobs") != true) { - if (Logprobs != null) + if (Optional.IsDefined(Logprobs)) { writer.WritePropertyName("logprobs"u8); writer.WriteObjectValue(Logprobs, options); @@ -58,7 +58,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("logprobs"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -98,7 +98,7 @@ internal static InternalCreateChatCompletionResponseChoice DeserializeInternalCr { return null; } - Chat.ChatFinishReason finishReason = default; + ChatFinishReason finishReason = default; int index = default; InternalChatCompletionResponseMessage message = default; InternalCreateChatCompletionResponseChoiceLogprobs logprobs = default; @@ -130,10 +130,7 @@ internal static InternalCreateChatCompletionResponseChoice DeserializeInternalCr logprobs = InternalCreateChatCompletionResponseChoiceLogprobs.DeserializeInternalCreateChatCompletionResponseChoiceLogprobs(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateChatCompletionResponseChoice(finishReason, index, message, logprobs, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateChatCompletionResponseChoice.cs b/src/Generated/Models/InternalCreateChatCompletionResponseChoice.cs index 42878f48b..974c9356f 100644 --- a/src/Generated/Models/InternalCreateChatCompletionResponseChoice.cs +++ b/src/Generated/Models/InternalCreateChatCompletionResponseChoice.cs @@ -11,7 +11,7 @@ internal partial class InternalCreateChatCompletionResponseChoice { private protected IDictionary _additionalBinaryDataProperties; - internal InternalCreateChatCompletionResponseChoice(Chat.ChatFinishReason finishReason, int index, InternalChatCompletionResponseMessage message, InternalCreateChatCompletionResponseChoiceLogprobs logprobs) + internal InternalCreateChatCompletionResponseChoice(ChatFinishReason finishReason, int index, InternalChatCompletionResponseMessage message, InternalCreateChatCompletionResponseChoiceLogprobs logprobs) { FinishReason = finishReason; Index = index; @@ -19,7 +19,7 @@ internal InternalCreateChatCompletionResponseChoice(Chat.ChatFinishReason finish Logprobs = logprobs; } - internal InternalCreateChatCompletionResponseChoice(Chat.ChatFinishReason finishReason, int index, InternalChatCompletionResponseMessage message, InternalCreateChatCompletionResponseChoiceLogprobs logprobs, IDictionary additionalBinaryDataProperties) + internal InternalCreateChatCompletionResponseChoice(ChatFinishReason finishReason, int index, InternalChatCompletionResponseMessage message, InternalCreateChatCompletionResponseChoiceLogprobs logprobs, IDictionary additionalBinaryDataProperties) { FinishReason = finishReason; Index = index; @@ -28,7 +28,7 @@ internal InternalCreateChatCompletionResponseChoice(Chat.ChatFinishReason finish _additionalBinaryDataProperties = additionalBinaryDataProperties; } - public Chat.ChatFinishReason FinishReason { get; } + public ChatFinishReason FinishReason { get; } public int Index { get; } diff --git a/src/Generated/Models/InternalCreateChatCompletionResponseChoiceLogprobs.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionResponseChoiceLogprobs.Serialization.cs index f7bb85157..6c5dc43d9 100644 --- a/src/Generated/Models/InternalCreateChatCompletionResponseChoiceLogprobs.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionResponseChoiceLogprobs.Serialization.cs @@ -27,9 +27,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalCreateChatCompletionResponseChoiceLogprobs)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { - if (Content != null && Optional.IsCollectionDefined(Content)) + if (options.Format != "W" && Optional.IsCollectionDefined(Content)) { writer.WritePropertyName("content"u8); writer.WriteStartArray(); @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("content"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("refusal") != true) + if (_additionalBinaryDataProperties?.ContainsKey("refusal") != true) { - if (Refusal != null && Optional.IsCollectionDefined(Refusal)) + if (options.Format != "W" && Optional.IsCollectionDefined(Refusal)) { writer.WritePropertyName("refusal"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("refusal"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -136,10 +136,7 @@ internal static InternalCreateChatCompletionResponseChoiceLogprobs DeserializeIn refusal = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateChatCompletionResponseChoiceLogprobs(content, refusal, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.Serialization.cs index 62624c359..fe46ae55e 100644 --- a/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.Serialization.cs @@ -30,15 +30,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Logprobs) && _additionalBinaryDataProperties?.ContainsKey("logprobs") != true) { - if (Logprobs != null) - { - writer.WritePropertyName("logprobs"u8); - writer.WriteObjectValue(Logprobs, options); - } - else - { - writer.WriteNull("logprobs"u8); - } + writer.WritePropertyName("logprobs"u8); + writer.WriteObjectValue(Logprobs, options); } if (_additionalBinaryDataProperties?.ContainsKey("index") != true) { @@ -47,17 +40,17 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("finish_reason") != true) { - if (FinishReason != null) + if (Optional.IsDefined(FinishReason)) { writer.WritePropertyName("finish_reason"u8); writer.WriteStringValue(FinishReason.Value.ToSerialString()); } else { - writer.WriteNull("finishReason"u8); + writer.WriteNull("finish_reason"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -88,7 +81,7 @@ protected virtual InternalCreateChatCompletionStreamResponseChoice JsonModelCrea throw new FormatException($"The model {nameof(InternalCreateChatCompletionStreamResponseChoice)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return InternalCreateChatCompletionStreamResponseChoice.DeserializeInternalCreateChatCompletionStreamResponseChoice(document.RootElement, options); + return DeserializeInternalCreateChatCompletionStreamResponseChoice(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -115,7 +108,7 @@ protected virtual InternalCreateChatCompletionStreamResponseChoice PersistableMo case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return InternalCreateChatCompletionStreamResponseChoice.DeserializeInternalCreateChatCompletionStreamResponseChoice(document.RootElement, options); + return DeserializeInternalCreateChatCompletionStreamResponseChoice(document.RootElement, options); } default: throw new FormatException($"The model {nameof(InternalCreateChatCompletionStreamResponseChoice)} does not support reading '{options.Format}' format."); @@ -137,7 +130,7 @@ public static explicit operator InternalCreateChatCompletionStreamResponseChoice { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return InternalCreateChatCompletionStreamResponseChoice.DeserializeInternalCreateChatCompletionStreamResponseChoice(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeInternalCreateChatCompletionStreamResponseChoice(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.cs b/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.cs index c81fe2ab0..988a4a3c8 100644 --- a/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.cs +++ b/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoice.cs @@ -11,14 +11,14 @@ internal partial class InternalCreateChatCompletionStreamResponseChoice { private protected IDictionary _additionalBinaryDataProperties; - internal InternalCreateChatCompletionStreamResponseChoice(InternalChatCompletionStreamResponseDelta delta, int index, Chat.ChatFinishReason? finishReason) + internal InternalCreateChatCompletionStreamResponseChoice(InternalChatCompletionStreamResponseDelta delta, int index, ChatFinishReason? finishReason) { Delta = delta; Index = index; FinishReason = finishReason; } - internal InternalCreateChatCompletionStreamResponseChoice(InternalChatCompletionStreamResponseDelta delta, InternalCreateChatCompletionStreamResponseChoiceLogprobs logprobs, int index, Chat.ChatFinishReason? finishReason, IDictionary additionalBinaryDataProperties) + internal InternalCreateChatCompletionStreamResponseChoice(InternalChatCompletionStreamResponseDelta delta, InternalCreateChatCompletionStreamResponseChoiceLogprobs logprobs, int index, ChatFinishReason? finishReason, IDictionary additionalBinaryDataProperties) { Delta = delta; Logprobs = logprobs; diff --git a/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoiceLogprobs.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoiceLogprobs.Serialization.cs index 4c7d91664..bced98975 100644 --- a/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoiceLogprobs.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionStreamResponseChoiceLogprobs.Serialization.cs @@ -27,9 +27,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalCreateChatCompletionStreamResponseChoiceLogprobs)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { - if (Content != null && Optional.IsCollectionDefined(Content)) + if (options.Format != "W" && Optional.IsCollectionDefined(Content)) { writer.WritePropertyName("content"u8); writer.WriteStartArray(); @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("content"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("refusal") != true) + if (_additionalBinaryDataProperties?.ContainsKey("refusal") != true) { - if (Refusal != null && Optional.IsCollectionDefined(Refusal)) + if (options.Format != "W" && Optional.IsCollectionDefined(Refusal)) { writer.WritePropertyName("refusal"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("refusal"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -136,10 +136,7 @@ internal static InternalCreateChatCompletionStreamResponseChoiceLogprobs Deseria refusal = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateChatCompletionStreamResponseChoiceLogprobs(content, refusal, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateChatCompletionStreamResponseUsage.Serialization.cs b/src/Generated/Models/InternalCreateChatCompletionStreamResponseUsage.Serialization.cs index 2729b9e7c..51f28dbe1 100644 --- a/src/Generated/Models/InternalCreateChatCompletionStreamResponseUsage.Serialization.cs +++ b/src/Generated/Models/InternalCreateChatCompletionStreamResponseUsage.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total_tokens"u8); writer.WriteNumberValue(TotalTokens); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalCreateChatCompletionStreamResponseUsage DeserializeInter totalTokens = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateChatCompletionStreamResponseUsage(completionTokens, promptTokens, totalTokens, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateCompletionRequest.Serialization.cs b/src/Generated/Models/InternalCreateCompletionRequest.Serialization.cs index ea5ce997e..855cf3d6e 100644 --- a/src/Generated/Models/InternalCreateCompletionRequest.Serialization.cs +++ b/src/Generated/Models/InternalCreateCompletionRequest.Serialization.cs @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("prompt") != true) { - if (Prompt != null) + if (Optional.IsDefined(Prompt)) { writer.WritePropertyName("prompt"u8); #if NET6_0_OR_GREATER @@ -58,203 +58,98 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(BestOf) && _additionalBinaryDataProperties?.ContainsKey("best_of") != true) { - if (BestOf != null) - { - writer.WritePropertyName("best_of"u8); - writer.WriteNumberValue(BestOf.Value); - } - else - { - writer.WriteNull("bestOf"u8); - } + writer.WritePropertyName("best_of"u8); + writer.WriteNumberValue(BestOf.Value); } if (Optional.IsDefined(Echo) && _additionalBinaryDataProperties?.ContainsKey("echo") != true) { - if (Echo != null) - { - writer.WritePropertyName("echo"u8); - writer.WriteBooleanValue(Echo.Value); - } - else - { - writer.WriteNull("echo"u8); - } + writer.WritePropertyName("echo"u8); + writer.WriteBooleanValue(Echo.Value); } if (Optional.IsDefined(FrequencyPenalty) && _additionalBinaryDataProperties?.ContainsKey("frequency_penalty") != true) { - if (FrequencyPenalty != null) - { - writer.WritePropertyName("frequency_penalty"u8); - writer.WriteNumberValue(FrequencyPenalty.Value); - } - else - { - writer.WriteNull("frequencyPenalty"u8); - } + writer.WritePropertyName("frequency_penalty"u8); + writer.WriteNumberValue(FrequencyPenalty.Value); } if (Optional.IsCollectionDefined(LogitBias) && _additionalBinaryDataProperties?.ContainsKey("logit_bias") != true) { - if (LogitBias != null) - { - writer.WritePropertyName("logit_bias"u8); - writer.WriteStartObject(); - foreach (var item in LogitBias) - { - writer.WritePropertyName(item.Key); - writer.WriteNumberValue(item.Value); - } - writer.WriteEndObject(); - } - else + writer.WritePropertyName("logit_bias"u8); + writer.WriteStartObject(); + foreach (var item in LogitBias) { - writer.WriteNull("logitBias"u8); + writer.WritePropertyName(item.Key); + writer.WriteNumberValue(item.Value); } + writer.WriteEndObject(); } if (Optional.IsDefined(Logprobs) && _additionalBinaryDataProperties?.ContainsKey("logprobs") != true) { - if (Logprobs != null) - { - writer.WritePropertyName("logprobs"u8); - writer.WriteNumberValue(Logprobs.Value); - } - else - { - writer.WriteNull("logprobs"u8); - } + writer.WritePropertyName("logprobs"u8); + writer.WriteNumberValue(Logprobs.Value); } if (Optional.IsDefined(MaxTokens) && _additionalBinaryDataProperties?.ContainsKey("max_tokens") != true) { - if (MaxTokens != null) - { - writer.WritePropertyName("max_tokens"u8); - writer.WriteNumberValue(MaxTokens.Value); - } - else - { - writer.WriteNull("maxTokens"u8); - } + writer.WritePropertyName("max_tokens"u8); + writer.WriteNumberValue(MaxTokens.Value); } if (Optional.IsDefined(N) && _additionalBinaryDataProperties?.ContainsKey("n") != true) { - if (N != null) - { - writer.WritePropertyName("n"u8); - writer.WriteNumberValue(N.Value); - } - else - { - writer.WriteNull("n"u8); - } + writer.WritePropertyName("n"u8); + writer.WriteNumberValue(N.Value); } if (Optional.IsDefined(PresencePenalty) && _additionalBinaryDataProperties?.ContainsKey("presence_penalty") != true) { - if (PresencePenalty != null) - { - writer.WritePropertyName("presence_penalty"u8); - writer.WriteNumberValue(PresencePenalty.Value); - } - else - { - writer.WriteNull("presencePenalty"u8); - } + writer.WritePropertyName("presence_penalty"u8); + writer.WriteNumberValue(PresencePenalty.Value); } if (Optional.IsDefined(Seed) && _additionalBinaryDataProperties?.ContainsKey("seed") != true) { - if (Seed != null) - { - writer.WritePropertyName("seed"u8); - writer.WriteNumberValue(Seed.Value); - } - else - { - writer.WriteNull("seed"u8); - } + writer.WritePropertyName("seed"u8); + writer.WriteNumberValue(Seed.Value); } if (Optional.IsDefined(Stop) && _additionalBinaryDataProperties?.ContainsKey("stop") != true) { - if (Stop != null) - { - writer.WritePropertyName("stop"u8); + writer.WritePropertyName("stop"u8); #if NET6_0_OR_GREATER - writer.WriteRawValue(Stop); + writer.WriteRawValue(Stop); #else - using (JsonDocument document = JsonDocument.Parse(Stop)) - { - JsonSerializer.Serialize(writer, document.RootElement); - } -#endif - } - else + using (JsonDocument document = JsonDocument.Parse(Stop)) { - writer.WriteNull("stop"u8); + JsonSerializer.Serialize(writer, document.RootElement); } +#endif } if (Optional.IsDefined(Stream) && _additionalBinaryDataProperties?.ContainsKey("stream") != true) { - if (Stream != null) - { - writer.WritePropertyName("stream"u8); - writer.WriteBooleanValue(Stream.Value); - } - else - { - writer.WriteNull("stream"u8); - } + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); } if (Optional.IsDefined(StreamOptions) && _additionalBinaryDataProperties?.ContainsKey("stream_options") != true) { - if (StreamOptions != null) - { - writer.WritePropertyName("stream_options"u8); - writer.WriteObjectValue(StreamOptions, options); - } - else - { - writer.WriteNull("streamOptions"u8); - } + writer.WritePropertyName("stream_options"u8); + writer.WriteObjectValue(StreamOptions, options); } if (Optional.IsDefined(Suffix) && _additionalBinaryDataProperties?.ContainsKey("suffix") != true) { - if (Suffix != null) - { - writer.WritePropertyName("suffix"u8); - writer.WriteStringValue(Suffix); - } - else - { - writer.WriteNull("suffix"u8); - } + writer.WritePropertyName("suffix"u8); + writer.WriteStringValue(Suffix); } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (Optional.IsDefined(TopP) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (TopP != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(TopP.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); } if (Optional.IsDefined(User) && _additionalBinaryDataProperties?.ContainsKey("user") != true) { writer.WritePropertyName("user"u8); writer.WriteStringValue(User); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -489,10 +384,7 @@ internal static InternalCreateCompletionRequest DeserializeInternalCreateComplet user = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateCompletionRequest( model, diff --git a/src/Generated/Models/InternalCreateCompletionResponse.Serialization.cs b/src/Generated/Models/InternalCreateCompletionResponse.Serialization.cs index 8ff5921f9..ff4c4fa58 100644 --- a/src/Generated/Models/InternalCreateCompletionResponse.Serialization.cs +++ b/src/Generated/Models/InternalCreateCompletionResponse.Serialization.cs @@ -72,7 +72,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("usage"u8); writer.WriteObjectValue(Usage, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -166,10 +166,7 @@ internal static InternalCreateCompletionResponse DeserializeInternalCreateComple usage = ChatTokenUsage.DeserializeChatTokenUsage(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateCompletionResponse( id, diff --git a/src/Generated/Models/InternalCreateCompletionResponseChoice.Serialization.cs b/src/Generated/Models/InternalCreateCompletionResponseChoice.Serialization.cs index 1979a5fe2..557339b99 100644 --- a/src/Generated/Models/InternalCreateCompletionResponseChoice.Serialization.cs +++ b/src/Generated/Models/InternalCreateCompletionResponseChoice.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("logprobs") != true) { - if (Logprobs != null) + if (Optional.IsDefined(Logprobs)) { writer.WritePropertyName("logprobs"u8); writer.WriteObjectValue(Logprobs, options); @@ -58,7 +58,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -130,10 +130,7 @@ internal static InternalCreateCompletionResponseChoice DeserializeInternalCreate text = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateCompletionResponseChoice(finishReason, index, logprobs, text, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateCompletionResponseChoiceLogprobs.Serialization.cs b/src/Generated/Models/InternalCreateCompletionResponseChoiceLogprobs.Serialization.cs index c47f11632..8c39e5a8e 100644 --- a/src/Generated/Models/InternalCreateCompletionResponseChoiceLogprobs.Serialization.cs +++ b/src/Generated/Models/InternalCreateCompletionResponseChoiceLogprobs.Serialization.cs @@ -83,7 +83,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -205,10 +205,7 @@ internal static InternalCreateCompletionResponseChoiceLogprobs DeserializeIntern topLogprobs = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateCompletionResponseChoiceLogprobs(textOffset ?? new ChangeTrackingList(), tokenLogprobs ?? new ChangeTrackingList(), tokens ?? new ChangeTrackingList(), topLogprobs ?? new ChangeTrackingList>(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateFineTuningJobRequestWandbIntegrationWandb.Serialization.cs b/src/Generated/Models/InternalCreateFineTuningJobRequestWandbIntegrationWandb.Serialization.cs index ebea86565..ac777618b 100644 --- a/src/Generated/Models/InternalCreateFineTuningJobRequestWandbIntegrationWandb.Serialization.cs +++ b/src/Generated/Models/InternalCreateFineTuningJobRequestWandbIntegrationWandb.Serialization.cs @@ -33,27 +33,13 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Name) && _additionalBinaryDataProperties?.ContainsKey("name") != true) { - if (Name != null) - { - writer.WritePropertyName("name"u8); - writer.WriteStringValue(Name); - } - else - { - writer.WriteNull("name"u8); - } + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); } if (Optional.IsDefined(Entity) && _additionalBinaryDataProperties?.ContainsKey("entity") != true) { - if (Entity != null) - { - writer.WritePropertyName("entity"u8); - writer.WriteStringValue(Entity); - } - else - { - writer.WriteNull("entity"u8); - } + writer.WritePropertyName("entity"u8); + writer.WriteStringValue(Entity); } if (Optional.IsCollectionDefined(Tags) && _additionalBinaryDataProperties?.ContainsKey("tags") != true) { @@ -75,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("project"u8); writer.WriteStringValue(Project); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -168,10 +154,7 @@ internal static InternalCreateFineTuningJobRequestWandbIntegrationWandb Deserial project = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateFineTuningJobRequestWandbIntegrationWandb(name, entity, tags ?? new ChangeTrackingList(), project, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateModerationRequestInput2.Serialization.cs b/src/Generated/Models/InternalCreateModerationRequestInput2.Serialization.cs index 7c71777ad..4f0f2a627 100644 --- a/src/Generated/Models/InternalCreateModerationRequestInput2.Serialization.cs +++ b/src/Generated/Models/InternalCreateModerationRequestInput2.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("image_url"u8); writer.WriteObjectValue(ImageUrl, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalCreateModerationRequestInput2 DeserializeInternalCreateM imageUrl = InternalCreateModerationRequestInputImageUrl.DeserializeInternalCreateModerationRequestInputImageUrl(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateModerationRequestInput2(@type, imageUrl, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateModerationRequestInput3.Serialization.cs b/src/Generated/Models/InternalCreateModerationRequestInput3.Serialization.cs index 878c6f0be..2d4e3f374 100644 --- a/src/Generated/Models/InternalCreateModerationRequestInput3.Serialization.cs +++ b/src/Generated/Models/InternalCreateModerationRequestInput3.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalCreateModerationRequestInput3 DeserializeInternalCreateM text = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateModerationRequestInput3(@type, text, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateModerationRequestInputImageUrl.Serialization.cs b/src/Generated/Models/InternalCreateModerationRequestInputImageUrl.Serialization.cs index b65ae8776..5d763edfc 100644 --- a/src/Generated/Models/InternalCreateModerationRequestInputImageUrl.Serialization.cs +++ b/src/Generated/Models/InternalCreateModerationRequestInputImageUrl.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("url"u8); writer.WriteStringValue(Url); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalCreateModerationRequestInputImageUrl DeserializeInternal url = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateModerationRequestInputImageUrl(url, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateModerationResponseResultCategoryAppliedInputTypes.Serialization.cs b/src/Generated/Models/InternalCreateModerationResponseResultCategoryAppliedInputTypes.Serialization.cs index 7e26ddd19..2075fc7bb 100644 --- a/src/Generated/Models/InternalCreateModerationResponseResultCategoryAppliedInputTypes.Serialization.cs +++ b/src/Generated/Models/InternalCreateModerationResponseResultCategoryAppliedInputTypes.Serialization.cs @@ -226,7 +226,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -503,10 +503,7 @@ internal static InternalCreateModerationResponseResultCategoryAppliedInputTypes violenceGraphic = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateModerationResponseResultCategoryAppliedInputTypes( hate, diff --git a/src/Generated/Models/InternalCreateResponsesRequestIncludable.cs b/src/Generated/Models/InternalCreateResponsesRequestIncludable.cs new file mode 100644 index 000000000..3c4902e14 --- /dev/null +++ b/src/Generated/Models/InternalCreateResponsesRequestIncludable.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalCreateResponsesRequestIncludable : IEquatable + { + private readonly string _value; + private const string FileSearchCallResultsValue = "file_search_call.results"; + private const string ComputerCallOutputOutputImageUrlValue = "computer_call_output.output.image_url"; + private const string MessageInputImageImageUrlValue = "message.input_image.image_url"; + + public InternalCreateResponsesRequestIncludable(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalCreateResponsesRequestIncludable FileSearchCallResults { get; } = new InternalCreateResponsesRequestIncludable(FileSearchCallResultsValue); + + public static InternalCreateResponsesRequestIncludable ComputerCallOutputOutputImageUrl { get; } = new InternalCreateResponsesRequestIncludable(ComputerCallOutputOutputImageUrlValue); + + public static InternalCreateResponsesRequestIncludable MessageInputImageImageUrl { get; } = new InternalCreateResponsesRequestIncludable(MessageInputImageImageUrlValue); + + public static bool operator ==(InternalCreateResponsesRequestIncludable left, InternalCreateResponsesRequestIncludable right) => left.Equals(right); + + public static bool operator !=(InternalCreateResponsesRequestIncludable left, InternalCreateResponsesRequestIncludable right) => !left.Equals(right); + + public static implicit operator InternalCreateResponsesRequestIncludable(string value) => new InternalCreateResponsesRequestIncludable(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalCreateResponsesRequestIncludable other && Equals(other); + + public bool Equals(InternalCreateResponsesRequestIncludable other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalCreateResponsesRequestModel.cs b/src/Generated/Models/InternalCreateResponsesRequestModel.cs new file mode 100644 index 000000000..b5b312d8b --- /dev/null +++ b/src/Generated/Models/InternalCreateResponsesRequestModel.cs @@ -0,0 +1,170 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalCreateResponsesRequestModel : IEquatable + { + private readonly string _value; + private const string O3MiniValue = "o3-mini"; + private const string O3Mini20250131Value = "o3-mini-2025-01-31"; + private const string O1Value = "o1"; + private const string O120241217Value = "o1-2024-12-17"; + private const string O1PreviewValue = "o1-preview"; + private const string O1Preview20240912Value = "o1-preview-2024-09-12"; + private const string O1MiniValue = "o1-mini"; + private const string O1Mini20240912Value = "o1-mini-2024-09-12"; + private const string ComputerUsePreviewValue = "computer-use-preview"; + private const string ComputerUsePreview20250204Value = "computer-use-preview-2025-02-04"; + private const string ComputerUsePreview20250311Value = "computer-use-preview-2025-03-11"; + private const string Gpt45PreviewValue = "gpt-4.5-preview"; + private const string Gpt45Preview20250227Value = "gpt-4.5-preview-2025-02-27"; + private const string Gpt4oValue = "gpt-4o"; + private const string Gpt4o20241120Value = "gpt-4o-2024-11-20"; + private const string Gpt4o20240806Value = "gpt-4o-2024-08-06"; + private const string Gpt4o20240513Value = "gpt-4o-2024-05-13"; + private const string Gpt4oAudioPreviewValue = "gpt-4o-audio-preview"; + private const string Gpt4oAudioPreview20241001Value = "gpt-4o-audio-preview-2024-10-01"; + private const string Gpt4oAudioPreview20241217Value = "gpt-4o-audio-preview-2024-12-17"; + private const string Gpt4oMiniAudioPreviewValue = "gpt-4o-mini-audio-preview"; + private const string Gpt4oMiniAudioPreview20241217Value = "gpt-4o-mini-audio-preview-2024-12-17"; + private const string Chatgpt4oLatestValue = "chatgpt-4o-latest"; + private const string Gpt4oMiniValue = "gpt-4o-mini"; + private const string Gpt4oMini20240718Value = "gpt-4o-mini-2024-07-18"; + private const string Gpt4TurboValue = "gpt-4-turbo"; + private const string Gpt4Turbo20240409Value = "gpt-4-turbo-2024-04-09"; + private const string Gpt40125PreviewValue = "gpt-4-0125-preview"; + private const string Gpt4TurboPreviewValue = "gpt-4-turbo-preview"; + private const string Gpt41106PreviewValue = "gpt-4-1106-preview"; + private const string Gpt4VisionPreviewValue = "gpt-4-vision-preview"; + private const string Gpt4Value = "gpt-4"; + private const string Gpt40314Value = "gpt-4-0314"; + private const string Gpt40613Value = "gpt-4-0613"; + private const string Gpt432kValue = "gpt-4-32k"; + private const string Gpt432k0314Value = "gpt-4-32k-0314"; + private const string Gpt432k0613Value = "gpt-4-32k-0613"; + private const string Gpt35TurboValue = "gpt-3.5-turbo"; + private const string Gpt35Turbo16kValue = "gpt-3.5-turbo-16k"; + private const string Gpt35Turbo0301Value = "gpt-3.5-turbo-0301"; + private const string Gpt35Turbo0613Value = "gpt-3.5-turbo-0613"; + private const string Gpt35Turbo1106Value = "gpt-3.5-turbo-1106"; + private const string Gpt35Turbo0125Value = "gpt-3.5-turbo-0125"; + private const string Gpt35Turbo16k0613Value = "gpt-3.5-turbo-16k-0613"; + + public InternalCreateResponsesRequestModel(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalCreateResponsesRequestModel O3Mini { get; } = new InternalCreateResponsesRequestModel(O3MiniValue); + + public static InternalCreateResponsesRequestModel O3Mini20250131 { get; } = new InternalCreateResponsesRequestModel(O3Mini20250131Value); + + public static InternalCreateResponsesRequestModel O1 { get; } = new InternalCreateResponsesRequestModel(O1Value); + + public static InternalCreateResponsesRequestModel O120241217 { get; } = new InternalCreateResponsesRequestModel(O120241217Value); + + public static InternalCreateResponsesRequestModel O1Preview { get; } = new InternalCreateResponsesRequestModel(O1PreviewValue); + + public static InternalCreateResponsesRequestModel O1Preview20240912 { get; } = new InternalCreateResponsesRequestModel(O1Preview20240912Value); + + public static InternalCreateResponsesRequestModel O1Mini { get; } = new InternalCreateResponsesRequestModel(O1MiniValue); + + public static InternalCreateResponsesRequestModel O1Mini20240912 { get; } = new InternalCreateResponsesRequestModel(O1Mini20240912Value); + + public static InternalCreateResponsesRequestModel ComputerUsePreview { get; } = new InternalCreateResponsesRequestModel(ComputerUsePreviewValue); + + public static InternalCreateResponsesRequestModel ComputerUsePreview20250204 { get; } = new InternalCreateResponsesRequestModel(ComputerUsePreview20250204Value); + + public static InternalCreateResponsesRequestModel ComputerUsePreview20250311 { get; } = new InternalCreateResponsesRequestModel(ComputerUsePreview20250311Value); + + public static InternalCreateResponsesRequestModel Gpt45Preview { get; } = new InternalCreateResponsesRequestModel(Gpt45PreviewValue); + + public static InternalCreateResponsesRequestModel Gpt45Preview20250227 { get; } = new InternalCreateResponsesRequestModel(Gpt45Preview20250227Value); + + public static InternalCreateResponsesRequestModel Gpt4o { get; } = new InternalCreateResponsesRequestModel(Gpt4oValue); + + public static InternalCreateResponsesRequestModel Gpt4o20241120 { get; } = new InternalCreateResponsesRequestModel(Gpt4o20241120Value); + + public static InternalCreateResponsesRequestModel Gpt4o20240806 { get; } = new InternalCreateResponsesRequestModel(Gpt4o20240806Value); + + public static InternalCreateResponsesRequestModel Gpt4o20240513 { get; } = new InternalCreateResponsesRequestModel(Gpt4o20240513Value); + + public static InternalCreateResponsesRequestModel Gpt4oAudioPreview { get; } = new InternalCreateResponsesRequestModel(Gpt4oAudioPreviewValue); + + public static InternalCreateResponsesRequestModel Gpt4oAudioPreview20241001 { get; } = new InternalCreateResponsesRequestModel(Gpt4oAudioPreview20241001Value); + + public static InternalCreateResponsesRequestModel Gpt4oAudioPreview20241217 { get; } = new InternalCreateResponsesRequestModel(Gpt4oAudioPreview20241217Value); + + public static InternalCreateResponsesRequestModel Gpt4oMiniAudioPreview { get; } = new InternalCreateResponsesRequestModel(Gpt4oMiniAudioPreviewValue); + + public static InternalCreateResponsesRequestModel Gpt4oMiniAudioPreview20241217 { get; } = new InternalCreateResponsesRequestModel(Gpt4oMiniAudioPreview20241217Value); + + public static InternalCreateResponsesRequestModel Chatgpt4oLatest { get; } = new InternalCreateResponsesRequestModel(Chatgpt4oLatestValue); + + public static InternalCreateResponsesRequestModel Gpt4oMini { get; } = new InternalCreateResponsesRequestModel(Gpt4oMiniValue); + + public static InternalCreateResponsesRequestModel Gpt4oMini20240718 { get; } = new InternalCreateResponsesRequestModel(Gpt4oMini20240718Value); + + public static InternalCreateResponsesRequestModel Gpt4Turbo { get; } = new InternalCreateResponsesRequestModel(Gpt4TurboValue); + + public static InternalCreateResponsesRequestModel Gpt4Turbo20240409 { get; } = new InternalCreateResponsesRequestModel(Gpt4Turbo20240409Value); + + public static InternalCreateResponsesRequestModel Gpt40125Preview { get; } = new InternalCreateResponsesRequestModel(Gpt40125PreviewValue); + + public static InternalCreateResponsesRequestModel Gpt4TurboPreview { get; } = new InternalCreateResponsesRequestModel(Gpt4TurboPreviewValue); + + public static InternalCreateResponsesRequestModel Gpt41106Preview { get; } = new InternalCreateResponsesRequestModel(Gpt41106PreviewValue); + + public static InternalCreateResponsesRequestModel Gpt4VisionPreview { get; } = new InternalCreateResponsesRequestModel(Gpt4VisionPreviewValue); + + public static InternalCreateResponsesRequestModel Gpt4 { get; } = new InternalCreateResponsesRequestModel(Gpt4Value); + + public static InternalCreateResponsesRequestModel Gpt40314 { get; } = new InternalCreateResponsesRequestModel(Gpt40314Value); + + public static InternalCreateResponsesRequestModel Gpt40613 { get; } = new InternalCreateResponsesRequestModel(Gpt40613Value); + + public static InternalCreateResponsesRequestModel Gpt432k { get; } = new InternalCreateResponsesRequestModel(Gpt432kValue); + + public static InternalCreateResponsesRequestModel Gpt432k0314 { get; } = new InternalCreateResponsesRequestModel(Gpt432k0314Value); + + public static InternalCreateResponsesRequestModel Gpt432k0613 { get; } = new InternalCreateResponsesRequestModel(Gpt432k0613Value); + + public static InternalCreateResponsesRequestModel Gpt35Turbo { get; } = new InternalCreateResponsesRequestModel(Gpt35TurboValue); + + public static InternalCreateResponsesRequestModel Gpt35Turbo16k { get; } = new InternalCreateResponsesRequestModel(Gpt35Turbo16kValue); + + public static InternalCreateResponsesRequestModel Gpt35Turbo0301 { get; } = new InternalCreateResponsesRequestModel(Gpt35Turbo0301Value); + + public static InternalCreateResponsesRequestModel Gpt35Turbo0613 { get; } = new InternalCreateResponsesRequestModel(Gpt35Turbo0613Value); + + public static InternalCreateResponsesRequestModel Gpt35Turbo1106 { get; } = new InternalCreateResponsesRequestModel(Gpt35Turbo1106Value); + + public static InternalCreateResponsesRequestModel Gpt35Turbo0125 { get; } = new InternalCreateResponsesRequestModel(Gpt35Turbo0125Value); + + public static InternalCreateResponsesRequestModel Gpt35Turbo16k0613 { get; } = new InternalCreateResponsesRequestModel(Gpt35Turbo16k0613Value); + + public static bool operator ==(InternalCreateResponsesRequestModel left, InternalCreateResponsesRequestModel right) => left.Equals(right); + + public static bool operator !=(InternalCreateResponsesRequestModel left, InternalCreateResponsesRequestModel right) => !left.Equals(right); + + public static implicit operator InternalCreateResponsesRequestModel(string value) => new InternalCreateResponsesRequestModel(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalCreateResponsesRequestModel other && Equals(other); + + public bool Equals(InternalCreateResponsesRequestModel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalCreateResponsesResponseObject.cs b/src/Generated/Models/InternalCreateResponsesResponseObject.cs new file mode 100644 index 000000000..cc9646a32 --- /dev/null +++ b/src/Generated/Models/InternalCreateResponsesResponseObject.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalCreateResponsesResponseObject : IEquatable + { + private readonly string _value; + private const string ResponseValue = "response"; + + public InternalCreateResponsesResponseObject(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalCreateResponsesResponseObject Response { get; } = new InternalCreateResponsesResponseObject(ResponseValue); + + public static bool operator ==(InternalCreateResponsesResponseObject left, InternalCreateResponsesResponseObject right) => left.Equals(right); + + public static bool operator !=(InternalCreateResponsesResponseObject left, InternalCreateResponsesResponseObject right) => !left.Equals(right); + + public static implicit operator InternalCreateResponsesResponseObject(string value) => new InternalCreateResponsesResponseObject(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalCreateResponsesResponseObject other && Equals(other); + + public bool Equals(InternalCreateResponsesResponseObject other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalCreateRunRequestModel.cs b/src/Generated/Models/InternalCreateRunRequestModel.cs deleted file mode 100644 index 7d3b0dbf0..000000000 --- a/src/Generated/Models/InternalCreateRunRequestModel.cs +++ /dev/null @@ -1,110 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - internal readonly partial struct InternalCreateRunRequestModel : IEquatable - { - private readonly string _value; - private const string Gpt4oValue = "gpt-4o"; - private const string Gpt4o20241120Value = "gpt-4o-2024-11-20"; - private const string Gpt4o20240806Value = "gpt-4o-2024-08-06"; - private const string Gpt4o20240513Value = "gpt-4o-2024-05-13"; - private const string Gpt4oMiniValue = "gpt-4o-mini"; - private const string Gpt4oMini20240718Value = "gpt-4o-mini-2024-07-18"; - private const string Gpt4TurboValue = "gpt-4-turbo"; - private const string Gpt4Turbo20240409Value = "gpt-4-turbo-2024-04-09"; - private const string Gpt40125PreviewValue = "gpt-4-0125-preview"; - private const string Gpt4TurboPreviewValue = "gpt-4-turbo-preview"; - private const string Gpt41106PreviewValue = "gpt-4-1106-preview"; - private const string Gpt4VisionPreviewValue = "gpt-4-vision-preview"; - private const string Gpt4Value = "gpt-4"; - private const string Gpt40314Value = "gpt-4-0314"; - private const string Gpt40613Value = "gpt-4-0613"; - private const string Gpt432kValue = "gpt-4-32k"; - private const string Gpt432k0314Value = "gpt-4-32k-0314"; - private const string Gpt432k0613Value = "gpt-4-32k-0613"; - private const string Gpt35TurboValue = "gpt-3.5-turbo"; - private const string Gpt35Turbo16kValue = "gpt-3.5-turbo-16k"; - private const string Gpt35Turbo0613Value = "gpt-3.5-turbo-0613"; - private const string Gpt35Turbo1106Value = "gpt-3.5-turbo-1106"; - private const string Gpt35Turbo0125Value = "gpt-3.5-turbo-0125"; - private const string Gpt35Turbo16k0613Value = "gpt-3.5-turbo-16k-0613"; - - public InternalCreateRunRequestModel(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static InternalCreateRunRequestModel Gpt4o { get; } = new InternalCreateRunRequestModel(Gpt4oValue); - - public static InternalCreateRunRequestModel Gpt4o20241120 { get; } = new InternalCreateRunRequestModel(Gpt4o20241120Value); - - public static InternalCreateRunRequestModel Gpt4o20240806 { get; } = new InternalCreateRunRequestModel(Gpt4o20240806Value); - - public static InternalCreateRunRequestModel Gpt4o20240513 { get; } = new InternalCreateRunRequestModel(Gpt4o20240513Value); - - public static InternalCreateRunRequestModel Gpt4oMini { get; } = new InternalCreateRunRequestModel(Gpt4oMiniValue); - - public static InternalCreateRunRequestModel Gpt4oMini20240718 { get; } = new InternalCreateRunRequestModel(Gpt4oMini20240718Value); - - public static InternalCreateRunRequestModel Gpt4Turbo { get; } = new InternalCreateRunRequestModel(Gpt4TurboValue); - - public static InternalCreateRunRequestModel Gpt4Turbo20240409 { get; } = new InternalCreateRunRequestModel(Gpt4Turbo20240409Value); - - public static InternalCreateRunRequestModel Gpt40125Preview { get; } = new InternalCreateRunRequestModel(Gpt40125PreviewValue); - - public static InternalCreateRunRequestModel Gpt4TurboPreview { get; } = new InternalCreateRunRequestModel(Gpt4TurboPreviewValue); - - public static InternalCreateRunRequestModel Gpt41106Preview { get; } = new InternalCreateRunRequestModel(Gpt41106PreviewValue); - - public static InternalCreateRunRequestModel Gpt4VisionPreview { get; } = new InternalCreateRunRequestModel(Gpt4VisionPreviewValue); - - public static InternalCreateRunRequestModel Gpt4 { get; } = new InternalCreateRunRequestModel(Gpt4Value); - - public static InternalCreateRunRequestModel Gpt40314 { get; } = new InternalCreateRunRequestModel(Gpt40314Value); - - public static InternalCreateRunRequestModel Gpt40613 { get; } = new InternalCreateRunRequestModel(Gpt40613Value); - - public static InternalCreateRunRequestModel Gpt432k { get; } = new InternalCreateRunRequestModel(Gpt432kValue); - - public static InternalCreateRunRequestModel Gpt432k0314 { get; } = new InternalCreateRunRequestModel(Gpt432k0314Value); - - public static InternalCreateRunRequestModel Gpt432k0613 { get; } = new InternalCreateRunRequestModel(Gpt432k0613Value); - - public static InternalCreateRunRequestModel Gpt35Turbo { get; } = new InternalCreateRunRequestModel(Gpt35TurboValue); - - public static InternalCreateRunRequestModel Gpt35Turbo16k { get; } = new InternalCreateRunRequestModel(Gpt35Turbo16kValue); - - public static InternalCreateRunRequestModel Gpt35Turbo0613 { get; } = new InternalCreateRunRequestModel(Gpt35Turbo0613Value); - - public static InternalCreateRunRequestModel Gpt35Turbo1106 { get; } = new InternalCreateRunRequestModel(Gpt35Turbo1106Value); - - public static InternalCreateRunRequestModel Gpt35Turbo0125 { get; } = new InternalCreateRunRequestModel(Gpt35Turbo0125Value); - - public static InternalCreateRunRequestModel Gpt35Turbo16k0613 { get; } = new InternalCreateRunRequestModel(Gpt35Turbo16k0613Value); - - public static bool operator ==(InternalCreateRunRequestModel left, InternalCreateRunRequestModel right) => left.Equals(right); - - public static bool operator !=(InternalCreateRunRequestModel left, InternalCreateRunRequestModel right) => !left.Equals(right); - - public static implicit operator InternalCreateRunRequestModel(string value) => new InternalCreateRunRequestModel(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is InternalCreateRunRequestModel other && Equals(other); - - public bool Equals(InternalCreateRunRequestModel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/InternalCreateThreadAndRunRequest.Serialization.cs b/src/Generated/Models/InternalCreateThreadAndRunRequest.Serialization.cs index 8a98c8422..e8e22aec0 100644 --- a/src/Generated/Models/InternalCreateThreadAndRunRequest.Serialization.cs +++ b/src/Generated/Models/InternalCreateThreadAndRunRequest.Serialization.cs @@ -43,32 +43,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Instructions) && _additionalBinaryDataProperties?.ContainsKey("instructions") != true) { - if (Instructions != null) - { - writer.WritePropertyName("instructions"u8); - writer.WriteStringValue(Instructions); - } - else - { - writer.WriteNull("instructions"u8); - } + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(Instructions); } if (Optional.IsCollectionDefined(Tools) && _additionalBinaryDataProperties?.ContainsKey("tools") != true) { - if (Tools != null) + writer.WritePropertyName("tools"u8); + writer.WriteStartArray(); + foreach (ToolDefinition item in Tools) { - writer.WritePropertyName("tools"u8); - writer.WriteStartArray(); - foreach (ToolDefinition item in Tools) - { - writer.WriteObjectValue(item, options); - } - writer.WriteEndArray(); - } - else - { - writer.WriteNull("tools"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) { @@ -88,75 +74,33 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (Optional.IsDefined(TopP) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (TopP != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(TopP.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); } if (Optional.IsDefined(Stream) && _additionalBinaryDataProperties?.ContainsKey("stream") != true) { - if (Stream != null) - { - writer.WritePropertyName("stream"u8); - writer.WriteBooleanValue(Stream.Value); - } - else - { - writer.WriteNull("stream"u8); - } + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); } if (Optional.IsDefined(MaxPromptTokens) && _additionalBinaryDataProperties?.ContainsKey("max_prompt_tokens") != true) { - if (MaxPromptTokens != null) - { - writer.WritePropertyName("max_prompt_tokens"u8); - writer.WriteNumberValue(MaxPromptTokens.Value); - } - else - { - writer.WriteNull("maxPromptTokens"u8); - } + writer.WritePropertyName("max_prompt_tokens"u8); + writer.WriteNumberValue(MaxPromptTokens.Value); } if (Optional.IsDefined(MaxCompletionTokens) && _additionalBinaryDataProperties?.ContainsKey("max_completion_tokens") != true) { - if (MaxCompletionTokens != null) - { - writer.WritePropertyName("max_completion_tokens"u8); - writer.WriteNumberValue(MaxCompletionTokens.Value); - } - else - { - writer.WriteNull("maxCompletionTokens"u8); - } + writer.WritePropertyName("max_completion_tokens"u8); + writer.WriteNumberValue(MaxCompletionTokens.Value); } if (Optional.IsDefined(TruncationStrategy) && _additionalBinaryDataProperties?.ContainsKey("truncation_strategy") != true) { - if (TruncationStrategy != null) - { - writer.WritePropertyName("truncation_strategy"u8); - writer.WriteObjectValue(TruncationStrategy, options); - } - else - { - writer.WriteNull("truncationStrategy"u8); - } + writer.WritePropertyName("truncation_strategy"u8); + writer.WriteObjectValue(TruncationStrategy, options); } if (Optional.IsDefined(ParallelToolCalls) && _additionalBinaryDataProperties?.ContainsKey("parallel_tool_calls") != true) { @@ -165,53 +109,25 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Model) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { - if (Model != null) - { - writer.WritePropertyName("model"u8); - writer.WriteStringValue(Model); - } - else - { - writer.WriteNull("model"u8); - } + writer.WritePropertyName("model"u8); + writer.WriteStringValue(Model); } if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) - { - writer.WritePropertyName("tool_resources"u8); - writer.WriteObjectValue(ToolResources, options); - } - else - { - writer.WriteNull("toolResources"u8); - } + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteObjectValue(ResponseFormat, options); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteObjectValue(ResponseFormat, options); } if (Optional.IsDefined(ToolChoice) && _additionalBinaryDataProperties?.ContainsKey("tool_choice") != true) { - if (ToolChoice != null) - { - writer.WritePropertyName("tool_choice"u8); - writer.WriteObjectValue(ToolChoice, options); - } - else - { - writer.WriteNull("toolChoice"u8); - } + writer.WritePropertyName("tool_choice"u8); + writer.WriteObjectValue(ToolChoice, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -438,10 +354,7 @@ internal static InternalCreateThreadAndRunRequest DeserializeInternalCreateThrea toolChoice = ToolConstraint.DeserializeToolConstraint(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateThreadAndRunRequest( assistantId, diff --git a/src/Generated/Models/InternalCreateThreadAndRunRequestModel.cs b/src/Generated/Models/InternalCreateThreadAndRunRequestModel.cs index d04dc1226..7a540c6f2 100644 --- a/src/Generated/Models/InternalCreateThreadAndRunRequestModel.cs +++ b/src/Generated/Models/InternalCreateThreadAndRunRequestModel.cs @@ -17,6 +17,8 @@ namespace OpenAI.Assistants private const string Gpt4o20240513Value = "gpt-4o-2024-05-13"; private const string Gpt4oMiniValue = "gpt-4o-mini"; private const string Gpt4oMini20240718Value = "gpt-4o-mini-2024-07-18"; + private const string Gpt45PreviewValue = "gpt-4.5-preview"; + private const string Gpt45Preview20250227Value = "gpt-4.5-preview-2025-02-27"; private const string Gpt4TurboValue = "gpt-4-turbo"; private const string Gpt4Turbo20240409Value = "gpt-4-turbo-2024-04-09"; private const string Gpt40125PreviewValue = "gpt-4-0125-preview"; @@ -55,6 +57,10 @@ public InternalCreateThreadAndRunRequestModel(string value) public static InternalCreateThreadAndRunRequestModel Gpt4oMini20240718 { get; } = new InternalCreateThreadAndRunRequestModel(Gpt4oMini20240718Value); + public static InternalCreateThreadAndRunRequestModel Gpt45Preview { get; } = new InternalCreateThreadAndRunRequestModel(Gpt45PreviewValue); + + public static InternalCreateThreadAndRunRequestModel Gpt45Preview20250227 { get; } = new InternalCreateThreadAndRunRequestModel(Gpt45Preview20250227Value); + public static InternalCreateThreadAndRunRequestModel Gpt4Turbo { get; } = new InternalCreateThreadAndRunRequestModel(Gpt4TurboValue); public static InternalCreateThreadAndRunRequestModel Gpt4Turbo20240409 { get; } = new InternalCreateThreadAndRunRequestModel(Gpt4Turbo20240409Value); diff --git a/src/Generated/Models/InternalCreateThreadAndRunRequestToolResources.Serialization.cs b/src/Generated/Models/InternalCreateThreadAndRunRequestToolResources.Serialization.cs index ded12e75f..ea3d59e55 100644 --- a/src/Generated/Models/InternalCreateThreadAndRunRequestToolResources.Serialization.cs +++ b/src/Generated/Models/InternalCreateThreadAndRunRequestToolResources.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_search"u8); writer.WriteObjectValue(FileSearch, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalCreateThreadAndRunRequestToolResources DeserializeIntern fileSearch = InternalToolResourcesFileSearchIdsOnly.DeserializeInternalToolResourcesFileSearchIdsOnly(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateThreadAndRunRequestToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter.Serialization.cs index 141e218cd..465600247 100644 --- a/src/Generated/Models/InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter De fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateThreadAndRunRequestToolResourcesCodeInterpreter(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateThreadRequestToolResources.Serialization.cs b/src/Generated/Models/InternalCreateThreadRequestToolResources.Serialization.cs index b9e1a4ee7..1b2c7f3f9 100644 --- a/src/Generated/Models/InternalCreateThreadRequestToolResources.Serialization.cs +++ b/src/Generated/Models/InternalCreateThreadRequestToolResources.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_search"u8); writer.WriteObjectValue(FileSearch, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalCreateThreadRequestToolResources DeserializeInternalCrea fileSearch = FileSearchToolResources.DeserializeFileSearchToolResources(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateThreadRequestToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateThreadRequestToolResourcesCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalCreateThreadRequestToolResourcesCodeInterpreter.Serialization.cs index 1e6146b9e..ce25a6869 100644 --- a/src/Generated/Models/InternalCreateThreadRequestToolResourcesCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalCreateThreadRequestToolResourcesCodeInterpreter.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalCreateThreadRequestToolResourcesCodeInterpreter Deserial fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateThreadRequestToolResourcesCodeInterpreter(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateThreadRequestToolResourcesFileSearchBase.Serialization.cs b/src/Generated/Models/InternalCreateThreadRequestToolResourcesFileSearchBase.Serialization.cs index e432b91e0..af5668d00 100644 --- a/src/Generated/Models/InternalCreateThreadRequestToolResourcesFileSearchBase.Serialization.cs +++ b/src/Generated/Models/InternalCreateThreadRequestToolResourcesFileSearchBase.Serialization.cs @@ -27,7 +27,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalCreateThreadRequestToolResourcesFileSearchBase)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -70,10 +70,7 @@ internal static InternalCreateThreadRequestToolResourcesFileSearchBase Deseriali IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateThreadRequestToolResourcesFileSearchBase(additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateTranscriptionResponseJson.Serialization.cs b/src/Generated/Models/InternalCreateTranscriptionResponseJson.Serialization.cs index 14ed7a98e..282248ae1 100644 --- a/src/Generated/Models/InternalCreateTranscriptionResponseJson.Serialization.cs +++ b/src/Generated/Models/InternalCreateTranscriptionResponseJson.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalCreateTranscriptionResponseJson DeserializeInternalCreat text = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateTranscriptionResponseJson(text, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateTranslationResponseJson.Serialization.cs b/src/Generated/Models/InternalCreateTranslationResponseJson.Serialization.cs index ddaff2f1a..1499fbd37 100644 --- a/src/Generated/Models/InternalCreateTranslationResponseJson.Serialization.cs +++ b/src/Generated/Models/InternalCreateTranslationResponseJson.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalCreateTranslationResponseJson DeserializeInternalCreateT text = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateTranslationResponseJson(text, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateUploadRequest.Serialization.cs b/src/Generated/Models/InternalCreateUploadRequest.Serialization.cs index 121cd3ce8..d1ddbe246 100644 --- a/src/Generated/Models/InternalCreateUploadRequest.Serialization.cs +++ b/src/Generated/Models/InternalCreateUploadRequest.Serialization.cs @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("mime_type"u8); writer.WriteStringValue(MimeType); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static InternalCreateUploadRequest DeserializeInternalCreateUploadReque mimeType = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalCreateUploadRequest(filename, purpose, bytes, mimeType, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.Serialization.cs b/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.Serialization.cs index 792fe9f39..9499f88c6 100644 --- a/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.Serialization.cs +++ b/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.Serialization.cs @@ -58,7 +58,12 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (Optional.IsDefined(Attributes) && _additionalBinaryDataProperties?.ContainsKey("attributes") != true) + { + writer.WritePropertyName("attributes"u8); + writer.WriteObjectValue(Attributes, options); + } + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,6 +105,7 @@ internal static InternalCreateVectorStoreFileBatchRequest DeserializeInternalCre } IList fileIds = default; BinaryData chunkingStrategy = default; + InternalVectorStoreFileAttributes attributes = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -129,12 +135,19 @@ internal static InternalCreateVectorStoreFileBatchRequest DeserializeInternalCre chunkingStrategy = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) + if (prop.NameEquals("attributes"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + attributes = null; + continue; + } + attributes = InternalVectorStoreFileAttributes.DeserializeInternalVectorStoreFileAttributes(prop.Value, options); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - return new InternalCreateVectorStoreFileBatchRequest(fileIds, chunkingStrategy, additionalBinaryDataProperties); + return new InternalCreateVectorStoreFileBatchRequest(fileIds, chunkingStrategy, attributes, additionalBinaryDataProperties); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.cs b/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.cs index 05db1f8a6..e97c60b2f 100644 --- a/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.cs +++ b/src/Generated/Models/InternalCreateVectorStoreFileBatchRequest.cs @@ -20,10 +20,11 @@ public InternalCreateVectorStoreFileBatchRequest(IEnumerable fileIds) FileIds = fileIds.ToList(); } - internal InternalCreateVectorStoreFileBatchRequest(IList fileIds, BinaryData chunkingStrategy, IDictionary additionalBinaryDataProperties) + internal InternalCreateVectorStoreFileBatchRequest(IList fileIds, BinaryData chunkingStrategy, InternalVectorStoreFileAttributes attributes, IDictionary additionalBinaryDataProperties) { FileIds = fileIds; ChunkingStrategy = chunkingStrategy; + Attributes = attributes; _additionalBinaryDataProperties = additionalBinaryDataProperties; } @@ -31,6 +32,8 @@ internal InternalCreateVectorStoreFileBatchRequest(IList fileIds, Binary public BinaryData ChunkingStrategy { get; set; } + public InternalVectorStoreFileAttributes Attributes { get; set; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/Models/InternalCreateVectorStoreFileRequest.Serialization.cs b/src/Generated/Models/InternalCreateVectorStoreFileRequest.Serialization.cs index ea7862847..6a18275af 100644 --- a/src/Generated/Models/InternalCreateVectorStoreFileRequest.Serialization.cs +++ b/src/Generated/Models/InternalCreateVectorStoreFileRequest.Serialization.cs @@ -36,12 +36,17 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_id"u8); writer.WriteStringValue(FileId); } + if (Optional.IsDefined(Attributes) && _additionalBinaryDataProperties?.ContainsKey("attributes") != true) + { + writer.WritePropertyName("attributes"u8); + writer.WriteObjectValue(Attributes, options); + } if (Optional.IsDefined(ChunkingStrategy) && _additionalBinaryDataProperties?.ContainsKey("chunking_strategy") != true) { writer.WritePropertyName("chunking_strategy"u8); - writer.WriteObjectValue(ChunkingStrategy, options); + writer.WriteObjectValue(ChunkingStrategy, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -82,6 +87,7 @@ internal static InternalCreateVectorStoreFileRequest DeserializeInternalCreateVe return null; } string fileId = default; + InternalVectorStoreFileAttributes attributes = default; FileChunkingStrategy chunkingStrategy = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -91,21 +97,28 @@ internal static InternalCreateVectorStoreFileRequest DeserializeInternalCreateVe fileId = prop.Value.GetString(); continue; } - if (prop.NameEquals("chunking_strategy"u8)) + if (prop.NameEquals("attributes"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { + attributes = null; continue; } - chunkingStrategy = FileChunkingStrategy.DeserializeFileChunkingStrategy(prop.Value, options); + attributes = InternalVectorStoreFileAttributes.DeserializeInternalVectorStoreFileAttributes(prop.Value, options); continue; } - if (true) + if (prop.NameEquals("chunking_strategy"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + chunkingStrategy = FileChunkingStrategy.DeserializeFileChunkingStrategy(prop.Value, options); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - return new InternalCreateVectorStoreFileRequest(fileId, chunkingStrategy, additionalBinaryDataProperties); + return new InternalCreateVectorStoreFileRequest(fileId, attributes, chunkingStrategy, additionalBinaryDataProperties); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/InternalCreateVectorStoreFileRequest.cs b/src/Generated/Models/InternalCreateVectorStoreFileRequest.cs index 22b73113b..74bed12e4 100644 --- a/src/Generated/Models/InternalCreateVectorStoreFileRequest.cs +++ b/src/Generated/Models/InternalCreateVectorStoreFileRequest.cs @@ -19,15 +19,18 @@ public InternalCreateVectorStoreFileRequest(string fileId) FileId = fileId; } - internal InternalCreateVectorStoreFileRequest(string fileId, FileChunkingStrategy chunkingStrategy, IDictionary additionalBinaryDataProperties) + internal InternalCreateVectorStoreFileRequest(string fileId, InternalVectorStoreFileAttributes attributes, FileChunkingStrategy chunkingStrategy, IDictionary additionalBinaryDataProperties) { FileId = fileId; + Attributes = attributes; ChunkingStrategy = chunkingStrategy; _additionalBinaryDataProperties = additionalBinaryDataProperties; } public string FileId { get; } + public InternalVectorStoreFileAttributes Attributes { get; set; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/Models/InternalDeleteResponseResponseObject.cs b/src/Generated/Models/InternalDeleteResponseResponseObject.cs new file mode 100644 index 000000000..a6818caea --- /dev/null +++ b/src/Generated/Models/InternalDeleteResponseResponseObject.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalDeleteResponseResponseObject : IEquatable + { + private readonly string _value; + private const string ResponseDeletedValue = "response.deleted"; + + public InternalDeleteResponseResponseObject(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalDeleteResponseResponseObject ResponseDeleted { get; } = new InternalDeleteResponseResponseObject(ResponseDeletedValue); + + public static bool operator ==(InternalDeleteResponseResponseObject left, InternalDeleteResponseResponseObject right) => left.Equals(right); + + public static bool operator !=(InternalDeleteResponseResponseObject left, InternalDeleteResponseResponseObject right) => !left.Equals(right); + + public static implicit operator InternalDeleteResponseResponseObject(string value) => new InternalDeleteResponseResponseObject(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalDeleteResponseResponseObject other && Equals(other); + + public bool Equals(InternalDeleteResponseResponseObject other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalFileChunkingStrategyRequestParam.Serialization.cs b/src/Generated/Models/InternalFileChunkingStrategyRequestParam.Serialization.cs index a79752d35..22233c52c 100644 --- a/src/Generated/Models/InternalFileChunkingStrategyRequestParam.Serialization.cs +++ b/src/Generated/Models/InternalFileChunkingStrategyRequestParam.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalFileUploadOptions.Serialization.cs b/src/Generated/Models/InternalFileUploadOptions.Serialization.cs index b990c6541..bc3e03a85 100644 --- a/src/Generated/Models/InternalFileUploadOptions.Serialization.cs +++ b/src/Generated/Models/InternalFileUploadOptions.Serialization.cs @@ -45,7 +45,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("purpose"u8); writer.WriteStringValue(Purpose.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalFileUploadOptions DeserializeInternalFileUploadOptions(J purpose = new FileUploadPurpose(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalFileUploadOptions(@file, purpose, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.Serialization.cs b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.Serialization.cs index 0003c9a54..72fdcb1f9 100644 --- a/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.Serialization.cs +++ b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.Serialization.cs @@ -21,19 +21,82 @@ void IJsonModel.Write(Utf writer.WriteEndObject(); } - protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) { string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { throw new FormatException($"The model {nameof(InternalFineTuneChatCompletionRequestAssistantMessage)} does not support writing '{format}' format."); } - base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Weight) && _additionalBinaryDataProperties?.ContainsKey("weight") != true) + { + writer.WritePropertyName("weight"u8); + writer.WriteStringValue(Weight.Value.ToString()); + } + if (Optional.IsDefined(Refusal) && _additionalBinaryDataProperties?.ContainsKey("refusal") != true) + { + writer.WritePropertyName("refusal"u8); + writer.WriteStringValue(Refusal); + } + if (_additionalBinaryDataProperties?.ContainsKey("role") != true) + { + writer.WritePropertyName("role"u8); + writer.WriteStringValue(Role.ToString()); + } + if (Optional.IsDefined(Name) && _additionalBinaryDataProperties?.ContainsKey("name") != true) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + if (Optional.IsDefined(Audio) && _additionalBinaryDataProperties?.ContainsKey("audio") != true) + { + writer.WritePropertyName("audio"u8); + writer.WriteObjectValue(Audio, options); + } + if (Optional.IsCollectionDefined(ToolCalls) && _additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) + { + writer.WritePropertyName("tool_calls"u8); + writer.WriteStartArray(); + foreach (ChatToolCall item in ToolCalls) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(FunctionCall) && _additionalBinaryDataProperties?.ContainsKey("function_call") != true) + { + writer.WritePropertyName("function_call"u8); + writer.WriteObjectValue(FunctionCall, options); + } + if (Optional.IsDefined(Content) && Content.IsInnerCollectionDefined() && _additionalBinaryDataProperties?.ContainsKey("content") != true) + { + writer.WritePropertyName("content"u8); + writer.WriteObjectValue(Content, options); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } } - InternalFineTuneChatCompletionRequestAssistantMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalFineTuneChatCompletionRequestAssistantMessage)JsonModelCreateCore(ref reader, options); + InternalFineTuneChatCompletionRequestAssistantMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); - protected override ChatMessage JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + protected virtual InternalFineTuneChatCompletionRequestAssistantMessage JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") @@ -50,24 +113,24 @@ internal static InternalFineTuneChatCompletionRequestAssistantMessage Deserializ { return null; } - ChatMessageContent content = default; - Chat.ChatMessageRole role = default; - IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + InternalFineTuneChatCompletionRequestAssistantMessageWeight? weight = default; string refusal = default; - string participantName = default; + InternalFineTuneChatCompletionRequestAssistantMessageRole role = default; + string name = default; + ChatOutputAudioReference audio = default; IList toolCalls = default; ChatFunctionCall functionCall = default; - ChatOutputAudioReference outputAudioReference = default; + ChatMessageContent content = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { - if (prop.NameEquals("content"u8)) - { - DeserializeContentValue(prop, ref content); - continue; - } - if (prop.NameEquals("role"u8)) + if (prop.NameEquals("weight"u8)) { - role = prop.Value.GetString().ToChatMessageRole(); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + weight = new InternalFineTuneChatCompletionRequestAssistantMessageWeight(prop.Value.GetString()); continue; } if (prop.NameEquals("refusal"u8)) @@ -80,9 +143,24 @@ internal static InternalFineTuneChatCompletionRequestAssistantMessage Deserializ refusal = prop.Value.GetString(); continue; } + if (prop.NameEquals("role"u8)) + { + role = new InternalFineTuneChatCompletionRequestAssistantMessageRole(prop.Value.GetString()); + continue; + } if (prop.NameEquals("name"u8)) { - participantName = prop.Value.GetString(); + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("audio"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + audio = null; + continue; + } + audio = ChatOutputAudioReference.DeserializeChatOutputAudioReference(prop.Value, options); continue; } if (prop.NameEquals("tool_calls"u8)) @@ -109,36 +187,33 @@ internal static InternalFineTuneChatCompletionRequestAssistantMessage Deserializ functionCall = ChatFunctionCall.DeserializeChatFunctionCall(prop.Value, options); continue; } - if (prop.NameEquals("audio"u8)) + if (prop.NameEquals("content"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { - outputAudioReference = null; + content = null; continue; } - outputAudioReference = ChatOutputAudioReference.DeserializeChatOutputAudioReference(prop.Value, options); + content = ChatMessageContent.DeserializeChatMessageContent(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. return new InternalFineTuneChatCompletionRequestAssistantMessage( - content ?? new ChatMessageContent(), - role, - additionalBinaryDataProperties, + weight, refusal, - participantName, + role, + name, + audio, toolCalls ?? new ChangeTrackingList(), functionCall, - outputAudioReference); + content, + additionalBinaryDataProperties); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); - protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) { string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) @@ -150,9 +225,9 @@ protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions } } - InternalFineTuneChatCompletionRequestAssistantMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalFineTuneChatCompletionRequestAssistantMessage)PersistableModelCreateCore(data, options); + InternalFineTuneChatCompletionRequestAssistantMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); - protected override ChatMessage PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + protected virtual InternalFineTuneChatCompletionRequestAssistantMessage PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) { string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) diff --git a/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.cs b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.cs index 0df80d87f..7d2fc5f4e 100644 --- a/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.cs +++ b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessage.cs @@ -4,18 +4,52 @@ using System; using System.Collections.Generic; +using OpenAI; using OpenAI.Chat; namespace OpenAI.FineTuning { - internal partial class InternalFineTuneChatCompletionRequestAssistantMessage : AssistantChatMessage + internal partial class InternalFineTuneChatCompletionRequestAssistantMessage { + private protected IDictionary _additionalBinaryDataProperties; + public InternalFineTuneChatCompletionRequestAssistantMessage() { + ToolCalls = new ChangeTrackingList(); + } + + internal InternalFineTuneChatCompletionRequestAssistantMessage(InternalFineTuneChatCompletionRequestAssistantMessageWeight? weight, string refusal, InternalFineTuneChatCompletionRequestAssistantMessageRole role, string name, ChatOutputAudioReference audio, IList toolCalls, ChatFunctionCall functionCall, ChatMessageContent content, IDictionary additionalBinaryDataProperties) + { + Weight = weight; + Refusal = refusal; + Role = role; + Name = name; + Audio = audio; + ToolCalls = toolCalls; + FunctionCall = functionCall; + // Plugin customization: ensure initialization of collection + Content = content ?? new ChatMessageContent(); + _additionalBinaryDataProperties = additionalBinaryDataProperties; } - internal InternalFineTuneChatCompletionRequestAssistantMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string refusal, string participantName, IList toolCalls, ChatFunctionCall functionCall, ChatOutputAudioReference outputAudioReference) : base(content, role, additionalBinaryDataProperties, refusal, participantName, toolCalls, functionCall, outputAudioReference) + public InternalFineTuneChatCompletionRequestAssistantMessageWeight? Weight { get; set; } + + public string Refusal { get; set; } + + public InternalFineTuneChatCompletionRequestAssistantMessageRole Role { get; } = "assistant"; + + public string Name { get; set; } + + public ChatOutputAudioReference Audio { get; set; } + + public IList ToolCalls { get; } + + public ChatFunctionCall FunctionCall { get; set; } + + internal IDictionary SerializedAdditionalRawData { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; } } } diff --git a/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessageRole.cs b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessageRole.cs new file mode 100644 index 000000000..c5ed673aa --- /dev/null +++ b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessageRole.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.FineTuning +{ + internal readonly partial struct InternalFineTuneChatCompletionRequestAssistantMessageRole : IEquatable + { + private readonly string _value; + private const string AssistantValue = "assistant"; + + public InternalFineTuneChatCompletionRequestAssistantMessageRole(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalFineTuneChatCompletionRequestAssistantMessageRole Assistant { get; } = new InternalFineTuneChatCompletionRequestAssistantMessageRole(AssistantValue); + + public static bool operator ==(InternalFineTuneChatCompletionRequestAssistantMessageRole left, InternalFineTuneChatCompletionRequestAssistantMessageRole right) => left.Equals(right); + + public static bool operator !=(InternalFineTuneChatCompletionRequestAssistantMessageRole left, InternalFineTuneChatCompletionRequestAssistantMessageRole right) => !left.Equals(right); + + public static implicit operator InternalFineTuneChatCompletionRequestAssistantMessageRole(string value) => new InternalFineTuneChatCompletionRequestAssistantMessageRole(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalFineTuneChatCompletionRequestAssistantMessageRole other && Equals(other); + + public bool Equals(InternalFineTuneChatCompletionRequestAssistantMessageRole other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessageWeight.cs b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessageWeight.cs new file mode 100644 index 000000000..a4ebe16fa --- /dev/null +++ b/src/Generated/Models/InternalFineTuneChatCompletionRequestAssistantMessageWeight.cs @@ -0,0 +1,44 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.FineTuning +{ + internal readonly partial struct InternalFineTuneChatCompletionRequestAssistantMessageWeight : IEquatable + { + private readonly string _value; + private const string _0Value = "0"; + private const string _1Value = "1"; + + public InternalFineTuneChatCompletionRequestAssistantMessageWeight(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalFineTuneChatCompletionRequestAssistantMessageWeight _0 { get; } = new InternalFineTuneChatCompletionRequestAssistantMessageWeight(_0Value); + + public static InternalFineTuneChatCompletionRequestAssistantMessageWeight _1 { get; } = new InternalFineTuneChatCompletionRequestAssistantMessageWeight(_1Value); + + public static bool operator ==(InternalFineTuneChatCompletionRequestAssistantMessageWeight left, InternalFineTuneChatCompletionRequestAssistantMessageWeight right) => left.Equals(right); + + public static bool operator !=(InternalFineTuneChatCompletionRequestAssistantMessageWeight left, InternalFineTuneChatCompletionRequestAssistantMessageWeight right) => !left.Equals(right); + + public static implicit operator InternalFineTuneChatCompletionRequestAssistantMessageWeight(string value) => new InternalFineTuneChatCompletionRequestAssistantMessageWeight(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalFineTuneChatCompletionRequestAssistantMessageWeight other && Equals(other); + + public bool Equals(InternalFineTuneChatCompletionRequestAssistantMessageWeight other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalFineTuneSupervisedMethodHyperparameters.Serialization.cs b/src/Generated/Models/InternalFineTuneSupervisedMethodHyperparameters.Serialization.cs index a97f55cc1..a567cfa62 100644 --- a/src/Generated/Models/InternalFineTuneSupervisedMethodHyperparameters.Serialization.cs +++ b/src/Generated/Models/InternalFineTuneSupervisedMethodHyperparameters.Serialization.cs @@ -63,7 +63,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -136,10 +136,7 @@ internal static InternalFineTuneSupervisedMethodHyperparameters DeserializeInter nEpochs = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalFineTuneSupervisedMethodHyperparameters(batchSize, learningRateMultiplier, nEpochs, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalFineTuningIntegration.Serialization.cs b/src/Generated/Models/InternalFineTuningIntegration.Serialization.cs index 131661504..024044fa6 100644 --- a/src/Generated/Models/InternalFineTuningIntegration.Serialization.cs +++ b/src/Generated/Models/InternalFineTuningIntegration.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalFineTuningIntegrationWandb.Serialization.cs b/src/Generated/Models/InternalFineTuningIntegrationWandb.Serialization.cs index 68744bf46..147698d6c 100644 --- a/src/Generated/Models/InternalFineTuningIntegrationWandb.Serialization.cs +++ b/src/Generated/Models/InternalFineTuningIntegrationWandb.Serialization.cs @@ -73,10 +73,7 @@ internal static InternalFineTuningIntegrationWandb DeserializeInternalFineTuning wandb = FineTuningIntegrationWandbWandb.DeserializeFineTuningIntegrationWandbWandb(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalFineTuningIntegrationWandb(@type, additionalBinaryDataProperties, wandb); } diff --git a/src/Generated/Models/InternalFineTuningJobCheckpoint.Serialization.cs b/src/Generated/Models/InternalFineTuningJobCheckpoint.Serialization.cs index ef1ab9143..481499d76 100644 --- a/src/Generated/Models/InternalFineTuningJobCheckpoint.Serialization.cs +++ b/src/Generated/Models/InternalFineTuningJobCheckpoint.Serialization.cs @@ -66,7 +66,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -151,10 +151,7 @@ internal static InternalFineTuningJobCheckpoint DeserializeInternalFineTuningJob @object = new InternalFineTuningJobCheckpointObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalFineTuningJobCheckpoint( id, diff --git a/src/Generated/Models/InternalFineTuningJobCheckpointMetrics.Serialization.cs b/src/Generated/Models/InternalFineTuningJobCheckpointMetrics.Serialization.cs index 52ee0448d..ff181f203 100644 --- a/src/Generated/Models/InternalFineTuningJobCheckpointMetrics.Serialization.cs +++ b/src/Generated/Models/InternalFineTuningJobCheckpointMetrics.Serialization.cs @@ -62,7 +62,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("full_valid_mean_token_accuracy"u8); writer.WriteNumberValue(FullValidMeanTokenAccuracy.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -175,10 +175,7 @@ internal static InternalFineTuningJobCheckpointMetrics DeserializeInternalFineTu fullValidMeanTokenAccuracy = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalFineTuningJobCheckpointMetrics( step, diff --git a/src/Generated/Models/InternalFunctionDefinition.Serialization.cs b/src/Generated/Models/InternalFunctionDefinition.Serialization.cs index 1a1fb60f9..3a5e0c907 100644 --- a/src/Generated/Models/InternalFunctionDefinition.Serialization.cs +++ b/src/Generated/Models/InternalFunctionDefinition.Serialization.cs @@ -42,15 +42,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Strict) && _additionalBinaryDataProperties?.ContainsKey("strict") != true) { - if (Strict != null) - { - writer.WritePropertyName("strict"u8); - writer.WriteBooleanValue(Strict.Value); - } - else - { - writer.WriteNull("strict"u8); - } + writer.WritePropertyName("strict"u8); + writer.WriteBooleanValue(Strict.Value); } if (Optional.IsDefined(Parameters) && _additionalBinaryDataProperties?.ContainsKey("parameters") != true) { @@ -64,7 +57,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -140,10 +133,7 @@ internal static InternalFunctionDefinition DeserializeInternalFunctionDefinition parameters = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalFunctionDefinition(description, name, strict, parameters, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalListAssistantsResponse.Serialization.cs b/src/Generated/Models/InternalListAssistantsResponse.Serialization.cs index 4de8caa0c..a3e307d87 100644 --- a/src/Generated/Models/InternalListAssistantsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListAssistantsResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListAssistantsResponse DeserializeInternalListAssistants hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListAssistantsResponse( @object, diff --git a/src/Generated/Models/InternalListBatchesResponse.Serialization.cs b/src/Generated/Models/InternalListBatchesResponse.Serialization.cs index b2a0325c6..998c84308 100644 --- a/src/Generated/Models/InternalListBatchesResponse.Serialization.cs +++ b/src/Generated/Models/InternalListBatchesResponse.Serialization.cs @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListBatchesResponse DeserializeInternalListBatchesRespon @object = new InternalListBatchesResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListBatchesResponse( data, diff --git a/src/Generated/Models/InternalListFilesInVectorStoreBatchRequestOrder.cs b/src/Generated/Models/InternalListFilesInVectorStoreBatchRequestOrder.cs deleted file mode 100644 index 621f99ed5..000000000 --- a/src/Generated/Models/InternalListFilesInVectorStoreBatchRequestOrder.cs +++ /dev/null @@ -1,44 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.VectorStores -{ - internal readonly partial struct InternalListFilesInVectorStoreBatchRequestOrder : IEquatable - { - private readonly string _value; - private const string AscValue = "asc"; - private const string DescValue = "desc"; - - public InternalListFilesInVectorStoreBatchRequestOrder(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static InternalListFilesInVectorStoreBatchRequestOrder Asc { get; } = new InternalListFilesInVectorStoreBatchRequestOrder(AscValue); - - public static InternalListFilesInVectorStoreBatchRequestOrder Desc { get; } = new InternalListFilesInVectorStoreBatchRequestOrder(DescValue); - - public static bool operator ==(InternalListFilesInVectorStoreBatchRequestOrder left, InternalListFilesInVectorStoreBatchRequestOrder right) => left.Equals(right); - - public static bool operator !=(InternalListFilesInVectorStoreBatchRequestOrder left, InternalListFilesInVectorStoreBatchRequestOrder right) => !left.Equals(right); - - public static implicit operator InternalListFilesInVectorStoreBatchRequestOrder(string value) => new InternalListFilesInVectorStoreBatchRequestOrder(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is InternalListFilesInVectorStoreBatchRequestOrder other && Equals(other); - - public bool Equals(InternalListFilesInVectorStoreBatchRequestOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/InternalListFineTuningJobCheckpointsResponse.Serialization.cs b/src/Generated/Models/InternalListFineTuningJobCheckpointsResponse.Serialization.cs index ecc8440c6..ebeceda27 100644 --- a/src/Generated/Models/InternalListFineTuningJobCheckpointsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListFineTuningJobCheckpointsResponse.Serialization.cs @@ -48,34 +48,20 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(FirstId) && _additionalBinaryDataProperties?.ContainsKey("first_id") != true) { - if (FirstId != null) - { - writer.WritePropertyName("first_id"u8); - writer.WriteStringValue(FirstId); - } - else - { - writer.WriteNull("firstId"u8); - } + writer.WritePropertyName("first_id"u8); + writer.WriteStringValue(FirstId); } if (Optional.IsDefined(LastId) && _additionalBinaryDataProperties?.ContainsKey("last_id") != true) { - if (LastId != null) - { - writer.WritePropertyName("last_id"u8); - writer.WriteStringValue(LastId); - } - else - { - writer.WriteNull("lastId"u8); - } + writer.WritePropertyName("last_id"u8); + writer.WriteStringValue(LastId); } if (_additionalBinaryDataProperties?.ContainsKey("has_more") != true) { writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -163,10 +149,7 @@ internal static InternalListFineTuningJobCheckpointsResponse DeserializeInternal hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListFineTuningJobCheckpointsResponse( data, diff --git a/src/Generated/Models/InternalListFineTuningJobEventsResponse.Serialization.cs b/src/Generated/Models/InternalListFineTuningJobEventsResponse.Serialization.cs index e700b47fd..a964af6a6 100644 --- a/src/Generated/Models/InternalListFineTuningJobEventsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListFineTuningJobEventsResponse.Serialization.cs @@ -31,11 +31,6 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalListFineTuningJobEventsResponse)} does not support writing '{format}' format."); } - if (_additionalBinaryDataProperties?.ContainsKey("has_more") != true) - { - writer.WritePropertyName("has_more"u8); - writer.WriteBooleanValue(HasMore); - } if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); @@ -51,7 +46,12 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties?.ContainsKey("has_more") != true) + { + writer.WritePropertyName("has_more"u8); + writer.WriteBooleanValue(HasMore); + } + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -91,17 +91,12 @@ internal static InternalListFineTuningJobEventsResponse DeserializeInternalListF { return null; } - bool hasMore = default; IList data = default; InternalListFineTuningJobEventsResponseObject @object = default; + bool hasMore = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { - if (prop.NameEquals("has_more"u8)) - { - hasMore = prop.Value.GetBoolean(); - continue; - } if (prop.NameEquals("data"u8)) { List array = new List(); @@ -117,12 +112,14 @@ internal static InternalListFineTuningJobEventsResponse DeserializeInternalListF @object = new InternalListFineTuningJobEventsResponseObject(prop.Value.GetString()); continue; } - if (true) + if (prop.NameEquals("has_more"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + hasMore = prop.Value.GetBoolean(); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - return new InternalListFineTuningJobEventsResponse(hasMore, data, @object, additionalBinaryDataProperties); + return new InternalListFineTuningJobEventsResponse(data, @object, hasMore, additionalBinaryDataProperties); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/InternalListFineTuningJobEventsResponse.cs b/src/Generated/Models/InternalListFineTuningJobEventsResponse.cs index c34113f0d..c5a4fd632 100644 --- a/src/Generated/Models/InternalListFineTuningJobEventsResponse.cs +++ b/src/Generated/Models/InternalListFineTuningJobEventsResponse.cs @@ -12,26 +12,26 @@ internal partial class InternalListFineTuningJobEventsResponse { private protected IDictionary _additionalBinaryDataProperties; - internal InternalListFineTuningJobEventsResponse(bool hasMore, IEnumerable data) + internal InternalListFineTuningJobEventsResponse(IEnumerable data, bool hasMore) { - HasMore = hasMore; Data = data.ToList(); + HasMore = hasMore; } - internal InternalListFineTuningJobEventsResponse(bool hasMore, IList data, InternalListFineTuningJobEventsResponseObject @object, IDictionary additionalBinaryDataProperties) + internal InternalListFineTuningJobEventsResponse(IList data, InternalListFineTuningJobEventsResponseObject @object, bool hasMore, IDictionary additionalBinaryDataProperties) { - HasMore = hasMore; Data = data; Object = @object; + HasMore = hasMore; _additionalBinaryDataProperties = additionalBinaryDataProperties; } - public bool HasMore { get; } - public IList Data { get; } public InternalListFineTuningJobEventsResponseObject Object { get; } = "list"; + public bool HasMore { get; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/Models/InternalListMessagesResponse.Serialization.cs b/src/Generated/Models/InternalListMessagesResponse.Serialization.cs index 691a66723..0ef135589 100644 --- a/src/Generated/Models/InternalListMessagesResponse.Serialization.cs +++ b/src/Generated/Models/InternalListMessagesResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListMessagesResponse DeserializeInternalListMessagesResp hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListMessagesResponse( @object, diff --git a/src/Generated/Models/InternalListPaginatedFineTuningJobsResponse.Serialization.cs b/src/Generated/Models/InternalListPaginatedFineTuningJobsResponse.Serialization.cs index cfa70a193..dd673f6d3 100644 --- a/src/Generated/Models/InternalListPaginatedFineTuningJobsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListPaginatedFineTuningJobsResponse.Serialization.cs @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -117,10 +117,7 @@ internal static InternalListPaginatedFineTuningJobsResponse DeserializeInternalL @object = new InternalListPaginatedFineTuningJobsResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListPaginatedFineTuningJobsResponse(data, hasMore, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalListRunStepsResponse.Serialization.cs b/src/Generated/Models/InternalListRunStepsResponse.Serialization.cs index 568099227..f16a639e7 100644 --- a/src/Generated/Models/InternalListRunStepsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListRunStepsResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListRunStepsResponse DeserializeInternalListRunStepsResp hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListRunStepsResponse( @object, diff --git a/src/Generated/Models/InternalListRunsResponse.Serialization.cs b/src/Generated/Models/InternalListRunsResponse.Serialization.cs index a18bb7c40..bfbb465e4 100644 --- a/src/Generated/Models/InternalListRunsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListRunsResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListRunsResponse DeserializeInternalListRunsResponse(Jso hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListRunsResponse( @object, diff --git a/src/Generated/Models/InternalListThreadsResponse.Serialization.cs b/src/Generated/Models/InternalListThreadsResponse.Serialization.cs index deba50bb2..b0172cc22 100644 --- a/src/Generated/Models/InternalListThreadsResponse.Serialization.cs +++ b/src/Generated/Models/InternalListThreadsResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListThreadsResponse DeserializeInternalListThreadsRespon hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListThreadsResponse( @object, diff --git a/src/Generated/Models/InternalListVectorStoreFilesResponse.Serialization.cs b/src/Generated/Models/InternalListVectorStoreFilesResponse.Serialization.cs index 8d2b5fdf2..96881a2fc 100644 --- a/src/Generated/Models/InternalListVectorStoreFilesResponse.Serialization.cs +++ b/src/Generated/Models/InternalListVectorStoreFilesResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListVectorStoreFilesResponse DeserializeInternalListVect hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListVectorStoreFilesResponse( @object, diff --git a/src/Generated/Models/InternalListVectorStoresResponse.Serialization.cs b/src/Generated/Models/InternalListVectorStoresResponse.Serialization.cs index 15a375b63..47628b8e9 100644 --- a/src/Generated/Models/InternalListVectorStoresResponse.Serialization.cs +++ b/src/Generated/Models/InternalListVectorStoresResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("data") != true) + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) { writer.WritePropertyName("data"u8); writer.WriteStartArray(); @@ -61,7 +61,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -139,10 +139,7 @@ internal static InternalListVectorStoresResponse DeserializeInternalListVectorSt hasMore = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalListVectorStoresResponse( @object, diff --git a/src/Generated/Models/InternalMessageContentImageUrlObjectImageUrl.Serialization.cs b/src/Generated/Models/InternalMessageContentImageUrlObjectImageUrl.Serialization.cs index f163923b5..5b6badf80 100644 --- a/src/Generated/Models/InternalMessageContentImageUrlObjectImageUrl.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentImageUrlObjectImageUrl.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("detail"u8); writer.WriteStringValue(Detail); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalMessageContentImageUrlObjectImageUrl DeserializeInternal detail = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentImageUrlObjectImageUrl(url, detail, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageContentItemFileObjectImageFile.Serialization.cs b/src/Generated/Models/InternalMessageContentItemFileObjectImageFile.Serialization.cs index e1675137f..f1078ff05 100644 --- a/src/Generated/Models/InternalMessageContentItemFileObjectImageFile.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentItemFileObjectImageFile.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("detail"u8); writer.WriteStringValue(Detail); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalMessageContentItemFileObjectImageFile DeserializeInterna detail = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentItemFileObjectImageFile(fileId, detail, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObject.Serialization.cs b/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObject.Serialization.cs index 9566b3a42..2963c6300 100644 --- a/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObject.Serialization.cs @@ -106,10 +106,7 @@ internal static InternalMessageContentTextAnnotationsFileCitationObject Deserial endIndex = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentTextAnnotationsFileCitationObject( @type, diff --git a/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs b/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs index 4e5168aad..5532e3962 100644 --- a/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_id"u8); writer.WriteStringValue(FileId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalMessageContentTextAnnotationsFileCitationObjectFileCitat fileId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentTextAnnotationsFileCitationObjectFileCitation(fileId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObject.Serialization.cs b/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObject.Serialization.cs index ad60be6dd..96009790b 100644 --- a/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObject.Serialization.cs @@ -106,10 +106,7 @@ internal static InternalMessageContentTextAnnotationsFilePathObject DeserializeI endIndex = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentTextAnnotationsFilePathObject( @type, diff --git a/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObjectFilePath.Serialization.cs b/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObjectFilePath.Serialization.cs index 9c2063bd9..2305841f1 100644 --- a/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObjectFilePath.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentTextAnnotationsFilePathObjectFilePath.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_id"u8); writer.WriteStringValue(FileId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalMessageContentTextAnnotationsFilePathObjectFilePath Dese fileId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentTextAnnotationsFilePathObjectFilePath(fileId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageContentTextObjectAnnotation.Serialization.cs b/src/Generated/Models/InternalMessageContentTextObjectAnnotation.Serialization.cs index d2fab5507..71807a0a7 100644 --- a/src/Generated/Models/InternalMessageContentTextObjectAnnotation.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentTextObjectAnnotation.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalMessageContentTextObjectText.Serialization.cs b/src/Generated/Models/InternalMessageContentTextObjectText.Serialization.cs index e023a7c53..cc9dffd49 100644 --- a/src/Generated/Models/InternalMessageContentTextObjectText.Serialization.cs +++ b/src/Generated/Models/InternalMessageContentTextObjectText.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -106,10 +106,7 @@ internal static InternalMessageContentTextObjectText DeserializeInternalMessageC annotations = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageContentTextObjectText(value, annotations, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaContent.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContent.Serialization.cs index 7ac025e15..fe6c65b1e 100644 --- a/src/Generated/Models/InternalMessageDeltaContent.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContent.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalMessageDeltaContentImageFileObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentImageFileObject.Serialization.cs index b42753383..241807261 100644 --- a/src/Generated/Models/InternalMessageDeltaContentImageFileObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentImageFileObject.Serialization.cs @@ -88,10 +88,7 @@ internal static InternalMessageDeltaContentImageFileObject DeserializeInternalMe imageFile = InternalMessageDeltaContentImageFileObjectImageFile.DeserializeInternalMessageDeltaContentImageFileObjectImageFile(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentImageFileObject(@type, additionalBinaryDataProperties, index, imageFile); } diff --git a/src/Generated/Models/InternalMessageDeltaContentImageFileObjectImageFile.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentImageFileObjectImageFile.Serialization.cs index 38f2a8da1..69457aaa8 100644 --- a/src/Generated/Models/InternalMessageDeltaContentImageFileObjectImageFile.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentImageFileObjectImageFile.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("detail"u8); writer.WriteStringValue(Detail); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalMessageDeltaContentImageFileObjectImageFile DeserializeI detail = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentImageFileObjectImageFile(fileId, detail, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaContentImageUrlObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentImageUrlObject.Serialization.cs index 696a1fe05..c372be61f 100644 --- a/src/Generated/Models/InternalMessageDeltaContentImageUrlObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentImageUrlObject.Serialization.cs @@ -88,10 +88,7 @@ internal static InternalMessageDeltaContentImageUrlObject DeserializeInternalMes imageUrl = InternalMessageDeltaContentImageUrlObjectImageUrl.DeserializeInternalMessageDeltaContentImageUrlObjectImageUrl(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentImageUrlObject(@type, additionalBinaryDataProperties, index, imageUrl); } diff --git a/src/Generated/Models/InternalMessageDeltaContentImageUrlObjectImageUrl.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentImageUrlObjectImageUrl.Serialization.cs index 84fe846be..05f95e245 100644 --- a/src/Generated/Models/InternalMessageDeltaContentImageUrlObjectImageUrl.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentImageUrlObjectImageUrl.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("detail"u8); writer.WriteStringValue(Detail); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalMessageDeltaContentImageUrlObjectImageUrl DeserializeInt detail = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentImageUrlObjectImageUrl(url, detail, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaContentRefusalObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentRefusalObject.Serialization.cs index 4e1a14815..275eabf9c 100644 --- a/src/Generated/Models/InternalMessageDeltaContentRefusalObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentRefusalObject.Serialization.cs @@ -84,10 +84,7 @@ internal static InternalMessageDeltaContentRefusalObject DeserializeInternalMess refusal = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentRefusalObject(@type, additionalBinaryDataProperties, index, refusal); } diff --git a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObject.Serialization.cs index fc6c22d7f..61e605d5b 100644 --- a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObject.Serialization.cs @@ -129,10 +129,7 @@ internal static InternalMessageDeltaContentTextAnnotationsFileCitationObject Des endIndex = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentTextAnnotationsFileCitationObject( @type, diff --git a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs index 51525935e..05cd0e9e6 100644 --- a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFileCitationObjectFileCitation.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("quote"u8); writer.WriteStringValue(Quote); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalMessageDeltaContentTextAnnotationsFileCitationObjectFile quote = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentTextAnnotationsFileCitationObjectFileCitation(fileId, quote, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObject.Serialization.cs index 2ab01dd19..a344ee663 100644 --- a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObject.Serialization.cs @@ -129,10 +129,7 @@ internal static InternalMessageDeltaContentTextAnnotationsFilePathObject Deseria endIndex = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentTextAnnotationsFilePathObject( @type, diff --git a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath.Serialization.cs index 64af2f141..603b77118 100644 --- a/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_id"u8); writer.WriteStringValue(FileId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -81,10 +81,7 @@ internal static InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath fileId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentTextAnnotationsFilePathObjectFilePath(fileId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaContentTextObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentTextObject.Serialization.cs index 7eebdd746..176a61460 100644 --- a/src/Generated/Models/InternalMessageDeltaContentTextObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentTextObject.Serialization.cs @@ -88,10 +88,7 @@ internal static InternalMessageDeltaContentTextObject DeserializeInternalMessage text = InternalMessageDeltaContentTextObjectText.DeserializeInternalMessageDeltaContentTextObjectText(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentTextObject(@type, additionalBinaryDataProperties, index, text); } diff --git a/src/Generated/Models/InternalMessageDeltaContentTextObjectText.Serialization.cs b/src/Generated/Models/InternalMessageDeltaContentTextObjectText.Serialization.cs index 3a75de3db..a42369c7f 100644 --- a/src/Generated/Models/InternalMessageDeltaContentTextObjectText.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaContentTextObjectText.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -106,10 +106,7 @@ internal static InternalMessageDeltaContentTextObjectText DeserializeInternalMes annotations = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaContentTextObjectText(value, annotations ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaObject.Serialization.cs b/src/Generated/Models/InternalMessageDeltaObject.Serialization.cs index af9621cc5..d7ffe9ceb 100644 --- a/src/Generated/Models/InternalMessageDeltaObject.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaObject.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("delta"u8); writer.WriteObjectValue(Delta, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalMessageDeltaObject DeserializeInternalMessageDeltaObject delta = InternalMessageDeltaObjectDelta.DeserializeInternalMessageDeltaObjectDelta(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaObject(id, @object, delta, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaObjectDelta.Serialization.cs b/src/Generated/Models/InternalMessageDeltaObjectDelta.Serialization.cs index 6d2f67e65..d2d782295 100644 --- a/src/Generated/Models/InternalMessageDeltaObjectDelta.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaObjectDelta.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("role"u8); writer.WriteStringValue(Role.Value.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -83,7 +83,7 @@ internal static InternalMessageDeltaObjectDelta DeserializeInternalMessageDeltaO return null; } IList content = default; - Assistants.MessageRole? role = default; + MessageRole? role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -110,10 +110,7 @@ internal static InternalMessageDeltaObjectDelta DeserializeInternalMessageDeltaO role = prop.Value.GetString().ToMessageRole(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageDeltaObjectDelta(content ?? new ChangeTrackingList(), role, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageDeltaObjectDelta.cs b/src/Generated/Models/InternalMessageDeltaObjectDelta.cs index 71995269f..8480f6468 100644 --- a/src/Generated/Models/InternalMessageDeltaObjectDelta.cs +++ b/src/Generated/Models/InternalMessageDeltaObjectDelta.cs @@ -17,7 +17,7 @@ internal InternalMessageDeltaObjectDelta() Content = new ChangeTrackingList(); } - internal InternalMessageDeltaObjectDelta(IList content, Assistants.MessageRole? role, IDictionary additionalBinaryDataProperties) + internal InternalMessageDeltaObjectDelta(IList content, MessageRole? role, IDictionary additionalBinaryDataProperties) { Content = content; Role = role; diff --git a/src/Generated/Models/InternalMessageDeltaTextContentAnnotation.Serialization.cs b/src/Generated/Models/InternalMessageDeltaTextContentAnnotation.Serialization.cs index 447aa246c..4f027758e 100644 --- a/src/Generated/Models/InternalMessageDeltaTextContentAnnotation.Serialization.cs +++ b/src/Generated/Models/InternalMessageDeltaTextContentAnnotation.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalMessageImageFileContent.Serialization.cs b/src/Generated/Models/InternalMessageImageFileContent.Serialization.cs index c831eb317..c193cf8dd 100644 --- a/src/Generated/Models/InternalMessageImageFileContent.Serialization.cs +++ b/src/Generated/Models/InternalMessageImageFileContent.Serialization.cs @@ -33,7 +33,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("image_file") != true) { writer.WritePropertyName("image_file"u8); - writer.WriteObjectValue(_imageFile, options); + writer.WriteObjectValue(_imageFile, options); } } @@ -71,10 +71,7 @@ internal static InternalMessageImageFileContent DeserializeInternalMessageImageF imageFile = InternalMessageContentItemFileObjectImageFile.DeserializeInternalMessageContentItemFileObjectImageFile(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageImageFileContent(additionalBinaryDataProperties, @type, imageFile); } diff --git a/src/Generated/Models/InternalMessageImageUrlContent.Serialization.cs b/src/Generated/Models/InternalMessageImageUrlContent.Serialization.cs index decb82a1b..83b9c4856 100644 --- a/src/Generated/Models/InternalMessageImageUrlContent.Serialization.cs +++ b/src/Generated/Models/InternalMessageImageUrlContent.Serialization.cs @@ -33,7 +33,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("image_url") != true) { writer.WritePropertyName("image_url"u8); - writer.WriteObjectValue(_imageUrl, options); + writer.WriteObjectValue(_imageUrl, options); } } @@ -71,10 +71,7 @@ internal static InternalMessageImageUrlContent DeserializeInternalMessageImageUr imageUrl = InternalMessageContentImageUrlObjectImageUrl.DeserializeInternalMessageContentImageUrlObjectImageUrl(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageImageUrlContent(additionalBinaryDataProperties, @type, imageUrl); } diff --git a/src/Generated/Models/InternalMessageObjectAttachment.Serialization.cs b/src/Generated/Models/InternalMessageObjectAttachment.Serialization.cs index cb5cc7e63..f3893cc17 100644 --- a/src/Generated/Models/InternalMessageObjectAttachment.Serialization.cs +++ b/src/Generated/Models/InternalMessageObjectAttachment.Serialization.cs @@ -54,7 +54,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -125,10 +125,7 @@ internal static InternalMessageObjectAttachment DeserializeInternalMessageObject tools = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageObjectAttachment(fileId, tools ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalMessageRefusalContent.Serialization.cs b/src/Generated/Models/InternalMessageRefusalContent.Serialization.cs index a59102fb3..68bec52ae 100644 --- a/src/Generated/Models/InternalMessageRefusalContent.Serialization.cs +++ b/src/Generated/Models/InternalMessageRefusalContent.Serialization.cs @@ -71,10 +71,7 @@ internal static InternalMessageRefusalContent DeserializeInternalMessageRefusalC @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalMessageRefusalContent(additionalBinaryDataProperties, internalRefusal, @type); } diff --git a/src/Generated/Models/InternalModerationCategories.Serialization.cs b/src/Generated/Models/InternalModerationCategories.Serialization.cs index f2979e342..f1cf80c42 100644 --- a/src/Generated/Models/InternalModerationCategories.Serialization.cs +++ b/src/Generated/Models/InternalModerationCategories.Serialization.cs @@ -96,7 +96,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("violence/graphic"u8); writer.WriteBooleanValue(ViolenceGraphic); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -217,10 +217,7 @@ internal static InternalModerationCategories DeserializeInternalModerationCatego violenceGraphic = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalModerationCategories( hate, diff --git a/src/Generated/Models/InternalModerationCategoryScores.Serialization.cs b/src/Generated/Models/InternalModerationCategoryScores.Serialization.cs index 5ce3e2fbd..46badb7f8 100644 --- a/src/Generated/Models/InternalModerationCategoryScores.Serialization.cs +++ b/src/Generated/Models/InternalModerationCategoryScores.Serialization.cs @@ -96,7 +96,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("violence/graphic"u8); writer.WriteNumberValue(ViolenceGraphic); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -217,10 +217,7 @@ internal static InternalModerationCategoryScores DeserializeInternalModerationCa violenceGraphic = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalModerationCategoryScores( hate, diff --git a/src/Generated/Models/InternalModifyAssistantRequestToolResources.Serialization.cs b/src/Generated/Models/InternalModifyAssistantRequestToolResources.Serialization.cs index b720134bc..0955b384b 100644 --- a/src/Generated/Models/InternalModifyAssistantRequestToolResources.Serialization.cs +++ b/src/Generated/Models/InternalModifyAssistantRequestToolResources.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_search"u8); writer.WriteObjectValue(FileSearch, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalModifyAssistantRequestToolResources DeserializeInternalM fileSearch = InternalToolResourcesFileSearchIdsOnly.DeserializeInternalToolResourcesFileSearchIdsOnly(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalModifyAssistantRequestToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalModifyAssistantRequestToolResourcesCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalModifyAssistantRequestToolResourcesCodeInterpreter.Serialization.cs index 88bfe2b56..978cc3c4a 100644 --- a/src/Generated/Models/InternalModifyAssistantRequestToolResourcesCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalModifyAssistantRequestToolResourcesCodeInterpreter.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalModifyAssistantRequestToolResourcesCodeInterpreter Deser fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalModifyAssistantRequestToolResourcesCodeInterpreter(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalModifyThreadRequestToolResources.Serialization.cs b/src/Generated/Models/InternalModifyThreadRequestToolResources.Serialization.cs index 736a11320..3c01499f4 100644 --- a/src/Generated/Models/InternalModifyThreadRequestToolResources.Serialization.cs +++ b/src/Generated/Models/InternalModifyThreadRequestToolResources.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_search"u8); writer.WriteObjectValue(FileSearch, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalModifyThreadRequestToolResources DeserializeInternalModi fileSearch = InternalToolResourcesFileSearchIdsOnly.DeserializeInternalToolResourcesFileSearchIdsOnly(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalModifyThreadRequestToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalModifyThreadRequestToolResourcesCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalModifyThreadRequestToolResourcesCodeInterpreter.Serialization.cs index 43462682f..58de40eb3 100644 --- a/src/Generated/Models/InternalModifyThreadRequestToolResourcesCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalModifyThreadRequestToolResourcesCodeInterpreter.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalModifyThreadRequestToolResourcesCodeInterpreter Deserial fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalModifyThreadRequestToolResourcesCodeInterpreter(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalOmniTypedResponseFormat.Serialization.cs b/src/Generated/Models/InternalOmniTypedResponseFormat.Serialization.cs index b2cdc55e3..2fdf94b48 100644 --- a/src/Generated/Models/InternalOmniTypedResponseFormat.Serialization.cs +++ b/src/Generated/Models/InternalOmniTypedResponseFormat.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalRealtimeClientEvent.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEvent.Serialization.cs index 46b19f866..264d439dc 100644 --- a/src/Generated/Models/InternalRealtimeClientEvent.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEvent.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("event_id"u8); writer.WriteStringValue(EventId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalRealtimeClientEventConversationItemCreate.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventConversationItemCreate.Serialization.cs index e3572ee2e..283fcfe37 100644 --- a/src/Generated/Models/InternalRealtimeClientEventConversationItemCreate.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventConversationItemCreate.Serialization.cs @@ -90,10 +90,7 @@ internal static InternalRealtimeClientEventConversationItemCreate DeserializeInt item = ConversationItem.DeserializeConversationItem(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventConversationItemCreate(kind, eventId, additionalBinaryDataProperties, previousItemId, item); } diff --git a/src/Generated/Models/InternalRealtimeClientEventConversationItemDelete.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventConversationItemDelete.Serialization.cs index ebe414f6f..299927753 100644 --- a/src/Generated/Models/InternalRealtimeClientEventConversationItemDelete.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventConversationItemDelete.Serialization.cs @@ -79,10 +79,7 @@ internal static InternalRealtimeClientEventConversationItemDelete DeserializeInt itemId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventConversationItemDelete(kind, eventId, additionalBinaryDataProperties, itemId); } diff --git a/src/Generated/Models/InternalRealtimeClientEventConversationItemTruncate.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventConversationItemTruncate.Serialization.cs index da934231d..472d16249 100644 --- a/src/Generated/Models/InternalRealtimeClientEventConversationItemTruncate.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventConversationItemTruncate.Serialization.cs @@ -101,10 +101,7 @@ internal static InternalRealtimeClientEventConversationItemTruncate DeserializeI audioEndMs = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventConversationItemTruncate( kind, diff --git a/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferAppend.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferAppend.Serialization.cs index de235c643..d6e048071 100644 --- a/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferAppend.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferAppend.Serialization.cs @@ -79,10 +79,7 @@ internal static InternalRealtimeClientEventInputAudioBufferAppend DeserializeInt audio = BinaryData.FromBytes(prop.Value.GetBytesFromBase64("D")); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventInputAudioBufferAppend(kind, eventId, additionalBinaryDataProperties, audio); } diff --git a/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferClear.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferClear.Serialization.cs index 7819cd1c2..773c850b9 100644 --- a/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferClear.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferClear.Serialization.cs @@ -64,10 +64,7 @@ internal static InternalRealtimeClientEventInputAudioBufferClear DeserializeInte eventId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventInputAudioBufferClear(kind, eventId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferCommit.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferCommit.Serialization.cs index 7d1f686e3..02658a229 100644 --- a/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferCommit.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventInputAudioBufferCommit.Serialization.cs @@ -64,10 +64,7 @@ internal static InternalRealtimeClientEventInputAudioBufferCommit DeserializeInt eventId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventInputAudioBufferCommit(kind, eventId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRealtimeClientEventResponseCancel.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventResponseCancel.Serialization.cs index 892c4cb6b..b3bfbd067 100644 --- a/src/Generated/Models/InternalRealtimeClientEventResponseCancel.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventResponseCancel.Serialization.cs @@ -75,10 +75,7 @@ internal static InternalRealtimeClientEventResponseCancel DeserializeInternalRea responseId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventResponseCancel(kind, eventId, additionalBinaryDataProperties, responseId); } diff --git a/src/Generated/Models/InternalRealtimeClientEventResponseCreate.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventResponseCreate.Serialization.cs index 66c7331e1..fcbe3d7ad 100644 --- a/src/Generated/Models/InternalRealtimeClientEventResponseCreate.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventResponseCreate.Serialization.cs @@ -79,10 +79,7 @@ internal static InternalRealtimeClientEventResponseCreate DeserializeInternalRea response = ConversationResponseOptions.DeserializeConversationResponseOptions(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventResponseCreate(kind, eventId, additionalBinaryDataProperties, response); } diff --git a/src/Generated/Models/InternalRealtimeClientEventSessionUpdate.Serialization.cs b/src/Generated/Models/InternalRealtimeClientEventSessionUpdate.Serialization.cs index 18a9d1611..3fbb40a6c 100644 --- a/src/Generated/Models/InternalRealtimeClientEventSessionUpdate.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeClientEventSessionUpdate.Serialization.cs @@ -79,10 +79,7 @@ internal static InternalRealtimeClientEventSessionUpdate DeserializeInternalReal session = ConversationSessionOptions.DeserializeConversationSessionOptions(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeClientEventSessionUpdate(kind, eventId, additionalBinaryDataProperties, session); } diff --git a/src/Generated/Models/InternalRealtimeConversationResponseItem.Serialization.cs b/src/Generated/Models/InternalRealtimeConversationResponseItem.Serialization.cs index 214e631d8..ae49f8109 100644 --- a/src/Generated/Models/InternalRealtimeConversationResponseItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeConversationResponseItem.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("id") != true) { - if (Id != null) + if (Optional.IsDefined(Id)) { writer.WritePropertyName("id"u8); writer.WriteStringValue(Id); @@ -53,7 +53,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("id"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalRealtimeRequestAssistantMessageItem.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestAssistantMessageItem.Serialization.cs index 2b01e29e1..becafcca8 100644 --- a/src/Generated/Models/InternalRealtimeRequestAssistantMessageItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestAssistantMessageItem.Serialization.cs @@ -105,10 +105,7 @@ internal static InternalRealtimeRequestAssistantMessageItem DeserializeInternalR content = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestAssistantMessageItem( @type, diff --git a/src/Generated/Models/InternalRealtimeRequestAudioContentPart.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestAudioContentPart.Serialization.cs index 1ca220773..717e79492 100644 --- a/src/Generated/Models/InternalRealtimeRequestAudioContentPart.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestAudioContentPart.Serialization.cs @@ -80,10 +80,7 @@ internal static InternalRealtimeRequestAudioContentPart DeserializeInternalRealt internalTranscriptValue = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestAudioContentPart(kind, additionalBinaryDataProperties, @type, internalTranscriptValue); } diff --git a/src/Generated/Models/InternalRealtimeRequestFunctionCallItem.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestFunctionCallItem.Serialization.cs index 37fec87f7..0941a66dd 100644 --- a/src/Generated/Models/InternalRealtimeRequestFunctionCallItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestFunctionCallItem.Serialization.cs @@ -116,10 +116,7 @@ internal static InternalRealtimeRequestFunctionCallItem DeserializeInternalRealt status = new ConversationItemStatus(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestFunctionCallItem( @type, diff --git a/src/Generated/Models/InternalRealtimeRequestFunctionCallOutputItem.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestFunctionCallOutputItem.Serialization.cs index f27e4810a..fd148021b 100644 --- a/src/Generated/Models/InternalRealtimeRequestFunctionCallOutputItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestFunctionCallOutputItem.Serialization.cs @@ -90,10 +90,7 @@ internal static InternalRealtimeRequestFunctionCallOutputItem DeserializeInterna output = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestFunctionCallOutputItem(@type, id, additionalBinaryDataProperties, callId, output); } diff --git a/src/Generated/Models/InternalRealtimeRequestSystemMessageItem.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestSystemMessageItem.Serialization.cs index e6863613e..46c7d7a1b 100644 --- a/src/Generated/Models/InternalRealtimeRequestSystemMessageItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestSystemMessageItem.Serialization.cs @@ -105,10 +105,7 @@ internal static InternalRealtimeRequestSystemMessageItem DeserializeInternalReal content = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestSystemMessageItem( @type, diff --git a/src/Generated/Models/InternalRealtimeRequestTextContentPart.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestTextContentPart.Serialization.cs index 2a1e7d277..082a74e2c 100644 --- a/src/Generated/Models/InternalRealtimeRequestTextContentPart.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestTextContentPart.Serialization.cs @@ -84,10 +84,7 @@ internal static InternalRealtimeRequestTextContentPart DeserializeInternalRealti internalTextValue = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestTextContentPart(kind, additionalBinaryDataProperties, @type, internalTextValue); } diff --git a/src/Generated/Models/InternalRealtimeRequestUserMessageItem.Serialization.cs b/src/Generated/Models/InternalRealtimeRequestUserMessageItem.Serialization.cs index 3728f9a62..9c01cdc3c 100644 --- a/src/Generated/Models/InternalRealtimeRequestUserMessageItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeRequestUserMessageItem.Serialization.cs @@ -105,10 +105,7 @@ internal static InternalRealtimeRequestUserMessageItem DeserializeInternalRealti content = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeRequestUserMessageItem( @type, diff --git a/src/Generated/Models/InternalRealtimeResponse.Serialization.cs b/src/Generated/Models/InternalRealtimeResponse.Serialization.cs index 13872d7d6..1ca40fd68 100644 --- a/src/Generated/Models/InternalRealtimeResponse.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponse.Serialization.cs @@ -53,7 +53,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -131,7 +131,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("output_audio_format"u8); writer.WriteStringValue(OutputAudioFormat.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -319,10 +319,7 @@ internal static InternalRealtimeResponse DeserializeInternalRealtimeResponse(Jso outputAudioFormat = new ConversationAudioFormat(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponse( id, diff --git a/src/Generated/Models/InternalRealtimeResponseAudioContentPart.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseAudioContentPart.Serialization.cs index 5a598301e..60e114cb3 100644 --- a/src/Generated/Models/InternalRealtimeResponseAudioContentPart.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseAudioContentPart.Serialization.cs @@ -39,7 +39,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri } if (_additionalBinaryDataProperties?.ContainsKey("transcript") != true) { - if (InternalTranscriptValue != null) + if (Optional.IsDefined(InternalTranscriptValue)) { writer.WritePropertyName("transcript"u8); writer.WriteStringValue(InternalTranscriptValue); @@ -96,10 +96,7 @@ internal static InternalRealtimeResponseAudioContentPart DeserializeInternalReal internalTranscriptValue = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseAudioContentPart(kind, additionalBinaryDataProperties, @type, internalTranscriptValue); } diff --git a/src/Generated/Models/InternalRealtimeResponseFunctionCallItem.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseFunctionCallItem.Serialization.cs index 5af5037d7..d5409e675 100644 --- a/src/Generated/Models/InternalRealtimeResponseFunctionCallItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseFunctionCallItem.Serialization.cs @@ -123,10 +123,7 @@ internal static InternalRealtimeResponseFunctionCallItem DeserializeInternalReal status = new ConversationItemStatus(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseFunctionCallItem( @object, diff --git a/src/Generated/Models/InternalRealtimeResponseFunctionCallOutputItem.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseFunctionCallOutputItem.Serialization.cs index d7e539a5d..30e632d63 100644 --- a/src/Generated/Models/InternalRealtimeResponseFunctionCallOutputItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseFunctionCallOutputItem.Serialization.cs @@ -101,10 +101,7 @@ internal static InternalRealtimeResponseFunctionCallOutputItem DeserializeIntern output = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseFunctionCallOutputItem( @object, diff --git a/src/Generated/Models/InternalRealtimeResponseMessageItem.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseMessageItem.Serialization.cs index d0fa51478..0292e134d 100644 --- a/src/Generated/Models/InternalRealtimeResponseMessageItem.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseMessageItem.Serialization.cs @@ -42,7 +42,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri writer.WritePropertyName("role"u8); writer.WriteStringValue(Role.ToString()); } - if (true && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { writer.WritePropertyName("content"u8); writer.WriteStartArray(); @@ -122,10 +122,7 @@ internal static InternalRealtimeResponseMessageItem DeserializeInternalRealtimeR content = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseMessageItem( @object, diff --git a/src/Generated/Models/InternalRealtimeResponseSession.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseSession.Serialization.cs index 8b2c39d1c..55f5d0818 100644 --- a/src/Generated/Models/InternalRealtimeResponseSession.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseSession.Serialization.cs @@ -78,14 +78,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("input_audio_transcription") != true) { - if (InputAudioTranscription != null) + if (Optional.IsDefined(InputAudioTranscription)) { writer.WritePropertyName("input_audio_transcription"u8); writer.WriteObjectValue(InputAudioTranscription, options); } else { - writer.WriteNull("inputAudioTranscription"u8); + writer.WriteNull("input_audio_transcription"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("turn_detection") != true) @@ -93,7 +93,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("turn_detection"u8); writer.WriteObjectValue(TurnDetection, options); } - if (true && _additionalBinaryDataProperties?.ContainsKey("tools") != true) + if (_additionalBinaryDataProperties?.ContainsKey("tools") != true) { writer.WritePropertyName("tools"u8); writer.WriteStartArray(); @@ -122,7 +122,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("max_response_output_tokens") != true) { - if (_maxResponseOutputTokens != null) + if (Optional.IsDefined(_maxResponseOutputTokens)) { writer.WritePropertyName("max_response_output_tokens"u8); #if NET6_0_OR_GREATER @@ -136,10 +136,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } else { - writer.WriteNull("maxResponseOutputTokens"u8); + writer.WriteNull("max_response_output_tokens"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -286,10 +286,7 @@ internal static InternalRealtimeResponseSession DeserializeInternalRealtimeRespo maxResponseOutputTokens = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseSession( @object, diff --git a/src/Generated/Models/InternalRealtimeResponseStatusDetailsError.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseStatusDetailsError.Serialization.cs index 897183a15..3c700dc24 100644 --- a/src/Generated/Models/InternalRealtimeResponseStatusDetailsError.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseStatusDetailsError.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("code"u8); writer.WriteStringValue(Code); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalRealtimeResponseStatusDetailsError DeserializeInternalRe code = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseStatusDetailsError(@type, code, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRealtimeResponseTextContentPart.Serialization.cs b/src/Generated/Models/InternalRealtimeResponseTextContentPart.Serialization.cs index bc533f6ba..d463cdcd0 100644 --- a/src/Generated/Models/InternalRealtimeResponseTextContentPart.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeResponseTextContentPart.Serialization.cs @@ -84,10 +84,7 @@ internal static InternalRealtimeResponseTextContentPart DeserializeInternalRealt internalTextValue = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeResponseTextContentPart(kind, additionalBinaryDataProperties, @type, internalTextValue); } diff --git a/src/Generated/Models/InternalRealtimeServerEventConversationCreated.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventConversationCreated.Serialization.cs index 1703b7bb4..b58973e1e 100644 --- a/src/Generated/Models/InternalRealtimeServerEventConversationCreated.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventConversationCreated.Serialization.cs @@ -59,7 +59,7 @@ internal static InternalRealtimeServerEventConversationCreated DeserializeIntern return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRealtimeServerEventConversationCreatedConversation conversation = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static InternalRealtimeServerEventConversationCreated DeserializeIntern conversation = InternalRealtimeServerEventConversationCreatedConversation.DeserializeInternalRealtimeServerEventConversationCreatedConversation(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventConversationCreated(eventId, kind, additionalBinaryDataProperties, conversation); } diff --git a/src/Generated/Models/InternalRealtimeServerEventConversationCreated.cs b/src/Generated/Models/InternalRealtimeServerEventConversationCreated.cs index 7ab1726b1..f8af7f093 100644 --- a/src/Generated/Models/InternalRealtimeServerEventConversationCreated.cs +++ b/src/Generated/Models/InternalRealtimeServerEventConversationCreated.cs @@ -9,12 +9,12 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventConversationCreated : ConversationUpdate { - internal InternalRealtimeServerEventConversationCreated(string eventId, InternalRealtimeServerEventConversationCreatedConversation conversation) : base(eventId, RealtimeConversation.ConversationUpdateKind.ConversationCreated) + internal InternalRealtimeServerEventConversationCreated(string eventId, InternalRealtimeServerEventConversationCreatedConversation conversation) : base(eventId, ConversationUpdateKind.ConversationCreated) { Conversation = conversation; } - internal InternalRealtimeServerEventConversationCreated(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeServerEventConversationCreatedConversation conversation) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventConversationCreated(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, InternalRealtimeServerEventConversationCreatedConversation conversation) : base(eventId, kind, additionalBinaryDataProperties) { Conversation = conversation; } diff --git a/src/Generated/Models/InternalRealtimeServerEventConversationCreatedConversation.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventConversationCreatedConversation.Serialization.cs index 8ece57ae1..87b84af7b 100644 --- a/src/Generated/Models/InternalRealtimeServerEventConversationCreatedConversation.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventConversationCreatedConversation.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalRealtimeServerEventConversationCreatedConversation Deser @object = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventConversationCreatedConversation(id, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError.Serialization.cs index be0d12086..c60f95601 100644 --- a/src/Generated/Models/InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError.Serialization.cs @@ -47,7 +47,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("param"u8); writer.WriteStringValue(Param); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -114,10 +114,7 @@ internal static InternalRealtimeServerEventConversationItemInputAudioTranscripti @param = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError(@type, code, message, @param, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRealtimeServerEventErrorError.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventErrorError.Serialization.cs index 6204d19b9..60f7f5341 100644 --- a/src/Generated/Models/InternalRealtimeServerEventErrorError.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventErrorError.Serialization.cs @@ -38,15 +38,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Code) && _additionalBinaryDataProperties?.ContainsKey("code") != true) { - if (Code != null) - { - writer.WritePropertyName("code"u8); - writer.WriteStringValue(Code); - } - else - { - writer.WriteNull("code"u8); - } + writer.WritePropertyName("code"u8); + writer.WriteStringValue(Code); } if (_additionalBinaryDataProperties?.ContainsKey("message") != true) { @@ -55,29 +48,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Param) && _additionalBinaryDataProperties?.ContainsKey("param") != true) { - if (Param != null) - { - writer.WritePropertyName("param"u8); - writer.WriteStringValue(Param); - } - else - { - writer.WriteNull("param"u8); - } + writer.WritePropertyName("param"u8); + writer.WriteStringValue(Param); } if (Optional.IsDefined(EventId) && _additionalBinaryDataProperties?.ContainsKey("event_id") != true) { - if (EventId != null) - { - writer.WritePropertyName("event_id"u8); - writer.WriteStringValue(EventId); - } - else - { - writer.WriteNull("eventId"u8); - } + writer.WritePropertyName("event_id"u8); + writer.WriteStringValue(EventId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -165,10 +144,7 @@ internal static InternalRealtimeServerEventErrorError DeserializeInternalRealtim eventId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventErrorError( @type, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.Serialization.cs index 1628ee0f0..0ace35b82 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.Serialization.cs @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseAudioDelta DeserializeInterna return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseAudioDelta DeserializeInterna delta = BinaryData.FromBytes(prop.Value.GetBytesFromBase64("D")); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseAudioDelta( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.cs b/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.cs index 0008ec7db..da38f26b6 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseAudioDelta.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseAudioDelta : ConversationUpdate { - internal InternalRealtimeServerEventResponseAudioDelta(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, BinaryData delta) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingPartAudioDelta) + internal InternalRealtimeServerEventResponseAudioDelta(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, BinaryData delta) : base(eventId, ConversationUpdateKind.ItemStreamingPartAudioDelta) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseAudioDelta(string eventId, string re Delta = delta; } - internal InternalRealtimeServerEventResponseAudioDelta(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, BinaryData delta) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseAudioDelta(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, BinaryData delta) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.Serialization.cs index 19f21c807..283fb7c21 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.Serialization.cs @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseAudioTranscriptDelta Deserial return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseAudioTranscriptDelta Deserial delta = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseAudioTranscriptDelta( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs b/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs index e85f7e786..b8291542b 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseAudioTranscriptDelta.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseAudioTranscriptDelta : ConversationUpdate { - internal InternalRealtimeServerEventResponseAudioTranscriptDelta(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingPartAudioTranscriptionDelta) + internal InternalRealtimeServerEventResponseAudioTranscriptDelta(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, ConversationUpdateKind.ItemStreamingPartAudioTranscriptionDelta) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseAudioTranscriptDelta(string eventId, Delta = delta; } - internal InternalRealtimeServerEventResponseAudioTranscriptDelta(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseAudioTranscriptDelta(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.Serialization.cs index 8c138a43c..25d191b59 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.Serialization.cs @@ -55,7 +55,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("part") != true) { writer.WritePropertyName("part"u8); - writer.WriteObjectValue(_internalContentPart, options); + writer.WriteObjectValue(_internalContentPart, options); } } @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseContentPartAdded DeserializeI return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseContentPartAdded DeserializeI internalContentPart = ConversationContentPart.DeserializeConversationContentPart(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseContentPartAdded( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.cs b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.cs index 724642f3a..8dabfe0c1 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartAdded.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseContentPartAdded : ConversationUpdate { - internal InternalRealtimeServerEventResponseContentPartAdded(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemContentPartStarted) + internal InternalRealtimeServerEventResponseContentPartAdded(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, ConversationUpdateKind.ItemContentPartStarted) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseContentPartAdded(string eventId, str _internalContentPart = internalContentPart; } - internal InternalRealtimeServerEventResponseContentPartAdded(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseContentPartAdded(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.Serialization.cs index 692b849de..ee6d9d37c 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.Serialization.cs @@ -55,7 +55,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("part") != true) { writer.WritePropertyName("part"u8); - writer.WriteObjectValue(_internalContentPart, options); + writer.WriteObjectValue(_internalContentPart, options); } } @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseContentPartDone DeserializeIn return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseContentPartDone DeserializeIn internalContentPart = ConversationContentPart.DeserializeConversationContentPart(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseContentPartDone( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.cs b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.cs index d54ce3321..427c1edbf 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseContentPartDone.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseContentPartDone : ConversationUpdate { - internal InternalRealtimeServerEventResponseContentPartDone(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemContentPartFinished) + internal InternalRealtimeServerEventResponseContentPartDone(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, ConversationUpdateKind.ItemContentPartFinished) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseContentPartDone(string eventId, stri _internalContentPart = internalContentPart; } - internal InternalRealtimeServerEventResponseContentPartDone(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseContentPartDone(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, ConversationContentPart internalContentPart) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.Serialization.cs index 987eff1d5..3b5c63a2d 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.Serialization.cs @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseFunctionCallArgumentsDelta De return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseFunctionCallArgumentsDelta De delta = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseFunctionCallArgumentsDelta( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs index 8e3b5317c..f6db1190b 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseFunctionCallArgumentsDelta : ConversationUpdate { - internal InternalRealtimeServerEventResponseFunctionCallArgumentsDelta(string eventId, string responseId, string itemId, int outputIndex, string callId, string delta) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingFunctionCallArgumentsDelta) + internal InternalRealtimeServerEventResponseFunctionCallArgumentsDelta(string eventId, string responseId, string itemId, int outputIndex, string callId, string delta) : base(eventId, ConversationUpdateKind.ItemStreamingFunctionCallArgumentsDelta) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseFunctionCallArgumentsDelta(string ev Delta = delta; } - internal InternalRealtimeServerEventResponseFunctionCallArgumentsDelta(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, string callId, string delta) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseFunctionCallArgumentsDelta(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, string callId, string delta) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.Serialization.cs index 1e772c69c..32fbf675b 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.Serialization.cs @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseFunctionCallArgumentsDone Des return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseFunctionCallArgumentsDone Des arguments = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseFunctionCallArgumentsDone( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs index 4570d31ab..89697cf0b 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseFunctionCallArgumentsDone.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseFunctionCallArgumentsDone : ConversationUpdate { - internal InternalRealtimeServerEventResponseFunctionCallArgumentsDone(string eventId, string responseId, string itemId, int outputIndex, string callId, string arguments) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingFunctionCallArgumentsFinished) + internal InternalRealtimeServerEventResponseFunctionCallArgumentsDone(string eventId, string responseId, string itemId, int outputIndex, string callId, string arguments) : base(eventId, ConversationUpdateKind.ItemStreamingFunctionCallArgumentsFinished) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseFunctionCallArgumentsDone(string eve Arguments = arguments; } - internal InternalRealtimeServerEventResponseFunctionCallArgumentsDone(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, string callId, string arguments) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseFunctionCallArgumentsDone(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, string callId, string arguments) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.Serialization.cs b/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.Serialization.cs index 663b7a5e9..678735b63 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.Serialization.cs @@ -79,7 +79,7 @@ internal static InternalRealtimeServerEventResponseTextDelta DeserializeInternal return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string responseId = default; string itemId = default; @@ -123,10 +123,7 @@ internal static InternalRealtimeServerEventResponseTextDelta DeserializeInternal delta = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerEventResponseTextDelta( eventId, diff --git a/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.cs b/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.cs index 533d2ac3c..b07162a8e 100644 --- a/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.cs +++ b/src/Generated/Models/InternalRealtimeServerEventResponseTextDelta.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerEventResponseTextDelta : ConversationUpdate { - internal InternalRealtimeServerEventResponseTextDelta(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, RealtimeConversation.ConversationUpdateKind.ItemStreamingPartTextDelta) + internal InternalRealtimeServerEventResponseTextDelta(string eventId, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, ConversationUpdateKind.ItemStreamingPartTextDelta) { ResponseId = responseId; ItemId = itemId; @@ -18,7 +18,7 @@ internal InternalRealtimeServerEventResponseTextDelta(string eventId, string res Delta = delta; } - internal InternalRealtimeServerEventResponseTextDelta(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, kind, additionalBinaryDataProperties) + internal InternalRealtimeServerEventResponseTextDelta(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties, string responseId, string itemId, int outputIndex, int contentIndex, string delta) : base(eventId, kind, additionalBinaryDataProperties) { ResponseId = responseId; ItemId = itemId; diff --git a/src/Generated/Models/InternalRealtimeServerVadTurnDetection.Serialization.cs b/src/Generated/Models/InternalRealtimeServerVadTurnDetection.Serialization.cs index 6323d180b..6cf39a3f6 100644 --- a/src/Generated/Models/InternalRealtimeServerVadTurnDetection.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeServerVadTurnDetection.Serialization.cs @@ -36,12 +36,12 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (Optional.IsDefined(PrefixPaddingMs) && _additionalBinaryDataProperties?.ContainsKey("prefix_padding_ms") != true) { writer.WritePropertyName("prefix_padding_ms"u8); - this.SerializePrefixPaddingMs(writer, options); + SerializePrefixPaddingMs(writer, options); } if (Optional.IsDefined(SilenceDurationMs) && _additionalBinaryDataProperties?.ContainsKey("silence_duration_ms") != true) { writer.WritePropertyName("silence_duration_ms"u8); - this.SerializeSilenceDurationMs(writer, options); + SerializeSilenceDurationMs(writer, options); } if (Optional.IsDefined(CreateResponse) && _additionalBinaryDataProperties?.ContainsKey("create_response") != true) { @@ -69,7 +69,7 @@ internal static InternalRealtimeServerVadTurnDetection DeserializeInternalRealti { return null; } - RealtimeConversation.ConversationTurnDetectionKind kind = default; + ConversationTurnDetectionKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); float? threshold = default; TimeSpan? prefixPaddingMs = default; @@ -110,10 +110,7 @@ internal static InternalRealtimeServerVadTurnDetection DeserializeInternalRealti createResponse = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeServerVadTurnDetection( kind, diff --git a/src/Generated/Models/InternalRealtimeServerVadTurnDetection.cs b/src/Generated/Models/InternalRealtimeServerVadTurnDetection.cs index 6e89b9f0d..45c55b338 100644 --- a/src/Generated/Models/InternalRealtimeServerVadTurnDetection.cs +++ b/src/Generated/Models/InternalRealtimeServerVadTurnDetection.cs @@ -9,11 +9,11 @@ namespace OpenAI.RealtimeConversation { internal partial class InternalRealtimeServerVadTurnDetection : ConversationTurnDetectionOptions { - public InternalRealtimeServerVadTurnDetection() : base(RealtimeConversation.ConversationTurnDetectionKind.ServerVoiceActivityDetection) + public InternalRealtimeServerVadTurnDetection() : base(ConversationTurnDetectionKind.ServerVoiceActivityDetection) { } - internal InternalRealtimeServerVadTurnDetection(RealtimeConversation.ConversationTurnDetectionKind kind, IDictionary additionalBinaryDataProperties, float? threshold, TimeSpan? prefixPaddingMs, TimeSpan? silenceDurationMs, bool? createResponse) : base(kind, additionalBinaryDataProperties) + internal InternalRealtimeServerVadTurnDetection(ConversationTurnDetectionKind kind, IDictionary additionalBinaryDataProperties, float? threshold, TimeSpan? prefixPaddingMs, TimeSpan? silenceDurationMs, bool? createResponse) : base(kind, additionalBinaryDataProperties) { Threshold = threshold; PrefixPaddingMs = prefixPaddingMs; diff --git a/src/Generated/Models/InternalRealtimeToolChoiceFunctionObject.Serialization.cs b/src/Generated/Models/InternalRealtimeToolChoiceFunctionObject.Serialization.cs index ae7ba45e0..e507ae596 100644 --- a/src/Generated/Models/InternalRealtimeToolChoiceFunctionObject.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeToolChoiceFunctionObject.Serialization.cs @@ -73,10 +73,7 @@ internal static InternalRealtimeToolChoiceFunctionObject DeserializeInternalReal function = InternalRealtimeToolChoiceFunctionObjectFunction.DeserializeInternalRealtimeToolChoiceFunctionObjectFunction(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeToolChoiceFunctionObject(@type, additionalBinaryDataProperties, function); } diff --git a/src/Generated/Models/InternalRealtimeToolChoiceFunctionObjectFunction.Serialization.cs b/src/Generated/Models/InternalRealtimeToolChoiceFunctionObjectFunction.Serialization.cs index 14cea7729..f8cf9839d 100644 --- a/src/Generated/Models/InternalRealtimeToolChoiceFunctionObjectFunction.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeToolChoiceFunctionObjectFunction.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("name"u8); writer.WriteStringValue(Name); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalRealtimeToolChoiceFunctionObjectFunction DeserializeInte name = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRealtimeToolChoiceFunctionObjectFunction(name, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRealtimeToolChoiceObject.Serialization.cs b/src/Generated/Models/InternalRealtimeToolChoiceObject.Serialization.cs index a35cb1d2a..94eb793fb 100644 --- a/src/Generated/Models/InternalRealtimeToolChoiceObject.Serialization.cs +++ b/src/Generated/Models/InternalRealtimeToolChoiceObject.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalRequestMessageTextContent.Serialization.cs b/src/Generated/Models/InternalRequestMessageTextContent.Serialization.cs index dbe004b80..56f4a890b 100644 --- a/src/Generated/Models/InternalRequestMessageTextContent.Serialization.cs +++ b/src/Generated/Models/InternalRequestMessageTextContent.Serialization.cs @@ -71,10 +71,7 @@ internal static InternalRequestMessageTextContent DeserializeInternalRequestMess internalText = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRequestMessageTextContent(additionalBinaryDataProperties, @type, internalText); } diff --git a/src/Generated/Models/InternalRequiredFunctionToolCall.Serialization.cs b/src/Generated/Models/InternalRequiredFunctionToolCall.Serialization.cs index b0d1cbb0b..32b715c74 100644 --- a/src/Generated/Models/InternalRequiredFunctionToolCall.Serialization.cs +++ b/src/Generated/Models/InternalRequiredFunctionToolCall.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("function") != true) { writer.WritePropertyName("function"u8); - writer.WriteObjectValue(_internalFunction, options); + writer.WriteObjectValue(_internalFunction, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalRequiredFunctionToolCall DeserializeInternalRequiredFunc internalFunction = InternalRunToolCallObjectFunction.DeserializeInternalRunToolCallObjectFunction(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRequiredFunctionToolCall(id, @type, internalFunction, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalResponseFormatJsonObject.Serialization.cs b/src/Generated/Models/InternalResponseFormatJsonObject.Serialization.cs index 42443b789..81e5f3afa 100644 --- a/src/Generated/Models/InternalResponseFormatJsonObject.Serialization.cs +++ b/src/Generated/Models/InternalResponseFormatJsonObject.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalResponseFormatJsonObject DeserializeInternalResponseForm @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalResponseFormatJsonObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalResponseFormatJsonSchema.Serialization.cs b/src/Generated/Models/InternalResponseFormatJsonSchema.Serialization.cs index 67876ee47..153cfc475 100644 --- a/src/Generated/Models/InternalResponseFormatJsonSchema.Serialization.cs +++ b/src/Generated/Models/InternalResponseFormatJsonSchema.Serialization.cs @@ -73,10 +73,7 @@ internal static InternalResponseFormatJsonSchema DeserializeInternalResponseForm jsonSchema = InternalResponseFormatJsonSchemaJsonSchema.DeserializeInternalResponseFormatJsonSchemaJsonSchema(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalResponseFormatJsonSchema(@type, additionalBinaryDataProperties, jsonSchema); } diff --git a/src/Generated/Models/InternalResponseFormatJsonSchemaJsonSchema.Serialization.cs b/src/Generated/Models/InternalResponseFormatJsonSchemaJsonSchema.Serialization.cs index 39166704f..1da8001f5 100644 --- a/src/Generated/Models/InternalResponseFormatJsonSchemaJsonSchema.Serialization.cs +++ b/src/Generated/Models/InternalResponseFormatJsonSchemaJsonSchema.Serialization.cs @@ -43,15 +43,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Strict) && _additionalBinaryDataProperties?.ContainsKey("strict") != true) { - if (Strict != null) - { - writer.WritePropertyName("strict"u8); - writer.WriteBooleanValue(Strict.Value); - } - else - { - writer.WriteNull("strict"u8); - } + writer.WritePropertyName("strict"u8); + writer.WriteBooleanValue(Strict.Value); } if (Optional.IsDefined(Schema) && _additionalBinaryDataProperties?.ContainsKey("schema") != true) { @@ -65,7 +58,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -141,10 +134,7 @@ internal static InternalResponseFormatJsonSchemaJsonSchema DeserializeInternalRe schema = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalResponseFormatJsonSchemaJsonSchema(description, name, strict, schema, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalResponseFormatText.Serialization.cs b/src/Generated/Models/InternalResponseFormatText.Serialization.cs index 054bff834..1db285439 100644 --- a/src/Generated/Models/InternalResponseFormatText.Serialization.cs +++ b/src/Generated/Models/InternalResponseFormatText.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalResponseFormatText DeserializeInternalResponseFormatText @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalResponseFormatText(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalResponseMessageTextContent.Serialization.cs b/src/Generated/Models/InternalResponseMessageTextContent.Serialization.cs index 8272d8d6b..23e9bef99 100644 --- a/src/Generated/Models/InternalResponseMessageTextContent.Serialization.cs +++ b/src/Generated/Models/InternalResponseMessageTextContent.Serialization.cs @@ -33,7 +33,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("text") != true) { writer.WritePropertyName("text"u8); - writer.WriteObjectValue(_text, options); + writer.WriteObjectValue(_text, options); } } @@ -71,10 +71,7 @@ internal static InternalResponseMessageTextContent DeserializeInternalResponseMe text = InternalMessageContentTextObjectText.DeserializeInternalMessageContentTextObjectText(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalResponseMessageTextContent(additionalBinaryDataProperties, @type, text); } diff --git a/src/Generated/Models/InternalResponsesAssistantMessage.Serialization.cs b/src/Generated/Models/InternalResponsesAssistantMessage.Serialization.cs new file mode 100644 index 000000000..ec332ed45 --- /dev/null +++ b/src/Generated/Models/InternalResponsesAssistantMessage.Serialization.cs @@ -0,0 +1,168 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesAssistantMessage : IJsonModel + { + internal InternalResponsesAssistantMessage() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesAssistantMessage)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) + { + writer.WritePropertyName("content"u8); + writer.WriteStartArray(); + foreach (ResponseContentPart item in InternalContent) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + InternalResponsesAssistantMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesAssistantMessage)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesAssistantMessage)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesAssistantMessage(document.RootElement, options); + } + + internal static InternalResponsesAssistantMessage DeserializeInternalResponsesAssistantMessage(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + MessageStatus? status = default; + MessageRole role = default; + IList internalContent = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToMessageStatus(); + continue; + } + if (prop.NameEquals("role"u8)) + { + role = new MessageRole(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("content"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseContentPart.DeserializeResponseContentPart(item, options)); + } + internalContent = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesAssistantMessage( + @type, + id, + additionalBinaryDataProperties, + status, + role, + internalContent); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesAssistantMessage)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesAssistantMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesAssistantMessage)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesAssistantMessage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesAssistantMessage)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesAssistantMessage internalResponsesAssistantMessage) + { + if (internalResponsesAssistantMessage == null) + { + return null; + } + return BinaryContent.Create(internalResponsesAssistantMessage, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesAssistantMessage(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesAssistantMessage(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesAssistantMessage.cs b/src/Generated/Models/InternalResponsesAssistantMessage.cs new file mode 100644 index 000000000..cbf583dc4 --- /dev/null +++ b/src/Generated/Models/InternalResponsesAssistantMessage.cs @@ -0,0 +1,19 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesAssistantMessage : MessageResponseItem + { + internal InternalResponsesAssistantMessage(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, MessageStatus? status, MessageRole role, IList internalContent) : base(@type, id, additionalBinaryDataProperties, status, role) + { + // Plugin customization: ensure initialization of collection + InternalContent = internalContent ?? new ChangeTrackingList(); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallClickAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallClickAction.Serialization.cs new file mode 100644 index 000000000..794530bb1 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallClickAction.Serialization.cs @@ -0,0 +1,152 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallClickAction : IJsonModel + { + internal InternalResponsesComputerCallClickAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallClickAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("button") != true) + { + writer.WritePropertyName("button"u8); + writer.WriteStringValue(Button.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("x") != true) + { + writer.WritePropertyName("x"u8); + writer.WriteNumberValue(X); + } + if (_additionalBinaryDataProperties?.ContainsKey("y") != true) + { + writer.WritePropertyName("y"u8); + writer.WriteNumberValue(Y); + } + } + + InternalResponsesComputerCallClickAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallClickAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallClickAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallClickAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallClickAction DeserializeInternalResponsesComputerCallClickAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + ComputerCallActionMouseButton button = default; + int x = default; + int y = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("button"u8)) + { + button = prop.Value.GetString().ToComputerCallActionMouseButton(); + continue; + } + if (prop.NameEquals("x"u8)) + { + x = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("y"u8)) + { + y = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallClickAction(kind, additionalBinaryDataProperties, button, x, y); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallClickAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallClickAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallClickAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallClickAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallClickAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallClickAction internalResponsesComputerCallClickAction) + { + if (internalResponsesComputerCallClickAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallClickAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallClickAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallClickAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallClickAction.cs b/src/Generated/Models/InternalResponsesComputerCallClickAction.cs new file mode 100644 index 000000000..4c6d47fc3 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallClickAction.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallClickAction : ComputerCallAction + { + public InternalResponsesComputerCallClickAction(ComputerCallActionMouseButton button, int x, int y) : base(ComputerCallActionKind.Click) + { + Button = button; + X = x; + Y = y; + } + + internal InternalResponsesComputerCallClickAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, ComputerCallActionMouseButton button, int x, int y) : base(kind, additionalBinaryDataProperties) + { + Button = button; + X = x; + Y = y; + } + + public ComputerCallActionMouseButton Button { get; set; } + + public int X { get; set; } + + public int Y { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallDoubleClickAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallDoubleClickAction.Serialization.cs new file mode 100644 index 000000000..bed61ef4d --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallDoubleClickAction.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallDoubleClickAction : IJsonModel + { + internal InternalResponsesComputerCallDoubleClickAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDoubleClickAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("x") != true) + { + writer.WritePropertyName("x"u8); + writer.WriteNumberValue(X); + } + if (_additionalBinaryDataProperties?.ContainsKey("y") != true) + { + writer.WritePropertyName("y"u8); + writer.WriteNumberValue(Y); + } + } + + InternalResponsesComputerCallDoubleClickAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallDoubleClickAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDoubleClickAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallDoubleClickAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallDoubleClickAction DeserializeInternalResponsesComputerCallDoubleClickAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + int x = default; + int y = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("x"u8)) + { + x = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("y"u8)) + { + y = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallDoubleClickAction(kind, additionalBinaryDataProperties, x, y); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDoubleClickAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallDoubleClickAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallDoubleClickAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallDoubleClickAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDoubleClickAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallDoubleClickAction internalResponsesComputerCallDoubleClickAction) + { + if (internalResponsesComputerCallDoubleClickAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallDoubleClickAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallDoubleClickAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallDoubleClickAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallDoubleClickAction.cs b/src/Generated/Models/InternalResponsesComputerCallDoubleClickAction.cs new file mode 100644 index 000000000..9b89f8dff --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallDoubleClickAction.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallDoubleClickAction : ComputerCallAction + { + public InternalResponsesComputerCallDoubleClickAction(int x, int y) : base(ComputerCallActionKind.DoubleClick) + { + X = x; + Y = y; + } + + internal InternalResponsesComputerCallDoubleClickAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, int x, int y) : base(kind, additionalBinaryDataProperties) + { + X = x; + Y = y; + } + + public int X { get; set; } + + public int Y { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallDragAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallDragAction.Serialization.cs new file mode 100644 index 000000000..7ed1dfa05 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallDragAction.Serialization.cs @@ -0,0 +1,140 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallDragAction : IJsonModel + { + internal InternalResponsesComputerCallDragAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("path") != true) + { + writer.WritePropertyName("path"u8); + writer.WriteStartArray(); + foreach (InternalResponsesComputerCallDragActionPath item in Path) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + InternalResponsesComputerCallDragAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallDragAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallDragAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallDragAction DeserializeInternalResponsesComputerCallDragAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IList path = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("path"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(InternalResponsesComputerCallDragActionPath.DeserializeInternalResponsesComputerCallDragActionPath(item, options)); + } + path = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallDragAction(kind, additionalBinaryDataProperties, path); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallDragAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallDragAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallDragAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallDragAction internalResponsesComputerCallDragAction) + { + if (internalResponsesComputerCallDragAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallDragAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallDragAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallDragAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallDragAction.cs b/src/Generated/Models/InternalResponsesComputerCallDragAction.cs new file mode 100644 index 000000000..d66bcae1f --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallDragAction.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallDragAction : ComputerCallAction + { + public InternalResponsesComputerCallDragAction(IEnumerable path) : base(ComputerCallActionKind.Drag) + { + Argument.AssertNotNull(path, nameof(path)); + + Path = path.ToList(); + } + + internal InternalResponsesComputerCallDragAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, IList path) : base(kind, additionalBinaryDataProperties) + { + Path = path; + } + + public IList Path { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallDragActionPath.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallDragActionPath.Serialization.cs new file mode 100644 index 000000000..594d9d6de --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallDragActionPath.Serialization.cs @@ -0,0 +1,153 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallDragActionPath : IJsonModel + { + internal InternalResponsesComputerCallDragActionPath() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragActionPath)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("x") != true) + { + writer.WritePropertyName("x"u8); + writer.WriteNumberValue(X); + } + if (_additionalBinaryDataProperties?.ContainsKey("y") != true) + { + writer.WritePropertyName("y"u8); + writer.WriteNumberValue(Y); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalResponsesComputerCallDragActionPath IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalResponsesComputerCallDragActionPath JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragActionPath)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallDragActionPath(document.RootElement, options); + } + + internal static InternalResponsesComputerCallDragActionPath DeserializeInternalResponsesComputerCallDragActionPath(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int x = default; + int y = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("x"u8)) + { + x = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("y"u8)) + { + y = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallDragActionPath(x, y, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragActionPath)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallDragActionPath IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalResponsesComputerCallDragActionPath PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallDragActionPath(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallDragActionPath)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallDragActionPath internalResponsesComputerCallDragActionPath) + { + if (internalResponsesComputerCallDragActionPath == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallDragActionPath, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallDragActionPath(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallDragActionPath(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallDragActionPath.cs b/src/Generated/Models/InternalResponsesComputerCallDragActionPath.cs new file mode 100644 index 000000000..d276ac72f --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallDragActionPath.cs @@ -0,0 +1,37 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallDragActionPath + { + private protected IDictionary _additionalBinaryDataProperties; + + public InternalResponsesComputerCallDragActionPath(int x, int y) + { + X = x; + Y = y; + } + + internal InternalResponsesComputerCallDragActionPath(int x, int y, IDictionary additionalBinaryDataProperties) + { + X = x; + Y = y; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public int X { get; set; } + + public int Y { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallKeyPressAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallKeyPressAction.Serialization.cs new file mode 100644 index 000000000..0da95d3aa --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallKeyPressAction.Serialization.cs @@ -0,0 +1,152 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallKeyPressAction : IJsonModel + { + internal InternalResponsesComputerCallKeyPressAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallKeyPressAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("keys") != true) + { + writer.WritePropertyName("keys"u8); + writer.WriteStartArray(); + foreach (string item in Keys) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + } + + InternalResponsesComputerCallKeyPressAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallKeyPressAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallKeyPressAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallKeyPressAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallKeyPressAction DeserializeInternalResponsesComputerCallKeyPressAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IList keys = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("keys"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(item.GetString()); + } + } + keys = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallKeyPressAction(kind, additionalBinaryDataProperties, keys); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallKeyPressAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallKeyPressAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallKeyPressAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallKeyPressAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallKeyPressAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallKeyPressAction internalResponsesComputerCallKeyPressAction) + { + if (internalResponsesComputerCallKeyPressAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallKeyPressAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallKeyPressAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallKeyPressAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallKeyPressAction.cs b/src/Generated/Models/InternalResponsesComputerCallKeyPressAction.cs new file mode 100644 index 000000000..5738f4c65 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallKeyPressAction.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallKeyPressAction : ComputerCallAction + { + public InternalResponsesComputerCallKeyPressAction(IEnumerable keys) : base(ComputerCallActionKind.KeyPress) + { + Argument.AssertNotNull(keys, nameof(keys)); + + Keys = keys.ToList(); + } + + internal InternalResponsesComputerCallKeyPressAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, IList keys) : base(kind, additionalBinaryDataProperties) + { + Keys = keys; + } + + public IList Keys { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallMoveAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallMoveAction.Serialization.cs new file mode 100644 index 000000000..9c676e7aa --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallMoveAction.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallMoveAction : IJsonModel + { + internal InternalResponsesComputerCallMoveAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallMoveAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("x") != true) + { + writer.WritePropertyName("x"u8); + writer.WriteNumberValue(X); + } + if (_additionalBinaryDataProperties?.ContainsKey("y") != true) + { + writer.WritePropertyName("y"u8); + writer.WriteNumberValue(Y); + } + } + + InternalResponsesComputerCallMoveAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallMoveAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallMoveAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallMoveAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallMoveAction DeserializeInternalResponsesComputerCallMoveAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + int x = default; + int y = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("x"u8)) + { + x = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("y"u8)) + { + y = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallMoveAction(kind, additionalBinaryDataProperties, x, y); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallMoveAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallMoveAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallMoveAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallMoveAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallMoveAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallMoveAction internalResponsesComputerCallMoveAction) + { + if (internalResponsesComputerCallMoveAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallMoveAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallMoveAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallMoveAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallMoveAction.cs b/src/Generated/Models/InternalResponsesComputerCallMoveAction.cs new file mode 100644 index 000000000..ca63f8fe0 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallMoveAction.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallMoveAction : ComputerCallAction + { + public InternalResponsesComputerCallMoveAction(int x, int y) : base(ComputerCallActionKind.Move) + { + X = x; + Y = y; + } + + internal InternalResponsesComputerCallMoveAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, int x, int y) : base(kind, additionalBinaryDataProperties) + { + X = x; + Y = y; + } + + public int X { get; set; } + + public int Y { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallOutputItemOutputType.cs b/src/Generated/Models/InternalResponsesComputerCallOutputItemOutputType.cs new file mode 100644 index 000000000..3ec677dc4 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallOutputItemOutputType.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesComputerCallOutputItemOutputType : IEquatable + { + private readonly string _value; + private const string ComputerScreenshotValue = "computer_screenshot"; + + public InternalResponsesComputerCallOutputItemOutputType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesComputerCallOutputItemOutputType ComputerScreenshot { get; } = new InternalResponsesComputerCallOutputItemOutputType(ComputerScreenshotValue); + + public static bool operator ==(InternalResponsesComputerCallOutputItemOutputType left, InternalResponsesComputerCallOutputItemOutputType right) => left.Equals(right); + + public static bool operator !=(InternalResponsesComputerCallOutputItemOutputType left, InternalResponsesComputerCallOutputItemOutputType right) => !left.Equals(right); + + public static implicit operator InternalResponsesComputerCallOutputItemOutputType(string value) => new InternalResponsesComputerCallOutputItemOutputType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesComputerCallOutputItemOutputType other && Equals(other); + + public bool Equals(InternalResponsesComputerCallOutputItemOutputType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallOutputItemScreenshot.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallOutputItemScreenshot.Serialization.cs new file mode 100644 index 000000000..ffa1d7ecb --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallOutputItemScreenshot.Serialization.cs @@ -0,0 +1,137 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallOutputItemScreenshot : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallOutputItemScreenshot)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(ImageUrl) && _additionalBinaryDataProperties?.ContainsKey("image_url") != true) + { + writer.WritePropertyName("image_url"u8); + writer.WriteStringValue(ImageUrl); + } + if (Optional.IsDefined(FileId) && _additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + } + + InternalResponsesComputerCallOutputItemScreenshot IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallOutputItemScreenshot)JsonModelCreateCore(ref reader, options); + + protected override ComputerOutput JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallOutputItemScreenshot)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallOutputItemScreenshot(document.RootElement, options); + } + + internal static InternalResponsesComputerCallOutputItemScreenshot DeserializeInternalResponsesComputerCallOutputItemScreenshot(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesComputerCallOutputItemOutputType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string imageUrl = default; + string fileId = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesComputerCallOutputItemOutputType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("image_url"u8)) + { + imageUrl = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallOutputItemScreenshot(@type, additionalBinaryDataProperties, imageUrl, fileId); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallOutputItemScreenshot)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallOutputItemScreenshot IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallOutputItemScreenshot)PersistableModelCreateCore(data, options); + + protected override ComputerOutput PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallOutputItemScreenshot(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallOutputItemScreenshot)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallOutputItemScreenshot internalResponsesComputerCallOutputItemScreenshot) + { + if (internalResponsesComputerCallOutputItemScreenshot == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallOutputItemScreenshot, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallOutputItemScreenshot(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallOutputItemScreenshot(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallOutputItemScreenshot.cs b/src/Generated/Models/InternalResponsesComputerCallOutputItemScreenshot.cs new file mode 100644 index 000000000..2deb96c16 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallOutputItemScreenshot.cs @@ -0,0 +1,26 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallOutputItemScreenshot : ComputerOutput + { + public InternalResponsesComputerCallOutputItemScreenshot() : base(InternalResponsesComputerCallOutputItemOutputType.ComputerScreenshot) + { + } + + internal InternalResponsesComputerCallOutputItemScreenshot(InternalResponsesComputerCallOutputItemOutputType @type, IDictionary additionalBinaryDataProperties, string imageUrl, string fileId) : base(@type, additionalBinaryDataProperties) + { + ImageUrl = imageUrl; + FileId = fileId; + } + + public string ImageUrl { get; set; } + + public string FileId { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallScreenshotAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallScreenshotAction.Serialization.cs new file mode 100644 index 000000000..c59269115 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallScreenshotAction.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallScreenshotAction : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScreenshotAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesComputerCallScreenshotAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallScreenshotAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScreenshotAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallScreenshotAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallScreenshotAction DeserializeInternalResponsesComputerCallScreenshotAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallScreenshotAction(kind, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScreenshotAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallScreenshotAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallScreenshotAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallScreenshotAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScreenshotAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallScreenshotAction internalResponsesComputerCallScreenshotAction) + { + if (internalResponsesComputerCallScreenshotAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallScreenshotAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallScreenshotAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallScreenshotAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallScreenshotAction.cs b/src/Generated/Models/InternalResponsesComputerCallScreenshotAction.cs new file mode 100644 index 000000000..926203c3a --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallScreenshotAction.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallScreenshotAction : ComputerCallAction + { + public InternalResponsesComputerCallScreenshotAction() : base(ComputerCallActionKind.Screenshot) + { + } + + internal InternalResponsesComputerCallScreenshotAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallScrollAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallScrollAction.Serialization.cs new file mode 100644 index 000000000..9214de0a2 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallScrollAction.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallScrollAction : IJsonModel + { + internal InternalResponsesComputerCallScrollAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScrollAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("x") != true) + { + writer.WritePropertyName("x"u8); + writer.WriteNumberValue(X); + } + if (_additionalBinaryDataProperties?.ContainsKey("y") != true) + { + writer.WritePropertyName("y"u8); + writer.WriteNumberValue(Y); + } + if (_additionalBinaryDataProperties?.ContainsKey("scroll_x") != true) + { + writer.WritePropertyName("scroll_x"u8); + writer.WriteNumberValue(ScrollX); + } + if (_additionalBinaryDataProperties?.ContainsKey("scroll_y") != true) + { + writer.WritePropertyName("scroll_y"u8); + writer.WriteNumberValue(ScrollY); + } + } + + InternalResponsesComputerCallScrollAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallScrollAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScrollAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallScrollAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallScrollAction DeserializeInternalResponsesComputerCallScrollAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + int x = default; + int y = default; + int scrollX = default; + int scrollY = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("x"u8)) + { + x = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("y"u8)) + { + y = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("scroll_x"u8)) + { + scrollX = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("scroll_y"u8)) + { + scrollY = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallScrollAction( + kind, + additionalBinaryDataProperties, + x, + y, + scrollX, + scrollY); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScrollAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallScrollAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallScrollAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallScrollAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallScrollAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallScrollAction internalResponsesComputerCallScrollAction) + { + if (internalResponsesComputerCallScrollAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallScrollAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallScrollAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallScrollAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallScrollAction.cs b/src/Generated/Models/InternalResponsesComputerCallScrollAction.cs new file mode 100644 index 000000000..3c0022158 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallScrollAction.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallScrollAction : ComputerCallAction + { + public InternalResponsesComputerCallScrollAction(int x, int y, int scrollX, int scrollY) : base(ComputerCallActionKind.Scroll) + { + X = x; + Y = y; + ScrollX = scrollX; + ScrollY = scrollY; + } + + internal InternalResponsesComputerCallScrollAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, int x, int y, int scrollX, int scrollY) : base(kind, additionalBinaryDataProperties) + { + X = x; + Y = y; + ScrollX = scrollX; + ScrollY = scrollY; + } + + public int X { get; set; } + + public int Y { get; set; } + + public int ScrollX { get; set; } + + public int ScrollY { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallTypeAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallTypeAction.Serialization.cs new file mode 100644 index 000000000..4dae924a8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallTypeAction.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallTypeAction : IJsonModel + { + internal InternalResponsesComputerCallTypeAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallTypeAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + } + + InternalResponsesComputerCallTypeAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallTypeAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallTypeAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallTypeAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallTypeAction DeserializeInternalResponsesComputerCallTypeAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string text = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + if (prop.NameEquals("text"u8)) + { + text = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallTypeAction(kind, additionalBinaryDataProperties, text); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallTypeAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallTypeAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallTypeAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallTypeAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallTypeAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallTypeAction internalResponsesComputerCallTypeAction) + { + if (internalResponsesComputerCallTypeAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallTypeAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallTypeAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallTypeAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallTypeAction.cs b/src/Generated/Models/InternalResponsesComputerCallTypeAction.cs new file mode 100644 index 000000000..8912d97b1 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallTypeAction.cs @@ -0,0 +1,27 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallTypeAction : ComputerCallAction + { + public InternalResponsesComputerCallTypeAction(string text) : base(ComputerCallActionKind.Type) + { + Argument.AssertNotNull(text, nameof(text)); + + Text = text; + } + + internal InternalResponsesComputerCallTypeAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties, string text) : base(kind, additionalBinaryDataProperties) + { + Text = text; + } + + public string Text { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallWaitAction.Serialization.cs b/src/Generated/Models/InternalResponsesComputerCallWaitAction.Serialization.cs new file mode 100644 index 000000000..8ecdf0425 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallWaitAction.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallWaitAction : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallWaitAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesComputerCallWaitAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerCallWaitAction)JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerCallWaitAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerCallWaitAction(document.RootElement, options); + } + + internal static InternalResponsesComputerCallWaitAction DeserializeInternalResponsesComputerCallWaitAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerCallWaitAction(kind, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallWaitAction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerCallWaitAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerCallWaitAction)PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerCallWaitAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerCallWaitAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerCallWaitAction internalResponsesComputerCallWaitAction) + { + if (internalResponsesComputerCallWaitAction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerCallWaitAction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerCallWaitAction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerCallWaitAction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerCallWaitAction.cs b/src/Generated/Models/InternalResponsesComputerCallWaitAction.cs new file mode 100644 index 000000000..59e65f0f7 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerCallWaitAction.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerCallWaitAction : ComputerCallAction + { + public InternalResponsesComputerCallWaitAction() : base(ComputerCallActionKind.Wait) + { + } + + internal InternalResponsesComputerCallWaitAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerTool.Serialization.cs b/src/Generated/Models/InternalResponsesComputerTool.Serialization.cs new file mode 100644 index 000000000..00df27015 --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerTool.Serialization.cs @@ -0,0 +1,152 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerTool : IJsonModel + { + internal InternalResponsesComputerTool() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerTool)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("display_width") != true) + { + writer.WritePropertyName("display_width"u8); + writer.WriteNumberValue(DisplayWidth); + } + if (_additionalBinaryDataProperties?.ContainsKey("display_height") != true) + { + writer.WritePropertyName("display_height"u8); + writer.WriteNumberValue(DisplayHeight); + } + if (_additionalBinaryDataProperties?.ContainsKey("environment") != true) + { + writer.WritePropertyName("environment"u8); + writer.WriteStringValue(Environment.ToString()); + } + } + + InternalResponsesComputerTool IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesComputerTool)JsonModelCreateCore(ref reader, options); + + protected override ResponseTool JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesComputerTool)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesComputerTool(document.RootElement, options); + } + + internal static InternalResponsesComputerTool DeserializeInternalResponsesComputerTool(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + float displayWidth = default; + float displayHeight = default; + ComputerToolEnvironment environment = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("display_width"u8)) + { + displayWidth = prop.Value.GetSingle(); + continue; + } + if (prop.NameEquals("display_height"u8)) + { + displayHeight = prop.Value.GetSingle(); + continue; + } + if (prop.NameEquals("environment"u8)) + { + environment = new ComputerToolEnvironment(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesComputerTool(@type, additionalBinaryDataProperties, displayWidth, displayHeight, environment); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerTool)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesComputerTool IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesComputerTool)PersistableModelCreateCore(data, options); + + protected override ResponseTool PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesComputerTool(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesComputerTool)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesComputerTool internalResponsesComputerTool) + { + if (internalResponsesComputerTool == null) + { + return null; + } + return BinaryContent.Create(internalResponsesComputerTool, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesComputerTool(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesComputerTool(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesComputerTool.cs b/src/Generated/Models/InternalResponsesComputerTool.cs new file mode 100644 index 000000000..fc1390bbb --- /dev/null +++ b/src/Generated/Models/InternalResponsesComputerTool.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesComputerTool : ResponseTool + { + public InternalResponsesComputerTool(float displayWidth, float displayHeight, ComputerToolEnvironment environment) : base(InternalResponsesToolType.Computer) + { + DisplayWidth = displayWidth; + DisplayHeight = displayHeight; + Environment = environment; + } + + internal InternalResponsesComputerTool(InternalResponsesToolType @type, IDictionary additionalBinaryDataProperties, float displayWidth, float displayHeight, ComputerToolEnvironment environment) : base(@type, additionalBinaryDataProperties) + { + DisplayWidth = displayWidth; + DisplayHeight = displayHeight; + Environment = environment; + } + + public float DisplayWidth { get; set; } + + public float DisplayHeight { get; set; } + + public ComputerToolEnvironment Environment { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesDeveloperMessage.Serialization.cs b/src/Generated/Models/InternalResponsesDeveloperMessage.Serialization.cs new file mode 100644 index 000000000..f7b01d354 --- /dev/null +++ b/src/Generated/Models/InternalResponsesDeveloperMessage.Serialization.cs @@ -0,0 +1,168 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesDeveloperMessage : IJsonModel + { + internal InternalResponsesDeveloperMessage() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesDeveloperMessage)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) + { + writer.WritePropertyName("content"u8); + writer.WriteStartArray(); + foreach (ResponseContentPart item in InternalContent) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + InternalResponsesDeveloperMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesDeveloperMessage)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesDeveloperMessage)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesDeveloperMessage(document.RootElement, options); + } + + internal static InternalResponsesDeveloperMessage DeserializeInternalResponsesDeveloperMessage(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + MessageStatus? status = default; + MessageRole role = default; + IList internalContent = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToMessageStatus(); + continue; + } + if (prop.NameEquals("role"u8)) + { + role = new MessageRole(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("content"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseContentPart.DeserializeResponseContentPart(item, options)); + } + internalContent = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesDeveloperMessage( + @type, + id, + additionalBinaryDataProperties, + status, + role, + internalContent); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesDeveloperMessage)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesDeveloperMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesDeveloperMessage)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesDeveloperMessage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesDeveloperMessage)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesDeveloperMessage internalResponsesDeveloperMessage) + { + if (internalResponsesDeveloperMessage == null) + { + return null; + } + return BinaryContent.Create(internalResponsesDeveloperMessage, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesDeveloperMessage(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesDeveloperMessage(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesDeveloperMessage.cs b/src/Generated/Models/InternalResponsesDeveloperMessage.cs new file mode 100644 index 000000000..cacf90f51 --- /dev/null +++ b/src/Generated/Models/InternalResponsesDeveloperMessage.cs @@ -0,0 +1,19 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesDeveloperMessage : MessageResponseItem + { + internal InternalResponsesDeveloperMessage(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, MessageStatus? status, MessageRole role, IList internalContent) : base(@type, id, additionalBinaryDataProperties, status, role) + { + // Plugin customization: ensure initialization of collection + InternalContent = internalContent ?? new ChangeTrackingList(); + } + } +} diff --git a/src/Generated/Models/InternalResponsesErrorResponse.Serialization.cs b/src/Generated/Models/InternalResponsesErrorResponse.Serialization.cs new file mode 100644 index 000000000..79a7545a8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesErrorResponse.Serialization.cs @@ -0,0 +1,142 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesErrorResponse : IJsonModel + { + internal InternalResponsesErrorResponse() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesErrorResponse)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("error") != true) + { + writer.WritePropertyName("error"u8); + writer.WriteObjectValue(Error, options); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalResponsesErrorResponse IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalResponsesErrorResponse JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesErrorResponse)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesErrorResponse(document.RootElement, options); + } + + internal static InternalResponsesErrorResponse DeserializeInternalResponsesErrorResponse(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseError error = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("error"u8)) + { + error = ResponseError.DeserializeResponseError(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesErrorResponse(error, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesErrorResponse)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesErrorResponse IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalResponsesErrorResponse PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesErrorResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesErrorResponse)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesErrorResponse internalResponsesErrorResponse) + { + if (internalResponsesErrorResponse == null) + { + return null; + } + return BinaryContent.Create(internalResponsesErrorResponse, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesErrorResponse(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesErrorResponse(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesErrorResponse.cs b/src/Generated/Models/InternalResponsesErrorResponse.cs new file mode 100644 index 000000000..39df97347 --- /dev/null +++ b/src/Generated/Models/InternalResponsesErrorResponse.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesErrorResponse + { + private protected IDictionary _additionalBinaryDataProperties; + + internal InternalResponsesErrorResponse(ResponseError error) + { + Error = error; + } + + internal InternalResponsesErrorResponse(ResponseError error, IDictionary additionalBinaryDataProperties) + { + Error = error; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public ResponseError Error { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalResponsesFileSearchTool.Serialization.cs b/src/Generated/Models/InternalResponsesFileSearchTool.Serialization.cs new file mode 100644 index 000000000..47b4ecd20 --- /dev/null +++ b/src/Generated/Models/InternalResponsesFileSearchTool.Serialization.cs @@ -0,0 +1,210 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesFileSearchTool : IJsonModel + { + internal InternalResponsesFileSearchTool() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesFileSearchTool)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("vector_store_ids") != true) + { + writer.WritePropertyName("vector_store_ids"u8); + writer.WriteStartArray(); + foreach (string item in VectorStoreIds) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(MaxNumResults) && _additionalBinaryDataProperties?.ContainsKey("max_num_results") != true) + { + writer.WritePropertyName("max_num_results"u8); + writer.WriteNumberValue(MaxNumResults.Value); + } + if (Optional.IsDefined(RankingOptions) && _additionalBinaryDataProperties?.ContainsKey("ranking_options") != true) + { + writer.WritePropertyName("ranking_options"u8); + writer.WriteObjectValue(RankingOptions, options); + } + if (Optional.IsDefined(Filters) && _additionalBinaryDataProperties?.ContainsKey("filters") != true) + { + writer.WritePropertyName("filters"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(Filters); +#else + using (JsonDocument document = JsonDocument.Parse(Filters)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + + InternalResponsesFileSearchTool IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesFileSearchTool)JsonModelCreateCore(ref reader, options); + + protected override ResponseTool JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesFileSearchTool)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesFileSearchTool(document.RootElement, options); + } + + internal static InternalResponsesFileSearchTool DeserializeInternalResponsesFileSearchTool(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IList vectorStoreIds = default; + int? maxNumResults = default; + FileSearchToolRankingOptions rankingOptions = default; + BinaryData filters = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("vector_store_ids"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(item.GetString()); + } + } + vectorStoreIds = array; + continue; + } + if (prop.NameEquals("max_num_results"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + maxNumResults = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("ranking_options"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + rankingOptions = FileSearchToolRankingOptions.DeserializeFileSearchToolRankingOptions(prop.Value, options); + continue; + } + if (prop.NameEquals("filters"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + filters = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesFileSearchTool( + @type, + additionalBinaryDataProperties, + vectorStoreIds, + maxNumResults, + rankingOptions, + filters); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesFileSearchTool)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesFileSearchTool IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesFileSearchTool)PersistableModelCreateCore(data, options); + + protected override ResponseTool PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesFileSearchTool(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesFileSearchTool)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesFileSearchTool internalResponsesFileSearchTool) + { + if (internalResponsesFileSearchTool == null) + { + return null; + } + return BinaryContent.Create(internalResponsesFileSearchTool, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesFileSearchTool(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesFileSearchTool(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesFileSearchTool.cs b/src/Generated/Models/InternalResponsesFileSearchTool.cs new file mode 100644 index 000000000..61bc1ef01 --- /dev/null +++ b/src/Generated/Models/InternalResponsesFileSearchTool.cs @@ -0,0 +1,37 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesFileSearchTool : ResponseTool + { + public InternalResponsesFileSearchTool(IEnumerable vectorStoreIds) : base(InternalResponsesToolType.FileSearch) + { + Argument.AssertNotNull(vectorStoreIds, nameof(vectorStoreIds)); + + VectorStoreIds = vectorStoreIds.ToList(); + } + + internal InternalResponsesFileSearchTool(InternalResponsesToolType @type, IDictionary additionalBinaryDataProperties, IList vectorStoreIds, int? maxNumResults, FileSearchToolRankingOptions rankingOptions, BinaryData filters) : base(@type, additionalBinaryDataProperties) + { + VectorStoreIds = vectorStoreIds; + MaxNumResults = maxNumResults; + RankingOptions = rankingOptions; + Filters = filters; + } + + public IList VectorStoreIds { get; } + + public int? MaxNumResults { get; set; } + + public FileSearchToolRankingOptions RankingOptions { get; set; } + + public BinaryData Filters { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesFunctionTool.Serialization.cs b/src/Generated/Models/InternalResponsesFunctionTool.Serialization.cs new file mode 100644 index 000000000..394d8a543 --- /dev/null +++ b/src/Generated/Models/InternalResponsesFunctionTool.Serialization.cs @@ -0,0 +1,176 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesFunctionTool : IJsonModel + { + internal InternalResponsesFunctionTool() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesFunctionTool)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("name") != true) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + if (_additionalBinaryDataProperties?.ContainsKey("description") != true) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + if (_additionalBinaryDataProperties?.ContainsKey("parameters") != true) + { + writer.WritePropertyName("parameters"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(Parameters); +#else + using (JsonDocument document = JsonDocument.Parse(Parameters)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + if (_additionalBinaryDataProperties?.ContainsKey("strict") != true) + { + writer.WritePropertyName("strict"u8); + writer.WriteBooleanValue(Strict); + } + } + + InternalResponsesFunctionTool IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesFunctionTool)JsonModelCreateCore(ref reader, options); + + protected override ResponseTool JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesFunctionTool)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesFunctionTool(document.RootElement, options); + } + + internal static InternalResponsesFunctionTool DeserializeInternalResponsesFunctionTool(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string name = default; + string description = default; + BinaryData parameters = default; + bool strict = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("description"u8)) + { + description = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("parameters"u8)) + { + parameters = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + if (prop.NameEquals("strict"u8)) + { + strict = prop.Value.GetBoolean(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesFunctionTool( + @type, + additionalBinaryDataProperties, + name, + description, + parameters, + strict); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesFunctionTool)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesFunctionTool IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesFunctionTool)PersistableModelCreateCore(data, options); + + protected override ResponseTool PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesFunctionTool(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesFunctionTool)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesFunctionTool internalResponsesFunctionTool) + { + if (internalResponsesFunctionTool == null) + { + return null; + } + return BinaryContent.Create(internalResponsesFunctionTool, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesFunctionTool(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesFunctionTool(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesFunctionTool.cs b/src/Generated/Models/InternalResponsesFunctionTool.cs new file mode 100644 index 000000000..2124c0bb9 --- /dev/null +++ b/src/Generated/Models/InternalResponsesFunctionTool.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesFunctionTool : ResponseTool + { + public InternalResponsesFunctionTool(string name, string description, BinaryData parameters, bool strict) : base(InternalResponsesToolType.Function) + { + Argument.AssertNotNull(name, nameof(name)); + Argument.AssertNotNull(description, nameof(description)); + Argument.AssertNotNull(parameters, nameof(parameters)); + + Name = name; + Description = description; + Parameters = parameters; + Strict = strict; + } + + internal InternalResponsesFunctionTool(InternalResponsesToolType @type, IDictionary additionalBinaryDataProperties, string name, string description, BinaryData parameters, bool strict) : base(@type, additionalBinaryDataProperties) + { + Name = name; + Description = description; + Parameters = parameters; + Strict = strict; + } + + public string Name { get; set; } + + public string Description { get; set; } + + public BinaryData Parameters { get; set; } + + public bool Strict { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesInputFileContentPart.Serialization.cs b/src/Generated/Models/InternalResponsesInputFileContentPart.Serialization.cs new file mode 100644 index 000000000..19a58652c --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputFileContentPart.Serialization.cs @@ -0,0 +1,159 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputFileContentPart : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputFileContentPart)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(FileId) && _additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + if (Optional.IsDefined(Filename) && _additionalBinaryDataProperties?.ContainsKey("filename") != true) + { + writer.WritePropertyName("filename"u8); + writer.WriteStringValue(Filename); + } + if (Optional.IsDefined(FileBytes) && _additionalBinaryDataProperties?.ContainsKey("file_data") != true) + { + writer.WritePropertyName("file_data"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(FileBytes); +#else + using (JsonDocument document = JsonDocument.Parse(FileBytes)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + + InternalResponsesInputFileContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesInputFileContentPart)JsonModelCreateCore(ref reader, options); + + protected override ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputFileContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesInputFileContentPart(document.RootElement, options); + } + + internal static InternalResponsesInputFileContentPart DeserializeInternalResponsesInputFileContentPart(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseContentPartKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string fileId = default; + string filename = default; + BinaryData fileBytes = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseContentPartKind(); + continue; + } + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("filename"u8)) + { + filename = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("file_data"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + fileBytes = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesInputFileContentPart(kind, additionalBinaryDataProperties, fileId, filename, fileBytes); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesInputFileContentPart)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesInputFileContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesInputFileContentPart)PersistableModelCreateCore(data, options); + + protected override ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesInputFileContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesInputFileContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesInputFileContentPart internalResponsesInputFileContentPart) + { + if (internalResponsesInputFileContentPart == null) + { + return null; + } + return BinaryContent.Create(internalResponsesInputFileContentPart, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesInputFileContentPart(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesInputFileContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesInputFileContentPart.cs b/src/Generated/Models/InternalResponsesInputFileContentPart.cs new file mode 100644 index 000000000..42bb1b4f9 --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputFileContentPart.cs @@ -0,0 +1,27 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputFileContentPart : ResponseContentPart + { + public InternalResponsesInputFileContentPart() : base(ResponseContentPartKind.InputFile) + { + } + + internal InternalResponsesInputFileContentPart(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties, string fileId, string filename, BinaryData fileBytes) : base(kind, additionalBinaryDataProperties) + { + FileId = fileId; + Filename = filename; + FileBytes = fileBytes; + } + + public string FileId { get; set; } + + public string Filename { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesInputImageContentPart.Serialization.cs b/src/Generated/Models/InternalResponsesInputImageContentPart.Serialization.cs new file mode 100644 index 000000000..f8f9cd320 --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputImageContentPart.Serialization.cs @@ -0,0 +1,152 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputImageContentPart : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputImageContentPart)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(ImageUrl) && _additionalBinaryDataProperties?.ContainsKey("image_url") != true) + { + writer.WritePropertyName("image_url"u8); + writer.WriteStringValue(ImageUrl); + } + if (Optional.IsDefined(FileId) && _additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + if (Optional.IsDefined(Detail) && _additionalBinaryDataProperties?.ContainsKey("detail") != true) + { + writer.WritePropertyName("detail"u8); + writer.WriteStringValue(Detail.Value.ToString()); + } + } + + InternalResponsesInputImageContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesInputImageContentPart)JsonModelCreateCore(ref reader, options); + + protected override ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputImageContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesInputImageContentPart(document.RootElement, options); + } + + internal static InternalResponsesInputImageContentPart DeserializeInternalResponsesInputImageContentPart(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseContentPartKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string imageUrl = default; + string fileId = default; + ResponseImageDetailLevel? detail = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseContentPartKind(); + continue; + } + if (prop.NameEquals("image_url"u8)) + { + imageUrl = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("detail"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + detail = new ResponseImageDetailLevel(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesInputImageContentPart(kind, additionalBinaryDataProperties, imageUrl, fileId, detail); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesInputImageContentPart)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesInputImageContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesInputImageContentPart)PersistableModelCreateCore(data, options); + + protected override ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesInputImageContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesInputImageContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesInputImageContentPart internalResponsesInputImageContentPart) + { + if (internalResponsesInputImageContentPart == null) + { + return null; + } + return BinaryContent.Create(internalResponsesInputImageContentPart, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesInputImageContentPart(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesInputImageContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesInputImageContentPart.cs b/src/Generated/Models/InternalResponsesInputImageContentPart.cs new file mode 100644 index 000000000..aa8395f82 --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputImageContentPart.cs @@ -0,0 +1,29 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputImageContentPart : ResponseContentPart + { + public InternalResponsesInputImageContentPart() : base(ResponseContentPartKind.InputImage) + { + } + + internal InternalResponsesInputImageContentPart(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties, string imageUrl, string fileId, ResponseImageDetailLevel? detail) : base(kind, additionalBinaryDataProperties) + { + ImageUrl = imageUrl; + FileId = fileId; + Detail = detail; + } + + public string ImageUrl { get; set; } + + public string FileId { get; set; } + + public ResponseImageDetailLevel? Detail { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesInputItemList.Serialization.cs b/src/Generated/Models/InternalResponsesInputItemList.Serialization.cs new file mode 100644 index 000000000..7f6736d62 --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputItemList.Serialization.cs @@ -0,0 +1,202 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputItemList : IJsonModel + { + internal InternalResponsesInputItemList() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputItemList)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("object") != true) + { + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("data") != true) + { + writer.WritePropertyName("data"u8); + writer.WriteStartArray(); + foreach (ResponseItem item in Data) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("first_id") != true) + { + writer.WritePropertyName("first_id"u8); + writer.WriteStringValue(FirstId); + } + if (_additionalBinaryDataProperties?.ContainsKey("last_id") != true) + { + writer.WritePropertyName("last_id"u8); + writer.WriteStringValue(LastId); + } + if (_additionalBinaryDataProperties?.ContainsKey("has_more") != true) + { + writer.WritePropertyName("has_more"u8); + writer.WriteBooleanValue(HasMore); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalResponsesInputItemList IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalResponsesInputItemList JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputItemList)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesInputItemList(document.RootElement, options); + } + + internal static InternalResponsesInputItemList DeserializeInternalResponsesInputItemList(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesInputItemListObject @object = default; + IList data = default; + string firstId = default; + string lastId = default; + bool hasMore = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("object"u8)) + { + @object = new InternalResponsesInputItemListObject(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("data"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseItem.DeserializeResponseItem(item, options)); + } + data = array; + continue; + } + if (prop.NameEquals("first_id"u8)) + { + firstId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("last_id"u8)) + { + lastId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("has_more"u8)) + { + hasMore = prop.Value.GetBoolean(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesInputItemList( + @object, + data, + firstId, + lastId, + hasMore, + additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesInputItemList)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesInputItemList IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalResponsesInputItemList PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesInputItemList(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesInputItemList)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesInputItemList internalResponsesInputItemList) + { + if (internalResponsesInputItemList == null) + { + return null; + } + return BinaryContent.Create(internalResponsesInputItemList, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesInputItemList(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesInputItemList(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesInputItemList.cs b/src/Generated/Models/InternalResponsesInputItemList.cs new file mode 100644 index 000000000..02b3a30ca --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputItemList.cs @@ -0,0 +1,49 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputItemList + { + private protected IDictionary _additionalBinaryDataProperties; + + internal InternalResponsesInputItemList(IEnumerable data, string firstId, string lastId, bool hasMore) + { + Data = data.ToList(); + FirstId = firstId; + LastId = lastId; + HasMore = hasMore; + } + + internal InternalResponsesInputItemList(InternalResponsesInputItemListObject @object, IList data, string firstId, string lastId, bool hasMore, IDictionary additionalBinaryDataProperties) + { + Object = @object; + Data = data; + FirstId = firstId; + LastId = lastId; + HasMore = hasMore; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public InternalResponsesInputItemListObject Object { get; } = "list"; + + public IList Data { get; } + + public string FirstId { get; } + + public string LastId { get; } + + public bool HasMore { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalResponsesInputItemListObject.cs b/src/Generated/Models/InternalResponsesInputItemListObject.cs new file mode 100644 index 000000000..f9e140e66 --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputItemListObject.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesInputItemListObject : IEquatable + { + private readonly string _value; + private const string ListValue = "list"; + + public InternalResponsesInputItemListObject(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesInputItemListObject List { get; } = new InternalResponsesInputItemListObject(ListValue); + + public static bool operator ==(InternalResponsesInputItemListObject left, InternalResponsesInputItemListObject right) => left.Equals(right); + + public static bool operator !=(InternalResponsesInputItemListObject left, InternalResponsesInputItemListObject right) => !left.Equals(right); + + public static implicit operator InternalResponsesInputItemListObject(string value) => new InternalResponsesInputItemListObject(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesInputItemListObject other && Equals(other); + + public bool Equals(InternalResponsesInputItemListObject other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesInputTextContentPart.Serialization.cs b/src/Generated/Models/InternalResponsesInputTextContentPart.Serialization.cs new file mode 100644 index 000000000..9d1081c9d --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputTextContentPart.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputTextContentPart : IJsonModel + { + internal InternalResponsesInputTextContentPart() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputTextContentPart)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(InternalText); + } + } + + InternalResponsesInputTextContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesInputTextContentPart)JsonModelCreateCore(ref reader, options); + + protected override ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesInputTextContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesInputTextContentPart(document.RootElement, options); + } + + internal static InternalResponsesInputTextContentPart DeserializeInternalResponsesInputTextContentPart(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseContentPartKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string internalText = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseContentPartKind(); + continue; + } + if (prop.NameEquals("text"u8)) + { + internalText = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesInputTextContentPart(kind, additionalBinaryDataProperties, internalText); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesInputTextContentPart)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesInputTextContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesInputTextContentPart)PersistableModelCreateCore(data, options); + + protected override ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesInputTextContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesInputTextContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesInputTextContentPart internalResponsesInputTextContentPart) + { + if (internalResponsesInputTextContentPart == null) + { + return null; + } + return BinaryContent.Create(internalResponsesInputTextContentPart, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesInputTextContentPart(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesInputTextContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesInputTextContentPart.cs b/src/Generated/Models/InternalResponsesInputTextContentPart.cs new file mode 100644 index 000000000..c480d3d50 --- /dev/null +++ b/src/Generated/Models/InternalResponsesInputTextContentPart.cs @@ -0,0 +1,25 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesInputTextContentPart : ResponseContentPart + { + public InternalResponsesInputTextContentPart(string internalText) : base(ResponseContentPartKind.InputText) + { + Argument.AssertNotNull(internalText, nameof(internalText)); + + InternalText = internalText; + } + + internal InternalResponsesInputTextContentPart(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties, string internalText) : base(kind, additionalBinaryDataProperties) + { + InternalText = internalText; + } + } +} diff --git a/src/Generated/Models/InternalResponsesItemType.cs b/src/Generated/Models/InternalResponsesItemType.cs new file mode 100644 index 000000000..b13f1c046 --- /dev/null +++ b/src/Generated/Models/InternalResponsesItemType.cs @@ -0,0 +1,65 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesItemType : IEquatable + { + private readonly string _value; + private const string MessageValue = "message"; + private const string FileSearchCallValue = "file_search_call"; + private const string FunctionCallValue = "function_call"; + private const string FunctionCallOutputValue = "function_call_output"; + private const string ComputerCallValue = "computer_call"; + private const string ComputerCallOutputValue = "computer_call_output"; + private const string WebSearchCallValue = "web_search_call"; + private const string ItemReferenceValue = "item_reference"; + private const string ReasoningValue = "reasoning"; + + public InternalResponsesItemType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesItemType Message { get; } = new InternalResponsesItemType(MessageValue); + + public static InternalResponsesItemType FileSearchCall { get; } = new InternalResponsesItemType(FileSearchCallValue); + + public static InternalResponsesItemType FunctionCall { get; } = new InternalResponsesItemType(FunctionCallValue); + + public static InternalResponsesItemType FunctionCallOutput { get; } = new InternalResponsesItemType(FunctionCallOutputValue); + + public static InternalResponsesItemType ComputerCall { get; } = new InternalResponsesItemType(ComputerCallValue); + + public static InternalResponsesItemType ComputerCallOutput { get; } = new InternalResponsesItemType(ComputerCallOutputValue); + + public static InternalResponsesItemType WebSearchCall { get; } = new InternalResponsesItemType(WebSearchCallValue); + + public static InternalResponsesItemType ItemReference { get; } = new InternalResponsesItemType(ItemReferenceValue); + + public static InternalResponsesItemType Reasoning { get; } = new InternalResponsesItemType(ReasoningValue); + + public static bool operator ==(InternalResponsesItemType left, InternalResponsesItemType right) => left.Equals(right); + + public static bool operator !=(InternalResponsesItemType left, InternalResponsesItemType right) => !left.Equals(right); + + public static implicit operator InternalResponsesItemType(string value) => new InternalResponsesItemType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesItemType other && Equals(other); + + public bool Equals(InternalResponsesItemType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesMessageAnnotationFileCitation.Serialization.cs b/src/Generated/Models/InternalResponsesMessageAnnotationFileCitation.Serialization.cs new file mode 100644 index 000000000..16621b2b3 --- /dev/null +++ b/src/Generated/Models/InternalResponsesMessageAnnotationFileCitation.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesMessageAnnotationFileCitation : IJsonModel + { + internal InternalResponsesMessageAnnotationFileCitation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFileCitation)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("index") != true) + { + writer.WritePropertyName("index"u8); + writer.WriteNumberValue(Index); + } + if (_additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + } + + InternalResponsesMessageAnnotationFileCitation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesMessageAnnotationFileCitation)JsonModelCreateCore(ref reader, options); + + protected override ResponseMessageAnnotation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFileCitation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesMessageAnnotationFileCitation(document.RootElement, options); + } + + internal static InternalResponsesMessageAnnotationFileCitation DeserializeInternalResponsesMessageAnnotationFileCitation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseMessageAnnotationKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + int index = default; + string fileId = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseMessageAnnotationKind(); + continue; + } + if (prop.NameEquals("index"u8)) + { + index = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesMessageAnnotationFileCitation(kind, additionalBinaryDataProperties, index, fileId); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFileCitation)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesMessageAnnotationFileCitation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesMessageAnnotationFileCitation)PersistableModelCreateCore(data, options); + + protected override ResponseMessageAnnotation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesMessageAnnotationFileCitation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFileCitation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesMessageAnnotationFileCitation internalResponsesMessageAnnotationFileCitation) + { + if (internalResponsesMessageAnnotationFileCitation == null) + { + return null; + } + return BinaryContent.Create(internalResponsesMessageAnnotationFileCitation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesMessageAnnotationFileCitation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesMessageAnnotationFileCitation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesMessageAnnotationFileCitation.cs b/src/Generated/Models/InternalResponsesMessageAnnotationFileCitation.cs new file mode 100644 index 000000000..9e3625649 --- /dev/null +++ b/src/Generated/Models/InternalResponsesMessageAnnotationFileCitation.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesMessageAnnotationFileCitation : ResponseMessageAnnotation + { + public InternalResponsesMessageAnnotationFileCitation(int index, string fileId) : base(ResponseMessageAnnotationKind.FileCitation) + { + Argument.AssertNotNull(fileId, nameof(fileId)); + + Index = index; + FileId = fileId; + } + + internal InternalResponsesMessageAnnotationFileCitation(ResponseMessageAnnotationKind kind, IDictionary additionalBinaryDataProperties, int index, string fileId) : base(kind, additionalBinaryDataProperties) + { + Index = index; + FileId = fileId; + } + + public int Index { get; set; } + + public string FileId { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesMessageAnnotationFilePath.Serialization.cs b/src/Generated/Models/InternalResponsesMessageAnnotationFilePath.Serialization.cs new file mode 100644 index 000000000..dcfa45e7a --- /dev/null +++ b/src/Generated/Models/InternalResponsesMessageAnnotationFilePath.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesMessageAnnotationFilePath : IJsonModel + { + internal InternalResponsesMessageAnnotationFilePath() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFilePath)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("file_id") != true) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + if (_additionalBinaryDataProperties?.ContainsKey("index") != true) + { + writer.WritePropertyName("index"u8); + writer.WriteNumberValue(Index); + } + } + + InternalResponsesMessageAnnotationFilePath IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesMessageAnnotationFilePath)JsonModelCreateCore(ref reader, options); + + protected override ResponseMessageAnnotation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFilePath)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesMessageAnnotationFilePath(document.RootElement, options); + } + + internal static InternalResponsesMessageAnnotationFilePath DeserializeInternalResponsesMessageAnnotationFilePath(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseMessageAnnotationKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string fileId = default; + int index = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseMessageAnnotationKind(); + continue; + } + if (prop.NameEquals("file_id"u8)) + { + fileId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("index"u8)) + { + index = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesMessageAnnotationFilePath(kind, additionalBinaryDataProperties, fileId, index); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFilePath)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesMessageAnnotationFilePath IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesMessageAnnotationFilePath)PersistableModelCreateCore(data, options); + + protected override ResponseMessageAnnotation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesMessageAnnotationFilePath(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationFilePath)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesMessageAnnotationFilePath internalResponsesMessageAnnotationFilePath) + { + if (internalResponsesMessageAnnotationFilePath == null) + { + return null; + } + return BinaryContent.Create(internalResponsesMessageAnnotationFilePath, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesMessageAnnotationFilePath(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesMessageAnnotationFilePath(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesMessageAnnotationFilePath.cs b/src/Generated/Models/InternalResponsesMessageAnnotationFilePath.cs new file mode 100644 index 000000000..f9a52ba64 --- /dev/null +++ b/src/Generated/Models/InternalResponsesMessageAnnotationFilePath.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesMessageAnnotationFilePath : ResponseMessageAnnotation + { + public InternalResponsesMessageAnnotationFilePath(string fileId, int index) : base(ResponseMessageAnnotationKind.FilePath) + { + Argument.AssertNotNull(fileId, nameof(fileId)); + + FileId = fileId; + Index = index; + } + + internal InternalResponsesMessageAnnotationFilePath(ResponseMessageAnnotationKind kind, IDictionary additionalBinaryDataProperties, string fileId, int index) : base(kind, additionalBinaryDataProperties) + { + FileId = fileId; + Index = index; + } + + public string FileId { get; set; } + + public int Index { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesMessageAnnotationUrlCitation.Serialization.cs b/src/Generated/Models/InternalResponsesMessageAnnotationUrlCitation.Serialization.cs new file mode 100644 index 000000000..27c5eb2b6 --- /dev/null +++ b/src/Generated/Models/InternalResponsesMessageAnnotationUrlCitation.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesMessageAnnotationUrlCitation : IJsonModel + { + internal InternalResponsesMessageAnnotationUrlCitation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationUrlCitation)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("url") != true) + { + writer.WritePropertyName("url"u8); + writer.WriteStringValue(Url); + } + if (_additionalBinaryDataProperties?.ContainsKey("title") != true) + { + writer.WritePropertyName("title"u8); + writer.WriteStringValue(Title); + } + if (_additionalBinaryDataProperties?.ContainsKey("start_index") != true) + { + writer.WritePropertyName("start_index"u8); + writer.WriteNumberValue(StartIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("end_index") != true) + { + writer.WritePropertyName("end_index"u8); + writer.WriteNumberValue(EndIndex); + } + } + + InternalResponsesMessageAnnotationUrlCitation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesMessageAnnotationUrlCitation)JsonModelCreateCore(ref reader, options); + + protected override ResponseMessageAnnotation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationUrlCitation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesMessageAnnotationUrlCitation(document.RootElement, options); + } + + internal static InternalResponsesMessageAnnotationUrlCitation DeserializeInternalResponsesMessageAnnotationUrlCitation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseMessageAnnotationKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string url = default; + string title = default; + int startIndex = default; + int endIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseMessageAnnotationKind(); + continue; + } + if (prop.NameEquals("url"u8)) + { + url = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("title"u8)) + { + title = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("start_index"u8)) + { + startIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("end_index"u8)) + { + endIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesMessageAnnotationUrlCitation( + kind, + additionalBinaryDataProperties, + url, + title, + startIndex, + endIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationUrlCitation)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesMessageAnnotationUrlCitation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesMessageAnnotationUrlCitation)PersistableModelCreateCore(data, options); + + protected override ResponseMessageAnnotation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesMessageAnnotationUrlCitation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesMessageAnnotationUrlCitation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesMessageAnnotationUrlCitation internalResponsesMessageAnnotationUrlCitation) + { + if (internalResponsesMessageAnnotationUrlCitation == null) + { + return null; + } + return BinaryContent.Create(internalResponsesMessageAnnotationUrlCitation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesMessageAnnotationUrlCitation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesMessageAnnotationUrlCitation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesMessageAnnotationUrlCitation.cs b/src/Generated/Models/InternalResponsesMessageAnnotationUrlCitation.cs new file mode 100644 index 000000000..11e2c5c7f --- /dev/null +++ b/src/Generated/Models/InternalResponsesMessageAnnotationUrlCitation.cs @@ -0,0 +1,40 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesMessageAnnotationUrlCitation : ResponseMessageAnnotation + { + public InternalResponsesMessageAnnotationUrlCitation(string url, string title, int startIndex, int endIndex) : base(ResponseMessageAnnotationKind.UriCitation) + { + Argument.AssertNotNull(url, nameof(url)); + Argument.AssertNotNull(title, nameof(title)); + + Url = url; + Title = title; + StartIndex = startIndex; + EndIndex = endIndex; + } + + internal InternalResponsesMessageAnnotationUrlCitation(ResponseMessageAnnotationKind kind, IDictionary additionalBinaryDataProperties, string url, string title, int startIndex, int endIndex) : base(kind, additionalBinaryDataProperties) + { + Url = url; + Title = title; + StartIndex = startIndex; + EndIndex = endIndex; + } + + public string Url { get; set; } + + public string Title { get; set; } + + public int StartIndex { get; set; } + + public int EndIndex { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesOutputRefusalContentPart.Serialization.cs b/src/Generated/Models/InternalResponsesOutputRefusalContentPart.Serialization.cs new file mode 100644 index 000000000..1561515c5 --- /dev/null +++ b/src/Generated/Models/InternalResponsesOutputRefusalContentPart.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesOutputRefusalContentPart : IJsonModel + { + internal InternalResponsesOutputRefusalContentPart() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesOutputRefusalContentPart)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("refusal") != true) + { + writer.WritePropertyName("refusal"u8); + writer.WriteStringValue(InternalRefusal); + } + } + + InternalResponsesOutputRefusalContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesOutputRefusalContentPart)JsonModelCreateCore(ref reader, options); + + protected override ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesOutputRefusalContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesOutputRefusalContentPart(document.RootElement, options); + } + + internal static InternalResponsesOutputRefusalContentPart DeserializeInternalResponsesOutputRefusalContentPart(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseContentPartKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string internalRefusal = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseContentPartKind(); + continue; + } + if (prop.NameEquals("refusal"u8)) + { + internalRefusal = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesOutputRefusalContentPart(kind, additionalBinaryDataProperties, internalRefusal); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesOutputRefusalContentPart)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesOutputRefusalContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesOutputRefusalContentPart)PersistableModelCreateCore(data, options); + + protected override ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesOutputRefusalContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesOutputRefusalContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesOutputRefusalContentPart internalResponsesOutputRefusalContentPart) + { + if (internalResponsesOutputRefusalContentPart == null) + { + return null; + } + return BinaryContent.Create(internalResponsesOutputRefusalContentPart, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesOutputRefusalContentPart(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesOutputRefusalContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesOutputRefusalContentPart.cs b/src/Generated/Models/InternalResponsesOutputRefusalContentPart.cs new file mode 100644 index 000000000..7107b7b06 --- /dev/null +++ b/src/Generated/Models/InternalResponsesOutputRefusalContentPart.cs @@ -0,0 +1,25 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesOutputRefusalContentPart : ResponseContentPart + { + public InternalResponsesOutputRefusalContentPart(string internalRefusal) : base(ResponseContentPartKind.Refusal) + { + Argument.AssertNotNull(internalRefusal, nameof(internalRefusal)); + + InternalRefusal = internalRefusal; + } + + internal InternalResponsesOutputRefusalContentPart(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties, string internalRefusal) : base(kind, additionalBinaryDataProperties) + { + InternalRefusal = internalRefusal; + } + } +} diff --git a/src/Generated/Models/InternalResponsesOutputTextContentPart.Serialization.cs b/src/Generated/Models/InternalResponsesOutputTextContentPart.Serialization.cs new file mode 100644 index 000000000..d30c8743d --- /dev/null +++ b/src/Generated/Models/InternalResponsesOutputTextContentPart.Serialization.cs @@ -0,0 +1,151 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesOutputTextContentPart : IJsonModel + { + internal InternalResponsesOutputTextContentPart() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesOutputTextContentPart)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("annotations") != true) + { + writer.WritePropertyName("annotations"u8); + writer.WriteStartArray(); + foreach (ResponseMessageAnnotation item in Annotations) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(InternalText); + } + } + + InternalResponsesOutputTextContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesOutputTextContentPart)JsonModelCreateCore(ref reader, options); + + protected override ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesOutputTextContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesOutputTextContentPart(document.RootElement, options); + } + + internal static InternalResponsesOutputTextContentPart DeserializeInternalResponsesOutputTextContentPart(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseContentPartKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IList annotations = default; + string internalText = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseContentPartKind(); + continue; + } + if (prop.NameEquals("annotations"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseMessageAnnotation.DeserializeResponseMessageAnnotation(item, options)); + } + annotations = array; + continue; + } + if (prop.NameEquals("text"u8)) + { + internalText = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesOutputTextContentPart(kind, additionalBinaryDataProperties, annotations, internalText); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesOutputTextContentPart)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesOutputTextContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesOutputTextContentPart)PersistableModelCreateCore(data, options); + + protected override ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesOutputTextContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesOutputTextContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesOutputTextContentPart internalResponsesOutputTextContentPart) + { + if (internalResponsesOutputTextContentPart == null) + { + return null; + } + return BinaryContent.Create(internalResponsesOutputTextContentPart, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesOutputTextContentPart(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesOutputTextContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesOutputTextContentPart.cs b/src/Generated/Models/InternalResponsesOutputTextContentPart.cs new file mode 100644 index 000000000..2af6df912 --- /dev/null +++ b/src/Generated/Models/InternalResponsesOutputTextContentPart.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesOutputTextContentPart : ResponseContentPart + { + public InternalResponsesOutputTextContentPart(IEnumerable annotations, string internalText) : base(ResponseContentPartKind.OutputText) + { + Argument.AssertNotNull(annotations, nameof(annotations)); + Argument.AssertNotNull(internalText, nameof(internalText)); + + Annotations = annotations.ToList(); + InternalText = internalText; + } + + internal InternalResponsesOutputTextContentPart(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties, IList annotations, string internalText) : base(kind, additionalBinaryDataProperties) + { + Annotations = annotations; + InternalText = internalText; + } + + public IList Annotations { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesReasoningItemSummaryElement.Serialization.cs b/src/Generated/Models/InternalResponsesReasoningItemSummaryElement.Serialization.cs new file mode 100644 index 000000000..d5d841c52 --- /dev/null +++ b/src/Generated/Models/InternalResponsesReasoningItemSummaryElement.Serialization.cs @@ -0,0 +1,139 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + [PersistableModelProxy(typeof(UnknownResponsesReasoningItemSummaryElement))] + internal abstract partial class InternalResponsesReasoningItemSummaryElement : IJsonModel + { + internal InternalResponsesReasoningItemSummaryElement() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalResponsesReasoningItemSummaryElement IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalResponsesReasoningItemSummaryElement JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesReasoningItemSummaryElement(document.RootElement, options); + } + + internal static InternalResponsesReasoningItemSummaryElement DeserializeInternalResponsesReasoningItemSummaryElement(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "summary_text": + return InternalResponsesReasoningItemSummaryElementSummaryText.DeserializeInternalResponsesReasoningItemSummaryElementSummaryText(element, options); + } + } + return UnknownResponsesReasoningItemSummaryElement.DeserializeUnknownResponsesReasoningItemSummaryElement(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesReasoningItemSummaryElement IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalResponsesReasoningItemSummaryElement PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesReasoningItemSummaryElement(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesReasoningItemSummaryElement internalResponsesReasoningItemSummaryElement) + { + if (internalResponsesReasoningItemSummaryElement == null) + { + return null; + } + return BinaryContent.Create(internalResponsesReasoningItemSummaryElement, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesReasoningItemSummaryElement(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesReasoningItemSummaryElement(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesReasoningItemSummaryElement.cs b/src/Generated/Models/InternalResponsesReasoningItemSummaryElement.cs new file mode 100644 index 000000000..5f9fd9191 --- /dev/null +++ b/src/Generated/Models/InternalResponsesReasoningItemSummaryElement.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal abstract partial class InternalResponsesReasoningItemSummaryElement + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected InternalResponsesReasoningItemSummaryElement(InternalResponsesReasoningItemSummaryType @type) + { + Type = @type; + } + + internal InternalResponsesReasoningItemSummaryElement(InternalResponsesReasoningItemSummaryType @type, IDictionary additionalBinaryDataProperties) + { + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal InternalResponsesReasoningItemSummaryType Type { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalResponsesReasoningItemSummaryElementSummaryText.Serialization.cs b/src/Generated/Models/InternalResponsesReasoningItemSummaryElementSummaryText.Serialization.cs new file mode 100644 index 000000000..f9aade9bf --- /dev/null +++ b/src/Generated/Models/InternalResponsesReasoningItemSummaryElementSummaryText.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesReasoningItemSummaryElementSummaryText : IJsonModel + { + internal InternalResponsesReasoningItemSummaryElementSummaryText() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElementSummaryText)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + } + + InternalResponsesReasoningItemSummaryElementSummaryText IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesReasoningItemSummaryElementSummaryText)JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesReasoningItemSummaryElement JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElementSummaryText)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesReasoningItemSummaryElementSummaryText(document.RootElement, options); + } + + internal static InternalResponsesReasoningItemSummaryElementSummaryText DeserializeInternalResponsesReasoningItemSummaryElementSummaryText(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesReasoningItemSummaryType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string text = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesReasoningItemSummaryType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("text"u8)) + { + text = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesReasoningItemSummaryElementSummaryText(@type, additionalBinaryDataProperties, text); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElementSummaryText)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesReasoningItemSummaryElementSummaryText IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesReasoningItemSummaryElementSummaryText)PersistableModelCreateCore(data, options); + + protected override InternalResponsesReasoningItemSummaryElement PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesReasoningItemSummaryElementSummaryText(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElementSummaryText)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesReasoningItemSummaryElementSummaryText internalResponsesReasoningItemSummaryElementSummaryText) + { + if (internalResponsesReasoningItemSummaryElementSummaryText == null) + { + return null; + } + return BinaryContent.Create(internalResponsesReasoningItemSummaryElementSummaryText, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesReasoningItemSummaryElementSummaryText(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesReasoningItemSummaryElementSummaryText(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesReasoningItemSummaryElementSummaryText.cs b/src/Generated/Models/InternalResponsesReasoningItemSummaryElementSummaryText.cs new file mode 100644 index 000000000..7fde14ca1 --- /dev/null +++ b/src/Generated/Models/InternalResponsesReasoningItemSummaryElementSummaryText.cs @@ -0,0 +1,27 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesReasoningItemSummaryElementSummaryText : InternalResponsesReasoningItemSummaryElement + { + public InternalResponsesReasoningItemSummaryElementSummaryText(string text) : base(InternalResponsesReasoningItemSummaryType.SummaryText) + { + Argument.AssertNotNull(text, nameof(text)); + + Text = text; + } + + internal InternalResponsesReasoningItemSummaryElementSummaryText(InternalResponsesReasoningItemSummaryType @type, IDictionary additionalBinaryDataProperties, string text) : base(@type, additionalBinaryDataProperties) + { + Text = text; + } + + public string Text { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesReasoningItemSummaryType.cs b/src/Generated/Models/InternalResponsesReasoningItemSummaryType.cs new file mode 100644 index 000000000..4f337b26e --- /dev/null +++ b/src/Generated/Models/InternalResponsesReasoningItemSummaryType.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesReasoningItemSummaryType : IEquatable + { + private readonly string _value; + private const string SummaryTextValue = "summary_text"; + + public InternalResponsesReasoningItemSummaryType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesReasoningItemSummaryType SummaryText { get; } = new InternalResponsesReasoningItemSummaryType(SummaryTextValue); + + public static bool operator ==(InternalResponsesReasoningItemSummaryType left, InternalResponsesReasoningItemSummaryType right) => left.Equals(right); + + public static bool operator !=(InternalResponsesReasoningItemSummaryType left, InternalResponsesReasoningItemSummaryType right) => !left.Equals(right); + + public static implicit operator InternalResponsesReasoningItemSummaryType(string value) => new InternalResponsesReasoningItemSummaryType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesReasoningItemSummaryType other && Equals(other); + + public bool Equals(InternalResponsesReasoningItemSummaryType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseCompleted.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCompleted.Serialization.cs new file mode 100644 index 000000000..738ca4a0f --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCompleted.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseCompleted : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseCompleted() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCompleted)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("response") != true) + { + writer.WritePropertyName("response"u8); + writer.WriteObjectValue(Response, options); + } + } + + InternalResponsesResponseStreamEventResponseCompleted IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseCompleted)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCompleted)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseCompleted(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseCompleted DeserializeInternalResponsesResponseStreamEventResponseCompleted(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + OpenAIResponse response = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("response"u8)) + { + response = OpenAIResponse.DeserializeOpenAIResponse(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseCompleted(kind, additionalBinaryDataProperties, response); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCompleted)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseCompleted IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseCompleted)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseCompleted(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCompleted)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseCompleted internalResponsesResponseStreamEventResponseCompleted) + { + if (internalResponsesResponseStreamEventResponseCompleted == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseCompleted, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseCompleted(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseCompleted(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseCompleted.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCompleted.cs new file mode 100644 index 000000000..6d2cc50a8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCompleted.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseCompleted : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseCompleted(OpenAIResponse response) : base(StreamingResponseUpdateKind.ResponseCompleted) + { + Response = response; + } + + internal InternalResponsesResponseStreamEventResponseCompleted(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, OpenAIResponse response) : base(kind, additionalBinaryDataProperties) + { + Response = response; + } + + public OpenAIResponse Response { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartAdded.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartAdded.Serialization.cs new file mode 100644 index 000000000..574f80edc --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartAdded.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseContentPartAdded : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseContentPartAdded() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartAdded)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("part") != true) + { + writer.WritePropertyName("part"u8); + writer.WriteObjectValue(Part, options); + } + } + + InternalResponsesResponseStreamEventResponseContentPartAdded IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseContentPartAdded)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartAdded)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseContentPartAdded(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseContentPartAdded DeserializeInternalResponsesResponseStreamEventResponseContentPartAdded(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + ResponseContentPart part = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("part"u8)) + { + part = ResponseContentPart.DeserializeResponseContentPart(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseContentPartAdded( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + part); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartAdded)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseContentPartAdded IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseContentPartAdded)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseContentPartAdded(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartAdded)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseContentPartAdded internalResponsesResponseStreamEventResponseContentPartAdded) + { + if (internalResponsesResponseStreamEventResponseContentPartAdded == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseContentPartAdded, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseContentPartAdded(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseContentPartAdded(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartAdded.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartAdded.cs new file mode 100644 index 000000000..6d2045351 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartAdded.cs @@ -0,0 +1,34 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseContentPartAdded : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseContentPartAdded(string itemId, int outputIndex, int contentIndex, ResponseContentPart part) : base(StreamingResponseUpdateKind.ResponseContentPartAdded) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Part = part; + } + + internal InternalResponsesResponseStreamEventResponseContentPartAdded(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, ResponseContentPart part) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Part = part; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartDone.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartDone.Serialization.cs new file mode 100644 index 000000000..8ba55fd59 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartDone.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseContentPartDone : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseContentPartDone() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartDone)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("part") != true) + { + writer.WritePropertyName("part"u8); + writer.WriteObjectValue(Part, options); + } + } + + InternalResponsesResponseStreamEventResponseContentPartDone IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseContentPartDone)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartDone)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseContentPartDone(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseContentPartDone DeserializeInternalResponsesResponseStreamEventResponseContentPartDone(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + ResponseContentPart part = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("part"u8)) + { + part = ResponseContentPart.DeserializeResponseContentPart(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseContentPartDone( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + part); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartDone)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseContentPartDone IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseContentPartDone)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseContentPartDone(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseContentPartDone)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseContentPartDone internalResponsesResponseStreamEventResponseContentPartDone) + { + if (internalResponsesResponseStreamEventResponseContentPartDone == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseContentPartDone, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseContentPartDone(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseContentPartDone(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartDone.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartDone.cs new file mode 100644 index 000000000..b244c6c39 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseContentPartDone.cs @@ -0,0 +1,34 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseContentPartDone : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseContentPartDone(string itemId, int outputIndex, int contentIndex, ResponseContentPart part) : base(StreamingResponseUpdateKind.ResponseContentPartDone) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Part = part; + } + + internal InternalResponsesResponseStreamEventResponseContentPartDone(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, ResponseContentPart part) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Part = part; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseCreated.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCreated.Serialization.cs new file mode 100644 index 000000000..f009a5cf8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCreated.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseCreated : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseCreated() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCreated)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("response") != true) + { + writer.WritePropertyName("response"u8); + writer.WriteObjectValue(Response, options); + } + } + + InternalResponsesResponseStreamEventResponseCreated IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseCreated)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCreated)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseCreated(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseCreated DeserializeInternalResponsesResponseStreamEventResponseCreated(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + OpenAIResponse response = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("response"u8)) + { + response = OpenAIResponse.DeserializeOpenAIResponse(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseCreated(kind, additionalBinaryDataProperties, response); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCreated)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseCreated IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseCreated)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseCreated(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseCreated)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseCreated internalResponsesResponseStreamEventResponseCreated) + { + if (internalResponsesResponseStreamEventResponseCreated == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseCreated, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseCreated(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseCreated(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseCreated.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCreated.cs new file mode 100644 index 000000000..0aaf6b4f3 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseCreated.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseCreated : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseCreated(OpenAIResponse response) : base(StreamingResponseUpdateKind.ResponseCreated) + { + Response = response; + } + + internal InternalResponsesResponseStreamEventResponseCreated(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, OpenAIResponse response) : base(kind, additionalBinaryDataProperties) + { + Response = response; + } + + public OpenAIResponse Response { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFailed.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFailed.Serialization.cs new file mode 100644 index 000000000..0206d7158 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFailed.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFailed : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseFailed() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFailed)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("response") != true) + { + writer.WritePropertyName("response"u8); + writer.WriteObjectValue(Response, options); + } + } + + InternalResponsesResponseStreamEventResponseFailed IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFailed)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFailed)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseFailed(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseFailed DeserializeInternalResponsesResponseStreamEventResponseFailed(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + OpenAIResponse response = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("response"u8)) + { + response = OpenAIResponse.DeserializeOpenAIResponse(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseFailed(kind, additionalBinaryDataProperties, response); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFailed)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseFailed IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFailed)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseFailed(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFailed)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseFailed internalResponsesResponseStreamEventResponseFailed) + { + if (internalResponsesResponseStreamEventResponseFailed == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseFailed, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseFailed(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseFailed(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFailed.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFailed.cs new file mode 100644 index 000000000..f677f686c --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFailed.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFailed : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseFailed(OpenAIResponse response) : base(StreamingResponseUpdateKind.ResponseFailed) + { + Response = response; + } + + internal InternalResponsesResponseStreamEventResponseFailed(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, OpenAIResponse response) : base(kind, additionalBinaryDataProperties) + { + Response = response; + } + + public OpenAIResponse Response { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.Serialization.cs new file mode 100644 index 000000000..16d6c319c --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallCompleted : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseFileSearchCallCompleted() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallCompleted)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + } + + InternalResponsesResponseStreamEventResponseFileSearchCallCompleted IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFileSearchCallCompleted)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallCompleted)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallCompleted(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseFileSearchCallCompleted DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallCompleted(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseFileSearchCallCompleted(kind, additionalBinaryDataProperties, itemId, outputIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallCompleted)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseFileSearchCallCompleted IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFileSearchCallCompleted)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallCompleted(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallCompleted)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseFileSearchCallCompleted internalResponsesResponseStreamEventResponseFileSearchCallCompleted) + { + if (internalResponsesResponseStreamEventResponseFileSearchCallCompleted == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseFileSearchCallCompleted, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseFileSearchCallCompleted(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallCompleted(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.cs new file mode 100644 index 000000000..1a4d55f74 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallCompleted : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseFileSearchCallCompleted(string itemId, int outputIndex) : base(StreamingResponseUpdateKind.ResponseFileSearchCallCompleted) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + internal InternalResponsesResponseStreamEventResponseFileSearchCallCompleted(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.Serialization.cs new file mode 100644 index 000000000..2f60938c7 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallInProgress : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseFileSearchCallInProgress() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallInProgress)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + } + + InternalResponsesResponseStreamEventResponseFileSearchCallInProgress IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFileSearchCallInProgress)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallInProgress)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallInProgress(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseFileSearchCallInProgress DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallInProgress(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseFileSearchCallInProgress(kind, additionalBinaryDataProperties, itemId, outputIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallInProgress)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseFileSearchCallInProgress IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFileSearchCallInProgress)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallInProgress(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallInProgress)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseFileSearchCallInProgress internalResponsesResponseStreamEventResponseFileSearchCallInProgress) + { + if (internalResponsesResponseStreamEventResponseFileSearchCallInProgress == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseFileSearchCallInProgress, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseFileSearchCallInProgress(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallInProgress(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.cs new file mode 100644 index 000000000..087397506 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallInProgress : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseFileSearchCallInProgress(string itemId, int outputIndex) : base(StreamingResponseUpdateKind.ResponseFileSearchCallInProgress) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + internal InternalResponsesResponseStreamEventResponseFileSearchCallInProgress(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallSearching.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallSearching.Serialization.cs new file mode 100644 index 000000000..28cc75730 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallSearching.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallSearching : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseFileSearchCallSearching() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallSearching)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + } + + InternalResponsesResponseStreamEventResponseFileSearchCallSearching IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFileSearchCallSearching)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallSearching)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallSearching(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseFileSearchCallSearching DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallSearching(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseFileSearchCallSearching(kind, additionalBinaryDataProperties, itemId, outputIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallSearching)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseFileSearchCallSearching IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFileSearchCallSearching)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallSearching(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFileSearchCallSearching)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseFileSearchCallSearching internalResponsesResponseStreamEventResponseFileSearchCallSearching) + { + if (internalResponsesResponseStreamEventResponseFileSearchCallSearching == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseFileSearchCallSearching, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseFileSearchCallSearching(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallSearching(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallSearching.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallSearching.cs new file mode 100644 index 000000000..3f173ae73 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFileSearchCallSearching.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFileSearchCallSearching : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseFileSearchCallSearching(string itemId, int outputIndex) : base(StreamingResponseUpdateKind.ResponseFileSearchCallSearching) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + internal InternalResponsesResponseStreamEventResponseFileSearchCallSearching(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.Serialization.cs new file mode 100644 index 000000000..12f407045 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.Serialization.cs @@ -0,0 +1,152 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("delta") != true) + { + writer.WritePropertyName("delta"u8); + writer.WriteStringValue(Delta); + } + } + + InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + string delta = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("delta"u8)) + { + delta = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(kind, additionalBinaryDataProperties, itemId, outputIndex, delta); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta internalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta) + { + if (internalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.cs new file mode 100644 index 000000000..81e5ca120 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(string itemId, int outputIndex, string delta) : base(StreamingResponseUpdateKind.ResponseFunctionCallArgumentsDelta) + { + ItemId = itemId; + OutputIndex = outputIndex; + Delta = delta; + } + + internal InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, string delta) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + Delta = delta; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public string Delta { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.Serialization.cs new file mode 100644 index 000000000..b3d7d407b --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.Serialization.cs @@ -0,0 +1,152 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("arguments") != true) + { + writer.WritePropertyName("arguments"u8); + writer.WriteStringValue(Arguments); + } + } + + InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + string arguments = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("arguments"u8)) + { + arguments = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(kind, additionalBinaryDataProperties, itemId, outputIndex, arguments); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone internalResponsesResponseStreamEventResponseFunctionCallArgumentsDone) + { + if (internalResponsesResponseStreamEventResponseFunctionCallArgumentsDone == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseFunctionCallArgumentsDone, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.cs new file mode 100644 index 000000000..13cba08b7 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(string itemId, int outputIndex, string arguments) : base(StreamingResponseUpdateKind.ResponseFunctionCallArgumentsDone) + { + ItemId = itemId; + OutputIndex = outputIndex; + Arguments = arguments; + } + + internal InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, string arguments) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + Arguments = arguments; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public string Arguments { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseInProgress.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseInProgress.Serialization.cs new file mode 100644 index 000000000..006043d77 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseInProgress.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseInProgress : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseInProgress() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseInProgress)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("response") != true) + { + writer.WritePropertyName("response"u8); + writer.WriteObjectValue(Response, options); + } + } + + InternalResponsesResponseStreamEventResponseInProgress IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseInProgress)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseInProgress)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseInProgress(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseInProgress DeserializeInternalResponsesResponseStreamEventResponseInProgress(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + OpenAIResponse response = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("response"u8)) + { + response = OpenAIResponse.DeserializeOpenAIResponse(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseInProgress(kind, additionalBinaryDataProperties, response); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseInProgress)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseInProgress IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseInProgress)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseInProgress(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseInProgress)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseInProgress internalResponsesResponseStreamEventResponseInProgress) + { + if (internalResponsesResponseStreamEventResponseInProgress == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseInProgress, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseInProgress(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseInProgress(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseInProgress.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseInProgress.cs new file mode 100644 index 000000000..e6a2866bc --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseInProgress.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseInProgress : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseInProgress(OpenAIResponse response) : base(StreamingResponseUpdateKind.ResponseInProgress) + { + Response = response; + } + + internal InternalResponsesResponseStreamEventResponseInProgress(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, OpenAIResponse response) : base(kind, additionalBinaryDataProperties) + { + Response = response; + } + + public OpenAIResponse Response { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseIncomplete.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseIncomplete.Serialization.cs new file mode 100644 index 000000000..be1e8ce82 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseIncomplete.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseIncomplete : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseIncomplete() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseIncomplete)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("response") != true) + { + writer.WritePropertyName("response"u8); + writer.WriteObjectValue(Response, options); + } + } + + InternalResponsesResponseStreamEventResponseIncomplete IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseIncomplete)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseIncomplete)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseIncomplete(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseIncomplete DeserializeInternalResponsesResponseStreamEventResponseIncomplete(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + OpenAIResponse response = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("response"u8)) + { + response = OpenAIResponse.DeserializeOpenAIResponse(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseIncomplete(kind, additionalBinaryDataProperties, response); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseIncomplete)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseIncomplete IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseIncomplete)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseIncomplete(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseIncomplete)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseIncomplete internalResponsesResponseStreamEventResponseIncomplete) + { + if (internalResponsesResponseStreamEventResponseIncomplete == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseIncomplete, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseIncomplete(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseIncomplete(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseIncomplete.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseIncomplete.cs new file mode 100644 index 000000000..4a1809a57 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseIncomplete.cs @@ -0,0 +1,24 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseIncomplete : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseIncomplete(OpenAIResponse response) : base(StreamingResponseUpdateKind.ResponseIncomplete) + { + Response = response; + } + + internal InternalResponsesResponseStreamEventResponseIncomplete(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, OpenAIResponse response) : base(kind, additionalBinaryDataProperties) + { + Response = response; + } + + public OpenAIResponse Response { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemAdded.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemAdded.Serialization.cs new file mode 100644 index 000000000..87911a394 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemAdded.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputItemAdded : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseOutputItemAdded() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemAdded)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("item") != true) + { + writer.WritePropertyName("item"u8); + writer.WriteObjectValue(Item, options); + } + } + + InternalResponsesResponseStreamEventResponseOutputItemAdded IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputItemAdded)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemAdded)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseOutputItemAdded(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseOutputItemAdded DeserializeInternalResponsesResponseStreamEventResponseOutputItemAdded(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + int outputIndex = default; + ResponseItem item = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("item"u8)) + { + item = ResponseItem.DeserializeResponseItem(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseOutputItemAdded(kind, additionalBinaryDataProperties, outputIndex, item); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemAdded)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseOutputItemAdded IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputItemAdded)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseOutputItemAdded(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemAdded)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseOutputItemAdded internalResponsesResponseStreamEventResponseOutputItemAdded) + { + if (internalResponsesResponseStreamEventResponseOutputItemAdded == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseOutputItemAdded, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseOutputItemAdded(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseOutputItemAdded(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemAdded.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemAdded.cs new file mode 100644 index 000000000..b474694eb --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemAdded.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputItemAdded : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseOutputItemAdded(int outputIndex, ResponseItem item) : base(StreamingResponseUpdateKind.ResponseOutputItemAdded) + { + OutputIndex = outputIndex; + Item = item; + } + + internal InternalResponsesResponseStreamEventResponseOutputItemAdded(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, int outputIndex, ResponseItem item) : base(kind, additionalBinaryDataProperties) + { + OutputIndex = outputIndex; + Item = item; + } + + public int OutputIndex { get; } + + public ResponseItem Item { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemDone.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemDone.Serialization.cs new file mode 100644 index 000000000..1751f53f1 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemDone.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputItemDone : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseOutputItemDone() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemDone)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("item") != true) + { + writer.WritePropertyName("item"u8); + writer.WriteObjectValue(Item, options); + } + } + + InternalResponsesResponseStreamEventResponseOutputItemDone IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputItemDone)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemDone)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseOutputItemDone(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseOutputItemDone DeserializeInternalResponsesResponseStreamEventResponseOutputItemDone(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + int outputIndex = default; + ResponseItem item = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("item"u8)) + { + item = ResponseItem.DeserializeResponseItem(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseOutputItemDone(kind, additionalBinaryDataProperties, outputIndex, item); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemDone)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseOutputItemDone IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputItemDone)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseOutputItemDone(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputItemDone)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseOutputItemDone internalResponsesResponseStreamEventResponseOutputItemDone) + { + if (internalResponsesResponseStreamEventResponseOutputItemDone == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseOutputItemDone, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseOutputItemDone(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseOutputItemDone(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemDone.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemDone.cs new file mode 100644 index 000000000..2b9753143 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputItemDone.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputItemDone : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseOutputItemDone(int outputIndex, ResponseItem item) : base(StreamingResponseUpdateKind.ResponseOutputItemDone) + { + OutputIndex = outputIndex; + Item = item; + } + + internal InternalResponsesResponseStreamEventResponseOutputItemDone(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, int outputIndex, ResponseItem item) : base(kind, additionalBinaryDataProperties) + { + OutputIndex = outputIndex; + Item = item; + } + + public int OutputIndex { get; } + + public ResponseItem Item { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDelta.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDelta.Serialization.cs new file mode 100644 index 000000000..1dfc65ff3 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDelta.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputTextDelta : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseOutputTextDelta() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDelta)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("delta") != true) + { + writer.WritePropertyName("delta"u8); + writer.WriteStringValue(Delta); + } + } + + InternalResponsesResponseStreamEventResponseOutputTextDelta IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputTextDelta)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDelta)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseOutputTextDelta(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseOutputTextDelta DeserializeInternalResponsesResponseStreamEventResponseOutputTextDelta(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + string delta = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("delta"u8)) + { + delta = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseOutputTextDelta( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + delta); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDelta)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseOutputTextDelta IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputTextDelta)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseOutputTextDelta(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDelta)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseOutputTextDelta internalResponsesResponseStreamEventResponseOutputTextDelta) + { + if (internalResponsesResponseStreamEventResponseOutputTextDelta == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseOutputTextDelta, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseOutputTextDelta(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseOutputTextDelta(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDelta.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDelta.cs new file mode 100644 index 000000000..e2d7de570 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDelta.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputTextDelta : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseOutputTextDelta(string itemId, int outputIndex, int contentIndex, string delta) : base(StreamingResponseUpdateKind.ResponseOutputTextDelta) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Delta = delta; + } + + internal InternalResponsesResponseStreamEventResponseOutputTextDelta(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, string delta) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Delta = delta; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + + public string Delta { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDone.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDone.Serialization.cs new file mode 100644 index 000000000..7b87f6831 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDone.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputTextDone : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseOutputTextDone() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDone)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + } + + InternalResponsesResponseStreamEventResponseOutputTextDone IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputTextDone)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDone)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseOutputTextDone(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseOutputTextDone DeserializeInternalResponsesResponseStreamEventResponseOutputTextDone(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + string text = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("text"u8)) + { + text = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseOutputTextDone( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + text); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDone)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseOutputTextDone IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseOutputTextDone)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseOutputTextDone(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseOutputTextDone)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseOutputTextDone internalResponsesResponseStreamEventResponseOutputTextDone) + { + if (internalResponsesResponseStreamEventResponseOutputTextDone == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseOutputTextDone, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseOutputTextDone(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseOutputTextDone(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDone.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDone.cs new file mode 100644 index 000000000..b469bbdf2 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseOutputTextDone.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseOutputTextDone : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseOutputTextDone(string itemId, int outputIndex, int contentIndex, string text) : base(StreamingResponseUpdateKind.ResponseOutputTextDone) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Text = text; + } + + internal InternalResponsesResponseStreamEventResponseOutputTextDone(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, string text) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Text = text; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + + public string Text { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDelta.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDelta.Serialization.cs new file mode 100644 index 000000000..1dbe0a4e1 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDelta.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseRefusalDelta : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseRefusalDelta() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDelta)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("delta") != true) + { + writer.WritePropertyName("delta"u8); + writer.WriteStringValue(Delta); + } + } + + InternalResponsesResponseStreamEventResponseRefusalDelta IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseRefusalDelta)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDelta)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseRefusalDelta(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseRefusalDelta DeserializeInternalResponsesResponseStreamEventResponseRefusalDelta(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + string delta = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("delta"u8)) + { + delta = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseRefusalDelta( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + delta); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDelta)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseRefusalDelta IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseRefusalDelta)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseRefusalDelta(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDelta)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseRefusalDelta internalResponsesResponseStreamEventResponseRefusalDelta) + { + if (internalResponsesResponseStreamEventResponseRefusalDelta == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseRefusalDelta, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseRefusalDelta(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseRefusalDelta(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDelta.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDelta.cs new file mode 100644 index 000000000..be4fa6e83 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDelta.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseRefusalDelta : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseRefusalDelta(string itemId, int outputIndex, int contentIndex, string delta) : base(StreamingResponseUpdateKind.ResponseRefusalDelta) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Delta = delta; + } + + internal InternalResponsesResponseStreamEventResponseRefusalDelta(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, string delta) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Delta = delta; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + + public string Delta { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDone.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDone.Serialization.cs new file mode 100644 index 000000000..63adbf086 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDone.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseRefusalDone : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseRefusalDone() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDone)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("refusal") != true) + { + writer.WritePropertyName("refusal"u8); + writer.WriteStringValue(Refusal); + } + } + + InternalResponsesResponseStreamEventResponseRefusalDone IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseRefusalDone)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDone)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseRefusalDone(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseRefusalDone DeserializeInternalResponsesResponseStreamEventResponseRefusalDone(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + string refusal = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("refusal"u8)) + { + refusal = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseRefusalDone( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + refusal); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDone)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseRefusalDone IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseRefusalDone)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseRefusalDone(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseRefusalDone)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseRefusalDone internalResponsesResponseStreamEventResponseRefusalDone) + { + if (internalResponsesResponseStreamEventResponseRefusalDone == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseRefusalDone, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseRefusalDone(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseRefusalDone(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDone.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDone.cs new file mode 100644 index 000000000..fa075e674 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseRefusalDone.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseRefusalDone : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseRefusalDone(string itemId, int outputIndex, int contentIndex, string refusal) : base(StreamingResponseUpdateKind.ResponseRefusalDone) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Refusal = refusal; + } + + internal InternalResponsesResponseStreamEventResponseRefusalDone(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, string refusal) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Refusal = refusal; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + + public string Refusal { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.Serialization.cs new file mode 100644 index 000000000..ec060b1ee --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallCompleted : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseWebSearchCallCompleted() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallCompleted)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + } + + InternalResponsesResponseStreamEventResponseWebSearchCallCompleted IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseWebSearchCallCompleted)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallCompleted)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallCompleted(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseWebSearchCallCompleted DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallCompleted(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseWebSearchCallCompleted(kind, additionalBinaryDataProperties, itemId, outputIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallCompleted)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseWebSearchCallCompleted IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseWebSearchCallCompleted)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallCompleted(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallCompleted)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseWebSearchCallCompleted internalResponsesResponseStreamEventResponseWebSearchCallCompleted) + { + if (internalResponsesResponseStreamEventResponseWebSearchCallCompleted == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseWebSearchCallCompleted, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseWebSearchCallCompleted(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallCompleted(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.cs new file mode 100644 index 000000000..2ebed9a87 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallCompleted : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseWebSearchCallCompleted(string itemId, int outputIndex) : base(StreamingResponseUpdateKind.ResponseWebSearchCallCompleted) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + internal InternalResponsesResponseStreamEventResponseWebSearchCallCompleted(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.Serialization.cs new file mode 100644 index 000000000..4fe297cff --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallInProgress : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseWebSearchCallInProgress() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallInProgress)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + } + + InternalResponsesResponseStreamEventResponseWebSearchCallInProgress IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseWebSearchCallInProgress)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallInProgress)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallInProgress(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseWebSearchCallInProgress DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallInProgress(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseWebSearchCallInProgress(kind, additionalBinaryDataProperties, itemId, outputIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallInProgress)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseWebSearchCallInProgress IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseWebSearchCallInProgress)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallInProgress(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallInProgress)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseWebSearchCallInProgress internalResponsesResponseStreamEventResponseWebSearchCallInProgress) + { + if (internalResponsesResponseStreamEventResponseWebSearchCallInProgress == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseWebSearchCallInProgress, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseWebSearchCallInProgress(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallInProgress(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.cs new file mode 100644 index 000000000..f393659dc --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallInProgress : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseWebSearchCallInProgress(string itemId, int outputIndex) : base(StreamingResponseUpdateKind.ResponseWebSearchCallInProgress) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + internal InternalResponsesResponseStreamEventResponseWebSearchCallInProgress(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallSearching.Serialization.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallSearching.Serialization.cs new file mode 100644 index 000000000..d64ae15a8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallSearching.Serialization.cs @@ -0,0 +1,141 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallSearching : IJsonModel + { + internal InternalResponsesResponseStreamEventResponseWebSearchCallSearching() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallSearching)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + } + + InternalResponsesResponseStreamEventResponseWebSearchCallSearching IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseWebSearchCallSearching)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallSearching)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallSearching(document.RootElement, options); + } + + internal static InternalResponsesResponseStreamEventResponseWebSearchCallSearching DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallSearching(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesResponseStreamEventResponseWebSearchCallSearching(kind, additionalBinaryDataProperties, itemId, outputIndex); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallSearching)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesResponseStreamEventResponseWebSearchCallSearching IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesResponseStreamEventResponseWebSearchCallSearching)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallSearching(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesResponseStreamEventResponseWebSearchCallSearching)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesResponseStreamEventResponseWebSearchCallSearching internalResponsesResponseStreamEventResponseWebSearchCallSearching) + { + if (internalResponsesResponseStreamEventResponseWebSearchCallSearching == null) + { + return null; + } + return BinaryContent.Create(internalResponsesResponseStreamEventResponseWebSearchCallSearching, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesResponseStreamEventResponseWebSearchCallSearching(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallSearching(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallSearching.cs b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallSearching.cs new file mode 100644 index 000000000..8419952ce --- /dev/null +++ b/src/Generated/Models/InternalResponsesResponseStreamEventResponseWebSearchCallSearching.cs @@ -0,0 +1,28 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesResponseStreamEventResponseWebSearchCallSearching : StreamingResponseUpdate + { + internal InternalResponsesResponseStreamEventResponseWebSearchCallSearching(string itemId, int outputIndex) : base(StreamingResponseUpdateKind.ResponseWebSearchCallSearching) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + internal InternalResponsesResponseStreamEventResponseWebSearchCallSearching(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + } +} diff --git a/src/Generated/Models/InternalResponsesSystemMessage.Serialization.cs b/src/Generated/Models/InternalResponsesSystemMessage.Serialization.cs new file mode 100644 index 000000000..4091bd4e2 --- /dev/null +++ b/src/Generated/Models/InternalResponsesSystemMessage.Serialization.cs @@ -0,0 +1,168 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesSystemMessage : IJsonModel + { + internal InternalResponsesSystemMessage() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesSystemMessage)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) + { + writer.WritePropertyName("content"u8); + writer.WriteStartArray(); + foreach (ResponseContentPart item in InternalContent) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + InternalResponsesSystemMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesSystemMessage)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesSystemMessage)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesSystemMessage(document.RootElement, options); + } + + internal static InternalResponsesSystemMessage DeserializeInternalResponsesSystemMessage(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + MessageStatus? status = default; + MessageRole role = default; + IList internalContent = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToMessageStatus(); + continue; + } + if (prop.NameEquals("role"u8)) + { + role = new MessageRole(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("content"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseContentPart.DeserializeResponseContentPart(item, options)); + } + internalContent = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesSystemMessage( + @type, + id, + additionalBinaryDataProperties, + status, + role, + internalContent); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesSystemMessage)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesSystemMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesSystemMessage)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesSystemMessage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesSystemMessage)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesSystemMessage internalResponsesSystemMessage) + { + if (internalResponsesSystemMessage == null) + { + return null; + } + return BinaryContent.Create(internalResponsesSystemMessage, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesSystemMessage(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesSystemMessage(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesSystemMessage.cs b/src/Generated/Models/InternalResponsesSystemMessage.cs new file mode 100644 index 000000000..72741eae0 --- /dev/null +++ b/src/Generated/Models/InternalResponsesSystemMessage.cs @@ -0,0 +1,19 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesSystemMessage : MessageResponseItem + { + internal InternalResponsesSystemMessage(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, MessageStatus? status, MessageRole role, IList internalContent) : base(@type, id, additionalBinaryDataProperties, status, role) + { + // Plugin customization: ensure initialization of collection + InternalContent = internalContent ?? new ChangeTrackingList(); + } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatJsonObject.Serialization.cs b/src/Generated/Models/InternalResponsesTextFormatJsonObject.Serialization.cs new file mode 100644 index 000000000..ac1040462 --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatJsonObject.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesTextFormatJsonObject : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonObject)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesTextFormatJsonObject IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesTextFormatJsonObject)JsonModelCreateCore(ref reader, options); + + protected override ResponseTextFormat JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonObject)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesTextFormatJsonObject(document.RootElement, options); + } + + internal static InternalResponsesTextFormatJsonObject DeserializeInternalResponsesTextFormatJsonObject(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesTextFormatType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesTextFormatType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesTextFormatJsonObject(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonObject)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesTextFormatJsonObject IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesTextFormatJsonObject)PersistableModelCreateCore(data, options); + + protected override ResponseTextFormat PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesTextFormatJsonObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonObject)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesTextFormatJsonObject internalResponsesTextFormatJsonObject) + { + if (internalResponsesTextFormatJsonObject == null) + { + return null; + } + return BinaryContent.Create(internalResponsesTextFormatJsonObject, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesTextFormatJsonObject(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesTextFormatJsonObject(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatJsonObject.cs b/src/Generated/Models/InternalResponsesTextFormatJsonObject.cs new file mode 100644 index 000000000..56b3b2aa1 --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatJsonObject.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesTextFormatJsonObject : ResponseTextFormat + { + public InternalResponsesTextFormatJsonObject() : base(InternalResponsesTextFormatType.JsonObject) + { + } + + internal InternalResponsesTextFormatJsonObject(InternalResponsesTextFormatType @type, IDictionary additionalBinaryDataProperties) : base(@type, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatJsonSchema.Serialization.cs b/src/Generated/Models/InternalResponsesTextFormatJsonSchema.Serialization.cs new file mode 100644 index 000000000..0a81aa8c4 --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatJsonSchema.Serialization.cs @@ -0,0 +1,181 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesTextFormatJsonSchema : IJsonModel + { + internal InternalResponsesTextFormatJsonSchema() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonSchema)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("name") != true) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + if (_additionalBinaryDataProperties?.ContainsKey("schema") != true) + { + writer.WritePropertyName("schema"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(Schema); +#else + using (JsonDocument document = JsonDocument.Parse(Schema)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + if (Optional.IsDefined(Description) && _additionalBinaryDataProperties?.ContainsKey("description") != true) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + if (Optional.IsDefined(Strict) && _additionalBinaryDataProperties?.ContainsKey("strict") != true) + { + writer.WritePropertyName("strict"u8); + writer.WriteBooleanValue(Strict.Value); + } + } + + InternalResponsesTextFormatJsonSchema IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesTextFormatJsonSchema)JsonModelCreateCore(ref reader, options); + + protected override ResponseTextFormat JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonSchema)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesTextFormatJsonSchema(document.RootElement, options); + } + + internal static InternalResponsesTextFormatJsonSchema DeserializeInternalResponsesTextFormatJsonSchema(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesTextFormatType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string name = default; + BinaryData schema = default; + string description = default; + bool? strict = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesTextFormatType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("schema"u8)) + { + schema = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + if (prop.NameEquals("description"u8)) + { + description = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("strict"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + strict = null; + continue; + } + strict = prop.Value.GetBoolean(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesTextFormatJsonSchema( + @type, + additionalBinaryDataProperties, + name, + schema, + description, + strict); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonSchema)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesTextFormatJsonSchema IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesTextFormatJsonSchema)PersistableModelCreateCore(data, options); + + protected override ResponseTextFormat PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesTextFormatJsonSchema(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesTextFormatJsonSchema)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesTextFormatJsonSchema internalResponsesTextFormatJsonSchema) + { + if (internalResponsesTextFormatJsonSchema == null) + { + return null; + } + return BinaryContent.Create(internalResponsesTextFormatJsonSchema, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesTextFormatJsonSchema(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesTextFormatJsonSchema(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatJsonSchema.cs b/src/Generated/Models/InternalResponsesTextFormatJsonSchema.cs new file mode 100644 index 000000000..873138a5c --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatJsonSchema.cs @@ -0,0 +1,38 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesTextFormatJsonSchema : ResponseTextFormat + { + public InternalResponsesTextFormatJsonSchema(string name, BinaryData schema) : base(InternalResponsesTextFormatType.JsonSchema) + { + Argument.AssertNotNull(name, nameof(name)); + Argument.AssertNotNull(schema, nameof(schema)); + + Name = name; + Schema = schema; + } + + internal InternalResponsesTextFormatJsonSchema(InternalResponsesTextFormatType @type, IDictionary additionalBinaryDataProperties, string name, BinaryData schema, string description, bool? strict) : base(@type, additionalBinaryDataProperties) + { + Name = name; + Schema = schema; + Description = description; + Strict = strict; + } + + public string Name { get; set; } + + public BinaryData Schema { get; set; } + + public string Description { get; set; } + + public bool? Strict { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatText.Serialization.cs b/src/Generated/Models/InternalResponsesTextFormatText.Serialization.cs new file mode 100644 index 000000000..4830ba78d --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatText.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesTextFormatText : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesTextFormatText)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesTextFormatText IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesTextFormatText)JsonModelCreateCore(ref reader, options); + + protected override ResponseTextFormat JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesTextFormatText)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesTextFormatText(document.RootElement, options); + } + + internal static InternalResponsesTextFormatText DeserializeInternalResponsesTextFormatText(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesTextFormatType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesTextFormatType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesTextFormatText(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesTextFormatText)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesTextFormatText IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesTextFormatText)PersistableModelCreateCore(data, options); + + protected override ResponseTextFormat PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesTextFormatText(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesTextFormatText)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesTextFormatText internalResponsesTextFormatText) + { + if (internalResponsesTextFormatText == null) + { + return null; + } + return BinaryContent.Create(internalResponsesTextFormatText, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesTextFormatText(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesTextFormatText(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatText.cs b/src/Generated/Models/InternalResponsesTextFormatText.cs new file mode 100644 index 000000000..6669f3e52 --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatText.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesTextFormatText : ResponseTextFormat + { + public InternalResponsesTextFormatText() : base(InternalResponsesTextFormatType.Text) + { + } + + internal InternalResponsesTextFormatText(InternalResponsesTextFormatType @type, IDictionary additionalBinaryDataProperties) : base(@type, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesTextFormatType.cs b/src/Generated/Models/InternalResponsesTextFormatType.cs new file mode 100644 index 000000000..f1ae82f1e --- /dev/null +++ b/src/Generated/Models/InternalResponsesTextFormatType.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesTextFormatType : IEquatable + { + private readonly string _value; + private const string TextValue = "text"; + private const string JsonObjectValue = "json_object"; + private const string JsonSchemaValue = "json_schema"; + + public InternalResponsesTextFormatType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesTextFormatType Text { get; } = new InternalResponsesTextFormatType(TextValue); + + public static InternalResponsesTextFormatType JsonObject { get; } = new InternalResponsesTextFormatType(JsonObjectValue); + + public static InternalResponsesTextFormatType JsonSchema { get; } = new InternalResponsesTextFormatType(JsonSchemaValue); + + public static bool operator ==(InternalResponsesTextFormatType left, InternalResponsesTextFormatType right) => left.Equals(right); + + public static bool operator !=(InternalResponsesTextFormatType left, InternalResponsesTextFormatType right) => !left.Equals(right); + + public static implicit operator InternalResponsesTextFormatType(string value) => new InternalResponsesTextFormatType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesTextFormatType other && Equals(other); + + public bool Equals(InternalResponsesTextFormatType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObject.Serialization.cs b/src/Generated/Models/InternalResponsesToolChoiceObject.Serialization.cs new file mode 100644 index 000000000..b59403728 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObject.Serialization.cs @@ -0,0 +1,145 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + [PersistableModelProxy(typeof(UnknownResponsesToolChoiceObject))] + internal abstract partial class InternalResponsesToolChoiceObject : IJsonModel + { + internal InternalResponsesToolChoiceObject() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalResponsesToolChoiceObject IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalResponsesToolChoiceObject JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesToolChoiceObject(document.RootElement, options); + } + + internal static InternalResponsesToolChoiceObject DeserializeInternalResponsesToolChoiceObject(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "function": + return InternalResponsesToolChoiceObjectFunction.DeserializeInternalResponsesToolChoiceObjectFunction(element, options); + case "file_search": + return InternalResponsesToolChoiceObjectFileSearch.DeserializeInternalResponsesToolChoiceObjectFileSearch(element, options); + case "web_search_preview": + return InternalResponsesToolChoiceObjectWebSearch.DeserializeInternalResponsesToolChoiceObjectWebSearch(element, options); + case "computer_use_preview": + return InternalResponsesToolChoiceObjectComputer.DeserializeInternalResponsesToolChoiceObjectComputer(element, options); + } + } + return UnknownResponsesToolChoiceObject.DeserializeUnknownResponsesToolChoiceObject(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesToolChoiceObject IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalResponsesToolChoiceObject PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesToolChoiceObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesToolChoiceObject internalResponsesToolChoiceObject) + { + if (internalResponsesToolChoiceObject == null) + { + return null; + } + return BinaryContent.Create(internalResponsesToolChoiceObject, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesToolChoiceObject(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesToolChoiceObject(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObject.cs b/src/Generated/Models/InternalResponsesToolChoiceObject.cs new file mode 100644 index 000000000..87a6f0a55 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObject.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal abstract partial class InternalResponsesToolChoiceObject + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected InternalResponsesToolChoiceObject(InternalResponsesToolChoiceObjectType @type) + { + Type = @type; + } + + internal InternalResponsesToolChoiceObject(InternalResponsesToolChoiceObjectType @type, IDictionary additionalBinaryDataProperties) + { + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal InternalResponsesToolChoiceObjectType Type { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectComputer.Serialization.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectComputer.Serialization.cs new file mode 100644 index 000000000..a08566a04 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectComputer.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectComputer : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectComputer)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesToolChoiceObjectComputer IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectComputer)JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesToolChoiceObject JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectComputer)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesToolChoiceObjectComputer(document.RootElement, options); + } + + internal static InternalResponsesToolChoiceObjectComputer DeserializeInternalResponsesToolChoiceObjectComputer(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolChoiceObjectType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolChoiceObjectType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesToolChoiceObjectComputer(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectComputer)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesToolChoiceObjectComputer IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectComputer)PersistableModelCreateCore(data, options); + + protected override InternalResponsesToolChoiceObject PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesToolChoiceObjectComputer(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectComputer)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesToolChoiceObjectComputer internalResponsesToolChoiceObjectComputer) + { + if (internalResponsesToolChoiceObjectComputer == null) + { + return null; + } + return BinaryContent.Create(internalResponsesToolChoiceObjectComputer, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesToolChoiceObjectComputer(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesToolChoiceObjectComputer(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectComputer.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectComputer.cs new file mode 100644 index 000000000..2d90183c8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectComputer.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectComputer : InternalResponsesToolChoiceObject + { + public InternalResponsesToolChoiceObjectComputer() : base(InternalResponsesToolChoiceObjectType.Computer) + { + } + + internal InternalResponsesToolChoiceObjectComputer(InternalResponsesToolChoiceObjectType @type, IDictionary additionalBinaryDataProperties) : base(@type, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectFileSearch.Serialization.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectFileSearch.Serialization.cs new file mode 100644 index 000000000..43949e978 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectFileSearch.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectFileSearch : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFileSearch)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesToolChoiceObjectFileSearch IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectFileSearch)JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesToolChoiceObject JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFileSearch)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesToolChoiceObjectFileSearch(document.RootElement, options); + } + + internal static InternalResponsesToolChoiceObjectFileSearch DeserializeInternalResponsesToolChoiceObjectFileSearch(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolChoiceObjectType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolChoiceObjectType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesToolChoiceObjectFileSearch(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFileSearch)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesToolChoiceObjectFileSearch IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectFileSearch)PersistableModelCreateCore(data, options); + + protected override InternalResponsesToolChoiceObject PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesToolChoiceObjectFileSearch(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFileSearch)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesToolChoiceObjectFileSearch internalResponsesToolChoiceObjectFileSearch) + { + if (internalResponsesToolChoiceObjectFileSearch == null) + { + return null; + } + return BinaryContent.Create(internalResponsesToolChoiceObjectFileSearch, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesToolChoiceObjectFileSearch(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesToolChoiceObjectFileSearch(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectFileSearch.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectFileSearch.cs new file mode 100644 index 000000000..a52643b75 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectFileSearch.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectFileSearch : InternalResponsesToolChoiceObject + { + public InternalResponsesToolChoiceObjectFileSearch() : base(InternalResponsesToolChoiceObjectType.FileSearch) + { + } + + internal InternalResponsesToolChoiceObjectFileSearch(InternalResponsesToolChoiceObjectType @type, IDictionary additionalBinaryDataProperties) : base(@type, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectFunction.Serialization.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectFunction.Serialization.cs new file mode 100644 index 000000000..f5bc26bee --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectFunction.Serialization.cs @@ -0,0 +1,130 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectFunction : IJsonModel + { + internal InternalResponsesToolChoiceObjectFunction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFunction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("name") != true) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + } + + InternalResponsesToolChoiceObjectFunction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectFunction)JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesToolChoiceObject JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFunction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesToolChoiceObjectFunction(document.RootElement, options); + } + + internal static InternalResponsesToolChoiceObjectFunction DeserializeInternalResponsesToolChoiceObjectFunction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolChoiceObjectType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string name = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolChoiceObjectType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesToolChoiceObjectFunction(@type, additionalBinaryDataProperties, name); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFunction)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesToolChoiceObjectFunction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectFunction)PersistableModelCreateCore(data, options); + + protected override InternalResponsesToolChoiceObject PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesToolChoiceObjectFunction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectFunction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesToolChoiceObjectFunction internalResponsesToolChoiceObjectFunction) + { + if (internalResponsesToolChoiceObjectFunction == null) + { + return null; + } + return BinaryContent.Create(internalResponsesToolChoiceObjectFunction, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesToolChoiceObjectFunction(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesToolChoiceObjectFunction(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectFunction.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectFunction.cs new file mode 100644 index 000000000..366bc4408 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectFunction.cs @@ -0,0 +1,27 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectFunction : InternalResponsesToolChoiceObject + { + public InternalResponsesToolChoiceObjectFunction(string name) : base(InternalResponsesToolChoiceObjectType.Function) + { + Argument.AssertNotNull(name, nameof(name)); + + Name = name; + } + + internal InternalResponsesToolChoiceObjectFunction(InternalResponsesToolChoiceObjectType @type, IDictionary additionalBinaryDataProperties, string name) : base(@type, additionalBinaryDataProperties) + { + Name = name; + } + + public string Name { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectType.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectType.cs new file mode 100644 index 000000000..5f4efd4de --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectType.cs @@ -0,0 +1,50 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesToolChoiceObjectType : IEquatable + { + private readonly string _value; + private const string FunctionValue = "function"; + private const string FileSearchValue = "file_search"; + private const string WebSearchValue = "web_search_preview"; + private const string ComputerValue = "computer_use_preview"; + + public InternalResponsesToolChoiceObjectType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesToolChoiceObjectType Function { get; } = new InternalResponsesToolChoiceObjectType(FunctionValue); + + public static InternalResponsesToolChoiceObjectType FileSearch { get; } = new InternalResponsesToolChoiceObjectType(FileSearchValue); + + public static InternalResponsesToolChoiceObjectType WebSearch { get; } = new InternalResponsesToolChoiceObjectType(WebSearchValue); + + public static InternalResponsesToolChoiceObjectType Computer { get; } = new InternalResponsesToolChoiceObjectType(ComputerValue); + + public static bool operator ==(InternalResponsesToolChoiceObjectType left, InternalResponsesToolChoiceObjectType right) => left.Equals(right); + + public static bool operator !=(InternalResponsesToolChoiceObjectType left, InternalResponsesToolChoiceObjectType right) => !left.Equals(right); + + public static implicit operator InternalResponsesToolChoiceObjectType(string value) => new InternalResponsesToolChoiceObjectType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesToolChoiceObjectType other && Equals(other); + + public bool Equals(InternalResponsesToolChoiceObjectType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectWebSearch.Serialization.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectWebSearch.Serialization.cs new file mode 100644 index 000000000..f3138056e --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectWebSearch.Serialization.cs @@ -0,0 +1,115 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectWebSearch : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectWebSearch)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesToolChoiceObjectWebSearch IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectWebSearch)JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesToolChoiceObject JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectWebSearch)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesToolChoiceObjectWebSearch(document.RootElement, options); + } + + internal static InternalResponsesToolChoiceObjectWebSearch DeserializeInternalResponsesToolChoiceObjectWebSearch(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolChoiceObjectType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolChoiceObjectType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesToolChoiceObjectWebSearch(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectWebSearch)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesToolChoiceObjectWebSearch IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesToolChoiceObjectWebSearch)PersistableModelCreateCore(data, options); + + protected override InternalResponsesToolChoiceObject PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesToolChoiceObjectWebSearch(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObjectWebSearch)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesToolChoiceObjectWebSearch internalResponsesToolChoiceObjectWebSearch) + { + if (internalResponsesToolChoiceObjectWebSearch == null) + { + return null; + } + return BinaryContent.Create(internalResponsesToolChoiceObjectWebSearch, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesToolChoiceObjectWebSearch(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesToolChoiceObjectWebSearch(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceObjectWebSearch.cs b/src/Generated/Models/InternalResponsesToolChoiceObjectWebSearch.cs new file mode 100644 index 000000000..405863e56 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceObjectWebSearch.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesToolChoiceObjectWebSearch : InternalResponsesToolChoiceObject + { + public InternalResponsesToolChoiceObjectWebSearch() : base(InternalResponsesToolChoiceObjectType.WebSearch) + { + } + + internal InternalResponsesToolChoiceObjectWebSearch(InternalResponsesToolChoiceObjectType @type, IDictionary additionalBinaryDataProperties) : base(@type, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalResponsesToolChoiceOption.cs b/src/Generated/Models/InternalResponsesToolChoiceOption.cs new file mode 100644 index 000000000..cb38a66df --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolChoiceOption.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesToolChoiceOption : IEquatable + { + private readonly string _value; + private const string NoneValue = "none"; + private const string AutoValue = "auto"; + private const string RequiredValue = "required"; + + public InternalResponsesToolChoiceOption(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesToolChoiceOption None { get; } = new InternalResponsesToolChoiceOption(NoneValue); + + public static InternalResponsesToolChoiceOption Auto { get; } = new InternalResponsesToolChoiceOption(AutoValue); + + public static InternalResponsesToolChoiceOption Required { get; } = new InternalResponsesToolChoiceOption(RequiredValue); + + public static bool operator ==(InternalResponsesToolChoiceOption left, InternalResponsesToolChoiceOption right) => left.Equals(right); + + public static bool operator !=(InternalResponsesToolChoiceOption left, InternalResponsesToolChoiceOption right) => !left.Equals(right); + + public static implicit operator InternalResponsesToolChoiceOption(string value) => new InternalResponsesToolChoiceOption(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesToolChoiceOption other && Equals(other); + + public bool Equals(InternalResponsesToolChoiceOption other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesToolType.cs b/src/Generated/Models/InternalResponsesToolType.cs new file mode 100644 index 000000000..9cc3bf6a2 --- /dev/null +++ b/src/Generated/Models/InternalResponsesToolType.cs @@ -0,0 +1,50 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + internal readonly partial struct InternalResponsesToolType : IEquatable + { + private readonly string _value; + private const string FunctionValue = "function"; + private const string FileSearchValue = "file_search"; + private const string WebSearchValue = "web_search_preview"; + private const string ComputerValue = "computer_use_preview"; + + public InternalResponsesToolType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalResponsesToolType Function { get; } = new InternalResponsesToolType(FunctionValue); + + public static InternalResponsesToolType FileSearch { get; } = new InternalResponsesToolType(FileSearchValue); + + public static InternalResponsesToolType WebSearch { get; } = new InternalResponsesToolType(WebSearchValue); + + public static InternalResponsesToolType Computer { get; } = new InternalResponsesToolType(ComputerValue); + + public static bool operator ==(InternalResponsesToolType left, InternalResponsesToolType right) => left.Equals(right); + + public static bool operator !=(InternalResponsesToolType left, InternalResponsesToolType right) => !left.Equals(right); + + public static implicit operator InternalResponsesToolType(string value) => new InternalResponsesToolType(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalResponsesToolType other && Equals(other); + + public bool Equals(InternalResponsesToolType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalResponsesUserMessage.Serialization.cs b/src/Generated/Models/InternalResponsesUserMessage.Serialization.cs new file mode 100644 index 000000000..91f13368e --- /dev/null +++ b/src/Generated/Models/InternalResponsesUserMessage.Serialization.cs @@ -0,0 +1,168 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesUserMessage : IJsonModel + { + internal InternalResponsesUserMessage() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesUserMessage)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) + { + writer.WritePropertyName("content"u8); + writer.WriteStartArray(); + foreach (ResponseContentPart item in InternalContent) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + InternalResponsesUserMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesUserMessage)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesUserMessage)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesUserMessage(document.RootElement, options); + } + + internal static InternalResponsesUserMessage DeserializeInternalResponsesUserMessage(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + MessageStatus? status = default; + MessageRole role = default; + IList internalContent = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToMessageStatus(); + continue; + } + if (prop.NameEquals("role"u8)) + { + role = new MessageRole(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("content"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseContentPart.DeserializeResponseContentPart(item, options)); + } + internalContent = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesUserMessage( + @type, + id, + additionalBinaryDataProperties, + status, + role, + internalContent); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesUserMessage)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesUserMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesUserMessage)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesUserMessage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesUserMessage)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesUserMessage internalResponsesUserMessage) + { + if (internalResponsesUserMessage == null) + { + return null; + } + return BinaryContent.Create(internalResponsesUserMessage, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesUserMessage(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesUserMessage(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesUserMessage.cs b/src/Generated/Models/InternalResponsesUserMessage.cs new file mode 100644 index 000000000..426997a87 --- /dev/null +++ b/src/Generated/Models/InternalResponsesUserMessage.cs @@ -0,0 +1,19 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesUserMessage : MessageResponseItem + { + internal InternalResponsesUserMessage(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, MessageStatus? status, MessageRole role, IList internalContent) : base(@type, id, additionalBinaryDataProperties, status, role) + { + // Plugin customization: ensure initialization of collection + InternalContent = internalContent ?? new ChangeTrackingList(); + } + } +} diff --git a/src/Generated/Models/InternalResponsesWebSearchApproximateLocation.Serialization.cs b/src/Generated/Models/InternalResponsesWebSearchApproximateLocation.Serialization.cs new file mode 100644 index 000000000..f70ce13dd --- /dev/null +++ b/src/Generated/Models/InternalResponsesWebSearchApproximateLocation.Serialization.cs @@ -0,0 +1,165 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesWebSearchApproximateLocation : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesWebSearchApproximateLocation)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Country) && _additionalBinaryDataProperties?.ContainsKey("country") != true) + { + writer.WritePropertyName("country"u8); + writer.WriteStringValue(Country); + } + if (Optional.IsDefined(Region) && _additionalBinaryDataProperties?.ContainsKey("region") != true) + { + writer.WritePropertyName("region"u8); + writer.WriteStringValue(Region); + } + if (Optional.IsDefined(City) && _additionalBinaryDataProperties?.ContainsKey("city") != true) + { + writer.WritePropertyName("city"u8); + writer.WriteStringValue(City); + } + if (Optional.IsDefined(Timezone) && _additionalBinaryDataProperties?.ContainsKey("timezone") != true) + { + writer.WritePropertyName("timezone"u8); + writer.WriteStringValue(Timezone); + } + } + + InternalResponsesWebSearchApproximateLocation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesWebSearchApproximateLocation)JsonModelCreateCore(ref reader, options); + + protected override WebSearchToolLocation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesWebSearchApproximateLocation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesWebSearchApproximateLocation(document.RootElement, options); + } + + internal static InternalResponsesWebSearchApproximateLocation DeserializeInternalResponsesWebSearchApproximateLocation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string @type = "approximate"; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string country = default; + string region = default; + string city = default; + string timezone = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("country"u8)) + { + country = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("region"u8)) + { + region = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("city"u8)) + { + city = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("timezone"u8)) + { + timezone = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesWebSearchApproximateLocation( + @type, + additionalBinaryDataProperties, + country, + region, + city, + timezone); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesWebSearchApproximateLocation)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesWebSearchApproximateLocation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesWebSearchApproximateLocation)PersistableModelCreateCore(data, options); + + protected override WebSearchToolLocation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesWebSearchApproximateLocation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesWebSearchApproximateLocation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesWebSearchApproximateLocation internalResponsesWebSearchApproximateLocation) + { + if (internalResponsesWebSearchApproximateLocation == null) + { + return null; + } + return BinaryContent.Create(internalResponsesWebSearchApproximateLocation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesWebSearchApproximateLocation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesWebSearchApproximateLocation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesWebSearchApproximateLocation.cs b/src/Generated/Models/InternalResponsesWebSearchApproximateLocation.cs new file mode 100644 index 000000000..68609630b --- /dev/null +++ b/src/Generated/Models/InternalResponsesWebSearchApproximateLocation.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesWebSearchApproximateLocation : WebSearchToolLocation + { + public InternalResponsesWebSearchApproximateLocation() + { + } + + internal InternalResponsesWebSearchApproximateLocation(string @type, IDictionary additionalBinaryDataProperties, string country, string region, string city, string timezone) : base(@type, additionalBinaryDataProperties) + { + Country = country; + Region = region; + City = city; + Timezone = timezone; + } + + public string Country { get; set; } + + public string Region { get; set; } + + public string City { get; set; } + + public string Timezone { get; set; } + } +} diff --git a/src/Generated/Models/InternalResponsesWebSearchTool.Serialization.cs b/src/Generated/Models/InternalResponsesWebSearchTool.Serialization.cs new file mode 100644 index 000000000..a5de85eac --- /dev/null +++ b/src/Generated/Models/InternalResponsesWebSearchTool.Serialization.cs @@ -0,0 +1,145 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesWebSearchTool : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesWebSearchTool)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(UserLocation) && _additionalBinaryDataProperties?.ContainsKey("user_location") != true) + { + writer.WritePropertyName("user_location"u8); + writer.WriteObjectValue(UserLocation, options); + } + if (Optional.IsDefined(SearchContextSize) && _additionalBinaryDataProperties?.ContainsKey("search_context_size") != true) + { + writer.WritePropertyName("search_context_size"u8); + writer.WriteStringValue(SearchContextSize.Value.ToString()); + } + } + + InternalResponsesWebSearchTool IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalResponsesWebSearchTool)JsonModelCreateCore(ref reader, options); + + protected override ResponseTool JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesWebSearchTool)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesWebSearchTool(document.RootElement, options); + } + + internal static InternalResponsesWebSearchTool DeserializeInternalResponsesWebSearchTool(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + WebSearchToolLocation userLocation = default; + WebSearchToolContextSize? searchContextSize = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("user_location"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + userLocation = WebSearchToolLocation.DeserializeWebSearchToolLocation(prop.Value, options); + continue; + } + if (prop.NameEquals("search_context_size"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + searchContextSize = new WebSearchToolContextSize(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalResponsesWebSearchTool(@type, additionalBinaryDataProperties, userLocation, searchContextSize); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesWebSearchTool)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesWebSearchTool IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalResponsesWebSearchTool)PersistableModelCreateCore(data, options); + + protected override ResponseTool PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesWebSearchTool(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesWebSearchTool)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalResponsesWebSearchTool internalResponsesWebSearchTool) + { + if (internalResponsesWebSearchTool == null) + { + return null; + } + return BinaryContent.Create(internalResponsesWebSearchTool, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalResponsesWebSearchTool(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalResponsesWebSearchTool(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalResponsesWebSearchTool.cs b/src/Generated/Models/InternalResponsesWebSearchTool.cs new file mode 100644 index 000000000..83f625dc8 --- /dev/null +++ b/src/Generated/Models/InternalResponsesWebSearchTool.cs @@ -0,0 +1,26 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalResponsesWebSearchTool : ResponseTool + { + public InternalResponsesWebSearchTool() : base(InternalResponsesToolType.WebSearch) + { + } + + internal InternalResponsesWebSearchTool(InternalResponsesToolType @type, IDictionary additionalBinaryDataProperties, WebSearchToolLocation userLocation, WebSearchToolContextSize? searchContextSize) : base(@type, additionalBinaryDataProperties) + { + UserLocation = userLocation; + SearchContextSize = searchContextSize; + } + + public WebSearchToolLocation UserLocation { get; set; } + + public WebSearchToolContextSize? SearchContextSize { get; set; } + } +} diff --git a/src/Generated/Models/InternalRunObjectRequiredActionSubmitToolOutputs.Serialization.cs b/src/Generated/Models/InternalRunObjectRequiredActionSubmitToolOutputs.Serialization.cs index 27de37212..46539bda9 100644 --- a/src/Generated/Models/InternalRunObjectRequiredActionSubmitToolOutputs.Serialization.cs +++ b/src/Generated/Models/InternalRunObjectRequiredActionSubmitToolOutputs.Serialization.cs @@ -27,7 +27,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalRunObjectRequiredActionSubmitToolOutputs)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) + if (_additionalBinaryDataProperties?.ContainsKey("tool_calls") != true) { writer.WritePropertyName("tool_calls"u8); writer.WriteStartArray(); @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -91,10 +91,7 @@ internal static InternalRunObjectRequiredActionSubmitToolOutputs DeserializeInte toolCalls = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunObjectRequiredActionSubmitToolOutputs(toolCalls, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunRequiredAction.Serialization.cs b/src/Generated/Models/InternalRunRequiredAction.Serialization.cs index 34c1dad54..df0e0a0f2 100644 --- a/src/Generated/Models/InternalRunRequiredAction.Serialization.cs +++ b/src/Generated/Models/InternalRunRequiredAction.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteObjectValue(Type, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalRunRequiredAction DeserializeInternalRunRequiredAction(J @type = prop.Value.GetObject(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunRequiredAction(submitToolOutputs, @type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepCodeInterpreterLogOutput.Serialization.cs b/src/Generated/Models/InternalRunStepCodeInterpreterLogOutput.Serialization.cs index 747bb9d1b..5b85bda72 100644 --- a/src/Generated/Models/InternalRunStepCodeInterpreterLogOutput.Serialization.cs +++ b/src/Generated/Models/InternalRunStepCodeInterpreterLogOutput.Serialization.cs @@ -73,10 +73,7 @@ internal static InternalRunStepCodeInterpreterLogOutput DeserializeInternalRunSt internalLogs = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepCodeInterpreterLogOutput(@type, additionalBinaryDataProperties, internalLogs); } diff --git a/src/Generated/Models/InternalRunStepDelta.Serialization.cs b/src/Generated/Models/InternalRunStepDelta.Serialization.cs index 62f763820..9afb4e72a 100644 --- a/src/Generated/Models/InternalRunStepDelta.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDelta.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteObjectValue(this.Object, options); + writer.WriteObjectValue(Object, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalRunStepDelta DeserializeInternalRunStepDelta(JsonElement @object = prop.Value.GetObject(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDelta(id, delta, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDelta.cs b/src/Generated/Models/InternalRunStepDelta.cs index 2734d84a0..828b44a5e 100644 --- a/src/Generated/Models/InternalRunStepDelta.cs +++ b/src/Generated/Models/InternalRunStepDelta.cs @@ -21,7 +21,7 @@ internal InternalRunStepDelta(string id, InternalRunStepDeltaObjectDelta delta, { Id = id; Delta = delta; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/InternalRunStepDeltaObjectDelta.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaObjectDelta.Serialization.cs index a0765a8d4..159a42b9d 100644 --- a/src/Generated/Models/InternalRunStepDeltaObjectDelta.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaObjectDelta.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("step_details"u8); writer.WriteObjectValue(StepDetails, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalRunStepDeltaObjectDelta DeserializeInternalRunStepDeltaO stepDetails = InternalRunStepDeltaStepDetails.DeserializeInternalRunStepDeltaStepDetails(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaObjectDelta(stepDetails, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetails.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetails.Serialization.cs index 43c72487a..427714c03 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetails.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetails.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObject.Serialization.cs index 5ff003063..64fb7e2c9 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObject.Serialization.cs @@ -73,10 +73,7 @@ internal static InternalRunStepDeltaStepDetailsMessageCreationObject Deserialize messageCreation = InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation.DeserializeInternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsMessageCreationObject(@type, additionalBinaryDataProperties, messageCreation); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation.Serialization.cs index 5655786b7..b9744c04e 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message_id"u8); writer.WriteStringValue(MessageId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -81,10 +81,7 @@ internal static InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreat messageId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsMessageCreationObjectMessageCreation(messageId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObject.Serialization.cs index ce626cea9..2ef6c6192 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObject.Serialization.cs @@ -99,10 +99,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsCodeObject DeserializeIn codeInterpreter = InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter.DeserializeInternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsCodeObject(@type, additionalBinaryDataProperties, index, id, codeInterpreter); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs index 241f9bf57..f5197ba8b 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("input"u8); writer.WriteStringValue(Input); } - if (true && Optional.IsCollectionDefined(Outputs) && _additionalBinaryDataProperties?.ContainsKey("outputs") != true) + if (Optional.IsCollectionDefined(Outputs) && _additionalBinaryDataProperties?.ContainsKey("outputs") != true) { writer.WritePropertyName("outputs"u8); writer.WriteStartArray(); @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -106,10 +106,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterprete outputs = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter(input, outputs ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject.Serialization.cs index 019556250..9955c8044 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject.Serialization.cs @@ -88,10 +88,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject De image = InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage.DeserializeInternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObject(@type, additionalBinaryDataProperties, index, image); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs index 55c28ee7b..7171718da 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_id"u8); writer.WriteStringValue(FileId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -81,10 +81,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectIma fileId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsCodeOutputImageObjectImage(fileId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject.Serialization.cs index 829a1d703..3d16e8a98 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject.Serialization.cs @@ -84,10 +84,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject Des internalLogs = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsCodeOutputLogsObject(@type, additionalBinaryDataProperties, index, internalLogs); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObject.Serialization.cs index 20fd03648..3fac49451 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObject.Serialization.cs @@ -45,7 +45,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("file_search") != true) { writer.WritePropertyName("file_search"u8); - writer.WriteObjectValue(FileSearch, options); + writer.WriteObjectValue(FileSearch, options); } } @@ -95,10 +95,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsFileSearchObject Deseria fileSearch = InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.DeserializeInternalRunStepDetailsToolCallsFileSearchObjectFileSearch(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsFileSearchObject(@type, additionalBinaryDataProperties, index, id, fileSearch); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs index 6b443b8b1..7f41f6d24 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs @@ -27,7 +27,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch)} does not support writing '{format}' format."); } - if (true && Optional.IsCollectionDefined(Results) && _additionalBinaryDataProperties?.ContainsKey("results") != true) + if (Optional.IsCollectionDefined(Results) && _additionalBinaryDataProperties?.ContainsKey("results") != true) { writer.WritePropertyName("results"u8); writer.WriteStartArray(); @@ -40,9 +40,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(RankingOptions) && _additionalBinaryDataProperties?.ContainsKey("ranking_options") != true) { writer.WritePropertyName("ranking_options"u8); - writer.WriteObjectValue(RankingOptions, options); + writer.WriteObjectValue(RankingOptions, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -110,10 +110,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSear rankingOptions = FileSearchRankingOptions.DeserializeFileSearchRankingOptions(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsFileSearchObjectFileSearch(results ?? new ChangeTrackingList(), rankingOptions, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObject.Serialization.cs index a15bf2fe0..e40afde54 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObject.Serialization.cs @@ -99,10 +99,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsFunctionObject Deseriali function = InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction.DeserializeInternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsFunctionObject(@type, additionalBinaryDataProperties, index, id, function); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction.Serialization.cs index 082734f3b..41c02a000 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction.Serialization.cs @@ -39,17 +39,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Output) && _additionalBinaryDataProperties?.ContainsKey("output") != true) { - if (Output != null) - { - writer.WritePropertyName("output"u8); - writer.WriteStringValue(Output); - } - else - { - writer.WriteNull("output"u8); - } + writer.WritePropertyName("output"u8); + writer.WriteStringValue(Output); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -115,10 +108,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction D output = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsFunctionObjectFunction(name, arguments, output, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObject.Serialization.cs index 4c7d10c26..2238b8e9f 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObject.Serialization.cs @@ -83,10 +83,7 @@ internal static InternalRunStepDeltaStepDetailsToolCallsObject DeserializeIntern toolCalls = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDeltaStepDetailsToolCallsObject(@type, additionalBinaryDataProperties, toolCalls ?? new ChangeTrackingList()); } diff --git a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs index 89ea067c0..760405f31 100644 --- a/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/InternalRunStepDetailsMessageCreationObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsMessageCreationObject.Serialization.cs index 70ac2892d..cdb893735 100644 --- a/src/Generated/Models/InternalRunStepDetailsMessageCreationObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsMessageCreationObject.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("message_creation") != true) { writer.WritePropertyName("message_creation"u8); - writer.WriteObjectValue(_messageCreation, options); + writer.WriteObjectValue(_messageCreation, options); } } @@ -73,10 +73,7 @@ internal static InternalRunStepDetailsMessageCreationObject DeserializeInternalR messageCreation = InternalRunStepDetailsMessageCreationObjectMessageCreation.DeserializeInternalRunStepDetailsMessageCreationObjectMessageCreation(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsMessageCreationObject(@type, additionalBinaryDataProperties, messageCreation); } diff --git a/src/Generated/Models/InternalRunStepDetailsMessageCreationObjectMessageCreation.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsMessageCreationObjectMessageCreation.Serialization.cs index 863ffedb1..4efd7836c 100644 --- a/src/Generated/Models/InternalRunStepDetailsMessageCreationObjectMessageCreation.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsMessageCreationObjectMessageCreation.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message_id"u8); writer.WriteStringValue(MessageId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalRunStepDetailsMessageCreationObjectMessageCreation Deser messageId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsMessageCreationObjectMessageCreation(messageId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.Serialization.cs index ee963279b..4775f9581 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.Serialization.cs @@ -59,7 +59,7 @@ internal static InternalRunStepDetailsToolCallsCodeObject DeserializeInternalRun return null; } string id = default; - Assistants.RunStepToolCallKind kind = default; + RunStepToolCallKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter codeInterpreter = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static InternalRunStepDetailsToolCallsCodeObject DeserializeInternalRun codeInterpreter = InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter.DeserializeInternalRunStepDetailsToolCallsCodeObjectCodeInterpreter(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsCodeObject(id, kind, additionalBinaryDataProperties, codeInterpreter); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.cs index 1901d9b3a..de2dade56 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObject.cs @@ -9,12 +9,12 @@ namespace OpenAI.Assistants { internal partial class InternalRunStepDetailsToolCallsCodeObject : RunStepToolCall { - internal InternalRunStepDetailsToolCallsCodeObject(string id, InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter codeInterpreter) : base(id, Assistants.RunStepToolCallKind.CodeInterpreter) + internal InternalRunStepDetailsToolCallsCodeObject(string id, InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter codeInterpreter) : base(id, RunStepToolCallKind.CodeInterpreter) { CodeInterpreter = codeInterpreter; } - internal InternalRunStepDetailsToolCallsCodeObject(string id, Assistants.RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties, InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter codeInterpreter) : base(id, kind, additionalBinaryDataProperties) + internal InternalRunStepDetailsToolCallsCodeObject(string id, RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties, InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter codeInterpreter) : base(id, kind, additionalBinaryDataProperties) { CodeInterpreter = codeInterpreter; } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs index cb8f8026b..b83e9c3af 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("input"u8); writer.WriteStringValue(Input); } - if (true && _additionalBinaryDataProperties?.ContainsKey("outputs") != true) + if (_additionalBinaryDataProperties?.ContainsKey("outputs") != true) { writer.WritePropertyName("outputs"u8); writer.WriteStartArray(); @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -106,10 +106,7 @@ internal static InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter Deseria outputs = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsCodeObjectCodeInterpreter(input, outputs, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObject.Serialization.cs index 7b3184aff..05e0ef525 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObject.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("image") != true) { writer.WritePropertyName("image"u8); - writer.WriteObjectValue(_image, options); + writer.WriteObjectValue(_image, options); } } @@ -73,10 +73,7 @@ internal static InternalRunStepDetailsToolCallsCodeOutputImageObject Deserialize image = InternalRunStepDetailsToolCallsCodeOutputImageObjectImage.DeserializeInternalRunStepDetailsToolCallsCodeOutputImageObjectImage(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsCodeOutputImageObject(@type, additionalBinaryDataProperties, image); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs index 1f2497850..9eae18630 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsCodeOutputImageObjectImage.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_id"u8); writer.WriteStringValue(FileId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalRunStepDetailsToolCallsCodeOutputImageObjectImage Deseri fileId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsCodeOutputImageObjectImage(fileId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.Serialization.cs index c3383210e..992fe5e0f 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.Serialization.cs @@ -59,7 +59,7 @@ internal static InternalRunStepDetailsToolCallsFileSearchObject DeserializeInter return null; } string id = default; - Assistants.RunStepToolCallKind kind = default; + RunStepToolCallKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRunStepDetailsToolCallsFileSearchObjectFileSearch fileSearch = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static InternalRunStepDetailsToolCallsFileSearchObject DeserializeInter fileSearch = InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.DeserializeInternalRunStepDetailsToolCallsFileSearchObjectFileSearch(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsFileSearchObject(id, kind, additionalBinaryDataProperties, fileSearch); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.cs index 3346c806c..bb4dea596 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObject.cs @@ -9,12 +9,12 @@ namespace OpenAI.Assistants { internal partial class InternalRunStepDetailsToolCallsFileSearchObject : RunStepToolCall { - internal InternalRunStepDetailsToolCallsFileSearchObject(string id, InternalRunStepDetailsToolCallsFileSearchObjectFileSearch fileSearch) : base(id, Assistants.RunStepToolCallKind.FileSearch) + internal InternalRunStepDetailsToolCallsFileSearchObject(string id, InternalRunStepDetailsToolCallsFileSearchObjectFileSearch fileSearch) : base(id, RunStepToolCallKind.FileSearch) { FileSearch = fileSearch; } - internal InternalRunStepDetailsToolCallsFileSearchObject(string id, Assistants.RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties, InternalRunStepDetailsToolCallsFileSearchObjectFileSearch fileSearch) : base(id, kind, additionalBinaryDataProperties) + internal InternalRunStepDetailsToolCallsFileSearchObject(string id, RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties, InternalRunStepDetailsToolCallsFileSearchObjectFileSearch fileSearch) : base(id, kind, additionalBinaryDataProperties) { FileSearch = fileSearch; } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs index a19bd3e96..6ad6794e5 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchObjectFileSearch.Serialization.cs @@ -27,7 +27,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(InternalRunStepDetailsToolCallsFileSearchObjectFileSearch)} does not support writing '{format}' format."); } - if (true && Optional.IsCollectionDefined(Results) && _additionalBinaryDataProperties?.ContainsKey("results") != true) + if (Optional.IsCollectionDefined(Results) && _additionalBinaryDataProperties?.ContainsKey("results") != true) { writer.WritePropertyName("results"u8); writer.WriteStartArray(); @@ -40,9 +40,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(RankingOptions) && _additionalBinaryDataProperties?.ContainsKey("ranking_options") != true) { writer.WritePropertyName("ranking_options"u8); - writer.WriteObjectValue(RankingOptions, options); + writer.WriteObjectValue(RankingOptions, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -110,10 +110,7 @@ internal static InternalRunStepDetailsToolCallsFileSearchObjectFileSearch Deseri rankingOptions = FileSearchRankingOptions.DeserializeFileSearchRankingOptions(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsFileSearchObjectFileSearch(results ?? new ChangeTrackingList(), rankingOptions, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.Serialization.cs index abb3aecef..46631bd19 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("score_threshold"u8); writer.WriteNumberValue(ScoreThreshold); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -81,14 +81,14 @@ internal static InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject De { return null; } - InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker ranker = default; + FileSearchRanker ranker = default; float scoreThreshold = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { if (prop.NameEquals("ranker"u8)) { - ranker = new InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker(prop.Value.GetString()); + ranker = new FileSearchRanker(prop.Value.GetString()); continue; } if (prop.NameEquals("score_threshold"u8)) @@ -96,10 +96,7 @@ internal static InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject De scoreThreshold = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject(ranker, scoreThreshold, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.cs index e0e24642a..966fd8132 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject.cs @@ -11,19 +11,20 @@ internal partial class InternalRunStepDetailsToolCallsFileSearchRankingOptionsOb { private protected IDictionary _additionalBinaryDataProperties; - internal InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject(float scoreThreshold) + internal InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject(FileSearchRanker ranker, float scoreThreshold) { + Ranker = ranker; ScoreThreshold = scoreThreshold; } - internal InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject(InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker ranker, float scoreThreshold, IDictionary additionalBinaryDataProperties) + internal InternalRunStepDetailsToolCallsFileSearchRankingOptionsObject(FileSearchRanker ranker, float scoreThreshold, IDictionary additionalBinaryDataProperties) { Ranker = ranker; ScoreThreshold = scoreThreshold; _additionalBinaryDataProperties = additionalBinaryDataProperties; } - public InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker Ranker { get; } = "default_2024_08_21"; + public FileSearchRanker Ranker { get; } public float ScoreThreshold { get; } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker.cs deleted file mode 100644 index 03d987094..000000000 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker.cs +++ /dev/null @@ -1,41 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - internal readonly partial struct InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker : IEquatable - { - private readonly string _value; - private const string Default20240821Value = "default_2024_08_21"; - - public InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker Default20240821 { get; } = new InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker(Default20240821Value); - - public static bool operator ==(InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker left, InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker right) => left.Equals(right); - - public static bool operator !=(InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker left, InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker right) => !left.Equals(right); - - public static implicit operator InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker(string value) => new InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker other && Equals(other); - - public bool Equals(InternalRunStepDetailsToolCallsFileSearchRankingOptionsObjectRanker other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.Serialization.cs index b2de59874..d1c28641d 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.Serialization.cs @@ -59,7 +59,7 @@ internal static InternalRunStepDetailsToolCallsFunctionObject DeserializeInterna return null; } string id = default; - Assistants.RunStepToolCallKind kind = default; + RunStepToolCallKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); InternalRunStepDetailsToolCallsFunctionObjectFunction function = default; foreach (var prop in element.EnumerateObject()) @@ -79,10 +79,7 @@ internal static InternalRunStepDetailsToolCallsFunctionObject DeserializeInterna function = InternalRunStepDetailsToolCallsFunctionObjectFunction.DeserializeInternalRunStepDetailsToolCallsFunctionObjectFunction(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsFunctionObject(id, kind, additionalBinaryDataProperties, function); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.cs index a6c864fee..e86326594 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObject.cs @@ -9,12 +9,12 @@ namespace OpenAI.Assistants { internal partial class InternalRunStepDetailsToolCallsFunctionObject : RunStepToolCall { - internal InternalRunStepDetailsToolCallsFunctionObject(string id, InternalRunStepDetailsToolCallsFunctionObjectFunction function) : base(id, Assistants.RunStepToolCallKind.Function) + internal InternalRunStepDetailsToolCallsFunctionObject(string id, InternalRunStepDetailsToolCallsFunctionObjectFunction function) : base(id, RunStepToolCallKind.Function) { Function = function; } - internal InternalRunStepDetailsToolCallsFunctionObject(string id, Assistants.RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties, InternalRunStepDetailsToolCallsFunctionObjectFunction function) : base(id, kind, additionalBinaryDataProperties) + internal InternalRunStepDetailsToolCallsFunctionObject(string id, RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties, InternalRunStepDetailsToolCallsFunctionObjectFunction function) : base(id, kind, additionalBinaryDataProperties) { Function = function; } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObjectFunction.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObjectFunction.Serialization.cs index ae3bbe299..5d14c57ab 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObjectFunction.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsFunctionObjectFunction.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("output") != true) { - if (Output != null) + if (Optional.IsDefined(Output)) { writer.WritePropertyName("output"u8); writer.WriteStringValue(Output); @@ -53,7 +53,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("output"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -119,10 +119,7 @@ internal static InternalRunStepDetailsToolCallsFunctionObjectFunction Deserializ output = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsFunctionObjectFunction(name, arguments, output, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalRunStepDetailsToolCallsObject.Serialization.cs b/src/Generated/Models/InternalRunStepDetailsToolCallsObject.Serialization.cs index 06127716e..5f9d04fb0 100644 --- a/src/Generated/Models/InternalRunStepDetailsToolCallsObject.Serialization.cs +++ b/src/Generated/Models/InternalRunStepDetailsToolCallsObject.Serialization.cs @@ -83,10 +83,7 @@ internal static InternalRunStepDetailsToolCallsObject DeserializeInternalRunStep internalToolCalls = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunStepDetailsToolCallsObject(@type, additionalBinaryDataProperties, internalToolCalls); } diff --git a/src/Generated/Models/InternalRunToolCallObjectFunction.Serialization.cs b/src/Generated/Models/InternalRunToolCallObjectFunction.Serialization.cs index 1b944e191..4d09c1430 100644 --- a/src/Generated/Models/InternalRunToolCallObjectFunction.Serialization.cs +++ b/src/Generated/Models/InternalRunToolCallObjectFunction.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("arguments"u8); writer.WriteStringValue(Arguments); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalRunToolCallObjectFunction DeserializeInternalRunToolCall arguments = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalRunToolCallObjectFunction(name, arguments, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalStaticChunkingStrategyDetails.Serialization.cs b/src/Generated/Models/InternalStaticChunkingStrategyDetails.Serialization.cs index 7042f12d0..234e13921 100644 --- a/src/Generated/Models/InternalStaticChunkingStrategyDetails.Serialization.cs +++ b/src/Generated/Models/InternalStaticChunkingStrategyDetails.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("chunk_overlap_tokens"u8); writer.WriteNumberValue(ChunkOverlapTokens); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static InternalStaticChunkingStrategyDetails DeserializeInternalStaticC chunkOverlapTokens = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalStaticChunkingStrategyDetails(maxChunkSizeTokens, chunkOverlapTokens, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalStaticChunkingStrategyRequestParam.Serialization.cs b/src/Generated/Models/InternalStaticChunkingStrategyRequestParam.Serialization.cs index 3058302f7..ce152a196 100644 --- a/src/Generated/Models/InternalStaticChunkingStrategyRequestParam.Serialization.cs +++ b/src/Generated/Models/InternalStaticChunkingStrategyRequestParam.Serialization.cs @@ -73,10 +73,7 @@ internal static InternalStaticChunkingStrategyRequestParam DeserializeInternalSt @static = InternalStaticChunkingStrategyDetails.DeserializeInternalStaticChunkingStrategyDetails(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalStaticChunkingStrategyRequestParam(@type, additionalBinaryDataProperties, @static); } diff --git a/src/Generated/Models/InternalSubmitToolOutputsRunRequest.Serialization.cs b/src/Generated/Models/InternalSubmitToolOutputsRunRequest.Serialization.cs index d2ffcbe89..89d62b32c 100644 --- a/src/Generated/Models/InternalSubmitToolOutputsRunRequest.Serialization.cs +++ b/src/Generated/Models/InternalSubmitToolOutputsRunRequest.Serialization.cs @@ -43,17 +43,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Stream) && _additionalBinaryDataProperties?.ContainsKey("stream") != true) { - if (Stream != null) - { - writer.WritePropertyName("stream"u8); - writer.WriteBooleanValue(Stream.Value); - } - else - { - writer.WriteNull("stream"u8); - } + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +111,7 @@ internal static InternalSubmitToolOutputsRunRequest DeserializeInternalSubmitToo stream = prop.Value.GetBoolean(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalSubmitToolOutputsRunRequest(toolOutputs, stream, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalThreadObjectToolResources.Serialization.cs b/src/Generated/Models/InternalThreadObjectToolResources.Serialization.cs index 131a2dc59..32677acc2 100644 --- a/src/Generated/Models/InternalThreadObjectToolResources.Serialization.cs +++ b/src/Generated/Models/InternalThreadObjectToolResources.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("file_search"u8); writer.WriteObjectValue(FileSearch, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static InternalThreadObjectToolResources DeserializeInternalThreadObjec fileSearch = InternalThreadObjectToolResourcesFileSearch.DeserializeInternalThreadObjectToolResourcesFileSearch(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalThreadObjectToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalThreadObjectToolResourcesCodeInterpreter.Serialization.cs b/src/Generated/Models/InternalThreadObjectToolResourcesCodeInterpreter.Serialization.cs index 0b41a7f14..d605c0c0d 100644 --- a/src/Generated/Models/InternalThreadObjectToolResourcesCodeInterpreter.Serialization.cs +++ b/src/Generated/Models/InternalThreadObjectToolResourcesCodeInterpreter.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalThreadObjectToolResourcesCodeInterpreter DeserializeInte fileIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalThreadObjectToolResourcesCodeInterpreter(fileIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalThreadObjectToolResourcesFileSearch.Serialization.cs b/src/Generated/Models/InternalThreadObjectToolResourcesFileSearch.Serialization.cs index 582798a12..1b6f8a38f 100644 --- a/src/Generated/Models/InternalThreadObjectToolResourcesFileSearch.Serialization.cs +++ b/src/Generated/Models/InternalThreadObjectToolResourcesFileSearch.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalThreadObjectToolResourcesFileSearch DeserializeInternalT vectorStoreIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalThreadObjectToolResourcesFileSearch(vectorStoreIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalTodoFineTuneChatRequestInput.Serialization.cs b/src/Generated/Models/InternalTodoFineTuneChatRequestInput.Serialization.cs index ce3cb7ed7..897d43baa 100644 --- a/src/Generated/Models/InternalTodoFineTuneChatRequestInput.Serialization.cs +++ b/src/Generated/Models/InternalTodoFineTuneChatRequestInput.Serialization.cs @@ -75,7 +75,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -180,10 +180,7 @@ internal static InternalTodoFineTuneChatRequestInput DeserializeInternalTodoFine functions = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalTodoFineTuneChatRequestInput(messages ?? new ChangeTrackingList(), tools ?? new ChangeTrackingList(), parallelToolCalls, functions ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalTodoFineTuneCompletionRequestInput.Serialization.cs b/src/Generated/Models/InternalTodoFineTuneCompletionRequestInput.Serialization.cs index ca2640d3d..c4f62fc89 100644 --- a/src/Generated/Models/InternalTodoFineTuneCompletionRequestInput.Serialization.cs +++ b/src/Generated/Models/InternalTodoFineTuneCompletionRequestInput.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("completion"u8); writer.WriteStringValue(Completion); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static InternalTodoFineTuneCompletionRequestInput DeserializeInternalTo completion = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalTodoFineTuneCompletionRequestInput(prompt, completion, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalTodoFineTuneDPOMethod.Serialization.cs b/src/Generated/Models/InternalTodoFineTuneDPOMethod.Serialization.cs index 5c6d3fbeb..a36ddd8b1 100644 --- a/src/Generated/Models/InternalTodoFineTuneDPOMethod.Serialization.cs +++ b/src/Generated/Models/InternalTodoFineTuneDPOMethod.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("hyperparameters"u8); writer.WriteObjectValue(Hyperparameters, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalTodoFineTuneDPOMethod DeserializeInternalTodoFineTuneDPO hyperparameters = InternalTodoFineTuneDPOMethodHyperparameters.DeserializeInternalTodoFineTuneDPOMethodHyperparameters(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalTodoFineTuneDPOMethod(hyperparameters, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalTodoFineTuneDPOMethodHyperparameters.Serialization.cs b/src/Generated/Models/InternalTodoFineTuneDPOMethodHyperparameters.Serialization.cs index 8cb18f1bf..d5cf833e4 100644 --- a/src/Generated/Models/InternalTodoFineTuneDPOMethodHyperparameters.Serialization.cs +++ b/src/Generated/Models/InternalTodoFineTuneDPOMethodHyperparameters.Serialization.cs @@ -75,7 +75,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } #endif } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -158,10 +158,7 @@ internal static InternalTodoFineTuneDPOMethodHyperparameters DeserializeInternal nEpochs = BinaryData.FromString(prop.Value.GetRawText()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalTodoFineTuneDPOMethodHyperparameters(beta, batchSize, learningRateMultiplier, nEpochs, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalTodoFineTuneMethod.Serialization.cs b/src/Generated/Models/InternalTodoFineTuneMethod.Serialization.cs index 222f56369..d085af683 100644 --- a/src/Generated/Models/InternalTodoFineTuneMethod.Serialization.cs +++ b/src/Generated/Models/InternalTodoFineTuneMethod.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("dpo"u8); writer.WriteObjectValue(Dpo, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -115,10 +115,7 @@ internal static InternalTodoFineTuneMethod DeserializeInternalTodoFineTuneMethod dpo = InternalTodoFineTuneDPOMethod.DeserializeInternalTodoFineTuneDPOMethod(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalTodoFineTuneMethod(@type, supervised, dpo, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalTodoFineTuneSupervisedMethod.Serialization.cs b/src/Generated/Models/InternalTodoFineTuneSupervisedMethod.Serialization.cs index eac268c8b..19da7c368 100644 --- a/src/Generated/Models/InternalTodoFineTuneSupervisedMethod.Serialization.cs +++ b/src/Generated/Models/InternalTodoFineTuneSupervisedMethod.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("hyperparameters"u8); writer.WriteObjectValue(Hyperparameters, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static InternalTodoFineTuneSupervisedMethod DeserializeInternalTodoFine hyperparameters = InternalFineTuneSupervisedMethodHyperparameters.DeserializeInternalFineTuneSupervisedMethodHyperparameters(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalTodoFineTuneSupervisedMethod(hyperparameters, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalToolResourcesFileSearchIdsOnly.Serialization.cs b/src/Generated/Models/InternalToolResourcesFileSearchIdsOnly.Serialization.cs index a01186ecb..7108c197e 100644 --- a/src/Generated/Models/InternalToolResourcesFileSearchIdsOnly.Serialization.cs +++ b/src/Generated/Models/InternalToolResourcesFileSearchIdsOnly.Serialization.cs @@ -42,7 +42,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static InternalToolResourcesFileSearchIdsOnly DeserializeInternalToolRe vectorStoreIds = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalToolResourcesFileSearchIdsOnly(vectorStoreIds ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownAssistantResponseFormat.Serialization.cs b/src/Generated/Models/InternalUnknownAssistantResponseFormat.Serialization.cs index e70f6e95d..3aba74623 100644 --- a/src/Generated/Models/InternalUnknownAssistantResponseFormat.Serialization.cs +++ b/src/Generated/Models/InternalUnknownAssistantResponseFormat.Serialization.cs @@ -43,7 +43,7 @@ protected override AssistantResponseFormat JsonModelCreateCore(ref Utf8JsonReade throw new FormatException($"The model {nameof(AssistantResponseFormat)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return AssistantResponseFormat.DeserializeAssistantResponseFormat(document.RootElement, options); + return DeserializeAssistantResponseFormat(document.RootElement, options); } internal static InternalUnknownAssistantResponseFormat DeserializeInternalUnknownAssistantResponseFormat(JsonElement element, ModelReaderWriterOptions options) @@ -61,10 +61,7 @@ internal static InternalUnknownAssistantResponseFormat DeserializeInternalUnknow @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownAssistantResponseFormat(@type, additionalBinaryDataProperties); } @@ -93,7 +90,7 @@ protected override AssistantResponseFormat PersistableModelCreateCore(BinaryData case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return AssistantResponseFormat.DeserializeAssistantResponseFormat(document.RootElement, options); + return DeserializeAssistantResponseFormat(document.RootElement, options); } default: throw new FormatException($"The model {nameof(AssistantResponseFormat)} does not support reading '{options.Format}' format."); diff --git a/src/Generated/Models/InternalUnknownChatMessage.Serialization.cs b/src/Generated/Models/InternalUnknownChatMessage.Serialization.cs index 70a0deb09..aeb26e5fa 100644 --- a/src/Generated/Models/InternalUnknownChatMessage.Serialization.cs +++ b/src/Generated/Models/InternalUnknownChatMessage.Serialization.cs @@ -46,7 +46,7 @@ internal static InternalUnknownChatMessage DeserializeInternalUnknownChatMessage return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -60,13 +60,9 @@ internal static InternalUnknownChatMessage DeserializeInternalUnknownChatMessage role = prop.Value.GetString().ToChatMessageRole(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. - return new InternalUnknownChatMessage(content ?? new ChatMessageContent(), role, additionalBinaryDataProperties); + return new InternalUnknownChatMessage(content, role, additionalBinaryDataProperties); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/InternalUnknownChatMessage.cs b/src/Generated/Models/InternalUnknownChatMessage.cs index 82bb59b2c..198373197 100644 --- a/src/Generated/Models/InternalUnknownChatMessage.cs +++ b/src/Generated/Models/InternalUnknownChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { internal partial class InternalUnknownChatMessage : ChatMessage { - internal InternalUnknownChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties) : base(content, role, additionalBinaryDataProperties) + internal InternalUnknownChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties) : base(content, role, additionalBinaryDataProperties) { } } diff --git a/src/Generated/Models/InternalUnknownChatOutputPrediction.Serialization.cs b/src/Generated/Models/InternalUnknownChatOutputPrediction.Serialization.cs index ba0c062c7..b33db7cbe 100644 --- a/src/Generated/Models/InternalUnknownChatOutputPrediction.Serialization.cs +++ b/src/Generated/Models/InternalUnknownChatOutputPrediction.Serialization.cs @@ -61,10 +61,7 @@ internal static InternalUnknownChatOutputPrediction DeserializeInternalUnknownCh @type = new InternalChatOutputPredictionKind(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownChatOutputPrediction(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownChatResponseFormat.Serialization.cs b/src/Generated/Models/InternalUnknownChatResponseFormat.Serialization.cs index 02fc947f9..57202ba22 100644 --- a/src/Generated/Models/InternalUnknownChatResponseFormat.Serialization.cs +++ b/src/Generated/Models/InternalUnknownChatResponseFormat.Serialization.cs @@ -54,10 +54,7 @@ internal static InternalUnknownChatResponseFormat DeserializeInternalUnknownChat @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownChatResponseFormat(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownChunkingStrategy.Serialization.cs b/src/Generated/Models/InternalUnknownChunkingStrategy.Serialization.cs index f1c5ccde0..abbd9adb0 100644 --- a/src/Generated/Models/InternalUnknownChunkingStrategy.Serialization.cs +++ b/src/Generated/Models/InternalUnknownChunkingStrategy.Serialization.cs @@ -58,10 +58,7 @@ internal static InternalUnknownChunkingStrategy DeserializeInternalUnknownChunki @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownChunkingStrategy(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownFileChunkingStrategyRequestParamProxy.Serialization.cs b/src/Generated/Models/InternalUnknownFileChunkingStrategyRequestParamProxy.Serialization.cs index 2d9e4a04e..8370f3d78 100644 --- a/src/Generated/Models/InternalUnknownFileChunkingStrategyRequestParamProxy.Serialization.cs +++ b/src/Generated/Models/InternalUnknownFileChunkingStrategyRequestParamProxy.Serialization.cs @@ -61,10 +61,7 @@ internal static InternalUnknownFileChunkingStrategyRequestParamProxy Deserialize @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownFileChunkingStrategyRequestParamProxy(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownFileChunkingStrategyResponseParamProxy.Serialization.cs b/src/Generated/Models/InternalUnknownFileChunkingStrategyResponseParamProxy.Serialization.cs index f0b262ddf..8c9e3c87a 100644 --- a/src/Generated/Models/InternalUnknownFileChunkingStrategyResponseParamProxy.Serialization.cs +++ b/src/Generated/Models/InternalUnknownFileChunkingStrategyResponseParamProxy.Serialization.cs @@ -61,10 +61,7 @@ internal static InternalUnknownFileChunkingStrategyResponseParamProxy Deserializ @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownFileChunkingStrategyResponseParamProxy(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownOmniTypedResponseFormat.Serialization.cs b/src/Generated/Models/InternalUnknownOmniTypedResponseFormat.Serialization.cs index f921f0ade..ebfe5bb1b 100644 --- a/src/Generated/Models/InternalUnknownOmniTypedResponseFormat.Serialization.cs +++ b/src/Generated/Models/InternalUnknownOmniTypedResponseFormat.Serialization.cs @@ -61,10 +61,7 @@ internal static InternalUnknownOmniTypedResponseFormat DeserializeInternalUnknow @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUnknownOmniTypedResponseFormat(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalUnknownResponsesItem.Serialization.cs b/src/Generated/Models/InternalUnknownResponsesItem.Serialization.cs new file mode 100644 index 000000000..18a303a07 --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesItem.Serialization.cs @@ -0,0 +1,108 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesItem : IJsonModel + { + internal InternalUnknownResponsesItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseItem(document.RootElement, options); + } + + internal static InternalUnknownResponsesItem DeserializeInternalUnknownResponsesItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalUnknownResponsesItem(@type, id, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseItem)} does not support writing '{options.Format}' format."); + } + } + + ResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesItem.cs b/src/Generated/Models/InternalUnknownResponsesItem.cs new file mode 100644 index 000000000..61edc1f89 --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesItem.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesItem : ResponseItem + { + internal InternalUnknownResponsesItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties) : base(@type != default ? @type : "unknown", id, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesMessage.Serialization.cs b/src/Generated/Models/InternalUnknownResponsesMessage.Serialization.cs new file mode 100644 index 000000000..c2982532f --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesMessage.Serialization.cs @@ -0,0 +1,124 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesMessage : IJsonModel + { + internal InternalUnknownResponsesMessage() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + MessageResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (InternalUnknownResponsesMessage)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageResponseItem(document.RootElement, options); + } + + internal static InternalUnknownResponsesMessage DeserializeInternalUnknownResponsesMessage(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + MessageStatus? status = default; + MessageRole role = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToMessageStatus(); + continue; + } + if (prop.NameEquals("role"u8)) + { + role = new MessageRole(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalUnknownResponsesMessage(@type, id, additionalBinaryDataProperties, status, role); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support writing '{options.Format}' format."); + } + } + + MessageResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (InternalUnknownResponsesMessage)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeMessageResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesMessage.cs b/src/Generated/Models/InternalUnknownResponsesMessage.cs new file mode 100644 index 000000000..346c0aae4 --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesMessage.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesMessage : MessageResponseItem + { + internal InternalUnknownResponsesMessage(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, MessageStatus? status, MessageRole role) : base(@type != default ? @type : "unknown", id, additionalBinaryDataProperties, status, role != default ? role : "unknown") + { + } + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesTextFormat.Serialization.cs b/src/Generated/Models/InternalUnknownResponsesTextFormat.Serialization.cs new file mode 100644 index 000000000..486875aaa --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesTextFormat.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesTextFormat : IJsonModel + { + internal InternalUnknownResponsesTextFormat() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ResponseTextFormat IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ResponseTextFormat JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseTextFormat(document.RootElement, options); + } + + internal static InternalUnknownResponsesTextFormat DeserializeInternalUnknownResponsesTextFormat(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesTextFormatType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesTextFormatType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalUnknownResponsesTextFormat(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support writing '{options.Format}' format."); + } + } + + ResponseTextFormat IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ResponseTextFormat PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseTextFormat(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesTextFormat.cs b/src/Generated/Models/InternalUnknownResponsesTextFormat.cs new file mode 100644 index 000000000..a8cc63802 --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesTextFormat.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesTextFormat : ResponseTextFormat + { + internal InternalUnknownResponsesTextFormat(InternalResponsesTextFormatType @type, IDictionary additionalBinaryDataProperties) : base(@type != default ? @type : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesTool.Serialization.cs b/src/Generated/Models/InternalUnknownResponsesTool.Serialization.cs new file mode 100644 index 000000000..101f6a5b6 --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesTool.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesTool : IJsonModel + { + internal InternalUnknownResponsesTool() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTool)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ResponseTool IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ResponseTool JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTool)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseTool(document.RootElement, options); + } + + internal static InternalUnknownResponsesTool DeserializeInternalUnknownResponsesTool(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalUnknownResponsesTool(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseTool)} does not support writing '{options.Format}' format."); + } + } + + ResponseTool IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ResponseTool PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseTool(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseTool)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/InternalUnknownResponsesTool.cs b/src/Generated/Models/InternalUnknownResponsesTool.cs new file mode 100644 index 000000000..96869dcb3 --- /dev/null +++ b/src/Generated/Models/InternalUnknownResponsesTool.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class InternalUnknownResponsesTool : ResponseTool + { + internal InternalUnknownResponsesTool(InternalResponsesToolType @type, IDictionary additionalBinaryDataProperties) : base(@type != default ? @type : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/InternalUpload.Serialization.cs b/src/Generated/Models/InternalUpload.Serialization.cs index 6ed8b43a3..7fbe9eaa9 100644 --- a/src/Generated/Models/InternalUpload.Serialization.cs +++ b/src/Generated/Models/InternalUpload.Serialization.cs @@ -73,17 +73,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(File) && _additionalBinaryDataProperties?.ContainsKey("file") != true) { - if (File != null) - { - writer.WritePropertyName("file"u8); - writer.WriteObjectValue(File, options); - } - else - { - writer.WriteNull("file"u8); - } + writer.WritePropertyName("file"u8); + writer.WriteObjectValue(File, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -189,10 +182,7 @@ internal static InternalUpload DeserializeInternalUpload(JsonElement element, Mo @file = OpenAIFile.DeserializeOpenAIFile(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUpload( id, diff --git a/src/Generated/Models/InternalUploadPart.Serialization.cs b/src/Generated/Models/InternalUploadPart.Serialization.cs index d50ead99d..efbbd709e 100644 --- a/src/Generated/Models/InternalUploadPart.Serialization.cs +++ b/src/Generated/Models/InternalUploadPart.Serialization.cs @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("object"u8); writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static InternalUploadPart DeserializeInternalUploadPart(JsonElement ele @object = new InternalUploadPartObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalUploadPart(id, createdAt, uploadId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/InternalVectorStoreFileAttributes.Serialization.cs b/src/Generated/Models/InternalVectorStoreFileAttributes.Serialization.cs new file mode 100644 index 000000000..10bda7a96 --- /dev/null +++ b/src/Generated/Models/InternalVectorStoreFileAttributes.Serialization.cs @@ -0,0 +1,120 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.VectorStores +{ + internal partial class InternalVectorStoreFileAttributes : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalVectorStoreFileAttributes)} does not support writing '{format}' format."); + } + foreach (var item in AdditionalProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + + InternalVectorStoreFileAttributes IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalVectorStoreFileAttributes JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalVectorStoreFileAttributes)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalVectorStoreFileAttributes(document.RootElement, options); + } + + internal static InternalVectorStoreFileAttributes DeserializeInternalVectorStoreFileAttributes(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IDictionary additionalProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + additionalProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalVectorStoreFileAttributes(additionalProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalVectorStoreFileAttributes)} does not support writing '{options.Format}' format."); + } + } + + InternalVectorStoreFileAttributes IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalVectorStoreFileAttributes PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalVectorStoreFileAttributes(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalVectorStoreFileAttributes)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalVectorStoreFileAttributes internalVectorStoreFileAttributes) + { + if (internalVectorStoreFileAttributes == null) + { + return null; + } + return BinaryContent.Create(internalVectorStoreFileAttributes, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalVectorStoreFileAttributes(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalVectorStoreFileAttributes(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalVectorStoreFileAttributes.cs b/src/Generated/Models/InternalVectorStoreFileAttributes.cs new file mode 100644 index 000000000..cccb5c3f8 --- /dev/null +++ b/src/Generated/Models/InternalVectorStoreFileAttributes.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.VectorStores +{ + internal partial class InternalVectorStoreFileAttributes + { + private protected IDictionary _additionalBinaryDataProperties; + + public InternalVectorStoreFileAttributes() + { + _additionalBinaryDataProperties = new ChangeTrackingDictionary(); + } + + internal InternalVectorStoreFileAttributes(IDictionary additionalProperties) + { + _additionalBinaryDataProperties = additionalProperties; + } + + public IDictionary AdditionalProperties => _additionalBinaryDataProperties; + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/InternalVectorStoreFileBatchObjectFileCounts.Serialization.cs b/src/Generated/Models/InternalVectorStoreFileBatchObjectFileCounts.Serialization.cs index 36183986f..79438c517 100644 --- a/src/Generated/Models/InternalVectorStoreFileBatchObjectFileCounts.Serialization.cs +++ b/src/Generated/Models/InternalVectorStoreFileBatchObjectFileCounts.Serialization.cs @@ -56,7 +56,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total"u8); writer.WriteNumberValue(Total); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -129,10 +129,7 @@ internal static InternalVectorStoreFileBatchObjectFileCounts DeserializeInternal total = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new InternalVectorStoreFileBatchObjectFileCounts( inProgress, diff --git a/src/Generated/Models/InternalWebSearchContextSize.cs b/src/Generated/Models/InternalWebSearchContextSize.cs new file mode 100644 index 000000000..199fa5b1f --- /dev/null +++ b/src/Generated/Models/InternalWebSearchContextSize.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Internal +{ + internal readonly partial struct InternalWebSearchContextSize : IEquatable + { + private readonly string _value; + private const string LowValue = "low"; + private const string MediumValue = "medium"; + private const string HighValue = "high"; + + public InternalWebSearchContextSize(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static InternalWebSearchContextSize Low { get; } = new InternalWebSearchContextSize(LowValue); + + public static InternalWebSearchContextSize Medium { get; } = new InternalWebSearchContextSize(MediumValue); + + public static InternalWebSearchContextSize High { get; } = new InternalWebSearchContextSize(HighValue); + + public static bool operator ==(InternalWebSearchContextSize left, InternalWebSearchContextSize right) => left.Equals(right); + + public static bool operator !=(InternalWebSearchContextSize left, InternalWebSearchContextSize right) => !left.Equals(right); + + public static implicit operator InternalWebSearchContextSize(string value) => new InternalWebSearchContextSize(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is InternalWebSearchContextSize other && Equals(other); + + public bool Equals(InternalWebSearchContextSize other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/InternalWebSearchLocation.Serialization.cs b/src/Generated/Models/InternalWebSearchLocation.Serialization.cs new file mode 100644 index 000000000..26667440e --- /dev/null +++ b/src/Generated/Models/InternalWebSearchLocation.Serialization.cs @@ -0,0 +1,171 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Internal +{ + internal partial class InternalWebSearchLocation : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalWebSearchLocation)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(Country) && _additionalBinaryDataProperties?.ContainsKey("country") != true) + { + writer.WritePropertyName("country"u8); + writer.WriteStringValue(Country); + } + if (Optional.IsDefined(Region) && _additionalBinaryDataProperties?.ContainsKey("region") != true) + { + writer.WritePropertyName("region"u8); + writer.WriteStringValue(Region); + } + if (Optional.IsDefined(City) && _additionalBinaryDataProperties?.ContainsKey("city") != true) + { + writer.WritePropertyName("city"u8); + writer.WriteStringValue(City); + } + if (Optional.IsDefined(Timezone) && _additionalBinaryDataProperties?.ContainsKey("timezone") != true) + { + writer.WritePropertyName("timezone"u8); + writer.WriteStringValue(Timezone); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InternalWebSearchLocation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual InternalWebSearchLocation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalWebSearchLocation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalWebSearchLocation(document.RootElement, options); + } + + internal static InternalWebSearchLocation DeserializeInternalWebSearchLocation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string country = default; + string region = default; + string city = default; + string timezone = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("country"u8)) + { + country = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("region"u8)) + { + region = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("city"u8)) + { + city = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("timezone"u8)) + { + timezone = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new InternalWebSearchLocation(country, region, city, timezone, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalWebSearchLocation)} does not support writing '{options.Format}' format."); + } + } + + InternalWebSearchLocation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual InternalWebSearchLocation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalWebSearchLocation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalWebSearchLocation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(InternalWebSearchLocation internalWebSearchLocation) + { + if (internalWebSearchLocation == null) + { + return null; + } + return BinaryContent.Create(internalWebSearchLocation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator InternalWebSearchLocation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeInternalWebSearchLocation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/InternalWebSearchLocation.cs b/src/Generated/Models/InternalWebSearchLocation.cs new file mode 100644 index 000000000..7d02c7387 --- /dev/null +++ b/src/Generated/Models/InternalWebSearchLocation.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Internal +{ + internal partial class InternalWebSearchLocation + { + private protected IDictionary _additionalBinaryDataProperties; + + public InternalWebSearchLocation() + { + } + + internal InternalWebSearchLocation(string country, string region, string city, string timezone, IDictionary additionalBinaryDataProperties) + { + Country = country; + Region = region; + City = city; + Timezone = timezone; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string Country { get; set; } + + public string Region { get; set; } + + public string City { get; set; } + + public string Timezone { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/MessageCollectionOrder.cs b/src/Generated/Models/MessageCollectionOrder.cs deleted file mode 100644 index 6c8a4153c..000000000 --- a/src/Generated/Models/MessageCollectionOrder.cs +++ /dev/null @@ -1,40 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - public readonly partial struct MessageCollectionOrder : IEquatable - { - private readonly string _value; - private const string AscValue = "asc"; - private const string DescValue = "desc"; - - public MessageCollectionOrder(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static bool operator ==(MessageCollectionOrder left, MessageCollectionOrder right) => left.Equals(right); - - public static bool operator !=(MessageCollectionOrder left, MessageCollectionOrder right) => !left.Equals(right); - - public static implicit operator MessageCollectionOrder(string value) => new MessageCollectionOrder(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is MessageCollectionOrder other && Equals(other); - - public bool Equals(MessageCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/MessageContent.Serialization.cs b/src/Generated/Models/MessageContent.Serialization.cs index f92ee5e27..114ed886a 100644 --- a/src/Generated/Models/MessageContent.Serialization.cs +++ b/src/Generated/Models/MessageContent.Serialization.cs @@ -19,7 +19,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(MessageContent)} does not support writing '{format}' format."); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -50,7 +50,7 @@ protected virtual MessageContent JsonModelCreateCore(ref Utf8JsonReader reader, throw new FormatException($"The model {nameof(MessageContent)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return MessageContent.DeserializeMessageContent(document.RootElement, options); + return DeserializeMessageContent(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -77,7 +77,7 @@ protected virtual MessageContent PersistableModelCreateCore(BinaryData data, Mod case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return MessageContent.DeserializeMessageContent(document.RootElement, options); + return DeserializeMessageContent(document.RootElement, options); } default: throw new FormatException($"The model {nameof(MessageContent)} does not support reading '{options.Format}' format."); @@ -99,7 +99,7 @@ public static explicit operator MessageContent(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return MessageContent.DeserializeMessageContent(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeMessageContent(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/MessageCreationAttachment.Serialization.cs b/src/Generated/Models/MessageCreationAttachment.Serialization.cs index cce95c834..96cad2c3c 100644 --- a/src/Generated/Models/MessageCreationAttachment.Serialization.cs +++ b/src/Generated/Models/MessageCreationAttachment.Serialization.cs @@ -39,9 +39,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("tools") != true) { writer.WritePropertyName("tools"u8); - this.SerializeTools(writer, options); + SerializeTools(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static MessageCreationAttachment DeserializeMessageCreationAttachment(J DeserializeTools(prop, ref tools); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new MessageCreationAttachment(fileId, tools, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/MessageCreationOptions.Serialization.cs b/src/Generated/Models/MessageCreationOptions.Serialization.cs index 24e5ec428..42916a88d 100644 --- a/src/Generated/Models/MessageCreationOptions.Serialization.cs +++ b/src/Generated/Models/MessageCreationOptions.Serialization.cs @@ -29,20 +29,13 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsCollectionDefined(Attachments) && _additionalBinaryDataProperties?.ContainsKey("attachments") != true) { - if (Attachments != null) + writer.WritePropertyName("attachments"u8); + writer.WriteStartArray(); + foreach (MessageCreationAttachment item in Attachments) { - writer.WritePropertyName("attachments"u8); - writer.WriteStartArray(); - foreach (MessageCreationAttachment item in Attachments) - { - writer.WriteObjectValue(item, options); - } - writer.WriteEndArray(); - } - else - { - writer.WriteNull("attachments"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) { @@ -68,9 +61,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { writer.WritePropertyName("content"u8); - this.SerializeContent(writer, options); + SerializeContent(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -112,7 +105,7 @@ internal static MessageCreationOptions DeserializeMessageCreationOptions(JsonEle } IList attachments = default; IDictionary metadata = default; - Assistants.MessageRole role = default; + MessageRole role = default; IList content = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -167,10 +160,7 @@ internal static MessageCreationOptions DeserializeMessageCreationOptions(JsonEle content = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new MessageCreationOptions(attachments ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), role, content, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/MessageCreationOptions.cs b/src/Generated/Models/MessageCreationOptions.cs index c8c4b234c..387548cdc 100644 --- a/src/Generated/Models/MessageCreationOptions.cs +++ b/src/Generated/Models/MessageCreationOptions.cs @@ -11,7 +11,7 @@ public partial class MessageCreationOptions { private protected IDictionary _additionalBinaryDataProperties; - internal MessageCreationOptions(IList attachments, IDictionary metadata, Assistants.MessageRole role, IList content, IDictionary additionalBinaryDataProperties) + internal MessageCreationOptions(IList attachments, IDictionary metadata, MessageRole role, IList content, IDictionary additionalBinaryDataProperties) { Attachments = attachments; Metadata = metadata; diff --git a/src/Generated/Models/MessageDeletionResult.Serialization.cs b/src/Generated/Models/MessageDeletionResult.Serialization.cs index 89878ba0a..badafc0bf 100644 --- a/src/Generated/Models/MessageDeletionResult.Serialization.cs +++ b/src/Generated/Models/MessageDeletionResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static MessageDeletionResult DeserializeMessageDeletionResult(JsonEleme @object = new InternalDeleteMessageResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new MessageDeletionResult(deleted, messageId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/MessageDeletionResult.cs b/src/Generated/Models/MessageDeletionResult.cs index e2cf6d328..d0d24f34d 100644 --- a/src/Generated/Models/MessageDeletionResult.cs +++ b/src/Generated/Models/MessageDeletionResult.cs @@ -21,7 +21,7 @@ internal MessageDeletionResult(bool deleted, string messageId, InternalDeleteMes { Deleted = deleted; MessageId = messageId; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/MessageFailureDetails.Serialization.cs b/src/Generated/Models/MessageFailureDetails.Serialization.cs index c76295571..c9c493388 100644 --- a/src/Generated/Models/MessageFailureDetails.Serialization.cs +++ b/src/Generated/Models/MessageFailureDetails.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("reason"u8); writer.WriteStringValue(Reason.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static MessageFailureDetails DeserializeMessageFailureDetails(JsonEleme reason = new MessageFailureReason(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new MessageFailureDetails(reason, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/MessageModificationOptions.Serialization.cs b/src/Generated/Models/MessageModificationOptions.Serialization.cs index bcb1eebd4..407856c36 100644 --- a/src/Generated/Models/MessageModificationOptions.Serialization.cs +++ b/src/Generated/Models/MessageModificationOptions.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndObject(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -108,10 +108,7 @@ internal static MessageModificationOptions DeserializeMessageModificationOptions metadata = dictionary; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new MessageModificationOptions(metadata ?? new ChangeTrackingDictionary(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/MessageResponseItem.Serialization.cs b/src/Generated/Models/MessageResponseItem.Serialization.cs new file mode 100644 index 000000000..ced07c75b --- /dev/null +++ b/src/Generated/Models/MessageResponseItem.Serialization.cs @@ -0,0 +1,131 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class MessageResponseItem : IJsonModel + { + internal MessageResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Status) && _additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("role") != true) + { + writer.WritePropertyName("role"u8); + writer.WriteStringValue(Role.ToString()); + } + } + + MessageResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (MessageResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageResponseItem(document.RootElement, options); + } + + internal static MessageResponseItem DeserializeMessageResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("role"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "user": + return InternalResponsesUserMessage.DeserializeInternalResponsesUserMessage(element, options); + case "system": + return InternalResponsesSystemMessage.DeserializeInternalResponsesSystemMessage(element, options); + case "developer": + return InternalResponsesDeveloperMessage.DeserializeInternalResponsesDeveloperMessage(element, options); + case "assistant": + return InternalResponsesAssistantMessage.DeserializeInternalResponsesAssistantMessage(element, options); + } + } + return InternalUnknownResponsesMessage.DeserializeInternalUnknownResponsesMessage(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support writing '{options.Format}' format."); + } + } + + MessageResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (MessageResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeMessageResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(MessageResponseItem messageResponseItem) + { + if (messageResponseItem == null) + { + return null; + } + return BinaryContent.Create(messageResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator MessageResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeMessageResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/MessageResponseItem.cs b/src/Generated/Models/MessageResponseItem.cs new file mode 100644 index 000000000..6231e6947 --- /dev/null +++ b/src/Generated/Models/MessageResponseItem.cs @@ -0,0 +1,25 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class MessageResponseItem : ResponseItem + { + public MessageResponseItem(MessageRole role) : base(InternalResponsesItemType.Message) + { + Role = role; + } + + internal MessageResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, MessageStatus? status, MessageRole role) : base(@type, id, additionalBinaryDataProperties) + { + Status = status; + Role = role; + } + + public MessageStatus? Status { get; } + } +} diff --git a/src/Generated/Models/MessageRole.Serialization.cs b/src/Generated/Models/MessageRole.Serialization.cs index 33366fef5..9c6718017 100644 --- a/src/Generated/Models/MessageRole.Serialization.cs +++ b/src/Generated/Models/MessageRole.Serialization.cs @@ -8,22 +8,22 @@ namespace OpenAI.Assistants { internal static partial class MessageRoleExtensions { - public static string ToSerialString(this Assistants.MessageRole value) => value switch + public static string ToSerialString(this MessageRole value) => value switch { - Assistants.MessageRole.User => "user", - Assistants.MessageRole.Assistant => "assistant", + MessageRole.User => "user", + MessageRole.Assistant => "assistant", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown MessageRole value.") }; - public static Assistants.MessageRole ToMessageRole(this string value) + public static MessageRole ToMessageRole(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "user")) { - return Assistants.MessageRole.User; + return MessageRole.User; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "assistant")) { - return Assistants.MessageRole.Assistant; + return MessageRole.Assistant; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown MessageRole value."); } diff --git a/src/Generated/Models/MessageRole.cs b/src/Generated/Models/MessageRole.cs new file mode 100644 index 000000000..021ea8070 --- /dev/null +++ b/src/Generated/Models/MessageRole.cs @@ -0,0 +1,50 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct MessageRole : IEquatable + { + private readonly string _value; + private const string SystemValue = "system"; + private const string DeveloperValue = "developer"; + private const string UserValue = "user"; + private const string AssistantValue = "assistant"; + + public MessageRole(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static MessageRole System { get; } = new MessageRole(SystemValue); + + public static MessageRole Developer { get; } = new MessageRole(DeveloperValue); + + public static MessageRole User { get; } = new MessageRole(UserValue); + + public static MessageRole Assistant { get; } = new MessageRole(AssistantValue); + + public static bool operator ==(MessageRole left, MessageRole right) => left.Equals(right); + + public static bool operator !=(MessageRole left, MessageRole right) => !left.Equals(right); + + public static implicit operator MessageRole(string value) => new MessageRole(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MessageRole other && Equals(other); + + public bool Equals(MessageRole other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/MessageStatus.Serialization.cs b/src/Generated/Models/MessageStatus.Serialization.cs new file mode 100644 index 000000000..fa1fda5a8 --- /dev/null +++ b/src/Generated/Models/MessageStatus.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class MessageStatusExtensions + { + public static string ToSerialString(this MessageStatus value) => value switch + { + MessageStatus.InProgress => "in_progress", + MessageStatus.Completed => "completed", + MessageStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown MessageStatus value.") + }; + + public static MessageStatus ToMessageStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return MessageStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return MessageStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return MessageStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown MessageStatus value."); + } + } +} diff --git a/src/Generated/Models/ModelDeletionResult.Serialization.cs b/src/Generated/Models/ModelDeletionResult.Serialization.cs index 71fe7aeca..64c740a58 100644 --- a/src/Generated/Models/ModelDeletionResult.Serialization.cs +++ b/src/Generated/Models/ModelDeletionResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static ModelDeletionResult DeserializeModelDeletionResult(JsonElement e @object = new InternalDeleteModelResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ModelDeletionResult(deleted, modelId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ModelDeletionResult.cs b/src/Generated/Models/ModelDeletionResult.cs index 4949c007d..8ab658d2a 100644 --- a/src/Generated/Models/ModelDeletionResult.cs +++ b/src/Generated/Models/ModelDeletionResult.cs @@ -21,7 +21,7 @@ internal ModelDeletionResult(bool deleted, string modelId, InternalDeleteModelRe { Deleted = deleted; ModelId = modelId; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/ModerationOptions.Serialization.cs b/src/Generated/Models/ModerationOptions.Serialization.cs index 5c837bec3..e54d35e1a 100644 --- a/src/Generated/Models/ModerationOptions.Serialization.cs +++ b/src/Generated/Models/ModerationOptions.Serialization.cs @@ -44,7 +44,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("model"u8); writer.WriteStringValue(Model.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -103,10 +103,7 @@ internal static ModerationOptions DeserializeModerationOptions(JsonElement eleme model = new InternalCreateModerationRequestModel(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ModerationOptions(input, model, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ModerationResult.Serialization.cs b/src/Generated/Models/ModerationResult.Serialization.cs index f889b6dd1..8a5284264 100644 --- a/src/Generated/Models/ModerationResult.Serialization.cs +++ b/src/Generated/Models/ModerationResult.Serialization.cs @@ -24,7 +24,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("flagged"u8); writer.WriteBooleanValue(Flagged); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -55,7 +55,7 @@ protected virtual ModerationResult JsonModelCreateCore(ref Utf8JsonReader reader throw new FormatException($"The model {nameof(ModerationResult)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ModerationResult.DeserializeModerationResult(document.RootElement, options); + return DeserializeModerationResult(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -82,7 +82,7 @@ protected virtual ModerationResult PersistableModelCreateCore(BinaryData data, M case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ModerationResult.DeserializeModerationResult(document.RootElement, options); + return DeserializeModerationResult(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ModerationResult)} does not support reading '{options.Format}' format."); @@ -104,7 +104,7 @@ public static explicit operator ModerationResult(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ModerationResult.DeserializeModerationResult(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeModerationResult(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ModerationResultCollection.Serialization.cs b/src/Generated/Models/ModerationResultCollection.Serialization.cs index 979673c2b..e2663349f 100644 --- a/src/Generated/Models/ModerationResultCollection.Serialization.cs +++ b/src/Generated/Models/ModerationResultCollection.Serialization.cs @@ -29,7 +29,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("model"u8); writer.WriteStringValue(Model); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -60,7 +60,7 @@ protected virtual ModerationResultCollection JsonModelCreateCore(ref Utf8JsonRea throw new FormatException($"The model {nameof(ModerationResultCollection)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ModerationResultCollection.DeserializeModerationResultCollection(document.RootElement, options); + return DeserializeModerationResultCollection(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -87,7 +87,7 @@ protected virtual ModerationResultCollection PersistableModelCreateCore(BinaryDa case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ModerationResultCollection.DeserializeModerationResultCollection(document.RootElement, options); + return DeserializeModerationResultCollection(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ModerationResultCollection)} does not support reading '{options.Format}' format."); @@ -109,7 +109,7 @@ public static explicit operator ModerationResultCollection(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ModerationResultCollection.DeserializeModerationResultCollection(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeModerationResultCollection(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/OpenAIEmbedding.Serialization.cs b/src/Generated/Models/OpenAIEmbedding.Serialization.cs index a826e0c51..10d1ebbb1 100644 --- a/src/Generated/Models/OpenAIEmbedding.Serialization.cs +++ b/src/Generated/Models/OpenAIEmbedding.Serialization.cs @@ -51,9 +51,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -114,10 +114,7 @@ internal static OpenAIEmbedding DeserializeOpenAIEmbedding(JsonElement element, @object = new InternalEmbeddingObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new OpenAIEmbedding(index, embeddingProperty, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/OpenAIEmbeddingCollection.Serialization.cs b/src/Generated/Models/OpenAIEmbeddingCollection.Serialization.cs index 990343e1b..3ed48f332 100644 --- a/src/Generated/Models/OpenAIEmbeddingCollection.Serialization.cs +++ b/src/Generated/Models/OpenAIEmbeddingCollection.Serialization.cs @@ -32,9 +32,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -65,7 +65,7 @@ protected virtual OpenAIEmbeddingCollection JsonModelCreateCore(ref Utf8JsonRead throw new FormatException($"The model {nameof(OpenAIEmbeddingCollection)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return OpenAIEmbeddingCollection.DeserializeOpenAIEmbeddingCollection(document.RootElement, options); + return DeserializeOpenAIEmbeddingCollection(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -92,7 +92,7 @@ protected virtual OpenAIEmbeddingCollection PersistableModelCreateCore(BinaryDat case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return OpenAIEmbeddingCollection.DeserializeOpenAIEmbeddingCollection(document.RootElement, options); + return DeserializeOpenAIEmbeddingCollection(document.RootElement, options); } default: throw new FormatException($"The model {nameof(OpenAIEmbeddingCollection)} does not support reading '{options.Format}' format."); @@ -114,7 +114,7 @@ public static explicit operator OpenAIEmbeddingCollection(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return OpenAIEmbeddingCollection.DeserializeOpenAIEmbeddingCollection(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeOpenAIEmbeddingCollection(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/OpenAIError.Serialization.cs b/src/Generated/Models/OpenAIError.Serialization.cs index 5cafbaa12..c36c76e3d 100644 --- a/src/Generated/Models/OpenAIError.Serialization.cs +++ b/src/Generated/Models/OpenAIError.Serialization.cs @@ -33,7 +33,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("code") != true) { - if (Code != null) + if (Optional.IsDefined(Code)) { writer.WritePropertyName("code"u8); writer.WriteStringValue(Code); @@ -50,7 +50,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("param") != true) { - if (Param != null) + if (Optional.IsDefined(Param)) { writer.WritePropertyName("param"u8); writer.WriteStringValue(Param); @@ -65,7 +65,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -142,10 +142,7 @@ internal static OpenAIError DeserializeOpenAIError(JsonElement element, ModelRea @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new OpenAIError(code, message, @param, @type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/OpenAIErrorResponse.Serialization.cs b/src/Generated/Models/OpenAIErrorResponse.Serialization.cs index a433d4027..0b01524fb 100644 --- a/src/Generated/Models/OpenAIErrorResponse.Serialization.cs +++ b/src/Generated/Models/OpenAIErrorResponse.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("error"u8); writer.WriteObjectValue(Error, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static OpenAIErrorResponse DeserializeOpenAIErrorResponse(JsonElement e error = OpenAIError.DeserializeOpenAIError(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new OpenAIErrorResponse(error, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/OpenAIFile.Serialization.cs b/src/Generated/Models/OpenAIFile.Serialization.cs index 38a759cfb..360239452 100644 --- a/src/Generated/Models/OpenAIFile.Serialization.cs +++ b/src/Generated/Models/OpenAIFile.Serialization.cs @@ -41,6 +41,11 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("created_at"u8); writer.WriteNumberValue(CreatedAt, "U"); } + if (Optional.IsDefined(ExpiresAt) && _additionalBinaryDataProperties?.ContainsKey("expires_at") != true) + { + writer.WritePropertyName("expires_at"u8); + writer.WriteNumberValue(ExpiresAt.Value, "U"); + } if (_additionalBinaryDataProperties?.ContainsKey("filename") != true) { writer.WritePropertyName("filename"u8); @@ -54,11 +59,11 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("bytes") != true) { - if (SizeInBytes != null) + if (Optional.IsDefined(SizeInBytes)) { writer.WritePropertyName("bytes"u8); writer.WriteNumberValue(SizeInBytes.Value); @@ -78,7 +83,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("status_details"u8); writer.WriteStringValue(StatusDetails); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -120,11 +125,12 @@ internal static OpenAIFile DeserializeOpenAIFile(JsonElement element, ModelReade } string id = default; DateTimeOffset createdAt = default; + DateTimeOffset? expiresAt = default; string filename = default; - Files.FilePurpose purpose = default; + FilePurpose purpose = default; InternalOpenAIFileObject @object = default; int? sizeInBytes = default; - Files.FileStatus status = default; + FileStatus status = default; string statusDetails = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -139,6 +145,15 @@ internal static OpenAIFile DeserializeOpenAIFile(JsonElement element, ModelReade createdAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64()); continue; } + if (prop.NameEquals("expires_at"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + expiresAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64()); + continue; + } if (prop.NameEquals("filename"u8)) { filename = prop.Value.GetString(); @@ -174,14 +189,12 @@ internal static OpenAIFile DeserializeOpenAIFile(JsonElement element, ModelReade statusDetails = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new OpenAIFile( id, createdAt, + expiresAt, filename, purpose, @object, diff --git a/src/Generated/Models/OpenAIFile.cs b/src/Generated/Models/OpenAIFile.cs index aad4ac9f8..02309d2b3 100644 --- a/src/Generated/Models/OpenAIFile.cs +++ b/src/Generated/Models/OpenAIFile.cs @@ -11,7 +11,7 @@ public partial class OpenAIFile { private protected IDictionary _additionalBinaryDataProperties; - internal OpenAIFile(string id, DateTimeOffset createdAt, string filename, Files.FilePurpose purpose, int? sizeInBytes, Files.FileStatus status) + internal OpenAIFile(string id, DateTimeOffset createdAt, string filename, FilePurpose purpose, int? sizeInBytes, FileStatus status) { Id = id; CreatedAt = createdAt; @@ -21,13 +21,14 @@ internal OpenAIFile(string id, DateTimeOffset createdAt, string filename, Files. Status = status; } - internal OpenAIFile(string id, DateTimeOffset createdAt, string filename, Files.FilePurpose purpose, InternalOpenAIFileObject @object, int? sizeInBytes, Files.FileStatus status, string statusDetails, IDictionary additionalBinaryDataProperties) + internal OpenAIFile(string id, DateTimeOffset createdAt, DateTimeOffset? expiresAt, string filename, FilePurpose purpose, InternalOpenAIFileObject @object, int? sizeInBytes, FileStatus status, string statusDetails, IDictionary additionalBinaryDataProperties) { Id = id; CreatedAt = createdAt; + ExpiresAt = expiresAt; Filename = filename; Purpose = purpose; - this.Object = @object; + Object = @object; SizeInBytes = sizeInBytes; Status = status; StatusDetails = statusDetails; @@ -38,9 +39,11 @@ internal OpenAIFile(string id, DateTimeOffset createdAt, string filename, Files. public DateTimeOffset CreatedAt { get; } + public DateTimeOffset? ExpiresAt { get; } + public string Filename { get; } - public Files.FilePurpose Purpose { get; } + public FilePurpose Purpose { get; } internal IDictionary SerializedAdditionalRawData { diff --git a/src/Generated/Models/OpenAIFileCollection.Serialization.cs b/src/Generated/Models/OpenAIFileCollection.Serialization.cs index b7a296137..6dfd7aae1 100644 --- a/src/Generated/Models/OpenAIFileCollection.Serialization.cs +++ b/src/Generated/Models/OpenAIFileCollection.Serialization.cs @@ -22,7 +22,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("first_id") != true) { @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("has_more"u8); writer.WriteBooleanValue(HasMore); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -70,7 +70,7 @@ protected virtual OpenAIFileCollection JsonModelCreateCore(ref Utf8JsonReader re throw new FormatException($"The model {nameof(OpenAIFileCollection)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return OpenAIFileCollection.DeserializeOpenAIFileCollection(document.RootElement, options); + return DeserializeOpenAIFileCollection(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -97,7 +97,7 @@ protected virtual OpenAIFileCollection PersistableModelCreateCore(BinaryData dat case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return OpenAIFileCollection.DeserializeOpenAIFileCollection(document.RootElement, options); + return DeserializeOpenAIFileCollection(document.RootElement, options); } default: throw new FormatException($"The model {nameof(OpenAIFileCollection)} does not support reading '{options.Format}' format."); @@ -119,7 +119,7 @@ public static explicit operator OpenAIFileCollection(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return OpenAIFileCollection.DeserializeOpenAIFileCollection(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeOpenAIFileCollection(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/OpenAIModel.Serialization.cs b/src/Generated/Models/OpenAIModel.Serialization.cs index 01de3b396..d2bba1ffe 100644 --- a/src/Generated/Models/OpenAIModel.Serialization.cs +++ b/src/Generated/Models/OpenAIModel.Serialization.cs @@ -44,14 +44,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("created") != true) { writer.WritePropertyName("created"u8); writer.WriteNumberValue(CreatedAt, "U"); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -118,10 +118,7 @@ internal static OpenAIModel DeserializeOpenAIModel(JsonElement element, ModelRea createdAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new OpenAIModel(id, ownedBy, @object, createdAt, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/OpenAIModel.cs b/src/Generated/Models/OpenAIModel.cs index f531dd90f..fbebf3360 100644 --- a/src/Generated/Models/OpenAIModel.cs +++ b/src/Generated/Models/OpenAIModel.cs @@ -22,7 +22,7 @@ internal OpenAIModel(string id, string ownedBy, InternalModelObject @object, Dat { Id = id; OwnedBy = ownedBy; - this.Object = @object; + Object = @object; CreatedAt = createdAt; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/OpenAIModelCollection.Serialization.cs b/src/Generated/Models/OpenAIModelCollection.Serialization.cs index d072b37c6..87df2c7c5 100644 --- a/src/Generated/Models/OpenAIModelCollection.Serialization.cs +++ b/src/Generated/Models/OpenAIModelCollection.Serialization.cs @@ -22,9 +22,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -55,7 +55,7 @@ protected virtual OpenAIModelCollection JsonModelCreateCore(ref Utf8JsonReader r throw new FormatException($"The model {nameof(OpenAIModelCollection)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return OpenAIModelCollection.DeserializeOpenAIModelCollection(document.RootElement, options); + return DeserializeOpenAIModelCollection(document.RootElement, options); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); @@ -82,7 +82,7 @@ protected virtual OpenAIModelCollection PersistableModelCreateCore(BinaryData da case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return OpenAIModelCollection.DeserializeOpenAIModelCollection(document.RootElement, options); + return DeserializeOpenAIModelCollection(document.RootElement, options); } default: throw new FormatException($"The model {nameof(OpenAIModelCollection)} does not support reading '{options.Format}' format."); @@ -104,7 +104,7 @@ public static explicit operator OpenAIModelCollection(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return OpenAIModelCollection.DeserializeOpenAIModelCollection(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeOpenAIModelCollection(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/OpenAIResponse.Serialization.cs b/src/Generated/Models/OpenAIResponse.Serialization.cs new file mode 100644 index 000000000..c22bd1af7 --- /dev/null +++ b/src/Generated/Models/OpenAIResponse.Serialization.cs @@ -0,0 +1,533 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class OpenAIResponse : IJsonModel + { + internal OpenAIResponse() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(OpenAIResponse)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("id") != true) + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + if (_additionalBinaryDataProperties?.ContainsKey("created_at") != true) + { + writer.WritePropertyName("created_at"u8); + writer.WriteNumberValue(CreatedAt, "U"); + } + if (Optional.IsDefined(Status) && _additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("error") != true) + { + if (Optional.IsDefined(Error)) + { + writer.WritePropertyName("error"u8); + writer.WriteObjectValue(Error, options); + } + else + { + writer.WriteNull("error"u8); + } + } + if (_additionalBinaryDataProperties?.ContainsKey("instructions") != true) + { + if (Optional.IsDefined(Instructions)) + { + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(Instructions); + } + else + { + writer.WriteNull("instructions"u8); + } + } + if (_additionalBinaryDataProperties?.ContainsKey("model") != true) + { + writer.WritePropertyName("model"u8); + writer.WriteStringValue(Model); + } + if (_additionalBinaryDataProperties?.ContainsKey("previous_response_id") != true) + { + if (Optional.IsDefined(PreviousResponseId)) + { + writer.WritePropertyName("previous_response_id"u8); + writer.WriteStringValue(PreviousResponseId); + } + else + { + writer.WriteNull("previous_response_id"u8); + } + } + if (_additionalBinaryDataProperties?.ContainsKey("temperature") != true) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature); + } + if (_additionalBinaryDataProperties?.ContainsKey("tool_choice") != true) + { + writer.WritePropertyName("tool_choice"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ToolChoice); +#else + using (JsonDocument document = JsonDocument.Parse(ToolChoice)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + if (_additionalBinaryDataProperties?.ContainsKey("tools") != true) + { + writer.WritePropertyName("tools"u8); + writer.WriteStartArray(); + foreach (ResponseTool item in Tools) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("top_p") != true) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP); + } + if (Optional.IsDefined(Usage) && _additionalBinaryDataProperties?.ContainsKey("usage") != true) + { + writer.WritePropertyName("usage"u8); + writer.WriteObjectValue(Usage, options); + } + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) + { + if (Optional.IsCollectionDefined(Metadata)) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + else + { + writer.WriteNull("metadata"u8); + } + } + if (_additionalBinaryDataProperties?.ContainsKey("object") != true) + { + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + } + if (Optional.IsDefined(EndUserId) && _additionalBinaryDataProperties?.ContainsKey("user") != true) + { + writer.WritePropertyName("user"u8); + writer.WriteStringValue(EndUserId); + } + if (Optional.IsDefined(ReasoningOptions) && _additionalBinaryDataProperties?.ContainsKey("reasoning") != true) + { + writer.WritePropertyName("reasoning"u8); + writer.WriteObjectValue(ReasoningOptions, options); + } + if (Optional.IsDefined(MaxOutputTokenCount) && _additionalBinaryDataProperties?.ContainsKey("max_output_tokens") != true) + { + writer.WritePropertyName("max_output_tokens"u8); + writer.WriteNumberValue(MaxOutputTokenCount.Value); + } + if (Optional.IsDefined(TextOptions) && _additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteObjectValue(TextOptions, options); + } + if (Optional.IsDefined(TruncationMode) && _additionalBinaryDataProperties?.ContainsKey("truncation") != true) + { + writer.WritePropertyName("truncation"u8); + writer.WriteStringValue(TruncationMode.Value.ToString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("incomplete_details") != true) + { + if (Optional.IsDefined(IncompleteStatusDetails)) + { + writer.WritePropertyName("incomplete_details"u8); + writer.WriteObjectValue(IncompleteStatusDetails, options); + } + else + { + writer.WriteNull("incomplete_details"u8); + } + } + if (_additionalBinaryDataProperties?.ContainsKey("output") != true) + { + writer.WritePropertyName("output"u8); + writer.WriteStartArray(); + foreach (ResponseItem item in OutputItems) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("parallel_tool_calls") != true) + { + writer.WritePropertyName("parallel_tool_calls"u8); + writer.WriteBooleanValue(AllowParallelToolCalls); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + OpenAIResponse IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual OpenAIResponse JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(OpenAIResponse)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeOpenAIResponse(document.RootElement, options); + } + + internal static OpenAIResponse DeserializeOpenAIResponse(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + DateTimeOffset createdAt = default; + ResponseStatus? status = default; + ResponseError error = default; + string instructions = default; + string model = default; + string previousResponseId = default; + float temperature = default; + BinaryData toolChoice = default; + IList tools = default; + float topP = default; + ResponseTokenUsage usage = default; + IDictionary metadata = default; + InternalCreateResponsesResponseObject @object = default; + string endUserId = default; + ResponseReasoningOptions reasoningOptions = default; + int? maxOutputTokenCount = default; + ResponseTextOptions textOptions = default; + ResponseTruncationMode? truncationMode = default; + ResponseIncompleteStatusDetails incompleteStatusDetails = default; + IList outputItems = default; + bool allowParallelToolCalls = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("created_at"u8)) + { + createdAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64()); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToResponseStatus(); + continue; + } + if (prop.NameEquals("error"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + error = null; + continue; + } + error = ResponseError.DeserializeResponseError(prop.Value, options); + continue; + } + if (prop.NameEquals("instructions"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + instructions = null; + continue; + } + instructions = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("model"u8)) + { + model = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("previous_response_id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + previousResponseId = null; + continue; + } + previousResponseId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("temperature"u8)) + { + temperature = prop.Value.GetSingle(); + continue; + } + if (prop.NameEquals("tool_choice"u8)) + { + toolChoice = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + if (prop.NameEquals("tools"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseTool.DeserializeResponseTool(item, options)); + } + tools = array; + continue; + } + if (prop.NameEquals("top_p"u8)) + { + topP = prop.Value.GetSingle(); + continue; + } + if (prop.NameEquals("usage"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + usage = ResponseTokenUsage.DeserializeResponseTokenUsage(prop.Value, options); + continue; + } + if (prop.NameEquals("metadata"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + metadata = new ChangeTrackingDictionary(); + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + metadata = dictionary; + continue; + } + if (prop.NameEquals("object"u8)) + { + @object = new InternalCreateResponsesResponseObject(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("user"u8)) + { + endUserId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("reasoning"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + reasoningOptions = null; + continue; + } + reasoningOptions = ResponseReasoningOptions.DeserializeResponseReasoningOptions(prop.Value, options); + continue; + } + if (prop.NameEquals("max_output_tokens"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + maxOutputTokenCount = null; + continue; + } + maxOutputTokenCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("text"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + textOptions = ResponseTextOptions.DeserializeResponseTextOptions(prop.Value, options); + continue; + } + if (prop.NameEquals("truncation"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + truncationMode = null; + continue; + } + truncationMode = new ResponseTruncationMode(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("incomplete_details"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + incompleteStatusDetails = null; + continue; + } + incompleteStatusDetails = ResponseIncompleteStatusDetails.DeserializeResponseIncompleteStatusDetails(prop.Value, options); + continue; + } + if (prop.NameEquals("output"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseItem.DeserializeResponseItem(item, options)); + } + outputItems = array; + continue; + } + if (prop.NameEquals("parallel_tool_calls"u8)) + { + allowParallelToolCalls = prop.Value.GetBoolean(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new OpenAIResponse( + id, + createdAt, + status, + error, + instructions, + model, + previousResponseId, + temperature, + toolChoice, + tools, + topP, + usage, + metadata, + @object, + endUserId, + reasoningOptions, + maxOutputTokenCount, + textOptions, + truncationMode, + incompleteStatusDetails, + outputItems, + allowParallelToolCalls, + additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(OpenAIResponse)} does not support writing '{options.Format}' format."); + } + } + + OpenAIResponse IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual OpenAIResponse PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeOpenAIResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(OpenAIResponse)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(OpenAIResponse openAIResponse) + { + if (openAIResponse == null) + { + return null; + } + return BinaryContent.Create(openAIResponse, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator OpenAIResponse(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeOpenAIResponse(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/OpenAIResponse.cs b/src/Generated/Models/OpenAIResponse.cs new file mode 100644 index 000000000..1c1f591d1 --- /dev/null +++ b/src/Generated/Models/OpenAIResponse.cs @@ -0,0 +1,92 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace OpenAI.Responses +{ + public partial class OpenAIResponse + { + private protected IDictionary _additionalBinaryDataProperties; + + internal OpenAIResponse(string id, DateTimeOffset createdAt, ResponseError error, string instructions, string model, string previousResponseId, float temperature, BinaryData toolChoice, IEnumerable tools, float topP, IDictionary metadata, ResponseIncompleteStatusDetails incompleteStatusDetails, IEnumerable outputItems, bool allowParallelToolCalls) + { + Id = id; + CreatedAt = createdAt; + Error = error; + Instructions = instructions; + Model = model; + PreviousResponseId = previousResponseId; + Temperature = temperature; + ToolChoice = toolChoice; + Tools = tools.ToList(); + TopP = topP; + Metadata = metadata; + IncompleteStatusDetails = incompleteStatusDetails; + OutputItems = outputItems.ToList(); + AllowParallelToolCalls = allowParallelToolCalls; + } + + internal OpenAIResponse(string id, DateTimeOffset createdAt, ResponseStatus? status, ResponseError error, string instructions, string model, string previousResponseId, float temperature, BinaryData toolChoice, IList tools, float topP, ResponseTokenUsage usage, IDictionary metadata, InternalCreateResponsesResponseObject @object, string endUserId, ResponseReasoningOptions reasoningOptions, int? maxOutputTokenCount, ResponseTextOptions textOptions, ResponseTruncationMode? truncationMode, ResponseIncompleteStatusDetails incompleteStatusDetails, IList outputItems, bool allowParallelToolCalls, IDictionary additionalBinaryDataProperties) + { + Id = id; + CreatedAt = createdAt; + Status = status; + Error = error; + Instructions = instructions; + Model = model; + PreviousResponseId = previousResponseId; + Temperature = temperature; + ToolChoice = toolChoice; + Tools = tools; + TopP = topP; + Usage = usage; + Metadata = metadata; + Object = @object; + EndUserId = endUserId; + ReasoningOptions = reasoningOptions; + MaxOutputTokenCount = maxOutputTokenCount; + TextOptions = textOptions; + TruncationMode = truncationMode; + IncompleteStatusDetails = incompleteStatusDetails; + OutputItems = outputItems; + AllowParallelToolCalls = allowParallelToolCalls; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string Id { get; } + + public DateTimeOffset CreatedAt { get; } + + public ResponseStatus? Status { get; } + + public ResponseError Error { get; } + + public string Instructions { get; } + + public string Model { get; } + + public string PreviousResponseId { get; } + + public float Temperature { get; } + + public BinaryData ToolChoice { get; } + + public IList Tools { get; } + + public float TopP { get; } + + public ResponseTokenUsage Usage { get; } + + public IDictionary Metadata { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ReasoningResponseItem.Serialization.cs b/src/Generated/Models/ReasoningResponseItem.Serialization.cs new file mode 100644 index 000000000..972d29fd2 --- /dev/null +++ b/src/Generated/Models/ReasoningResponseItem.Serialization.cs @@ -0,0 +1,161 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ReasoningResponseItem : IJsonModel + { + internal ReasoningResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ReasoningResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Status) && _additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToSerialString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("summary") != true) + { + writer.WritePropertyName("summary"u8); + writer.WriteStartArray(); + foreach (InternalResponsesReasoningItemSummaryElement item in Summary) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + ReasoningResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ReasoningResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ReasoningResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeReasoningResponseItem(document.RootElement, options); + } + + internal static ReasoningResponseItem DeserializeReasoningResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + ReasoningStatus? status = default; + IList summary = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = prop.Value.GetString().ToReasoningStatus(); + continue; + } + if (prop.NameEquals("summary"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(InternalResponsesReasoningItemSummaryElement.DeserializeInternalResponsesReasoningItemSummaryElement(item, options)); + } + summary = array; + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ReasoningResponseItem(@type, id, additionalBinaryDataProperties, status, summary); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ReasoningResponseItem)} does not support writing '{options.Format}' format."); + } + } + + ReasoningResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ReasoningResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeReasoningResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ReasoningResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ReasoningResponseItem reasoningResponseItem) + { + if (reasoningResponseItem == null) + { + return null; + } + return BinaryContent.Create(reasoningResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ReasoningResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeReasoningResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ReasoningResponseItem.cs b/src/Generated/Models/ReasoningResponseItem.cs new file mode 100644 index 000000000..0c40e712d --- /dev/null +++ b/src/Generated/Models/ReasoningResponseItem.cs @@ -0,0 +1,20 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ReasoningResponseItem : ResponseItem + { + internal ReasoningResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, ReasoningStatus? status, IList summary) : base(@type, id, additionalBinaryDataProperties) + { + Status = status; + Summary = summary; + } + + public ReasoningStatus? Status { get; } + } +} diff --git a/src/Generated/Models/ReasoningStatus.Serialization.cs b/src/Generated/Models/ReasoningStatus.Serialization.cs new file mode 100644 index 000000000..199f186f9 --- /dev/null +++ b/src/Generated/Models/ReasoningStatus.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ReasoningStatusExtensions + { + public static string ToSerialString(this ReasoningStatus value) => value switch + { + ReasoningStatus.InProgress => "in_progress", + ReasoningStatus.Completed => "completed", + ReasoningStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ReasoningStatus value.") + }; + + public static ReasoningStatus ToReasoningStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return ReasoningStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return ReasoningStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return ReasoningStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ReasoningStatus value."); + } + } +} diff --git a/src/Generated/Models/ReferenceResponseItem.Serialization.cs b/src/Generated/Models/ReferenceResponseItem.Serialization.cs new file mode 100644 index 000000000..86b71d788 --- /dev/null +++ b/src/Generated/Models/ReferenceResponseItem.Serialization.cs @@ -0,0 +1,121 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ReferenceResponseItem : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ReferenceResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ReferenceResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ReferenceResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ReferenceResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeReferenceResponseItem(document.RootElement, options); + } + + internal static ReferenceResponseItem DeserializeReferenceResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ReferenceResponseItem(@type, id, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ReferenceResponseItem)} does not support writing '{options.Format}' format."); + } + } + + ReferenceResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ReferenceResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeReferenceResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ReferenceResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ReferenceResponseItem referenceResponseItem) + { + if (referenceResponseItem == null) + { + return null; + } + return BinaryContent.Create(referenceResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ReferenceResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeReferenceResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ReferenceResponseItem.cs b/src/Generated/Models/ReferenceResponseItem.cs new file mode 100644 index 000000000..11348e698 --- /dev/null +++ b/src/Generated/Models/ReferenceResponseItem.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ReferenceResponseItem : ResponseItem + { + internal ReferenceResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties) : base(@type, id, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/ResponseContentPart.Serialization.cs b/src/Generated/Models/ResponseContentPart.Serialization.cs new file mode 100644 index 000000000..1f1aa1e9d --- /dev/null +++ b/src/Generated/Models/ResponseContentPart.Serialization.cs @@ -0,0 +1,146 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseContentPart : IJsonModel + { + internal ResponseContentPart() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Kind.ToSerialString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseContentPart(document.RootElement, options); + } + + internal static ResponseContentPart DeserializeResponseContentPart(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "input_text": + return InternalResponsesInputTextContentPart.DeserializeInternalResponsesInputTextContentPart(element, options); + case "input_image": + return InternalResponsesInputImageContentPart.DeserializeInternalResponsesInputImageContentPart(element, options); + case "input_file": + return InternalResponsesInputFileContentPart.DeserializeInternalResponsesInputFileContentPart(element, options); + case "output_text": + return InternalResponsesOutputTextContentPart.DeserializeInternalResponsesOutputTextContentPart(element, options); + case "refusal": + return InternalResponsesOutputRefusalContentPart.DeserializeInternalResponsesOutputRefusalContentPart(element, options); + } + } + return UnknownResponsesContent.DeserializeUnknownResponsesContent(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support writing '{options.Format}' format."); + } + } + + ResponseContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseContentPart responseContentPart) + { + if (responseContentPart == null) + { + return null; + } + return BinaryContent.Create(responseContentPart, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseContentPart(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseContentPart(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseContentPart.cs b/src/Generated/Models/ResponseContentPart.cs new file mode 100644 index 000000000..52c5cd460 --- /dev/null +++ b/src/Generated/Models/ResponseContentPart.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseContentPart + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ResponseContentPart(ResponseContentPartKind kind) + { + Kind = kind; + } + + internal ResponseContentPart(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties) + { + Kind = kind; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseContentPartKind.Serialization.cs b/src/Generated/Models/ResponseContentPartKind.Serialization.cs new file mode 100644 index 000000000..dea45607c --- /dev/null +++ b/src/Generated/Models/ResponseContentPartKind.Serialization.cs @@ -0,0 +1,46 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ResponseContentPartKindExtensions + { + public static string ToSerialString(this ResponseContentPartKind value) => value switch + { + ResponseContentPartKind.InputText => "input_text", + ResponseContentPartKind.InputImage => "input_image", + ResponseContentPartKind.InputFile => "input_file", + ResponseContentPartKind.OutputText => "output_text", + ResponseContentPartKind.Refusal => "refusal", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ResponseContentPartKind value.") + }; + + public static ResponseContentPartKind ToResponseContentPartKind(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "input_text")) + { + return ResponseContentPartKind.InputText; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "input_image")) + { + return ResponseContentPartKind.InputImage; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "input_file")) + { + return ResponseContentPartKind.InputFile; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "output_text")) + { + return ResponseContentPartKind.OutputText; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "refusal")) + { + return ResponseContentPartKind.Refusal; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ResponseContentPartKind value."); + } + } +} diff --git a/src/Generated/Models/ResponseCreationOptions.Serialization.cs b/src/Generated/Models/ResponseCreationOptions.Serialization.cs new file mode 100644 index 000000000..2ec93c9f4 --- /dev/null +++ b/src/Generated/Models/ResponseCreationOptions.Serialization.cs @@ -0,0 +1,473 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseCreationOptions : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseCreationOptions)} does not support writing '{format}' format."); + } + if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + if (Optional.IsDefined(TopP) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + if (Optional.IsDefined(PreviousResponseId) && _additionalBinaryDataProperties?.ContainsKey("previous_response_id") != true) + { + writer.WritePropertyName("previous_response_id"u8); + writer.WriteStringValue(PreviousResponseId); + } + if (Optional.IsDefined(Instructions) && _additionalBinaryDataProperties?.ContainsKey("instructions") != true) + { + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(Instructions); + } + if (Optional.IsCollectionDefined(Tools) && _additionalBinaryDataProperties?.ContainsKey("tools") != true) + { + writer.WritePropertyName("tools"u8); + writer.WriteStartArray(); + foreach (ResponseTool item in Tools) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(ToolChoice) && _additionalBinaryDataProperties?.ContainsKey("tool_choice") != true) + { + writer.WritePropertyName("tool_choice"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ToolChoice); +#else + using (JsonDocument document = JsonDocument.Parse(ToolChoice)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + if (Optional.IsCollectionDefined(Include) && _additionalBinaryDataProperties?.ContainsKey("include") != true) + { + writer.WritePropertyName("include"u8); + writer.WriteStartArray(); + foreach (InternalCreateResponsesRequestIncludable item in Include) + { + writer.WriteStringValue(item.ToString()); + } + writer.WriteEndArray(); + } + if (_additionalBinaryDataProperties?.ContainsKey("model") != true) + { + writer.WritePropertyName("model"u8); + writer.WriteStringValue(Model.ToString()); + } + if (_additionalBinaryDataProperties?.ContainsKey("input") != true) + { + writer.WritePropertyName("input"u8); + writer.WriteStartArray(); + foreach (ResponseItem item in Input) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(Stream) && _additionalBinaryDataProperties?.ContainsKey("stream") != true) + { + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); + } + if (Optional.IsDefined(EndUserId) && _additionalBinaryDataProperties?.ContainsKey("user") != true) + { + writer.WritePropertyName("user"u8); + writer.WriteStringValue(EndUserId); + } + if (Optional.IsDefined(ReasoningOptions) && _additionalBinaryDataProperties?.ContainsKey("reasoning") != true) + { + writer.WritePropertyName("reasoning"u8); + writer.WriteObjectValue(ReasoningOptions, options); + } + if (Optional.IsDefined(MaxOutputTokenCount) && _additionalBinaryDataProperties?.ContainsKey("max_output_tokens") != true) + { + writer.WritePropertyName("max_output_tokens"u8); + writer.WriteNumberValue(MaxOutputTokenCount.Value); + } + if (Optional.IsDefined(TextOptions) && _additionalBinaryDataProperties?.ContainsKey("text") != true) + { + writer.WritePropertyName("text"u8); + writer.WriteObjectValue(TextOptions, options); + } + if (Optional.IsDefined(TruncationMode) && _additionalBinaryDataProperties?.ContainsKey("truncation") != true) + { + writer.WritePropertyName("truncation"u8); + writer.WriteStringValue(TruncationMode.Value.ToString()); + } + if (Optional.IsDefined(AllowParallelToolCalls) && _additionalBinaryDataProperties?.ContainsKey("parallel_tool_calls") != true) + { + writer.WritePropertyName("parallel_tool_calls"u8); + writer.WriteBooleanValue(AllowParallelToolCalls.Value); + } + if (Optional.IsDefined(StoredOutputEnabled) && _additionalBinaryDataProperties?.ContainsKey("store") != true) + { + writer.WritePropertyName("store"u8); + writer.WriteBooleanValue(StoredOutputEnabled.Value); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseCreationOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseCreationOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseCreationOptions)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseCreationOptions(document.RootElement, options); + } + + internal static ResponseCreationOptions DeserializeResponseCreationOptions(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IDictionary metadata = default; + float? temperature = default; + float? topP = default; + string previousResponseId = default; + string instructions = default; + IList tools = default; + BinaryData toolChoice = default; + IList include = default; + InternalCreateResponsesRequestModel model = default; + IList input = default; + bool? stream = default; + string endUserId = default; + ResponseReasoningOptions reasoningOptions = default; + int? maxOutputTokenCount = default; + ResponseTextOptions textOptions = default; + ResponseTruncationMode? truncationMode = default; + bool? allowParallelToolCalls = default; + bool? storedOutputEnabled = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("metadata"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + metadata = dictionary; + continue; + } + if (prop.NameEquals("temperature"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + temperature = null; + continue; + } + temperature = prop.Value.GetSingle(); + continue; + } + if (prop.NameEquals("top_p"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + topP = null; + continue; + } + topP = prop.Value.GetSingle(); + continue; + } + if (prop.NameEquals("previous_response_id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + previousResponseId = null; + continue; + } + previousResponseId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("instructions"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + instructions = null; + continue; + } + instructions = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("tools"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseTool.DeserializeResponseTool(item, options)); + } + tools = array; + continue; + } + if (prop.NameEquals("tool_choice"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + toolChoice = BinaryData.FromString(prop.Value.GetRawText()); + continue; + } + if (prop.NameEquals("include"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(new InternalCreateResponsesRequestIncludable(item.GetString())); + } + include = array; + continue; + } + if (prop.NameEquals("model"u8)) + { + model = new InternalCreateResponsesRequestModel(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("input"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ResponseItem.DeserializeResponseItem(item, options)); + } + input = array; + continue; + } + if (prop.NameEquals("stream"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + stream = null; + continue; + } + stream = prop.Value.GetBoolean(); + continue; + } + if (prop.NameEquals("user"u8)) + { + endUserId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("reasoning"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + reasoningOptions = ResponseReasoningOptions.DeserializeResponseReasoningOptions(prop.Value, options); + continue; + } + if (prop.NameEquals("max_output_tokens"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + maxOutputTokenCount = null; + continue; + } + maxOutputTokenCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("text"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + textOptions = ResponseTextOptions.DeserializeResponseTextOptions(prop.Value, options); + continue; + } + if (prop.NameEquals("truncation"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + truncationMode = null; + continue; + } + truncationMode = new ResponseTruncationMode(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("parallel_tool_calls"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + allowParallelToolCalls = null; + continue; + } + allowParallelToolCalls = prop.Value.GetBoolean(); + continue; + } + if (prop.NameEquals("store"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + storedOutputEnabled = null; + continue; + } + storedOutputEnabled = prop.Value.GetBoolean(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseCreationOptions( + metadata ?? new ChangeTrackingDictionary(), + temperature, + topP, + previousResponseId, + instructions, + tools ?? new ChangeTrackingList(), + toolChoice, + include ?? new ChangeTrackingList(), + model, + input, + stream, + endUserId, + reasoningOptions, + maxOutputTokenCount, + textOptions, + truncationMode, + allowParallelToolCalls, + storedOutputEnabled, + additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseCreationOptions)} does not support writing '{options.Format}' format."); + } + } + + ResponseCreationOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseCreationOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseCreationOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseCreationOptions)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseCreationOptions responseCreationOptions) + { + if (responseCreationOptions == null) + { + return null; + } + return BinaryContent.Create(responseCreationOptions, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseCreationOptions(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseCreationOptions(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseCreationOptions.cs b/src/Generated/Models/ResponseCreationOptions.cs new file mode 100644 index 000000000..e67f79cb5 --- /dev/null +++ b/src/Generated/Models/ResponseCreationOptions.cs @@ -0,0 +1,57 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseCreationOptions + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ResponseCreationOptions(IDictionary metadata, float? temperature, float? topP, string previousResponseId, string instructions, IList tools, BinaryData toolChoice, IList include, InternalCreateResponsesRequestModel model, IList input, bool? stream, string endUserId, ResponseReasoningOptions reasoningOptions, int? maxOutputTokenCount, ResponseTextOptions textOptions, ResponseTruncationMode? truncationMode, bool? allowParallelToolCalls, bool? storedOutputEnabled, IDictionary additionalBinaryDataProperties) + { + Metadata = metadata; + Temperature = temperature; + TopP = topP; + PreviousResponseId = previousResponseId; + Instructions = instructions; + Tools = tools; + ToolChoice = toolChoice; + Include = include; + Model = model; + Input = input; + Stream = stream; + EndUserId = endUserId; + ReasoningOptions = reasoningOptions; + MaxOutputTokenCount = maxOutputTokenCount; + TextOptions = textOptions; + TruncationMode = truncationMode; + AllowParallelToolCalls = allowParallelToolCalls; + StoredOutputEnabled = storedOutputEnabled; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public IDictionary Metadata { get; } + + public float? Temperature { get; set; } + + public float? TopP { get; set; } + + public string PreviousResponseId { get; set; } + + public string Instructions { get; set; } + + public IList Tools { get; set; } + + public BinaryData ToolChoice { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseDeletionResult.Serialization.cs b/src/Generated/Models/ResponseDeletionResult.Serialization.cs new file mode 100644 index 000000000..9c242dcab --- /dev/null +++ b/src/Generated/Models/ResponseDeletionResult.Serialization.cs @@ -0,0 +1,164 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseDeletionResult : IJsonModel + { + internal ResponseDeletionResult() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseDeletionResult)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("id") != true) + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + if (_additionalBinaryDataProperties?.ContainsKey("deleted") != true) + { + writer.WritePropertyName("deleted"u8); + writer.WriteBooleanValue(Deleted); + } + if (_additionalBinaryDataProperties?.ContainsKey("object") != true) + { + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseDeletionResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseDeletionResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseDeletionResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseDeletionResult(document.RootElement, options); + } + + internal static ResponseDeletionResult DeserializeResponseDeletionResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + bool deleted = default; + InternalDeleteResponseResponseObject @object = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("deleted"u8)) + { + deleted = prop.Value.GetBoolean(); + continue; + } + if (prop.NameEquals("object"u8)) + { + @object = new InternalDeleteResponseResponseObject(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseDeletionResult(id, deleted, @object, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseDeletionResult)} does not support writing '{options.Format}' format."); + } + } + + ResponseDeletionResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseDeletionResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseDeletionResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseDeletionResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseDeletionResult responseDeletionResult) + { + if (responseDeletionResult == null) + { + return null; + } + return BinaryContent.Create(responseDeletionResult, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseDeletionResult(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseDeletionResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseDeletionResult.cs b/src/Generated/Models/ResponseDeletionResult.cs new file mode 100644 index 000000000..f598f9d29 --- /dev/null +++ b/src/Generated/Models/ResponseDeletionResult.cs @@ -0,0 +1,37 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseDeletionResult + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ResponseDeletionResult(string id) + { + Id = id; + } + + internal ResponseDeletionResult(string id, bool deleted, InternalDeleteResponseResponseObject @object, IDictionary additionalBinaryDataProperties) + { + Id = id; + Deleted = deleted; + Object = @object; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string Id { get; } + + public bool Deleted { get; } = true; + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseError.Serialization.cs b/src/Generated/Models/ResponseError.Serialization.cs new file mode 100644 index 000000000..4d2ea6944 --- /dev/null +++ b/src/Generated/Models/ResponseError.Serialization.cs @@ -0,0 +1,153 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseError : IJsonModel + { + internal ResponseError() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseError)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("code") != true) + { + writer.WritePropertyName("code"u8); + writer.WriteStringValue(Code); + } + if (_additionalBinaryDataProperties?.ContainsKey("message") != true) + { + writer.WritePropertyName("message"u8); + writer.WriteStringValue(Message); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseError IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseError JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseError)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseError(document.RootElement, options); + } + + internal static ResponseError DeserializeResponseError(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string code = default; + string message = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("code"u8)) + { + code = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("message"u8)) + { + message = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseError(code, message, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseError)} does not support writing '{options.Format}' format."); + } + } + + ResponseError IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseError PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseError(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseError)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseError responseError) + { + if (responseError == null) + { + return null; + } + return BinaryContent.Create(responseError, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseError(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseError(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseError.cs b/src/Generated/Models/ResponseError.cs new file mode 100644 index 000000000..02c73a4b3 --- /dev/null +++ b/src/Generated/Models/ResponseError.cs @@ -0,0 +1,37 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseError + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ResponseError(string code, string message) + { + Code = code; + Message = message; + } + + internal ResponseError(string code, string message, IDictionary additionalBinaryDataProperties) + { + Code = code; + Message = message; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public string Code { get; } + + public string Message { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseImageDetailLevel.cs b/src/Generated/Models/ResponseImageDetailLevel.cs new file mode 100644 index 000000000..20fa85913 --- /dev/null +++ b/src/Generated/Models/ResponseImageDetailLevel.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct ResponseImageDetailLevel : IEquatable + { + private readonly string _value; + private const string LowValue = "low"; + private const string HighValue = "high"; + private const string AutoValue = "auto"; + + public ResponseImageDetailLevel(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static ResponseImageDetailLevel Low { get; } = new ResponseImageDetailLevel(LowValue); + + public static ResponseImageDetailLevel High { get; } = new ResponseImageDetailLevel(HighValue); + + public static ResponseImageDetailLevel Auto { get; } = new ResponseImageDetailLevel(AutoValue); + + public static bool operator ==(ResponseImageDetailLevel left, ResponseImageDetailLevel right) => left.Equals(right); + + public static bool operator !=(ResponseImageDetailLevel left, ResponseImageDetailLevel right) => !left.Equals(right); + + public static implicit operator ResponseImageDetailLevel(string value) => new ResponseImageDetailLevel(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResponseImageDetailLevel other && Equals(other); + + public bool Equals(ResponseImageDetailLevel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/ResponseIncompleteStatusDetails.Serialization.cs b/src/Generated/Models/ResponseIncompleteStatusDetails.Serialization.cs new file mode 100644 index 000000000..2da6b968c --- /dev/null +++ b/src/Generated/Models/ResponseIncompleteStatusDetails.Serialization.cs @@ -0,0 +1,142 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseIncompleteStatusDetails : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseIncompleteStatusDetails)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(Reason) && _additionalBinaryDataProperties?.ContainsKey("reason") != true) + { + writer.WritePropertyName("reason"u8); + writer.WriteStringValue(Reason.Value.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseIncompleteStatusDetails IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseIncompleteStatusDetails JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseIncompleteStatusDetails)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseIncompleteStatusDetails(document.RootElement, options); + } + + internal static ResponseIncompleteStatusDetails DeserializeResponseIncompleteStatusDetails(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseIncompleteStatusReason? reason = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("reason"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + reason = new ResponseIncompleteStatusReason(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseIncompleteStatusDetails(reason, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseIncompleteStatusDetails)} does not support writing '{options.Format}' format."); + } + } + + ResponseIncompleteStatusDetails IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseIncompleteStatusDetails PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseIncompleteStatusDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseIncompleteStatusDetails)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseIncompleteStatusDetails responseIncompleteStatusDetails) + { + if (responseIncompleteStatusDetails == null) + { + return null; + } + return BinaryContent.Create(responseIncompleteStatusDetails, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseIncompleteStatusDetails(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseIncompleteStatusDetails(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseIncompleteStatusDetails.cs b/src/Generated/Models/ResponseIncompleteStatusDetails.cs new file mode 100644 index 000000000..bf47b53d4 --- /dev/null +++ b/src/Generated/Models/ResponseIncompleteStatusDetails.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseIncompleteStatusDetails + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ResponseIncompleteStatusDetails() + { + } + + internal ResponseIncompleteStatusDetails(ResponseIncompleteStatusReason? reason, IDictionary additionalBinaryDataProperties) + { + Reason = reason; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public ResponseIncompleteStatusReason? Reason { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseIncompleteStatusReason.cs b/src/Generated/Models/ResponseIncompleteStatusReason.cs new file mode 100644 index 000000000..09c9136b3 --- /dev/null +++ b/src/Generated/Models/ResponseIncompleteStatusReason.cs @@ -0,0 +1,44 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct ResponseIncompleteStatusReason : IEquatable + { + private readonly string _value; + private const string MaxOutputTokensValue = "max_output_tokens"; + private const string ContentFilterValue = "content_filter"; + + public ResponseIncompleteStatusReason(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static ResponseIncompleteStatusReason MaxOutputTokens { get; } = new ResponseIncompleteStatusReason(MaxOutputTokensValue); + + public static ResponseIncompleteStatusReason ContentFilter { get; } = new ResponseIncompleteStatusReason(ContentFilterValue); + + public static bool operator ==(ResponseIncompleteStatusReason left, ResponseIncompleteStatusReason right) => left.Equals(right); + + public static bool operator !=(ResponseIncompleteStatusReason left, ResponseIncompleteStatusReason right) => !left.Equals(right); + + public static implicit operator ResponseIncompleteStatusReason(string value) => new ResponseIncompleteStatusReason(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResponseIncompleteStatusReason other && Equals(other); + + public bool Equals(ResponseIncompleteStatusReason other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/ResponseItem.Serialization.cs b/src/Generated/Models/ResponseItem.Serialization.cs new file mode 100644 index 000000000..1be232552 --- /dev/null +++ b/src/Generated/Models/ResponseItem.Serialization.cs @@ -0,0 +1,159 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseItem : IJsonModel + { + internal ResponseItem() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseItem)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (Optional.IsDefined(Id) && _additionalBinaryDataProperties?.ContainsKey("id") != true) + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseItem(document.RootElement, options); + } + + internal static ResponseItem DeserializeResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "message": + return MessageResponseItem.DeserializeMessageResponseItem(element, options); + case "function_call": + return FunctionCallResponseItem.DeserializeFunctionCallResponseItem(element, options); + case "function_call_output": + return FunctionCallOutputResponseItem.DeserializeFunctionCallOutputResponseItem(element, options); + case "computer_call": + return ComputerCallResponseItem.DeserializeComputerCallResponseItem(element, options); + case "computer_call_output": + return ComputerCallOutputResponseItem.DeserializeComputerCallOutputResponseItem(element, options); + case "file_search_call": + return FileSearchCallResponseItem.DeserializeFileSearchCallResponseItem(element, options); + case "item_reference": + return ReferenceResponseItem.DeserializeReferenceResponseItem(element, options); + case "web_search_call": + return WebSearchCallResponseItem.DeserializeWebSearchCallResponseItem(element, options); + case "reasoning": + return ReasoningResponseItem.DeserializeReasoningResponseItem(element, options); + } + } + return InternalUnknownResponsesItem.DeserializeInternalUnknownResponsesItem(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseItem)} does not support writing '{options.Format}' format."); + } + } + + ResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseItem responseItem) + { + if (responseItem == null) + { + return null; + } + return BinaryContent.Create(responseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseItem.cs b/src/Generated/Models/ResponseItem.cs new file mode 100644 index 000000000..327ba454f --- /dev/null +++ b/src/Generated/Models/ResponseItem.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseItem + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ResponseItem(InternalResponsesItemType @type) + { + Type = @type; + } + + internal ResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties) + { + Type = @type; + Id = id; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal InternalResponsesItemType Type { get; set; } + + public string Id { get; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseMessageAnnotation.Serialization.cs b/src/Generated/Models/ResponseMessageAnnotation.Serialization.cs new file mode 100644 index 000000000..bc929438d --- /dev/null +++ b/src/Generated/Models/ResponseMessageAnnotation.Serialization.cs @@ -0,0 +1,142 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseMessageAnnotation : IJsonModel + { + internal ResponseMessageAnnotation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Kind.ToSerialString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseMessageAnnotation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseMessageAnnotation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseMessageAnnotation(document.RootElement, options); + } + + internal static ResponseMessageAnnotation DeserializeResponseMessageAnnotation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "file_citation": + return InternalResponsesMessageAnnotationFileCitation.DeserializeInternalResponsesMessageAnnotationFileCitation(element, options); + case "url_citation": + return InternalResponsesMessageAnnotationUrlCitation.DeserializeInternalResponsesMessageAnnotationUrlCitation(element, options); + case "file_path": + return InternalResponsesMessageAnnotationFilePath.DeserializeInternalResponsesMessageAnnotationFilePath(element, options); + } + } + return UnknownResponsesOutputTextAnnotation.DeserializeUnknownResponsesOutputTextAnnotation(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support writing '{options.Format}' format."); + } + } + + ResponseMessageAnnotation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseMessageAnnotation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseMessageAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseMessageAnnotation responseMessageAnnotation) + { + if (responseMessageAnnotation == null) + { + return null; + } + return BinaryContent.Create(responseMessageAnnotation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseMessageAnnotation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseMessageAnnotation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseMessageAnnotation.cs b/src/Generated/Models/ResponseMessageAnnotation.cs new file mode 100644 index 000000000..9fd5c7f85 --- /dev/null +++ b/src/Generated/Models/ResponseMessageAnnotation.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseMessageAnnotation + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ResponseMessageAnnotation(ResponseMessageAnnotationKind kind) + { + Kind = kind; + } + + internal ResponseMessageAnnotation(ResponseMessageAnnotationKind kind, IDictionary additionalBinaryDataProperties) + { + Kind = kind; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseMessageAnnotationKind.Serialization.cs b/src/Generated/Models/ResponseMessageAnnotationKind.Serialization.cs new file mode 100644 index 000000000..b7cbb0be4 --- /dev/null +++ b/src/Generated/Models/ResponseMessageAnnotationKind.Serialization.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ResponseMessageAnnotationKindExtensions + { + public static string ToSerialString(this ResponseMessageAnnotationKind value) => value switch + { + ResponseMessageAnnotationKind.FileCitation => "file_citation", + ResponseMessageAnnotationKind.UriCitation => "url_citation", + ResponseMessageAnnotationKind.FilePath => "file_path", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ResponseMessageAnnotationKind value.") + }; + + public static ResponseMessageAnnotationKind ToResponseMessageAnnotationKind(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "file_citation")) + { + return ResponseMessageAnnotationKind.FileCitation; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "url_citation")) + { + return ResponseMessageAnnotationKind.UriCitation; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "file_path")) + { + return ResponseMessageAnnotationKind.FilePath; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ResponseMessageAnnotationKind value."); + } + } +} diff --git a/src/Generated/Models/ResponseOutputTokenUsageDetails.Serialization.cs b/src/Generated/Models/ResponseOutputTokenUsageDetails.Serialization.cs new file mode 100644 index 000000000..b591f822b --- /dev/null +++ b/src/Generated/Models/ResponseOutputTokenUsageDetails.Serialization.cs @@ -0,0 +1,142 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseOutputTokenUsageDetails : IJsonModel + { + internal ResponseOutputTokenUsageDetails() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseOutputTokenUsageDetails)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("reasoning_tokens") != true) + { + writer.WritePropertyName("reasoning_tokens"u8); + writer.WriteNumberValue(ReasoningTokenCount); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseOutputTokenUsageDetails IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseOutputTokenUsageDetails JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseOutputTokenUsageDetails)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseOutputTokenUsageDetails(document.RootElement, options); + } + + internal static ResponseOutputTokenUsageDetails DeserializeResponseOutputTokenUsageDetails(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int reasoningTokenCount = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("reasoning_tokens"u8)) + { + reasoningTokenCount = prop.Value.GetInt32(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseOutputTokenUsageDetails(reasoningTokenCount, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseOutputTokenUsageDetails)} does not support writing '{options.Format}' format."); + } + } + + ResponseOutputTokenUsageDetails IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseOutputTokenUsageDetails PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseOutputTokenUsageDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseOutputTokenUsageDetails)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseOutputTokenUsageDetails responseOutputTokenUsageDetails) + { + if (responseOutputTokenUsageDetails == null) + { + return null; + } + return BinaryContent.Create(responseOutputTokenUsageDetails, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseOutputTokenUsageDetails(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseOutputTokenUsageDetails(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseOutputTokenUsageDetails.cs b/src/Generated/Models/ResponseOutputTokenUsageDetails.cs new file mode 100644 index 000000000..e8e81ce5b --- /dev/null +++ b/src/Generated/Models/ResponseOutputTokenUsageDetails.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseOutputTokenUsageDetails + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ResponseOutputTokenUsageDetails(int reasoningTokenCount) + { + ReasoningTokenCount = reasoningTokenCount; + } + + internal ResponseOutputTokenUsageDetails(int reasoningTokenCount, IDictionary additionalBinaryDataProperties) + { + ReasoningTokenCount = reasoningTokenCount; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseReasoningEffortLevel.cs b/src/Generated/Models/ResponseReasoningEffortLevel.cs new file mode 100644 index 000000000..e29f302ae --- /dev/null +++ b/src/Generated/Models/ResponseReasoningEffortLevel.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct ResponseReasoningEffortLevel : IEquatable + { + private readonly string _value; + private const string LowValue = "low"; + private const string MediumValue = "medium"; + private const string HighValue = "high"; + + public ResponseReasoningEffortLevel(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static ResponseReasoningEffortLevel Low { get; } = new ResponseReasoningEffortLevel(LowValue); + + public static ResponseReasoningEffortLevel Medium { get; } = new ResponseReasoningEffortLevel(MediumValue); + + public static ResponseReasoningEffortLevel High { get; } = new ResponseReasoningEffortLevel(HighValue); + + public static bool operator ==(ResponseReasoningEffortLevel left, ResponseReasoningEffortLevel right) => left.Equals(right); + + public static bool operator !=(ResponseReasoningEffortLevel left, ResponseReasoningEffortLevel right) => !left.Equals(right); + + public static implicit operator ResponseReasoningEffortLevel(string value) => new ResponseReasoningEffortLevel(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResponseReasoningEffortLevel other && Equals(other); + + public bool Equals(ResponseReasoningEffortLevel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/ResponseReasoningOptions.Serialization.cs b/src/Generated/Models/ResponseReasoningOptions.Serialization.cs new file mode 100644 index 000000000..3993dd6ac --- /dev/null +++ b/src/Generated/Models/ResponseReasoningOptions.Serialization.cs @@ -0,0 +1,166 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseReasoningOptions : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseReasoningOptions)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("effort") != true) + { + if (Optional.IsDefined(ReasoningEffortLevel)) + { + writer.WritePropertyName("effort"u8); + writer.WriteStringValue(ReasoningEffortLevel.Value.ToString()); + } + else + { + writer.WriteNull("effort"u8); + } + } + if (Optional.IsDefined(ReasoningSummaryVerbosity) && _additionalBinaryDataProperties?.ContainsKey("generate_summary") != true) + { + writer.WritePropertyName("generate_summary"u8); + writer.WriteStringValue(ReasoningSummaryVerbosity.Value.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseReasoningOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseReasoningOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseReasoningOptions)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseReasoningOptions(document.RootElement, options); + } + + internal static ResponseReasoningOptions DeserializeResponseReasoningOptions(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseReasoningEffortLevel? reasoningEffortLevel = default; + ResponseReasoningSummaryVerbosity? reasoningSummaryVerbosity = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("effort"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + reasoningEffortLevel = null; + continue; + } + reasoningEffortLevel = new ResponseReasoningEffortLevel(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("generate_summary"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + reasoningSummaryVerbosity = null; + continue; + } + reasoningSummaryVerbosity = new ResponseReasoningSummaryVerbosity(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseReasoningOptions(reasoningEffortLevel, reasoningSummaryVerbosity, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseReasoningOptions)} does not support writing '{options.Format}' format."); + } + } + + ResponseReasoningOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseReasoningOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseReasoningOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseReasoningOptions)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseReasoningOptions responseReasoningOptions) + { + if (responseReasoningOptions == null) + { + return null; + } + return BinaryContent.Create(responseReasoningOptions, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseReasoningOptions(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseReasoningOptions(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseReasoningOptions.cs b/src/Generated/Models/ResponseReasoningOptions.cs new file mode 100644 index 000000000..b1ba483d3 --- /dev/null +++ b/src/Generated/Models/ResponseReasoningOptions.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseReasoningOptions + { + private protected IDictionary _additionalBinaryDataProperties; + + public ResponseReasoningOptions(ResponseReasoningEffortLevel? reasoningEffortLevel) + { + ReasoningEffortLevel = reasoningEffortLevel; + } + + internal ResponseReasoningOptions(ResponseReasoningEffortLevel? reasoningEffortLevel, ResponseReasoningSummaryVerbosity? reasoningSummaryVerbosity, IDictionary additionalBinaryDataProperties) + { + ReasoningEffortLevel = reasoningEffortLevel; + ReasoningSummaryVerbosity = reasoningSummaryVerbosity; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseReasoningSummaryVerbosity.cs b/src/Generated/Models/ResponseReasoningSummaryVerbosity.cs new file mode 100644 index 000000000..1562b0816 --- /dev/null +++ b/src/Generated/Models/ResponseReasoningSummaryVerbosity.cs @@ -0,0 +1,44 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct ResponseReasoningSummaryVerbosity : IEquatable + { + private readonly string _value; + private const string ConciseValue = "concise"; + private const string DetailedValue = "detailed"; + + public ResponseReasoningSummaryVerbosity(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static ResponseReasoningSummaryVerbosity Concise { get; } = new ResponseReasoningSummaryVerbosity(ConciseValue); + + public static ResponseReasoningSummaryVerbosity Detailed { get; } = new ResponseReasoningSummaryVerbosity(DetailedValue); + + public static bool operator ==(ResponseReasoningSummaryVerbosity left, ResponseReasoningSummaryVerbosity right) => left.Equals(right); + + public static bool operator !=(ResponseReasoningSummaryVerbosity left, ResponseReasoningSummaryVerbosity right) => !left.Equals(right); + + public static implicit operator ResponseReasoningSummaryVerbosity(string value) => new ResponseReasoningSummaryVerbosity(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResponseReasoningSummaryVerbosity other && Equals(other); + + public bool Equals(ResponseReasoningSummaryVerbosity other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/ResponseStatus.Serialization.cs b/src/Generated/Models/ResponseStatus.Serialization.cs new file mode 100644 index 000000000..4c749c4a9 --- /dev/null +++ b/src/Generated/Models/ResponseStatus.Serialization.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class ResponseStatusExtensions + { + public static string ToSerialString(this ResponseStatus value) => value switch + { + ResponseStatus.Completed => "completed", + ResponseStatus.InProgress => "in_progress", + ResponseStatus.Failed => "failed", + ResponseStatus.Incomplete => "incomplete", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ResponseStatus value.") + }; + + public static ResponseStatus ToResponseStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return ResponseStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return ResponseStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "failed")) + { + return ResponseStatus.Failed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "incomplete")) + { + return ResponseStatus.Incomplete; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown ResponseStatus value."); + } + } +} diff --git a/src/Generated/Models/ResponseTextFormat.Serialization.cs b/src/Generated/Models/ResponseTextFormat.Serialization.cs new file mode 100644 index 000000000..8cdb79b8c --- /dev/null +++ b/src/Generated/Models/ResponseTextFormat.Serialization.cs @@ -0,0 +1,142 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseTextFormat : IJsonModel + { + internal ResponseTextFormat() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseTextFormat IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseTextFormat JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseTextFormat(document.RootElement, options); + } + + internal static ResponseTextFormat DeserializeResponseTextFormat(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "text": + return InternalResponsesTextFormatText.DeserializeInternalResponsesTextFormatText(element, options); + case "json_object": + return InternalResponsesTextFormatJsonObject.DeserializeInternalResponsesTextFormatJsonObject(element, options); + case "json_schema": + return InternalResponsesTextFormatJsonSchema.DeserializeInternalResponsesTextFormatJsonSchema(element, options); + } + } + return InternalUnknownResponsesTextFormat.DeserializeInternalUnknownResponsesTextFormat(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support writing '{options.Format}' format."); + } + } + + ResponseTextFormat IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseTextFormat PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseTextFormat(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseTextFormat)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseTextFormat responseTextFormat) + { + if (responseTextFormat == null) + { + return null; + } + return BinaryContent.Create(responseTextFormat, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseTextFormat(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseTextFormat(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseTextFormat.cs b/src/Generated/Models/ResponseTextFormat.cs new file mode 100644 index 000000000..c1f994a74 --- /dev/null +++ b/src/Generated/Models/ResponseTextFormat.cs @@ -0,0 +1,33 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseTextFormat + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ResponseTextFormat(InternalResponsesTextFormatType @type) + { + Type = @type; + } + + internal ResponseTextFormat(InternalResponsesTextFormatType @type, IDictionary additionalBinaryDataProperties) + { + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal InternalResponsesTextFormatType Type { get; set; } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseTextOptions.Serialization.cs b/src/Generated/Models/ResponseTextOptions.Serialization.cs new file mode 100644 index 000000000..6da104a8d --- /dev/null +++ b/src/Generated/Models/ResponseTextOptions.Serialization.cs @@ -0,0 +1,142 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseTextOptions : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTextOptions)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("format") != true) + { + writer.WritePropertyName("format"u8); + writer.WriteObjectValue(ResponseFormat, options); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseTextOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseTextOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTextOptions)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseTextOptions(document.RootElement, options); + } + + internal static ResponseTextOptions DeserializeResponseTextOptions(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseTextFormat responseFormat = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("format"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + responseFormat = ResponseTextFormat.DeserializeResponseTextFormat(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseTextOptions(responseFormat, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseTextOptions)} does not support writing '{options.Format}' format."); + } + } + + ResponseTextOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseTextOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseTextOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseTextOptions)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseTextOptions responseTextOptions) + { + if (responseTextOptions == null) + { + return null; + } + return BinaryContent.Create(responseTextOptions, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseTextOptions(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseTextOptions(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ChatMessageContent.cs b/src/Generated/Models/ResponseTextOptions.cs similarity index 61% rename from src/Generated/Models/ChatMessageContent.cs rename to src/Generated/Models/ResponseTextOptions.cs index c3e8dec13..b85d11dce 100644 --- a/src/Generated/Models/ChatMessageContent.cs +++ b/src/Generated/Models/ResponseTextOptions.cs @@ -5,14 +5,19 @@ using System; using System.Collections.Generic; -namespace OpenAI.Chat +namespace OpenAI.Responses { - public partial class ChatMessageContent + public partial class ResponseTextOptions { private protected IDictionary _additionalBinaryDataProperties; - internal ChatMessageContent(IDictionary additionalBinaryDataProperties) + public ResponseTextOptions() { + } + + internal ResponseTextOptions(ResponseTextFormat responseFormat, IDictionary additionalBinaryDataProperties) + { + ResponseFormat = responseFormat; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/ResponseTokenUsage.Serialization.cs b/src/Generated/Models/ResponseTokenUsage.Serialization.cs new file mode 100644 index 000000000..677646dc7 --- /dev/null +++ b/src/Generated/Models/ResponseTokenUsage.Serialization.cs @@ -0,0 +1,175 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseTokenUsage : IJsonModel + { + internal ResponseTokenUsage() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTokenUsage)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("input_tokens") != true) + { + writer.WritePropertyName("input_tokens"u8); + writer.WriteNumberValue(InputTokenCount); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_tokens") != true) + { + writer.WritePropertyName("output_tokens"u8); + writer.WriteNumberValue(OutputTokenCount); + } + if (_additionalBinaryDataProperties?.ContainsKey("total_tokens") != true) + { + writer.WritePropertyName("total_tokens"u8); + writer.WriteNumberValue(TotalTokenCount); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_tokens_details") != true) + { + writer.WritePropertyName("output_tokens_details"u8); + writer.WriteObjectValue(OutputTokenDetails, options); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseTokenUsage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseTokenUsage JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTokenUsage)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseTokenUsage(document.RootElement, options); + } + + internal static ResponseTokenUsage DeserializeResponseTokenUsage(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int inputTokenCount = default; + int outputTokenCount = default; + int totalTokenCount = default; + ResponseOutputTokenUsageDetails outputTokenDetails = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("input_tokens"u8)) + { + inputTokenCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("output_tokens"u8)) + { + outputTokenCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("total_tokens"u8)) + { + totalTokenCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("output_tokens_details"u8)) + { + outputTokenDetails = ResponseOutputTokenUsageDetails.DeserializeResponseOutputTokenUsageDetails(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new ResponseTokenUsage(inputTokenCount, outputTokenCount, totalTokenCount, outputTokenDetails, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseTokenUsage)} does not support writing '{options.Format}' format."); + } + } + + ResponseTokenUsage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseTokenUsage PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseTokenUsage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseTokenUsage)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseTokenUsage responseTokenUsage) + { + if (responseTokenUsage == null) + { + return null; + } + return BinaryContent.Create(responseTokenUsage, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseTokenUsage(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseTokenUsage(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseTokenUsage.cs b/src/Generated/Models/ResponseTokenUsage.cs new file mode 100644 index 000000000..8d02b4667 --- /dev/null +++ b/src/Generated/Models/ResponseTokenUsage.cs @@ -0,0 +1,37 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseTokenUsage + { + private protected IDictionary _additionalBinaryDataProperties; + + internal ResponseTokenUsage(int inputTokenCount, int outputTokenCount, int totalTokenCount, ResponseOutputTokenUsageDetails outputTokenDetails) + { + InputTokenCount = inputTokenCount; + OutputTokenCount = outputTokenCount; + TotalTokenCount = totalTokenCount; + OutputTokenDetails = outputTokenDetails; + } + + internal ResponseTokenUsage(int inputTokenCount, int outputTokenCount, int totalTokenCount, ResponseOutputTokenUsageDetails outputTokenDetails, IDictionary additionalBinaryDataProperties) + { + InputTokenCount = inputTokenCount; + OutputTokenCount = outputTokenCount; + TotalTokenCount = totalTokenCount; + OutputTokenDetails = outputTokenDetails; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseTool.Serialization.cs b/src/Generated/Models/ResponseTool.Serialization.cs new file mode 100644 index 000000000..91f4c8b72 --- /dev/null +++ b/src/Generated/Models/ResponseTool.Serialization.cs @@ -0,0 +1,144 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class ResponseTool : IJsonModel + { + internal ResponseTool() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTool)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ResponseTool IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual ResponseTool JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseTool)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseTool(document.RootElement, options); + } + + internal static ResponseTool DeserializeResponseTool(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "function": + return InternalResponsesFunctionTool.DeserializeInternalResponsesFunctionTool(element, options); + case "file_search": + return InternalResponsesFileSearchTool.DeserializeInternalResponsesFileSearchTool(element, options); + case "web_search_preview": + return InternalResponsesWebSearchTool.DeserializeInternalResponsesWebSearchTool(element, options); + case "computer_use_preview": + return InternalResponsesComputerTool.DeserializeInternalResponsesComputerTool(element, options); + } + } + return InternalUnknownResponsesTool.DeserializeInternalUnknownResponsesTool(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseTool)} does not support writing '{options.Format}' format."); + } + } + + ResponseTool IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual ResponseTool PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseTool(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseTool)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(ResponseTool responseTool) + { + if (responseTool == null) + { + return null; + } + return BinaryContent.Create(responseTool, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator ResponseTool(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeResponseTool(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/ResponseTool.cs b/src/Generated/Models/ResponseTool.cs new file mode 100644 index 000000000..f5cb97d31 --- /dev/null +++ b/src/Generated/Models/ResponseTool.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class ResponseTool + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected ResponseTool(InternalResponsesToolType @type) + { + Type = @type; + } + + internal ResponseTool(InternalResponsesToolType @type, IDictionary additionalBinaryDataProperties) + { + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/ResponseTruncationMode.cs b/src/Generated/Models/ResponseTruncationMode.cs new file mode 100644 index 000000000..4294acc06 --- /dev/null +++ b/src/Generated/Models/ResponseTruncationMode.cs @@ -0,0 +1,44 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct ResponseTruncationMode : IEquatable + { + private readonly string _value; + private const string AutoValue = "auto"; + private const string DisabledValue = "disabled"; + + public ResponseTruncationMode(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static ResponseTruncationMode Auto { get; } = new ResponseTruncationMode(AutoValue); + + public static ResponseTruncationMode Disabled { get; } = new ResponseTruncationMode(DisabledValue); + + public static bool operator ==(ResponseTruncationMode left, ResponseTruncationMode right) => left.Equals(right); + + public static bool operator !=(ResponseTruncationMode left, ResponseTruncationMode right) => !left.Equals(right); + + public static implicit operator ResponseTruncationMode(string value) => new ResponseTruncationMode(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResponseTruncationMode other && Equals(other); + + public bool Equals(ResponseTruncationMode other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/RunCollectionOrder.cs b/src/Generated/Models/RunCollectionOrder.cs deleted file mode 100644 index d16dcacf3..000000000 --- a/src/Generated/Models/RunCollectionOrder.cs +++ /dev/null @@ -1,40 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - public readonly partial struct RunCollectionOrder : IEquatable - { - private readonly string _value; - private const string AscValue = "asc"; - private const string DescValue = "desc"; - - public RunCollectionOrder(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static bool operator ==(RunCollectionOrder left, RunCollectionOrder right) => left.Equals(right); - - public static bool operator !=(RunCollectionOrder left, RunCollectionOrder right) => !left.Equals(right); - - public static implicit operator RunCollectionOrder(string value) => new RunCollectionOrder(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is RunCollectionOrder other && Equals(other); - - public bool Equals(RunCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/RunCreationOptions.Serialization.cs b/src/Generated/Models/RunCreationOptions.Serialization.cs index e205dd689..533ec3d2a 100644 --- a/src/Generated/Models/RunCreationOptions.Serialization.cs +++ b/src/Generated/Models/RunCreationOptions.Serialization.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Text.Json; using OpenAI; +using OpenAI.Chat; namespace OpenAI.Assistants { @@ -34,80 +35,38 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Stream) && _additionalBinaryDataProperties?.ContainsKey("stream") != true) { - if (Stream != null) - { - writer.WritePropertyName("stream"u8); - writer.WriteBooleanValue(Stream.Value); - } - else - { - writer.WriteNull("stream"u8); - } + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); } if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) - { - writer.WritePropertyName("response_format"u8); - writer.WriteObjectValue(ResponseFormat, options); - } - else - { - writer.WriteNull("responseFormat"u8); - } + writer.WritePropertyName("response_format"u8); + writer.WriteObjectValue(ResponseFormat, options); } if (Optional.IsDefined(ModelOverride) && _additionalBinaryDataProperties?.ContainsKey("model") != true) { - if (ModelOverride != null) - { - writer.WritePropertyName("model"u8); - writer.WriteStringValue(ModelOverride); - } - else - { - writer.WriteNull("model"u8); - } + writer.WritePropertyName("model"u8); + writer.WriteStringValue(ModelOverride); } if (Optional.IsDefined(InstructionsOverride) && _additionalBinaryDataProperties?.ContainsKey("instructions") != true) { - if (InstructionsOverride != null) - { - writer.WritePropertyName("instructions"u8); - writer.WriteStringValue(InstructionsOverride); - } - else - { - writer.WriteNull("instructions"u8); - } + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(InstructionsOverride); } if (Optional.IsDefined(AdditionalInstructions) && _additionalBinaryDataProperties?.ContainsKey("additional_instructions") != true) { - if (AdditionalInstructions != null) - { - writer.WritePropertyName("additional_instructions"u8); - writer.WriteStringValue(AdditionalInstructions); - } - else - { - writer.WriteNull("additionalInstructions"u8); - } + writer.WritePropertyName("additional_instructions"u8); + writer.WriteStringValue(AdditionalInstructions); } if (Optional.IsCollectionDefined(InternalMessages) && _additionalBinaryDataProperties?.ContainsKey("additional_messages") != true) { - if (InternalMessages != null) + writer.WritePropertyName("additional_messages"u8); + writer.WriteStartArray(); + foreach (MessageCreationOptions item in InternalMessages) { - writer.WritePropertyName("additional_messages"u8); - writer.WriteStartArray(); - foreach (MessageCreationOptions item in InternalMessages) - { - writer.WriteObjectValue(item, options); - } - writer.WriteEndArray(); - } - else - { - writer.WriteNull("additionalMessages"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); } if (Optional.IsDefined(AllowParallelToolCalls) && _additionalBinaryDataProperties?.ContainsKey("parallel_tool_calls") != true) { @@ -116,20 +75,13 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsCollectionDefined(ToolsOverride) && _additionalBinaryDataProperties?.ContainsKey("tools") != true) { - if (ToolsOverride != null) + writer.WritePropertyName("tools"u8); + writer.WriteStartArray(); + foreach (ToolDefinition item in ToolsOverride) { - writer.WritePropertyName("tools"u8); - writer.WriteStartArray(); - foreach (ToolDefinition item in ToolsOverride) - { - writer.WriteObjectValue(item, options); - } - writer.WriteEndArray(); - } - else - { - writer.WriteNull("tools"u8); + writer.WriteObjectValue(item, options); } + writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) { @@ -149,77 +101,40 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (Optional.IsDefined(NucleusSamplingFactor) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (NucleusSamplingFactor != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(NucleusSamplingFactor.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(NucleusSamplingFactor.Value); } if (Optional.IsDefined(MaxInputTokenCount) && _additionalBinaryDataProperties?.ContainsKey("max_prompt_tokens") != true) { - if (MaxInputTokenCount != null) - { - writer.WritePropertyName("max_prompt_tokens"u8); - writer.WriteNumberValue(MaxInputTokenCount.Value); - } - else - { - writer.WriteNull("maxPromptTokens"u8); - } + writer.WritePropertyName("max_prompt_tokens"u8); + writer.WriteNumberValue(MaxInputTokenCount.Value); } if (Optional.IsDefined(MaxOutputTokenCount) && _additionalBinaryDataProperties?.ContainsKey("max_completion_tokens") != true) { - if (MaxOutputTokenCount != null) - { - writer.WritePropertyName("max_completion_tokens"u8); - writer.WriteNumberValue(MaxOutputTokenCount.Value); - } - else - { - writer.WriteNull("maxCompletionTokens"u8); - } + writer.WritePropertyName("max_completion_tokens"u8); + writer.WriteNumberValue(MaxOutputTokenCount.Value); } if (Optional.IsDefined(TruncationStrategy) && _additionalBinaryDataProperties?.ContainsKey("truncation_strategy") != true) { - if (TruncationStrategy != null) - { - writer.WritePropertyName("truncation_strategy"u8); - writer.WriteObjectValue(TruncationStrategy, options); - } - else - { - writer.WriteNull("truncationStrategy"u8); - } + writer.WritePropertyName("truncation_strategy"u8); + writer.WriteObjectValue(TruncationStrategy, options); } if (Optional.IsDefined(ToolConstraint) && _additionalBinaryDataProperties?.ContainsKey("tool_choice") != true) { - if (ToolConstraint != null) - { - writer.WritePropertyName("tool_choice"u8); - this.SerializeToolConstraint(writer, options); - } - else - { - writer.WriteNull("toolChoice"u8); - } + writer.WritePropertyName("tool_choice"u8); + SerializeToolConstraint(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (Optional.IsDefined(ReasoningEffortLevel) && _additionalBinaryDataProperties?.ContainsKey("reasoning_effort") != true) + { + writer.WritePropertyName("reasoning_effort"u8); + writer.WriteStringValue(ReasoningEffortLevel.Value.ToString()); + } + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -275,6 +190,7 @@ internal static RunCreationOptions DeserializeRunCreationOptions(JsonElement ele int? maxOutputTokenCount = default; RunTruncationStrategy truncationStrategy = default; ToolConstraint toolConstraint = default; + ChatReasoningEffortLevel? reasoningEffortLevel = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -451,10 +367,17 @@ internal static RunCreationOptions DeserializeRunCreationOptions(JsonElement ele toolConstraint = ToolConstraint.DeserializeToolConstraint(prop.Value, options); continue; } - if (true) + if (prop.NameEquals("reasoning_effort"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + reasoningEffortLevel = null; + continue; + } + reasoningEffortLevel = new ChatReasoningEffortLevel(prop.Value.GetString()); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunCreationOptions( assistantId, @@ -473,6 +396,7 @@ internal static RunCreationOptions DeserializeRunCreationOptions(JsonElement ele maxOutputTokenCount, truncationStrategy, toolConstraint, + reasoningEffortLevel, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunCreationOptions.cs b/src/Generated/Models/RunCreationOptions.cs index a25c920fc..f0c3a2c53 100644 --- a/src/Generated/Models/RunCreationOptions.cs +++ b/src/Generated/Models/RunCreationOptions.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using OpenAI.Chat; namespace OpenAI.Assistants { @@ -11,7 +12,7 @@ public partial class RunCreationOptions { private protected IDictionary _additionalBinaryDataProperties; - internal RunCreationOptions(string assistantId, bool? stream, AssistantResponseFormat responseFormat, string modelOverride, string instructionsOverride, string additionalInstructions, IList internalMessages, bool? allowParallelToolCalls, IList toolsOverride, IDictionary metadata, float? temperature, float? nucleusSamplingFactor, int? maxInputTokenCount, int? maxOutputTokenCount, RunTruncationStrategy truncationStrategy, ToolConstraint toolConstraint, IDictionary additionalBinaryDataProperties) + internal RunCreationOptions(string assistantId, bool? stream, AssistantResponseFormat responseFormat, string modelOverride, string instructionsOverride, string additionalInstructions, IList internalMessages, bool? allowParallelToolCalls, IList toolsOverride, IDictionary metadata, float? temperature, float? nucleusSamplingFactor, int? maxInputTokenCount, int? maxOutputTokenCount, RunTruncationStrategy truncationStrategy, ToolConstraint toolConstraint, ChatReasoningEffortLevel? reasoningEffortLevel, IDictionary additionalBinaryDataProperties) { AssistantId = assistantId; Stream = stream; @@ -29,6 +30,7 @@ internal RunCreationOptions(string assistantId, bool? stream, AssistantResponseF MaxOutputTokenCount = maxOutputTokenCount; TruncationStrategy = truncationStrategy; ToolConstraint = toolConstraint; + ReasoningEffortLevel = reasoningEffortLevel; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/RunError.Serialization.cs b/src/Generated/Models/RunError.Serialization.cs index 2075c5e8d..a6acf9464 100644 --- a/src/Generated/Models/RunError.Serialization.cs +++ b/src/Generated/Models/RunError.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message"u8); writer.WriteStringValue(Message); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static RunError DeserializeRunError(JsonElement element, ModelReaderWri message = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunError(code, message, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunIncompleteDetails.Serialization.cs b/src/Generated/Models/RunIncompleteDetails.Serialization.cs index a051dfbe6..a490872a8 100644 --- a/src/Generated/Models/RunIncompleteDetails.Serialization.cs +++ b/src/Generated/Models/RunIncompleteDetails.Serialization.cs @@ -32,7 +32,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("reason"u8); writer.WriteStringValue(Reason.Value.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -85,10 +85,7 @@ internal static RunIncompleteDetails DeserializeRunIncompleteDetails(JsonElement reason = new RunIncompleteReason(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunIncompleteDetails(reason, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunModificationOptions.Serialization.cs b/src/Generated/Models/RunModificationOptions.Serialization.cs index 4a77d2e2b..7386bfeb6 100644 --- a/src/Generated/Models/RunModificationOptions.Serialization.cs +++ b/src/Generated/Models/RunModificationOptions.Serialization.cs @@ -43,7 +43,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndObject(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -108,10 +108,7 @@ internal static RunModificationOptions DeserializeRunModificationOptions(JsonEle metadata = dictionary; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunModificationOptions(metadata ?? new ChangeTrackingDictionary(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunStep.Serialization.cs b/src/Generated/Models/RunStep.Serialization.cs index f23a7ef63..52163d483 100644 --- a/src/Generated/Models/RunStep.Serialization.cs +++ b/src/Generated/Models/RunStep.Serialization.cs @@ -63,67 +63,67 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("last_error") != true) { - if (LastError != null) + if (Optional.IsDefined(LastError)) { writer.WritePropertyName("last_error"u8); writer.WriteObjectValue(LastError, options); } else { - writer.WriteNull("lastError"u8); + writer.WriteNull("last_error"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("expired_at") != true) { - if (ExpiredAt != null) + if (Optional.IsDefined(ExpiredAt)) { writer.WritePropertyName("expired_at"u8); writer.WriteNumberValue(ExpiredAt.Value, "U"); } else { - writer.WriteNull("expiredAt"u8); + writer.WriteNull("expired_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("cancelled_at") != true) { - if (CancelledAt != null) + if (Optional.IsDefined(CancelledAt)) { writer.WritePropertyName("cancelled_at"u8); writer.WriteNumberValue(CancelledAt.Value, "U"); } else { - writer.WriteNull("cancelledAt"u8); + writer.WriteNull("cancelled_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("failed_at") != true) { - if (FailedAt != null) + if (Optional.IsDefined(FailedAt)) { writer.WritePropertyName("failed_at"u8); writer.WriteNumberValue(FailedAt.Value, "U"); } else { - writer.WriteNull("failedAt"u8); + writer.WriteNull("failed_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("completed_at") != true) { - if (CompletedAt != null) + if (Optional.IsDefined(CompletedAt)) { writer.WritePropertyName("completed_at"u8); writer.WriteNumberValue(CompletedAt.Value, "U"); } else { - writer.WriteNull("completedAt"u8); + writer.WriteNull("completed_at"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (options.Format != "W" && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -146,7 +146,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("usage") != true) { - if (Usage != null) + if (Optional.IsDefined(Usage)) { writer.WritePropertyName("usage"u8); writer.WriteObjectValue(Usage, options); @@ -159,7 +159,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("type") != true) { @@ -169,9 +169,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("step_details") != true) { writer.WritePropertyName("step_details"u8); - writer.WriteObjectValue(Details, options); + writer.WriteObjectValue(Details, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -225,7 +225,7 @@ internal static RunStep DeserializeRunStep(JsonElement element, ModelReaderWrite IReadOnlyDictionary metadata = default; RunStepTokenUsage usage = default; InternalRunStepObjectObject @object = default; - Assistants.RunStepKind kind = default; + RunStepKind kind = default; RunStepDetails details = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -357,10 +357,7 @@ internal static RunStep DeserializeRunStep(JsonElement element, ModelReaderWrite details = RunStepDetails.DeserializeRunStepDetails(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunStep( id, diff --git a/src/Generated/Models/RunStep.cs b/src/Generated/Models/RunStep.cs index 017ba1e29..3f35a02b6 100644 --- a/src/Generated/Models/RunStep.cs +++ b/src/Generated/Models/RunStep.cs @@ -12,7 +12,7 @@ public partial class RunStep { private protected IDictionary _additionalBinaryDataProperties; - internal RunStep(string id, DateTimeOffset createdAt, string assistantId, string threadId, string runId, RunStepStatus status, RunStepError lastError, DateTimeOffset? expiredAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, DateTimeOffset? completedAt, RunStepTokenUsage usage, Assistants.RunStepKind kind, RunStepDetails details) + internal RunStep(string id, DateTimeOffset createdAt, string assistantId, string threadId, string runId, RunStepStatus status, RunStepError lastError, DateTimeOffset? expiredAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, DateTimeOffset? completedAt, RunStepTokenUsage usage, RunStepKind kind, RunStepDetails details) { Id = id; CreatedAt = createdAt; @@ -31,7 +31,7 @@ internal RunStep(string id, DateTimeOffset createdAt, string assistantId, string Details = details; } - internal RunStep(string id, DateTimeOffset createdAt, string assistantId, string threadId, string runId, RunStepStatus status, RunStepError lastError, DateTimeOffset? expiredAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, DateTimeOffset? completedAt, IReadOnlyDictionary metadata, RunStepTokenUsage usage, InternalRunStepObjectObject @object, Assistants.RunStepKind kind, RunStepDetails details, IDictionary additionalBinaryDataProperties) + internal RunStep(string id, DateTimeOffset createdAt, string assistantId, string threadId, string runId, RunStepStatus status, RunStepError lastError, DateTimeOffset? expiredAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, DateTimeOffset? completedAt, IReadOnlyDictionary metadata, RunStepTokenUsage usage, InternalRunStepObjectObject @object, RunStepKind kind, RunStepDetails details, IDictionary additionalBinaryDataProperties) { Id = id; CreatedAt = createdAt; @@ -46,7 +46,7 @@ internal RunStep(string id, DateTimeOffset createdAt, string assistantId, string CompletedAt = completedAt; Metadata = metadata; Usage = usage; - this.Object = @object; + Object = @object; Kind = kind; Details = details; _additionalBinaryDataProperties = additionalBinaryDataProperties; diff --git a/src/Generated/Models/RunStepCodeInterpreterOutput.Serialization.cs b/src/Generated/Models/RunStepCodeInterpreterOutput.Serialization.cs index e6c7642f7..7acd96d87 100644 --- a/src/Generated/Models/RunStepCodeInterpreterOutput.Serialization.cs +++ b/src/Generated/Models/RunStepCodeInterpreterOutput.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/RunStepCollectionOrder.cs b/src/Generated/Models/RunStepCollectionOrder.cs deleted file mode 100644 index ec2f727c4..000000000 --- a/src/Generated/Models/RunStepCollectionOrder.cs +++ /dev/null @@ -1,40 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.Assistants -{ - public readonly partial struct RunStepCollectionOrder : IEquatable - { - private readonly string _value; - private const string AscValue = "asc"; - private const string DescValue = "desc"; - - public RunStepCollectionOrder(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static bool operator ==(RunStepCollectionOrder left, RunStepCollectionOrder right) => left.Equals(right); - - public static bool operator !=(RunStepCollectionOrder left, RunStepCollectionOrder right) => !left.Equals(right); - - public static implicit operator RunStepCollectionOrder(string value) => new RunStepCollectionOrder(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is RunStepCollectionOrder other && Equals(other); - - public bool Equals(RunStepCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/RunStepDetails.Serialization.cs b/src/Generated/Models/RunStepDetails.Serialization.cs index dc51e99f1..4300f8347 100644 --- a/src/Generated/Models/RunStepDetails.Serialization.cs +++ b/src/Generated/Models/RunStepDetails.Serialization.cs @@ -36,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/RunStepError.Serialization.cs b/src/Generated/Models/RunStepError.Serialization.cs index dedc4b148..0502fe07a 100644 --- a/src/Generated/Models/RunStepError.Serialization.cs +++ b/src/Generated/Models/RunStepError.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message"u8); writer.WriteStringValue(Message); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static RunStepError DeserializeRunStepError(JsonElement element, ModelR message = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunStepError(code, message, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunStepFileSearchResult.Serialization.cs b/src/Generated/Models/RunStepFileSearchResult.Serialization.cs index 9d77a2d41..927575474 100644 --- a/src/Generated/Models/RunStepFileSearchResult.Serialization.cs +++ b/src/Generated/Models/RunStepFileSearchResult.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("score"u8); writer.WriteNumberValue(Score); } - if (true && Optional.IsCollectionDefined(Content) && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (Optional.IsCollectionDefined(Content) && _additionalBinaryDataProperties?.ContainsKey("content") != true) { writer.WritePropertyName("content"u8); writer.WriteStartArray(); @@ -56,7 +56,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -132,10 +132,7 @@ internal static RunStepFileSearchResult DeserializeRunStepFileSearchResult(JsonE content = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunStepFileSearchResult(fileId, fileName, score, content ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunStepFileSearchResultContent.Serialization.cs b/src/Generated/Models/RunStepFileSearchResultContent.Serialization.cs index 26de3553b..cd2cc296d 100644 --- a/src/Generated/Models/RunStepFileSearchResultContent.Serialization.cs +++ b/src/Generated/Models/RunStepFileSearchResultContent.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -82,7 +82,7 @@ internal static RunStepFileSearchResultContent DeserializeRunStepFileSearchResul return null; } string text = default; - Assistants.RunStepFileSearchResultContentKind kind = default; + RunStepFileSearchResultContentKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -96,10 +96,7 @@ internal static RunStepFileSearchResultContent DeserializeRunStepFileSearchResul kind = prop.Value.GetString().ToRunStepFileSearchResultContentKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunStepFileSearchResultContent(text, kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunStepFileSearchResultContent.cs b/src/Generated/Models/RunStepFileSearchResultContent.cs index 8324a3dbd..65b5ebb81 100644 --- a/src/Generated/Models/RunStepFileSearchResultContent.cs +++ b/src/Generated/Models/RunStepFileSearchResultContent.cs @@ -16,7 +16,7 @@ internal RunStepFileSearchResultContent(string text) Text = text; } - internal RunStepFileSearchResultContent(string text, Assistants.RunStepFileSearchResultContentKind kind, IDictionary additionalBinaryDataProperties) + internal RunStepFileSearchResultContent(string text, RunStepFileSearchResultContentKind kind, IDictionary additionalBinaryDataProperties) { Text = text; Kind = kind; diff --git a/src/Generated/Models/RunStepFileSearchResultContentKind.Serialization.cs b/src/Generated/Models/RunStepFileSearchResultContentKind.Serialization.cs index b78bfaa22..7e5221579 100644 --- a/src/Generated/Models/RunStepFileSearchResultContentKind.Serialization.cs +++ b/src/Generated/Models/RunStepFileSearchResultContentKind.Serialization.cs @@ -8,17 +8,17 @@ namespace OpenAI.Assistants { internal static partial class RunStepFileSearchResultContentKindExtensions { - public static string ToSerialString(this Assistants.RunStepFileSearchResultContentKind value) => value switch + public static string ToSerialString(this RunStepFileSearchResultContentKind value) => value switch { - Assistants.RunStepFileSearchResultContentKind.Text => "text", + RunStepFileSearchResultContentKind.Text => "text", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown RunStepFileSearchResultContentKind value.") }; - public static Assistants.RunStepFileSearchResultContentKind ToRunStepFileSearchResultContentKind(this string value) + public static RunStepFileSearchResultContentKind ToRunStepFileSearchResultContentKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "text")) { - return Assistants.RunStepFileSearchResultContentKind.Text; + return RunStepFileSearchResultContentKind.Text; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown RunStepFileSearchResultContentKind value."); } diff --git a/src/Generated/Models/RunStepKind.Serialization.cs b/src/Generated/Models/RunStepKind.Serialization.cs index 7372a1f0e..5aebc06a9 100644 --- a/src/Generated/Models/RunStepKind.Serialization.cs +++ b/src/Generated/Models/RunStepKind.Serialization.cs @@ -8,22 +8,22 @@ namespace OpenAI.Assistants { internal static partial class RunStepKindExtensions { - public static string ToSerialString(this Assistants.RunStepKind value) => value switch + public static string ToSerialString(this RunStepKind value) => value switch { - Assistants.RunStepKind.CreatedMessage => "message_creation", - Assistants.RunStepKind.ToolCall => "tool_calls", + RunStepKind.CreatedMessage => "message_creation", + RunStepKind.ToolCall => "tool_calls", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown RunStepKind value.") }; - public static Assistants.RunStepKind ToRunStepKind(this string value) + public static RunStepKind ToRunStepKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "message_creation")) { - return Assistants.RunStepKind.CreatedMessage; + return RunStepKind.CreatedMessage; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "tool_calls")) { - return Assistants.RunStepKind.ToolCall; + return RunStepKind.ToolCall; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown RunStepKind value."); } diff --git a/src/Generated/Models/RunStepTokenUsage.Serialization.cs b/src/Generated/Models/RunStepTokenUsage.Serialization.cs index d6932bd3f..291d1c36d 100644 --- a/src/Generated/Models/RunStepTokenUsage.Serialization.cs +++ b/src/Generated/Models/RunStepTokenUsage.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total_tokens"u8); writer.WriteNumberValue(TotalTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static RunStepTokenUsage DeserializeRunStepTokenUsage(JsonElement eleme totalTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunStepTokenUsage(outputTokenCount, inputTokenCount, totalTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunStepToolCall.Serialization.cs b/src/Generated/Models/RunStepToolCall.Serialization.cs index f41610cd6..3e41dbab9 100644 --- a/src/Generated/Models/RunStepToolCall.Serialization.cs +++ b/src/Generated/Models/RunStepToolCall.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.Assistants { - [PersistableModelProxy(typeof(UnknownRunStepDetailsToolCallsObjectToolCallsObject))] - public abstract partial class RunStepToolCall : IJsonModel + public partial class RunStepToolCall : IJsonModel { void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { @@ -37,7 +36,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Kind.ToSerialString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/RunStepToolCall.cs b/src/Generated/Models/RunStepToolCall.cs index a1ff98139..9b11c28a5 100644 --- a/src/Generated/Models/RunStepToolCall.cs +++ b/src/Generated/Models/RunStepToolCall.cs @@ -7,17 +7,17 @@ namespace OpenAI.Assistants { - public abstract partial class RunStepToolCall + public partial class RunStepToolCall { private protected IDictionary _additionalBinaryDataProperties; - private protected RunStepToolCall(string id, Assistants.RunStepToolCallKind kind) + private protected RunStepToolCall(string id, RunStepToolCallKind kind) { Id = id; Kind = kind; } - internal RunStepToolCall(string id, Assistants.RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties) + internal RunStepToolCall(string id, RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties) { Id = id; Kind = kind; diff --git a/src/Generated/Models/RunStepToolCallKind.Serialization.cs b/src/Generated/Models/RunStepToolCallKind.Serialization.cs index cf4164a28..5341ac2bd 100644 --- a/src/Generated/Models/RunStepToolCallKind.Serialization.cs +++ b/src/Generated/Models/RunStepToolCallKind.Serialization.cs @@ -8,27 +8,27 @@ namespace OpenAI.Assistants { internal static partial class RunStepToolCallKindExtensions { - public static string ToSerialString(this Assistants.RunStepToolCallKind value) => value switch + public static string ToSerialString(this RunStepToolCallKind value) => value switch { - Assistants.RunStepToolCallKind.CodeInterpreter => "code_interpreter", - Assistants.RunStepToolCallKind.FileSearch => "file_search", - Assistants.RunStepToolCallKind.Function => "function", + RunStepToolCallKind.CodeInterpreter => "code_interpreter", + RunStepToolCallKind.FileSearch => "file_search", + RunStepToolCallKind.Function => "function", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown RunStepToolCallKind value.") }; - public static Assistants.RunStepToolCallKind ToRunStepToolCallKind(this string value) + public static RunStepToolCallKind ToRunStepToolCallKind(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "code_interpreter")) { - return Assistants.RunStepToolCallKind.CodeInterpreter; + return RunStepToolCallKind.CodeInterpreter; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "file_search")) { - return Assistants.RunStepToolCallKind.FileSearch; + return RunStepToolCallKind.FileSearch; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "function")) { - return Assistants.RunStepToolCallKind.Function; + return RunStepToolCallKind.Function; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown RunStepToolCallKind value."); } diff --git a/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.Serialization.cs b/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.Serialization.cs index 0e7fec323..09245301a 100644 --- a/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.Serialization.cs +++ b/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.Serialization.cs @@ -10,8 +10,7 @@ namespace OpenAI.Assistants { - [PersistableModelProxy(typeof(UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject))] - public abstract partial class RunStepUpdateCodeInterpreterOutput : IJsonModel + public partial class RunStepUpdateCodeInterpreterOutput : IJsonModel { internal RunStepUpdateCodeInterpreterOutput() { @@ -36,7 +35,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.cs b/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.cs index a70737784..ecd137966 100644 --- a/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.cs +++ b/src/Generated/Models/RunStepUpdateCodeInterpreterOutput.cs @@ -7,7 +7,7 @@ namespace OpenAI.Assistants { - public abstract partial class RunStepUpdateCodeInterpreterOutput + public partial class RunStepUpdateCodeInterpreterOutput { private protected IDictionary _additionalBinaryDataProperties; diff --git a/src/Generated/Models/RunTokenUsage.Serialization.cs b/src/Generated/Models/RunTokenUsage.Serialization.cs index c0d0347cd..d1905041a 100644 --- a/src/Generated/Models/RunTokenUsage.Serialization.cs +++ b/src/Generated/Models/RunTokenUsage.Serialization.cs @@ -46,7 +46,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total_tokens"u8); writer.WriteNumberValue(TotalTokenCount); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static RunTokenUsage DeserializeRunTokenUsage(JsonElement element, Mode totalTokenCount = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunTokenUsage(outputTokenCount, inputTokenCount, totalTokenCount, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/RunTruncationStrategy.Serialization.cs b/src/Generated/Models/RunTruncationStrategy.Serialization.cs index 7a07b063d..c8d705ef5 100644 --- a/src/Generated/Models/RunTruncationStrategy.Serialization.cs +++ b/src/Generated/Models/RunTruncationStrategy.Serialization.cs @@ -33,22 +33,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(LastMessages) && _additionalBinaryDataProperties?.ContainsKey("last_messages") != true) { - if (LastMessages != null) - { - writer.WritePropertyName("last_messages"u8); - writer.WriteNumberValue(LastMessages.Value); - } - else - { - writer.WriteNull("lastMessages"u8); - } + writer.WritePropertyName("last_messages"u8); + writer.WriteNumberValue(LastMessages.Value); } if (_additionalBinaryDataProperties?.ContainsKey("type") != true) { writer.WritePropertyName("type"u8); writer.WriteStringValue(_type.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -108,10 +101,7 @@ internal static RunTruncationStrategy DeserializeRunTruncationStrategy(JsonEleme @type = new InternalTruncationObjectType(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new RunTruncationStrategy(lastMessages, @type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/SpeechGenerationOptions.Serialization.cs b/src/Generated/Models/SpeechGenerationOptions.Serialization.cs index bf52744ba..2b21d9196 100644 --- a/src/Generated/Models/SpeechGenerationOptions.Serialization.cs +++ b/src/Generated/Models/SpeechGenerationOptions.Serialization.cs @@ -52,7 +52,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("speed"u8); writer.WriteNumberValue(SpeedRatio.Value); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -133,10 +133,7 @@ internal static SpeechGenerationOptions DeserializeSpeechGenerationOptions(JsonE speedRatio = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new SpeechGenerationOptions( responseFormat, diff --git a/src/Generated/Models/StaticFileChunkingStrategy.Serialization.cs b/src/Generated/Models/StaticFileChunkingStrategy.Serialization.cs index d480e4317..6535b929c 100644 --- a/src/Generated/Models/StaticFileChunkingStrategy.Serialization.cs +++ b/src/Generated/Models/StaticFileChunkingStrategy.Serialization.cs @@ -35,7 +35,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri if (_additionalBinaryDataProperties?.ContainsKey("static") != true) { writer.WritePropertyName("static"u8); - writer.WriteObjectValue(_internalDetails, options); + writer.WriteObjectValue(_internalDetails, options); } } @@ -73,10 +73,7 @@ internal static StaticFileChunkingStrategy DeserializeStaticFileChunkingStrategy internalDetails = InternalStaticChunkingStrategyDetails.DeserializeInternalStaticChunkingStrategyDetails(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new StaticFileChunkingStrategy(@type, additionalBinaryDataProperties, internalDetails); } diff --git a/src/Generated/Models/StreamingChatCompletionUpdate.Serialization.cs b/src/Generated/Models/StreamingChatCompletionUpdate.Serialization.cs index db571acc7..c3966f662 100644 --- a/src/Generated/Models/StreamingChatCompletionUpdate.Serialization.cs +++ b/src/Generated/Models/StreamingChatCompletionUpdate.Serialization.cs @@ -44,7 +44,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("id") != true) { @@ -53,15 +53,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ServiceTier) && _additionalBinaryDataProperties?.ContainsKey("service_tier") != true) { - if (ServiceTier != null) - { - writer.WritePropertyName("service_tier"u8); - writer.WriteStringValue(ServiceTier.Value.ToString()); - } - else - { - writer.WriteNull("serviceTier"u8); - } + writer.WritePropertyName("service_tier"u8); + writer.WriteStringValue(ServiceTier.Value.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("choices") != true) { @@ -80,17 +73,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Usage) && _additionalBinaryDataProperties?.ContainsKey("usage") != true) { - if (Usage != null) - { - writer.WritePropertyName("usage"u8); - writer.WriteObjectValue(Usage, options); - } - else - { - writer.WriteNull("usage"u8); - } + writer.WritePropertyName("usage"u8); + writer.WriteObjectValue(Usage, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -196,10 +182,7 @@ internal static StreamingChatCompletionUpdate DeserializeStreamingChatCompletion usage = ChatTokenUsage.DeserializeChatTokenUsage(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new StreamingChatCompletionUpdate( model, diff --git a/src/Generated/Models/StreamingChatCompletionUpdate.cs b/src/Generated/Models/StreamingChatCompletionUpdate.cs index 1271eb74d..13a134ed7 100644 --- a/src/Generated/Models/StreamingChatCompletionUpdate.cs +++ b/src/Generated/Models/StreamingChatCompletionUpdate.cs @@ -24,7 +24,7 @@ internal StreamingChatCompletionUpdate(string model, string systemFingerprint, I { Model = model; SystemFingerprint = systemFingerprint; - this.Object = @object; + Object = @object; CompletionId = completionId; ServiceTier = serviceTier; Choices = choices; diff --git a/src/Generated/Models/StreamingChatFunctionCallUpdate.Serialization.cs b/src/Generated/Models/StreamingChatFunctionCallUpdate.Serialization.cs index 465dc3953..e937d4b0f 100644 --- a/src/Generated/Models/StreamingChatFunctionCallUpdate.Serialization.cs +++ b/src/Generated/Models/StreamingChatFunctionCallUpdate.Serialization.cs @@ -35,9 +35,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(FunctionArgumentsUpdate) && _additionalBinaryDataProperties?.ContainsKey("arguments") != true) { writer.WritePropertyName("arguments"u8); - this.SerializeFunctionArgumentsUpdateValue(writer, options); + SerializeFunctionArgumentsUpdateValue(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static StreamingChatFunctionCallUpdate DeserializeStreamingChatFunction DeserializeFunctionArgumentsUpdateValue(prop, ref functionArgumentsUpdate); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new StreamingChatFunctionCallUpdate(functionName, functionArgumentsUpdate, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/StreamingChatOutputAudioUpdate.Serialization.cs b/src/Generated/Models/StreamingChatOutputAudioUpdate.Serialization.cs index 080cfa4c5..6c8fccc46 100644 --- a/src/Generated/Models/StreamingChatOutputAudioUpdate.Serialization.cs +++ b/src/Generated/Models/StreamingChatOutputAudioUpdate.Serialization.cs @@ -47,7 +47,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("data"u8); writer.WriteBase64StringValue(AudioBytesUpdate.ToArray(), "D"); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -122,10 +122,7 @@ internal static StreamingChatOutputAudioUpdate DeserializeStreamingChatOutputAud audioBytesUpdate = BinaryData.FromBytes(prop.Value.GetBytesFromBase64("D")); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new StreamingChatOutputAudioUpdate(id, expiresAt, transcriptUpdate, audioBytesUpdate, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/StreamingChatToolCallUpdate.Serialization.cs b/src/Generated/Models/StreamingChatToolCallUpdate.Serialization.cs index 57c15eb9f..5a33c0019 100644 --- a/src/Generated/Models/StreamingChatToolCallUpdate.Serialization.cs +++ b/src/Generated/Models/StreamingChatToolCallUpdate.Serialization.cs @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(Function) && _additionalBinaryDataProperties?.ContainsKey("function") != true) { writer.WritePropertyName("function"u8); - writer.WriteObjectValue(Function, options); + writer.WriteObjectValue(Function, options); } if (_additionalBinaryDataProperties?.ContainsKey("type") != true) { @@ -51,7 +51,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("id"u8); writer.WriteStringValue(ToolCallId); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -93,7 +93,7 @@ internal static StreamingChatToolCallUpdate DeserializeStreamingChatToolCallUpda } int index = default; InternalChatCompletionMessageToolCallChunkFunction function = default; - Chat.ChatToolCallKind kind = default; + ChatToolCallKind kind = default; string toolCallId = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -126,10 +126,7 @@ internal static StreamingChatToolCallUpdate DeserializeStreamingChatToolCallUpda toolCallId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new StreamingChatToolCallUpdate(index, function, kind, toolCallId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/StreamingChatToolCallUpdate.cs b/src/Generated/Models/StreamingChatToolCallUpdate.cs index 299399632..4aa70619c 100644 --- a/src/Generated/Models/StreamingChatToolCallUpdate.cs +++ b/src/Generated/Models/StreamingChatToolCallUpdate.cs @@ -11,7 +11,7 @@ public partial class StreamingChatToolCallUpdate { private protected IDictionary _additionalBinaryDataProperties; - internal StreamingChatToolCallUpdate(int index, InternalChatCompletionMessageToolCallChunkFunction function, Chat.ChatToolCallKind kind, string toolCallId, IDictionary additionalBinaryDataProperties) + internal StreamingChatToolCallUpdate(int index, InternalChatCompletionMessageToolCallChunkFunction function, ChatToolCallKind kind, string toolCallId, IDictionary additionalBinaryDataProperties) { Index = index; Function = function; diff --git a/src/Generated/Models/StreamingResponseErrorUpdate.Serialization.cs b/src/Generated/Models/StreamingResponseErrorUpdate.Serialization.cs new file mode 100644 index 000000000..5b2f2ddef --- /dev/null +++ b/src/Generated/Models/StreamingResponseErrorUpdate.Serialization.cs @@ -0,0 +1,176 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class StreamingResponseErrorUpdate : IJsonModel + { + internal StreamingResponseErrorUpdate() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseErrorUpdate)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("message") != true) + { + writer.WritePropertyName("message"u8); + writer.WriteStringValue(Message); + } + if (_additionalBinaryDataProperties?.ContainsKey("code") != true) + { + if (Optional.IsDefined(Code)) + { + writer.WritePropertyName("code"u8); + writer.WriteStringValue(Code); + } + else + { + writer.WriteNull("code"u8); + } + } + if (_additionalBinaryDataProperties?.ContainsKey("param") != true) + { + if (Optional.IsDefined(Param)) + { + writer.WritePropertyName("param"u8); + writer.WriteStringValue(Param); + } + else + { + writer.WriteNull("param"u8); + } + } + } + + StreamingResponseErrorUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (StreamingResponseErrorUpdate)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseErrorUpdate)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStreamingResponseErrorUpdate(document.RootElement, options); + } + + internal static StreamingResponseErrorUpdate DeserializeStreamingResponseErrorUpdate(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string message = default; + string code = default; + string @param = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("message"u8)) + { + message = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("code"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + code = null; + continue; + } + code = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("param"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + @param = null; + continue; + } + @param = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new StreamingResponseErrorUpdate(kind, additionalBinaryDataProperties, message, code, @param); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(StreamingResponseErrorUpdate)} does not support writing '{options.Format}' format."); + } + } + + StreamingResponseErrorUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (StreamingResponseErrorUpdate)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeStreamingResponseErrorUpdate(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StreamingResponseErrorUpdate)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(StreamingResponseErrorUpdate streamingResponseErrorUpdate) + { + if (streamingResponseErrorUpdate == null) + { + return null; + } + return BinaryContent.Create(streamingResponseErrorUpdate, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator StreamingResponseErrorUpdate(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeStreamingResponseErrorUpdate(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/StreamingResponseErrorUpdate.cs b/src/Generated/Models/StreamingResponseErrorUpdate.cs new file mode 100644 index 000000000..9e45d2bbe --- /dev/null +++ b/src/Generated/Models/StreamingResponseErrorUpdate.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class StreamingResponseErrorUpdate : StreamingResponseUpdate + { + internal StreamingResponseErrorUpdate(string message, string code, string @param) : base(StreamingResponseUpdateKind.Error) + { + Message = message; + Code = code; + Param = @param; + } + + internal StreamingResponseErrorUpdate(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string message, string code, string @param) : base(kind, additionalBinaryDataProperties) + { + Message = message; + Code = code; + Param = @param; + } + + public string Message { get; } + + public string Code { get; } + + public string Param { get; } + } +} diff --git a/src/Generated/Models/StreamingResponseTextAnnotationUpdate.Serialization.cs b/src/Generated/Models/StreamingResponseTextAnnotationUpdate.Serialization.cs new file mode 100644 index 000000000..d500f0810 --- /dev/null +++ b/src/Generated/Models/StreamingResponseTextAnnotationUpdate.Serialization.cs @@ -0,0 +1,169 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class StreamingResponseTextAnnotationUpdate : IJsonModel + { + internal StreamingResponseTextAnnotationUpdate() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseTextAnnotationUpdate)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("item_id") != true) + { + writer.WritePropertyName("item_id"u8); + writer.WriteStringValue(ItemId); + } + if (_additionalBinaryDataProperties?.ContainsKey("output_index") != true) + { + writer.WritePropertyName("output_index"u8); + writer.WriteNumberValue(OutputIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("content_index") != true) + { + writer.WritePropertyName("content_index"u8); + writer.WriteNumberValue(ContentIndex); + } + if (_additionalBinaryDataProperties?.ContainsKey("annotation") != true) + { + writer.WritePropertyName("annotation"u8); + writer.WriteObjectValue(Annotation, options); + } + } + + StreamingResponseTextAnnotationUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (StreamingResponseTextAnnotationUpdate)JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseTextAnnotationUpdate)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStreamingResponseTextAnnotationUpdate(document.RootElement, options); + } + + internal static StreamingResponseTextAnnotationUpdate DeserializeStreamingResponseTextAnnotationUpdate(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + string itemId = default; + int outputIndex = default; + int contentIndex = default; + ResponseMessageAnnotation annotation = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("item_id"u8)) + { + itemId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("output_index"u8)) + { + outputIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("content_index"u8)) + { + contentIndex = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("annotation"u8)) + { + annotation = ResponseMessageAnnotation.DeserializeResponseMessageAnnotation(prop.Value, options); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new StreamingResponseTextAnnotationUpdate( + kind, + additionalBinaryDataProperties, + itemId, + outputIndex, + contentIndex, + annotation); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(StreamingResponseTextAnnotationUpdate)} does not support writing '{options.Format}' format."); + } + } + + StreamingResponseTextAnnotationUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (StreamingResponseTextAnnotationUpdate)PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeStreamingResponseTextAnnotationUpdate(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StreamingResponseTextAnnotationUpdate)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(StreamingResponseTextAnnotationUpdate streamingResponseTextAnnotationUpdate) + { + if (streamingResponseTextAnnotationUpdate == null) + { + return null; + } + return BinaryContent.Create(streamingResponseTextAnnotationUpdate, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator StreamingResponseTextAnnotationUpdate(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeStreamingResponseTextAnnotationUpdate(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/StreamingResponseTextAnnotationUpdate.cs b/src/Generated/Models/StreamingResponseTextAnnotationUpdate.cs new file mode 100644 index 000000000..29c46dbfe --- /dev/null +++ b/src/Generated/Models/StreamingResponseTextAnnotationUpdate.cs @@ -0,0 +1,36 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class StreamingResponseTextAnnotationUpdate : StreamingResponseUpdate + { + internal StreamingResponseTextAnnotationUpdate(string itemId, int outputIndex, int contentIndex, ResponseMessageAnnotation annotation) : base(StreamingResponseUpdateKind.ResponseOutputTextAnnotationAdded) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Annotation = annotation; + } + + internal StreamingResponseTextAnnotationUpdate(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties, string itemId, int outputIndex, int contentIndex, ResponseMessageAnnotation annotation) : base(kind, additionalBinaryDataProperties) + { + ItemId = itemId; + OutputIndex = outputIndex; + ContentIndex = contentIndex; + Annotation = annotation; + } + + public string ItemId { get; } + + public int OutputIndex { get; } + + public int ContentIndex { get; } + + public ResponseMessageAnnotation Annotation { get; } + } +} diff --git a/src/Generated/Models/StreamingResponseUpdate.Serialization.cs b/src/Generated/Models/StreamingResponseUpdate.Serialization.cs new file mode 100644 index 000000000..765e6f3b3 --- /dev/null +++ b/src/Generated/Models/StreamingResponseUpdate.Serialization.cs @@ -0,0 +1,182 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class StreamingResponseUpdate : IJsonModel + { + internal StreamingResponseUpdate() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Kind.ToString()); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + StreamingResponseUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStreamingResponseUpdate(document.RootElement, options); + } + + internal static StreamingResponseUpdate DeserializeStreamingResponseUpdate(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "error": + return StreamingResponseErrorUpdate.DeserializeStreamingResponseErrorUpdate(element, options); + case "response.completed": + return InternalResponsesResponseStreamEventResponseCompleted.DeserializeInternalResponsesResponseStreamEventResponseCompleted(element, options); + case "response.content_part.added": + return InternalResponsesResponseStreamEventResponseContentPartAdded.DeserializeInternalResponsesResponseStreamEventResponseContentPartAdded(element, options); + case "response.content_part.done": + return InternalResponsesResponseStreamEventResponseContentPartDone.DeserializeInternalResponsesResponseStreamEventResponseContentPartDone(element, options); + case "response.created": + return InternalResponsesResponseStreamEventResponseCreated.DeserializeInternalResponsesResponseStreamEventResponseCreated(element, options); + case "response.failed": + return InternalResponsesResponseStreamEventResponseFailed.DeserializeInternalResponsesResponseStreamEventResponseFailed(element, options); + case "response.file_search_call.completed": + return InternalResponsesResponseStreamEventResponseFileSearchCallCompleted.DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallCompleted(element, options); + case "response.file_search_call.in.progress": + return InternalResponsesResponseStreamEventResponseFileSearchCallInProgress.DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallInProgress(element, options); + case "response.file_search_call.searching": + return InternalResponsesResponseStreamEventResponseFileSearchCallSearching.DeserializeInternalResponsesResponseStreamEventResponseFileSearchCallSearching(element, options); + case "response.function_call_arguments.delta": + return InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta.DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDelta(element, options); + case "response.function_call_arguments.done": + return InternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone.DeserializeInternalResponsesResponseStreamEventResponseFunctionCallArgumentsDone(element, options); + case "response.incomplete": + return InternalResponsesResponseStreamEventResponseIncomplete.DeserializeInternalResponsesResponseStreamEventResponseIncomplete(element, options); + case "response.in_progress": + return InternalResponsesResponseStreamEventResponseInProgress.DeserializeInternalResponsesResponseStreamEventResponseInProgress(element, options); + case "response.output_item.added": + return InternalResponsesResponseStreamEventResponseOutputItemAdded.DeserializeInternalResponsesResponseStreamEventResponseOutputItemAdded(element, options); + case "response.output_item.done": + return InternalResponsesResponseStreamEventResponseOutputItemDone.DeserializeInternalResponsesResponseStreamEventResponseOutputItemDone(element, options); + case "response.output_text.annotation.added": + return StreamingResponseTextAnnotationUpdate.DeserializeStreamingResponseTextAnnotationUpdate(element, options); + case "response.output_text.delta": + return InternalResponsesResponseStreamEventResponseOutputTextDelta.DeserializeInternalResponsesResponseStreamEventResponseOutputTextDelta(element, options); + case "response.output_text.done": + return InternalResponsesResponseStreamEventResponseOutputTextDone.DeserializeInternalResponsesResponseStreamEventResponseOutputTextDone(element, options); + case "response.refusal.delta": + return InternalResponsesResponseStreamEventResponseRefusalDelta.DeserializeInternalResponsesResponseStreamEventResponseRefusalDelta(element, options); + case "response.refusal.done": + return InternalResponsesResponseStreamEventResponseRefusalDone.DeserializeInternalResponsesResponseStreamEventResponseRefusalDone(element, options); + case "response.web_search_call.completed": + return InternalResponsesResponseStreamEventResponseWebSearchCallCompleted.DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallCompleted(element, options); + case "response.web_search_call.in_progress": + return InternalResponsesResponseStreamEventResponseWebSearchCallInProgress.DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallInProgress(element, options); + case "response.web_search_call.searching": + return InternalResponsesResponseStreamEventResponseWebSearchCallSearching.DeserializeInternalResponsesResponseStreamEventResponseWebSearchCallSearching(element, options); + } + } + return UnknownResponsesResponseStreamEvent.DeserializeUnknownResponsesResponseStreamEvent(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support writing '{options.Format}' format."); + } + } + + StreamingResponseUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeStreamingResponseUpdate(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(StreamingResponseUpdate streamingResponseUpdate) + { + if (streamingResponseUpdate == null) + { + return null; + } + return BinaryContent.Create(streamingResponseUpdate, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator StreamingResponseUpdate(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeStreamingResponseUpdate(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/StreamingResponseUpdate.cs b/src/Generated/Models/StreamingResponseUpdate.cs new file mode 100644 index 000000000..b5c21bd07 --- /dev/null +++ b/src/Generated/Models/StreamingResponseUpdate.cs @@ -0,0 +1,31 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class StreamingResponseUpdate + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected StreamingResponseUpdate(StreamingResponseUpdateKind kind) + { + Kind = kind; + } + + internal StreamingResponseUpdate(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties) + { + Kind = kind; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/StreamingResponseUpdateKind.cs b/src/Generated/Models/StreamingResponseUpdateKind.cs new file mode 100644 index 000000000..fbed5f21e --- /dev/null +++ b/src/Generated/Models/StreamingResponseUpdateKind.cs @@ -0,0 +1,107 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct StreamingResponseUpdateKind : IEquatable + { + private readonly string _value; + private const string ErrorValue = "error"; + private const string ResponseCompletedValue = "response.completed"; + private const string ResponseContentPartAddedValue = "response.content_part.added"; + private const string ResponseContentPartDoneValue = "response.content_part.done"; + private const string ResponseCreatedValue = "response.created"; + private const string ResponseFailedValue = "response.failed"; + private const string ResponseFileSearchCallCompletedValue = "response.file_search_call.completed"; + private const string ResponseFileSearchCallInProgressValue = "response.file_search_call.in.progress"; + private const string ResponseFileSearchCallSearchingValue = "response.file_search_call.searching"; + private const string ResponseFunctionCallArgumentsDeltaValue = "response.function_call_arguments.delta"; + private const string ResponseFunctionCallArgumentsDoneValue = "response.function_call_arguments.done"; + private const string ResponseInProgressValue = "response.in_progress"; + private const string ResponseIncompleteValue = "response.incomplete"; + private const string ResponseOutputItemAddedValue = "response.output_item.added"; + private const string ResponseOutputItemDoneValue = "response.output_item.done"; + private const string ResponseOutputTextAnnotationAddedValue = "response.output_text.annotation.added"; + private const string ResponseOutputTextDeltaValue = "response.output_text.delta"; + private const string ResponseOutputTextDoneValue = "response.output_text.done"; + private const string ResponseRefusalDeltaValue = "response.refusal.delta"; + private const string ResponseRefusalDoneValue = "response.refusal.done"; + private const string ResponseWebSearchCallCompletedValue = "response.web_search_call.completed"; + private const string ResponseWebSearchCallInProgressValue = "response.web_search_call.in_progress"; + private const string ResponseWebSearchCallSearchingValue = "response.web_search_call.searching"; + + public StreamingResponseUpdateKind(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static StreamingResponseUpdateKind Error { get; } = new StreamingResponseUpdateKind(ErrorValue); + + public static StreamingResponseUpdateKind ResponseCompleted { get; } = new StreamingResponseUpdateKind(ResponseCompletedValue); + + public static StreamingResponseUpdateKind ResponseContentPartAdded { get; } = new StreamingResponseUpdateKind(ResponseContentPartAddedValue); + + public static StreamingResponseUpdateKind ResponseContentPartDone { get; } = new StreamingResponseUpdateKind(ResponseContentPartDoneValue); + + public static StreamingResponseUpdateKind ResponseCreated { get; } = new StreamingResponseUpdateKind(ResponseCreatedValue); + + public static StreamingResponseUpdateKind ResponseFailed { get; } = new StreamingResponseUpdateKind(ResponseFailedValue); + + public static StreamingResponseUpdateKind ResponseFileSearchCallCompleted { get; } = new StreamingResponseUpdateKind(ResponseFileSearchCallCompletedValue); + + public static StreamingResponseUpdateKind ResponseFileSearchCallInProgress { get; } = new StreamingResponseUpdateKind(ResponseFileSearchCallInProgressValue); + + public static StreamingResponseUpdateKind ResponseFileSearchCallSearching { get; } = new StreamingResponseUpdateKind(ResponseFileSearchCallSearchingValue); + + public static StreamingResponseUpdateKind ResponseFunctionCallArgumentsDelta { get; } = new StreamingResponseUpdateKind(ResponseFunctionCallArgumentsDeltaValue); + + public static StreamingResponseUpdateKind ResponseFunctionCallArgumentsDone { get; } = new StreamingResponseUpdateKind(ResponseFunctionCallArgumentsDoneValue); + + public static StreamingResponseUpdateKind ResponseInProgress { get; } = new StreamingResponseUpdateKind(ResponseInProgressValue); + + public static StreamingResponseUpdateKind ResponseIncomplete { get; } = new StreamingResponseUpdateKind(ResponseIncompleteValue); + + public static StreamingResponseUpdateKind ResponseOutputItemAdded { get; } = new StreamingResponseUpdateKind(ResponseOutputItemAddedValue); + + public static StreamingResponseUpdateKind ResponseOutputItemDone { get; } = new StreamingResponseUpdateKind(ResponseOutputItemDoneValue); + + public static StreamingResponseUpdateKind ResponseOutputTextAnnotationAdded { get; } = new StreamingResponseUpdateKind(ResponseOutputTextAnnotationAddedValue); + + public static StreamingResponseUpdateKind ResponseOutputTextDelta { get; } = new StreamingResponseUpdateKind(ResponseOutputTextDeltaValue); + + public static StreamingResponseUpdateKind ResponseOutputTextDone { get; } = new StreamingResponseUpdateKind(ResponseOutputTextDoneValue); + + public static StreamingResponseUpdateKind ResponseRefusalDelta { get; } = new StreamingResponseUpdateKind(ResponseRefusalDeltaValue); + + public static StreamingResponseUpdateKind ResponseRefusalDone { get; } = new StreamingResponseUpdateKind(ResponseRefusalDoneValue); + + public static StreamingResponseUpdateKind ResponseWebSearchCallCompleted { get; } = new StreamingResponseUpdateKind(ResponseWebSearchCallCompletedValue); + + public static StreamingResponseUpdateKind ResponseWebSearchCallInProgress { get; } = new StreamingResponseUpdateKind(ResponseWebSearchCallInProgressValue); + + public static StreamingResponseUpdateKind ResponseWebSearchCallSearching { get; } = new StreamingResponseUpdateKind(ResponseWebSearchCallSearchingValue); + + public static bool operator ==(StreamingResponseUpdateKind left, StreamingResponseUpdateKind right) => left.Equals(right); + + public static bool operator !=(StreamingResponseUpdateKind left, StreamingResponseUpdateKind right) => !left.Equals(right); + + public static implicit operator StreamingResponseUpdateKind(string value) => new StreamingResponseUpdateKind(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is StreamingResponseUpdateKind other && Equals(other); + + public bool Equals(StreamingResponseUpdateKind other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/SystemChatMessage.Serialization.cs b/src/Generated/Models/SystemChatMessage.Serialization.cs index 9f11bed16..28b285fce 100644 --- a/src/Generated/Models/SystemChatMessage.Serialization.cs +++ b/src/Generated/Models/SystemChatMessage.Serialization.cs @@ -48,7 +48,7 @@ internal static SystemChatMessage DeserializeSystemChatMessage(JsonElement eleme return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string participantName = default; foreach (var prop in element.EnumerateObject()) @@ -68,13 +68,9 @@ internal static SystemChatMessage DeserializeSystemChatMessage(JsonElement eleme participantName = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. - return new SystemChatMessage(content ?? new ChatMessageContent(), role, additionalBinaryDataProperties, participantName); + return new SystemChatMessage(content, role, additionalBinaryDataProperties, participantName); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/SystemChatMessage.cs b/src/Generated/Models/SystemChatMessage.cs index 0f8453e0e..e4aabc90d 100644 --- a/src/Generated/Models/SystemChatMessage.cs +++ b/src/Generated/Models/SystemChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { public partial class SystemChatMessage : ChatMessage { - internal SystemChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string participantName) : base(content, role, additionalBinaryDataProperties) + internal SystemChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties, string participantName) : base(content, role, additionalBinaryDataProperties) { ParticipantName = participantName; } diff --git a/src/Generated/Models/ThreadCreationOptions.Serialization.cs b/src/Generated/Models/ThreadCreationOptions.Serialization.cs index ebe9da764..042dc5857 100644 --- a/src/Generated/Models/ThreadCreationOptions.Serialization.cs +++ b/src/Generated/Models/ThreadCreationOptions.Serialization.cs @@ -45,15 +45,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) - { - writer.WritePropertyName("tool_resources"u8); - writer.WriteObjectValue(ToolResources, options); - } - else - { - writer.WriteNull("toolResources"u8); - } + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); } if (Optional.IsCollectionDefined(InternalMessages) && _additionalBinaryDataProperties?.ContainsKey("messages") != true) { @@ -65,7 +58,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -156,10 +149,7 @@ internal static ThreadCreationOptions DeserializeThreadCreationOptions(JsonEleme internalMessages = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ThreadCreationOptions(metadata ?? new ChangeTrackingDictionary(), toolResources, internalMessages ?? new ChangeTrackingList(), additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ThreadDeletionResult.Serialization.cs b/src/Generated/Models/ThreadDeletionResult.Serialization.cs index 273d1f6e6..df4529f20 100644 --- a/src/Generated/Models/ThreadDeletionResult.Serialization.cs +++ b/src/Generated/Models/ThreadDeletionResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static ThreadDeletionResult DeserializeThreadDeletionResult(JsonElement @object = new InternalDeleteThreadResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ThreadDeletionResult(deleted, threadId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ThreadDeletionResult.cs b/src/Generated/Models/ThreadDeletionResult.cs index 209c7f80a..afaa8fb1b 100644 --- a/src/Generated/Models/ThreadDeletionResult.cs +++ b/src/Generated/Models/ThreadDeletionResult.cs @@ -21,7 +21,7 @@ internal ThreadDeletionResult(bool deleted, string threadId, InternalDeleteThrea { Deleted = deleted; ThreadId = threadId; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/ThreadMessage.Serialization.cs b/src/Generated/Models/ThreadMessage.Serialization.cs index 6e31ee878..72b7ff3ad 100644 --- a/src/Generated/Models/ThreadMessage.Serialization.cs +++ b/src/Generated/Models/ThreadMessage.Serialization.cs @@ -53,41 +53,41 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("incomplete_details") != true) { - if (IncompleteDetails != null) + if (Optional.IsDefined(IncompleteDetails)) { writer.WritePropertyName("incomplete_details"u8); writer.WriteObjectValue(IncompleteDetails, options); } else { - writer.WriteNull("incompleteDetails"u8); + writer.WriteNull("incomplete_details"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("completed_at") != true) { - if (CompletedAt != null) + if (Optional.IsDefined(CompletedAt)) { writer.WritePropertyName("completed_at"u8); writer.WriteNumberValue(CompletedAt.Value, "U"); } else { - writer.WriteNull("completedAt"u8); + writer.WriteNull("completed_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("incomplete_at") != true) { - if (IncompleteAt != null) + if (Optional.IsDefined(IncompleteAt)) { writer.WritePropertyName("incomplete_at"u8); writer.WriteNumberValue(IncompleteAt.Value, "U"); } else { - writer.WriteNull("incompleteAt"u8); + writer.WriteNull("incomplete_at"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("content") != true) + if (_additionalBinaryDataProperties?.ContainsKey("content") != true) { writer.WritePropertyName("content"u8); writer.WriteStartArray(); @@ -99,31 +99,31 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("assistant_id") != true) { - if (AssistantId != null) + if (Optional.IsDefined(AssistantId)) { writer.WritePropertyName("assistant_id"u8); writer.WriteStringValue(AssistantId); } else { - writer.WriteNull("assistantId"u8); + writer.WriteNull("assistant_id"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("run_id") != true) { - if (RunId != null) + if (Optional.IsDefined(RunId)) { writer.WritePropertyName("run_id"u8); writer.WriteStringValue(RunId); } else { - writer.WriteNull("runId"u8); + writer.WriteNull("run_id"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (options.Format != "W" && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -147,7 +147,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("role") != true) { @@ -156,7 +156,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("attachments") != true) { - if (Attachments != null && Optional.IsCollectionDefined(Attachments)) + if (Optional.IsCollectionDefined(Attachments)) { writer.WritePropertyName("attachments"u8); writer.WriteStartArray(); @@ -171,7 +171,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("attachments"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -223,7 +223,7 @@ internal static ThreadMessage DeserializeThreadMessage(JsonElement element, Mode string runId = default; IReadOnlyDictionary metadata = default; InternalMessageObjectObject @object = default; - Assistants.MessageRole role = default; + MessageRole role = default; IReadOnlyList attachments = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -355,10 +355,7 @@ internal static ThreadMessage DeserializeThreadMessage(JsonElement element, Mode attachments = array; continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ThreadMessage( id, diff --git a/src/Generated/Models/ThreadMessage.cs b/src/Generated/Models/ThreadMessage.cs index b18cc0085..95ceaf0d5 100644 --- a/src/Generated/Models/ThreadMessage.cs +++ b/src/Generated/Models/ThreadMessage.cs @@ -13,7 +13,7 @@ public partial class ThreadMessage { private protected IDictionary _additionalBinaryDataProperties; - internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, MessageStatus status, MessageFailureDetails incompleteDetails, DateTimeOffset? completedAt, DateTimeOffset? incompleteAt, string assistantId, string runId, Assistants.MessageRole role, IEnumerable attachments) + internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, MessageStatus status, MessageFailureDetails incompleteDetails, DateTimeOffset? completedAt, DateTimeOffset? incompleteAt, string assistantId, string runId, MessageRole role, IEnumerable attachments) { Id = id; CreatedAt = createdAt; @@ -30,7 +30,7 @@ internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, Mes Attachments = attachments.ToList(); } - internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, MessageStatus status, MessageFailureDetails incompleteDetails, DateTimeOffset? completedAt, DateTimeOffset? incompleteAt, IReadOnlyList content, string assistantId, string runId, IReadOnlyDictionary metadata, InternalMessageObjectObject @object, Assistants.MessageRole role, IReadOnlyList attachments, IDictionary additionalBinaryDataProperties) + internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, MessageStatus status, MessageFailureDetails incompleteDetails, DateTimeOffset? completedAt, DateTimeOffset? incompleteAt, IReadOnlyList content, string assistantId, string runId, IReadOnlyDictionary metadata, InternalMessageObjectObject @object, MessageRole role, IReadOnlyList attachments, IDictionary additionalBinaryDataProperties) { Id = id; CreatedAt = createdAt; @@ -43,7 +43,7 @@ internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, Mes AssistantId = assistantId; RunId = runId; Metadata = metadata; - this.Object = @object; + Object = @object; Role = role; Attachments = attachments; _additionalBinaryDataProperties = additionalBinaryDataProperties; diff --git a/src/Generated/Models/ThreadModificationOptions.Serialization.cs b/src/Generated/Models/ThreadModificationOptions.Serialization.cs index 93c91dc45..a5658f709 100644 --- a/src/Generated/Models/ThreadModificationOptions.Serialization.cs +++ b/src/Generated/Models/ThreadModificationOptions.Serialization.cs @@ -45,17 +45,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true) { - if (ToolResources != null) - { - writer.WritePropertyName("tool_resources"u8); - writer.WriteObjectValue(ToolResources, options); - } - else - { - writer.WriteNull("toolResources"u8); - } + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -131,10 +124,7 @@ internal static ThreadModificationOptions DeserializeThreadModificationOptions(J toolResources = ToolResources.DeserializeToolResources(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ThreadModificationOptions(metadata ?? new ChangeTrackingDictionary(), toolResources, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ThreadRun.Serialization.cs b/src/Generated/Models/ThreadRun.Serialization.cs index cce0cb264..2b320a41c 100644 --- a/src/Generated/Models/ThreadRun.Serialization.cs +++ b/src/Generated/Models/ThreadRun.Serialization.cs @@ -58,86 +58,86 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("last_error") != true) { - if (LastError != null) + if (Optional.IsDefined(LastError)) { writer.WritePropertyName("last_error"u8); writer.WriteObjectValue(LastError, options); } else { - writer.WriteNull("lastError"u8); + writer.WriteNull("last_error"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("expires_at") != true) { - if (ExpiresAt != null) + if (Optional.IsDefined(ExpiresAt)) { writer.WritePropertyName("expires_at"u8); writer.WriteNumberValue(ExpiresAt.Value, "U"); } else { - writer.WriteNull("expiresAt"u8); + writer.WriteNull("expires_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("started_at") != true) { - if (StartedAt != null) + if (Optional.IsDefined(StartedAt)) { writer.WritePropertyName("started_at"u8); writer.WriteNumberValue(StartedAt.Value, "U"); } else { - writer.WriteNull("startedAt"u8); + writer.WriteNull("started_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("cancelled_at") != true) { - if (CancelledAt != null) + if (Optional.IsDefined(CancelledAt)) { writer.WritePropertyName("cancelled_at"u8); writer.WriteNumberValue(CancelledAt.Value, "U"); } else { - writer.WriteNull("cancelledAt"u8); + writer.WriteNull("cancelled_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("failed_at") != true) { - if (FailedAt != null) + if (Optional.IsDefined(FailedAt)) { writer.WritePropertyName("failed_at"u8); writer.WriteNumberValue(FailedAt.Value, "U"); } else { - writer.WriteNull("failedAt"u8); + writer.WriteNull("failed_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("completed_at") != true) { - if (CompletedAt != null) + if (Optional.IsDefined(CompletedAt)) { writer.WritePropertyName("completed_at"u8); writer.WriteNumberValue(CompletedAt.Value, "U"); } else { - writer.WriteNull("completedAt"u8); + writer.WriteNull("completed_at"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("incomplete_details") != true) { - if (IncompleteDetails != null) + if (Optional.IsDefined(IncompleteDetails)) { writer.WritePropertyName("incomplete_details"u8); writer.WriteObjectValue(IncompleteDetails, options); } else { - writer.WriteNull("incompleteDetails"u8); + writer.WriteNull("incomplete_details"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("model") != true) @@ -150,7 +150,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("instructions"u8); writer.WriteStringValue(Instructions); } - if (true && _additionalBinaryDataProperties?.ContainsKey("tools") != true) + if (_additionalBinaryDataProperties?.ContainsKey("tools") != true) { writer.WritePropertyName("tools"u8); writer.WriteStartArray(); @@ -160,9 +160,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (true && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (options.Format != "W" && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -185,7 +185,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("usage") != true) { - if (Usage != null) + if (Optional.IsDefined(Usage)) { writer.WritePropertyName("usage"u8); writer.WriteObjectValue(Usage, options); @@ -197,68 +197,54 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true) { - if (Temperature != null) - { - writer.WritePropertyName("temperature"u8); - writer.WriteNumberValue(Temperature.Value); - } - else - { - writer.WriteNull("temperature"u8); - } + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); } if (_additionalBinaryDataProperties?.ContainsKey("truncation_strategy") != true) { - if (TruncationStrategy != null) + if (Optional.IsDefined(TruncationStrategy)) { writer.WritePropertyName("truncation_strategy"u8); writer.WriteObjectValue(TruncationStrategy, options); } else { - writer.WriteNull("truncationStrategy"u8); + writer.WriteNull("truncation_strategy"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("response_format") != true) { - if (ResponseFormat != null) + if (Optional.IsDefined(ResponseFormat)) { writer.WritePropertyName("response_format"u8); - writer.WriteObjectValue(ResponseFormat, options); + writer.WriteObjectValue(ResponseFormat, options); } else { - writer.WriteNull("responseFormat"u8); + writer.WriteNull("response_format"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("tool_choice") != true) { - if (ToolConstraint != null) + if (Optional.IsDefined(ToolConstraint)) { writer.WritePropertyName("tool_choice"u8); writer.WriteObjectValue(ToolConstraint, options); } else { - writer.WriteNull("toolChoice"u8); + writer.WriteNull("tool_choice"u8); } } if (Optional.IsDefined(NucleusSamplingFactor) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true) { - if (NucleusSamplingFactor != null) - { - writer.WritePropertyName("top_p"u8); - writer.WriteNumberValue(NucleusSamplingFactor.Value); - } - else - { - writer.WriteNull("topP"u8); - } + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(NucleusSamplingFactor.Value); } if (_additionalBinaryDataProperties?.ContainsKey("parallel_tool_calls") != true) { @@ -267,41 +253,41 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("max_prompt_tokens") != true) { - if (MaxInputTokenCount != null) + if (Optional.IsDefined(MaxInputTokenCount)) { writer.WritePropertyName("max_prompt_tokens"u8); writer.WriteNumberValue(MaxInputTokenCount.Value); } else { - writer.WriteNull("maxPromptTokens"u8); + writer.WriteNull("max_prompt_tokens"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("max_completion_tokens") != true) { - if (MaxOutputTokenCount != null) + if (Optional.IsDefined(MaxOutputTokenCount)) { writer.WritePropertyName("max_completion_tokens"u8); writer.WriteNumberValue(MaxOutputTokenCount.Value); } else { - writer.WriteNull("maxCompletionTokens"u8); + writer.WriteNull("max_completion_tokens"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("required_action") != true) { - if (_internalRequiredAction != null) + if (Optional.IsDefined(_internalRequiredAction)) { writer.WritePropertyName("required_action"u8); - writer.WriteObjectValue(_internalRequiredAction, options); + writer.WriteObjectValue(_internalRequiredAction, options); } else { - writer.WriteNull("requiredAction"u8); + writer.WriteNull("required_action"u8); } } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -608,10 +594,7 @@ internal static ThreadRun DeserializeThreadRun(JsonElement element, ModelReaderW internalRequiredAction = InternalRunRequiredAction.DeserializeInternalRunRequiredAction(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ThreadRun( id, diff --git a/src/Generated/Models/ThreadRun.cs b/src/Generated/Models/ThreadRun.cs index 46d28f1e9..c59cd845a 100644 --- a/src/Generated/Models/ThreadRun.cs +++ b/src/Generated/Models/ThreadRun.cs @@ -61,7 +61,7 @@ internal ThreadRun(string id, DateTimeOffset createdAt, string threadId, string Usage = usage; Temperature = temperature; TruncationStrategy = truncationStrategy; - this.Object = @object; + Object = @object; ResponseFormat = responseFormat; ToolConstraint = toolConstraint; NucleusSamplingFactor = nucleusSamplingFactor; diff --git a/src/Generated/Models/ToolChatMessage.Serialization.cs b/src/Generated/Models/ToolChatMessage.Serialization.cs index 6762d530b..b1fad4081 100644 --- a/src/Generated/Models/ToolChatMessage.Serialization.cs +++ b/src/Generated/Models/ToolChatMessage.Serialization.cs @@ -52,7 +52,7 @@ internal static ToolChatMessage DeserializeToolChatMessage(JsonElement element, return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string toolCallId = default; foreach (var prop in element.EnumerateObject()) @@ -72,13 +72,9 @@ internal static ToolChatMessage DeserializeToolChatMessage(JsonElement element, toolCallId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. - return new ToolChatMessage(content ?? new ChatMessageContent(), role, additionalBinaryDataProperties, toolCallId); + return new ToolChatMessage(content, role, additionalBinaryDataProperties, toolCallId); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/ToolChatMessage.cs b/src/Generated/Models/ToolChatMessage.cs index c0c786560..fe45badb4 100644 --- a/src/Generated/Models/ToolChatMessage.cs +++ b/src/Generated/Models/ToolChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { public partial class ToolChatMessage : ChatMessage { - internal ToolChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string toolCallId) : base(content, role, additionalBinaryDataProperties) + internal ToolChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties, string toolCallId) : base(content, role, additionalBinaryDataProperties) { ToolCallId = toolCallId; } diff --git a/src/Generated/Models/ToolConstraint.Serialization.cs b/src/Generated/Models/ToolConstraint.Serialization.cs index c816ad7cc..cf3897d34 100644 --- a/src/Generated/Models/ToolConstraint.Serialization.cs +++ b/src/Generated/Models/ToolConstraint.Serialization.cs @@ -26,14 +26,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(Function) && _additionalBinaryDataProperties?.ContainsKey("function") != true) { writer.WritePropertyName("function"u8); - writer.WriteObjectValue(Function, options); + writer.WriteObjectValue(Function, options); } if (_additionalBinaryDataProperties?.ContainsKey("type") != true) { writer.WritePropertyName("type"u8); writer.WriteStringValue(_objectType); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -62,7 +62,7 @@ protected virtual ToolConstraint JsonModelCreateCore(ref Utf8JsonReader reader, throw new FormatException($"The model {nameof(ToolConstraint)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ToolConstraint.DeserializeToolConstraint(document.RootElement, options); + return DeserializeToolConstraint(document.RootElement, options); } protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) @@ -85,7 +85,7 @@ protected virtual ToolConstraint PersistableModelCreateCore(BinaryData data, Mod case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ToolConstraint.DeserializeToolConstraint(document.RootElement, options); + return DeserializeToolConstraint(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ToolConstraint)} does not support reading '{options.Format}' format."); @@ -107,7 +107,7 @@ public static explicit operator ToolConstraint(ClientResult result) { using PipelineResponse response = result.GetRawResponse(); using JsonDocument document = JsonDocument.Parse(response.Content); - return ToolConstraint.DeserializeToolConstraint(document.RootElement, ModelSerializationExtensions.WireOptions); + return DeserializeToolConstraint(document.RootElement, ModelSerializationExtensions.WireOptions); } } } diff --git a/src/Generated/Models/ToolDefinition.Serialization.cs b/src/Generated/Models/ToolDefinition.Serialization.cs index 123272c7e..378bb50cb 100644 --- a/src/Generated/Models/ToolDefinition.Serialization.cs +++ b/src/Generated/Models/ToolDefinition.Serialization.cs @@ -25,7 +25,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { diff --git a/src/Generated/Models/ToolOutput.Serialization.cs b/src/Generated/Models/ToolOutput.Serialization.cs index 552ade35f..b20587b46 100644 --- a/src/Generated/Models/ToolOutput.Serialization.cs +++ b/src/Generated/Models/ToolOutput.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("output"u8); writer.WriteStringValue(Output); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -92,10 +92,7 @@ internal static ToolOutput DeserializeToolOutput(JsonElement element, ModelReade output = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ToolOutput(toolCallId, output, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/ToolResources.Serialization.cs b/src/Generated/Models/ToolResources.Serialization.cs index 1bf9b3d4e..ff33e5a6c 100644 --- a/src/Generated/Models/ToolResources.Serialization.cs +++ b/src/Generated/Models/ToolResources.Serialization.cs @@ -30,14 +30,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(CodeInterpreter) && _additionalBinaryDataProperties?.ContainsKey("code_interpreter") != true) { writer.WritePropertyName("code_interpreter"u8); - writer.WriteObjectValue(CodeInterpreter, options); + writer.WriteObjectValue(CodeInterpreter, options); } if (Optional.IsDefined(FileSearch) && _additionalBinaryDataProperties?.ContainsKey("file_search") != true) { writer.WritePropertyName("file_search"u8); - this.SerializeFileSearch(writer, options); + SerializeFileSearch(writer, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -100,10 +100,7 @@ internal static ToolResources DeserializeToolResources(JsonElement element, Mode fileSearch = FileSearchToolResources.DeserializeFileSearchToolResources(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new ToolResources(codeInterpreter, fileSearch, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/TranscribedSegment.Serialization.cs b/src/Generated/Models/TranscribedSegment.Serialization.cs index 383ba7fd9..c443b1f14 100644 --- a/src/Generated/Models/TranscribedSegment.Serialization.cs +++ b/src/Generated/Models/TranscribedSegment.Serialization.cs @@ -86,7 +86,7 @@ private void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions writer.WritePropertyName("no_speech_prob"u8); writer.WriteNumberValue(NoSpeechProbability); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -200,10 +200,7 @@ internal static TranscribedSegment DeserializeTranscribedSegment(JsonElement ele noSpeechProbability = prop.Value.GetSingle(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new TranscribedSegment( id, diff --git a/src/Generated/Models/TranscribedWord.Serialization.cs b/src/Generated/Models/TranscribedWord.Serialization.cs index 28a1bc287..c6ccf2ec2 100644 --- a/src/Generated/Models/TranscribedWord.Serialization.cs +++ b/src/Generated/Models/TranscribedWord.Serialization.cs @@ -46,7 +46,7 @@ private void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions writer.WritePropertyName("end"u8); writer.WriteNumberValue(Convert.ToDouble(EndTime.ToString("s\\.FFF"))); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static TranscribedWord DeserializeTranscribedWord(JsonElement element, endTime = TimeSpan.FromSeconds(prop.Value.GetDouble()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new TranscribedWord(word, startTime, endTime, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownAssistantToolDefinition.Serialization.cs b/src/Generated/Models/UnknownAssistantToolDefinition.Serialization.cs index 929e01eb3..8cbab500e 100644 --- a/src/Generated/Models/UnknownAssistantToolDefinition.Serialization.cs +++ b/src/Generated/Models/UnknownAssistantToolDefinition.Serialization.cs @@ -54,10 +54,7 @@ internal static UnknownAssistantToolDefinition DeserializeUnknownAssistantToolDe @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownAssistantToolDefinition(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownCreateFineTuningJobRequestIntegration.Serialization.cs b/src/Generated/Models/UnknownCreateFineTuningJobRequestIntegration.Serialization.cs index 18646e9bd..a5a5c1404 100644 --- a/src/Generated/Models/UnknownCreateFineTuningJobRequestIntegration.Serialization.cs +++ b/src/Generated/Models/UnknownCreateFineTuningJobRequestIntegration.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownCreateFineTuningJobRequestIntegration DeserializeUnknownC @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownCreateFineTuningJobRequestIntegration(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownFineTuningIntegration.Serialization.cs b/src/Generated/Models/UnknownFineTuningIntegration.Serialization.cs index f38d39bce..b284b4d5d 100644 --- a/src/Generated/Models/UnknownFineTuningIntegration.Serialization.cs +++ b/src/Generated/Models/UnknownFineTuningIntegration.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownFineTuningIntegration DeserializeUnknownFineTuningIntegra @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownFineTuningIntegration(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownMessageContentTextObjectAnnotation.Serialization.cs b/src/Generated/Models/UnknownMessageContentTextObjectAnnotation.Serialization.cs index f1faf7745..df3275cc1 100644 --- a/src/Generated/Models/UnknownMessageContentTextObjectAnnotation.Serialization.cs +++ b/src/Generated/Models/UnknownMessageContentTextObjectAnnotation.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownMessageContentTextObjectAnnotation DeserializeUnknownMess @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownMessageContentTextObjectAnnotation(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownMessageDeltaContent.Serialization.cs b/src/Generated/Models/UnknownMessageDeltaContent.Serialization.cs index 4b88fb791..eeb50495d 100644 --- a/src/Generated/Models/UnknownMessageDeltaContent.Serialization.cs +++ b/src/Generated/Models/UnknownMessageDeltaContent.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownMessageDeltaContent DeserializeUnknownMessageDeltaContent @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownMessageDeltaContent(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownMessageDeltaTextContentAnnotation.Serialization.cs b/src/Generated/Models/UnknownMessageDeltaTextContentAnnotation.Serialization.cs index fd95ef989..c008c47ce 100644 --- a/src/Generated/Models/UnknownMessageDeltaTextContentAnnotation.Serialization.cs +++ b/src/Generated/Models/UnknownMessageDeltaTextContentAnnotation.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownMessageDeltaTextContentAnnotation DeserializeUnknownMessa @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownMessageDeltaTextContentAnnotation(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeClientEvent.Serialization.cs b/src/Generated/Models/UnknownRealtimeClientEvent.Serialization.cs index 16f2281c8..1f00a7232 100644 --- a/src/Generated/Models/UnknownRealtimeClientEvent.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeClientEvent.Serialization.cs @@ -67,10 +67,7 @@ internal static UnknownRealtimeClientEvent DeserializeUnknownRealtimeClientEvent eventId = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeClientEvent(kind, eventId, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeContentPart.Serialization.cs b/src/Generated/Models/UnknownRealtimeContentPart.Serialization.cs index 28867bbbd..7ee436310 100644 --- a/src/Generated/Models/UnknownRealtimeContentPart.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeContentPart.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRealtimeContentPart DeserializeUnknownRealtimeContentPart kind = new ConversationContentPartKind(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeContentPart(kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeRequestItem.Serialization.cs b/src/Generated/Models/UnknownRealtimeRequestItem.Serialization.cs index c32837795..09f58b955 100644 --- a/src/Generated/Models/UnknownRealtimeRequestItem.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeRequestItem.Serialization.cs @@ -67,10 +67,7 @@ internal static UnknownRealtimeRequestItem DeserializeUnknownRealtimeRequestItem id = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeRequestItem(@type, id, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeRequestMessageItem.Serialization.cs b/src/Generated/Models/UnknownRealtimeRequestMessageItem.Serialization.cs index bf48837ab..893328a41 100644 --- a/src/Generated/Models/UnknownRealtimeRequestMessageItem.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeRequestMessageItem.Serialization.cs @@ -83,10 +83,7 @@ internal static UnknownRealtimeRequestMessageItem DeserializeUnknownRealtimeRequ status = new ConversationItemStatus(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeRequestMessageItem(@type, id, additionalBinaryDataProperties, role, status); } diff --git a/src/Generated/Models/UnknownRealtimeResponseItem.Serialization.cs b/src/Generated/Models/UnknownRealtimeResponseItem.Serialization.cs index 5a0d718b7..48410c5a8 100644 --- a/src/Generated/Models/UnknownRealtimeResponseItem.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeResponseItem.Serialization.cs @@ -78,10 +78,7 @@ internal static UnknownRealtimeResponseItem DeserializeUnknownRealtimeResponseIt id = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeResponseItem(@object, @type, id, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeServerEvent.Serialization.cs b/src/Generated/Models/UnknownRealtimeServerEvent.Serialization.cs index aa48c7391..097c70ac3 100644 --- a/src/Generated/Models/UnknownRealtimeServerEvent.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeServerEvent.Serialization.cs @@ -43,7 +43,7 @@ protected override ConversationUpdate JsonModelCreateCore(ref Utf8JsonReader rea throw new FormatException($"The model {nameof(ConversationUpdate)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ConversationUpdate.DeserializeConversationUpdate(document.RootElement, options); + return DeserializeConversationUpdate(document.RootElement, options); } internal static UnknownRealtimeServerEvent DeserializeUnknownRealtimeServerEvent(JsonElement element, ModelReaderWriterOptions options) @@ -53,7 +53,7 @@ internal static UnknownRealtimeServerEvent DeserializeUnknownRealtimeServerEvent return null; } string eventId = default; - RealtimeConversation.ConversationUpdateKind kind = default; + ConversationUpdateKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -67,10 +67,7 @@ internal static UnknownRealtimeServerEvent DeserializeUnknownRealtimeServerEvent kind = prop.Value.GetString().ToConversationUpdateKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeServerEvent(eventId, kind, additionalBinaryDataProperties); } @@ -99,7 +96,7 @@ protected override ConversationUpdate PersistableModelCreateCore(BinaryData data case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ConversationUpdate.DeserializeConversationUpdate(document.RootElement, options); + return DeserializeConversationUpdate(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ConversationUpdate)} does not support reading '{options.Format}' format."); diff --git a/src/Generated/Models/UnknownRealtimeServerEvent.cs b/src/Generated/Models/UnknownRealtimeServerEvent.cs index d2e999978..ac6f10345 100644 --- a/src/Generated/Models/UnknownRealtimeServerEvent.cs +++ b/src/Generated/Models/UnknownRealtimeServerEvent.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class UnknownRealtimeServerEvent : ConversationUpdate { - internal UnknownRealtimeServerEvent(string eventId, RealtimeConversation.ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties) : base(eventId, kind, additionalBinaryDataProperties) + internal UnknownRealtimeServerEvent(string eventId, ConversationUpdateKind kind, IDictionary additionalBinaryDataProperties) : base(eventId, kind, additionalBinaryDataProperties) { } } diff --git a/src/Generated/Models/UnknownRealtimeTool.Serialization.cs b/src/Generated/Models/UnknownRealtimeTool.Serialization.cs index bbf65b2f3..4a0bf9184 100644 --- a/src/Generated/Models/UnknownRealtimeTool.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeTool.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRealtimeTool DeserializeUnknownRealtimeTool(JsonElement e kind = new ConversationToolKind(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeTool(kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeToolChoiceObject.Serialization.cs b/src/Generated/Models/UnknownRealtimeToolChoiceObject.Serialization.cs index ced86e48a..342de3617 100644 --- a/src/Generated/Models/UnknownRealtimeToolChoiceObject.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeToolChoiceObject.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRealtimeToolChoiceObject DeserializeUnknownRealtimeToolCh @type = new ConversationToolKind(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeToolChoiceObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRealtimeTurnDetection.Serialization.cs b/src/Generated/Models/UnknownRealtimeTurnDetection.Serialization.cs index 893f07b6a..bf926c082 100644 --- a/src/Generated/Models/UnknownRealtimeTurnDetection.Serialization.cs +++ b/src/Generated/Models/UnknownRealtimeTurnDetection.Serialization.cs @@ -43,7 +43,7 @@ protected override ConversationTurnDetectionOptions JsonModelCreateCore(ref Utf8 throw new FormatException($"The model {nameof(ConversationTurnDetectionOptions)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return ConversationTurnDetectionOptions.DeserializeConversationTurnDetectionOptions(document.RootElement, options); + return DeserializeConversationTurnDetectionOptions(document.RootElement, options); } internal static UnknownRealtimeTurnDetection DeserializeUnknownRealtimeTurnDetection(JsonElement element, ModelReaderWriterOptions options) @@ -52,7 +52,7 @@ internal static UnknownRealtimeTurnDetection DeserializeUnknownRealtimeTurnDetec { return null; } - RealtimeConversation.ConversationTurnDetectionKind kind = default; + ConversationTurnDetectionKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -61,10 +61,7 @@ internal static UnknownRealtimeTurnDetection DeserializeUnknownRealtimeTurnDetec kind = prop.Value.GetString().ToConversationTurnDetectionKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRealtimeTurnDetection(kind, additionalBinaryDataProperties); } @@ -93,7 +90,7 @@ protected override ConversationTurnDetectionOptions PersistableModelCreateCore(B case "J": using (JsonDocument document = JsonDocument.Parse(data)) { - return ConversationTurnDetectionOptions.DeserializeConversationTurnDetectionOptions(document.RootElement, options); + return DeserializeConversationTurnDetectionOptions(document.RootElement, options); } default: throw new FormatException($"The model {nameof(ConversationTurnDetectionOptions)} does not support reading '{options.Format}' format."); diff --git a/src/Generated/Models/UnknownRealtimeTurnDetection.cs b/src/Generated/Models/UnknownRealtimeTurnDetection.cs index e5706b570..80e07f0ef 100644 --- a/src/Generated/Models/UnknownRealtimeTurnDetection.cs +++ b/src/Generated/Models/UnknownRealtimeTurnDetection.cs @@ -9,7 +9,7 @@ namespace OpenAI.RealtimeConversation { internal partial class UnknownRealtimeTurnDetection : ConversationTurnDetectionOptions { - internal UnknownRealtimeTurnDetection(RealtimeConversation.ConversationTurnDetectionKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) + internal UnknownRealtimeTurnDetection(ConversationTurnDetectionKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) { } } diff --git a/src/Generated/Models/UnknownResponsesComputerCallItemAction.Serialization.cs b/src/Generated/Models/UnknownResponsesComputerCallItemAction.Serialization.cs new file mode 100644 index 000000000..afaba4523 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesComputerCallItemAction.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class UnknownResponsesComputerCallItemAction : IJsonModel + { + internal UnknownResponsesComputerCallItemAction() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ComputerCallAction IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ComputerCallAction JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerCallAction(document.RootElement, options); + } + + internal static UnknownResponsesComputerCallItemAction DeserializeUnknownResponsesComputerCallItemAction(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ComputerCallActionKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToComputerCallActionKind(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesComputerCallItemAction(kind, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support writing '{options.Format}' format."); + } + } + + ComputerCallAction IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ComputerCallAction PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerCallAction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerCallAction)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesComputerCallItemAction.cs b/src/Generated/Models/UnknownResponsesComputerCallItemAction.cs new file mode 100644 index 000000000..38fa6ed60 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesComputerCallItemAction.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class UnknownResponsesComputerCallItemAction : ComputerCallAction + { + internal UnknownResponsesComputerCallItemAction(ComputerCallActionKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesComputerCallOutputItemOutput.Serialization.cs b/src/Generated/Models/UnknownResponsesComputerCallOutputItemOutput.Serialization.cs new file mode 100644 index 000000000..c7efebc93 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesComputerCallOutputItemOutput.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class UnknownResponsesComputerCallOutputItemOutput : IJsonModel + { + internal UnknownResponsesComputerCallOutputItemOutput() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerOutput)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ComputerOutput IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ComputerOutput JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ComputerOutput)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeComputerOutput(document.RootElement, options); + } + + internal static UnknownResponsesComputerCallOutputItemOutput DeserializeUnknownResponsesComputerCallOutputItemOutput(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesComputerCallOutputItemOutputType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesComputerCallOutputItemOutputType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesComputerCallOutputItemOutput(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ComputerOutput)} does not support writing '{options.Format}' format."); + } + } + + ComputerOutput IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ComputerOutput PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeComputerOutput(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ComputerOutput)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesComputerCallOutputItemOutput.cs b/src/Generated/Models/UnknownResponsesComputerCallOutputItemOutput.cs new file mode 100644 index 000000000..b16406068 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesComputerCallOutputItemOutput.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class UnknownResponsesComputerCallOutputItemOutput : ComputerOutput + { + internal UnknownResponsesComputerCallOutputItemOutput(InternalResponsesComputerCallOutputItemOutputType @type, IDictionary additionalBinaryDataProperties) : base(@type != default ? @type : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesContent.Serialization.cs b/src/Generated/Models/UnknownResponsesContent.Serialization.cs new file mode 100644 index 000000000..59f4ac91c --- /dev/null +++ b/src/Generated/Models/UnknownResponsesContent.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesContent : IJsonModel + { + internal UnknownResponsesContent() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ResponseContentPart IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ResponseContentPart JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseContentPart(document.RootElement, options); + } + + internal static UnknownResponsesContent DeserializeUnknownResponsesContent(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseContentPartKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseContentPartKind(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesContent(kind, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support writing '{options.Format}' format."); + } + } + + ResponseContentPart IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ResponseContentPart PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseContentPart(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseContentPart)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesContent.cs b/src/Generated/Models/UnknownResponsesContent.cs new file mode 100644 index 000000000..20293275b --- /dev/null +++ b/src/Generated/Models/UnknownResponsesContent.cs @@ -0,0 +1,17 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesContent : ResponseContentPart + { + internal UnknownResponsesContent(ResponseContentPartKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesOutputTextAnnotation.Serialization.cs b/src/Generated/Models/UnknownResponsesOutputTextAnnotation.Serialization.cs new file mode 100644 index 000000000..09eb45243 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesOutputTextAnnotation.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesOutputTextAnnotation : IJsonModel + { + internal UnknownResponsesOutputTextAnnotation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + ResponseMessageAnnotation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override ResponseMessageAnnotation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeResponseMessageAnnotation(document.RootElement, options); + } + + internal static UnknownResponsesOutputTextAnnotation DeserializeUnknownResponsesOutputTextAnnotation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseMessageAnnotationKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = prop.Value.GetString().ToResponseMessageAnnotationKind(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesOutputTextAnnotation(kind, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support writing '{options.Format}' format."); + } + } + + ResponseMessageAnnotation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override ResponseMessageAnnotation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeResponseMessageAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ResponseMessageAnnotation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesOutputTextAnnotation.cs b/src/Generated/Models/UnknownResponsesOutputTextAnnotation.cs new file mode 100644 index 000000000..0c3b555b8 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesOutputTextAnnotation.cs @@ -0,0 +1,17 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesOutputTextAnnotation : ResponseMessageAnnotation + { + internal UnknownResponsesOutputTextAnnotation(ResponseMessageAnnotationKind kind, IDictionary additionalBinaryDataProperties) : base(kind, additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesReasoningItemSummaryElement.Serialization.cs b/src/Generated/Models/UnknownResponsesReasoningItemSummaryElement.Serialization.cs new file mode 100644 index 000000000..32c3962a8 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesReasoningItemSummaryElement.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesReasoningItemSummaryElement : IJsonModel + { + internal UnknownResponsesReasoningItemSummaryElement() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesReasoningItemSummaryElement IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesReasoningItemSummaryElement JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesReasoningItemSummaryElement(document.RootElement, options); + } + + internal static UnknownResponsesReasoningItemSummaryElement DeserializeUnknownResponsesReasoningItemSummaryElement(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesReasoningItemSummaryType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesReasoningItemSummaryType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesReasoningItemSummaryElement(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesReasoningItemSummaryElement IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override InternalResponsesReasoningItemSummaryElement PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesReasoningItemSummaryElement(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesReasoningItemSummaryElement)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesReasoningItemSummaryElement.cs b/src/Generated/Models/UnknownResponsesReasoningItemSummaryElement.cs new file mode 100644 index 000000000..c618d6a69 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesReasoningItemSummaryElement.cs @@ -0,0 +1,17 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesReasoningItemSummaryElement : InternalResponsesReasoningItemSummaryElement + { + internal UnknownResponsesReasoningItemSummaryElement(InternalResponsesReasoningItemSummaryType @type, IDictionary additionalBinaryDataProperties) : base(@type != default ? @type : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesResponseStreamEvent.Serialization.cs b/src/Generated/Models/UnknownResponsesResponseStreamEvent.Serialization.cs new file mode 100644 index 000000000..cbdab1514 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesResponseStreamEvent.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + internal partial class UnknownResponsesResponseStreamEvent : IJsonModel + { + internal UnknownResponsesResponseStreamEvent() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + StreamingResponseUpdate IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override StreamingResponseUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStreamingResponseUpdate(document.RootElement, options); + } + + internal static UnknownResponsesResponseStreamEvent DeserializeUnknownResponsesResponseStreamEvent(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StreamingResponseUpdateKind kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + kind = new StreamingResponseUpdateKind(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesResponseStreamEvent(kind, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support writing '{options.Format}' format."); + } + } + + StreamingResponseUpdate IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override StreamingResponseUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeStreamingResponseUpdate(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StreamingResponseUpdate)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesResponseStreamEvent.cs b/src/Generated/Models/UnknownResponsesResponseStreamEvent.cs new file mode 100644 index 000000000..8ee608057 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesResponseStreamEvent.cs @@ -0,0 +1,16 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + internal partial class UnknownResponsesResponseStreamEvent : StreamingResponseUpdate + { + internal UnknownResponsesResponseStreamEvent(StreamingResponseUpdateKind kind, IDictionary additionalBinaryDataProperties) : base(kind != default ? kind : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesToolChoiceObject.Serialization.cs b/src/Generated/Models/UnknownResponsesToolChoiceObject.Serialization.cs new file mode 100644 index 000000000..63bb2b90e --- /dev/null +++ b/src/Generated/Models/UnknownResponsesToolChoiceObject.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesToolChoiceObject : IJsonModel + { + internal UnknownResponsesToolChoiceObject() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + InternalResponsesToolChoiceObject IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override InternalResponsesToolChoiceObject JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInternalResponsesToolChoiceObject(document.RootElement, options); + } + + internal static UnknownResponsesToolChoiceObject DeserializeUnknownResponsesToolChoiceObject(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesToolChoiceObjectType @type = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesToolChoiceObjectType(prop.Value.GetString()); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesToolChoiceObject(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support writing '{options.Format}' format."); + } + } + + InternalResponsesToolChoiceObject IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override InternalResponsesToolChoiceObject PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeInternalResponsesToolChoiceObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InternalResponsesToolChoiceObject)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesToolChoiceObject.cs b/src/Generated/Models/UnknownResponsesToolChoiceObject.cs new file mode 100644 index 000000000..cf98164f0 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesToolChoiceObject.cs @@ -0,0 +1,17 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesToolChoiceObject : InternalResponsesToolChoiceObject + { + internal UnknownResponsesToolChoiceObject(InternalResponsesToolChoiceObjectType @type, IDictionary additionalBinaryDataProperties) : base(@type != default ? @type : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownResponsesWebSearchLocation.Serialization.cs b/src/Generated/Models/UnknownResponsesWebSearchLocation.Serialization.cs new file mode 100644 index 000000000..cae3f08a4 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesWebSearchLocation.Serialization.cs @@ -0,0 +1,102 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesWebSearchLocation : IJsonModel + { + internal UnknownResponsesWebSearchLocation() + { + } + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + WebSearchToolLocation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected override WebSearchToolLocation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWebSearchToolLocation(document.RootElement, options); + } + + internal static UnknownResponsesWebSearchLocation DeserializeUnknownResponsesWebSearchLocation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string @type = "unknown"; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = prop.Value.GetString(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new UnknownResponsesWebSearchLocation(@type, additionalBinaryDataProperties); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support writing '{options.Format}' format."); + } + } + + WebSearchToolLocation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected override WebSearchToolLocation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeWebSearchToolLocation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/src/Generated/Models/UnknownResponsesWebSearchLocation.cs b/src/Generated/Models/UnknownResponsesWebSearchLocation.cs new file mode 100644 index 000000000..0c755dfe8 --- /dev/null +++ b/src/Generated/Models/UnknownResponsesWebSearchLocation.cs @@ -0,0 +1,17 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; +using OpenAI.Responses; + +namespace OpenAI +{ + internal partial class UnknownResponsesWebSearchLocation : WebSearchToolLocation + { + internal UnknownResponsesWebSearchLocation(string @type, IDictionary additionalBinaryDataProperties) : base(@type ?? "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/src/Generated/Models/UnknownRunStepDeltaStepDetails.Serialization.cs b/src/Generated/Models/UnknownRunStepDeltaStepDetails.Serialization.cs index 1001a346d..42b73610e 100644 --- a/src/Generated/Models/UnknownRunStepDeltaStepDetails.Serialization.cs +++ b/src/Generated/Models/UnknownRunStepDeltaStepDetails.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRunStepDeltaStepDetails DeserializeUnknownRunStepDeltaSte @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRunStepDeltaStepDetails(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs b/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs index 53787e08c..0ef6efe8e 100644 --- a/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs +++ b/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreter @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRunStepDeltaStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs b/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs index 9ca843d25..ec9bd02d4 100644 --- a/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs +++ b/src/Generated/Models/UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject Des @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRunStepDeltaStepDetailsToolCallsObjectToolCallsObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs b/src/Generated/Models/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs index ca2a237bd..ce9e9daa7 100644 --- a/src/Generated/Models/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs +++ b/src/Generated/Models/UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsOb @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.Serialization.cs b/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.Serialization.cs index 66a751e3a..240a7b108 100644 --- a/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.Serialization.cs +++ b/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.Serialization.cs @@ -53,7 +53,7 @@ internal static UnknownRunStepDetailsToolCallsObjectToolCallsObject DeserializeU return null; } string id = default; - Assistants.RunStepToolCallKind kind = default; + RunStepToolCallKind kind = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { @@ -67,10 +67,7 @@ internal static UnknownRunStepDetailsToolCallsObjectToolCallsObject DeserializeU kind = prop.Value.GetString().ToRunStepToolCallKind(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRunStepDetailsToolCallsObjectToolCallsObject(id, kind, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs b/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs index 64e0d13c9..d16094186 100644 --- a/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs +++ b/src/Generated/Models/UnknownRunStepDetailsToolCallsObjectToolCallsObject.cs @@ -9,7 +9,7 @@ namespace OpenAI.Assistants { internal partial class UnknownRunStepDetailsToolCallsObjectToolCallsObject : RunStepToolCall { - internal UnknownRunStepDetailsToolCallsObjectToolCallsObject(string id, Assistants.RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties) : base(id, kind, additionalBinaryDataProperties) + internal UnknownRunStepDetailsToolCallsObjectToolCallsObject(string id, RunStepToolCallKind kind, IDictionary additionalBinaryDataProperties) : base(id, kind, additionalBinaryDataProperties) { } } diff --git a/src/Generated/Models/UnknownRunStepObjectStepDetails.Serialization.cs b/src/Generated/Models/UnknownRunStepObjectStepDetails.Serialization.cs index 9eed83689..b0145a2a2 100644 --- a/src/Generated/Models/UnknownRunStepObjectStepDetails.Serialization.cs +++ b/src/Generated/Models/UnknownRunStepObjectStepDetails.Serialization.cs @@ -61,10 +61,7 @@ internal static UnknownRunStepObjectStepDetails DeserializeUnknownRunStepObjectS @type = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new UnknownRunStepObjectStepDetails(@type, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/UserChatMessage.Serialization.cs b/src/Generated/Models/UserChatMessage.Serialization.cs index c53bf0f9d..d8029da3e 100644 --- a/src/Generated/Models/UserChatMessage.Serialization.cs +++ b/src/Generated/Models/UserChatMessage.Serialization.cs @@ -48,7 +48,7 @@ internal static UserChatMessage DeserializeUserChatMessage(JsonElement element, return null; } ChatMessageContent content = default; - Chat.ChatMessageRole role = default; + ChatMessageRole role = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); string participantName = default; foreach (var prop in element.EnumerateObject()) @@ -68,13 +68,9 @@ internal static UserChatMessage DeserializeUserChatMessage(JsonElement element, participantName = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - // CUSTOM: Initialize Content collection property. - return new UserChatMessage(content ?? new ChatMessageContent(), role, additionalBinaryDataProperties, participantName); + return new UserChatMessage(content, role, additionalBinaryDataProperties, participantName); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/UserChatMessage.cs b/src/Generated/Models/UserChatMessage.cs index 4d7bda7a0..3d71f7d85 100644 --- a/src/Generated/Models/UserChatMessage.cs +++ b/src/Generated/Models/UserChatMessage.cs @@ -9,7 +9,7 @@ namespace OpenAI.Chat { public partial class UserChatMessage : ChatMessage { - internal UserChatMessage(ChatMessageContent content, Chat.ChatMessageRole role, IDictionary additionalBinaryDataProperties, string participantName) : base(content, role, additionalBinaryDataProperties) + internal UserChatMessage(ChatMessageContent content, ChatMessageRole role, IDictionary additionalBinaryDataProperties, string participantName) : base(content, role, additionalBinaryDataProperties) { ParticipantName = participantName; } diff --git a/src/Generated/Models/VectorStore.Serialization.cs b/src/Generated/Models/VectorStore.Serialization.cs index 8779c4de8..20352302a 100644 --- a/src/Generated/Models/VectorStore.Serialization.cs +++ b/src/Generated/Models/VectorStore.Serialization.cs @@ -63,31 +63,24 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ExpiresAt) && _additionalBinaryDataProperties?.ContainsKey("expires_at") != true) { - if (ExpiresAt != null) - { - writer.WritePropertyName("expires_at"u8); - writer.WriteNumberValue(ExpiresAt.Value, "U"); - } - else - { - writer.WriteNull("expiresAt"u8); - } + writer.WritePropertyName("expires_at"u8); + writer.WriteNumberValue(ExpiresAt.Value, "U"); } if (_additionalBinaryDataProperties?.ContainsKey("last_active_at") != true) { - if (LastActiveAt != null) + if (Optional.IsDefined(LastActiveAt)) { writer.WritePropertyName("last_active_at"u8); writer.WriteNumberValue(LastActiveAt.Value, "U"); } else { - writer.WriteNull("lastActiveAt"u8); + writer.WriteNull("last_active_at"u8); } } - if (true && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) + if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true) { - if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + if (options.Format != "W" && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); writer.WriteStartObject(); @@ -111,14 +104,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (Optional.IsDefined(ExpirationPolicy) && _additionalBinaryDataProperties?.ContainsKey("expires_after") != true) { writer.WritePropertyName("expires_after"u8); - writer.WriteObjectValue(ExpirationPolicy, options); + writer.WriteObjectValue(ExpirationPolicy, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -163,7 +156,7 @@ internal static VectorStore DeserializeVectorStore(JsonElement element, ModelRea string name = default; int usageBytes = default; VectorStoreFileCounts fileCounts = default; - VectorStores.VectorStoreStatus status = default; + VectorStoreStatus status = default; DateTimeOffset? expiresAt = default; DateTimeOffset? lastActiveAt = default; IReadOnlyDictionary metadata = default; @@ -258,10 +251,7 @@ internal static VectorStore DeserializeVectorStore(JsonElement element, ModelRea expirationPolicy = VectorStoreExpirationPolicy.DeserializeVectorStoreExpirationPolicy(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStore( id, diff --git a/src/Generated/Models/VectorStore.cs b/src/Generated/Models/VectorStore.cs index b86c907e8..7ead1d272 100644 --- a/src/Generated/Models/VectorStore.cs +++ b/src/Generated/Models/VectorStore.cs @@ -12,7 +12,7 @@ public partial class VectorStore { private protected IDictionary _additionalBinaryDataProperties; - internal VectorStore(string id, DateTimeOffset createdAt, string name, int usageBytes, VectorStoreFileCounts fileCounts, VectorStores.VectorStoreStatus status, DateTimeOffset? lastActiveAt) + internal VectorStore(string id, DateTimeOffset createdAt, string name, int usageBytes, VectorStoreFileCounts fileCounts, VectorStoreStatus status, DateTimeOffset? lastActiveAt) { Id = id; CreatedAt = createdAt; @@ -24,7 +24,7 @@ internal VectorStore(string id, DateTimeOffset createdAt, string name, int usage Metadata = new ChangeTrackingDictionary(); } - internal VectorStore(string id, DateTimeOffset createdAt, string name, int usageBytes, VectorStoreFileCounts fileCounts, VectorStores.VectorStoreStatus status, DateTimeOffset? expiresAt, DateTimeOffset? lastActiveAt, IReadOnlyDictionary metadata, InternalVectorStoreObjectObject @object, VectorStoreExpirationPolicy expirationPolicy, IDictionary additionalBinaryDataProperties) + internal VectorStore(string id, DateTimeOffset createdAt, string name, int usageBytes, VectorStoreFileCounts fileCounts, VectorStoreStatus status, DateTimeOffset? expiresAt, DateTimeOffset? lastActiveAt, IReadOnlyDictionary metadata, InternalVectorStoreObjectObject @object, VectorStoreExpirationPolicy expirationPolicy, IDictionary additionalBinaryDataProperties) { Id = id; CreatedAt = createdAt; @@ -35,7 +35,7 @@ internal VectorStore(string id, DateTimeOffset createdAt, string name, int usage ExpiresAt = expiresAt; LastActiveAt = lastActiveAt; Metadata = metadata; - this.Object = @object; + Object = @object; ExpirationPolicy = expirationPolicy; _additionalBinaryDataProperties = additionalBinaryDataProperties; } @@ -50,7 +50,7 @@ internal VectorStore(string id, DateTimeOffset createdAt, string name, int usage public VectorStoreFileCounts FileCounts { get; } - public VectorStores.VectorStoreStatus Status { get; } + public VectorStoreStatus Status { get; } public DateTimeOffset? ExpiresAt { get; } diff --git a/src/Generated/Models/VectorStoreBatchFileJob.Serialization.cs b/src/Generated/Models/VectorStoreBatchFileJob.Serialization.cs index 643b8ac93..a6640392e 100644 --- a/src/Generated/Models/VectorStoreBatchFileJob.Serialization.cs +++ b/src/Generated/Models/VectorStoreBatchFileJob.Serialization.cs @@ -54,14 +54,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("file_counts") != true) { writer.WritePropertyName("file_counts"u8); - writer.WriteObjectValue(FileCounts, options); + writer.WriteObjectValue(FileCounts, options); } if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteObjectValue(this.Object, options); + writer.WriteObjectValue(Object, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -140,10 +140,7 @@ internal static VectorStoreBatchFileJob DeserializeVectorStoreBatchFileJob(JsonE @object = prop.Value.GetObject(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreBatchFileJob( createdAt, diff --git a/src/Generated/Models/VectorStoreBatchFileJob.cs b/src/Generated/Models/VectorStoreBatchFileJob.cs index 919b553ca..3fe31301f 100644 --- a/src/Generated/Models/VectorStoreBatchFileJob.cs +++ b/src/Generated/Models/VectorStoreBatchFileJob.cs @@ -27,7 +27,7 @@ internal VectorStoreBatchFileJob(DateTimeOffset createdAt, string vectorStoreId, Status = status; BatchId = batchId; FileCounts = fileCounts; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/VectorStoreCreationHelper.Serialization.cs b/src/Generated/Models/VectorStoreCreationHelper.Serialization.cs index 68824cf3c..468170a5d 100644 --- a/src/Generated/Models/VectorStoreCreationHelper.Serialization.cs +++ b/src/Generated/Models/VectorStoreCreationHelper.Serialization.cs @@ -62,9 +62,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(ChunkingStrategy) && _additionalBinaryDataProperties?.ContainsKey("chunking_strategy") != true) { writer.WritePropertyName("chunking_strategy"u8); - writer.WriteObjectValue(ChunkingStrategy, options); + writer.WriteObjectValue(ChunkingStrategy, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -161,10 +161,7 @@ internal static VectorStoreCreationHelper DeserializeVectorStoreCreationHelper(J chunkingStrategy = FileChunkingStrategy.DeserializeFileChunkingStrategy(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreCreationHelper(fileIds ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), chunkingStrategy, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/VectorStoreCreationOptions.Serialization.cs b/src/Generated/Models/VectorStoreCreationOptions.Serialization.cs index e5147480d..daab452f4 100644 --- a/src/Generated/Models/VectorStoreCreationOptions.Serialization.cs +++ b/src/Generated/Models/VectorStoreCreationOptions.Serialization.cs @@ -66,14 +66,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (Optional.IsDefined(ExpirationPolicy) && _additionalBinaryDataProperties?.ContainsKey("expires_after") != true) { writer.WritePropertyName("expires_after"u8); - writer.WriteObjectValue(ExpirationPolicy, options); + writer.WriteObjectValue(ExpirationPolicy, options); } if (Optional.IsDefined(ChunkingStrategy) && _additionalBinaryDataProperties?.ContainsKey("chunking_strategy") != true) { writer.WritePropertyName("chunking_strategy"u8); - writer.WriteObjectValue(ChunkingStrategy, options); + writer.WriteObjectValue(ChunkingStrategy, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -186,10 +186,7 @@ internal static VectorStoreCreationOptions DeserializeVectorStoreCreationOptions chunkingStrategy = FileChunkingStrategy.DeserializeFileChunkingStrategy(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreCreationOptions( fileIds ?? new ChangeTrackingList(), diff --git a/src/Generated/Models/VectorStoreDeletionResult.Serialization.cs b/src/Generated/Models/VectorStoreDeletionResult.Serialization.cs index ffbcc14f0..966ed1749 100644 --- a/src/Generated/Models/VectorStoreDeletionResult.Serialization.cs +++ b/src/Generated/Models/VectorStoreDeletionResult.Serialization.cs @@ -44,9 +44,9 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -107,10 +107,7 @@ internal static VectorStoreDeletionResult DeserializeVectorStoreDeletionResult(J @object = new InternalDeleteVectorStoreResponseObject(prop.Value.GetString()); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreDeletionResult(deleted, vectorStoreId, @object, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/VectorStoreDeletionResult.cs b/src/Generated/Models/VectorStoreDeletionResult.cs index 35a6a2908..c02962e8a 100644 --- a/src/Generated/Models/VectorStoreDeletionResult.cs +++ b/src/Generated/Models/VectorStoreDeletionResult.cs @@ -21,7 +21,7 @@ internal VectorStoreDeletionResult(bool deleted, string vectorStoreId, InternalD { Deleted = deleted; VectorStoreId = vectorStoreId; - this.Object = @object; + Object = @object; _additionalBinaryDataProperties = additionalBinaryDataProperties; } diff --git a/src/Generated/Models/VectorStoreExpirationAnchor.Serialization.cs b/src/Generated/Models/VectorStoreExpirationAnchor.Serialization.cs index 0c7b2962c..d77adf5be 100644 --- a/src/Generated/Models/VectorStoreExpirationAnchor.Serialization.cs +++ b/src/Generated/Models/VectorStoreExpirationAnchor.Serialization.cs @@ -8,17 +8,17 @@ namespace OpenAI.VectorStores { internal static partial class VectorStoreExpirationAnchorExtensions { - public static string ToSerialString(this VectorStores.VectorStoreExpirationAnchor value) => value switch + public static string ToSerialString(this VectorStoreExpirationAnchor value) => value switch { - VectorStores.VectorStoreExpirationAnchor.LastActiveAt => "last_active_at", + VectorStoreExpirationAnchor.LastActiveAt => "last_active_at", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown VectorStoreExpirationAnchor value.") }; - public static VectorStores.VectorStoreExpirationAnchor ToVectorStoreExpirationAnchor(this string value) + public static VectorStoreExpirationAnchor ToVectorStoreExpirationAnchor(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "last_active_at")) { - return VectorStores.VectorStoreExpirationAnchor.LastActiveAt; + return VectorStoreExpirationAnchor.LastActiveAt; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown VectorStoreExpirationAnchor value."); } diff --git a/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs b/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs index a6e7d9c89..ef557c1d6 100644 --- a/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs +++ b/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("days"u8); writer.WriteNumberValue(_days); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -77,7 +77,7 @@ internal static VectorStoreExpirationPolicy DeserializeVectorStoreExpirationPoli { return null; } - VectorStores.VectorStoreExpirationAnchor anchor = default; + VectorStoreExpirationAnchor anchor = default; int days = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -92,10 +92,7 @@ internal static VectorStoreExpirationPolicy DeserializeVectorStoreExpirationPoli days = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreExpirationPolicy(anchor, days, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/VectorStoreFileAssociation.Serialization.cs b/src/Generated/Models/VectorStoreFileAssociation.Serialization.cs index 38cb0416e..bb107c8b7 100644 --- a/src/Generated/Models/VectorStoreFileAssociation.Serialization.cs +++ b/src/Generated/Models/VectorStoreFileAssociation.Serialization.cs @@ -48,20 +48,20 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (_additionalBinaryDataProperties?.ContainsKey("last_error") != true) { - if (LastError != null) + if (Optional.IsDefined(LastError)) { writer.WritePropertyName("last_error"u8); writer.WriteObjectValue(LastError, options); } else { - writer.WriteNull("lastError"u8); + writer.WriteNull("last_error"u8); } } if (_additionalBinaryDataProperties?.ContainsKey("object") != true) { writer.WritePropertyName("object"u8); - writer.WriteStringValue(this.Object.ToString()); + writer.WriteStringValue(Object.ToString()); } if (_additionalBinaryDataProperties?.ContainsKey("id") != true) { @@ -73,12 +73,35 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("usage_bytes"u8); writer.WriteNumberValue(Size); } + if (Optional.IsCollectionDefined(Attributes) && _additionalBinaryDataProperties?.ContainsKey("attributes") != true) + { + writer.WritePropertyName("attributes"u8); + writer.WriteStartObject(); + foreach (var item in Attributes) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + writer.WriteEndObject(); + } if (Optional.IsDefined(ChunkingStrategy) && _additionalBinaryDataProperties?.ContainsKey("chunking_strategy") != true) { writer.WritePropertyName("chunking_strategy"u8); - writer.WriteObjectValue(ChunkingStrategy, options); + writer.WriteObjectValue(ChunkingStrategy, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -120,11 +143,12 @@ internal static VectorStoreFileAssociation DeserializeVectorStoreFileAssociation } DateTimeOffset createdAt = default; string vectorStoreId = default; - VectorStores.VectorStoreFileAssociationStatus status = default; + VectorStoreFileAssociationStatus status = default; VectorStoreFileAssociationError lastError = default; InternalVectorStoreFileObjectObject @object = default; string fileId = default; int size = default; + IDictionary attributes = default; FileChunkingStrategy chunkingStrategy = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) @@ -169,19 +193,37 @@ internal static VectorStoreFileAssociation DeserializeVectorStoreFileAssociation size = prop.Value.GetInt32(); continue; } - if (prop.NameEquals("chunking_strategy"u8)) + if (prop.NameEquals("attributes"u8)) { if (prop.Value.ValueKind == JsonValueKind.Null) { continue; } - chunkingStrategy = FileChunkingStrategy.DeserializeFileChunkingStrategy(prop.Value, options); + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, BinaryData.FromString(prop0.Value.GetRawText())); + } + } + attributes = dictionary; continue; } - if (true) + if (prop.NameEquals("chunking_strategy"u8)) { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + chunkingStrategy = FileChunkingStrategy.DeserializeFileChunkingStrategy(prop.Value, options); + continue; } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreFileAssociation( createdAt, @@ -191,6 +233,7 @@ internal static VectorStoreFileAssociation DeserializeVectorStoreFileAssociation @object, fileId, size, + attributes ?? new ChangeTrackingDictionary(), chunkingStrategy, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/VectorStoreFileAssociation.cs b/src/Generated/Models/VectorStoreFileAssociation.cs index 037763511..2323433ec 100644 --- a/src/Generated/Models/VectorStoreFileAssociation.cs +++ b/src/Generated/Models/VectorStoreFileAssociation.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using OpenAI; namespace OpenAI.VectorStores { @@ -11,7 +12,7 @@ public partial class VectorStoreFileAssociation { private protected IDictionary _additionalBinaryDataProperties; - internal VectorStoreFileAssociation(DateTimeOffset createdAt, string vectorStoreId, VectorStores.VectorStoreFileAssociationStatus status, VectorStoreFileAssociationError lastError, string fileId, int size) + internal VectorStoreFileAssociation(DateTimeOffset createdAt, string vectorStoreId, VectorStoreFileAssociationStatus status, VectorStoreFileAssociationError lastError, string fileId, int size) { CreatedAt = createdAt; VectorStoreId = vectorStoreId; @@ -19,17 +20,19 @@ internal VectorStoreFileAssociation(DateTimeOffset createdAt, string vectorStore LastError = lastError; FileId = fileId; Size = size; + Attributes = new ChangeTrackingDictionary(); } - internal VectorStoreFileAssociation(DateTimeOffset createdAt, string vectorStoreId, VectorStores.VectorStoreFileAssociationStatus status, VectorStoreFileAssociationError lastError, InternalVectorStoreFileObjectObject @object, string fileId, int size, FileChunkingStrategy chunkingStrategy, IDictionary additionalBinaryDataProperties) + internal VectorStoreFileAssociation(DateTimeOffset createdAt, string vectorStoreId, VectorStoreFileAssociationStatus status, VectorStoreFileAssociationError lastError, InternalVectorStoreFileObjectObject @object, string fileId, int size, IDictionary attributes, FileChunkingStrategy chunkingStrategy, IDictionary additionalBinaryDataProperties) { CreatedAt = createdAt; VectorStoreId = vectorStoreId; Status = status; LastError = lastError; - this.Object = @object; + Object = @object; FileId = fileId; Size = size; + Attributes = attributes; ChunkingStrategy = chunkingStrategy; _additionalBinaryDataProperties = additionalBinaryDataProperties; } @@ -38,7 +41,7 @@ internal VectorStoreFileAssociation(DateTimeOffset createdAt, string vectorStore public string VectorStoreId { get; } - public VectorStores.VectorStoreFileAssociationStatus Status { get; } + public VectorStoreFileAssociationStatus Status { get; } public VectorStoreFileAssociationError LastError { get; } diff --git a/src/Generated/Models/VectorStoreFileAssociationCollectionOrder.cs b/src/Generated/Models/VectorStoreFileAssociationCollectionOrder.cs deleted file mode 100644 index 0f1f67686..000000000 --- a/src/Generated/Models/VectorStoreFileAssociationCollectionOrder.cs +++ /dev/null @@ -1,40 +0,0 @@ -// - -#nullable disable - -using System; -using System.ComponentModel; -using OpenAI; - -namespace OpenAI.VectorStores -{ - public readonly partial struct VectorStoreFileAssociationCollectionOrder : IEquatable - { - private readonly string _value; - private const string AscValue = "asc"; - private const string DescValue = "desc"; - - public VectorStoreFileAssociationCollectionOrder(string value) - { - Argument.AssertNotNull(value, nameof(value)); - - _value = value; - } - - public static bool operator ==(VectorStoreFileAssociationCollectionOrder left, VectorStoreFileAssociationCollectionOrder right) => left.Equals(right); - - public static bool operator !=(VectorStoreFileAssociationCollectionOrder left, VectorStoreFileAssociationCollectionOrder right) => !left.Equals(right); - - public static implicit operator VectorStoreFileAssociationCollectionOrder(string value) => new VectorStoreFileAssociationCollectionOrder(value); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is VectorStoreFileAssociationCollectionOrder other && Equals(other); - - public bool Equals(VectorStoreFileAssociationCollectionOrder other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - - public override string ToString() => _value; - } -} diff --git a/src/Generated/Models/VectorStoreFileAssociationError.Serialization.cs b/src/Generated/Models/VectorStoreFileAssociationError.Serialization.cs index d6e4ca8d5..124ba34a0 100644 --- a/src/Generated/Models/VectorStoreFileAssociationError.Serialization.cs +++ b/src/Generated/Models/VectorStoreFileAssociationError.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("message"u8); writer.WriteStringValue(Message); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -96,10 +96,7 @@ internal static VectorStoreFileAssociationError DeserializeVectorStoreFileAssoci message = prop.Value.GetString(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreFileAssociationError(code, message, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/VectorStoreFileAssociationStatus.Serialization.cs b/src/Generated/Models/VectorStoreFileAssociationStatus.Serialization.cs index 49c9326c3..43a0d2b51 100644 --- a/src/Generated/Models/VectorStoreFileAssociationStatus.Serialization.cs +++ b/src/Generated/Models/VectorStoreFileAssociationStatus.Serialization.cs @@ -8,32 +8,32 @@ namespace OpenAI.VectorStores { internal static partial class VectorStoreFileAssociationStatusExtensions { - public static string ToSerialString(this VectorStores.VectorStoreFileAssociationStatus value) => value switch + public static string ToSerialString(this VectorStoreFileAssociationStatus value) => value switch { - VectorStores.VectorStoreFileAssociationStatus.InProgress => "in_progress", - VectorStores.VectorStoreFileAssociationStatus.Completed => "completed", - VectorStores.VectorStoreFileAssociationStatus.Cancelled => "cancelled", - VectorStores.VectorStoreFileAssociationStatus.Failed => "failed", + VectorStoreFileAssociationStatus.InProgress => "in_progress", + VectorStoreFileAssociationStatus.Completed => "completed", + VectorStoreFileAssociationStatus.Cancelled => "cancelled", + VectorStoreFileAssociationStatus.Failed => "failed", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown VectorStoreFileAssociationStatus value.") }; - public static VectorStores.VectorStoreFileAssociationStatus ToVectorStoreFileAssociationStatus(this string value) + public static VectorStoreFileAssociationStatus ToVectorStoreFileAssociationStatus(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) { - return VectorStores.VectorStoreFileAssociationStatus.InProgress; + return VectorStoreFileAssociationStatus.InProgress; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) { - return VectorStores.VectorStoreFileAssociationStatus.Completed; + return VectorStoreFileAssociationStatus.Completed; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "cancelled")) { - return VectorStores.VectorStoreFileAssociationStatus.Cancelled; + return VectorStoreFileAssociationStatus.Cancelled; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "failed")) { - return VectorStores.VectorStoreFileAssociationStatus.Failed; + return VectorStoreFileAssociationStatus.Failed; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown VectorStoreFileAssociationStatus value."); } diff --git a/src/Generated/Models/VectorStoreFileCounts.Serialization.cs b/src/Generated/Models/VectorStoreFileCounts.Serialization.cs index 05a8d299b..3f5e04a03 100644 --- a/src/Generated/Models/VectorStoreFileCounts.Serialization.cs +++ b/src/Generated/Models/VectorStoreFileCounts.Serialization.cs @@ -56,7 +56,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("total"u8); writer.WriteNumberValue(Total); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -129,10 +129,7 @@ internal static VectorStoreFileCounts DeserializeVectorStoreFileCounts(JsonEleme total = prop.Value.GetInt32(); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreFileCounts( inProgress, diff --git a/src/Generated/Models/VectorStoreModificationOptions.Serialization.cs b/src/Generated/Models/VectorStoreModificationOptions.Serialization.cs index f74cbb1cb..06ace1219 100644 --- a/src/Generated/Models/VectorStoreModificationOptions.Serialization.cs +++ b/src/Generated/Models/VectorStoreModificationOptions.Serialization.cs @@ -29,15 +29,8 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(Name) && _additionalBinaryDataProperties?.ContainsKey("name") != true) { - if (Name != null) - { - writer.WritePropertyName("name"u8); - writer.WriteStringValue(Name); - } - else - { - writer.WriteNull("name"u8); - } + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); } if (Optional.IsCollectionDefined(Metadata) && _additionalBinaryDataProperties?.ContainsKey("metadata") != true) { @@ -57,17 +50,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(ExpirationPolicy) && _additionalBinaryDataProperties?.ContainsKey("expires_after") != true) { - if (ExpirationPolicy != null) - { - writer.WritePropertyName("expires_after"u8); - writer.WriteObjectValue(ExpirationPolicy, options); - } - else - { - writer.WriteNull("expiresAfter"u8); - } + writer.WritePropertyName("expires_after"u8); + writer.WriteObjectValue(ExpirationPolicy, options); } - if (true && _additionalBinaryDataProperties != null) + if (_additionalBinaryDataProperties != null) { foreach (var item in _additionalBinaryDataProperties) { @@ -154,10 +140,7 @@ internal static VectorStoreModificationOptions DeserializeVectorStoreModificatio expirationPolicy = VectorStoreExpirationPolicy.DeserializeVectorStoreExpirationPolicy(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new VectorStoreModificationOptions(name, metadata ?? new ChangeTrackingDictionary(), expirationPolicy, additionalBinaryDataProperties); } diff --git a/src/Generated/Models/VectorStoreStatus.Serialization.cs b/src/Generated/Models/VectorStoreStatus.Serialization.cs index 51e3ad31d..b841bc4dd 100644 --- a/src/Generated/Models/VectorStoreStatus.Serialization.cs +++ b/src/Generated/Models/VectorStoreStatus.Serialization.cs @@ -8,27 +8,27 @@ namespace OpenAI.VectorStores { internal static partial class VectorStoreStatusExtensions { - public static string ToSerialString(this VectorStores.VectorStoreStatus value) => value switch + public static string ToSerialString(this VectorStoreStatus value) => value switch { - VectorStores.VectorStoreStatus.Expired => "expired", - VectorStores.VectorStoreStatus.InProgress => "in_progress", - VectorStores.VectorStoreStatus.Completed => "completed", + VectorStoreStatus.Expired => "expired", + VectorStoreStatus.InProgress => "in_progress", + VectorStoreStatus.Completed => "completed", _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown VectorStoreStatus value.") }; - public static VectorStores.VectorStoreStatus ToVectorStoreStatus(this string value) + public static VectorStoreStatus ToVectorStoreStatus(this string value) { if (StringComparer.OrdinalIgnoreCase.Equals(value, "expired")) { - return VectorStores.VectorStoreStatus.Expired; + return VectorStoreStatus.Expired; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) { - return VectorStores.VectorStoreStatus.InProgress; + return VectorStoreStatus.InProgress; } if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) { - return VectorStores.VectorStoreStatus.Completed; + return VectorStoreStatus.Completed; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown VectorStoreStatus value."); } diff --git a/src/Generated/Models/WebSearchCallResponseItem.Serialization.cs b/src/Generated/Models/WebSearchCallResponseItem.Serialization.cs new file mode 100644 index 000000000..5dd469ea9 --- /dev/null +++ b/src/Generated/Models/WebSearchCallResponseItem.Serialization.cs @@ -0,0 +1,132 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class WebSearchCallResponseItem : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WebSearchCallResponseItem)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (_additionalBinaryDataProperties?.ContainsKey("status") != true) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToSerialString()); + } + } + + WebSearchCallResponseItem IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (WebSearchCallResponseItem)JsonModelCreateCore(ref reader, options); + + protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WebSearchCallResponseItem)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWebSearchCallResponseItem(document.RootElement, options); + } + + internal static WebSearchCallResponseItem DeserializeWebSearchCallResponseItem(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InternalResponsesItemType @type = default; + string id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + WebSearchCallStatus status = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("type"u8)) + { + @type = new InternalResponsesItemType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("id"u8)) + { + id = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("status"u8)) + { + status = prop.Value.GetString().ToWebSearchCallStatus(); + continue; + } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + return new WebSearchCallResponseItem(@type, id, additionalBinaryDataProperties, status); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WebSearchCallResponseItem)} does not support writing '{options.Format}' format."); + } + } + + WebSearchCallResponseItem IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (WebSearchCallResponseItem)PersistableModelCreateCore(data, options); + + protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeWebSearchCallResponseItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WebSearchCallResponseItem)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(WebSearchCallResponseItem webSearchCallResponseItem) + { + if (webSearchCallResponseItem == null) + { + return null; + } + return BinaryContent.Create(webSearchCallResponseItem, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator WebSearchCallResponseItem(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeWebSearchCallResponseItem(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/WebSearchCallResponseItem.cs b/src/Generated/Models/WebSearchCallResponseItem.cs new file mode 100644 index 000000000..b10174636 --- /dev/null +++ b/src/Generated/Models/WebSearchCallResponseItem.cs @@ -0,0 +1,19 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class WebSearchCallResponseItem : ResponseItem + { + internal WebSearchCallResponseItem(InternalResponsesItemType @type, string id, IDictionary additionalBinaryDataProperties, WebSearchCallStatus status) : base(@type, id, additionalBinaryDataProperties) + { + Status = status; + } + + public WebSearchCallStatus Status { get; } + } +} diff --git a/src/Generated/Models/WebSearchCallStatus.Serialization.cs b/src/Generated/Models/WebSearchCallStatus.Serialization.cs new file mode 100644 index 000000000..1bbe58551 --- /dev/null +++ b/src/Generated/Models/WebSearchCallStatus.Serialization.cs @@ -0,0 +1,41 @@ +// + +#nullable disable + +using System; + +namespace OpenAI.Responses +{ + internal static partial class WebSearchCallStatusExtensions + { + public static string ToSerialString(this WebSearchCallStatus value) => value switch + { + WebSearchCallStatus.InProgress => "in_progress", + WebSearchCallStatus.Searching => "searching", + WebSearchCallStatus.Completed => "completed", + WebSearchCallStatus.Failed => "failed", + _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown WebSearchCallStatus value.") + }; + + public static WebSearchCallStatus ToWebSearchCallStatus(this string value) + { + if (StringComparer.OrdinalIgnoreCase.Equals(value, "in_progress")) + { + return WebSearchCallStatus.InProgress; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "searching")) + { + return WebSearchCallStatus.Searching; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "completed")) + { + return WebSearchCallStatus.Completed; + } + if (StringComparer.OrdinalIgnoreCase.Equals(value, "failed")) + { + return WebSearchCallStatus.Failed; + } + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown WebSearchCallStatus value."); + } + } +} diff --git a/src/Generated/Models/WebSearchToolContextSize.cs b/src/Generated/Models/WebSearchToolContextSize.cs new file mode 100644 index 000000000..691dcb88c --- /dev/null +++ b/src/Generated/Models/WebSearchToolContextSize.cs @@ -0,0 +1,47 @@ +// + +#nullable disable + +using System; +using System.ComponentModel; +using OpenAI; + +namespace OpenAI.Responses +{ + public readonly partial struct WebSearchToolContextSize : IEquatable + { + private readonly string _value; + private const string LowValue = "low"; + private const string MediumValue = "medium"; + private const string HighValue = "high"; + + public WebSearchToolContextSize(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + public static WebSearchToolContextSize Low { get; } = new WebSearchToolContextSize(LowValue); + + public static WebSearchToolContextSize Medium { get; } = new WebSearchToolContextSize(MediumValue); + + public static WebSearchToolContextSize High { get; } = new WebSearchToolContextSize(HighValue); + + public static bool operator ==(WebSearchToolContextSize left, WebSearchToolContextSize right) => left.Equals(right); + + public static bool operator !=(WebSearchToolContextSize left, WebSearchToolContextSize right) => !left.Equals(right); + + public static implicit operator WebSearchToolContextSize(string value) => new WebSearchToolContextSize(value); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is WebSearchToolContextSize other && Equals(other); + + public bool Equals(WebSearchToolContextSize other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + public override string ToString() => _value; + } +} diff --git a/src/Generated/Models/WebSearchToolLocation.Serialization.cs b/src/Generated/Models/WebSearchToolLocation.Serialization.cs new file mode 100644 index 000000000..6cbf4214e --- /dev/null +++ b/src/Generated/Models/WebSearchToolLocation.Serialization.cs @@ -0,0 +1,134 @@ +// + +#nullable disable + +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Text.Json; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class WebSearchToolLocation : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support writing '{format}' format."); + } + if (_additionalBinaryDataProperties?.ContainsKey("type") != true) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + } + if (_additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + if (ModelSerializationExtensions.IsSentinelValue(item.Value)) + { + continue; + } + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + WebSearchToolLocation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + protected virtual WebSearchToolLocation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWebSearchToolLocation(document.RootElement, options); + } + + internal static WebSearchToolLocation DeserializeWebSearchToolLocation(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "approximate": + return InternalResponsesWebSearchApproximateLocation.DeserializeInternalResponsesWebSearchApproximateLocation(element, options); + } + } + return UnknownResponsesWebSearchLocation.DeserializeUnknownResponsesWebSearchLocation(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support writing '{options.Format}' format."); + } + } + + WebSearchToolLocation IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + protected virtual WebSearchToolLocation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data)) + { + return DeserializeWebSearchToolLocation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WebSearchToolLocation)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + public static implicit operator BinaryContent(WebSearchToolLocation webSearchToolLocation) + { + if (webSearchToolLocation == null) + { + return null; + } + return BinaryContent.Create(webSearchToolLocation, ModelSerializationExtensions.WireOptions); + } + + public static explicit operator WebSearchToolLocation(ClientResult result) + { + using PipelineResponse response = result.GetRawResponse(); + using JsonDocument document = JsonDocument.Parse(response.Content); + return DeserializeWebSearchToolLocation(document.RootElement, ModelSerializationExtensions.WireOptions); + } + } +} diff --git a/src/Generated/Models/WebSearchToolLocation.cs b/src/Generated/Models/WebSearchToolLocation.cs new file mode 100644 index 000000000..cbfdb8393 --- /dev/null +++ b/src/Generated/Models/WebSearchToolLocation.cs @@ -0,0 +1,32 @@ +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace OpenAI.Responses +{ + public partial class WebSearchToolLocation + { + private protected IDictionary _additionalBinaryDataProperties; + + private protected WebSearchToolLocation() + { + } + + internal WebSearchToolLocation(string @type, IDictionary additionalBinaryDataProperties) + { + Type = @type; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + internal string Type { get; set; } = "approximate"; + + internal IDictionary SerializedAdditionalRawData + { + get => _additionalBinaryDataProperties; + set => _additionalBinaryDataProperties = value; + } + } +} diff --git a/src/Generated/Models/WeightsAndBiasesIntegration.Serialization.cs b/src/Generated/Models/WeightsAndBiasesIntegration.Serialization.cs index 893030090..85e3ac124 100644 --- a/src/Generated/Models/WeightsAndBiasesIntegration.Serialization.cs +++ b/src/Generated/Models/WeightsAndBiasesIntegration.Serialization.cs @@ -73,10 +73,7 @@ internal static WeightsAndBiasesIntegration DeserializeWeightsAndBiasesIntegrati wandb = InternalCreateFineTuningJobRequestWandbIntegrationWandb.DeserializeInternalCreateFineTuningJobRequestWandbIntegrationWandb(prop.Value, options); continue; } - if (true) - { - additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); - } + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } return new WeightsAndBiasesIntegration(@type, additionalBinaryDataProperties, wandb); } diff --git a/src/Generated/ModerationClient.RestClient.cs b/src/Generated/ModerationClient.RestClient.cs index 6830098b0..013ff75d5 100644 --- a/src/Generated/ModerationClient.RestClient.cs +++ b/src/Generated/ModerationClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class ModerationClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateModerationRequest(BinaryContent content, RequestOptions options) + internal virtual PipelineMessage CreateCreateModerationRequest(BinaryContent content, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/ModerationClient.cs b/src/Generated/ModerationClient.cs index e9b11d1f4..c929b04b4 100644 --- a/src/Generated/ModerationClient.cs +++ b/src/Generated/ModerationClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Moderations @@ -11,9 +10,6 @@ namespace OpenAI.Moderations public partial class ModerationClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected ModerationClient() { diff --git a/src/Generated/OpenAIClient.cs b/src/Generated/OpenAIClient.cs index 6d07001cd..b3167dce3 100644 --- a/src/Generated/OpenAIClient.cs +++ b/src/Generated/OpenAIClient.cs @@ -5,20 +5,28 @@ using System; using System.ClientModel; using System.ClientModel.Primitives; +using System.Threading; +using OpenAI.Responses; namespace OpenAI { public partial class OpenAIClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; private readonly ApiKeyCredential _keyCredential; + private const string AuthorizationHeader = "Authorization"; private const string AuthorizationApiKeyPrefix = "Bearer"; + private OpenAIResponseClient _cachedOpenAIResponseClient; protected OpenAIClient() { } public ClientPipeline Pipeline { get; } + + public virtual OpenAIResponseClient GetOpenAIResponseClient() + { + return Volatile.Read(ref _cachedOpenAIResponseClient) ?? Interlocked.CompareExchange(ref _cachedOpenAIResponseClient, new OpenAIResponseClient(Pipeline, _endpoint), null) ?? _cachedOpenAIResponseClient; + } } } diff --git a/src/Generated/OpenAIFileClient.RestClient.cs b/src/Generated/OpenAIFileClient.RestClient.cs index 75e133f8b..d47b1cc5b 100644 --- a/src/Generated/OpenAIFileClient.RestClient.cs +++ b/src/Generated/OpenAIFileClient.RestClient.cs @@ -14,7 +14,7 @@ public partial class OpenAIFileClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateCreateFileRequest(BinaryContent content, string contentType, RequestOptions options) + internal virtual PipelineMessage CreateCreateFileRequest(BinaryContent content, string contentType, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -31,7 +31,7 @@ internal PipelineMessage CreateCreateFileRequest(BinaryContent content, string c return message; } - internal PipelineMessage CreateListFilesRequest(string purpose, RequestOptions options) + internal virtual PipelineMessage CreateListFilesRequest(string purpose, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -50,7 +50,7 @@ internal PipelineMessage CreateListFilesRequest(string purpose, RequestOptions o return message; } - internal PipelineMessage CreateRetrieveFileRequest(string fileId, RequestOptions options) + internal virtual PipelineMessage CreateRetrieveFileRequest(string fileId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -66,7 +66,7 @@ internal PipelineMessage CreateRetrieveFileRequest(string fileId, RequestOptions return message; } - internal PipelineMessage CreateDeleteFileRequest(string fileId, RequestOptions options) + internal virtual PipelineMessage CreateDeleteFileRequest(string fileId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -82,7 +82,7 @@ internal PipelineMessage CreateDeleteFileRequest(string fileId, RequestOptions o return message; } - internal PipelineMessage CreateDownloadFileRequest(string fileId, RequestOptions options) + internal virtual PipelineMessage CreateDownloadFileRequest(string fileId, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/OpenAIFileClient.cs b/src/Generated/OpenAIFileClient.cs index bdab19cdd..24a40433e 100644 --- a/src/Generated/OpenAIFileClient.cs +++ b/src/Generated/OpenAIFileClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Files @@ -11,9 +10,6 @@ namespace OpenAI.Files public partial class OpenAIFileClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected OpenAIFileClient() { diff --git a/src/Generated/OpenAIModelClient.RestClient.cs b/src/Generated/OpenAIModelClient.RestClient.cs index a94220acb..f1d547240 100644 --- a/src/Generated/OpenAIModelClient.RestClient.cs +++ b/src/Generated/OpenAIModelClient.RestClient.cs @@ -13,7 +13,7 @@ public partial class OpenAIModelClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateListModelsRequest(RequestOptions options) + internal virtual PipelineMessage CreateListModelsRequest(RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -28,7 +28,7 @@ internal PipelineMessage CreateListModelsRequest(RequestOptions options) return message; } - internal PipelineMessage CreateRetrieveModelRequest(string model, RequestOptions options) + internal virtual PipelineMessage CreateRetrieveModelRequest(string model, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -44,7 +44,7 @@ internal PipelineMessage CreateRetrieveModelRequest(string model, RequestOptions return message; } - internal PipelineMessage CreateDeleteModelRequest(string model, RequestOptions options) + internal virtual PipelineMessage CreateDeleteModelRequest(string model, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; diff --git a/src/Generated/OpenAIModelClient.cs b/src/Generated/OpenAIModelClient.cs index 77aafebbd..2fa603b06 100644 --- a/src/Generated/OpenAIModelClient.cs +++ b/src/Generated/OpenAIModelClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.Models @@ -11,9 +10,6 @@ namespace OpenAI.Models public partial class OpenAIModelClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected OpenAIModelClient() { diff --git a/src/Generated/OpenAIModelFactory.cs b/src/Generated/OpenAIModelFactory.cs index ae8b08455..c540279cb 100644 --- a/src/Generated/OpenAIModelFactory.cs +++ b/src/Generated/OpenAIModelFactory.cs @@ -9,51 +9,16 @@ using OpenAI.Audio; using OpenAI.Chat; using OpenAI.Embeddings; -using OpenAI.Files; using OpenAI.Images; -using OpenAI.Models; using OpenAI.Moderations; using OpenAI.RealtimeConversation; +using OpenAI.Responses; using OpenAI.VectorStores; namespace OpenAI { internal static partial class OpenAIModelFactory { - public static OpenAIFile OpenAIFile(string id = default, DateTimeOffset createdAt = default, string filename = default, Files.FilePurpose purpose = default, InternalOpenAIFileObject @object = default, int? sizeInBytes = default, Files.FileStatus status = default, string statusDetails = default) - { - - return new OpenAIFile( - id, - createdAt, - filename, - purpose, - @object, - sizeInBytes, - status, - statusDetails, - additionalBinaryDataProperties: null); - } - - public static VectorStore VectorStore(string id = default, DateTimeOffset createdAt = default, string name = default, int usageBytes = default, VectorStoreFileCounts fileCounts = default, VectorStores.VectorStoreStatus status = default, DateTimeOffset? expiresAt = default, DateTimeOffset? lastActiveAt = default, IReadOnlyDictionary metadata = default, InternalVectorStoreObjectObject @object = default, VectorStoreExpirationPolicy expirationPolicy = default) - { - metadata ??= new ChangeTrackingDictionary(); - - return new VectorStore( - id, - createdAt, - name, - usageBytes, - fileCounts, - status, - expiresAt, - lastActiveAt, - metadata, - @object, - expirationPolicy, - additionalBinaryDataProperties: null); - } - public static VectorStoreFileCounts VectorStoreFileCounts(int inProgress = default, int completed = default, int failed = default, int cancelled = default, int total = default) { @@ -66,10 +31,10 @@ public static VectorStoreFileCounts VectorStoreFileCounts(int inProgress = defau additionalBinaryDataProperties: null); } - public static VectorStoreExpirationPolicy VectorStoreExpirationPolicy(VectorStores.VectorStoreExpirationAnchor anchor = default, int days = default) + public static VectorStoreExpirationPolicy VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor = default, int days = default) { - return new VectorStoreExpirationPolicy(anchor, days, serializedAdditionalRawData: null); + return new VectorStoreExpirationPolicy(anchor, days, additionalBinaryDataProperties: null); } public static VectorStoreCreationOptions VectorStoreCreationOptions(IEnumerable fileIds = default, string name = default, IDictionary metadata = default, VectorStoreExpirationPolicy expirationPolicy = default, FileChunkingStrategy chunkingStrategy = default) @@ -93,64 +58,140 @@ public static VectorStoreModificationOptions VectorStoreModificationOptions(stri return new VectorStoreModificationOptions(name, metadata, expirationPolicy, additionalBinaryDataProperties: null); } - public static VectorStoreDeletionResult VectorStoreDeletionResult(bool deleted = default, string vectorStoreId = default, InternalDeleteVectorStoreResponseObject @object = default) + public static VectorStoreFileAssociationError VectorStoreFileAssociationError(VectorStoreFileAssociationErrorCode code = default, string message = default) { - return new VectorStoreDeletionResult(deleted, vectorStoreId, @object, additionalBinaryDataProperties: null); + return new VectorStoreFileAssociationError(code, message, additionalBinaryDataProperties: null); } - public static VectorStoreFileAssociation VectorStoreFileAssociation(DateTimeOffset createdAt = default, string vectorStoreId = default, VectorStores.VectorStoreFileAssociationStatus status = default, VectorStoreFileAssociationError lastError = default, InternalVectorStoreFileObjectObject @object = default, string fileId = default, int size = default, FileChunkingStrategy chunkingStrategy = default) + public static FileChunkingStrategy FileChunkingStrategy(string @type = default) { - return new VectorStoreFileAssociation( + return new InternalUnknownFileChunkingStrategyResponseParamProxy(@type, additionalBinaryDataProperties: null); + } + + public static VectorStoreBatchFileJob VectorStoreBatchFileJob(DateTimeOffset createdAt = default, string vectorStoreId = default, VectorStoreBatchFileJobStatus status = default, string batchId = default, VectorStoreFileCounts fileCounts = default, object @object = default) + { + + return new VectorStoreBatchFileJob( createdAt, vectorStoreId, status, - lastError, + batchId, + fileCounts, @object, - fileId, - size, - chunkingStrategy, additionalBinaryDataProperties: null); } - public static VectorStoreFileAssociationError VectorStoreFileAssociationError(VectorStoreFileAssociationErrorCode code = default, string message = default) + public static ResponseReasoningOptions ResponseReasoningOptions(ResponseReasoningEffortLevel? reasoningEffortLevel = default, ResponseReasoningSummaryVerbosity? reasoningSummaryVerbosity = default) { - return new VectorStoreFileAssociationError(code, message, additionalBinaryDataProperties: null); + return new ResponseReasoningOptions(reasoningEffortLevel, reasoningSummaryVerbosity, additionalBinaryDataProperties: null); } - public static StaticFileChunkingStrategy StaticFileChunkingStrategy(InternalStaticChunkingStrategyDetails internalDetails = default) + public static ResponseTextOptions ResponseTextOptions(ResponseTextFormat responseFormat = default) { - return new StaticFileChunkingStrategy("static", additionalBinaryDataProperties: null, internalDetails); + return new ResponseTextOptions(responseFormat, additionalBinaryDataProperties: null); } - public static FileChunkingStrategy FileChunkingStrategy(string @type = default) + public static FileSearchToolRankingOptions FileSearchToolRankingOptions(FileSearchToolRanker? ranker = default, float? scoreThreshold = default) { - return new InternalUnknownFileChunkingStrategyResponseParamProxy(@type, additionalBinaryDataProperties: null); + return new FileSearchToolRankingOptions(ranker, scoreThreshold, additionalBinaryDataProperties: null); } - public static FileFromStoreRemovalResult FileFromStoreRemovalResult(string fileId = default, bool removed = default, InternalDeleteVectorStoreFileResponseObject @object = default) + public static WebSearchToolLocation WebSearchToolLocation(string @type = default) { - return new FileFromStoreRemovalResult(fileId, removed, @object, additionalBinaryDataProperties: null); + return new UnknownResponsesWebSearchLocation(@type, additionalBinaryDataProperties: null); } - public static VectorStoreBatchFileJob VectorStoreBatchFileJob(DateTimeOffset createdAt = default, string vectorStoreId = default, VectorStoreBatchFileJobStatus status = default, string batchId = default, VectorStoreFileCounts fileCounts = default, object @object = default) + public static ResponseContentPart ResponseContentPart(string kind = default) { - return new VectorStoreBatchFileJob( - createdAt, - vectorStoreId, - status, - batchId, - fileCounts, - @object, + return new UnknownResponsesContent(kind.ToResponseContentPartKind(), additionalBinaryDataProperties: null); + } + + public static ResponseMessageAnnotation ResponseMessageAnnotation(string kind = default) + { + + return new UnknownResponsesOutputTextAnnotation(kind.ToResponseMessageAnnotationKind(), additionalBinaryDataProperties: null); + } + + public static ComputerCallAction ComputerCallAction(string kind = default) + { + + return new UnknownResponsesComputerCallItemAction(kind.ToComputerCallActionKind(), additionalBinaryDataProperties: null); + } + + public static ComputerCallSafetyCheck ComputerCallSafetyCheck(string id = default, string code = default, string message = default) + { + + return new ComputerCallSafetyCheck(id, code, message, additionalBinaryDataProperties: null); + } + + public static FileSearchCallResult FileSearchCallResult(string fileId = default, string text = default, string filename = default, IDictionary attributes = default, float? score = default) + { + attributes ??= new ChangeTrackingDictionary(); + + return new FileSearchCallResult( + fileId, + text, + filename, + attributes, + score, additionalBinaryDataProperties: null); } + public static StreamingResponseUpdate StreamingResponseUpdate(string kind = default) + { + + return new UnknownResponsesResponseStreamEvent(new StreamingResponseUpdateKind(kind), additionalBinaryDataProperties: null); + } + + public static StreamingResponseErrorUpdate StreamingResponseErrorUpdate(string message = default, string code = default, string @param = default) + { + + return new StreamingResponseErrorUpdate(StreamingResponseUpdateKind.Error, additionalBinaryDataProperties: null, message, code, @param); + } + + public static ResponseError ResponseError(string code = default, string message = default) + { + + return new ResponseError(code, message, additionalBinaryDataProperties: null); + } + + public static ResponseIncompleteStatusDetails ResponseIncompleteStatusDetails(ResponseIncompleteStatusReason? reason = default) + { + + return new ResponseIncompleteStatusDetails(reason, additionalBinaryDataProperties: null); + } + + public static ResponseTokenUsage ResponseTokenUsage(int inputTokenCount = default, int outputTokenCount = default, int totalTokenCount = default, ResponseOutputTokenUsageDetails outputTokenDetails = default) + { + + return new ResponseTokenUsage(inputTokenCount, outputTokenCount, totalTokenCount, outputTokenDetails, additionalBinaryDataProperties: null); + } + + public static ResponseOutputTokenUsageDetails ResponseOutputTokenUsageDetails(int reasoningTokenCount = default) + { + + return new ResponseOutputTokenUsageDetails(reasoningTokenCount, additionalBinaryDataProperties: null); + } + + public static StreamingResponseTextAnnotationUpdate StreamingResponseTextAnnotationUpdate(string itemId = default, int outputIndex = default, int contentIndex = default, ResponseMessageAnnotation annotation = default) + { + + return new StreamingResponseTextAnnotationUpdate( + StreamingResponseUpdateKind.ResponseOutputTextAnnotationAdded, + additionalBinaryDataProperties: null, + itemId, + outputIndex, + contentIndex, + annotation); + } + public static ThreadCreationOptions ThreadCreationOptions(IDictionary metadata = default, ToolResources toolResources = default, IEnumerable internalMessages = default) { metadata ??= new ChangeTrackingDictionary(); @@ -187,24 +228,12 @@ public static ToolDefinition ToolDefinition(string @type = default) return new UnknownAssistantToolDefinition(@type, additionalBinaryDataProperties: null); } - public static FileSearchToolDefinition FileSearchToolDefinition(InternalAssistantToolsFileSearchFileSearch fileSearch = default) - { - - return new FileSearchToolDefinition("file_search", additionalBinaryDataProperties: null, fileSearch); - } - public static FileSearchRankingOptions FileSearchRankingOptions(FileSearchRanker? ranker = default, float scoreThreshold = default) { return new FileSearchRankingOptions(ranker, scoreThreshold, serializedAdditionalRawData: null); } - public static FunctionToolDefinition FunctionToolDefinition(string @type = default, InternalFunctionDefinition function = default) - { - - return new FunctionToolDefinition(@type, serializedAdditionalRawData: null, function); - } - public static FileSearchToolResources FileSearchToolResources(IEnumerable vectorStoreIds = default, IEnumerable newVectorStores = default) { vectorStoreIds ??= new ChangeTrackingList(); @@ -221,54 +250,6 @@ public static VectorStoreCreationHelper VectorStoreCreationHelper(IEnumerable tools = default, IReadOnlyDictionary metadata = default, RunTokenUsage usage = default, float? temperature = default, RunTruncationStrategy truncationStrategy = default, InternalRunObjectObject @object = default, AssistantResponseFormat responseFormat = default, ToolConstraint toolConstraint = default, float? nucleusSamplingFactor = default, bool? allowParallelToolCalls = default, int? maxInputTokenCount = default, int? maxOutputTokenCount = default, InternalRunRequiredAction internalRequiredAction = default) - { - tools ??= new ChangeTrackingList(); - metadata ??= new ChangeTrackingDictionary(); - - return new ThreadRun( - id, - createdAt, - threadId, - assistantId, - status, - lastError, - expiresAt, - startedAt, - cancelledAt, - failedAt, - completedAt, - incompleteDetails, - model, - instructions, - tools?.ToList(), - metadata, - usage, - temperature, - truncationStrategy, - @object, - responseFormat, - toolConstraint, - nucleusSamplingFactor, - allowParallelToolCalls, - maxInputTokenCount, - maxOutputTokenCount, - internalRequiredAction, - additionalBinaryDataProperties: null); - } - public static RunError RunError(RunErrorCode code = default, string message = default) { @@ -287,7 +268,7 @@ public static RunTokenUsage RunTokenUsage(int outputTokenCount = default, int in return new RunTokenUsage(outputTokenCount, inputTokenCount, totalTokenCount, additionalBinaryDataProperties: null); } - public static RunCreationOptions RunCreationOptions(string assistantId = default, bool? stream = default, AssistantResponseFormat responseFormat = default, string modelOverride = default, string instructionsOverride = default, string additionalInstructions = default, IEnumerable internalMessages = default, bool? allowParallelToolCalls = default, IEnumerable toolsOverride = default, IDictionary metadata = default, float? temperature = default, float? nucleusSamplingFactor = default, int? maxInputTokenCount = default, int? maxOutputTokenCount = default, RunTruncationStrategy truncationStrategy = default, ToolConstraint toolConstraint = default) + public static RunCreationOptions RunCreationOptions(string assistantId = default, bool? stream = default, AssistantResponseFormat responseFormat = default, string modelOverride = default, string instructionsOverride = default, string additionalInstructions = default, IEnumerable internalMessages = default, bool? allowParallelToolCalls = default, IEnumerable toolsOverride = default, IDictionary metadata = default, float? temperature = default, float? nucleusSamplingFactor = default, int? maxInputTokenCount = default, int? maxOutputTokenCount = default, RunTruncationStrategy truncationStrategy = default, ToolConstraint toolConstraint = default, ChatReasoningEffortLevel? reasoningEffortLevel = default) { internalMessages ??= new ChangeTrackingList(); toolsOverride ??= new ChangeTrackingList(); @@ -310,6 +291,7 @@ public static RunCreationOptions RunCreationOptions(string assistantId = default maxOutputTokenCount, truncationStrategy, toolConstraint, + reasoningEffortLevel, additionalBinaryDataProperties: null); } @@ -326,30 +308,6 @@ public static ToolOutput ToolOutput(string toolCallId = default, string output = return new ToolOutput(toolCallId, output, additionalBinaryDataProperties: null); } - public static RunStep RunStep(string id = default, DateTimeOffset createdAt = default, string assistantId = default, string threadId = default, string runId = default, RunStepStatus status = default, RunStepError lastError = default, DateTimeOffset? expiredAt = default, DateTimeOffset? cancelledAt = default, DateTimeOffset? failedAt = default, DateTimeOffset? completedAt = default, IReadOnlyDictionary metadata = default, RunStepTokenUsage usage = default, InternalRunStepObjectObject @object = default, Assistants.RunStepKind kind = default, RunStepDetails details = default) - { - metadata ??= new ChangeTrackingDictionary(); - - return new RunStep( - id, - createdAt, - assistantId, - threadId, - runId, - status, - lastError, - expiredAt, - cancelledAt, - failedAt, - completedAt, - metadata, - usage, - @object, - kind, - details, - additionalBinaryDataProperties: null); - } - public static RunStepDetails RunStepDetails(string @type = default) { @@ -375,7 +333,7 @@ public static RunStepFileSearchResult RunStepFileSearchResult(string fileId = de return new RunStepFileSearchResult(fileId, fileName, score, content?.ToList(), additionalBinaryDataProperties: null); } - public static RunStepFileSearchResultContent RunStepFileSearchResultContent(string text = default, Assistants.RunStepFileSearchResultContentKind kind = default) + public static RunStepFileSearchResultContent RunStepFileSearchResultContent(string text = default, RunStepFileSearchResultContentKind kind = default) { return new RunStepFileSearchResultContent(text, kind, additionalBinaryDataProperties: null); @@ -393,19 +351,6 @@ public static RunStepTokenUsage RunStepTokenUsage(int outputTokenCount = default return new RunStepTokenUsage(outputTokenCount, inputTokenCount, totalTokenCount, additionalBinaryDataProperties: null); } - public static AssistantThread AssistantThread(string id = default, DateTimeOffset createdAt = default, IReadOnlyDictionary metadata = default, InternalThreadObjectObject @object = default, ToolResources toolResources = default) - { - metadata ??= new ChangeTrackingDictionary(); - - return new AssistantThread( - id, - createdAt, - metadata, - @object, - toolResources, - additionalBinaryDataProperties: null); - } - public static ThreadModificationOptions ThreadModificationOptions(IDictionary metadata = default, ToolResources toolResources = default) { metadata ??= new ChangeTrackingDictionary(); @@ -413,33 +358,6 @@ public static ThreadModificationOptions ThreadModificationOptions(IDictionary tools = default, float? temperature = default, InternalRealtimeRequestSessionModel? model = default, ConversationTurnDetectionOptions turnDetectionOptions = default, ConversationInputTranscriptionOptions inputTranscriptionOptions = default, IEnumerable internalModalities = default, BinaryData internalToolChoice = default, BinaryData maxResponseOutputTokens = default) - { - tools ??= new ChangeTrackingList(); - internalModalities ??= new ChangeTrackingList(); - - return new ConversationSessionOptions( - instructions, - voice, - inputAudioFormat, - outputAudioFormat, - tools?.ToList(), - temperature, - model, - turnDetectionOptions, - inputTranscriptionOptions, - internalModalities?.ToList(), - internalToolChoice, - maxResponseOutputTokens, - additionalBinaryDataProperties: null); - } - public static ConversationInputTranscriptionOptions ConversationInputTranscriptionOptions(ConversationTranscriptionModel? model = default) { @@ -464,92 +382,40 @@ public static ConversationFunctionTool ConversationFunctionTool(ConversationTool return new ConversationFunctionTool(kind, serializedAdditionalRawData: null, name, description, parameters); } - public static ConversationItem ConversationItem(string @type = default, string id = default) - { - - return new UnknownRealtimeRequestItem(new InternalRealtimeItemType(@type), id, additionalBinaryDataProperties: null); - } - public static ConversationContentPart ConversationContentPart(string kind = default) { return new UnknownRealtimeContentPart(new ConversationContentPartKind(kind), additionalBinaryDataProperties: null); } - public static ConversationResponseOptions ConversationResponseOptions(string instructions = default, ConversationVoice? voice = default, ConversationAudioFormat? outputAudioFormat = default, IEnumerable tools = default, float? temperature = default, IDictionary metadata = default, ResponseConversationSelection? conversationSelection = default, RealtimeConversation.ConversationMaxTokensChoice maxOutputTokens = default, IEnumerable overrideItems = default, IEnumerable internalModalities = default, BinaryData internalToolChoice = default) - { - tools ??= new ChangeTrackingList(); - metadata ??= new ChangeTrackingDictionary(); - overrideItems ??= new ChangeTrackingList(); - internalModalities ??= new ChangeTrackingList(); - - return new ConversationResponseOptions( - instructions, - voice, - outputAudioFormat, - tools?.ToList(), - temperature, - metadata, - conversationSelection, - maxOutputTokens, - overrideItems?.ToList(), - internalModalities?.ToList(), - internalToolChoice, - additionalBinaryDataProperties: null); - } - public static ConversationUpdate ConversationUpdate(string eventId = default, string kind = default) { return new UnknownRealtimeServerEvent(eventId, kind.ToConversationUpdateKind(), additionalBinaryDataProperties: null); } - public static ConversationErrorUpdate ConversationErrorUpdate(string eventId = default, InternalRealtimeServerEventErrorError error = default) - { - - return new ConversationErrorUpdate(eventId, RealtimeConversation.ConversationUpdateKind.Error, additionalBinaryDataProperties: null, error); - } - - public static ConversationSessionStartedUpdate ConversationSessionStartedUpdate(string eventId = default, InternalRealtimeResponseSession internalSession = default) - { - - return new ConversationSessionStartedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.SessionStarted, additionalBinaryDataProperties: null, internalSession); - } - - public static ConversationSessionConfiguredUpdate ConversationSessionConfiguredUpdate(string eventId = default, InternalRealtimeResponseSession internalSession = default) - { - - return new ConversationSessionConfiguredUpdate(eventId, RealtimeConversation.ConversationUpdateKind.SessionConfigured, additionalBinaryDataProperties: null, internalSession); - } - public static ConversationInputAudioCommittedUpdate ConversationInputAudioCommittedUpdate(string eventId = default, string previousItemId = default, string itemId = default) { - return new ConversationInputAudioCommittedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.InputAudioCommitted, additionalBinaryDataProperties: null, previousItemId, itemId); + return new ConversationInputAudioCommittedUpdate(eventId, ConversationUpdateKind.InputAudioCommitted, additionalBinaryDataProperties: null, previousItemId, itemId); } public static ConversationInputAudioClearedUpdate ConversationInputAudioClearedUpdate(string eventId = default) { - return new ConversationInputAudioClearedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.InputAudioCleared, additionalBinaryDataProperties: null); + return new ConversationInputAudioClearedUpdate(eventId, ConversationUpdateKind.InputAudioCleared, additionalBinaryDataProperties: null); } public static ConversationInputSpeechStartedUpdate ConversationInputSpeechStartedUpdate(string eventId = default, string itemId = default, int audioStartMs = default) { - return new ConversationInputSpeechStartedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.InputSpeechStarted, additionalBinaryDataProperties: null, itemId, audioStartMs); + return new ConversationInputSpeechStartedUpdate(eventId, ConversationUpdateKind.InputSpeechStarted, additionalBinaryDataProperties: null, itemId, audioStartMs); } public static ConversationInputSpeechFinishedUpdate ConversationInputSpeechFinishedUpdate(string eventId = default, string itemId = default, int audioEndMs = default) { - return new ConversationInputSpeechFinishedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.InputSpeechStopped, additionalBinaryDataProperties: null, itemId, audioEndMs); - } - - public static ConversationItemCreatedUpdate ConversationItemCreatedUpdate(string eventId = default, string previousItemId = default, InternalRealtimeConversationResponseItem internalItem = default) - { - - return new ConversationItemCreatedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.ItemCreated, additionalBinaryDataProperties: null, previousItemId, internalItem); + return new ConversationInputSpeechFinishedUpdate(eventId, ConversationUpdateKind.InputSpeechStopped, additionalBinaryDataProperties: null, itemId, audioEndMs); } public static ConversationInputTranscriptionFinishedUpdate ConversationInputTranscriptionFinishedUpdate(string eventId = default, string itemId = default, int contentIndex = default, string transcript = default) @@ -557,31 +423,19 @@ public static ConversationInputTranscriptionFinishedUpdate ConversationInputTran return new ConversationInputTranscriptionFinishedUpdate( eventId, - RealtimeConversation.ConversationUpdateKind.InputTranscriptionFinished, + ConversationUpdateKind.InputTranscriptionFinished, additionalBinaryDataProperties: null, itemId, contentIndex, transcript); } - public static ConversationInputTranscriptionFailedUpdate ConversationInputTranscriptionFailedUpdate(string eventId = default, string itemId = default, int contentIndex = default, InternalRealtimeServerEventConversationItemInputAudioTranscriptionFailedError error = default) - { - - return new ConversationInputTranscriptionFailedUpdate( - eventId, - RealtimeConversation.ConversationUpdateKind.InputTranscriptionFailed, - additionalBinaryDataProperties: null, - itemId, - contentIndex, - error); - } - public static ConversationItemTruncatedUpdate ConversationItemTruncatedUpdate(string eventId = default, string itemId = default, int contentIndex = default, int audioEndMs = default) { return new ConversationItemTruncatedUpdate( eventId, - RealtimeConversation.ConversationUpdateKind.ItemTruncated, + ConversationUpdateKind.ItemTruncated, additionalBinaryDataProperties: null, itemId, contentIndex, @@ -591,19 +445,7 @@ public static ConversationItemTruncatedUpdate ConversationItemTruncatedUpdate(st public static ConversationItemDeletedUpdate ConversationItemDeletedUpdate(string eventId = default, string itemId = default) { - return new ConversationItemDeletedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.ItemDeleted, additionalBinaryDataProperties: null, itemId); - } - - public static ConversationResponseStartedUpdate ConversationResponseStartedUpdate(string eventId = default, InternalRealtimeResponse internalResponse = default) - { - - return new ConversationResponseStartedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.ResponseStarted, additionalBinaryDataProperties: null, internalResponse); - } - - public static ConversationStatusDetails ConversationStatusDetails(ConversationStatus statusKind = default, ConversationIncompleteReason? incompleteReason = default, InternalRealtimeResponseStatusDetailsError error = default) - { - - return new ConversationStatusDetails(statusKind, incompleteReason, error, additionalBinaryDataProperties: null); + return new ConversationItemDeletedUpdate(eventId, ConversationUpdateKind.ItemDeleted, additionalBinaryDataProperties: null, itemId); } public static ConversationTokenUsage ConversationTokenUsage(ConversationInputTokenUsageDetails inputTokenDetails = default, ConversationOutputTokenUsageDetails outputTokenDetails = default, int inputTokenCount = default, int outputTokenCount = default, int totalTokenCount = default) @@ -630,42 +472,12 @@ public static ConversationOutputTokenUsageDetails ConversationOutputTokenUsageDe return new ConversationOutputTokenUsageDetails(textTokenCount, audioTokenCount, additionalBinaryDataProperties: null); } - public static ConversationResponseFinishedUpdate ConversationResponseFinishedUpdate(string eventId = default, InternalRealtimeResponse internalResponse = default) - { - - return new ConversationResponseFinishedUpdate(eventId, RealtimeConversation.ConversationUpdateKind.ResponseFinished, additionalBinaryDataProperties: null, internalResponse); - } - - public static ConversationItemStreamingStartedUpdate ConversationItemStreamingStartedUpdate(string eventId = default, string responseId = default, int itemIndex = default, InternalRealtimeConversationResponseItem internalItem = default) - { - - return new ConversationItemStreamingStartedUpdate( - eventId, - RealtimeConversation.ConversationUpdateKind.ItemStreamingStarted, - additionalBinaryDataProperties: null, - responseId, - itemIndex, - internalItem); - } - - public static ConversationItemStreamingFinishedUpdate ConversationItemStreamingFinishedUpdate(string eventId = default, string responseId = default, int outputIndex = default, InternalRealtimeConversationResponseItem internalItem = default) - { - - return new ConversationItemStreamingFinishedUpdate( - eventId, - RealtimeConversation.ConversationUpdateKind.ItemStreamingFinished, - additionalBinaryDataProperties: null, - responseId, - outputIndex, - internalItem); - } - public static ConversationItemStreamingTextFinishedUpdate ConversationItemStreamingTextFinishedUpdate(string eventId = default, string responseId = default, string itemId = default, int outputIndex = default, int contentIndex = default, string text = default) { return new ConversationItemStreamingTextFinishedUpdate( eventId, - RealtimeConversation.ConversationUpdateKind.ItemStreamingPartTextFinished, + ConversationUpdateKind.ItemStreamingPartTextFinished, additionalBinaryDataProperties: null, responseId, itemId, @@ -679,7 +491,7 @@ public static ConversationItemStreamingAudioTranscriptionFinishedUpdate Conversa return new ConversationItemStreamingAudioTranscriptionFinishedUpdate( eventId, - RealtimeConversation.ConversationUpdateKind.ItemStreamingPartAudioTranscriptionFinished, + ConversationUpdateKind.ItemStreamingPartAudioTranscriptionFinished, additionalBinaryDataProperties: null, responseId, itemId, @@ -693,7 +505,7 @@ public static ConversationItemStreamingAudioFinishedUpdate ConversationItemStrea return new ConversationItemStreamingAudioFinishedUpdate( eventId, - RealtimeConversation.ConversationUpdateKind.ItemStreamingPartAudioFinished, + ConversationUpdateKind.ItemStreamingPartAudioFinished, additionalBinaryDataProperties: null, responseId, itemId, @@ -705,7 +517,7 @@ public static ConversationRateLimitsUpdate ConversationRateLimitsUpdate(string e { allDetails ??= new ChangeTrackingList(); - return new ConversationRateLimitsUpdate(eventId, RealtimeConversation.ConversationUpdateKind.RateLimitsUpdated, additionalBinaryDataProperties: null, allDetails?.ToList()); + return new ConversationRateLimitsUpdate(eventId, ConversationUpdateKind.RateLimitsUpdated, additionalBinaryDataProperties: null, allDetails?.ToList()); } public static ConversationRateLimitDetailsItem ConversationRateLimitDetailsItem(string name = default, int maximumCount = default, int remainingCount = default, TimeSpan timeUntilReset = default) @@ -727,49 +539,6 @@ public static ModerationResult ModerationResult(bool flagged = default) return new ModerationResult(flagged, additionalBinaryDataProperties: null); } - public static OpenAIModelCollection OpenAIModelCollection(InternalListModelsResponseObject @object = default, IEnumerable data = default) - { - data ??= new ChangeTrackingList(); - - return new OpenAIModelCollection(@object, data?.ToList(), serializedAdditionalRawData: null); - } - - public static OpenAIModel OpenAIModel(string id = default, string ownedBy = default, InternalModelObject @object = default, DateTimeOffset createdAt = default) - { - - return new OpenAIModel(id, ownedBy, @object, createdAt, additionalBinaryDataProperties: null); - } - - public static ModelDeletionResult ModelDeletionResult(bool deleted = default, string modelId = default, InternalDeleteModelResponseObject @object = default) - { - - return new ModelDeletionResult(deleted, modelId, @object, additionalBinaryDataProperties: null); - } - - public static ThreadMessage ThreadMessage(string id = default, DateTimeOffset createdAt = default, string threadId = default, MessageStatus status = default, MessageFailureDetails incompleteDetails = default, DateTimeOffset? completedAt = default, DateTimeOffset? incompleteAt = default, IEnumerable content = default, string assistantId = default, string runId = default, IReadOnlyDictionary metadata = default, InternalMessageObjectObject @object = default, Assistants.MessageRole role = default, IEnumerable attachments = default) - { - content ??= new ChangeTrackingList(); - metadata ??= new ChangeTrackingDictionary(); - attachments ??= new ChangeTrackingList(); - - return new ThreadMessage( - id, - createdAt, - threadId, - status, - incompleteDetails, - completedAt, - incompleteAt, - content?.ToList(), - assistantId, - runId, - metadata, - @object, - role, - attachments?.ToList(), - additionalBinaryDataProperties: null); - } - public static MessageFailureDetails MessageFailureDetails(MessageFailureReason reason = default) { @@ -783,12 +552,6 @@ public static MessageModificationOptions MessageModificationOptions(IDictionary< return new MessageModificationOptions(metadata, additionalBinaryDataProperties: null); } - public static MessageDeletionResult MessageDeletionResult(bool deleted = default, string messageId = default, InternalDeleteMessageResponseObject @object = default) - { - - return new MessageDeletionResult(deleted, messageId, @object, additionalBinaryDataProperties: null); - } - public static ImageGenerationOptions ImageGenerationOptions(GeneratedImageQuality? quality = default, GeneratedImageFormat? responseFormat = default, GeneratedImageSize? size = default, GeneratedImageStyle? style = default, InternalCreateImageRequestModel? model = default, string prompt = default, long? n = default, string endUserId = default) { @@ -845,50 +608,6 @@ public static ImageVariationOptions ImageVariationOptions(InternalCreateImageVar additionalBinaryDataProperties: null); } - public static OpenAIFileCollection OpenAIFileCollection(IEnumerable data = default, string @object = default, string firstId = default, string lastId = default, bool hasMore = default) - { - data ??= new ChangeTrackingList(); - - return new OpenAIFileCollection( - data?.ToList(), - @object, - firstId, - lastId, - hasMore, - serializedAdditionalRawData: null); - } - - public static FileDeletionResult FileDeletionResult(bool deleted = default, string fileId = default, InternalDeleteFileResponseObject @object = default) - { - - return new FileDeletionResult(deleted, fileId, @object, additionalBinaryDataProperties: null); - } - - public static EmbeddingGenerationOptions EmbeddingGenerationOptions(int? dimensions = default, BinaryData input = default, InternalCreateEmbeddingRequestModel model = default, InternalCreateEmbeddingRequestEncodingFormat? encodingFormat = default, string endUserId = default) - { - - return new EmbeddingGenerationOptions( - dimensions, - input, - model, - encodingFormat, - endUserId, - additionalBinaryDataProperties: null); - } - - public static OpenAIEmbeddingCollection OpenAIEmbeddingCollection(IEnumerable data = default, string model = default, InternalCreateEmbeddingResponseObject @object = default, EmbeddingTokenUsage usage = default) - { - data ??= new ChangeTrackingList(); - - return new OpenAIEmbeddingCollection(data?.ToList(), model, @object, usage, serializedAdditionalRawData: null); - } - - public static OpenAIEmbedding OpenAIEmbedding(int index = default, BinaryData embeddingProperty = default, InternalEmbeddingObject @object = default) - { - - return new OpenAIEmbedding(index, embeddingProperty, @object, serializedAdditionalRawData: null); - } - public static EmbeddingTokenUsage EmbeddingTokenUsage(int inputTokenCount = default, int totalTokenCount = default) { @@ -919,50 +638,6 @@ public static ChatInputTokenUsageDetails ChatInputTokenUsageDetails(int audioTok return new ChatInputTokenUsageDetails(audioTokenCount, cachedTokenCount, additionalBinaryDataProperties: null); } - public static ChatCompletionOptions ChatCompletionOptions(float? frequencyPenalty = default, float? presencePenalty = default, ChatResponseFormat responseFormat = default, float? temperature = default, float? topP = default, IEnumerable tools = default, IEnumerable messages = default, InternalCreateChatCompletionRequestModel? model = default, int? n = default, bool? stream = default, InternalChatCompletionStreamOptions streamOptions = default, bool? includeLogProbabilities = default, int? topLogProbabilityCount = default, IEnumerable stopSequences = default, IDictionary logitBiases = default, ChatToolChoice toolChoice = default, ChatFunctionChoice functionChoice = default, bool? allowParallelToolCalls = default, string endUserId = default, long? seed = default, int? deprecatedMaxTokens = default, int? maxOutputTokenCount = default, IEnumerable functions = default, IDictionary metadata = default, bool? storedOutputEnabled = default, ChatReasoningEffortLevel? reasoningEffortLevel = default, IEnumerable internalModalities = default, ChatAudioOptions audioOptions = default, ChatOutputPrediction outputPrediction = default, InternalCreateChatCompletionRequestServiceTier? serviceTier = default) - { - tools ??= new ChangeTrackingList(); - messages ??= new ChangeTrackingList(); - stopSequences ??= new ChangeTrackingList(); - logitBiases ??= new ChangeTrackingDictionary(); - functions ??= new ChangeTrackingList(); - metadata ??= new ChangeTrackingDictionary(); - internalModalities ??= new ChangeTrackingList(); - - return new ChatCompletionOptions( - frequencyPenalty, - presencePenalty, - responseFormat, - temperature, - topP, - tools?.ToList(), - messages?.ToList(), - model, - n, - stream, - streamOptions, - includeLogProbabilities, - topLogProbabilityCount, - stopSequences?.ToList(), - logitBiases, - toolChoice, - functionChoice, - allowParallelToolCalls, - endUserId, - seed, - deprecatedMaxTokens, - maxOutputTokenCount, - functions?.ToList(), - metadata, - storedOutputEnabled, - reasoningEffortLevel, - internalModalities?.ToList(), - audioOptions, - outputPrediction, - serviceTier, - additionalBinaryDataProperties: null); - } - public static ChatMessage ChatMessage(ChatMessageContent content = default, string role = default) { @@ -972,19 +647,19 @@ public static ChatMessage ChatMessage(ChatMessageContent content = default, stri public static SystemChatMessage SystemChatMessage(ChatMessageContent content = default, string participantName = default) { - return new SystemChatMessage(content, Chat.ChatMessageRole.System, additionalBinaryDataProperties: null, participantName); + return new SystemChatMessage(content, ChatMessageRole.System, additionalBinaryDataProperties: null, participantName); } public static DeveloperChatMessage DeveloperChatMessage(ChatMessageContent content = default, string participantName = default) { - return new DeveloperChatMessage(content, Chat.ChatMessageRole.Developer, additionalBinaryDataProperties: null, participantName); + return new DeveloperChatMessage(content, ChatMessageRole.Developer, additionalBinaryDataProperties: null, participantName); } public static UserChatMessage UserChatMessage(ChatMessageContent content = default, string participantName = default) { - return new UserChatMessage(content, Chat.ChatMessageRole.User, additionalBinaryDataProperties: null, participantName); + return new UserChatMessage(content, ChatMessageRole.User, additionalBinaryDataProperties: null, participantName); } public static AssistantChatMessage AssistantChatMessage(ChatMessageContent content = default, string refusal = default, string participantName = default, IEnumerable toolCalls = default, ChatFunctionCall functionCall = default, ChatOutputAudioReference outputAudioReference = default) @@ -993,7 +668,7 @@ public static AssistantChatMessage AssistantChatMessage(ChatMessageContent conte return new AssistantChatMessage( content, - Chat.ChatMessageRole.Assistant, + ChatMessageRole.Assistant, additionalBinaryDataProperties: null, refusal, participantName, @@ -1008,12 +683,6 @@ public static ChatOutputAudioReference ChatOutputAudioReference(string id = defa return new ChatOutputAudioReference(id, additionalBinaryDataProperties: null); } - public static ChatToolCall ChatToolCall(string id = default, InternalChatCompletionMessageToolCallFunction function = default, Chat.ChatToolCallKind kind = default) - { - - return new ChatToolCall(id, function, kind, additionalBinaryDataProperties: null); - } - public static ChatFunctionCall ChatFunctionCall(string functionName = default, BinaryData functionArguments = default) { @@ -1023,25 +692,13 @@ public static ChatFunctionCall ChatFunctionCall(string functionName = default, B public static ToolChatMessage ToolChatMessage(ChatMessageContent content = default, string toolCallId = default) { - return new ToolChatMessage(content, Chat.ChatMessageRole.Tool, additionalBinaryDataProperties: null, toolCallId); + return new ToolChatMessage(content, ChatMessageRole.Tool, additionalBinaryDataProperties: null, toolCallId); } public static FunctionChatMessage FunctionChatMessage(ChatMessageContent content = default, string functionName = default) { - return new FunctionChatMessage(content, Chat.ChatMessageRole.Function, additionalBinaryDataProperties: null, functionName); - } - - public static ChatOutputPrediction ChatOutputPrediction(string @type = default) - { - - return new InternalUnknownChatOutputPrediction(new InternalChatOutputPredictionKind(@type), additionalBinaryDataProperties: null); - } - - public static ChatAudioOptions ChatAudioOptions(ChatOutputAudioVoice outputAudioVoice = default, ChatOutputAudioFormat outputAudioFormat = default) - { - - return new ChatAudioOptions(outputAudioVoice, outputAudioFormat, additionalBinaryDataProperties: null); + return new FunctionChatMessage(content, ChatMessageRole.Function, additionalBinaryDataProperties: null, functionName); } public static ChatResponseFormat ChatResponseFormat(string @type = default) @@ -1050,10 +707,10 @@ public static ChatResponseFormat ChatResponseFormat(string @type = default) return new InternalUnknownChatResponseFormat(@type, additionalBinaryDataProperties: null); } - public static ChatTool ChatTool(InternalFunctionDefinition function = default, Chat.ChatToolKind kind = default) + public static ChatAudioOptions ChatAudioOptions(ChatOutputAudioVoice outputAudioVoice = default, ChatOutputAudioFormat outputAudioFormat = default) { - return new ChatTool(function, kind, additionalBinaryDataProperties: null); + return new ChatAudioOptions(outputAudioVoice, outputAudioFormat, additionalBinaryDataProperties: null); } public static ChatFunction ChatFunction(string functionName = default, string functionDescription = default, BinaryData functionParameters = default) @@ -1062,22 +719,6 @@ public static ChatFunction ChatFunction(string functionName = default, string fu return new ChatFunction(functionName, functionDescription, functionParameters, additionalBinaryDataProperties: null); } - public static ChatCompletion ChatCompletion(string id = default, string model = default, string systemFingerprint = default, ChatTokenUsage usage = default, InternalCreateChatCompletionResponseObject @object = default, InternalCreateChatCompletionResponseServiceTier? serviceTier = default, IEnumerable choices = default, DateTimeOffset createdAt = default) - { - choices ??= new ChangeTrackingList(); - - return new ChatCompletion( - id, - model, - systemFingerprint, - usage, - @object, - serviceTier, - choices?.ToList(), - createdAt, - additionalBinaryDataProperties: null); - } - public static ChatOutputAudio ChatOutputAudio(string id = default, DateTimeOffset expiresAt = default, string transcript = default, BinaryData audioBytes = default) { @@ -1097,7 +738,7 @@ public static ChatTokenTopLogProbabilityDetails ChatTokenTopLogProbabilityDetail return new ChatTokenTopLogProbabilityDetails(token, logProbability, utf8Bytes, additionalBinaryDataProperties: null); } - public static AssistantCreationOptions AssistantCreationOptions(string name = default, string description = default, string instructions = default, IDictionary metadata = default, float? temperature = default, string model = default, IEnumerable tools = default, ToolResources toolResources = default, AssistantResponseFormat responseFormat = default, float? nucleusSamplingFactor = default) + public static AssistantCreationOptions AssistantCreationOptions(string name = default, string description = default, string instructions = default, IDictionary metadata = default, float? temperature = default, string model = default, IEnumerable tools = default, ToolResources toolResources = default, AssistantResponseFormat responseFormat = default, float? nucleusSamplingFactor = default, ChatReasoningEffortLevel? reasoningEffortLevel = default) { metadata ??= new ChangeTrackingDictionary(); tools ??= new ChangeTrackingList(); @@ -1113,28 +754,7 @@ public static AssistantCreationOptions AssistantCreationOptions(string name = de toolResources, responseFormat, nucleusSamplingFactor, - additionalBinaryDataProperties: null); - } - - public static Assistant Assistant(string id = default, DateTimeOffset createdAt = default, string name = default, string description = default, string model = default, string instructions = default, IEnumerable tools = default, ToolResources toolResources = default, IReadOnlyDictionary metadata = default, float? temperature = default, InternalAssistantObjectObject @object = default, AssistantResponseFormat responseFormat = default, float? nucleusSamplingFactor = default) - { - tools ??= new ChangeTrackingList(); - metadata ??= new ChangeTrackingDictionary(); - - return new Assistant( - id, - createdAt, - name, - description, - model, - instructions, - tools?.ToList(), - toolResources, - metadata, - temperature, - @object, - responseFormat, - nucleusSamplingFactor, + reasoningEffortLevel, additionalBinaryDataProperties: null); } @@ -1151,7 +771,7 @@ public static CodeInterpreterToolResources CodeInterpreterToolResources(IEnumera return new CodeInterpreterToolResources(fileIds?.ToList(), additionalBinaryDataProperties: null); } - public static AssistantModificationOptions AssistantModificationOptions(string name = default, string description = default, string instructions = default, IDictionary metadata = default, float? temperature = default, string model = default, IEnumerable defaultTools = default, ToolResources toolResources = default, AssistantResponseFormat responseFormat = default, float? nucleusSamplingFactor = default) + public static AssistantModificationOptions AssistantModificationOptions(string name = default, string description = default, string instructions = default, IDictionary metadata = default, float? temperature = default, string model = default, IEnumerable defaultTools = default, ToolResources toolResources = default, AssistantResponseFormat responseFormat = default, float? nucleusSamplingFactor = default, ChatReasoningEffortLevel? reasoningEffortLevel = default) { metadata ??= new ChangeTrackingDictionary(); defaultTools ??= new ChangeTrackingList(); @@ -1167,54 +787,7 @@ public static AssistantModificationOptions AssistantModificationOptions(string n toolResources, responseFormat, nucleusSamplingFactor, - additionalBinaryDataProperties: null); - } - - public static AssistantDeletionResult AssistantDeletionResult(bool deleted = default, string assistantId = default, InternalDeleteAssistantResponseObject @object = default) - { - - return new AssistantDeletionResult(deleted, assistantId, @object, additionalBinaryDataProperties: null); - } - - public static SpeechGenerationOptions SpeechGenerationOptions(GeneratedSpeechFormat? responseFormat = default, InternalCreateSpeechRequestModel model = default, string input = default, GeneratedSpeechVoice voice = default, float? speedRatio = default) - { - - return new SpeechGenerationOptions( - responseFormat, - model, - input, - voice, - speedRatio, - additionalBinaryDataProperties: null); - } - - public static AudioTranscriptionOptions AudioTranscriptionOptions(string language = default, string prompt = default, AudioTranscriptionFormat? responseFormat = default, float? temperature = default, BinaryData @file = default, InternalCreateTranscriptionRequestModel model = default, IEnumerable internalTimestampGranularities = default) - { - internalTimestampGranularities ??= new ChangeTrackingList(); - - return new AudioTranscriptionOptions( - language, - prompt, - responseFormat, - temperature, - @file, - model, - internalTimestampGranularities?.ToList(), - additionalBinaryDataProperties: null); - } - - public static AudioTranscription AudioTranscription(string language = default, string text = default, IEnumerable words = default, IEnumerable segments = default, InternalCreateTranscriptionResponseVerboseJsonTask task = default, TimeSpan? duration = default) - { - words ??= new ChangeTrackingList(); - segments ??= new ChangeTrackingList(); - - return new AudioTranscription( - language, - text, - words?.ToList(), - segments?.ToList(), - task, - duration, + reasoningEffortLevel, additionalBinaryDataProperties: null); } @@ -1241,31 +814,6 @@ public static TranscribedSegment TranscribedSegment(int id = default, string tex additionalBinaryDataProperties: null); } - public static AudioTranslationOptions AudioTranslationOptions(string prompt = default, AudioTranslationFormat? responseFormat = default, float? temperature = default, BinaryData @file = default, InternalCreateTranslationRequestModel model = default) - { - - return new AudioTranslationOptions( - prompt, - responseFormat, - temperature, - @file, - model, - additionalBinaryDataProperties: null); - } - - public static AudioTranslation AudioTranslation(string language = default, string text = default, IEnumerable segments = default, InternalCreateTranslationResponseVerboseJsonTask task = default, TimeSpan? duration = default) - { - segments ??= new ChangeTrackingList(); - - return new AudioTranslation( - language, - text, - segments?.ToList(), - task, - duration, - additionalBinaryDataProperties: null); - } - public static AssistantResponseFormat AssistantResponseFormat(string @type = default) { @@ -1290,7 +838,7 @@ public static ChatMessageContent ChatMessageContent() return new ChatMessageContent(additionalBinaryDataProperties: null); } - public static ChatMessageContentPart ChatMessageContentPart(Chat.ChatMessageContentPartKind kind = default, string text = default, InternalChatCompletionRequestMessageContentPartImageImageUrl imageUri = default, string refusal = default, InternalChatCompletionRequestMessageContentPartAudioInputAudio inputAudio = default) + public static ChatMessageContentPart ChatMessageContentPart(ChatMessageContentPartKind kind = default, string text = default, InternalChatCompletionRequestMessageContentPartImageImageUrl imageUri = default, string refusal = default, InternalChatCompletionRequestMessageContentPartAudioInputAudio inputAudio = default) { return new ChatMessageContentPart( @@ -1314,28 +862,6 @@ public static StreamingChatFunctionCallUpdate StreamingChatFunctionCallUpdate(st return new StreamingChatFunctionCallUpdate(functionName, functionArgumentsUpdate, additionalBinaryDataProperties: null); } - public static StreamingChatToolCallUpdate StreamingChatToolCallUpdate(int index = default, InternalChatCompletionMessageToolCallChunkFunction function = default, Chat.ChatToolCallKind kind = default, string toolCallId = default) - { - - return new StreamingChatToolCallUpdate(index, function, kind, toolCallId, additionalBinaryDataProperties: null); - } - - public static StreamingChatCompletionUpdate StreamingChatCompletionUpdate(string model = default, string systemFingerprint = default, InternalCreateChatCompletionStreamResponseObject @object = default, string completionId = default, InternalCreateChatCompletionStreamResponseServiceTier? serviceTier = default, IEnumerable choices = default, DateTimeOffset createdAt = default, ChatTokenUsage usage = default) - { - choices ??= new ChangeTrackingList(); - - return new StreamingChatCompletionUpdate( - model, - systemFingerprint, - @object, - completionId, - serviceTier, - choices?.ToList(), - createdAt, - usage, - additionalBinaryDataProperties: null); - } - public static RunStepUpdateCodeInterpreterOutput RunStepUpdateCodeInterpreterOutput(string @type = default) { diff --git a/src/Generated/OpenAIResponseClient.RestClient.cs b/src/Generated/OpenAIResponseClient.RestClient.cs new file mode 100644 index 000000000..fad18255a --- /dev/null +++ b/src/Generated/OpenAIResponseClient.RestClient.cs @@ -0,0 +1,107 @@ +// + +#nullable disable + +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using OpenAI; + +namespace OpenAI.Responses +{ + public partial class OpenAIResponseClient + { + private static PipelineMessageClassifier _pipelineMessageClassifier200; + + private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); + + internal virtual PipelineMessage CreateCreateResponseRequest(BinaryContent content, string accept, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "POST"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/responses", false); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", accept); + request.Headers.Set("Content-Type", "application/json"); + request.Content = content; + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateGetResponseRequest(string responseId, IEnumerable includables, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "GET"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/responses/", false); + uri.AppendPath(responseId, true); + if (includables != null && !(includables is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined)) + { + foreach (var @param in includables) + { + uri.AppendQuery("include[]", @param, true); + } + } + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateListInputItemsRequest(string responseId, int? limit, string order, string after, string before, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "GET"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/responses/", false); + uri.AppendPath(responseId, true); + uri.AppendPath("/input_items", false); + if (limit != null) + { + uri.AppendQuery("limit", TypeFormatters.ConvertToString(limit, null), true); + } + if (order != null) + { + uri.AppendQuery("order", order, true); + } + if (after != null) + { + uri.AppendQuery("after", after, true); + } + if (before != null) + { + uri.AppendQuery("before", before, true); + } + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateDeleteResponseRequest(string responseId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "DELETE"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/responses/", false); + uri.AppendPath(responseId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + message.Apply(options); + return message; + } + } +} diff --git a/src/Generated/OpenAIResponseClient.cs b/src/Generated/OpenAIResponseClient.cs new file mode 100644 index 000000000..ff0f17fae --- /dev/null +++ b/src/Generated/OpenAIResponseClient.cs @@ -0,0 +1,26 @@ +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; + +namespace OpenAI.Responses +{ + public partial class OpenAIResponseClient + { + private readonly Uri _endpoint; + + protected OpenAIResponseClient() + { + } + + internal OpenAIResponseClient(ClientPipeline pipeline, Uri endpoint) + { + _endpoint = endpoint; + Pipeline = pipeline; + } + + public ClientPipeline Pipeline { get; } + } +} diff --git a/src/Generated/RealtimeConversationClient.cs b/src/Generated/RealtimeConversationClient.cs index 6f43538da..638a057da 100644 --- a/src/Generated/RealtimeConversationClient.cs +++ b/src/Generated/RealtimeConversationClient.cs @@ -3,7 +3,6 @@ #nullable disable using System; -using System.ClientModel; using System.ClientModel.Primitives; namespace OpenAI.RealtimeConversation @@ -11,19 +10,15 @@ namespace OpenAI.RealtimeConversation public partial class RealtimeConversationClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected RealtimeConversationClient() { } - internal RealtimeConversationClient(ClientPipeline pipeline, ApiKeyCredential keyCredential, Uri endpoint) + internal RealtimeConversationClient(ClientPipeline pipeline, Uri endpoint) { _endpoint = endpoint; Pipeline = pipeline; - _keyCredential = keyCredential; } public ClientPipeline Pipeline { get; } diff --git a/src/Generated/VectorStoreClient.RestClient.cs b/src/Generated/VectorStoreClient.RestClient.cs index 322a97d5f..1ff1b42cf 100644 --- a/src/Generated/VectorStoreClient.RestClient.cs +++ b/src/Generated/VectorStoreClient.RestClient.cs @@ -2,6 +2,7 @@ #nullable disable +using System.ClientModel; using System.ClientModel.Primitives; using OpenAI; @@ -13,7 +14,7 @@ public partial class VectorStoreClient private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 = PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); - internal PipelineMessage CreateListVectorStoresRequest(int? limit, string order, string after, string before, RequestOptions options) + internal virtual PipelineMessage CreateListVectorStoresRequest(int? limit, string order, string after, string before, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -40,11 +41,83 @@ internal PipelineMessage CreateListVectorStoresRequest(int? limit, string order, } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateListVectorStoreFilesRequest(string vectorStoreId, int? limit, string order, string after, string before, string filter, RequestOptions options) + internal virtual PipelineMessage CreateCreateVectorStoreRequest(BinaryContent content, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "POST"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores", false); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + request.Headers.Set("Content-Type", "application/json"); + request.Content = content; + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateGetVectorStoreRequest(string vectorStoreId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "GET"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateModifyVectorStoreRequest(string vectorStoreId, BinaryContent content, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "POST"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + request.Headers.Set("Content-Type", "application/json"); + request.Content = content; + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateDeleteVectorStoreRequest(string vectorStoreId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "DELETE"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateListVectorStoreFilesRequest(string vectorStoreId, int? limit, string order, string after, string before, string filter, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -77,11 +150,129 @@ internal PipelineMessage CreateListVectorStoreFilesRequest(string vectorStoreId, } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateCreateVectorStoreFileRequest(string vectorStoreId, BinaryContent content, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "POST"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files", false); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + request.Headers.Set("Content-Type", "application/json"); + request.Content = content; + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateGetVectorStoreFileRequest(string vectorStoreId, string fileId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "GET"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files/", false); + uri.AppendPath(fileId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateDeleteVectorStoreFileRequest(string vectorStoreId, string fileId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "DELETE"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files/", false); + uri.AppendPath(fileId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateCreateVectorStoreFileBatchRequest(string vectorStoreId, BinaryContent content, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "POST"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches", false); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + request.Headers.Set("Content-Type", "application/json"); + request.Content = content; + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateGetVectorStoreFileBatchRequest(string vectorStoreId, string batchId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "GET"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches/", false); + uri.AppendPath(batchId, true); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); + message.Apply(options); + return message; + } + + internal virtual PipelineMessage CreateCancelVectorStoreFileBatchRequest(string vectorStoreId, string batchId, RequestOptions options) + { + PipelineMessage message = Pipeline.CreateMessage(); + message.ResponseClassifier = PipelineMessageClassifier200; + PipelineRequest request = message.Request; + request.Method = "POST"; + ClientUriBuilder uri = new ClientUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches/", false); + uri.AppendPath(batchId, true); + uri.AppendPath("/cancel", false); + request.Uri = uri.ToUri(); + request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } - internal PipelineMessage CreateListFilesInVectorStoreBatchRequest(string vectorStoreId, string batchId, int? limit, string order, string after, string before, string filter, RequestOptions options) + internal virtual PipelineMessage CreateListFilesInVectorStoreBatchRequest(string vectorStoreId, string batchId, int? limit, string order, string after, string before, string filter, RequestOptions options) { PipelineMessage message = Pipeline.CreateMessage(); message.ResponseClassifier = PipelineMessageClassifier200; @@ -116,6 +307,7 @@ internal PipelineMessage CreateListFilesInVectorStoreBatchRequest(string vectorS } request.Uri = uri.ToUri(); request.Headers.Set("Accept", "application/json"); + request.Headers.Set("OpenAI-Beta", "assistants=v2"); message.Apply(options); return message; } diff --git a/src/Generated/VectorStoreClient.cs b/src/Generated/VectorStoreClient.cs index 975fb140c..5c2b03fb6 100644 --- a/src/Generated/VectorStoreClient.cs +++ b/src/Generated/VectorStoreClient.cs @@ -13,9 +13,6 @@ namespace OpenAI.VectorStores public partial class VectorStoreClient { private readonly Uri _endpoint; - private const string AuthorizationHeader = "Authorization"; - private readonly ApiKeyCredential _keyCredential; - private const string AuthorizationApiKeyPrefix = "Bearer"; protected VectorStoreClient() { @@ -27,7 +24,7 @@ public virtual ClientResult CreateVectorStore(BinaryContent content, RequestOpti { Argument.AssertNotNull(content, nameof(content)); - using PipelineMessage message = this.CreateCreateVectorStoreRequest(content, options); + using PipelineMessage message = CreateCreateVectorStoreRequest(content, options); return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options)); } @@ -35,7 +32,7 @@ public virtual async Task CreateVectorStoreAsync(BinaryContent con { Argument.AssertNotNull(content, nameof(content)); - using PipelineMessage message = this.CreateCreateVectorStoreRequest(content, options); + using PipelineMessage message = CreateCreateVectorStoreRequest(content, options); return ClientResult.FromResponse(await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false)); } } diff --git a/src/OpenAI.csproj b/src/OpenAI.csproj index b670b7905..d9d0b073b 100644 --- a/src/OpenAI.csproj +++ b/src/OpenAI.csproj @@ -9,7 +9,7 @@ Copyright (c) 2024 OpenAI (https://openai.com) 2.2.0 - beta.2 + beta.3 net8.0;net6.0;netstandard2.0 latest diff --git a/src/Custom/Chat/Streaming/InternalAsyncStreamingChatCompletionUpdateCollection.cs b/src/Utility/AsyncSseUpdateCollection.cs similarity index 55% rename from src/Custom/Chat/Streaming/InternalAsyncStreamingChatCompletionUpdateCollection.cs rename to src/Utility/AsyncSseUpdateCollection.cs index 847d8c89d..628331884 100644 --- a/src/Custom/Chat/Streaming/InternalAsyncStreamingChatCompletionUpdateCollection.cs +++ b/src/Utility/AsyncSseUpdateCollection.cs @@ -3,34 +3,62 @@ using System.ClientModel.Primitives; using System.Collections.Generic; using System.Net.ServerSentEvents; +using System.Runtime.CompilerServices; using System.Text.Json; using System.Threading; using System.Threading.Tasks; #nullable enable -namespace OpenAI.Chat; +namespace OpenAI; /// /// Implementation of collection abstraction over streaming chat updates. /// -internal class InternalAsyncStreamingChatCompletionUpdateCollection : AsyncCollectionResult +internal class AsyncSseUpdateCollection : AsyncCollectionResult { private readonly Func> _sendRequestAsync; + private readonly Func, IEnumerable> _eventDeserializerFunc; private readonly CancellationToken _cancellationToken; - public InternalAsyncStreamingChatCompletionUpdateCollection( + public AsyncSseUpdateCollection( Func> sendRequestAsync, + Func> jsonMultiDeserializerFunc, + CancellationToken cancellationToken) + : this( + sendRequestAsync, + DeserializeSseToMultipleViaJson(jsonMultiDeserializerFunc), + cancellationToken) + { + Argument.AssertNotNull(jsonMultiDeserializerFunc, nameof(jsonMultiDeserializerFunc)); + } + + public AsyncSseUpdateCollection( + Func> sendRequestAsync, + Func jsonSingleDeserializerFunc, + CancellationToken cancellationToken) + : this( + sendRequestAsync, + DeserializeSseToSingleViaJson(jsonSingleDeserializerFunc), + cancellationToken) + { + Argument.AssertNotNull(jsonSingleDeserializerFunc, nameof(jsonSingleDeserializerFunc)); + } + + public AsyncSseUpdateCollection( + Func> sendRequestAsync, + Func, IEnumerable> eventDeserializerFunc, CancellationToken cancellationToken) { Argument.AssertNotNull(sendRequestAsync, nameof(sendRequestAsync)); + Argument.AssertNotNull(eventDeserializerFunc, nameof(eventDeserializerFunc)); _sendRequestAsync = sendRequestAsync; + _eventDeserializerFunc = eventDeserializerFunc; _cancellationToken = cancellationToken; } public override ContinuationToken? GetContinuationToken(ClientResult page) - // Continuation is not supported for SSE streams. => null; @@ -41,16 +69,32 @@ public async override IAsyncEnumerable GetRawPagesAsync() yield return await _sendRequestAsync(); } - protected async override IAsyncEnumerable GetValuesFromPageAsync(ClientResult page) + protected async override IAsyncEnumerable GetValuesFromPageAsync(ClientResult page) { - await using IAsyncEnumerator enumerator = new AsyncStreamingChatUpdateEnumerator(page, _cancellationToken); + await using IAsyncEnumerator enumerator = new AsyncSseUpdateEnumerator(_eventDeserializerFunc, page, _cancellationToken); while (await enumerator.MoveNextAsync().ConfigureAwait(false)) { yield return enumerator.Current; } } - private sealed class AsyncStreamingChatUpdateEnumerator : IAsyncEnumerator + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static Func, IEnumerable> DeserializeSseToMultipleViaJson( + Func> jsonDeserializationFunc) + { + return (item) => + { + using JsonDocument document = JsonDocument.Parse(item.Data); + return jsonDeserializationFunc.Invoke(document.RootElement, ModelSerializationExtensions.WireOptions); + }; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static Func, IEnumerable> DeserializeSseToSingleViaJson( + Func jsonSingleDeserializationFunc) + => DeserializeSseToMultipleViaJson((e, o) => [jsonSingleDeserializationFunc.Invoke(e, o)]); + + private sealed class AsyncSseUpdateEnumerator : IAsyncEnumerator { private static ReadOnlySpan TerminalData => "[DONE]"u8; @@ -65,27 +109,31 @@ private sealed class AsyncStreamingChatUpdateEnumerator : IAsyncEnumerator>? _events; - private IEnumerator? _updates; + private IEnumerator? _updates; + private readonly Func, IEnumerable> _deserializerFunc; - private StreamingChatCompletionUpdate? _current; + private U? _current; private bool _started; - public AsyncStreamingChatUpdateEnumerator(ClientResult page, CancellationToken cancellationToken) + public AsyncSseUpdateEnumerator( + Func, IEnumerable> deserializerFunc, + ClientResult page, + CancellationToken cancellationToken) { Argument.AssertNotNull(page, nameof(page)); + _deserializerFunc = deserializerFunc; _response = page.GetRawResponse(); _cancellationToken = cancellationToken; } - StreamingChatCompletionUpdate IAsyncEnumerator.Current - => _current!; + U IAsyncEnumerator.Current => _current!; - async ValueTask IAsyncEnumerator.MoveNextAsync() + async ValueTask IAsyncEnumerator.MoveNextAsync() { if (_events is null && _started) { - throw new ObjectDisposedException(nameof(AsyncStreamingChatUpdateEnumerator)); + throw new ObjectDisposedException(nameof(AsyncSseUpdateEnumerator)); } _cancellationToken.ThrowIfCancellationRequested(); @@ -106,9 +154,9 @@ async ValueTask IAsyncEnumerator.MoveNextAs return false; } - using JsonDocument doc = JsonDocument.Parse(_events.Current.Data); - List updates = [StreamingChatCompletionUpdate.DeserializeStreamingChatCompletionUpdate(doc.RootElement, ModelSerializationExtensions.WireOptions)]; - _updates = updates.GetEnumerator(); + _updates = _deserializerFunc + .Invoke(_events.Current) + .GetEnumerator(); if (_updates.MoveNext()) { diff --git a/src/Utility/CustomSerializationHelpers.cs b/src/Utility/CustomSerializationHelpers.cs index bcf1ae805..ce7b1d7f0 100644 --- a/src/Utility/CustomSerializationHelpers.cs +++ b/src/Utility/CustomSerializationHelpers.cs @@ -150,4 +150,18 @@ internal static void WriteOptionalCollection(this Utf8JsonWriter writer, Read writer.WriteEndArray(); } } + + internal static void WriteFirstObject(this Utf8JsonWriter writer, ModelReaderWriterOptions options, params T[] values) + where T : class, IJsonModel + { + foreach (T value in values) + { + if (value is not null) + { + writer.WriteObjectValue(value, options); + break; + } + } + + } } \ No newline at end of file diff --git a/src/Utility/Generator/CodeGenClientAttribute.cs b/src/Utility/Generator/CodeGenClientAttribute.cs deleted file mode 100644 index e46edc05f..000000000 --- a/src/Utility/Generator/CodeGenClientAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -#nullable enable - -using System; - -namespace OpenAI; - -[AttributeUsage(AttributeTargets.Class)] -internal sealed class CodeGenClientAttribute : CodeGenTypeAttribute -{ - public Type? ParentClient { get; set; } - - public CodeGenClientAttribute(string originalName) : base(originalName) - { - } -} \ No newline at end of file diff --git a/src/Utility/Generator/CodeGenMemberAttribute.cs b/src/Utility/Generator/CodeGenMemberAttribute.cs deleted file mode 100644 index 00bee60c4..000000000 --- a/src/Utility/Generator/CodeGenMemberAttribute.cs +++ /dev/null @@ -1,17 +0,0 @@ -#nullable enable - -using System; - -namespace OpenAI; - -[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] -internal sealed class CodeGenMemberAttribute : CodeGenTypeAttribute -{ - public CodeGenMemberAttribute() : base(null) - { - } - - public CodeGenMemberAttribute(string originalName) : base(originalName) - { - } -} \ No newline at end of file diff --git a/src/Utility/Generator/CodeGenModelAttribute.cs b/src/Utility/Generator/CodeGenModelAttribute.cs deleted file mode 100644 index a015f0b6a..000000000 --- a/src/Utility/Generator/CodeGenModelAttribute.cs +++ /dev/null @@ -1,27 +0,0 @@ -#nullable enable - -using System; - -namespace OpenAI; - -[AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct)] -internal sealed class CodeGenModelAttribute : CodeGenTypeAttribute -{ - /// - /// Gets or sets a coma separated list of additional model usage modes. Allowed values: model, error, intput, output. - /// - public string[]? Usage { get; set; } - - /// - /// Gets or sets a coma separated list of additional model serialization formats. - /// - public string[]? Formats { get; set; } - - public CodeGenModelAttribute() : base(null) - { - } - - public CodeGenModelAttribute(string originalName) : base(originalName) - { - } -} \ No newline at end of file diff --git a/src/Utility/Generator/CodeGenSerializationAttribute.cs b/src/Utility/Generator/CodeGenSerializationAttribute.cs deleted file mode 100644 index a9693b571..000000000 --- a/src/Utility/Generator/CodeGenSerializationAttribute.cs +++ /dev/null @@ -1,53 +0,0 @@ -#nullable enable - -using System; - -namespace OpenAI; - -[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true, Inherited = true)] -internal sealed class CodeGenSerializationAttribute : Attribute -{ - /// - /// Gets or sets the property name which these hooks should apply to - /// - public string? PropertyName { get; set; } - /// - /// Gets or sets the serialization path of the property in the JSON - /// - public string[]? SerializationPath { get; } - /// - /// Gets or sets the method name to use when serializing the property value (property name excluded) - /// The signature of the serialization hook method must be or compatible with when invoking: - /// private void SerializeHook(Utf8JsonWriter writer); - /// - public string? SerializationValueHook { get; set; } - /// - /// Gets or sets the method name to use when deserializing the property value from the JSON - /// private static void DeserializationHook(JsonProperty property, ref TypeOfTheProperty propertyValue); // if the property is required - /// private static void DeserializationHook(JsonProperty property, ref Optional<TypeOfTheProperty> propertyValue); // if the property is optional - /// - public string? DeserializationValueHook { get; set; } - /// - /// Gets or sets the method name to use when serializing the property value (property name excluded) - /// The signature of the serialization hook method must be or compatible with when invoking: - /// private void SerializeHook(StringBuilder builder); - /// - public string? BicepSerializationValueHook { get; set; } - - public CodeGenSerializationAttribute(string propertyName) - { - PropertyName = propertyName; - } - - public CodeGenSerializationAttribute(string propertyName, string serializationName) - { - PropertyName = propertyName; - SerializationPath = new[] { serializationName }; - } - - public CodeGenSerializationAttribute(string propertyName, string[] serializationPath) - { - PropertyName = propertyName; - SerializationPath = serializationPath; - } -} \ No newline at end of file diff --git a/src/Utility/Generator/CodeGenSuppressAttribute.cs b/src/Utility/Generator/CodeGenSuppressAttribute.cs deleted file mode 100644 index 8852cbc89..000000000 --- a/src/Utility/Generator/CodeGenSuppressAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace OpenAI; - -[AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct, AllowMultiple = true)] -internal sealed class CodeGenSuppressAttribute : Attribute -{ - public string Member { get; } - public Type[] Parameters { get; } - - public CodeGenSuppressAttribute(string member, params Type[] parameters) - { - Member = member; - Parameters = parameters; - } -} \ No newline at end of file diff --git a/src/Utility/Generator/CodeGenTypeAttribute.cs b/src/Utility/Generator/CodeGenTypeAttribute.cs deleted file mode 100644 index 65aee7afc..000000000 --- a/src/Utility/Generator/CodeGenTypeAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -#nullable enable - -using System; - -namespace OpenAI; - -[AttributeUsage(AttributeTargets.Class)] -internal class CodeGenTypeAttribute : Attribute -{ - public string? OriginalName { get; } - - public CodeGenTypeAttribute(string? originalName) - { - OriginalName = originalName; - } -} \ No newline at end of file diff --git a/src/Utility/MultipartFormDataBinaryContent.cs b/src/Utility/MultipartFormDataBinaryContent.cs deleted file mode 100644 index a1d04afdc..000000000 --- a/src/Utility/MultipartFormDataBinaryContent.cs +++ /dev/null @@ -1,170 +0,0 @@ -using System; -using System.ClientModel; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.Net.Http; -using System.Net.Http.Headers; -using System.Threading; -using System.Threading.Tasks; - -namespace OpenAI; - -internal class MultipartFormDataBinaryContent : BinaryContent -{ - private readonly MultipartFormDataContent _multipartContent; - - private const int BoundaryLength = 70; - private const string BoundaryValues = "0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"; - - public MultipartFormDataBinaryContent() - { - _multipartContent = new MultipartFormDataContent(CreateBoundary()); - } - - public string ContentType - { - get - { - Debug.Assert(_multipartContent.Headers.ContentType is not null); - - return _multipartContent.Headers.ContentType!.ToString(); - } - } - - internal HttpContent HttpContent => _multipartContent; - - public void Add(Stream stream, string name, string fileName = default, string contentType = null) - { - Argument.AssertNotNull(stream, nameof(stream)); - - StreamContent content = new(stream); - if (contentType is not null) - { - content.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType); - } - Add(content, name, fileName); - } - - public void Add(string content, string name, string fileName = default) - { - Add(new StringContent(content), name, fileName); - } - - public void Add(int content, string name, string fileName = default) - { - // https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings#GFormatString - string value = content.ToString("G", CultureInfo.InvariantCulture); - Add(new StringContent(value), name, fileName); - } - - public void Add(double content, string name, string fileName = default) - { - // https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings#GFormatString - string value = content.ToString("G", CultureInfo.InvariantCulture); - Add(new StringContent(value), name, fileName); - } - - public void Add(byte[] content, string name, string fileName = default) - { - Add(new ByteArrayContent(content), name, fileName); - } - - public void Add(BinaryData content, string name, string fileName = default) - { - Add(new ByteArrayContent(content.ToArray()), name, fileName); - } - - private void Add(HttpContent content, string name, string fileName) - { - Argument.AssertNotNull(content, nameof(content)); - Argument.AssertNotNull(name, nameof(name)); - - if (fileName is not null) - { - _multipartContent.Add(content, name, fileName); - } - else - { - _multipartContent.Add(content, name); - } - } - -#if NET6_0_OR_GREATER - private static string CreateBoundary() => - string.Create(BoundaryLength, 0, (chars, _) => - { - Span random = stackalloc byte[BoundaryLength]; - Random.Shared.NextBytes(random); - - for (int i = 0; i < chars.Length; i++) - { - chars[i] = BoundaryValues[random[i] % BoundaryValues.Length]; - } - }); -#else - private static readonly Random _random = new(); - - private static string CreateBoundary() - { - Span chars = stackalloc char[BoundaryLength]; - - byte[] random = new byte[BoundaryLength]; - lock (_random) - { - _random.NextBytes(random); - } - - // Instead of `% BoundaryValues.Length` as is used above, use a mask to achieve the same result. - // `% BoundaryValues.Length` is optimized to the equivalent on .NET Core but not on .NET Framework. - const int Mask = 255 >> 2; - Debug.Assert(BoundaryValues.Length - 1 == Mask); - - for (int i = 0; i < chars.Length; i++) - { - chars[i] = BoundaryValues[random[i] & Mask]; - } - - return chars.ToString(); - } -#endif - - public override bool TryComputeLength(out long length) - { - // We can't call the protected method on HttpContent - - if (_multipartContent.Headers.ContentLength is long contentLength) - { - length = contentLength; - return true; - } - - length = 0; - return false; - } - - public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) - { -#if NET5_0_OR_GREATER - _multipartContent.CopyTo(stream, default, cancellationToken); -#else - // TODO: polyfill sync-over-async for netstandard2.0 for Azure clients. - // Tracked by https://github.com/Azure/azure-sdk-for-net/issues/42674 - _multipartContent.CopyToAsync(stream).GetAwaiter().GetResult(); -#endif - } - - public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) - { -#if NET5_0_OR_GREATER - await _multipartContent.CopyToAsync(stream, cancellationToken).ConfigureAwait(false); -#else - await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); -#endif - } - - public override void Dispose() - { - _multipartContent.Dispose(); - } -} diff --git a/src/Custom/Chat/Streaming/InternalStreamingChatCompletionUpdateCollection.cs b/src/Utility/SseUpdateCollection.cs similarity index 57% rename from src/Custom/Chat/Streaming/InternalStreamingChatCompletionUpdateCollection.cs rename to src/Utility/SseUpdateCollection.cs index dff069d7a..ccc140aa7 100644 --- a/src/Custom/Chat/Streaming/InternalStreamingChatCompletionUpdateCollection.cs +++ b/src/Utility/SseUpdateCollection.cs @@ -9,23 +9,52 @@ #nullable enable -namespace OpenAI.Chat; +namespace OpenAI; /// -/// Implementation of collection abstraction over streaming chat updates. +/// Implementation of collection abstraction over streaming updates. /// -internal class InternalStreamingChatCompletionUpdateCollection : CollectionResult +internal class SseUpdateCollection : CollectionResult { - private readonly Func _sendRequest; + private readonly Func _sendRequestFunc; + private readonly Func, IEnumerable> _eventDeserializerFunc; private readonly CancellationToken _cancellationToken; - public InternalStreamingChatCompletionUpdateCollection( - Func sendRequest, + public SseUpdateCollection( + Func sendRequestFunc, + Func> jsonMultiDeserializerFunc, + CancellationToken cancellationToken) + : this( + sendRequestFunc, + AsyncSseUpdateCollection.DeserializeSseToMultipleViaJson(jsonMultiDeserializerFunc), + cancellationToken) + + { + Argument.AssertNotNull(jsonMultiDeserializerFunc, nameof(jsonMultiDeserializerFunc)); + } + + public SseUpdateCollection( + Func sendRequestFunc, + Func jsonSingleDeserializerFunc, + CancellationToken cancellationToken) + : this( + sendRequestFunc, + AsyncSseUpdateCollection.DeserializeSseToSingleViaJson(jsonSingleDeserializerFunc), + cancellationToken) + { + Argument.AssertNotNull(jsonSingleDeserializerFunc, nameof(jsonSingleDeserializerFunc)); + } + + public SseUpdateCollection( + Func sendRequestFunc, + Func, IEnumerable> eventDeserializerFunc, CancellationToken cancellationToken) { - Argument.AssertNotNull(sendRequest, nameof(sendRequest)); + Argument.AssertNotNull(sendRequestFunc, nameof(sendRequestFunc)); + Argument.AssertNotNull(eventDeserializerFunc, nameof(eventDeserializerFunc)); - _sendRequest = sendRequest; + _sendRequestFunc = sendRequestFunc; + _eventDeserializerFunc = eventDeserializerFunc; _cancellationToken = cancellationToken; } @@ -37,19 +66,19 @@ public override IEnumerable GetRawPages() { // We don't currently support resuming a dropped connection from the // last received event, so the response collection has a single element. - yield return _sendRequest(); + yield return _sendRequestFunc(); } - protected override IEnumerable GetValuesFromPage(ClientResult page) + protected override IEnumerable GetValuesFromPage(ClientResult page) { - using IEnumerator enumerator = new StreamingChatUpdateEnumerator(page, _cancellationToken); + using IEnumerator enumerator = new SseUpdateEnumerator(_eventDeserializerFunc, page, _cancellationToken); while (enumerator.MoveNext()) { yield return enumerator.Current; } } - private sealed class StreamingChatUpdateEnumerator : IEnumerator + private sealed class SseUpdateEnumerator : IEnumerator { private static ReadOnlySpan TerminalData => "[DONE]"u8; @@ -64,21 +93,26 @@ private sealed class StreamingChatUpdateEnumerator : IEnumerator>? _events; - private IEnumerator? _updates; + private IEnumerator? _updates; + private readonly Func, IEnumerable> _eventDeserializerFunc; - private StreamingChatCompletionUpdate? _current; + private U? _current; private bool _started; - public StreamingChatUpdateEnumerator(ClientResult page, CancellationToken cancellationToken) + public SseUpdateEnumerator( + Func, IEnumerable> eventDeserializerFunc, + ClientResult page, + CancellationToken cancellationToken) { + Argument.AssertNotNull(eventDeserializerFunc, nameof(eventDeserializerFunc)); Argument.AssertNotNull(page, nameof(page)); + _eventDeserializerFunc = eventDeserializerFunc; _response = page.GetRawResponse(); _cancellationToken = cancellationToken; } - StreamingChatCompletionUpdate IEnumerator.Current - => _current!; + U IEnumerator.Current => _current!; object IEnumerator.Current => _current!; @@ -86,7 +120,7 @@ public bool MoveNext() { if (_events is null && _started) { - throw new ObjectDisposedException(nameof(StreamingChatUpdateEnumerator)); + throw new ObjectDisposedException(typeof(U).Name); } _cancellationToken.ThrowIfCancellationRequested(); @@ -107,9 +141,7 @@ public bool MoveNext() return false; } - using JsonDocument doc = JsonDocument.Parse(_events.Current.Data); - List updates = [StreamingChatCompletionUpdate.DeserializeStreamingChatCompletionUpdate(doc.RootElement, ModelSerializationExtensions.WireOptions)]; - _updates = updates.GetEnumerator(); + _updates = _eventDeserializerFunc.Invoke(_events.Current).GetEnumerator(); if (_updates.MoveNext()) { diff --git a/tests/Assets/images_screenshot_with_save_1024_768.png b/tests/Assets/images_screenshot_with_save_1024_768.png new file mode 100644 index 000000000..5bf9a1e85 Binary files /dev/null and b/tests/Assets/images_screenshot_with_save_1024_768.png differ diff --git a/tests/Chat/ChatSmokeTests.cs b/tests/Chat/ChatSmokeTests.cs index 237c66c4d..daf8a3492 100644 --- a/tests/Chat/ChatSmokeTests.cs +++ b/tests/Chat/ChatSmokeTests.cs @@ -75,13 +75,6 @@ public async Task SmokeTest() Assert.That(completion.CreatedAt.ToUnixTimeSeconds, Is.EqualTo(mockCreated)); Assert.That(completion.Role, Is.EqualTo(ChatMessageRole.Assistant)); Assert.That(completion.Content[0].Text, Is.EqualTo("Hi there, user!")); - - var data = (IDictionary) - typeof(ChatCompletion) - .GetProperty("SerializedAdditionalRawData", BindingFlags.Instance | BindingFlags.NonPublic) - .GetValue(completion); - Assert.That(data, Is.Not.Null); - Assert.That(data.Count, Is.GreaterThan(0)); } [Test] diff --git a/tests/Chat/ChatTests.cs b/tests/Chat/ChatTests.cs index 9635da236..94368169b 100644 --- a/tests/Chat/ChatTests.cs +++ b/tests/Chat/ChatTests.cs @@ -1042,5 +1042,22 @@ public async Task ChatMetadata() options); } + [Test] + public async Task WebSearchWorks() + { + ChatClient client = GetTestClient("gpt-4o-search-preview"); + + ChatCompletionOptions options = new() + { + WebSearchOptions = new(), + }; + + ChatCompletion completion = await client.CompleteChatAsync( + ["What was a positive news story from today?"], + options); + + Assert.That(completion.Annotations, Has.Count.GreaterThan(0)); + } + private static ChatClient GetTestClient(string overrideModel = null) => GetTestClient(TestScenario.Chat, overrideModel); } diff --git a/tests/Files/Files.UploadsTests.cs b/tests/Files/Files.UploadsTests.cs index a53c445e2..4a8517d7a 100644 --- a/tests/Files/Files.UploadsTests.cs +++ b/tests/Files/Files.UploadsTests.cs @@ -65,7 +65,7 @@ public async Task AddUploadPartWorks() { OpenAIFileClient fileClient = GetTestClient(); UploadDetails uploadDetails = await CreateTestUploadAsync(fileClient); - using MultipartFormDataBinaryContent content = new(); + using MultiPartFormDataBinaryContent content = new(); content.Add([1, 2, 3, 4], "data", "data", "application/octet-stream"); @@ -88,8 +88,8 @@ public async Task CompleteUploadWorks() { OpenAIFileClient fileClient = GetTestClient(); UploadDetails createdUploadDetails = await CreateTestUploadAsync(fileClient); - using MultipartFormDataBinaryContent firstPartContent = new(); - using MultipartFormDataBinaryContent secondPartContent = new(); + using MultiPartFormDataBinaryContent firstPartContent = new(); + using MultiPartFormDataBinaryContent secondPartContent = new(); firstPartContent.Add([1, 2, 3, 4], "data", "data", "application/octet-stream"); secondPartContent.Add([5, 6, 7, 8], "data", "data", "application/octet-stream"); @@ -182,7 +182,7 @@ private async Task CreateTestUploadAsync(OpenAIFileClient fileCli return GetUploadDetails(jsonDocument); } - private async Task AddTestUploadPartAsync(OpenAIFileClient fileClient, string uploadId, MultipartFormDataBinaryContent content) + private async Task AddTestUploadPartAsync(OpenAIFileClient fileClient, string uploadId, MultiPartFormDataBinaryContent content) { ClientResult result = await fileClient.AddUploadPartAsync(uploadId, content, content.ContentType); BinaryData response = result.GetRawResponse().Content; diff --git a/tests/Files/FilesTests.cs b/tests/Files/FilesTests.cs index 601ef9d80..e92c335d0 100644 --- a/tests/Files/FilesTests.cs +++ b/tests/Files/FilesTests.cs @@ -3,6 +3,8 @@ using OpenAI.Tests.Utility; using System; using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; @@ -22,6 +24,18 @@ public FilesTests(bool isAsync) : base(isAsync) { } + [OneTimeTearDown] + public void TearDown() + { + OpenAIFileClient client = GetTestClient(); + + RequestOptions noThrowOptions = new() { ErrorOptions = ClientErrorBehaviors.NoThrow }; + foreach (string fileId in FileIdsForCleanup) + { + _ = client.DeleteFile(fileId, noThrowOptions); + } + } + [Test] public async Task ListFiles() { @@ -40,8 +54,11 @@ public async Task ListFiles() try { uploadedFile1 = await client.UploadFileAsync(file1, filename, FileUploadPurpose.Assistants); + Validate(uploadedFile1); uploadedFile2 = await client.UploadFileAsync(file2, filename, FileUploadPurpose.Assistants); + Validate(uploadedFile2); uploadedVisionFile = await client.UploadFileAsync(visionFilePath, FileUploadPurpose.Vision); + Validate(uploadedVisionFile); fileInfoCollection = IsAsync ? await client.GetFilesAsync(FilePurpose.Assistants) @@ -135,12 +152,14 @@ public async Task UploadFile(FileSourceKind fileSourceKind) fileInfo = IsAsync ? await client.UploadFileAsync(file, filename, FileUploadPurpose.Vision) : client.UploadFile(file, filename, FileUploadPurpose.Vision); + Validate(fileInfo); } else if (fileSourceKind == FileSourceKind.UsingFilePath) { fileInfo = IsAsync ? await client.UploadFileAsync(path, FileUploadPurpose.Vision) : client.UploadFile(path, FileUploadPurpose.Vision); + Validate(fileInfo); } else if (fileSourceKind == FileSourceKind.UsingBinaryData) { @@ -150,6 +169,7 @@ public async Task UploadFile(FileSourceKind fileSourceKind) fileInfo = IsAsync ? await client.UploadFileAsync(content, filename, FileUploadPurpose.Vision) : client.UploadFile(content, filename, FileUploadPurpose.Vision); + Validate(fileInfo); } else { @@ -211,6 +231,7 @@ public async Task DeleteFile(bool useFileInfoOverload) string filename = "test-file-delete-me.txt"; OpenAIFile uploadedFile = await client.UploadFileAsync(file, filename, FileUploadPurpose.Assistants); + Validate(uploadedFile); FileDeletionResult result; if (useFileInfoOverload) @@ -260,6 +281,7 @@ public async Task GetFile() try { uploadedFile = await client.UploadFileAsync(file, filename, FileUploadPurpose.Assistants); + Validate(uploadedFile); fileInfo = IsAsync ? await client.GetFileAsync(uploadedFile.Id) @@ -316,6 +338,7 @@ public async Task DownloadContent() try { uploadedFile = await client.UploadFileAsync(file, filename, FileUploadPurpose.Vision); + Validate(uploadedFile); downloadedContent = IsAsync ? await client.DownloadFileAsync(uploadedFile.Id) @@ -368,6 +391,35 @@ public async Task NonAsciiFilename() OpenAIFile uploadedFile = IsAsync ? await client.UploadFileAsync(fileContent, filename, FileUploadPurpose.Assistants) : client.UploadFile(fileContent, filename, FileUploadPurpose.Assistants); + Validate(uploadedFile); Assert.That(uploadedFile?.Filename, Is.EqualTo(filename)); } + + [Test] + public async Task UserDataPurpose() + { + OpenAIFileClient client = GetTestClient(); + + BinaryData fileContent = BinaryData.FromString("Hello, world!"); + OpenAIFile uploadedFile = IsAsync + ? await client.UploadFileAsync(fileContent, "test_hello_world.txt", FileUploadPurpose.UserData) + : client.UploadFile(fileContent, "test_hello_world.txt", FileUploadPurpose.UserData); + Validate(uploadedFile); + Assert.That(uploadedFile.Purpose, Is.EqualTo(FilePurpose.UserData)); + } + + private void Validate(T instance) + { + if (instance is OpenAIFile file) + { + Assert.That(file?.Id, Is.Not.Null.And.Not.Empty); + FileIdsForCleanup.Add(file.Id); + } + else + { + throw new NotImplementedException(); + } + } + + private readonly List FileIdsForCleanup = []; } \ No newline at end of file diff --git a/tests/Responses/ResponsesSmokeTests.cs b/tests/Responses/ResponsesSmokeTests.cs new file mode 100644 index 000000000..723c3f112 --- /dev/null +++ b/tests/Responses/ResponsesSmokeTests.cs @@ -0,0 +1,36 @@ +using NUnit.Framework; +using OpenAI.Files; +using OpenAI.Responses; +using OpenAI.Tests.Utility; +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using static OpenAI.Tests.TestHelpers; + +namespace OpenAI.Tests.Responses; + +[Category("Responses")] +[Category("Smoke")] +public partial class ResponsesSmokeTests +{ + [Test] + public void SerializingMessagesWorks() + { + ResponseItem userMessageItem = ResponseItem.CreateUserMessageItem( + [ + ResponseContentPart.CreateInputTextPart("hello, world!"), + ]); + string serializedMessage = ModelReaderWriter.Write(userMessageItem).ToString().ToLower(); + + Assert.That(serializedMessage, Does.Contain("hello, world")); + Assert.That(serializedMessage, Does.Contain("message")); + Assert.That(serializedMessage, Does.Contain("user")); + Console.WriteLine(serializedMessage); + + ResponseItem deserializedMessage = ModelReaderWriter.Read(BinaryData.FromString(serializedMessage)); + Assert.That(deserializedMessage, Is.Not.Null); + } +} \ No newline at end of file diff --git a/tests/Responses/ResponsesTests.cs b/tests/Responses/ResponsesTests.cs new file mode 100644 index 000000000..b924df67d --- /dev/null +++ b/tests/Responses/ResponsesTests.cs @@ -0,0 +1,670 @@ +using Microsoft.VisualStudio.TestPlatform.ObjectModel; +using NUnit.Framework; +using OpenAI.Files; +using OpenAI.Responses; +using OpenAI.Tests.Utility; +using OpenAI.VectorStores; +using System; +using System.ClientModel; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using static OpenAI.Tests.TestHelpers; + +namespace OpenAI.Tests.Responses; + +#pragma warning disable OPENAICUA001 + +[TestFixture(true)] +[TestFixture(false)] +[Parallelizable(ParallelScope.Fixtures)] +[Category("Responses")] +public partial class ResponsesTests : SyncAsyncTestBase +{ + public ResponsesTests(bool isAsync) : base(isAsync) + { + } + + [OneTimeTearDown] + protected void Cleanup() + { + Console.WriteLine("[Teardown]"); + + // Skip cleanup if there is no API key (e.g., if we are not running live tests). + if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("OPENAI_API_KEY"))) + { + Console.WriteLine("[WARNING] Can't clean up"); + return; + } + + RequestOptions noThrowOptions = new() { ErrorOptions = ClientErrorBehaviors.NoThrow }; + OpenAIFileClient fileClient = GetTestClient(TestScenario.Files); + VectorStoreClient vectorStoreClient = GetTestClient(TestScenario.VectorStores); + + foreach (string fileId in FileIdsToDelete) + { + Console.WriteLine($"[File cleanup] {fileId}"); + fileClient.DeleteFile(fileId, noThrowOptions); + } + + foreach (string vectorStoreId in VectorStoreIdsToDelete) + { + Console.WriteLine($"[Vector store cleanup] {vectorStoreId}"); + vectorStoreClient.DeleteVectorStore(vectorStoreId, noThrowOptions); + } + } + + private List FileIdsToDelete = []; + private List VectorStoreIdsToDelete = []; + + private void Validate(T input) where T : class + { + if (input is OpenAIFile file) + { + FileIdsToDelete.Add(file.Id); + } + if (input is CreateVectorStoreOperation operation) + { + VectorStoreIdsToDelete.Add(operation.VectorStoreId); + } + } + + [Test] + public async Task FileSearch() + { + OpenAIFileClient fileClient = GetTestClient(TestScenario.Files); + OpenAIFile testFile = await fileClient.UploadFileAsync( + BinaryData.FromString(""" + Travis's favorite food is pizza. + """), + "test_favorite_foods.txt", + FileUploadPurpose.UserData); + Validate(testFile); + + VectorStoreClient vscClient = GetTestClient(TestScenario.VectorStores); + CreateVectorStoreOperation createStoreOp = await vscClient.CreateVectorStoreAsync( + waitUntilCompleted: true, + new VectorStoreCreationOptions() + { + FileIds = { testFile.Id }, + }); + Validate(createStoreOp); + + OpenAIResponseClient client = GetTestClient(); + + OpenAIResponse response = await client.CreateResponseAsync( + "Using the file search tool, what's Travis's favorite food?", + new ResponseCreationOptions() + { + Tools = + { + ResponseTool.CreateFileSearchTool([createStoreOp.VectorStoreId], null), + } + }); + Assert.That(response.OutputItems?.Count, Is.EqualTo(2)); + FileSearchCallResponseItem fileSearchCall = response.OutputItems[0] as FileSearchCallResponseItem; + Assert.That(fileSearchCall, Is.Not.Null); + Assert.That(fileSearchCall?.Status, Is.EqualTo(FileSearchCallStatus.Completed)); + Assert.That(fileSearchCall?.Queries, Has.Count.GreaterThan(0)); + MessageResponseItem message = response.OutputItems[1] as MessageResponseItem; + Assert.That(message, Is.Not.Null); + ResponseContentPart messageContentPart = message.Content?.FirstOrDefault(); + Assert.That(messageContentPart, Is.Not.Null); + Assert.That(messageContentPart.Text, Does.Contain("pizza")); + Assert.That(messageContentPart.OutputTextAnnotations, Is.Not.Null.And.Not.Empty); + Assert.That(messageContentPart.OutputTextAnnotations[0].FileCitationFileId, Is.EqualTo(testFile.Id)); + Assert.That(messageContentPart.OutputTextAnnotations[0].FileCitationIndex, Is.GreaterThan(0)); + + + await foreach (ResponseItem inputItem in client.GetResponseInputItemsAsync(response.Id)) + { + Console.WriteLine(ModelReaderWriter.Write(inputItem).ToString()); + } + } + + [Test] + public async Task ChatWithCua() + { + OpenAIResponseClient client = GetTestClient("computer-use-preview-2025-03-11"); + + ResponseTool computerTool = ResponseTool.CreateComputerTool(1024, 768, ComputerToolEnvironment.Windows); + OpenAIResponse response = await client.CreateResponseAsync( + inputItems: + [ + ResponseItem.CreateDeveloperMessageItem("Call tools when the user asks to perform computer-related tasks like clicking interface elements."), + ResponseItem.CreateUserMessageItem("Click on the Save button.") + ], + new ResponseCreationOptions() { Tools = { computerTool } }); + + while (true) + { + Assert.That(response.OutputItems.Count, Is.GreaterThan(0)); + ResponseItem outputItem = response.OutputItems?.LastOrDefault(); + if (outputItem is ComputerCallResponseItem computerCall) + { + if (computerCall.Action.Kind == ComputerCallActionKind.Screenshot) + { + string screenshotPath = Path.Join("Assets", "images_screenshot_with_save_1024_768.png"); + BinaryData screenshotBytes = BinaryData.FromBytes(File.ReadAllBytes(screenshotPath)); + ResponseItem screenshotReply = ResponseItem.CreateComputerCallOutputItem( + computerCall.CallId, + [], + screenshotBytes, + "image/png"); + + response = await client.CreateResponseAsync( + [screenshotReply], + new ResponseCreationOptions() + { + PreviousResponseId = response.Id, + Tools = { computerTool }, + }); + } + else if (computerCall.Action.Kind == ComputerCallActionKind.Click) + { + Console.WriteLine($"Instruction from model: click"); + break; + } + } + else if (outputItem is MessageResponseItem message + && message.Content?.FirstOrDefault()?.Text?.ToLower() is string assistantText + && ( + assistantText.Contains("should i") + || assistantText.Contains("shall i") + || assistantText.Contains("can you confirm") + || assistantText.Contains("could you confirm") + || assistantText.Contains("please confirm"))) + { + response = await client.CreateResponseAsync( + "Yes, proceed.", + new ResponseCreationOptions() + { + PreviousResponseId = response.Id, + Tools = { computerTool } + }); + } + else + { + break; + } + } + } + + [Test] + public async Task WebSearchCall() + { + OpenAIResponseClient client = GetTestClient(); + OpenAIResponse response = await client.CreateResponseAsync( + "What was a positive news story from today?", + new ResponseCreationOptions() + { + Tools = + { + ResponseTool.CreateWebSearchTool() + } + }); + + Assert.That(response.OutputItems, Has.Count.EqualTo(2)); + Assert.That(response.OutputItems[0], Is.InstanceOf()); + Assert.That(response.OutputItems[1], Is.InstanceOf()); + + MessageResponseItem message = (MessageResponseItem)response.OutputItems[1]; + Assert.That(message.Content, Has.Count.GreaterThan(0)); + Assert.That(message.Content[0].Kind, Is.EqualTo(ResponseContentPartKind.OutputText)); + Assert.That(message.Content[0].Text, Is.Not.Null.And.Not.Empty); + Assert.That(message.Content[0].OutputTextAnnotations, Has.Count.GreaterThan(0)); + } + + [Test] + public async Task WebSearchCallStreaming() + { + OpenAIResponseClient client = GetTestClient(); + + const string message = "Searching the internet, what's the weather like in San Francisco?"; + + ResponseCreationOptions responseOptions = new() + { + Tools = + { + ResponseTool.CreateWebSearchTool( + WebSearchToolLocation.CreateApproximateLocation(city: "San Francisco"), + WebSearchToolContextSize.Low) + } + }; + + string searchItemId = null; + int inProgressCount = 0; + int searchingCount = 0; + int completedCount = 0; + bool gotFinishedSearchItem = false; + + await foreach (StreamingResponseUpdate update + in client.CreateResponseStreamingAsync(message, responseOptions)) + { + if (update is StreamingResponseWebSearchCallUpdate webCallUpdate) + { + Assert.That(webCallUpdate.OutputItemId, Is.Not.Null.And.Not.Empty); + searchItemId ??= webCallUpdate.OutputItemId; + Assert.That(searchItemId, Is.EqualTo(webCallUpdate.OutputItemId)); + Assert.That(webCallUpdate.OutputItemIndex, Is.EqualTo(0)); + if (webCallUpdate.Kind == StreamingResponseUpdateKind.ResponseWebSearchCallInProgress) + { + inProgressCount++; + } + else if (webCallUpdate.Kind == StreamingResponseUpdateKind.ResponseWebSearchCallSearching) + { + searchingCount++; + } + else if (webCallUpdate.Kind == StreamingResponseUpdateKind.ResponseWebSearchCallCompleted) + { + completedCount++; + } + } + else if (update is StreamingResponseItemUpdate itemUpdate + && itemUpdate.Kind == StreamingResponseUpdateKind.ResponseOutputItemDone) + { + if (itemUpdate.Item is WebSearchCallResponseItem finishedWebSearchCall) + { + Assert.That(finishedWebSearchCall.Status, Is.EqualTo(WebSearchCallStatus.Completed)); + Assert.That(finishedWebSearchCall.Id, Is.EqualTo(searchItemId)); + gotFinishedSearchItem = true; + } + } + // Console.WriteLine(ModelReaderWriter.Write(update).ToString()); + } + Assert.Multiple(() => + { + Assert.That(gotFinishedSearchItem, Is.True); + Assert.That(searchingCount, Is.EqualTo(1)); + Assert.That(inProgressCount, Is.EqualTo(1)); + Assert.That(completedCount, Is.EqualTo(1)); + Assert.That(searchItemId, Is.Not.Null.And.Not.Empty); + }); + } + + [Test] + public async Task StreamingResponses() + { + OpenAIResponseClient client = GetTestClient("gpt-4o-mini"); // "computer-use-alpha"); + + List inputItems = [ResponseItem.CreateUserMessageItem("Hello, world!")]; + await foreach (StreamingResponseUpdate update in client.CreateResponseStreamingAsync(inputItems)) + { + Console.WriteLine(ModelReaderWriter.Write(update)); + if (update is StreamingResponseContentPartDeltaUpdate deltaUpdate) + { + Console.Write(deltaUpdate.Text); + } + } + } + + [Test] + [Category("Smoke")] + public void DeserializeStreamingWrapper() + { + string serializedEvent = """ + {"type":"response.output_text.delta","item_id":"msg_67cbd19634ac8190a8d1fe7d421960e0","output_index":0,"content_index":0,"delta":"Hello"} + """; + StreamingResponseContentPartDeltaUpdate deltaUpdate = ModelReaderWriter.Read(BinaryData.FromString(serializedEvent)); + Assert.That(deltaUpdate, Is.Not.Null); + Assert.That(deltaUpdate.Text, Is.EqualTo("Hello")); + } + + [Test] + [TestCase("gpt-4o-mini")] + [TestCase("computer-use-preview")] + public async Task ResponsesHelloWorldWithTool(string model) + { + OpenAIResponseClient client = GetTestClient(model); + + ResponseCreationOptions options = new() + { + Tools = + { + ResponseTool.CreateFunctionTool( + functionName: "get_custom_greeting", + functionDescription: "invoked when user provides a typical greeting", + functionParameters: BinaryData.FromString( + """ + { + "type": "object", + "properties": { + "time_of_day": { + "type": "string" + } + } + } + """), + functionSchemaIsStrict: false), + }, + }; + + OpenAIResponse response = await client.CreateResponseAsync( + [ + ResponseItem.CreateUserMessageItem( + [ + ResponseContentPart.CreateInputTextPart("good morning, responses!"), + ]), + ], + options); + + Assert.That(response.Id, Is.Not.Null.And.Not.Empty); + Assert.That(response.CreatedAt, Is.GreaterThan(DateTimeOffset.Now - TimeSpan.FromDays(1))); + // Assert.That(response.Status, Is.EqualTo(ResponsesStatus.Completed)); + Assert.That(response.Model, Is.Not.Null.And.Not.Empty); + Assert.That(response.PreviousResponseId, Is.Null); + // Observed: input may not exist on normal responses + // Assert.That(response.Input.Count, Is.EqualTo(1)); + Assert.That(response.OutputItems.Count, Is.EqualTo(1)); + } + + [Test] + public async Task ResponsesWithReasoning() + { + OpenAIResponseClient client = GetTestClient("o3-mini"); + + ResponseCreationOptions options = new() + { + ReasoningOptions = new() + { + ReasoningEffortLevel = ResponseReasoningEffortLevel.Low, + }, + Metadata = + { + ["superfluous_key"] = "superfluous_value", + }, + Instructions = "Perform reasoning over any questions asked by the user.", + }; + + OpenAIResponse response = await client.CreateResponseAsync([ResponseItem.CreateUserMessageItem("What's the best way to fold a burrito?")], options); + Assert.That(response, Is.Not.Null); + Assert.That(response.Id, Is.Not.Null); + Assert.That(response.CreatedAt, Is.GreaterThan(new DateTimeOffset(2025, 1, 1, 0, 0, 0, TimeSpan.Zero))); + Assert.That(response.TruncationMode, Is.EqualTo(ResponseTruncationMode.Auto)); + Assert.That(response.MaxOutputTokenCount, Is.Null); + Assert.That(response.Model, Does.StartWith("o3-mini")); + Assert.That(response.Usage, Is.Not.Null); + Assert.That(response.Usage.OutputTokenDetails, Is.Not.Null); + Assert.That(response.Usage.OutputTokenDetails.ReasoningTokenCount, Is.GreaterThan(0)); + Assert.That(response.Metadata, Is.Not.Null.Or.Empty); + Assert.That(response.Metadata["superfluous_key"], Is.EqualTo("superfluous_value")); + Assert.That(response.OutputItems, Has.Count.EqualTo(2)); + ReasoningResponseItem reasoningItem = response.OutputItems[0] as ReasoningResponseItem; + MessageResponseItem messageItem = response.OutputItems[1] as MessageResponseItem; + Assert.That(reasoningItem.SummaryTextParts, Is.Not.Null); + Assert.That(reasoningItem.Id, Is.Not.Null.And.Not.Empty); + Assert.That(messageItem.Content?.FirstOrDefault().Text, Has.Length.GreaterThan(0)); + } + + [Test] + [TestCase("computer-use-preview-2025-02-04")] + [TestCase("gpt-4o-mini")] + public async Task HelloWorldStreaming(string model) + { + OpenAIResponseClient client = GetTestClient(model); + + ResponseContentPart contentPart = ResponseContentPart.CreateInputTextPart("Hello, responses!"); + ResponseItem inputItem = ResponseItem.CreateUserMessageItem([contentPart]); + + await foreach (StreamingResponseUpdate update in client.CreateResponseStreamingAsync([inputItem])) + { + Console.WriteLine(ModelReaderWriter.Write(update)); + //if (update is ResponsesItemStreamingPartDeltaUpdate partDeltaUpdate) + //{ + // Console.Write(partDeltaUpdate.Text); + //} + } + } + + [Test] + public async Task CanDeleteResponse() + { + OpenAIResponseClient client = GetTestClient(); + + OpenAIResponse response = await client.CreateResponseAsync([ResponseItem.CreateUserMessageItem("Hello, model!")]); + + async Task RetrieveThatResponseAsync() + { + OpenAIResponse retrievedResponse = await client.GetResponseAsync(response.Id); + Assert.That(retrievedResponse.Id, Is.EqualTo(response.Id)); + } + + Assert.DoesNotThrowAsync(RetrieveThatResponseAsync); + + ResponseDeletionResult deletionResult = await client.DeleteResponseAsync(response.Id); + Assert.That(deletionResult.Deleted, Is.True); + + Assert.ThrowsAsync(RetrieveThatResponseAsync); + } + + [Test] + public async Task CanOptOutOfStorage() + { + OpenAIResponseClient client = GetTestClient(); + + OpenAIResponse response = await client.CreateResponseAsync( + [ResponseItem.CreateUserMessageItem("Hello, model!")], + new ResponseCreationOptions() + { + StoredOutputEnabled = false, + }); + + ClientResultException expectedException = Assert.ThrowsAsync(async () => await client.GetResponseAsync(response.Id)); + Assert.That(expectedException.Message, Does.Contain("not found")); + } + + [Test] + [Ignore("Assistant message needs an ID.")] + public async Task MessageHistoryWorks() + { + OpenAIResponseClient client = GetTestClient(); + + OpenAIResponse response = await client.CreateResponseAsync( + [ + ResponseItem.CreateDeveloperMessageItem("You are a helpful assistant."), + ResponseItem.CreateUserMessageItem("Hello, Assistant, my name is Bob!"), + ResponseItem.CreateAssistantMessageItem("1", "Hello, Bob. It's a nice, sunny day!"), + ResponseItem.CreateUserMessageItem("What's my name and what did you tell me the weather was like?"), + ]); + + Assert.That(response, Is.Not.Null); + } + + [Test] + public async Task ImageInputWorks() + { + OpenAIResponseClient client = GetTestClient(); + + string imagePath = Path.Join("Assets", "images_dog_and_cat.png"); + BinaryData imageBytes = BinaryData.FromBytes(await File.ReadAllBytesAsync(imagePath)); + + OpenAIResponse response = await client.CreateResponseAsync( + [ + ResponseItem.CreateUserMessageItem( + [ + ResponseContentPart.CreateInputTextPart("Please describe this picture for me"), + ResponseContentPart.CreateInputImagePart(imageBytes, "image/png", ResponseImageDetailLevel.Low), + ]), + ]); + } + + public enum ResponsesTestInstructionMethod + { + InstructionsProperty, + SystemMessage, + DeveloperMessage + } + + [Test] + [TestCase(ResponsesTestInstructionMethod.InstructionsProperty)] + [TestCase(ResponsesTestInstructionMethod.SystemMessage)] + [TestCase(ResponsesTestInstructionMethod.DeveloperMessage)] + public async Task AllInstructionMethodsWork(ResponsesTestInstructionMethod instructionMethod) + { + const string instructions = "Always begin your replies with 'Arr, matey'"; + + List messages = new(); + + if (instructionMethod == ResponsesTestInstructionMethod.SystemMessage) + { + messages.Add(ResponseItem.CreateSystemMessageItem(instructions)); + } + else if (instructionMethod == ResponsesTestInstructionMethod.DeveloperMessage) + { + messages.Add(ResponseItem.CreateDeveloperMessageItem(instructions)); + } + + const string userMessage = "Hello, model!"; + messages.Add(ResponseItem.CreateUserMessageItem(userMessage)); + + ResponseCreationOptions options = new(); + + if (instructionMethod == ResponsesTestInstructionMethod.InstructionsProperty) + { + options.Instructions = instructions; + } + + OpenAIResponseClient client = GetTestClient(); + OpenAIResponse response = await client.CreateResponseAsync(messages, options); + + Assert.That(response, Is.Not.Null); + Assert.That(response.OutputItems, Is.Not.Null.And.Not.Empty); + Assert.That(response.OutputItems[0], Is.InstanceOf()); + Assert.That((response.OutputItems[0] as MessageResponseItem).Content, Is.Not.Null.And.Not.Empty); + Assert.That((response.OutputItems[0] as MessageResponseItem).Content[0].Text, Does.StartWith("Arr, matey")); + + OpenAIResponse retrievedResponse = await client.GetResponseAsync(response.Id); + Assert.That((retrievedResponse?.OutputItems?.FirstOrDefault() as MessageResponseItem)?.Content?.FirstOrDefault()?.Text, Does.StartWith("Arr, matey")); + + if (instructionMethod == ResponsesTestInstructionMethod.InstructionsProperty) + { + Assert.That(retrievedResponse.Instructions, Is.EqualTo(instructions)); + } + + List listedItems = []; + await client.GetResponseInputItemsAsync(response.Id).ForEachAsync(item => listedItems.Add(item)); + + if (instructionMethod == ResponsesTestInstructionMethod.InstructionsProperty) + { + Assert.That(listedItems, Has.Count.EqualTo(1)); + Assert.That((listedItems[0] as MessageResponseItem)?.Content?.FirstOrDefault()?.Text, Is.EqualTo(userMessage)); + } + else + { + Assert.That(listedItems, Has.Count.EqualTo(2)); + MessageResponseItem systemOrDeveloperMessage = listedItems[1] as MessageResponseItem; + Assert.That(systemOrDeveloperMessage, Is.Not.Null); + Assert.That(systemOrDeveloperMessage.Role, Is.EqualTo(instructionMethod switch + { + ResponsesTestInstructionMethod.DeveloperMessage => MessageRole.Developer, + ResponsesTestInstructionMethod.SystemMessage => MessageRole.System, + _ => throw new ArgumentException() + })); + Assert.That(systemOrDeveloperMessage.Content?.FirstOrDefault()?.Text, Is.EqualTo(instructions)); + Assert.That((listedItems[0] as MessageResponseItem)?.Content?.FirstOrDefault()?.Text, Is.EqualTo(userMessage)); + } + } + + [Test] + public async Task TwoTurnCrossModel() + { + OpenAIResponseClient client = GetTestClient("gpt-4o-mini"); + OpenAIResponseClient client2 = GetTestClient("o3-mini"); + + + OpenAIResponse response = await client.CreateResponseAsync( + [ResponseItem.CreateUserMessageItem("Hello, Assistant! My name is Travis.")]); + OpenAIResponse response2 = await client2.CreateResponseAsync( + [ResponseItem.CreateUserMessageItem("What's my name?")], + new ResponseCreationOptions() + { + PreviousResponseId = response.Id, + }); + } + + [Test] + public async Task FunctionCall() + { + OpenAIResponseClient client = GetTestClient(); + + ResponseCreationOptions options = new() + { + Tools = { s_GetWeatherAtLocationTool } + }; + + OpenAIResponse response = await client.CreateResponseAsync( + [ResponseItem.CreateUserMessageItem("What should I wear for the weather in San Francisco, CA?")], + options); + + Assert.That(response.OutputItems, Has.Count.EqualTo(1)); + FunctionCallResponseItem functionCall = response.OutputItems[0] as FunctionCallResponseItem; + Assert.That(functionCall, Is.Not.Null); + Assert.That(functionCall!.Id, Has.Length.GreaterThan(0)); + Assert.That(functionCall.FunctionName, Is.EqualTo("get_weather_at_location")); + Assert.That(functionCall.FunctionArguments, Is.Not.Null); + + ResponseCreationOptions turn2Options = new() + { + PreviousResponseId = response.Id, + Tools = { s_GetWeatherAtLocationTool }, + }; + + ResponseItem functionReply = ResponseItem.CreateFunctionCallOutputItem(functionCall.CallId, "22 celcius and windy"); + OpenAIResponse turn2Response = await client.CreateResponseAsync( + [functionReply], + turn2Options); + Assert.That(turn2Response.OutputItems?.Count, Is.EqualTo(1)); + MessageResponseItem turn2Message = turn2Response!.OutputItems[0] as MessageResponseItem; + Assert.That(turn2Message, Is.Not.Null); + Assert.That(turn2Message!.Role, Is.EqualTo(MessageRole.Assistant)); + Assert.That(turn2Message.Content, Has.Count.EqualTo(1)); + Assert.That(turn2Message.Content[0].Text, Does.Contain("22")); + } + + [Test] + public async Task FunctionCallStreaming() + { + OpenAIResponseClient client = GetTestClient(); + + await foreach (StreamingResponseUpdate update + in client.CreateResponseStreamingAsync( + "What should I wear for the weather in San Francisco right now?", + new ResponseCreationOptions() { Tools = { s_GetWeatherAtLocationTool } })) + { + if (update is StreamingResponseStatusUpdate statusUpdate) + { + Console.WriteLine($"{statusUpdate.Kind}: {statusUpdate.Response.Id}"); + } + else if (update is StreamingResponseContentPartDeltaUpdate deltaUpdate) + { + Console.Write(deltaUpdate.FunctionArguments); + } + } + } + + private static string s_GetWeatherAtLocationToolName = "get_weather_at_location"; + private static ResponseTool s_GetWeatherAtLocationTool = ResponseTool.CreateFunctionTool( + s_GetWeatherAtLocationToolName, + "Gets the weather at a specified location, optionally specifying units for temperature", + BinaryData.FromString(""" + { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "unit": { + "type": "string", + "enum": ["C", "F", "K"] + } + }, + "required": ["location"] + } + """), + false); + + private static OpenAIResponseClient GetTestClient(string overrideModel = null) + => GetTestClient(TestScenario.Responses, overrideModel); +} \ No newline at end of file diff --git a/tests/Utility/MultipartFormDataBinaryContent.cs b/tests/Utility/MultipartFormDataBinaryContent.cs index 0baf09a5f..335253450 100644 --- a/tests/Utility/MultipartFormDataBinaryContent.cs +++ b/tests/Utility/MultipartFormDataBinaryContent.cs @@ -1,112 +1,195 @@ -using System; +// + +#nullable disable + +using System; using System.ClientModel; +using System.Globalization; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; -namespace OpenAI.Tests; - -internal class MultipartFormDataBinaryContent : BinaryContent +namespace OpenAI { - private readonly MultipartFormDataContent _multipartContent; - - private const int BoundaryLength = 70; - private const string BoundaryValues = "0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"; - - public MultipartFormDataBinaryContent() + internal partial class MultiPartFormDataBinaryContent : BinaryContent { - _multipartContent = new MultipartFormDataContent(CreateBoundary()); - } - - public string ContentType => _multipartContent.Headers.ContentType.ToString(); + private readonly MultipartFormDataContent _multipartContent; + private static readonly Random _random = new Random(); + private static readonly char[] _boundaryValues = "0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray(); - public void Add(byte[] bytes, string name, string fileName, string contentType = null) - { - ByteArrayContent content = new(bytes); - if (contentType is not null) + public MultiPartFormDataBinaryContent() { - content.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType); + _multipartContent = new MultipartFormDataContent(CreateBoundary()); } - _multipartContent.Add(content, name, fileName); - } -#if NET6_0_OR_GREATER - private static string CreateBoundary() => - string.Create(BoundaryLength, 0, (chars, _) => + public string ContentType { - Span random = stackalloc byte[BoundaryLength]; - Random.Shared.NextBytes(random); - - for (int i = 0; i < chars.Length; i++) + get { - chars[i] = BoundaryValues[random[i] % BoundaryValues.Length]; + return _multipartContent.Headers.ContentType.ToString(); } - }); -#else - private static readonly Random _random = new(); + } - private static string CreateBoundary() - { - Span chars = stackalloc char[BoundaryLength]; + internal HttpContent HttpContent => _multipartContent; - byte[] random = new byte[BoundaryLength]; - lock (_random) + private static string CreateBoundary() { + Span chars = new char[70]; + byte[] random = new byte[70]; _random.NextBytes(random); + int mask = 255 >> 2; + int i = 0; + for (; i < 70; i++) + { + chars[i] = _boundaryValues[random[i] & mask]; + } + return chars.ToString(); + } + + public void Add(string content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new StringContent(content), name, filename, contentType); } - // Instead of `% BoundaryValues.Length` as is used above, use a mask to achieve the same result. - // `% BoundaryValues.Length` is optimized to the equivalent on .NET Core but not on .NET Framework. - const int Mask = 255 >> 2; - Debug.Assert(BoundaryValues.Length - 1 == Mask); + public void Add(int content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } - for (int i = 0; i < chars.Length; i++) + public void Add(long content, string name, string filename = default, string contentType = default) { - chars[i] = BoundaryValues[random[i] & Mask]; + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); } - return chars.ToString(); - } -#endif + public void Add(float content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); - public override bool TryComputeLength(out long length) - { - // We can't call the protected method on HttpContent + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(double content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } - if (_multipartContent.Headers.ContentLength is long contentLength) + public void Add(decimal content, string name, string filename = default, string contentType = default) { - length = contentLength; - return true; + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); } - length = 0; - return false; - } + public void Add(bool content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); - public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) - { -#if NET5_0_OR_GREATER - _multipartContent.CopyTo(stream, default, cancellationToken); + string value = content ? "true" : "false"; + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(Stream content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new StreamContent(content), name, filename, contentType); + } + + public void Add(byte[] content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new ByteArrayContent(content), name, filename, contentType); + } + + public void Add(BinaryData content, string name, string filename = default, string contentType = default) + { + //Argument.AssertNotNull(content, nameof(content)); + //Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new ByteArrayContent(content.ToArray()), name, filename, contentType); + } + + private void Add(HttpContent content, string name, string filename, string contentType) + { + if (contentType != null) + { + //Argument.AssertNotNullOrEmpty(contentType, nameof(contentType)); + AddContentTypeHeader(content, contentType); + } + if (filename != null) + { + //Argument.AssertNotNullOrEmpty(filename, nameof(filename)); + _multipartContent.Add(content, name, filename); + } + else + { + _multipartContent.Add(content, name); + } + } + + public static void AddContentTypeHeader(HttpContent content, string contentType) + { + MediaTypeHeaderValue header = new MediaTypeHeaderValue(contentType); + content.Headers.ContentType = header; + } + + public override bool TryComputeLength(out long length) + { + if (_multipartContent.Headers.ContentLength is long contentLength) + { + length = contentLength; + return true; + } + length = 0; + return false; + } + + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { +#if NET6_0_OR_GREATER + _multipartContent.CopyTo(stream, default, cancellationToken); #else - // TODO: polyfill sync-over-async for netstandard2.0 for Azure clients. - // Tracked by https://github.com/Azure/azure-sdk-for-net/issues/42674 - _multipartContent.CopyToAsync(stream).GetAwaiter().GetResult(); + _multipartContent.CopyToAsync(stream).GetAwaiter().GetResult(); #endif - } + } - public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) - { -#if NET5_0_OR_GREATER - await _multipartContent.CopyToAsync(stream, cancellationToken).ConfigureAwait(false); + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { +#if NET6_0_OR_GREATER + await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); #else - await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); + await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); #endif - } + } - public override void Dispose() - { - _multipartContent.Dispose(); + public override void Dispose() + { + _multipartContent.Dispose(); + } } } diff --git a/tests/Utility/TestHelpers.cs b/tests/Utility/TestHelpers.cs index 2bd540023..77134bedc 100644 --- a/tests/Utility/TestHelpers.cs +++ b/tests/Utility/TestHelpers.cs @@ -10,6 +10,7 @@ using OpenAI.Models; using OpenAI.Moderations; using OpenAI.RealtimeConversation; +using OpenAI.Responses; using OpenAI.VectorStores; using System; using System.ClientModel; @@ -40,6 +41,7 @@ public enum TestScenario Models, Moderations, RealtimeConversation, + Responses, VectorStores, TopLevel, } @@ -72,6 +74,9 @@ public static T GetTestClient(TestScenario scenario, string overrideModel = n TestScenario.TopLevel => new OpenAIClient(credential, options), #pragma warning disable OPENAI002 TestScenario.RealtimeConversation => new RealtimeConversationClient(overrideModel ?? "gpt-4o-realtime-preview-2024-10-01", credential, options), +#pragma warning restore +#pragma warning disable OPENAI003 + TestScenario.Responses => new OpenAIResponseClient(overrideModel ?? "gpt-4o-mini", credential, options), #pragma warning restore _ => throw new NotImplementedException(), };