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

package com.azure.resourcemanager.customerinsights.models;

import com.azure.core.annotation.Fluent;
import com.azure.resourcemanager.customerinsights.fluent.models.KpiDefinitionInner;
import java.util.List;
import java.util.Map;

/** The enriching KPI definition. */
@Fluent
public final class EnrichingKpi extends KpiDefinitionInner {
    /** Creates an instance of EnrichingKpi class. */
    public EnrichingKpi() {
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withEntityType(EntityTypes entityType) {
        super.withEntityType(entityType);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withEntityTypeName(String entityTypeName) {
        super.withEntityTypeName(entityTypeName);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withDisplayName(Map<String, String> displayName) {
        super.withDisplayName(displayName);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withDescription(Map<String, String> description) {
        super.withDescription(description);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withCalculationWindow(CalculationWindowTypes calculationWindow) {
        super.withCalculationWindow(calculationWindow);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withCalculationWindowFieldName(String calculationWindowFieldName) {
        super.withCalculationWindowFieldName(calculationWindowFieldName);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withFunction(KpiFunctions function) {
        super.withFunction(function);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withExpression(String expression) {
        super.withExpression(expression);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withUnit(String unit) {
        super.withUnit(unit);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withFilter(String filter) {
        super.withFilter(filter);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withGroupBy(List<String> groupBy) {
        super.withGroupBy(groupBy);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withThresHolds(KpiThresholds thresHolds) {
        super.withThresHolds(thresHolds);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withAliases(List<KpiAlias> aliases) {
        super.withAliases(aliases);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public EnrichingKpi withExtracts(List<KpiExtract> extracts) {
        super.withExtracts(extracts);
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    @Override
    public void validate() {
        super.validate();
    }
}
