import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Machine assessment resource.
 *
 * Uses Azure REST API version 2024-01-01-preview. In version 2.x of the Azure Native provider, it used API version 2023-04-01-preview.
 *
 * Other available API versions: 2023-03-15, 2023-04-01-preview, 2023-05-01-preview, 2023-09-09-preview, 2024-01-15. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native migrate [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class AssessmentsOperation extends pulumi.CustomResource {
    /**
     * Get an existing AssessmentsOperation resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): AssessmentsOperation;
    /**
     * Returns true if the given object is an instance of AssessmentsOperation.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is AssessmentsOperation;
    /**
     * Gets or sets the assessment error summary.
     *             This is the number of
     * machines affected by each type of error in this assessment.
     */
    readonly assessmentErrorSummary: pulumi.Output<{
        [key: string]: number;
    }>;
    /**
     * Assessment type of the assessment.
     */
    readonly assessmentType: pulumi.Output<string>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * Gets or sets the azure storage type. Premium, Standard etc.
     */
    readonly azureDiskTypes: pulumi.Output<string[] | undefined>;
    /**
     * Gets or sets the user configurable setting to display the azure hybrid use
     * benefit.
     */
    readonly azureHybridUseBenefit: pulumi.Output<string | undefined>;
    /**
     * Azure Location or Azure region where to which the machines will be migrated.
     */
    readonly azureLocation: pulumi.Output<string | undefined>;
    /**
     * Azure Offer Code.
     */
    readonly azureOfferCode: pulumi.Output<string | undefined>;
    /**
     * Gets or sets Azure Pricing Tier - Free, Basic, etc.
     */
    readonly azurePricingTier: pulumi.Output<string | undefined>;
    /**
     * Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
     */
    readonly azureStorageRedundancy: pulumi.Output<string | undefined>;
    /**
     * Gets or sets the Azure VM families.
     */
    readonly azureVmFamilies: pulumi.Output<string[] | undefined>;
    /**
     * Confidence Rating in Percentage.
     */
    readonly confidenceRatingInPercentage: pulumi.Output<number>;
    /**
     * Gets the collection of cost components.
     */
    readonly costComponents: pulumi.Output<outputs.migrate.CostComponentResponse[]>;
    /**
     * Date and Time when assessment was created.
     */
    readonly createdTimestamp: pulumi.Output<string>;
    /**
     * Currency in which prices should be reported.
     */
    readonly currency: pulumi.Output<string | undefined>;
    /**
     * Custom discount percentage.
     */
    readonly discountPercentage: pulumi.Output<number | undefined>;
    /**
     * Gets the distribution by os name.
     */
    readonly distributionByOsName: pulumi.Output<{
        [key: string]: number;
    }>;
    /**
     * Gets the distribution distribution of sqlInstances by service pack insight.
     */
    readonly distributionByServicePackInsight: pulumi.Output<{
        [key: string]: number;
    }>;
    /**
     * Gets the distribution of sqlInstances by support status.
     */
    readonly distributionBySupportStatus: pulumi.Output<{
        [key: string]: number;
    }>;
    /**
     * Gets or sets enterprise agreement subscription id.
     */
    readonly eaSubscriptionId: pulumi.Output<string | undefined>;
    /**
     * Gets the group type for the assessment.
     */
    readonly groupType: pulumi.Output<string>;
    /**
     * Gets or sets the user configurable setting to display the linux azure hybrid use
     * benefit.
     */
    readonly linuxAzureHybridUseBenefit: pulumi.Output<string | undefined>;
    /**
     * Gets or sets the aggregate Bandwidth Cost for all machines in the assessment.
     */
    readonly monthlyBandwidthCost: pulumi.Output<number>;
    /**
     * Gets or sets the aggregate Compute Cost for all machines in the assessment.
     */
    readonly monthlyComputeCost: pulumi.Output<number>;
    /**
     * Gets or sets the aggregate premium storage cost for all machines in the
     * assessment.
     */
    readonly monthlyPremiumStorageCost: pulumi.Output<number>;
    /**
     * Gets or sets the aggregate standard SSD storage cost for all the machines in
     * the assessment.
     */
    readonly monthlyStandardSsdStorageCost: pulumi.Output<number>;
    /**
     * Gets or sets the aggregate Storage Cost for all machines in the assessment.
     */
    readonly monthlyStorageCost: pulumi.Output<number>;
    /**
     * Gets or sets the aggregate ultra storage cost for all machines in the
     * assessment.
     */
    readonly monthlyUltraStorageCost: pulumi.Output<number>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * Gets or sets the Number of machines part of the assessment.
     */
    readonly numberOfMachines: pulumi.Output<number>;
    /**
     * Percentile of the utilization data values to be considered while assessing
     * machines.
     */
    readonly percentile: pulumi.Output<string | undefined>;
    /**
     * Gets or sets the end time to consider performance data for assessment.
     */
    readonly perfDataEndTime: pulumi.Output<string | undefined>;
    /**
     * Gets or sets the start time to consider performance data for assessment.
     */
    readonly perfDataStartTime: pulumi.Output<string | undefined>;
    /**
     * Last time when rates were queried.
     */
    readonly pricesTimestamp: pulumi.Output<string>;
    /**
     * The status of the last operation.
     */
    readonly provisioningState: pulumi.Output<string | undefined>;
    /**
     * Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
     */
    readonly reservedInstance: pulumi.Output<string | undefined>;
    /**
     * Percentage of buffer that user wants on performance metrics when recommending
     * Azure sizes.
     */
    readonly scalingFactor: pulumi.Output<number | undefined>;
    /**
     * Schema version.
     */
    readonly schemaVersion: pulumi.Output<string>;
    /**
     * Assessment sizing criterion.
     */
    readonly sizingCriterion: pulumi.Output<string | undefined>;
    /**
     * User configurable setting to display the Stage of Assessment.
     */
    readonly stage: pulumi.Output<string>;
    /**
     * Whether assessment is in valid state and all machines have been assessed.
     */
    readonly status: pulumi.Output<string>;
    /**
     * Gets or sets the Cloud suitability summary for all the machines in the
     * assessment.
     */
    readonly suitabilitySummary: pulumi.Output<{
        [key: string]: number;
    }>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.migrate.SystemDataResponse>;
    /**
     * Time Range for which the historic utilization data should be considered for
     * assessment.
     */
    readonly timeRange: pulumi.Output<string | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * Date and Time when assessment was last updated.
     */
    readonly updatedTimestamp: pulumi.Output<string>;
    /**
     * Gets or sets the duration for which the VMs are up in the on-premises
     * environment.
     */
    readonly vmUptime: pulumi.Output<outputs.migrate.VmUptimeResponse | undefined>;
    /**
     * Create a AssessmentsOperation resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: AssessmentsOperationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a AssessmentsOperation resource.
 */
export interface AssessmentsOperationArgs {
    /**
     * Machine Assessment ARM name
     */
    assessmentName?: pulumi.Input<string>;
    /**
     * Gets or sets the azure storage type. Premium, Standard etc.
     */
    azureDiskTypes?: pulumi.Input<pulumi.Input<string | enums.migrate.AzureDiskType>[]>;
    /**
     * Gets or sets the user configurable setting to display the azure hybrid use
     * benefit.
     */
    azureHybridUseBenefit?: pulumi.Input<string | enums.migrate.AzureHybridUseBenefit>;
    /**
     * Azure Location or Azure region where to which the machines will be migrated.
     */
    azureLocation?: pulumi.Input<string>;
    /**
     * Azure Offer Code.
     */
    azureOfferCode?: pulumi.Input<string | enums.migrate.AzureOfferCode>;
    /**
     * Gets or sets Azure Pricing Tier - Free, Basic, etc.
     */
    azurePricingTier?: pulumi.Input<string | enums.migrate.AzurePricingTier>;
    /**
     * Gets or sets the Azure Storage Redundancy. Example: Locally Redundant Storage.
     */
    azureStorageRedundancy?: pulumi.Input<string | enums.migrate.AzureStorageRedundancy>;
    /**
     * Gets or sets the Azure VM families.
     */
    azureVmFamilies?: pulumi.Input<pulumi.Input<string | enums.migrate.AzureVmFamily>[]>;
    /**
     * Currency in which prices should be reported.
     */
    currency?: pulumi.Input<string | enums.migrate.AzureCurrency>;
    /**
     * Custom discount percentage.
     */
    discountPercentage?: pulumi.Input<number>;
    /**
     * Gets or sets enterprise agreement subscription id.
     */
    eaSubscriptionId?: pulumi.Input<string>;
    /**
     * Group ARM name
     */
    groupName: pulumi.Input<string>;
    /**
     * Gets or sets the user configurable setting to display the linux azure hybrid use
     * benefit.
     */
    linuxAzureHybridUseBenefit?: pulumi.Input<string | enums.migrate.AzureHybridUseBenefit>;
    /**
     * Percentile of the utilization data values to be considered while assessing
     * machines.
     */
    percentile?: pulumi.Input<string | enums.migrate.Percentile>;
    /**
     * Gets or sets the end time to consider performance data for assessment.
     */
    perfDataEndTime?: pulumi.Input<string>;
    /**
     * Gets or sets the start time to consider performance data for assessment.
     */
    perfDataStartTime?: pulumi.Input<string>;
    /**
     * Assessment Project Name
     */
    projectName: pulumi.Input<string>;
    /**
     * The status of the last operation.
     */
    provisioningState?: pulumi.Input<string | enums.migrate.ProvisioningState>;
    /**
     * Gets or sets the Azure Reserved Instance - 1-Year, 3-Year.
     */
    reservedInstance?: pulumi.Input<string | enums.migrate.AzureReservedInstance>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Percentage of buffer that user wants on performance metrics when recommending
     * Azure sizes.
     */
    scalingFactor?: pulumi.Input<number>;
    /**
     * Assessment sizing criterion.
     */
    sizingCriterion?: pulumi.Input<string | enums.migrate.AssessmentSizingCriterion>;
    /**
     * Time Range for which the historic utilization data should be considered for
     * assessment.
     */
    timeRange?: pulumi.Input<string | enums.migrate.TimeRange>;
    /**
     * Gets or sets the duration for which the VMs are up in the on-premises
     * environment.
     */
    vmUptime?: pulumi.Input<inputs.migrate.VmUptimeArgs>;
}
