All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.migrate.WebAppAssessmentV2OperationArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.migrate;

import com.pulumi.azurenative.migrate.enums.AssessmentSizingCriterion;
import com.pulumi.azurenative.migrate.enums.AssessmentType;
import com.pulumi.azurenative.migrate.enums.AzureCurrency;
import com.pulumi.azurenative.migrate.enums.AzureOfferCode;
import com.pulumi.azurenative.migrate.enums.AzureReservedInstance;
import com.pulumi.azurenative.migrate.enums.AzureSecurityOfferingType;
import com.pulumi.azurenative.migrate.enums.EnvironmentType;
import com.pulumi.azurenative.migrate.enums.GroupType;
import com.pulumi.azurenative.migrate.enums.Percentile;
import com.pulumi.azurenative.migrate.enums.TimeRange;
import com.pulumi.azurenative.migrate.inputs.AppSvcContainerSettingsArgs;
import com.pulumi.azurenative.migrate.inputs.AppSvcNativeSettingsArgs;
import com.pulumi.azurenative.migrate.inputs.DiscoveredEntityLightSummaryArgs;
import com.pulumi.azurenative.migrate.inputs.EntityUptimeArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Double;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class WebAppAssessmentV2OperationArgs extends com.pulumi.resources.ResourceArgs {

    public static final WebAppAssessmentV2OperationArgs Empty = new WebAppAssessmentV2OperationArgs();

    /**
     * Gets or sets user configurable app service container database settings.
     * 
     */
    @Import(name="appSvcContainerSettings")
    private @Nullable Output appSvcContainerSettings;

    /**
     * @return Gets or sets user configurable app service container database settings.
     * 
     */
    public Optional> appSvcContainerSettings() {
        return Optional.ofNullable(this.appSvcContainerSettings);
    }

    /**
     * Gets or sets user configurable app service native settings.
     * 
     */
    @Import(name="appSvcNativeSettings")
    private @Nullable Output appSvcNativeSettings;

    /**
     * @return Gets or sets user configurable app service native settings.
     * 
     */
    public Optional> appSvcNativeSettings() {
        return Optional.ofNullable(this.appSvcNativeSettings);
    }

    /**
     * Web app Assessment arm name.
     * 
     */
    @Import(name="assessmentName")
    private @Nullable Output assessmentName;

    /**
     * @return Web app Assessment arm name.
     * 
     */
    public Optional> assessmentName() {
        return Optional.ofNullable(this.assessmentName);
    }

    /**
     * Assessment type of the assessment.
     * 
     */
    @Import(name="assessmentType")
    private @Nullable Output> assessmentType;

    /**
     * @return Assessment type of the assessment.
     * 
     */
    public Optional>> assessmentType() {
        return Optional.ofNullable(this.assessmentType);
    }

    /**
     * Azure Location or Azure region where to which the machines will be migrated.
     * 
     */
    @Import(name="azureLocation")
    private @Nullable Output azureLocation;

    /**
     * @return Azure Location or Azure region where to which the machines will be migrated.
     * 
     */
    public Optional> azureLocation() {
        return Optional.ofNullable(this.azureLocation);
    }

    /**
     * Azure Offer Code.
     * 
     */
    @Import(name="azureOfferCode")
    private @Nullable Output> azureOfferCode;

    /**
     * @return Azure Offer Code.
     * 
     */
    public Optional>> azureOfferCode() {
        return Optional.ofNullable(this.azureOfferCode);
    }

    /**
     * Gets or sets a value indicating azure security offering type.
     * 
     */
    @Import(name="azureSecurityOfferingType")
    private @Nullable Output> azureSecurityOfferingType;

    /**
     * @return Gets or sets a value indicating azure security offering type.
     * 
     */
    public Optional>> azureSecurityOfferingType() {
        return Optional.ofNullable(this.azureSecurityOfferingType);
    }

    /**
     * Confidence Rating in Percentage.
     * 
     */
    @Import(name="confidenceRatingInPercentage")
    private @Nullable Output confidenceRatingInPercentage;

    /**
     * @return Confidence Rating in Percentage.
     * 
     */
    public Optional> confidenceRatingInPercentage() {
        return Optional.ofNullable(this.confidenceRatingInPercentage);
    }

    /**
     * Currency in which prices should be reported.
     * 
     */
    @Import(name="currency")
    private @Nullable Output> currency;

    /**
     * @return Currency in which prices should be reported.
     * 
     */
    public Optional>> currency() {
        return Optional.ofNullable(this.currency);
    }

    /**
     * Custom discount percentage.
     * 
     */
    @Import(name="discountPercentage")
    private @Nullable Output discountPercentage;

    /**
     * @return Custom discount percentage.
     * 
     */
    public Optional> discountPercentage() {
        return Optional.ofNullable(this.discountPercentage);
    }

    /**
     * Gets or sets user configurable discovered entity settings.
     * 
     */
    @Import(name="discoveredEntityLightSummary")
    private @Nullable Output discoveredEntityLightSummary;

    /**
     * @return Gets or sets user configurable discovered entity settings.
     * 
     */
    public Optional> discoveredEntityLightSummary() {
        return Optional.ofNullable(this.discoveredEntityLightSummary);
    }

    /**
     * Gets or sets the Enterprise agreement subscription id.
     * 
     */
    @Import(name="eaSubscriptionId")
    private @Nullable Output eaSubscriptionId;

    /**
     * @return Gets or sets the Enterprise agreement subscription id.
     * 
     */
    public Optional> eaSubscriptionId() {
        return Optional.ofNullable(this.eaSubscriptionId);
    }

    /**
     * Gets or sets the duration for which the entity (Web app, VMs) are up in the
     * on-premises environment.
     * 
     */
    @Import(name="entityUptime")
    private @Nullable Output entityUptime;

    /**
     * @return Gets or sets the duration for which the entity (Web app, VMs) are up in the
     * on-premises environment.
     * 
     */
    public Optional> entityUptime() {
        return Optional.ofNullable(this.entityUptime);
    }

    /**
     * Gets or sets user configurable setting to display the environment type.
     * 
     */
    @Import(name="environmentType")
    private @Nullable Output> environmentType;

    /**
     * @return Gets or sets user configurable setting to display the environment type.
     * 
     */
    public Optional>> environmentType() {
        return Optional.ofNullable(this.environmentType);
    }

    /**
     * Group ARM name
     * 
     */
    @Import(name="groupName", required=true)
    private Output groupName;

    /**
     * @return Group ARM name
     * 
     */
    public Output groupName() {
        return this.groupName;
    }

    /**
     * Gets the group type for the assessment.
     * 
     */
    @Import(name="groupType")
    private @Nullable Output> groupType;

    /**
     * @return Gets the group type for the assessment.
     * 
     */
    public Optional>> groupType() {
        return Optional.ofNullable(this.groupType);
    }

    /**
     * Percentile of the utilization data values to be considered while assessing
     * machines.
     * 
     */
    @Import(name="percentile")
    private @Nullable Output> percentile;

    /**
     * @return Percentile of the utilization data values to be considered while assessing
     * machines.
     * 
     */
    public Optional>> percentile() {
        return Optional.ofNullable(this.percentile);
    }

    /**
     * Gets or sets the end time to consider performance data for assessment.
     * 
     */
    @Import(name="perfDataEndTime")
    private @Nullable Output perfDataEndTime;

    /**
     * @return Gets or sets the end time to consider performance data for assessment.
     * 
     */
    public Optional> perfDataEndTime() {
        return Optional.ofNullable(this.perfDataEndTime);
    }

    /**
     * Gets or sets the start time to consider performance data for assessment.
     * 
     */
    @Import(name="perfDataStartTime")
    private @Nullable Output perfDataStartTime;

    /**
     * @return Gets or sets the start time to consider performance data for assessment.
     * 
     */
    public Optional> perfDataStartTime() {
        return Optional.ofNullable(this.perfDataStartTime);
    }

    /**
     * Assessment Project Name
     * 
     */
    @Import(name="projectName", required=true)
    private Output projectName;

    /**
     * @return Assessment Project Name
     * 
     */
    public Output projectName() {
        return this.projectName;
    }

    /**
     * Reserved instance.
     * 
     */
    @Import(name="reservedInstance")
    private @Nullable Output> reservedInstance;

    /**
     * @return Reserved instance.
     * 
     */
    public Optional>> reservedInstance() {
        return Optional.ofNullable(this.reservedInstance);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Percentage of buffer that user wants on performance metrics when recommending
     * Azure sizes.
     * 
     */
    @Import(name="scalingFactor")
    private @Nullable Output scalingFactor;

    /**
     * @return Percentage of buffer that user wants on performance metrics when recommending
     * Azure sizes.
     * 
     */
    public Optional> scalingFactor() {
        return Optional.ofNullable(this.scalingFactor);
    }

    /**
     * Assessment sizing criterion.
     * 
     */
    @Import(name="sizingCriterion")
    private @Nullable Output> sizingCriterion;

    /**
     * @return Assessment sizing criterion.
     * 
     */
    public Optional>> sizingCriterion() {
        return Optional.ofNullable(this.sizingCriterion);
    }

    /**
     * Time Range for which the historic utilization data should be considered for
     * assessment.
     * 
     */
    @Import(name="timeRange")
    private @Nullable Output> timeRange;

    /**
     * @return Time Range for which the historic utilization data should be considered for
     * assessment.
     * 
     */
    public Optional>> timeRange() {
        return Optional.ofNullable(this.timeRange);
    }

    private WebAppAssessmentV2OperationArgs() {}

    private WebAppAssessmentV2OperationArgs(WebAppAssessmentV2OperationArgs $) {
        this.appSvcContainerSettings = $.appSvcContainerSettings;
        this.appSvcNativeSettings = $.appSvcNativeSettings;
        this.assessmentName = $.assessmentName;
        this.assessmentType = $.assessmentType;
        this.azureLocation = $.azureLocation;
        this.azureOfferCode = $.azureOfferCode;
        this.azureSecurityOfferingType = $.azureSecurityOfferingType;
        this.confidenceRatingInPercentage = $.confidenceRatingInPercentage;
        this.currency = $.currency;
        this.discountPercentage = $.discountPercentage;
        this.discoveredEntityLightSummary = $.discoveredEntityLightSummary;
        this.eaSubscriptionId = $.eaSubscriptionId;
        this.entityUptime = $.entityUptime;
        this.environmentType = $.environmentType;
        this.groupName = $.groupName;
        this.groupType = $.groupType;
        this.percentile = $.percentile;
        this.perfDataEndTime = $.perfDataEndTime;
        this.perfDataStartTime = $.perfDataStartTime;
        this.projectName = $.projectName;
        this.reservedInstance = $.reservedInstance;
        this.resourceGroupName = $.resourceGroupName;
        this.scalingFactor = $.scalingFactor;
        this.sizingCriterion = $.sizingCriterion;
        this.timeRange = $.timeRange;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(WebAppAssessmentV2OperationArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private WebAppAssessmentV2OperationArgs $;

        public Builder() {
            $ = new WebAppAssessmentV2OperationArgs();
        }

        public Builder(WebAppAssessmentV2OperationArgs defaults) {
            $ = new WebAppAssessmentV2OperationArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param appSvcContainerSettings Gets or sets user configurable app service container database settings.
         * 
         * @return builder
         * 
         */
        public Builder appSvcContainerSettings(@Nullable Output appSvcContainerSettings) {
            $.appSvcContainerSettings = appSvcContainerSettings;
            return this;
        }

        /**
         * @param appSvcContainerSettings Gets or sets user configurable app service container database settings.
         * 
         * @return builder
         * 
         */
        public Builder appSvcContainerSettings(AppSvcContainerSettingsArgs appSvcContainerSettings) {
            return appSvcContainerSettings(Output.of(appSvcContainerSettings));
        }

        /**
         * @param appSvcNativeSettings Gets or sets user configurable app service native settings.
         * 
         * @return builder
         * 
         */
        public Builder appSvcNativeSettings(@Nullable Output appSvcNativeSettings) {
            $.appSvcNativeSettings = appSvcNativeSettings;
            return this;
        }

        /**
         * @param appSvcNativeSettings Gets or sets user configurable app service native settings.
         * 
         * @return builder
         * 
         */
        public Builder appSvcNativeSettings(AppSvcNativeSettingsArgs appSvcNativeSettings) {
            return appSvcNativeSettings(Output.of(appSvcNativeSettings));
        }

        /**
         * @param assessmentName Web app Assessment arm name.
         * 
         * @return builder
         * 
         */
        public Builder assessmentName(@Nullable Output assessmentName) {
            $.assessmentName = assessmentName;
            return this;
        }

        /**
         * @param assessmentName Web app Assessment arm name.
         * 
         * @return builder
         * 
         */
        public Builder assessmentName(String assessmentName) {
            return assessmentName(Output.of(assessmentName));
        }

        /**
         * @param assessmentType Assessment type of the assessment.
         * 
         * @return builder
         * 
         */
        public Builder assessmentType(@Nullable Output> assessmentType) {
            $.assessmentType = assessmentType;
            return this;
        }

        /**
         * @param assessmentType Assessment type of the assessment.
         * 
         * @return builder
         * 
         */
        public Builder assessmentType(Either assessmentType) {
            return assessmentType(Output.of(assessmentType));
        }

        /**
         * @param assessmentType Assessment type of the assessment.
         * 
         * @return builder
         * 
         */
        public Builder assessmentType(String assessmentType) {
            return assessmentType(Either.ofLeft(assessmentType));
        }

        /**
         * @param assessmentType Assessment type of the assessment.
         * 
         * @return builder
         * 
         */
        public Builder assessmentType(AssessmentType assessmentType) {
            return assessmentType(Either.ofRight(assessmentType));
        }

        /**
         * @param azureLocation Azure Location or Azure region where to which the machines will be migrated.
         * 
         * @return builder
         * 
         */
        public Builder azureLocation(@Nullable Output azureLocation) {
            $.azureLocation = azureLocation;
            return this;
        }

        /**
         * @param azureLocation Azure Location or Azure region where to which the machines will be migrated.
         * 
         * @return builder
         * 
         */
        public Builder azureLocation(String azureLocation) {
            return azureLocation(Output.of(azureLocation));
        }

        /**
         * @param azureOfferCode Azure Offer Code.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(@Nullable Output> azureOfferCode) {
            $.azureOfferCode = azureOfferCode;
            return this;
        }

        /**
         * @param azureOfferCode Azure Offer Code.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(Either azureOfferCode) {
            return azureOfferCode(Output.of(azureOfferCode));
        }

        /**
         * @param azureOfferCode Azure Offer Code.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(String azureOfferCode) {
            return azureOfferCode(Either.ofLeft(azureOfferCode));
        }

        /**
         * @param azureOfferCode Azure Offer Code.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(AzureOfferCode azureOfferCode) {
            return azureOfferCode(Either.ofRight(azureOfferCode));
        }

        /**
         * @param azureSecurityOfferingType Gets or sets a value indicating azure security offering type.
         * 
         * @return builder
         * 
         */
        public Builder azureSecurityOfferingType(@Nullable Output> azureSecurityOfferingType) {
            $.azureSecurityOfferingType = azureSecurityOfferingType;
            return this;
        }

        /**
         * @param azureSecurityOfferingType Gets or sets a value indicating azure security offering type.
         * 
         * @return builder
         * 
         */
        public Builder azureSecurityOfferingType(Either azureSecurityOfferingType) {
            return azureSecurityOfferingType(Output.of(azureSecurityOfferingType));
        }

        /**
         * @param azureSecurityOfferingType Gets or sets a value indicating azure security offering type.
         * 
         * @return builder
         * 
         */
        public Builder azureSecurityOfferingType(String azureSecurityOfferingType) {
            return azureSecurityOfferingType(Either.ofLeft(azureSecurityOfferingType));
        }

        /**
         * @param azureSecurityOfferingType Gets or sets a value indicating azure security offering type.
         * 
         * @return builder
         * 
         */
        public Builder azureSecurityOfferingType(AzureSecurityOfferingType azureSecurityOfferingType) {
            return azureSecurityOfferingType(Either.ofRight(azureSecurityOfferingType));
        }

        /**
         * @param confidenceRatingInPercentage Confidence Rating in Percentage.
         * 
         * @return builder
         * 
         */
        public Builder confidenceRatingInPercentage(@Nullable Output confidenceRatingInPercentage) {
            $.confidenceRatingInPercentage = confidenceRatingInPercentage;
            return this;
        }

        /**
         * @param confidenceRatingInPercentage Confidence Rating in Percentage.
         * 
         * @return builder
         * 
         */
        public Builder confidenceRatingInPercentage(Double confidenceRatingInPercentage) {
            return confidenceRatingInPercentage(Output.of(confidenceRatingInPercentage));
        }

        /**
         * @param currency Currency in which prices should be reported.
         * 
         * @return builder
         * 
         */
        public Builder currency(@Nullable Output> currency) {
            $.currency = currency;
            return this;
        }

        /**
         * @param currency Currency in which prices should be reported.
         * 
         * @return builder
         * 
         */
        public Builder currency(Either currency) {
            return currency(Output.of(currency));
        }

        /**
         * @param currency Currency in which prices should be reported.
         * 
         * @return builder
         * 
         */
        public Builder currency(String currency) {
            return currency(Either.ofLeft(currency));
        }

        /**
         * @param currency Currency in which prices should be reported.
         * 
         * @return builder
         * 
         */
        public Builder currency(AzureCurrency currency) {
            return currency(Either.ofRight(currency));
        }

        /**
         * @param discountPercentage Custom discount percentage.
         * 
         * @return builder
         * 
         */
        public Builder discountPercentage(@Nullable Output discountPercentage) {
            $.discountPercentage = discountPercentage;
            return this;
        }

        /**
         * @param discountPercentage Custom discount percentage.
         * 
         * @return builder
         * 
         */
        public Builder discountPercentage(Double discountPercentage) {
            return discountPercentage(Output.of(discountPercentage));
        }

        /**
         * @param discoveredEntityLightSummary Gets or sets user configurable discovered entity settings.
         * 
         * @return builder
         * 
         */
        public Builder discoveredEntityLightSummary(@Nullable Output discoveredEntityLightSummary) {
            $.discoveredEntityLightSummary = discoveredEntityLightSummary;
            return this;
        }

        /**
         * @param discoveredEntityLightSummary Gets or sets user configurable discovered entity settings.
         * 
         * @return builder
         * 
         */
        public Builder discoveredEntityLightSummary(DiscoveredEntityLightSummaryArgs discoveredEntityLightSummary) {
            return discoveredEntityLightSummary(Output.of(discoveredEntityLightSummary));
        }

        /**
         * @param eaSubscriptionId Gets or sets the Enterprise agreement subscription id.
         * 
         * @return builder
         * 
         */
        public Builder eaSubscriptionId(@Nullable Output eaSubscriptionId) {
            $.eaSubscriptionId = eaSubscriptionId;
            return this;
        }

        /**
         * @param eaSubscriptionId Gets or sets the Enterprise agreement subscription id.
         * 
         * @return builder
         * 
         */
        public Builder eaSubscriptionId(String eaSubscriptionId) {
            return eaSubscriptionId(Output.of(eaSubscriptionId));
        }

        /**
         * @param entityUptime Gets or sets the duration for which the entity (Web app, VMs) are up in the
         * on-premises environment.
         * 
         * @return builder
         * 
         */
        public Builder entityUptime(@Nullable Output entityUptime) {
            $.entityUptime = entityUptime;
            return this;
        }

        /**
         * @param entityUptime Gets or sets the duration for which the entity (Web app, VMs) are up in the
         * on-premises environment.
         * 
         * @return builder
         * 
         */
        public Builder entityUptime(EntityUptimeArgs entityUptime) {
            return entityUptime(Output.of(entityUptime));
        }

        /**
         * @param environmentType Gets or sets user configurable setting to display the environment type.
         * 
         * @return builder
         * 
         */
        public Builder environmentType(@Nullable Output> environmentType) {
            $.environmentType = environmentType;
            return this;
        }

        /**
         * @param environmentType Gets or sets user configurable setting to display the environment type.
         * 
         * @return builder
         * 
         */
        public Builder environmentType(Either environmentType) {
            return environmentType(Output.of(environmentType));
        }

        /**
         * @param environmentType Gets or sets user configurable setting to display the environment type.
         * 
         * @return builder
         * 
         */
        public Builder environmentType(String environmentType) {
            return environmentType(Either.ofLeft(environmentType));
        }

        /**
         * @param environmentType Gets or sets user configurable setting to display the environment type.
         * 
         * @return builder
         * 
         */
        public Builder environmentType(EnvironmentType environmentType) {
            return environmentType(Either.ofRight(environmentType));
        }

        /**
         * @param groupName Group ARM name
         * 
         * @return builder
         * 
         */
        public Builder groupName(Output groupName) {
            $.groupName = groupName;
            return this;
        }

        /**
         * @param groupName Group ARM name
         * 
         * @return builder
         * 
         */
        public Builder groupName(String groupName) {
            return groupName(Output.of(groupName));
        }

        /**
         * @param groupType Gets the group type for the assessment.
         * 
         * @return builder
         * 
         */
        public Builder groupType(@Nullable Output> groupType) {
            $.groupType = groupType;
            return this;
        }

        /**
         * @param groupType Gets the group type for the assessment.
         * 
         * @return builder
         * 
         */
        public Builder groupType(Either groupType) {
            return groupType(Output.of(groupType));
        }

        /**
         * @param groupType Gets the group type for the assessment.
         * 
         * @return builder
         * 
         */
        public Builder groupType(String groupType) {
            return groupType(Either.ofLeft(groupType));
        }

        /**
         * @param groupType Gets the group type for the assessment.
         * 
         * @return builder
         * 
         */
        public Builder groupType(GroupType groupType) {
            return groupType(Either.ofRight(groupType));
        }

        /**
         * @param percentile Percentile of the utilization data values to be considered while assessing
         * machines.
         * 
         * @return builder
         * 
         */
        public Builder percentile(@Nullable Output> percentile) {
            $.percentile = percentile;
            return this;
        }

        /**
         * @param percentile Percentile of the utilization data values to be considered while assessing
         * machines.
         * 
         * @return builder
         * 
         */
        public Builder percentile(Either percentile) {
            return percentile(Output.of(percentile));
        }

        /**
         * @param percentile Percentile of the utilization data values to be considered while assessing
         * machines.
         * 
         * @return builder
         * 
         */
        public Builder percentile(String percentile) {
            return percentile(Either.ofLeft(percentile));
        }

        /**
         * @param percentile Percentile of the utilization data values to be considered while assessing
         * machines.
         * 
         * @return builder
         * 
         */
        public Builder percentile(Percentile percentile) {
            return percentile(Either.ofRight(percentile));
        }

        /**
         * @param perfDataEndTime Gets or sets the end time to consider performance data for assessment.
         * 
         * @return builder
         * 
         */
        public Builder perfDataEndTime(@Nullable Output perfDataEndTime) {
            $.perfDataEndTime = perfDataEndTime;
            return this;
        }

        /**
         * @param perfDataEndTime Gets or sets the end time to consider performance data for assessment.
         * 
         * @return builder
         * 
         */
        public Builder perfDataEndTime(String perfDataEndTime) {
            return perfDataEndTime(Output.of(perfDataEndTime));
        }

        /**
         * @param perfDataStartTime Gets or sets the start time to consider performance data for assessment.
         * 
         * @return builder
         * 
         */
        public Builder perfDataStartTime(@Nullable Output perfDataStartTime) {
            $.perfDataStartTime = perfDataStartTime;
            return this;
        }

        /**
         * @param perfDataStartTime Gets or sets the start time to consider performance data for assessment.
         * 
         * @return builder
         * 
         */
        public Builder perfDataStartTime(String perfDataStartTime) {
            return perfDataStartTime(Output.of(perfDataStartTime));
        }

        /**
         * @param projectName Assessment Project Name
         * 
         * @return builder
         * 
         */
        public Builder projectName(Output projectName) {
            $.projectName = projectName;
            return this;
        }

        /**
         * @param projectName Assessment Project Name
         * 
         * @return builder
         * 
         */
        public Builder projectName(String projectName) {
            return projectName(Output.of(projectName));
        }

        /**
         * @param reservedInstance Reserved instance.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(@Nullable Output> reservedInstance) {
            $.reservedInstance = reservedInstance;
            return this;
        }

        /**
         * @param reservedInstance Reserved instance.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(Either reservedInstance) {
            return reservedInstance(Output.of(reservedInstance));
        }

        /**
         * @param reservedInstance Reserved instance.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(String reservedInstance) {
            return reservedInstance(Either.ofLeft(reservedInstance));
        }

        /**
         * @param reservedInstance Reserved instance.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(AzureReservedInstance reservedInstance) {
            return reservedInstance(Either.ofRight(reservedInstance));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param scalingFactor Percentage of buffer that user wants on performance metrics when recommending
         * Azure sizes.
         * 
         * @return builder
         * 
         */
        public Builder scalingFactor(@Nullable Output scalingFactor) {
            $.scalingFactor = scalingFactor;
            return this;
        }

        /**
         * @param scalingFactor Percentage of buffer that user wants on performance metrics when recommending
         * Azure sizes.
         * 
         * @return builder
         * 
         */
        public Builder scalingFactor(Double scalingFactor) {
            return scalingFactor(Output.of(scalingFactor));
        }

        /**
         * @param sizingCriterion Assessment sizing criterion.
         * 
         * @return builder
         * 
         */
        public Builder sizingCriterion(@Nullable Output> sizingCriterion) {
            $.sizingCriterion = sizingCriterion;
            return this;
        }

        /**
         * @param sizingCriterion Assessment sizing criterion.
         * 
         * @return builder
         * 
         */
        public Builder sizingCriterion(Either sizingCriterion) {
            return sizingCriterion(Output.of(sizingCriterion));
        }

        /**
         * @param sizingCriterion Assessment sizing criterion.
         * 
         * @return builder
         * 
         */
        public Builder sizingCriterion(String sizingCriterion) {
            return sizingCriterion(Either.ofLeft(sizingCriterion));
        }

        /**
         * @param sizingCriterion Assessment sizing criterion.
         * 
         * @return builder
         * 
         */
        public Builder sizingCriterion(AssessmentSizingCriterion sizingCriterion) {
            return sizingCriterion(Either.ofRight(sizingCriterion));
        }

        /**
         * @param timeRange Time Range for which the historic utilization data should be considered for
         * assessment.
         * 
         * @return builder
         * 
         */
        public Builder timeRange(@Nullable Output> timeRange) {
            $.timeRange = timeRange;
            return this;
        }

        /**
         * @param timeRange Time Range for which the historic utilization data should be considered for
         * assessment.
         * 
         * @return builder
         * 
         */
        public Builder timeRange(Either timeRange) {
            return timeRange(Output.of(timeRange));
        }

        /**
         * @param timeRange Time Range for which the historic utilization data should be considered for
         * assessment.
         * 
         * @return builder
         * 
         */
        public Builder timeRange(String timeRange) {
            return timeRange(Either.ofLeft(timeRange));
        }

        /**
         * @param timeRange Time Range for which the historic utilization data should be considered for
         * assessment.
         * 
         * @return builder
         * 
         */
        public Builder timeRange(TimeRange timeRange) {
            return timeRange(Either.ofRight(timeRange));
        }

        public WebAppAssessmentV2OperationArgs build() {
            if ($.groupName == null) {
                throw new MissingRequiredPropertyException("WebAppAssessmentV2OperationArgs", "groupName");
            }
            if ($.projectName == null) {
                throw new MissingRequiredPropertyException("WebAppAssessmentV2OperationArgs", "projectName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("WebAppAssessmentV2OperationArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy