internal static FormatWriteSettings DeserializeFormatWriteSettings(JsonElement element) { if (element.TryGetProperty("type", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "AvroWriteSettings": return(AvroWriteSettings.DeserializeAvroWriteSettings(element)); case "JsonWriteSettings": return(JsonWriteSettings.DeserializeJsonWriteSettings(element)); case "DelimitedTextWriteSettings": return(DelimitedTextWriteSettings.DeserializeDelimitedTextWriteSettings(element)); } } string type = default; IDictionary <string, object> additionalProperties = default; Dictionary <string, object> additionalPropertiesDictionary = new Dictionary <string, object>(); foreach (var property in element.EnumerateObject()) { if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject()); } additionalProperties = additionalPropertiesDictionary; return(new FormatWriteSettings(type, additionalProperties)); }
internal static JsonSink DeserializeJsonSink(JsonElement element) { Optional <StoreWriteSettings> storeSettings = default; Optional <JsonWriteSettings> formatSettings = default; string type = default; Optional <object> writeBatchSize = default; Optional <object> writeBatchTimeout = default; Optional <object> sinkRetryCount = default; Optional <object> sinkRetryWait = default; Optional <object> maxConcurrentConnections = default; IDictionary <string, object> additionalProperties = default; Dictionary <string, object> additionalPropertiesDictionary = new Dictionary <string, object>(); foreach (var property in element.EnumerateObject()) { if (property.NameEquals("storeSettings")) { storeSettings = StoreWriteSettings.DeserializeStoreWriteSettings(property.Value); continue; } if (property.NameEquals("formatSettings")) { formatSettings = JsonWriteSettings.DeserializeJsonWriteSettings(property.Value); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("writeBatchSize")) { writeBatchSize = property.Value.GetObject(); continue; } if (property.NameEquals("writeBatchTimeout")) { writeBatchTimeout = property.Value.GetObject(); continue; } if (property.NameEquals("sinkRetryCount")) { sinkRetryCount = property.Value.GetObject(); continue; } if (property.NameEquals("sinkRetryWait")) { sinkRetryWait = property.Value.GetObject(); continue; } if (property.NameEquals("maxConcurrentConnections")) { maxConcurrentConnections = property.Value.GetObject(); continue; } additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject()); } additionalProperties = additionalPropertiesDictionary; return(new JsonSink(type, writeBatchSize.Value, writeBatchTimeout.Value, sinkRetryCount.Value, sinkRetryWait.Value, maxConcurrentConnections.Value, additionalProperties, storeSettings.Value, formatSettings.Value)); }
internal JsonSink(string type, object writeBatchSize, object writeBatchTimeout, object sinkRetryCount, object sinkRetryWait, object maxConcurrentConnections, IDictionary <string, object> additionalProperties, StoreWriteSettings storeSettings, JsonWriteSettings formatSettings) : base(type, writeBatchSize, writeBatchTimeout, sinkRetryCount, sinkRetryWait, maxConcurrentConnections, additionalProperties) { StoreSettings = storeSettings; FormatSettings = formatSettings; Type = type ?? "JsonSink"; }