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/Containers/ContainerResourceExpiresAfter.Serialization.cs

138lines · modecode

1// <auto-generated/>
2
3#nullable disable
4
5using System;
6using System.ClientModel.Primitives;
7using System.Collections.Generic;
8using System.Text.Json;
9using OpenAI;
10
11namespace OpenAI.Containers
12{
13 public partial class ContainerResourceExpiresAfter : IJsonModel<ContainerResourceExpiresAfter>
14 {
15 void IJsonModel<ContainerResourceExpiresAfter>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
16 {
17 writer.WriteStartObject();
18 JsonModelWriteCore(writer, options);
19 writer.WriteEndObject();
20 }
21
22 protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options)
23 {
24 string format = options.Format == "W" ? ((IPersistableModel<ContainerResourceExpiresAfter>)this).GetFormatFromOptions(options) : options.Format;
25 if (format != "J")
26 {
27 throw new FormatException($"The model {nameof(ContainerResourceExpiresAfter)} does not support writing '{format}' format.");
28 }
29 if (Optional.IsDefined(Anchor) && _additionalBinaryDataProperties?.ContainsKey("anchor") != true)
30 {
31 writer.WritePropertyName("anchor"u8);
32 writer.WriteStringValue(Anchor);
33 }
34 if (Optional.IsDefined(Minutes) && _additionalBinaryDataProperties?.ContainsKey("minutes") != true)
35 {
36 writer.WritePropertyName("minutes"u8);
37 writer.WriteNumberValue(Minutes.Value);
38 }
39 // Plugin customization: remove options.Format != "W" check
40 if (_additionalBinaryDataProperties != null)
41 {
42 foreach (var item in _additionalBinaryDataProperties)
43 {
44 if (ModelSerializationExtensions.IsSentinelValue(item.Value))
45 {
46 continue;
47 }
48 writer.WritePropertyName(item.Key);
49#if NET6_0_OR_GREATER
50 writer.WriteRawValue(item.Value);
51#else
52 using (JsonDocument document = JsonDocument.Parse(item.Value))
53 {
54 JsonSerializer.Serialize(writer, document.RootElement);
55 }
56#endif
57 }
58 }
59 }
60
61 ContainerResourceExpiresAfter IJsonModel<ContainerResourceExpiresAfter>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options);
62
63 protected virtual ContainerResourceExpiresAfter JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options)
64 {
65 string format = options.Format == "W" ? ((IPersistableModel<ContainerResourceExpiresAfter>)this).GetFormatFromOptions(options) : options.Format;
66 if (format != "J")
67 {
68 throw new FormatException($"The model {nameof(ContainerResourceExpiresAfter)} does not support reading '{format}' format.");
69 }
70 using JsonDocument document = JsonDocument.ParseValue(ref reader);
71 return DeserializeContainerResourceExpiresAfter(document.RootElement, options);
72 }
73
74 internal static ContainerResourceExpiresAfter DeserializeContainerResourceExpiresAfter(JsonElement element, ModelReaderWriterOptions options)
75 {
76 if (element.ValueKind == JsonValueKind.Null)
77 {
78 return null;
79 }
80 string anchor = default;
81 int? minutes = default;
82 IDictionary<string, BinaryData> additionalBinaryDataProperties = new ChangeTrackingDictionary<string, BinaryData>();
83 foreach (var prop in element.EnumerateObject())
84 {
85 if (prop.NameEquals("anchor"u8))
86 {
87 anchor = prop.Value.GetString();
88 continue;
89 }
90 if (prop.NameEquals("minutes"u8))
91 {
92 if (prop.Value.ValueKind == JsonValueKind.Null)
93 {
94 continue;
95 }
96 minutes = prop.Value.GetInt32();
97 continue;
98 }
99 // Plugin customization: remove options.Format != "W" check
100 additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText()));
101 }
102 return new ContainerResourceExpiresAfter(anchor, minutes, additionalBinaryDataProperties);
103 }
104
105 BinaryData IPersistableModel<ContainerResourceExpiresAfter>.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options);
106
107 protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options)
108 {
109 string format = options.Format == "W" ? ((IPersistableModel<ContainerResourceExpiresAfter>)this).GetFormatFromOptions(options) : options.Format;
110 switch (format)
111 {
112 case "J":
113 return ModelReaderWriter.Write(this, options, OpenAIContext.Default);
114 default:
115 throw new FormatException($"The model {nameof(ContainerResourceExpiresAfter)} does not support writing '{options.Format}' format.");
116 }
117 }
118
119 ContainerResourceExpiresAfter IPersistableModel<ContainerResourceExpiresAfter>.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options);
120
121 protected virtual ContainerResourceExpiresAfter PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options)
122 {
123 string format = options.Format == "W" ? ((IPersistableModel<ContainerResourceExpiresAfter>)this).GetFormatFromOptions(options) : options.Format;
124 switch (format)
125 {
126 case "J":
127 using (JsonDocument document = JsonDocument.Parse(data))
128 {
129 return DeserializeContainerResourceExpiresAfter(document.RootElement, options);
130 }
131 default:
132 throw new FormatException($"The model {nameof(ContainerResourceExpiresAfter)} does not support reading '{options.Format}' format.");
133 }
134 }
135
136 string IPersistableModel<ContainerResourceExpiresAfter>.GetFormatFromOptions(ModelReaderWriterOptions options) => "J";
137 }
138}