// 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.azure.core.annotation.JsonFlatten;
import com.fasterxml.jackson.annotation.JsonProperty;

/** SSIS package execution log location. */
@JsonFlatten
@Fluent
public class SsisLogLocation {
    /*
     * The SSIS package execution log path. Type: string (or Expression with resultType string).
     */
    @JsonProperty(value = "logPath", required = true)
    private Object logPath;

    /*
     * The type of SSIS log location.
     */
    @JsonProperty(value = "type", required = true)
    private SsisLogLocationType type;

    /*
     * The package execution log access credential.
     */
    @JsonProperty(value = "typeProperties.accessCredential")
    private SsisAccessCredential accessCredential;

    /*
     * Specifies the interval to refresh log. The default interval is 5 minutes. Type: string (or Expression with
     * resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
     */
    @JsonProperty(value = "typeProperties.logRefreshInterval")
    private Object logRefreshInterval;

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

    /**
     * Get the logPath property: The SSIS package execution log path. Type: string (or Expression with resultType
     * string).
     *
     * @return the logPath value.
     */
    public Object getLogPath() {
        return this.logPath;
    }

    /**
     * Set the logPath property: The SSIS package execution log path. Type: string (or Expression with resultType
     * string).
     *
     * @param logPath the logPath value to set.
     * @return the SsisLogLocation object itself.
     */
    public SsisLogLocation setLogPath(Object logPath) {
        this.logPath = logPath;
        return this;
    }

    /**
     * Get the type property: The type of SSIS log location.
     *
     * @return the type value.
     */
    public SsisLogLocationType getType() {
        return this.type;
    }

    /**
     * Set the type property: The type of SSIS log location.
     *
     * @param type the type value to set.
     * @return the SsisLogLocation object itself.
     */
    public SsisLogLocation setType(SsisLogLocationType type) {
        this.type = type;
        return this;
    }

    /**
     * Get the accessCredential property: The package execution log access credential.
     *
     * @return the accessCredential value.
     */
    public SsisAccessCredential getAccessCredential() {
        return this.accessCredential;
    }

    /**
     * Set the accessCredential property: The package execution log access credential.
     *
     * @param accessCredential the accessCredential value to set.
     * @return the SsisLogLocation object itself.
     */
    public SsisLogLocation setAccessCredential(SsisAccessCredential accessCredential) {
        this.accessCredential = accessCredential;
        return this;
    }

    /**
     * Get the logRefreshInterval property: Specifies the interval to refresh log. The default interval is 5 minutes.
     * Type: string (or Expression with resultType string), pattern:
     * ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
     *
     * @return the logRefreshInterval value.
     */
    public Object getLogRefreshInterval() {
        return this.logRefreshInterval;
    }

    /**
     * Set the logRefreshInterval property: Specifies the interval to refresh log. The default interval is 5 minutes.
     * Type: string (or Expression with resultType string), pattern:
     * ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
     *
     * @param logRefreshInterval the logRefreshInterval value to set.
     * @return the SsisLogLocation object itself.
     */
    public SsisLogLocation setLogRefreshInterval(Object logRefreshInterval) {
        this.logRefreshInterval = logRefreshInterval;
        return this;
    }
}
