internal static ScriptActivityTypePropertiesLogSettings DeserializeScriptActivityTypePropertiesLogSettings(JsonElement element)
        {
            ScriptActivityLogDestination   logDestination      = default;
            Optional <LogLocationSettings> logLocationSettings = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("logDestination"))
                {
                    logDestination = new ScriptActivityLogDestination(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("logLocationSettings"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    logLocationSettings = LogLocationSettings.DeserializeLogLocationSettings(property.Value);
                    continue;
                }
            }
            return(new ScriptActivityTypePropertiesLogSettings(logDestination, logLocationSettings.Value));
        }
        public LogSettings(LogLocationSettings logLocationSettings)
        {
            if (logLocationSettings == null)
            {
                throw new ArgumentNullException(nameof(logLocationSettings));
            }

            LogLocationSettings = logLocationSettings;
        }
        internal static LogSettings DeserializeLogSettings(JsonElement element)
        {
            Optional <object> enableCopyActivityLog = default;
            Optional <CopyActivityLogSettings> copyActivityLogSettings = default;
            LogLocationSettings logLocationSettings = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("enableCopyActivityLog"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    enableCopyActivityLog = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("copyActivityLogSettings"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    copyActivityLogSettings = CopyActivityLogSettings.DeserializeCopyActivityLogSettings(property.Value);
                    continue;
                }
                if (property.NameEquals("logLocationSettings"))
                {
                    logLocationSettings = LogLocationSettings.DeserializeLogLocationSettings(property.Value);
                    continue;
                }
            }
            return(new LogSettings(enableCopyActivityLog.Value, copyActivityLogSettings.Value, logLocationSettings));
        }
 internal LogSettings(object enableCopyActivityLog, CopyActivityLogSettings copyActivityLogSettings, LogLocationSettings logLocationSettings)
 {
     EnableCopyActivityLog   = enableCopyActivityLog;
     CopyActivityLogSettings = copyActivityLogSettings;
     LogLocationSettings     = logLocationSettings;
 }