// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.analytics.synapse.artifacts.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Log settings. */
@Fluent
public final class LogSettings {
    /*
     * Specifies whether to enable copy activity log. Type: boolean (or Expression with resultType boolean).
     */
    @JsonProperty(value = "enableCopyActivityLog")
    private Object enableCopyActivityLog;

    /*
     * Specifies settings for copy activity log.
     */
    @JsonProperty(value = "copyActivityLogSettings")
    private CopyActivityLogSettings copyActivityLogSettings;

    /*
     * Log location settings customer needs to provide when enabling log.
     */
    @JsonProperty(value = "logLocationSettings", required = true)
    private LogLocationSettings logLocationSettings;

    /** Creates an instance of LogSettings class. */
    public LogSettings() {}

    /**
     * Get the enableCopyActivityLog property: Specifies whether to enable copy activity log. Type: boolean (or
     * Expression with resultType boolean).
     *
     * @return the enableCopyActivityLog value.
     */
    public Object getEnableCopyActivityLog() {
        return this.enableCopyActivityLog;
    }

    /**
     * Set the enableCopyActivityLog property: Specifies whether to enable copy activity log. Type: boolean (or
     * Expression with resultType boolean).
     *
     * @param enableCopyActivityLog the enableCopyActivityLog value to set.
     * @return the LogSettings object itself.
     */
    public LogSettings setEnableCopyActivityLog(Object enableCopyActivityLog) {
        this.enableCopyActivityLog = enableCopyActivityLog;
        return this;
    }

    /**
     * Get the copyActivityLogSettings property: Specifies settings for copy activity log.
     *
     * @return the copyActivityLogSettings value.
     */
    public CopyActivityLogSettings getCopyActivityLogSettings() {
        return this.copyActivityLogSettings;
    }

    /**
     * Set the copyActivityLogSettings property: Specifies settings for copy activity log.
     *
     * @param copyActivityLogSettings the copyActivityLogSettings value to set.
     * @return the LogSettings object itself.
     */
    public LogSettings setCopyActivityLogSettings(CopyActivityLogSettings copyActivityLogSettings) {
        this.copyActivityLogSettings = copyActivityLogSettings;
        return this;
    }

    /**
     * Get the logLocationSettings property: Log location settings customer needs to provide when enabling log.
     *
     * @return the logLocationSettings value.
     */
    public LogLocationSettings getLogLocationSettings() {
        return this.logLocationSettings;
    }

    /**
     * Set the logLocationSettings property: Log location settings customer needs to provide when enabling log.
     *
     * @param logLocationSettings the logLocationSettings value to set.
     * @return the LogSettings object itself.
     */
    public LogSettings setLogLocationSettings(LogLocationSettings logLocationSettings) {
        this.logLocationSettings = logLocationSettings;
        return this;
    }
}
