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

.Outputs
NmePowershell.Models.DynamicPoolTriggerInfo

#>

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

        [Parameter()]
        [string]
        $AvailableSessionEndWorkHours,
        [Parameter()]
        [int]
        $AvailableSessionMaxAvailableUserSessions,
        [Parameter()]
        [int]
        $AvailableSessionMinAvailableUserSessions,
        [Parameter()]
        [int]
        $AvailableSessionOutsideWorkHoursSessions,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("Always", "DuringWorkHours")]
        [string]
        $AvailableSessionRestriction,
        [Parameter()]
        [int]
        $AverageSessionsScaleInHostChangeCount,
        [Parameter()]
        [float]
        $AverageSessionsScaleInValue,
        [Parameter()]
        [int]
        $AverageSessionsScaleOutHostChangeCount,
        [Parameter()]
        [float]
        $AverageSessionsScaleOutValue,
        [Parameter()]
        [int]
        $CpuScaleInAverageTimeRangeInMinutes,
        [Parameter()]
        [int]
        $CpuScaleInHostChangeCount,
        [Parameter()]
        [float]
        $CpuScaleInValue,
        [Parameter()]
        [int]
        $CpuScaleOutAverageTimeRangeInMinutes,
        [Parameter()]
        [int]
        $CpuScaleOutHostChangeCount,
        [Parameter()]
        [float]
        $CpuScaleOutValue,
        [Parameter()]
        [int]
        $PersonalAutoGrowUnassignedThreshold,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("0", "1")]
        [int]
        $PersonalAutoGrowUnit,
        [Parameter()]
        [string[]]
        $PersonalAutoShrinkAdminNotificationEmails,
        [Parameter()]
        [string]
        $PersonalAutoShrinkAdminNotificationSubjectTemplate,
        [Parameter()]
        [string]
        $PersonalAutoShrinkAdminNotificationTemplate,
        [Parameter()]
        [int]
        $PersonalAutoShrinkDeletionDelay,
        [Parameter()]
        [bool]
        $PersonalAutoShrinkExcludeUnassigned,
        [Parameter()]
        [NmePowershell.Models.IAutoScaleAdObject[]]
        $PersonalAutoShrinkExludedObjects,
        [Parameter()]
        [int]
        $PersonalAutoShrinkHostIdleDaysThreshold,
        [Parameter()]
        [bool]
        $PersonalAutoShrinkIsNotificationsEnabled,
        [Parameter()]
        [int]
        $PersonalAutoShrinkNotificationFrequency,
        [Parameter()]
        [string]
        $PersonalAutoShrinkNotificationMailbox,
        [Parameter()]
        [string]
        $PersonalAutoShrinkNotificationSubjectTemplate,
        [Parameter()]
        [string]
        $PersonalAutoShrinkNotificationTemplate,
        [Parameter()]
        [NmePowershell.Models.IScriptedActionOption[]]
        $PersonalAutoShrinkScriptedActions,
        [Parameter()]
        [int]
        $RamScaleInAverageTimeRangeInMinutes,
        [Parameter()]
        [int]
        $RamScaleInHostChangeCount,
        [Parameter()]
        [float]
        $RamScaleInValue,
        [Parameter()]
        [int]
        $RamScaleOutAverageTimeRangeInMinutes,
        [Parameter()]
        [int]
        $RamScaleOutHostChangeCount,
        [Parameter()]
        [float]
        $RamScaleOutValue,
        [Parameter(Mandatory)]
        [NmePowershell.PSArgumentCompleterAttribute("CPUUsage", "RAMUsage", "AvgActiveSessions", "AvailableUserSessionSingle", "AvailableUserSessions", "UserDriven", "PersonalAutoGrow", "PersonalAutoShrink")]
        [string]
        $TriggerType,
        [Parameter()]
        [bool]
        $UserDrivenBypassDrainMode,
        [Parameter()]
        [int]
        $UserDrivenMinAvailableSessions,
        [Parameter()]
        [int]
        $UserDrivenStopDelayMinutes
    )

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

        if ($PSBoundParameters.ContainsKey('AvailableSessionEndWorkHours')) {
            $Object.AvailableSessionEndWorkHours = $AvailableSessionEndWorkHours
        }
        if ($PSBoundParameters.ContainsKey('AvailableSessionMaxAvailableUserSessions')) {
            $Object.AvailableSessionMaxAvailableUserSessions = $AvailableSessionMaxAvailableUserSessions
        }
        if ($PSBoundParameters.ContainsKey('AvailableSessionMinAvailableUserSessions')) {
            $Object.AvailableSessionMinAvailableUserSessions = $AvailableSessionMinAvailableUserSessions
        }
        if ($PSBoundParameters.ContainsKey('AvailableSessionOutsideWorkHoursSessions')) {
            $Object.AvailableSessionOutsideWorkHoursSessions = $AvailableSessionOutsideWorkHoursSessions
        }
        if ($PSBoundParameters.ContainsKey('AvailableSessionRestriction')) {
            $Object.AvailableSessionRestriction = $AvailableSessionRestriction
        }
        if ($PSBoundParameters.ContainsKey('AverageSessionsScaleInHostChangeCount')) {
            $Object.AverageSessionsScaleInHostChangeCount = $AverageSessionsScaleInHostChangeCount
        }
        if ($PSBoundParameters.ContainsKey('AverageSessionsScaleInValue')) {
            $Object.AverageSessionsScaleInValue = $AverageSessionsScaleInValue
        }
        if ($PSBoundParameters.ContainsKey('AverageSessionsScaleOutHostChangeCount')) {
            $Object.AverageSessionsScaleOutHostChangeCount = $AverageSessionsScaleOutHostChangeCount
        }
        if ($PSBoundParameters.ContainsKey('AverageSessionsScaleOutValue')) {
            $Object.AverageSessionsScaleOutValue = $AverageSessionsScaleOutValue
        }
        if ($PSBoundParameters.ContainsKey('CpuScaleInAverageTimeRangeInMinutes')) {
            $Object.CpuScaleInAverageTimeRangeInMinutes = $CpuScaleInAverageTimeRangeInMinutes
        }
        if ($PSBoundParameters.ContainsKey('CpuScaleInHostChangeCount')) {
            $Object.CpuScaleInHostChangeCount = $CpuScaleInHostChangeCount
        }
        if ($PSBoundParameters.ContainsKey('CpuScaleInValue')) {
            $Object.CpuScaleInValue = $CpuScaleInValue
        }
        if ($PSBoundParameters.ContainsKey('CpuScaleOutAverageTimeRangeInMinutes')) {
            $Object.CpuScaleOutAverageTimeRangeInMinutes = $CpuScaleOutAverageTimeRangeInMinutes
        }
        if ($PSBoundParameters.ContainsKey('CpuScaleOutHostChangeCount')) {
            $Object.CpuScaleOutHostChangeCount = $CpuScaleOutHostChangeCount
        }
        if ($PSBoundParameters.ContainsKey('CpuScaleOutValue')) {
            $Object.CpuScaleOutValue = $CpuScaleOutValue
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoGrowUnassignedThreshold')) {
            $Object.PersonalAutoGrowUnassignedThreshold = $PersonalAutoGrowUnassignedThreshold
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoGrowUnit')) {
            $Object.PersonalAutoGrowUnit = $PersonalAutoGrowUnit
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkAdminNotificationEmails')) {
            $Object.PersonalAutoShrinkAdminNotificationEmails = $PersonalAutoShrinkAdminNotificationEmails
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkAdminNotificationSubjectTemplate')) {
            $Object.PersonalAutoShrinkAdminNotificationSubjectTemplate = $PersonalAutoShrinkAdminNotificationSubjectTemplate
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkAdminNotificationTemplate')) {
            $Object.PersonalAutoShrinkAdminNotificationTemplate = $PersonalAutoShrinkAdminNotificationTemplate
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkDeletionDelay')) {
            $Object.PersonalAutoShrinkDeletionDelay = $PersonalAutoShrinkDeletionDelay
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkExcludeUnassigned')) {
            $Object.PersonalAutoShrinkExcludeUnassigned = $PersonalAutoShrinkExcludeUnassigned
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkExludedObjects')) {
            $Object.PersonalAutoShrinkExludedObjects = $PersonalAutoShrinkExludedObjects
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkHostIdleDaysThreshold')) {
            $Object.PersonalAutoShrinkHostIdleDaysThreshold = $PersonalAutoShrinkHostIdleDaysThreshold
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkIsNotificationsEnabled')) {
            $Object.PersonalAutoShrinkIsNotificationsEnabled = $PersonalAutoShrinkIsNotificationsEnabled
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkNotificationFrequency')) {
            $Object.PersonalAutoShrinkNotificationFrequency = $PersonalAutoShrinkNotificationFrequency
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkNotificationMailbox')) {
            $Object.PersonalAutoShrinkNotificationMailbox = $PersonalAutoShrinkNotificationMailbox
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkNotificationSubjectTemplate')) {
            $Object.PersonalAutoShrinkNotificationSubjectTemplate = $PersonalAutoShrinkNotificationSubjectTemplate
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkNotificationTemplate')) {
            $Object.PersonalAutoShrinkNotificationTemplate = $PersonalAutoShrinkNotificationTemplate
        }
        if ($PSBoundParameters.ContainsKey('PersonalAutoShrinkScriptedActions')) {
            $Object.PersonalAutoShrinkScriptedActions = $PersonalAutoShrinkScriptedActions
        }
        if ($PSBoundParameters.ContainsKey('RamScaleInAverageTimeRangeInMinutes')) {
            $Object.RamScaleInAverageTimeRangeInMinutes = $RamScaleInAverageTimeRangeInMinutes
        }
        if ($PSBoundParameters.ContainsKey('RamScaleInHostChangeCount')) {
            $Object.RamScaleInHostChangeCount = $RamScaleInHostChangeCount
        }
        if ($PSBoundParameters.ContainsKey('RamScaleInValue')) {
            $Object.RamScaleInValue = $RamScaleInValue
        }
        if ($PSBoundParameters.ContainsKey('RamScaleOutAverageTimeRangeInMinutes')) {
            $Object.RamScaleOutAverageTimeRangeInMinutes = $RamScaleOutAverageTimeRangeInMinutes
        }
        if ($PSBoundParameters.ContainsKey('RamScaleOutHostChangeCount')) {
            $Object.RamScaleOutHostChangeCount = $RamScaleOutHostChangeCount
        }
        if ($PSBoundParameters.ContainsKey('RamScaleOutValue')) {
            $Object.RamScaleOutValue = $RamScaleOutValue
        }
        if ($PSBoundParameters.ContainsKey('TriggerType')) {
            $Object.TriggerType = $TriggerType
        }
        if ($PSBoundParameters.ContainsKey('UserDrivenBypassDrainMode')) {
            $Object.UserDrivenBypassDrainMode = $UserDrivenBypassDrainMode
        }
        if ($PSBoundParameters.ContainsKey('UserDrivenMinAvailableSessions')) {
            $Object.UserDrivenMinAvailableSessions = $UserDrivenMinAvailableSessions
        }
        if ($PSBoundParameters.ContainsKey('UserDrivenStopDelayMinutes')) {
            $Object.UserDrivenStopDelayMinutes = $UserDrivenStopDelayMinutes
        }
        return $Object
    }
}