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

com.pulumi.azurenative.migrate.AvsAssessmentsOperationArgs 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.AzureAvsNodeType;
import com.pulumi.azurenative.migrate.enums.AzureCurrency;
import com.pulumi.azurenative.migrate.enums.AzureLocation;
import com.pulumi.azurenative.migrate.enums.AzureOfferCode;
import com.pulumi.azurenative.migrate.enums.AzureReservedInstance;
import com.pulumi.azurenative.migrate.enums.FttAndRaidLevel;
import com.pulumi.azurenative.migrate.enums.Percentile;
import com.pulumi.azurenative.migrate.enums.ProvisioningState;
import com.pulumi.azurenative.migrate.enums.TimeRange;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AvsAssessmentsOperationArgs Empty = new AvsAssessmentsOperationArgs();

    /**
     * AVS Assessment ARM name
     * 
     */
    @Import(name="assessmentName")
    private @Nullable Output assessmentName;

    /**
     * @return AVS Assessment ARM name
     * 
     */
    public Optional> assessmentName() {
        return Optional.ofNullable(this.assessmentName);
    }

    /**
     * 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 according to which cost estimation is done.
     * 
     */
    @Import(name="azureOfferCode")
    private @Nullable Output> azureOfferCode;

    /**
     * @return Azure Offer code according to which cost estimation is done.
     * 
     */
    public Optional>> azureOfferCode() {
        return Optional.ofNullable(this.azureOfferCode);
    }

    /**
     * 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);
    }

    /**
     * De-duplication compression.
     * 
     */
    @Import(name="dedupeCompression")
    private @Nullable Output dedupeCompression;

    /**
     * @return De-duplication compression.
     * 
     */
    public Optional> dedupeCompression() {
        return Optional.ofNullable(this.dedupeCompression);
    }

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

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

    /**
     * Failures to tolerate and RAID level in a common property.
     * 
     */
    @Import(name="failuresToTolerateAndRaidLevel")
    private @Nullable Output> failuresToTolerateAndRaidLevel;

    /**
     * @return Failures to tolerate and RAID level in a common property.
     * 
     */
    public Optional>> failuresToTolerateAndRaidLevel() {
        return Optional.ofNullable(this.failuresToTolerateAndRaidLevel);
    }

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

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

    /**
     * Is Stretch Cluster Enabled.
     * 
     */
    @Import(name="isStretchClusterEnabled")
    private @Nullable Output isStretchClusterEnabled;

    /**
     * @return Is Stretch Cluster Enabled.
     * 
     */
    public Optional> isStretchClusterEnabled() {
        return Optional.ofNullable(this.isStretchClusterEnabled);
    }

    /**
     * Memory overcommit.
     * 
     */
    @Import(name="memOvercommit")
    private @Nullable Output memOvercommit;

    /**
     * @return Memory overcommit.
     * 
     */
    public Optional> memOvercommit() {
        return Optional.ofNullable(this.memOvercommit);
    }

    /**
     * AVS node type.
     * 
     */
    @Import(name="nodeType")
    private @Nullable Output> nodeType;

    /**
     * @return AVS node type.
     * 
     */
    public Optional>> nodeType() {
        return Optional.ofNullable(this.nodeType);
    }

    /**
     * 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;
    }

    /**
     * The status of the last operation.
     * 
     */
    @Import(name="provisioningState")
    private @Nullable Output> provisioningState;

    /**
     * @return The status of the last operation.
     * 
     */
    public Optional>> provisioningState() {
        return Optional.ofNullable(this.provisioningState);
    }

    /**
     * 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);
    }

    /**
     * VCPU over subscription.
     * 
     */
    @Import(name="vcpuOversubscription")
    private @Nullable Output vcpuOversubscription;

    /**
     * @return VCPU over subscription.
     * 
     */
    public Optional> vcpuOversubscription() {
        return Optional.ofNullable(this.vcpuOversubscription);
    }

    private AvsAssessmentsOperationArgs() {}

    private AvsAssessmentsOperationArgs(AvsAssessmentsOperationArgs $) {
        this.assessmentName = $.assessmentName;
        this.azureLocation = $.azureLocation;
        this.azureOfferCode = $.azureOfferCode;
        this.currency = $.currency;
        this.dedupeCompression = $.dedupeCompression;
        this.discountPercentage = $.discountPercentage;
        this.failuresToTolerateAndRaidLevel = $.failuresToTolerateAndRaidLevel;
        this.groupName = $.groupName;
        this.isStretchClusterEnabled = $.isStretchClusterEnabled;
        this.memOvercommit = $.memOvercommit;
        this.nodeType = $.nodeType;
        this.percentile = $.percentile;
        this.perfDataEndTime = $.perfDataEndTime;
        this.perfDataStartTime = $.perfDataStartTime;
        this.projectName = $.projectName;
        this.provisioningState = $.provisioningState;
        this.reservedInstance = $.reservedInstance;
        this.resourceGroupName = $.resourceGroupName;
        this.scalingFactor = $.scalingFactor;
        this.sizingCriterion = $.sizingCriterion;
        this.timeRange = $.timeRange;
        this.vcpuOversubscription = $.vcpuOversubscription;
    }

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

    public static final class Builder {
        private AvsAssessmentsOperationArgs $;

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

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

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

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

        /**
         * @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(Either azureLocation) {
            return azureLocation(Output.of(azureLocation));
        }

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

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

        /**
         * @param azureOfferCode Azure Offer code according to which cost estimation is done.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(@Nullable Output> azureOfferCode) {
            $.azureOfferCode = azureOfferCode;
            return this;
        }

        /**
         * @param azureOfferCode Azure Offer code according to which cost estimation is done.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(Either azureOfferCode) {
            return azureOfferCode(Output.of(azureOfferCode));
        }

        /**
         * @param azureOfferCode Azure Offer code according to which cost estimation is done.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(String azureOfferCode) {
            return azureOfferCode(Either.ofLeft(azureOfferCode));
        }

        /**
         * @param azureOfferCode Azure Offer code according to which cost estimation is done.
         * 
         * @return builder
         * 
         */
        public Builder azureOfferCode(AzureOfferCode azureOfferCode) {
            return azureOfferCode(Either.ofRight(azureOfferCode));
        }

        /**
         * @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 dedupeCompression De-duplication compression.
         * 
         * @return builder
         * 
         */
        public Builder dedupeCompression(@Nullable Output dedupeCompression) {
            $.dedupeCompression = dedupeCompression;
            return this;
        }

        /**
         * @param dedupeCompression De-duplication compression.
         * 
         * @return builder
         * 
         */
        public Builder dedupeCompression(Double dedupeCompression) {
            return dedupeCompression(Output.of(dedupeCompression));
        }

        /**
         * @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 failuresToTolerateAndRaidLevel Failures to tolerate and RAID level in a common property.
         * 
         * @return builder
         * 
         */
        public Builder failuresToTolerateAndRaidLevel(@Nullable Output> failuresToTolerateAndRaidLevel) {
            $.failuresToTolerateAndRaidLevel = failuresToTolerateAndRaidLevel;
            return this;
        }

        /**
         * @param failuresToTolerateAndRaidLevel Failures to tolerate and RAID level in a common property.
         * 
         * @return builder
         * 
         */
        public Builder failuresToTolerateAndRaidLevel(Either failuresToTolerateAndRaidLevel) {
            return failuresToTolerateAndRaidLevel(Output.of(failuresToTolerateAndRaidLevel));
        }

        /**
         * @param failuresToTolerateAndRaidLevel Failures to tolerate and RAID level in a common property.
         * 
         * @return builder
         * 
         */
        public Builder failuresToTolerateAndRaidLevel(String failuresToTolerateAndRaidLevel) {
            return failuresToTolerateAndRaidLevel(Either.ofLeft(failuresToTolerateAndRaidLevel));
        }

        /**
         * @param failuresToTolerateAndRaidLevel Failures to tolerate and RAID level in a common property.
         * 
         * @return builder
         * 
         */
        public Builder failuresToTolerateAndRaidLevel(FttAndRaidLevel failuresToTolerateAndRaidLevel) {
            return failuresToTolerateAndRaidLevel(Either.ofRight(failuresToTolerateAndRaidLevel));
        }

        /**
         * @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 isStretchClusterEnabled Is Stretch Cluster Enabled.
         * 
         * @return builder
         * 
         */
        public Builder isStretchClusterEnabled(@Nullable Output isStretchClusterEnabled) {
            $.isStretchClusterEnabled = isStretchClusterEnabled;
            return this;
        }

        /**
         * @param isStretchClusterEnabled Is Stretch Cluster Enabled.
         * 
         * @return builder
         * 
         */
        public Builder isStretchClusterEnabled(Boolean isStretchClusterEnabled) {
            return isStretchClusterEnabled(Output.of(isStretchClusterEnabled));
        }

        /**
         * @param memOvercommit Memory overcommit.
         * 
         * @return builder
         * 
         */
        public Builder memOvercommit(@Nullable Output memOvercommit) {
            $.memOvercommit = memOvercommit;
            return this;
        }

        /**
         * @param memOvercommit Memory overcommit.
         * 
         * @return builder
         * 
         */
        public Builder memOvercommit(Double memOvercommit) {
            return memOvercommit(Output.of(memOvercommit));
        }

        /**
         * @param nodeType AVS node type.
         * 
         * @return builder
         * 
         */
        public Builder nodeType(@Nullable Output> nodeType) {
            $.nodeType = nodeType;
            return this;
        }

        /**
         * @param nodeType AVS node type.
         * 
         * @return builder
         * 
         */
        public Builder nodeType(Either nodeType) {
            return nodeType(Output.of(nodeType));
        }

        /**
         * @param nodeType AVS node type.
         * 
         * @return builder
         * 
         */
        public Builder nodeType(String nodeType) {
            return nodeType(Either.ofLeft(nodeType));
        }

        /**
         * @param nodeType AVS node type.
         * 
         * @return builder
         * 
         */
        public Builder nodeType(AzureAvsNodeType nodeType) {
            return nodeType(Either.ofRight(nodeType));
        }

        /**
         * @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 provisioningState The status of the last operation.
         * 
         * @return builder
         * 
         */
        public Builder provisioningState(@Nullable Output> provisioningState) {
            $.provisioningState = provisioningState;
            return this;
        }

        /**
         * @param provisioningState The status of the last operation.
         * 
         * @return builder
         * 
         */
        public Builder provisioningState(Either provisioningState) {
            return provisioningState(Output.of(provisioningState));
        }

        /**
         * @param provisioningState The status of the last operation.
         * 
         * @return builder
         * 
         */
        public Builder provisioningState(String provisioningState) {
            return provisioningState(Either.ofLeft(provisioningState));
        }

        /**
         * @param provisioningState The status of the last operation.
         * 
         * @return builder
         * 
         */
        public Builder provisioningState(ProvisioningState provisioningState) {
            return provisioningState(Either.ofRight(provisioningState));
        }

        /**
         * @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));
        }

        /**
         * @param vcpuOversubscription VCPU over subscription.
         * 
         * @return builder
         * 
         */
        public Builder vcpuOversubscription(@Nullable Output vcpuOversubscription) {
            $.vcpuOversubscription = vcpuOversubscription;
            return this;
        }

        /**
         * @param vcpuOversubscription VCPU over subscription.
         * 
         * @return builder
         * 
         */
        public Builder vcpuOversubscription(Double vcpuOversubscription) {
            return vcpuOversubscription(Output.of(vcpuOversubscription));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy