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

.Outputs
NmePowershell.Models.AutoHealConfigurationItem

#>

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

        [Parameter()]
        [NmePowershell.Models.IAutoHealAction[]]
        $Actions,
        [Parameter(Mandatory)]
        [NmePowershell.PSArgumentCompleterAttribute("WithoutSessions", "WithoutActive", "WithActive")]
        [string]
        $SessionCriteria,
        [Parameter()]
        [int]
        $StaleHeartbeatMinutes,
        [Parameter(Mandatory)]
        [int]
        $WaitMinutes,
        [Parameter()]
        [int]
        $WaitMinutesBeforeFirstAction,
        [Parameter(Mandatory)]
        [NmePowershell.PSArgumentCompleterAttribute("Available", "Unavailable", "Shutdown", "Disconnected", "Upgrading", "UpgradeFailed", "NoHeartbeat", "NotJoinedToDomain", "DomainTrustRelationshipLost", "SxSStackListenerNotReady", "FSLogixNotHealthy", "NeedsAssistance")]
        [string[]]
        $WvdStatuses
    )

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

        if ($PSBoundParameters.ContainsKey('Actions')) {
            $Object.Actions = $Actions
        }
        if ($PSBoundParameters.ContainsKey('SessionCriteria')) {
            $Object.SessionCriteria = $SessionCriteria
        }
        if ($PSBoundParameters.ContainsKey('StaleHeartbeatMinutes')) {
            $Object.StaleHeartbeatMinutes = $StaleHeartbeatMinutes
        }
        if ($PSBoundParameters.ContainsKey('WaitMinutes')) {
            $Object.WaitMinutes = $WaitMinutes
        }
        if ($PSBoundParameters.ContainsKey('WaitMinutesBeforeFirstAction')) {
            $Object.WaitMinutesBeforeFirstAction = $WaitMinutesBeforeFirstAction
        }
        if ($PSBoundParameters.ContainsKey('WvdStatuses')) {
            $Object.WvdStatuses = $WvdStatuses
        }
        return $Object
    }
}