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

package com.azure.ai.metricsadvisor.implementation.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
import java.time.OffsetDateTime;
import java.util.List;

/** The AzureApplicationInsightsDataFeedPatch model. */
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "dataSourceType")
@JsonTypeName("AzureApplicationInsights")
@Fluent
public final class AzureApplicationInsightsDataFeedPatch extends DataFeedDetailPatch {
    /*
     * The dataSourceParameter property.
     */
    @JsonProperty(value = "dataSourceParameter")
    private AzureApplicationInsightsParameterPatch dataSourceParameter;

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

    /**
     * Get the dataSourceParameter property: The dataSourceParameter property.
     *
     * @return the dataSourceParameter value.
     */
    public AzureApplicationInsightsParameterPatch getDataSourceParameter() {
        return this.dataSourceParameter;
    }

    /**
     * Set the dataSourceParameter property: The dataSourceParameter property.
     *
     * @param dataSourceParameter the dataSourceParameter value to set.
     * @return the AzureApplicationInsightsDataFeedPatch object itself.
     */
    public AzureApplicationInsightsDataFeedPatch setDataSourceParameter(
            AzureApplicationInsightsParameterPatch dataSourceParameter) {
        this.dataSourceParameter = dataSourceParameter;
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setDataFeedName(String dataFeedName) {
        super.setDataFeedName(dataFeedName);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setDataFeedDescription(String dataFeedDescription) {
        super.setDataFeedDescription(dataFeedDescription);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setTimestampColumn(String timestampColumn) {
        super.setTimestampColumn(timestampColumn);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setDataStartFrom(OffsetDateTime dataStartFrom) {
        super.setDataStartFrom(dataStartFrom);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setStartOffsetInSeconds(Long startOffsetInSeconds) {
        super.setStartOffsetInSeconds(startOffsetInSeconds);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setMaxConcurrency(Integer maxConcurrency) {
        super.setMaxConcurrency(maxConcurrency);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setMinRetryIntervalInSeconds(Long minRetryIntervalInSeconds) {
        super.setMinRetryIntervalInSeconds(minRetryIntervalInSeconds);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setStopRetryAfterInSeconds(Long stopRetryAfterInSeconds) {
        super.setStopRetryAfterInSeconds(stopRetryAfterInSeconds);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setNeedRollup(NeedRollupEnum needRollup) {
        super.setNeedRollup(needRollup);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setRollUpMethod(RollUpMethod rollUpMethod) {
        super.setRollUpMethod(rollUpMethod);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setRollUpColumns(List<String> rollUpColumns) {
        super.setRollUpColumns(rollUpColumns);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setAllUpIdentification(String allUpIdentification) {
        super.setAllUpIdentification(allUpIdentification);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setFillMissingPointType(FillMissingPointType fillMissingPointType) {
        super.setFillMissingPointType(fillMissingPointType);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setFillMissingPointValue(Double fillMissingPointValue) {
        super.setFillMissingPointValue(fillMissingPointValue);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setViewMode(ViewMode viewMode) {
        super.setViewMode(viewMode);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setAdmins(List<String> admins) {
        super.setAdmins(admins);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setViewers(List<String> viewers) {
        super.setViewers(viewers);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setStatus(EntityStatus status) {
        super.setStatus(status);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setActionLinkTemplate(String actionLinkTemplate) {
        super.setActionLinkTemplate(actionLinkTemplate);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setAuthenticationType(AuthenticationTypeEnum authenticationType) {
        super.setAuthenticationType(authenticationType);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public AzureApplicationInsightsDataFeedPatch setCredentialId(String credentialId) {
        super.setCredentialId(credentialId);
        return this;
    }
}
