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

.Outputs
NmePowershell.Models.HostPoolReimageSchedule

#>

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

        [Parameter()]
        [int]
        $ConcurrencyMaxFailedTasks,
        [Parameter()]
        [int]
        $ConcurrencyTasks,
        [Parameter()]
        [bool]
        $MessagingDeactivateBeforeOperation,
        [Parameter()]
        [int]
        $MessagingDelayMinutes,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("Force", "Wait")]
        [string]
        $MessagingLogOffAggressiveness,
        [Parameter()]
        [string]
        $MessagingMessage,
        [Parameter()]
        [int]
        $MessagingTimeoutInDays,
        [Parameter()]
        [string]
        $ReimageParamDiskPerformanceTier,
        [Parameter()]
        [int]
        $ReimageParamDiskSize,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("CacheDisk", "ResourceDisk", "NvmeDisk")]
        [string]
        $ReimageParamEphemeralOSDiskPlacement,
        [Parameter()]
        [bool]
        $ReimageParamHasEphemeralOSDisk,
        [Parameter()]
        [string]
        $ReimageParamImage,
        [Parameter()]
        [bool]
        $ReimageParamSetToDrainModeWhileProcessing,
        [Parameter()]
        [string]
        $ReimageParamStorageType,
        [Parameter()]
        [string]
        $ReimageParamVMSize,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("0", "1", "2", "3", "4", "5", "6")]
        [int]
        $ScheduleDayOfWeek,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("First", "Second", "Third", "Fourth", "Last")]
        [string]
        $ScheduleDayOfWeekNumber,
        [Parameter()]
        [string]
        $ScheduleDescription,
        [Parameter()]
        [string]
        $ScheduleName,
        [Parameter()]
        [int]
        $ScheduleOffsetInDays,
        [Parameter(Mandatory)]
        [NmePowershell.PSArgumentCompleterAttribute("Once", "Daily", "Weekly", "Monthly", "Hourly", "PatchTuesday")]
        [string]
        $ScheduleRecurrenceType,
        [Parameter(Mandatory)]
        [System.DateTime]
        $ScheduleStartDate,
        [Parameter(Mandatory)]
        [int]
        $ScheduleStartHour,
        [Parameter(Mandatory)]
        [int]
        $ScheduleStartMinutes,
        [Parameter(Mandatory)]
        [string]
        $ScheduleTimeZoneId
    )

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

        if ($PSBoundParameters.ContainsKey('ConcurrencyMaxFailedTasks')) {
            $Object.ConcurrencyMaxFailedTasks = $ConcurrencyMaxFailedTasks
        }
        if ($PSBoundParameters.ContainsKey('ConcurrencyTasks')) {
            $Object.ConcurrencyTasks = $ConcurrencyTasks
        }
        if ($PSBoundParameters.ContainsKey('MessagingDeactivateBeforeOperation')) {
            $Object.MessagingDeactivateBeforeOperation = $MessagingDeactivateBeforeOperation
        }
        if ($PSBoundParameters.ContainsKey('MessagingDelayMinutes')) {
            $Object.MessagingDelayMinutes = $MessagingDelayMinutes
        }
        if ($PSBoundParameters.ContainsKey('MessagingLogOffAggressiveness')) {
            $Object.MessagingLogOffAggressiveness = $MessagingLogOffAggressiveness
        }
        if ($PSBoundParameters.ContainsKey('MessagingMessage')) {
            $Object.MessagingMessage = $MessagingMessage
        }
        if ($PSBoundParameters.ContainsKey('MessagingTimeoutInDays')) {
            $Object.MessagingTimeoutInDays = $MessagingTimeoutInDays
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamDiskPerformanceTier')) {
            $Object.ReimageParamDiskPerformanceTier = $ReimageParamDiskPerformanceTier
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamDiskSize')) {
            $Object.ReimageParamDiskSize = $ReimageParamDiskSize
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamEphemeralOSDiskPlacement')) {
            $Object.ReimageParamEphemeralOSDiskPlacement = $ReimageParamEphemeralOSDiskPlacement
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamHasEphemeralOSDisk')) {
            $Object.ReimageParamHasEphemeralOSDisk = $ReimageParamHasEphemeralOSDisk
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamImage')) {
            $Object.ReimageParamImage = $ReimageParamImage
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamSetToDrainModeWhileProcessing')) {
            $Object.ReimageParamSetToDrainModeWhileProcessing = $ReimageParamSetToDrainModeWhileProcessing
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamStorageType')) {
            $Object.ReimageParamStorageType = $ReimageParamStorageType
        }
        if ($PSBoundParameters.ContainsKey('ReimageParamVMSize')) {
            $Object.ReimageParamVMSize = $ReimageParamVMSize
        }
        if ($PSBoundParameters.ContainsKey('ScheduleDayOfWeek')) {
            $Object.ScheduleDayOfWeek = $ScheduleDayOfWeek
        }
        if ($PSBoundParameters.ContainsKey('ScheduleDayOfWeekNumber')) {
            $Object.ScheduleDayOfWeekNumber = $ScheduleDayOfWeekNumber
        }
        if ($PSBoundParameters.ContainsKey('ScheduleDescription')) {
            $Object.ScheduleDescription = $ScheduleDescription
        }
        if ($PSBoundParameters.ContainsKey('ScheduleName')) {
            $Object.ScheduleName = $ScheduleName
        }
        if ($PSBoundParameters.ContainsKey('ScheduleOffsetInDays')) {
            $Object.ScheduleOffsetInDays = $ScheduleOffsetInDays
        }
        if ($PSBoundParameters.ContainsKey('ScheduleRecurrenceType')) {
            $Object.ScheduleRecurrenceType = $ScheduleRecurrenceType
        }
        if ($PSBoundParameters.ContainsKey('ScheduleStartDate')) {
            $Object.ScheduleStartDate = $ScheduleStartDate
        }
        if ($PSBoundParameters.ContainsKey('ScheduleStartHour')) {
            $Object.ScheduleStartHour = $ScheduleStartHour
        }
        if ($PSBoundParameters.ContainsKey('ScheduleStartMinutes')) {
            $Object.ScheduleStartMinutes = $ScheduleStartMinutes
        }
        if ($PSBoundParameters.ContainsKey('ScheduleTimeZoneId')) {
            $Object.ScheduleTimeZoneId = $ScheduleTimeZoneId
        }
        return $Object
    }
}