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

.Outputs
NmePowershell.Models.AutoHealConfiguration

#>

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

        [Parameter()]
        [NmePowershell.Models.IAutoHealAction[]]
        $ConfigActions,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("WithoutSessions", "WithoutActive", "WithActive")]
        [string]
        $ConfigSessionCriteria,
        [Parameter()]
        [int]
        $ConfigStaleHeartbeatMinutes,
        [Parameter()]
        [int]
        $ConfigWaitMinutes,
        [Parameter()]
        [int]
        $ConfigWaitMinutesBeforeFirstAction,
        [Parameter()]
        [NmePowershell.PSArgumentCompleterAttribute("Available", "Unavailable", "Shutdown", "Disconnected", "Upgrading", "UpgradeFailed", "NoHeartbeat", "NotJoinedToDomain", "DomainTrustRelationshipLost", "SxSStackListenerNotReady", "FSLogixNotHealthy", "NeedsAssistance")]
        [string[]]
        $ConfigWvdStatuses,
        [Parameter()]
        [NmePowershell.Models.IAutoHealConfigurationItem[]]
        $Configs,
        [Parameter(Mandatory)]
        [bool]
        $Enable
    )

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

        if ($PSBoundParameters.ContainsKey('ConfigActions')) {
            $Object.ConfigActions = $ConfigActions
        }
        if ($PSBoundParameters.ContainsKey('ConfigSessionCriteria')) {
            $Object.ConfigSessionCriteria = $ConfigSessionCriteria
        }
        if ($PSBoundParameters.ContainsKey('ConfigStaleHeartbeatMinutes')) {
            $Object.ConfigStaleHeartbeatMinutes = $ConfigStaleHeartbeatMinutes
        }
        if ($PSBoundParameters.ContainsKey('ConfigWaitMinutes')) {
            $Object.ConfigWaitMinutes = $ConfigWaitMinutes
        }
        if ($PSBoundParameters.ContainsKey('ConfigWaitMinutesBeforeFirstAction')) {
            $Object.ConfigWaitMinutesBeforeFirstAction = $ConfigWaitMinutesBeforeFirstAction
        }
        if ($PSBoundParameters.ContainsKey('ConfigWvdStatuses')) {
            $Object.ConfigWvdStatuses = $ConfigWvdStatuses
        }
        if ($PSBoundParameters.ContainsKey('Configs')) {
            $Object.Configs = $Configs
        }
        if ($PSBoundParameters.ContainsKey('Enable')) {
            $Object.Enable = $Enable
        }
        return $Object
    }
}