From 90a5805d2bf92d7f626a09d9cea51ccd7839f9d5 Mon Sep 17 00:00:00 2001 From: Jose Arriaga Maldonado Date: Fri, 21 Nov 2025 00:40:18 -0800 Subject: [PATCH 1/2] Add setter to Id property of ResponseItem --- api/OpenAI.net8.0.cs | 2 +- api/OpenAI.netstandard2.0.cs | 2 +- src/Custom/Responses/Items/Reference/ReferenceResponseItem.cs | 4 ++-- src/Custom/Responses/Items/ResponseItem.cs | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/OpenAI.net8.0.cs b/api/OpenAI.net8.0.cs index 400f5b51e..535f70737 100644 --- a/api/OpenAI.net8.0.cs +++ b/api/OpenAI.net8.0.cs @@ -5907,7 +5907,7 @@ public class ResponseInputTokenUsageDetails : IJsonModel, IPersistableModel { - public string Id { get; } + public string Id { get; set; } [Serialization.JsonIgnore] [EditorBrowsable(EditorBrowsableState.Never)] [Experimental("SCME0001")] diff --git a/api/OpenAI.netstandard2.0.cs b/api/OpenAI.netstandard2.0.cs index c715d602b..e28fa1044 100644 --- a/api/OpenAI.netstandard2.0.cs +++ b/api/OpenAI.netstandard2.0.cs @@ -5195,7 +5195,7 @@ public class ResponseInputTokenUsageDetails : IJsonModel, IPersistableModel { - public string Id { get; } + public string Id { get; set; } [Serialization.JsonIgnore] [EditorBrowsable(EditorBrowsableState.Never)] public ref JsonPatch Patch { get; } diff --git a/src/Custom/Responses/Items/Reference/ReferenceResponseItem.cs b/src/Custom/Responses/Items/Reference/ReferenceResponseItem.cs index cd614f149..5020730b7 100644 --- a/src/Custom/Responses/Items/Reference/ReferenceResponseItem.cs +++ b/src/Custom/Responses/Items/Reference/ReferenceResponseItem.cs @@ -2,8 +2,8 @@ namespace OpenAI.Responses; // CUSTOM: // - Renamed. -// - Made internal the constructor that does not take the item ID, because contrary to other item -// types, the ID of reference items is not read-only and is required. +// - Made internal the constructor that does not take the item ID because, contrary to other item types, the ID of +// reference items is required in both input and output scenarios. [CodeGenType("DotNetItemReferenceItemResource")] [CodeGenVisibility(nameof(ReferenceResponseItem), CodeGenVisibility.Internal)] public partial class ReferenceResponseItem diff --git a/src/Custom/Responses/Items/ResponseItem.cs b/src/Custom/Responses/Items/ResponseItem.cs index ab5b674c6..b6977d670 100644 --- a/src/Custom/Responses/Items/ResponseItem.cs +++ b/src/Custom/Responses/Items/ResponseItem.cs @@ -10,9 +10,9 @@ namespace OpenAI.Responses; [CodeGenType("ItemResource")] public partial class ResponseItem { - // CUSTOM: Specify read-only semantics for ID + // CUSTOM: Added setter because this is required in output scenarios and optional in input scenarios. [CodeGenMember("Id")] - public string Id { get; internal set; } + public string Id { get; set; } public static MessageResponseItem CreateUserMessageItem(IEnumerable contentParts) { From 766d48ef1a92a7d65a4028276cc5b3625f1ac874 Mon Sep 17 00:00:00 2001 From: Jose Arriaga Maldonado Date: Mon, 24 Nov 2025 13:38:53 -0800 Subject: [PATCH 2/2] Add setters to the Status property of the different ResponseItems --- api/OpenAI.net8.0.cs | 20 +++++++++---------- api/OpenAI.netstandard2.0.cs | 20 +++++++++---------- .../CodeInterpreterCallResponseItem.cs | 6 ++++-- .../ComputerCallOutputResponseItem.cs | 6 ++++-- .../ComputerTool/ComputerCallResponseItem.cs | 6 ++++-- .../FileSearchCallResponseItem.cs | 10 ++++------ .../FunctionCallOutputResponseItem.cs | 6 ++++-- .../FunctionTool/FunctionCallResponseItem.cs | 6 ++++-- .../ImageGenerationCallResponseItem.cs | 6 ++++-- .../Items/Message/MessageResponseItem.cs | 6 ++++-- .../Items/Reasoning/ReasoningResponseItem.cs | 9 +++++---- .../WebSearchCallResponseItem.cs | 6 ++++-- 12 files changed, 61 insertions(+), 46 deletions(-) diff --git a/api/OpenAI.net8.0.cs b/api/OpenAI.net8.0.cs index 535f70737..252f33123 100644 --- a/api/OpenAI.net8.0.cs +++ b/api/OpenAI.net8.0.cs @@ -4883,7 +4883,7 @@ public class CodeInterpreterCallResponseItem : ResponseItem, IJsonModel Outputs { get; } - public CodeInterpreterCallStatus? Status { get; } + public CodeInterpreterCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -5004,7 +5004,7 @@ public class ComputerCallOutputResponseItem : ResponseItem, IJsonModel AcknowledgedSafetyChecks { get; } public string CallId { get; set; } public ComputerCallOutput Output { get; set; } - public ComputerCallOutputStatus? Status { get; } + public ComputerCallOutputStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -5022,7 +5022,7 @@ public class ComputerCallResponseItem : ResponseItem, IJsonModel PendingSafetyChecks { get; } - public ComputerCallStatus? Status { get; } + public ComputerCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -5131,7 +5131,7 @@ public class FileSearchCallResponseItem : ResponseItem, IJsonModel queries); public IList Queries { get; } public IList Results { get; set; } - public FileSearchCallStatus? Status { get; } + public FileSearchCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -5207,7 +5207,7 @@ public class FunctionCallOutputResponseItem : ResponseItem, IJsonModel, IPersistable public class ImageGenerationCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { public ImageGenerationCallResponseItem(BinaryData imageResultBytes); public BinaryData ImageResultBytes { get; set; } - public ImageGenerationCallStatus? Status { get; } + public ImageGenerationCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -5568,7 +5568,7 @@ public class McpToolFilter : IJsonModel, IPersistableModel, IPersistableModel { public IList Content { get; } public MessageRole Role { get; } - public MessageStatus? Status { get; } + public MessageStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -5680,7 +5680,7 @@ public class ReasoningResponseItem : ResponseItem, IJsonModel summaryParts); public ReasoningResponseItem(string summaryText); public string EncryptedContent { get; set; } - public ReasoningStatus? Status { get; } + public ReasoningStatus? Status { get; set; } public IList SummaryParts { get; } public string GetSummaryText(); protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); @@ -6669,7 +6669,7 @@ public class UriCitationMessageAnnotation : ResponseMessageAnnotation, IJsonMode [Experimental("OPENAI001")] public class WebSearchCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { public WebSearchCallResponseItem(); - public WebSearchCallStatus? Status { get; } + public WebSearchCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); diff --git a/api/OpenAI.netstandard2.0.cs b/api/OpenAI.netstandard2.0.cs index e28fa1044..45f08f3cf 100644 --- a/api/OpenAI.netstandard2.0.cs +++ b/api/OpenAI.netstandard2.0.cs @@ -4266,7 +4266,7 @@ public class CodeInterpreterCallResponseItem : ResponseItem, IJsonModel Outputs { get; } - public CodeInterpreterCallStatus? Status { get; } + public CodeInterpreterCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -4374,7 +4374,7 @@ public class ComputerCallOutputResponseItem : ResponseItem, IJsonModel AcknowledgedSafetyChecks { get; } public string CallId { get; set; } public ComputerCallOutput Output { get; set; } - public ComputerCallOutputStatus? Status { get; } + public ComputerCallOutputStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -4390,7 +4390,7 @@ public class ComputerCallResponseItem : ResponseItem, IJsonModel PendingSafetyChecks { get; } - public ComputerCallStatus? Status { get; } + public ComputerCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -4488,7 +4488,7 @@ public class FileSearchCallResponseItem : ResponseItem, IJsonModel queries); public IList Queries { get; } public IList Results { get; set; } - public FileSearchCallStatus? Status { get; } + public FileSearchCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -4556,7 +4556,7 @@ public class FunctionCallOutputResponseItem : ResponseItem, IJsonModel, IPersistable public class ImageGenerationCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { public ImageGenerationCallResponseItem(BinaryData imageResultBytes); public BinaryData ImageResultBytes { get; set; } - public ImageGenerationCallStatus? Status { get; } + public ImageGenerationCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -4887,7 +4887,7 @@ public class McpToolFilter : IJsonModel, IPersistableModel, IPersistableModel { public IList Content { get; } public MessageRole Role { get; } - public MessageStatus? Status { get; } + public MessageStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); @@ -4990,7 +4990,7 @@ public class ReasoningResponseItem : ResponseItem, IJsonModel summaryParts); public ReasoningResponseItem(string summaryText); public string EncryptedContent { get; set; } - public ReasoningStatus? Status { get; } + public ReasoningStatus? Status { get; set; } public IList SummaryParts { get; } public string GetSummaryText(); protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); @@ -5875,7 +5875,7 @@ public class UriCitationMessageAnnotation : ResponseMessageAnnotation, IJsonMode } public class WebSearchCallResponseItem : ResponseItem, IJsonModel, IPersistableModel { public WebSearchCallResponseItem(); - public WebSearchCallStatus? Status { get; } + public WebSearchCallStatus? Status { get; set; } protected override ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options); protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); protected override ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options); diff --git a/src/Custom/Responses/Items/CodeInterpreterTool/CodeInterpreterCallResponseItem.cs b/src/Custom/Responses/Items/CodeInterpreterTool/CodeInterpreterCallResponseItem.cs index ed8cd9694..99afe5e03 100644 --- a/src/Custom/Responses/Items/CodeInterpreterTool/CodeInterpreterCallResponseItem.cs +++ b/src/Custom/Responses/Items/CodeInterpreterTool/CodeInterpreterCallResponseItem.cs @@ -4,7 +4,9 @@ namespace OpenAI.Responses; [CodeGenType("CodeInterpreterToolCallItemResource")] public partial class CodeInterpreterCallResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public CodeInterpreterCallStatus? Status { get; } + public CodeInterpreterCallStatus? Status { get; set; } } \ No newline at end of file diff --git a/src/Custom/Responses/Items/ComputerTool/ComputerCallOutputResponseItem.cs b/src/Custom/Responses/Items/ComputerTool/ComputerCallOutputResponseItem.cs index fa6abc634..a4fd9571b 100644 --- a/src/Custom/Responses/Items/ComputerTool/ComputerCallOutputResponseItem.cs +++ b/src/Custom/Responses/Items/ComputerTool/ComputerCallOutputResponseItem.cs @@ -4,7 +4,9 @@ namespace OpenAI.Responses; [CodeGenType("ComputerToolCallOutputItemResource")] public partial class ComputerCallOutputResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public ComputerCallOutputStatus? Status { get; } + public ComputerCallOutputStatus? Status { get; set; } } diff --git a/src/Custom/Responses/Items/ComputerTool/ComputerCallResponseItem.cs b/src/Custom/Responses/Items/ComputerTool/ComputerCallResponseItem.cs index 4beaecb67..c29b90b13 100644 --- a/src/Custom/Responses/Items/ComputerTool/ComputerCallResponseItem.cs +++ b/src/Custom/Responses/Items/ComputerTool/ComputerCallResponseItem.cs @@ -4,7 +4,9 @@ namespace OpenAI.Responses; [CodeGenType("ComputerToolCallItemResource")] public partial class ComputerCallResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public ComputerCallStatus? Status { get; } + public ComputerCallStatus? Status { get; set; } } diff --git a/src/Custom/Responses/Items/FileSearchTool/FileSearchCallResponseItem.cs b/src/Custom/Responses/Items/FileSearchTool/FileSearchCallResponseItem.cs index d39abc4c1..576490321 100644 --- a/src/Custom/Responses/Items/FileSearchTool/FileSearchCallResponseItem.cs +++ b/src/Custom/Responses/Items/FileSearchTool/FileSearchCallResponseItem.cs @@ -1,14 +1,12 @@ -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Linq; - namespace OpenAI.Responses; // CUSTOM: Renamed. [CodeGenType("FileSearchToolCallItemResource")] public partial class FileSearchCallResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public FileSearchCallStatus? Status { get; } + public FileSearchCallStatus? Status { get; set; } } \ No newline at end of file diff --git a/src/Custom/Responses/Items/FunctionTool/FunctionCallOutputResponseItem.cs b/src/Custom/Responses/Items/FunctionTool/FunctionCallOutputResponseItem.cs index d1f057516..b34e94afc 100644 --- a/src/Custom/Responses/Items/FunctionTool/FunctionCallOutputResponseItem.cs +++ b/src/Custom/Responses/Items/FunctionTool/FunctionCallOutputResponseItem.cs @@ -4,7 +4,9 @@ namespace OpenAI.Responses; [CodeGenType("FunctionToolCallOutputItemResource")] public partial class FunctionCallOutputResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public FunctionCallOutputStatus? Status { get; } + public FunctionCallOutputStatus? Status { get; set; } } diff --git a/src/Custom/Responses/Items/FunctionTool/FunctionCallResponseItem.cs b/src/Custom/Responses/Items/FunctionTool/FunctionCallResponseItem.cs index 0b13de080..37dfdc86e 100644 --- a/src/Custom/Responses/Items/FunctionTool/FunctionCallResponseItem.cs +++ b/src/Custom/Responses/Items/FunctionTool/FunctionCallResponseItem.cs @@ -4,7 +4,9 @@ namespace OpenAI.Responses; [CodeGenType("FunctionToolCallItemResource")] public partial class FunctionCallResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public FunctionCallStatus? Status { get; } + public FunctionCallStatus? Status { get; set; } } \ No newline at end of file diff --git a/src/Custom/Responses/Items/ImageGenerationTool/ImageGenerationCallResponseItem.cs b/src/Custom/Responses/Items/ImageGenerationTool/ImageGenerationCallResponseItem.cs index d07babd43..e7fa26a50 100644 --- a/src/Custom/Responses/Items/ImageGenerationTool/ImageGenerationCallResponseItem.cs +++ b/src/Custom/Responses/Items/ImageGenerationTool/ImageGenerationCallResponseItem.cs @@ -4,7 +4,9 @@ [CodeGenType("ImageGenToolCallItemResource")] public partial class ImageGenerationCallResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public ImageGenerationCallStatus? Status { get; } + public ImageGenerationCallStatus? Status { get; set; } } diff --git a/src/Custom/Responses/Items/Message/MessageResponseItem.cs b/src/Custom/Responses/Items/Message/MessageResponseItem.cs index 42c0b601d..66bdd941c 100644 --- a/src/Custom/Responses/Items/Message/MessageResponseItem.cs +++ b/src/Custom/Responses/Items/Message/MessageResponseItem.cs @@ -6,9 +6,11 @@ namespace OpenAI.Responses; [CodeGenType("ResponsesMessageItemResource")] public partial class MessageResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public MessageStatus? Status { get; } + public MessageStatus? Status { get; set; } // CUSTOM: Expose public enum type with 'Unknown' using internal extensible role. [CodeGenMember("Role")] diff --git a/src/Custom/Responses/Items/Reasoning/ReasoningResponseItem.cs b/src/Custom/Responses/Items/Reasoning/ReasoningResponseItem.cs index d5396d48c..51a4e0db3 100644 --- a/src/Custom/Responses/Items/Reasoning/ReasoningResponseItem.cs +++ b/src/Custom/Responses/Items/Reasoning/ReasoningResponseItem.cs @@ -6,9 +6,11 @@ namespace OpenAI.Responses; [CodeGenType("ReasoningItemResource")] public partial class ReasoningResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public ReasoningStatus? Status { get; } + public ReasoningStatus? Status { get; set; } // CUSTOM: Added for convenience. public ReasoningResponseItem(string summaryText) : this(summaryParts: [new ReasoningSummaryTextPart(summaryText)]) @@ -19,7 +21,6 @@ public ReasoningResponseItem(string summaryText) : this(summaryParts: [new Reaso // CUSTOM: Added for convenience. public string GetSummaryText() { - return string.Concat( - values: SummaryParts.Select(part => (part as ReasoningSummaryTextPart)?.Text ?? string.Empty)); + return string.Concat(values: SummaryParts.Select(part => (part as ReasoningSummaryTextPart)?.Text ?? string.Empty)); } } diff --git a/src/Custom/Responses/Items/WebSearchTool/WebSearchCallResponseItem.cs b/src/Custom/Responses/Items/WebSearchTool/WebSearchCallResponseItem.cs index 02d99178b..7fa397403 100644 --- a/src/Custom/Responses/Items/WebSearchTool/WebSearchCallResponseItem.cs +++ b/src/Custom/Responses/Items/WebSearchTool/WebSearchCallResponseItem.cs @@ -4,7 +4,9 @@ namespace OpenAI.Responses; [CodeGenType("WebSearchToolCallItemResource")] public partial class WebSearchCallResponseItem { - // CUSTOM: Made nullable since this is a read-only property. + // CUSTOM: + // - Made nullable because this is an optional property. + // - Added setter because this is an optional property in an input/output type. [CodeGenMember("Status")] - public WebSearchCallStatus? Status { get; } + public WebSearchCallStatus? Status { get; set; } }