openai/openai-dotnet

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
achandmsft-patch-2

Branches

Tags

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

Clone

HTTPS

Download ZIP

src/Generated/Models/Batch/InternalBatchJob.Serialization.cs

440lines · modecode

1// <auto-generated/>
2
3#nullable disable
4
5using System;
6using System.ClientModel;
7using System.ClientModel.Primitives;
8using System.Collections.Generic;
9using System.Text.Json;
10using OpenAI;
11
12namespace OpenAI.Batch
13{
14 internal partial class InternalBatchJob : IJsonModel<InternalBatchJob>
15 {
16 internal InternalBatchJob() : this(null, null, null, null, null, null, default, null, null, default, default, default, default, default, default, default, default, default, null, null, null)
17 {
18 }
19
20 void IJsonModel<InternalBatchJob>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
21 {
22 writer.WriteStartObject();
23 JsonModelWriteCore(writer, options);
24 writer.WriteEndObject();
25 }
26
27 protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options)
28 {
29 string format = options.Format == "W" ? ((IPersistableModel<InternalBatchJob>)this).GetFormatFromOptions(options) : options.Format;
30 if (format != "J")
31 {
32 throw new FormatException($"The model {nameof(InternalBatchJob)} does not support writing '{format}' format.");
33 }
34 if (_additionalBinaryDataProperties?.ContainsKey("id") != true)
35 {
36 writer.WritePropertyName("id"u8);
37 writer.WriteStringValue(Id);
38 }
39 if (_additionalBinaryDataProperties?.ContainsKey("object") != true)
40 {
41 writer.WritePropertyName("object"u8);
42 writer.WriteStringValue(Object);
43 }
44 if (_additionalBinaryDataProperties?.ContainsKey("endpoint") != true)
45 {
46 writer.WritePropertyName("endpoint"u8);
47 writer.WriteStringValue(Endpoint);
48 }
49 if (Optional.IsDefined(Errors) && _additionalBinaryDataProperties?.ContainsKey("errors") != true)
50 {
51 writer.WritePropertyName("errors"u8);
52 writer.WriteObjectValue(Errors, options);
53 }
54 if (_additionalBinaryDataProperties?.ContainsKey("input_file_id") != true)
55 {
56 writer.WritePropertyName("input_file_id"u8);
57 writer.WriteStringValue(InputFileId);
58 }
59 if (_additionalBinaryDataProperties?.ContainsKey("completion_window") != true)
60 {
61 writer.WritePropertyName("completion_window"u8);
62 writer.WriteStringValue(CompletionWindow);
63 }
64 if (_additionalBinaryDataProperties?.ContainsKey("status") != true)
65 {
66 writer.WritePropertyName("status"u8);
67 writer.WriteStringValue(Status.ToString());
68 }
69 if (Optional.IsDefined(OutputFileId) && _additionalBinaryDataProperties?.ContainsKey("output_file_id") != true)
70 {
71 writer.WritePropertyName("output_file_id"u8);
72 writer.WriteStringValue(OutputFileId);
73 }
74 if (Optional.IsDefined(ErrorFileId) && _additionalBinaryDataProperties?.ContainsKey("error_file_id") != true)
75 {
76 writer.WritePropertyName("error_file_id"u8);
77 writer.WriteStringValue(ErrorFileId);
78 }
79 if (_additionalBinaryDataProperties?.ContainsKey("created_at") != true)
80 {
81 writer.WritePropertyName("created_at"u8);
82 writer.WriteNumberValue(CreatedAt, "U");
83 }
84 if (Optional.IsDefined(InProgressAt) && _additionalBinaryDataProperties?.ContainsKey("in_progress_at") != true)
85 {
86 writer.WritePropertyName("in_progress_at"u8);
87 writer.WriteNumberValue(InProgressAt.Value, "U");
88 }
89 if (Optional.IsDefined(ExpiresAt) && _additionalBinaryDataProperties?.ContainsKey("expires_at") != true)
90 {
91 writer.WritePropertyName("expires_at"u8);
92 writer.WriteNumberValue(ExpiresAt.Value, "U");
93 }
94 if (Optional.IsDefined(FinalizingAt) && _additionalBinaryDataProperties?.ContainsKey("finalizing_at") != true)
95 {
96 writer.WritePropertyName("finalizing_at"u8);
97 writer.WriteNumberValue(FinalizingAt.Value, "U");
98 }
99 if (Optional.IsDefined(CompletedAt) && _additionalBinaryDataProperties?.ContainsKey("completed_at") != true)
100 {
101 writer.WritePropertyName("completed_at"u8);
102 writer.WriteNumberValue(CompletedAt.Value, "U");
103 }
104 if (Optional.IsDefined(FailedAt) && _additionalBinaryDataProperties?.ContainsKey("failed_at") != true)
105 {
106 writer.WritePropertyName("failed_at"u8);
107 writer.WriteNumberValue(FailedAt.Value, "U");
108 }
109 if (Optional.IsDefined(ExpiredAt) && _additionalBinaryDataProperties?.ContainsKey("expired_at") != true)
110 {
111 writer.WritePropertyName("expired_at"u8);
112 writer.WriteNumberValue(ExpiredAt.Value, "U");
113 }
114 if (Optional.IsDefined(CancellingAt) && _additionalBinaryDataProperties?.ContainsKey("cancelling_at") != true)
115 {
116 writer.WritePropertyName("cancelling_at"u8);
117 writer.WriteNumberValue(CancellingAt.Value, "U");
118 }
119 if (Optional.IsDefined(CancelledAt) && _additionalBinaryDataProperties?.ContainsKey("cancelled_at") != true)
120 {
121 writer.WritePropertyName("cancelled_at"u8);
122 writer.WriteNumberValue(CancelledAt.Value, "U");
123 }
124 if (Optional.IsDefined(RequestCounts) && _additionalBinaryDataProperties?.ContainsKey("request_counts") != true)
125 {
126 writer.WritePropertyName("request_counts"u8);
127 writer.WriteObjectValue(RequestCounts, options);
128 }
129 if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true)
130 {
131 if (Optional.IsCollectionDefined(Metadata))
132 {
133 writer.WritePropertyName("metadata"u8);
134 writer.WriteStartObject();
135 foreach (var item in Metadata)
136 {
137 writer.WritePropertyName(item.Key);
138 if (item.Value == null)
139 {
140 writer.WriteNullValue();
141 continue;
142 }
143 writer.WriteStringValue(item.Value);
144 }
145 writer.WriteEndObject();
146 }
147 else
148 {
149 writer.WriteNull("metadata"u8);
150 }
151 }
152 // Plugin customization: remove options.Format != "W" check
153 if (_additionalBinaryDataProperties != null)
154 {
155 foreach (var item in _additionalBinaryDataProperties)
156 {
157 if (ModelSerializationExtensions.IsSentinelValue(item.Value))
158 {
159 continue;
160 }
161 writer.WritePropertyName(item.Key);
162#if NET6_0_OR_GREATER
163 writer.WriteRawValue(item.Value);
164#else
165 using (JsonDocument document = JsonDocument.Parse(item.Value))
166 {
167 JsonSerializer.Serialize(writer, document.RootElement);
168 }
169#endif
170 }
171 }
172 }
173
174 InternalBatchJob IJsonModel<InternalBatchJob>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options);
175
176 protected virtual InternalBatchJob JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options)
177 {
178 string format = options.Format == "W" ? ((IPersistableModel<InternalBatchJob>)this).GetFormatFromOptions(options) : options.Format;
179 if (format != "J")
180 {
181 throw new FormatException($"The model {nameof(InternalBatchJob)} does not support reading '{format}' format.");
182 }
183 using JsonDocument document = JsonDocument.ParseValue(ref reader);
184 return DeserializeInternalBatchJob(document.RootElement, options);
185 }
186
187 internal static InternalBatchJob DeserializeInternalBatchJob(JsonElement element, ModelReaderWriterOptions options)
188 {
189 if (element.ValueKind == JsonValueKind.Null)
190 {
191 return null;
192 }
193 string id = default;
194 string @object = default;
195 string endpoint = default;
196 InternalBatchErrors errors = default;
197 string inputFileId = default;
198 string completionWindow = default;
199 InternalBatchStatus status = default;
200 string outputFileId = default;
201 string errorFileId = default;
202 DateTimeOffset createdAt = default;
203 DateTimeOffset? inProgressAt = default;
204 DateTimeOffset? expiresAt = default;
205 DateTimeOffset? finalizingAt = default;
206 DateTimeOffset? completedAt = default;
207 DateTimeOffset? failedAt = default;
208 DateTimeOffset? expiredAt = default;
209 DateTimeOffset? cancellingAt = default;
210 DateTimeOffset? cancelledAt = default;
211 InternalBatchRequestCounts requestCounts = default;
212 IDictionary<string, string> metadata = default;
213 IDictionary<string, BinaryData> additionalBinaryDataProperties = new ChangeTrackingDictionary<string, BinaryData>();
214 foreach (var prop in element.EnumerateObject())
215 {
216 if (prop.NameEquals("id"u8))
217 {
218 id = prop.Value.GetString();
219 continue;
220 }
221 if (prop.NameEquals("object"u8))
222 {
223 @object = prop.Value.GetString();
224 continue;
225 }
226 if (prop.NameEquals("endpoint"u8))
227 {
228 endpoint = prop.Value.GetString();
229 continue;
230 }
231 if (prop.NameEquals("errors"u8))
232 {
233 if (prop.Value.ValueKind == JsonValueKind.Null)
234 {
235 continue;
236 }
237 errors = InternalBatchErrors.DeserializeInternalBatchErrors(prop.Value, options);
238 continue;
239 }
240 if (prop.NameEquals("input_file_id"u8))
241 {
242 inputFileId = prop.Value.GetString();
243 continue;
244 }
245 if (prop.NameEquals("completion_window"u8))
246 {
247 completionWindow = prop.Value.GetString();
248 continue;
249 }
250 if (prop.NameEquals("status"u8))
251 {
252 status = new InternalBatchStatus(prop.Value.GetString());
253 continue;
254 }
255 if (prop.NameEquals("output_file_id"u8))
256 {
257 outputFileId = prop.Value.GetString();
258 continue;
259 }
260 if (prop.NameEquals("error_file_id"u8))
261 {
262 errorFileId = prop.Value.GetString();
263 continue;
264 }
265 if (prop.NameEquals("created_at"u8))
266 {
267 createdAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
268 continue;
269 }
270 if (prop.NameEquals("in_progress_at"u8))
271 {
272 if (prop.Value.ValueKind == JsonValueKind.Null)
273 {
274 continue;
275 }
276 inProgressAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
277 continue;
278 }
279 if (prop.NameEquals("expires_at"u8))
280 {
281 if (prop.Value.ValueKind == JsonValueKind.Null)
282 {
283 continue;
284 }
285 expiresAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
286 continue;
287 }
288 if (prop.NameEquals("finalizing_at"u8))
289 {
290 if (prop.Value.ValueKind == JsonValueKind.Null)
291 {
292 continue;
293 }
294 finalizingAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
295 continue;
296 }
297 if (prop.NameEquals("completed_at"u8))
298 {
299 if (prop.Value.ValueKind == JsonValueKind.Null)
300 {
301 continue;
302 }
303 completedAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
304 continue;
305 }
306 if (prop.NameEquals("failed_at"u8))
307 {
308 if (prop.Value.ValueKind == JsonValueKind.Null)
309 {
310 continue;
311 }
312 failedAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
313 continue;
314 }
315 if (prop.NameEquals("expired_at"u8))
316 {
317 if (prop.Value.ValueKind == JsonValueKind.Null)
318 {
319 continue;
320 }
321 expiredAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
322 continue;
323 }
324 if (prop.NameEquals("cancelling_at"u8))
325 {
326 if (prop.Value.ValueKind == JsonValueKind.Null)
327 {
328 continue;
329 }
330 cancellingAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
331 continue;
332 }
333 if (prop.NameEquals("cancelled_at"u8))
334 {
335 if (prop.Value.ValueKind == JsonValueKind.Null)
336 {
337 continue;
338 }
339 cancelledAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
340 continue;
341 }
342 if (prop.NameEquals("request_counts"u8))
343 {
344 if (prop.Value.ValueKind == JsonValueKind.Null)
345 {
346 continue;
347 }
348 requestCounts = InternalBatchRequestCounts.DeserializeInternalBatchRequestCounts(prop.Value, options);
349 continue;
350 }
351 if (prop.NameEquals("metadata"u8))
352 {
353 if (prop.Value.ValueKind == JsonValueKind.Null)
354 {
355 metadata = new ChangeTrackingDictionary<string, string>();
356 continue;
357 }
358 Dictionary<string, string> dictionary = new Dictionary<string, string>();
359 foreach (var prop0 in prop.Value.EnumerateObject())
360 {
361 if (prop0.Value.ValueKind == JsonValueKind.Null)
362 {
363 dictionary.Add(prop0.Name, null);
364 }
365 else
366 {
367 dictionary.Add(prop0.Name, prop0.Value.GetString());
368 }
369 }
370 metadata = dictionary;
371 continue;
372 }
373 // Plugin customization: remove options.Format != "W" check
374 additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText()));
375 }
376 return new InternalBatchJob(
377 id,
378 @object,
379 endpoint,
380 errors,
381 inputFileId,
382 completionWindow,
383 status,
384 outputFileId,
385 errorFileId,
386 createdAt,
387 inProgressAt,
388 expiresAt,
389 finalizingAt,
390 completedAt,
391 failedAt,
392 expiredAt,
393 cancellingAt,
394 cancelledAt,
395 requestCounts,
396 metadata,
397 additionalBinaryDataProperties);
398 }
399
400 BinaryData IPersistableModel<InternalBatchJob>.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options);
401
402 protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options)
403 {
404 string format = options.Format == "W" ? ((IPersistableModel<InternalBatchJob>)this).GetFormatFromOptions(options) : options.Format;
405 switch (format)
406 {
407 case "J":
408 return ModelReaderWriter.Write(this, options, OpenAIContext.Default);
409 default:
410 throw new FormatException($"The model {nameof(InternalBatchJob)} does not support writing '{options.Format}' format.");
411 }
412 }
413
414 InternalBatchJob IPersistableModel<InternalBatchJob>.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options);
415
416 protected virtual InternalBatchJob PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options)
417 {
418 string format = options.Format == "W" ? ((IPersistableModel<InternalBatchJob>)this).GetFormatFromOptions(options) : options.Format;
419 switch (format)
420 {
421 case "J":
422 using (JsonDocument document = JsonDocument.Parse(data))
423 {
424 return DeserializeInternalBatchJob(document.RootElement, options);
425 }
426 default:
427 throw new FormatException($"The model {nameof(InternalBatchJob)} does not support reading '{options.Format}' format.");
428 }
429 }
430
431 string IPersistableModel<InternalBatchJob>.GetFormatFromOptions(ModelReaderWriterOptions options) => "J";
432
433 public static explicit operator InternalBatchJob(ClientResult result)
434 {
435 using PipelineResponse response = result.GetRawResponse();
436 using JsonDocument document = JsonDocument.Parse(response.Content);
437 return DeserializeInternalBatchJob(document.RootElement, ModelSerializationExtensions.WireOptions);
438 }
439 }
440}
441