custom/autogen-model-cmdlets/New-NmeNetAppFilesAutoscaleConfigUpdateModel.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 NetAppFilesAutoscaleConfigUpdate.
.Description
Create an in-memory object for NetAppFilesAutoscaleConfigUpdate.

.Outputs
NmePowershell.Models.NetAppFilesAutoscaleConfigUpdate

#>

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

        [Parameter()]
        [int]
        $BasicMaxSizeBuffer,
        [Parameter()]
        [int]
        $BasicMaxSizeLimit,
        [Parameter()]
        [double]
        $BasicMinSizeBuffer,
        [Parameter()]
        [bool]
        $BasicNonGreedyStrategicEnabled,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("VolumeOnly", "VolumeAndPool")]
        [string]
        $BasicScalingMode,
        [Parameter()]
        [bool]
        $BasicTriggerLimitExceedingError,
        [Parameter()]
        [bool]
        $IsEnabled,
        [Parameter()]
        [bool]
        $PreStageIsEnabled,
        [Parameter()]
        [string]
        $PreStageTimezoneId,
        [Parameter()]
        [NmePowershell.Models.INetAppFilesWorkTimeSet[]]
        $PreStageWorkTimeSets,
        [Parameter()]
        [bool]
        $ScalingIsEnabled,
        [Parameter()]
        [int]
        $ScalingScaleInBy,
        [Parameter()]
        [int]
        $ScalingScaleInInterval,
        [Parameter()]
        [int]
        $ScalingScaleInLowLatency,
        [Parameter()]
        [int]
        $ScalingScaleOutBy,
        [Parameter()]
        [int]
        $ScalingScaleOutHighLatency,
        [Parameter()]
        [int]
        $ScalingScaleOutInterval,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("AvgReadLatency", "AvgWriteLatency", "AvgReadOrWriteLatency")]
        [string]
        $ScalingTrigger,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("Percent", "SizeGb", "SizeTb")]
        [string]
        $Unit
    )

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

        if ($PSBoundParameters.ContainsKey('BasicMaxSizeBuffer')) {
            $Object.BasicMaxSizeBuffer = $BasicMaxSizeBuffer
        }
        if ($PSBoundParameters.ContainsKey('BasicMaxSizeLimit')) {
            $Object.BasicMaxSizeLimit = $BasicMaxSizeLimit
        }
        if ($PSBoundParameters.ContainsKey('BasicMinSizeBuffer')) {
            $Object.BasicMinSizeBuffer = $BasicMinSizeBuffer
        }
        if ($PSBoundParameters.ContainsKey('BasicNonGreedyStrategicEnabled')) {
            $Object.BasicNonGreedyStrategicEnabled = $BasicNonGreedyStrategicEnabled
        }
        if ($PSBoundParameters.ContainsKey('BasicScalingMode')) {
            $Object.BasicScalingMode = $BasicScalingMode
        }
        if ($PSBoundParameters.ContainsKey('BasicTriggerLimitExceedingError')) {
            $Object.BasicTriggerLimitExceedingError = $BasicTriggerLimitExceedingError
        }
        if ($PSBoundParameters.ContainsKey('IsEnabled')) {
            $Object.IsEnabled = $IsEnabled
        }
        if ($PSBoundParameters.ContainsKey('PreStageIsEnabled')) {
            $Object.PreStageIsEnabled = $PreStageIsEnabled
        }
        if ($PSBoundParameters.ContainsKey('PreStageTimezoneId')) {
            $Object.PreStageTimezoneId = $PreStageTimezoneId
        }
        if ($PSBoundParameters.ContainsKey('PreStageWorkTimeSets')) {
            $Object.PreStageWorkTimeSets = $PreStageWorkTimeSets
        }
        if ($PSBoundParameters.ContainsKey('ScalingIsEnabled')) {
            $Object.ScalingIsEnabled = $ScalingIsEnabled
        }
        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('ScalingTrigger')) {
            $Object.ScalingTrigger = $ScalingTrigger
        }
        if ($PSBoundParameters.ContainsKey('Unit')) {
            $Object.Unit = $Unit
        }
        return $Object
    }
}