openai/openai-dotnet

Public

mirrored from https://github.com/openai/openai-dotnetAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
mailinhphan/clientOptions

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

OpenAI/src/Generated/Models/Files/FileDeletionResult.Serialization.cs

163lines · modecode

1// <auto-generated/>
2
3#nullable disable
4
5using System;
6using System.ClientModel;
7using System.ClientModel.Primitives;
8using System.Collections.Generic;
9using System.Diagnostics.CodeAnalysis;
10using System.Text.Json;
11using OpenAI;
12
13namespace OpenAI.Files
14{
15 public partial class FileDeletionResult : IJsonModel<FileDeletionResult>
16 {
17 internal FileDeletionResult()
18 {
19 }
20
21 [Experimental("OPENAI001")]
22 protected virtual FileDeletionResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options)
23 {
24 string format = options.Format == "W" ? ((IPersistableModel<FileDeletionResult>)this).GetFormatFromOptions(options) : options.Format;
25 switch (format)
26 {
27 case "J":
28 using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions))
29 {
30 return DeserializeFileDeletionResult(document.RootElement, options);
31 }
32 default:
33 throw new FormatException($"The model {nameof(FileDeletionResult)} does not support reading '{options.Format}' format.");
34 }
35 }
36
37 [Experimental("OPENAI001")]
38 protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options)
39 {
40 string format = options.Format == "W" ? ((IPersistableModel<FileDeletionResult>)this).GetFormatFromOptions(options) : options.Format;
41 switch (format)
42 {
43 case "J":
44 return ModelReaderWriter.Write(this, options, OpenAIContext.Default);
45 default:
46 throw new FormatException($"The model {nameof(FileDeletionResult)} does not support writing '{options.Format}' format.");
47 }
48 }
49
50 BinaryData IPersistableModel<FileDeletionResult>.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options);
51
52 FileDeletionResult IPersistableModel<FileDeletionResult>.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options);
53
54 string IPersistableModel<FileDeletionResult>.GetFormatFromOptions(ModelReaderWriterOptions options) => "J";
55
56 [Experimental("OPENAI001")]
57 public static explicit operator FileDeletionResult(ClientResult result)
58 {
59 PipelineResponse response = result.GetRawResponse();
60 using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions);
61 return DeserializeFileDeletionResult(document.RootElement, ModelSerializationExtensions.WireOptions);
62 }
63
64 void IJsonModel<FileDeletionResult>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
65 {
66 writer.WriteStartObject();
67 JsonModelWriteCore(writer, options);
68 writer.WriteEndObject();
69 }
70
71 [Experimental("OPENAI001")]
72 protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options)
73 {
74 string format = options.Format == "W" ? ((IPersistableModel<FileDeletionResult>)this).GetFormatFromOptions(options) : options.Format;
75 if (format != "J")
76 {
77 throw new FormatException($"The model {nameof(FileDeletionResult)} does not support writing '{format}' format.");
78 }
79 if (_additionalBinaryDataProperties?.ContainsKey("id") != true)
80 {
81 writer.WritePropertyName("id"u8);
82 writer.WriteStringValue(FileId);
83 }
84 if (_additionalBinaryDataProperties?.ContainsKey("object") != true)
85 {
86 writer.WritePropertyName("object"u8);
87 writer.WriteStringValue(Object);
88 }
89 if (_additionalBinaryDataProperties?.ContainsKey("deleted") != true)
90 {
91 writer.WritePropertyName("deleted"u8);
92 writer.WriteBooleanValue(Deleted);
93 }
94 // Plugin customization: remove options.Format != "W" check
95 if (_additionalBinaryDataProperties != null)
96 {
97 foreach (var item in _additionalBinaryDataProperties)
98 {
99 if (ModelSerializationExtensions.IsSentinelValue(item.Value))
100 {
101 continue;
102 }
103 writer.WritePropertyName(item.Key);
104#if NET6_0_OR_GREATER
105 writer.WriteRawValue(item.Value);
106#else
107 using (JsonDocument document = JsonDocument.Parse(item.Value))
108 {
109 JsonSerializer.Serialize(writer, document.RootElement);
110 }
111#endif
112 }
113 }
114 }
115
116 FileDeletionResult IJsonModel<FileDeletionResult>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options);
117
118 [Experimental("OPENAI001")]
119 protected virtual FileDeletionResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options)
120 {
121 string format = options.Format == "W" ? ((IPersistableModel<FileDeletionResult>)this).GetFormatFromOptions(options) : options.Format;
122 if (format != "J")
123 {
124 throw new FormatException($"The model {nameof(FileDeletionResult)} does not support reading '{format}' format.");
125 }
126 using JsonDocument document = JsonDocument.ParseValue(ref reader);
127 return DeserializeFileDeletionResult(document.RootElement, options);
128 }
129
130 internal static FileDeletionResult DeserializeFileDeletionResult(JsonElement element, ModelReaderWriterOptions options)
131 {
132 if (element.ValueKind == JsonValueKind.Null)
133 {
134 return null;
135 }
136 string fileId = default;
137 string @object = default;
138 bool deleted = default;
139 IDictionary<string, BinaryData> additionalBinaryDataProperties = new ChangeTrackingDictionary<string, BinaryData>();
140 foreach (var prop in element.EnumerateObject())
141 {
142 if (prop.NameEquals("id"u8))
143 {
144 fileId = prop.Value.GetString();
145 continue;
146 }
147 if (prop.NameEquals("object"u8))
148 {
149 @object = prop.Value.GetString();
150 continue;
151 }
152 if (prop.NameEquals("deleted"u8))
153 {
154 deleted = prop.Value.GetBoolean();
155 continue;
156 }
157 // Plugin customization: remove options.Format != "W" check
158 additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText()));
159 }
160 return new FileDeletionResult(fileId, @object, deleted, additionalBinaryDataProperties);
161 }
162 }
163}