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

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

There is a newer version: 2.78.0
Show newest version
// *** 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.AzureCurrency;
import com.pulumi.azurenative.migrate.enums.AzureDiskType;
import com.pulumi.azurenative.migrate.enums.AzureHybridUseBenefit;
import com.pulumi.azurenative.migrate.enums.AzureOfferCode;
import com.pulumi.azurenative.migrate.enums.AzurePricingTier;
import com.pulumi.azurenative.migrate.enums.AzureReservedInstance;
import com.pulumi.azurenative.migrate.enums.AzureStorageRedundancy;
import com.pulumi.azurenative.migrate.enums.AzureVmFamily;
import com.pulumi.azurenative.migrate.enums.Percentile;
import com.pulumi.azurenative.migrate.enums.ProvisioningState;
import com.pulumi.azurenative.migrate.enums.TimeRange;
import com.pulumi.azurenative.migrate.inputs.VmUptimeArgs;
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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AssessmentsOperationArgs Empty = new AssessmentsOperationArgs();

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

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

    /**
     * Gets or sets the azure storage type. Premium, Standard etc.
     * 
     */
    @Import(name="azureDiskTypes")
    private @Nullable Output>> azureDiskTypes;

    /**
     * @return Gets or sets the azure storage type. Premium, Standard etc.
     * 
     */
    public Optional>>> azureDiskTypes() {
        return Optional.ofNullable(this.azureDiskTypes);
    }

    /**
     * Gets or sets the user configurable setting to display the azure hybrid use
     * benefit.
     * 
     */
    @Import(name="azureHybridUseBenefit")
    private @Nullable Output> azureHybridUseBenefit;

    /**
     * @return Gets or sets the user configurable setting to display the azure hybrid use
     * benefit.
     * 
     */
    public Optional>> azureHybridUseBenefit() {
        return Optional.ofNullable(this.azureHybridUseBenefit);
    }

    /**
     * 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 Azure Pricing Tier - Free, Basic, etc.
     * 
     */
    @Import(name="azurePricingTier")
    private @Nullable Output> azurePricingTier;

    /**
     * @return Gets or sets Azure Pricing Tier - Free, Basic, etc.
     * 
     */
    public Optional>> azurePricingTier() {
        return Optional.ofNullable(this.azurePricingTier);
    }

    /**
     * Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
     * 
     */
    @Import(name="azureStorageRedundancy")
    private @Nullable Output> azureStorageRedundancy;

    /**
     * @return Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
     * 
     */
    public Optional>> azureStorageRedundancy() {
        return Optional.ofNullable(this.azureStorageRedundancy);
    }

    /**
     * Gets or sets the Azure VM families.
     * 
     */
    @Import(name="azureVmFamilies")
    private @Nullable Output>> azureVmFamilies;

    /**
     * @return Gets or sets the Azure VM families.
     * 
     */
    public Optional>>> azureVmFamilies() {
        return Optional.ofNullable(this.azureVmFamilies);
    }

    /**
     * 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 enterprise agreement subscription id.
     * 
     */
    @Import(name="eaSubscriptionId")
    private @Nullable Output eaSubscriptionId;

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

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

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

    /**
     * Gets or sets the user configurable setting to display the linux azure hybrid use
     * benefit.
     * 
     */
    @Import(name="linuxAzureHybridUseBenefit")
    private @Nullable Output> linuxAzureHybridUseBenefit;

    /**
     * @return Gets or sets the user configurable setting to display the linux azure hybrid use
     * benefit.
     * 
     */
    public Optional>> linuxAzureHybridUseBenefit() {
        return Optional.ofNullable(this.linuxAzureHybridUseBenefit);
    }

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

    /**
     * Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
     * 
     */
    @Import(name="reservedInstance")
    private @Nullable Output> reservedInstance;

    /**
     * @return Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
     * 
     */
    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);
    }

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

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

    private AssessmentsOperationArgs() {}

    private AssessmentsOperationArgs(AssessmentsOperationArgs $) {
        this.assessmentName = $.assessmentName;
        this.azureDiskTypes = $.azureDiskTypes;
        this.azureHybridUseBenefit = $.azureHybridUseBenefit;
        this.azureLocation = $.azureLocation;
        this.azureOfferCode = $.azureOfferCode;
        this.azurePricingTier = $.azurePricingTier;
        this.azureStorageRedundancy = $.azureStorageRedundancy;
        this.azureVmFamilies = $.azureVmFamilies;
        this.currency = $.currency;
        this.discountPercentage = $.discountPercentage;
        this.eaSubscriptionId = $.eaSubscriptionId;
        this.groupName = $.groupName;
        this.linuxAzureHybridUseBenefit = $.linuxAzureHybridUseBenefit;
        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.vmUptime = $.vmUptime;
    }

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

    public static final class Builder {
        private AssessmentsOperationArgs $;

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

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

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

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

        /**
         * @param azureDiskTypes Gets or sets the azure storage type. Premium, Standard etc.
         * 
         * @return builder
         * 
         */
        public Builder azureDiskTypes(@Nullable Output>> azureDiskTypes) {
            $.azureDiskTypes = azureDiskTypes;
            return this;
        }

        /**
         * @param azureDiskTypes Gets or sets the azure storage type. Premium, Standard etc.
         * 
         * @return builder
         * 
         */
        public Builder azureDiskTypes(List> azureDiskTypes) {
            return azureDiskTypes(Output.of(azureDiskTypes));
        }

        /**
         * @param azureDiskTypes Gets or sets the azure storage type. Premium, Standard etc.
         * 
         * @return builder
         * 
         */
        public Builder azureDiskTypes(Either... azureDiskTypes) {
            return azureDiskTypes(List.of(azureDiskTypes));
        }

        /**
         * @param azureHybridUseBenefit Gets or sets the user configurable setting to display the azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder azureHybridUseBenefit(@Nullable Output> azureHybridUseBenefit) {
            $.azureHybridUseBenefit = azureHybridUseBenefit;
            return this;
        }

        /**
         * @param azureHybridUseBenefit Gets or sets the user configurable setting to display the azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder azureHybridUseBenefit(Either azureHybridUseBenefit) {
            return azureHybridUseBenefit(Output.of(azureHybridUseBenefit));
        }

        /**
         * @param azureHybridUseBenefit Gets or sets the user configurable setting to display the azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder azureHybridUseBenefit(String azureHybridUseBenefit) {
            return azureHybridUseBenefit(Either.ofLeft(azureHybridUseBenefit));
        }

        /**
         * @param azureHybridUseBenefit Gets or sets the user configurable setting to display the azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder azureHybridUseBenefit(AzureHybridUseBenefit azureHybridUseBenefit) {
            return azureHybridUseBenefit(Either.ofRight(azureHybridUseBenefit));
        }

        /**
         * @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 azurePricingTier Gets or sets Azure Pricing Tier - Free, Basic, etc.
         * 
         * @return builder
         * 
         */
        public Builder azurePricingTier(@Nullable Output> azurePricingTier) {
            $.azurePricingTier = azurePricingTier;
            return this;
        }

        /**
         * @param azurePricingTier Gets or sets Azure Pricing Tier - Free, Basic, etc.
         * 
         * @return builder
         * 
         */
        public Builder azurePricingTier(Either azurePricingTier) {
            return azurePricingTier(Output.of(azurePricingTier));
        }

        /**
         * @param azurePricingTier Gets or sets Azure Pricing Tier - Free, Basic, etc.
         * 
         * @return builder
         * 
         */
        public Builder azurePricingTier(String azurePricingTier) {
            return azurePricingTier(Either.ofLeft(azurePricingTier));
        }

        /**
         * @param azurePricingTier Gets or sets Azure Pricing Tier - Free, Basic, etc.
         * 
         * @return builder
         * 
         */
        public Builder azurePricingTier(AzurePricingTier azurePricingTier) {
            return azurePricingTier(Either.ofRight(azurePricingTier));
        }

        /**
         * @param azureStorageRedundancy Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
         * 
         * @return builder
         * 
         */
        public Builder azureStorageRedundancy(@Nullable Output> azureStorageRedundancy) {
            $.azureStorageRedundancy = azureStorageRedundancy;
            return this;
        }

        /**
         * @param azureStorageRedundancy Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
         * 
         * @return builder
         * 
         */
        public Builder azureStorageRedundancy(Either azureStorageRedundancy) {
            return azureStorageRedundancy(Output.of(azureStorageRedundancy));
        }

        /**
         * @param azureStorageRedundancy Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
         * 
         * @return builder
         * 
         */
        public Builder azureStorageRedundancy(String azureStorageRedundancy) {
            return azureStorageRedundancy(Either.ofLeft(azureStorageRedundancy));
        }

        /**
         * @param azureStorageRedundancy Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
         * 
         * @return builder
         * 
         */
        public Builder azureStorageRedundancy(AzureStorageRedundancy azureStorageRedundancy) {
            return azureStorageRedundancy(Either.ofRight(azureStorageRedundancy));
        }

        /**
         * @param azureVmFamilies Gets or sets the Azure VM families.
         * 
         * @return builder
         * 
         */
        public Builder azureVmFamilies(@Nullable Output>> azureVmFamilies) {
            $.azureVmFamilies = azureVmFamilies;
            return this;
        }

        /**
         * @param azureVmFamilies Gets or sets the Azure VM families.
         * 
         * @return builder
         * 
         */
        public Builder azureVmFamilies(List> azureVmFamilies) {
            return azureVmFamilies(Output.of(azureVmFamilies));
        }

        /**
         * @param azureVmFamilies Gets or sets the Azure VM families.
         * 
         * @return builder
         * 
         */
        public Builder azureVmFamilies(Either... azureVmFamilies) {
            return azureVmFamilies(List.of(azureVmFamilies));
        }

        /**
         * @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 eaSubscriptionId Gets or sets enterprise agreement subscription id.
         * 
         * @return builder
         * 
         */
        public Builder eaSubscriptionId(@Nullable Output eaSubscriptionId) {
            $.eaSubscriptionId = eaSubscriptionId;
            return this;
        }

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

        /**
         * @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 linuxAzureHybridUseBenefit Gets or sets the user configurable setting to display the linux azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder linuxAzureHybridUseBenefit(@Nullable Output> linuxAzureHybridUseBenefit) {
            $.linuxAzureHybridUseBenefit = linuxAzureHybridUseBenefit;
            return this;
        }

        /**
         * @param linuxAzureHybridUseBenefit Gets or sets the user configurable setting to display the linux azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder linuxAzureHybridUseBenefit(Either linuxAzureHybridUseBenefit) {
            return linuxAzureHybridUseBenefit(Output.of(linuxAzureHybridUseBenefit));
        }

        /**
         * @param linuxAzureHybridUseBenefit Gets or sets the user configurable setting to display the linux azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder linuxAzureHybridUseBenefit(String linuxAzureHybridUseBenefit) {
            return linuxAzureHybridUseBenefit(Either.ofLeft(linuxAzureHybridUseBenefit));
        }

        /**
         * @param linuxAzureHybridUseBenefit Gets or sets the user configurable setting to display the linux azure hybrid use
         * benefit.
         * 
         * @return builder
         * 
         */
        public Builder linuxAzureHybridUseBenefit(AzureHybridUseBenefit linuxAzureHybridUseBenefit) {
            return linuxAzureHybridUseBenefit(Either.ofRight(linuxAzureHybridUseBenefit));
        }

        /**
         * @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 Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(@Nullable Output> reservedInstance) {
            $.reservedInstance = reservedInstance;
            return this;
        }

        /**
         * @param reservedInstance Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(Either reservedInstance) {
            return reservedInstance(Output.of(reservedInstance));
        }

        /**
         * @param reservedInstance Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
         * 
         * @return builder
         * 
         */
        public Builder reservedInstance(String reservedInstance) {
            return reservedInstance(Either.ofLeft(reservedInstance));
        }

        /**
         * @param reservedInstance Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
         * 
         * @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 vmUptime Gets or sets the duration for which the VMs are up in the on-premises
         * environment.
         * 
         * @return builder
         * 
         */
        public Builder vmUptime(@Nullable Output vmUptime) {
            $.vmUptime = vmUptime;
            return this;
        }

        /**
         * @param vmUptime Gets or sets the duration for which the VMs are up in the on-premises
         * environment.
         * 
         * @return builder
         * 
         */
        public Builder vmUptime(VmUptimeArgs vmUptime) {
            return vmUptime(Output.of(vmUptime));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy