internal static ImportSettings DeserializeImportSettings(JsonElement element) { if (element.TryGetProperty("type", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "SnowflakeImportCopyCommand": return(SnowflakeImportCopyCommand.DeserializeSnowflakeImportCopyCommand(element)); case "AzureDatabricksDeltaLakeImportCommand": return(AzureDatabricksDeltaLakeImportCommand.DeserializeAzureDatabricksDeltaLakeImportCommand(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 ImportSettings(type, additionalProperties)); }
internal static SnowflakeSink DeserializeSnowflakeSink(JsonElement element) { Optional <object> preCopyScript = default; Optional <SnowflakeImportCopyCommand> importSettings = 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("preCopyScript")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } preCopyScript = property.Value.GetObject(); continue; } if (property.NameEquals("importSettings")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } importSettings = SnowflakeImportCopyCommand.DeserializeSnowflakeImportCopyCommand(property.Value); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("writeBatchSize")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } writeBatchSize = property.Value.GetObject(); continue; } if (property.NameEquals("writeBatchTimeout")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } writeBatchTimeout = property.Value.GetObject(); continue; } if (property.NameEquals("sinkRetryCount")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sinkRetryCount = property.Value.GetObject(); continue; } if (property.NameEquals("sinkRetryWait")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sinkRetryWait = property.Value.GetObject(); continue; } if (property.NameEquals("maxConcurrentConnections")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } maxConcurrentConnections = property.Value.GetObject(); continue; } additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject()); } additionalProperties = additionalPropertiesDictionary; return(new SnowflakeSink(type, writeBatchSize.Value, writeBatchTimeout.Value, sinkRetryCount.Value, sinkRetryWait.Value, maxConcurrentConnections.Value, additionalProperties, preCopyScript.Value, importSettings.Value)); }