custom/autogen-model-cmdlets/New-NmeAzureFilesAutoscaleConfigUpdateModel.ps1


# ----------------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.8, generator: @autorest/powershell@4.0.752)
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Create an in-memory object for AzureFilesAutoscaleConfigUpdate.
.Description
Create an in-memory object for AzureFilesAutoscaleConfigUpdate.

.Outputs
NmePowershell.Models.AzureFilesAutoscaleConfigUpdate

#>

function New-NmeAzureFilesAutoscaleConfigUpdateModel {
    [NmePowershell.ModelCmdletAttribute()]
    [OutputType('NmePowershell.Models.AzureFilesAutoscaleConfigUpdate')]
    [CmdletBinding(PositionalBinding=$false)]
    Param(

        [Parameter()]
        [int]
        $BasicMaxQuotaBuffer,
        [Parameter()]
        [int]
        $BasicMaxQuotaLimitGb,
        [Parameter()]
        [int]
        $BasicMinQuotaBuffer,
        [Parameter()]
        [bool]
        $IsEnabled,
        [Parameter()]
        [bool]
        $PreStageIsEnabled,
        [Parameter()]
        [int]
        $PreStageQuotaBuffer,
        [Parameter()]
        [string]
        $PreStageTimezoneId,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("0", "1", "2", "3", "4", "5", "6")]
        [int[]]
        $PreStageWorkDays,
        [Parameter()]
        [int]
        $ScalingScaleInBy,
        [Parameter()]
        [int]
        $ScalingScaleInInterval,
        [Parameter()]
        [int]
        $ScalingScaleInLowLatency,
        [Parameter()]
        [int]
        $ScalingScaleOutBy,
        [Parameter()]
        [int]
        $ScalingScaleOutHighLatency,
        [Parameter()]
        [int]
        $ScalingScaleOutInterval,
        [Parameter()]
        [int]
        $ScalingTransactionThreshold,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("MaxSuccessServerLatency", "AvgSuccessServerLatency")]
        [string]
        $ScalingTrigger,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("Percent", "SizeGb", "SizeTb")]
        [string]
        $Unit
    )

    process {
        $Object = [NmePowershell.Models.AzureFilesAutoscaleConfigUpdate]::New()

        if ($PSBoundParameters.ContainsKey('BasicMaxQuotaBuffer')) {
            $Object.BasicMaxQuotaBuffer = $BasicMaxQuotaBuffer
        }
        if ($PSBoundParameters.ContainsKey('BasicMaxQuotaLimitGb')) {
            $Object.BasicMaxQuotaLimitGb = $BasicMaxQuotaLimitGb
        }
        if ($PSBoundParameters.ContainsKey('BasicMinQuotaBuffer')) {
            $Object.BasicMinQuotaBuffer = $BasicMinQuotaBuffer
        }
        if ($PSBoundParameters.ContainsKey('IsEnabled')) {
            $Object.IsEnabled = $IsEnabled
        }
        if ($PSBoundParameters.ContainsKey('PreStageIsEnabled')) {
            $Object.PreStageIsEnabled = $PreStageIsEnabled
        }
        if ($PSBoundParameters.ContainsKey('PreStageQuotaBuffer')) {
            $Object.PreStageQuotaBuffer = $PreStageQuotaBuffer
        }
        if ($PSBoundParameters.ContainsKey('PreStageTimezoneId')) {
            $Object.PreStageTimezoneId = $PreStageTimezoneId
        }
        if ($PSBoundParameters.ContainsKey('PreStageWorkDays')) {
            $Object.PreStageWorkDays = $PreStageWorkDays
        }
        if ($PSBoundParameters.ContainsKey('ScalingScaleInBy')) {
            $Object.ScalingScaleInBy = $ScalingScaleInBy
        }
        if ($PSBoundParameters.ContainsKey('ScalingScaleInInterval')) {
            $Object.ScalingScaleInInterval = $ScalingScaleInInterval
        }
        if ($PSBoundParameters.ContainsKey('ScalingScaleInLowLatency')) {
            $Object.ScalingScaleInLowLatency = $ScalingScaleInLowLatency
        }
        if ($PSBoundParameters.ContainsKey('ScalingScaleOutBy')) {
            $Object.ScalingScaleOutBy = $ScalingScaleOutBy
        }
        if ($PSBoundParameters.ContainsKey('ScalingScaleOutHighLatency')) {
            $Object.ScalingScaleOutHighLatency = $ScalingScaleOutHighLatency
        }
        if ($PSBoundParameters.ContainsKey('ScalingScaleOutInterval')) {
            $Object.ScalingScaleOutInterval = $ScalingScaleOutInterval
        }
        if ($PSBoundParameters.ContainsKey('ScalingTransactionThreshold')) {
            $Object.ScalingTransactionThreshold = $ScalingTransactionThreshold
        }
        if ($PSBoundParameters.ContainsKey('ScalingTrigger')) {
            $Object.ScalingTrigger = $ScalingTrigger
        }
        if ($PSBoundParameters.ContainsKey('Unit')) {
            $Object.Unit = $Unit
        }
        return $Object
    }
}