private/workflow/Resolve-OSDCloudWorkflowOSActivation.ps1

function Resolve-OSDCloudWorkflowOSActivation {
    <#
    .SYNOPSIS
        Resolves OS activation based on Windows edition requirements.
 
    .DESCRIPTION
        Returns Volume for Enterprise* editions and Retail for Home* editions. Other
        editions preserve the requested OSActivation value.
 
    .PARAMETER OSEdition
        The selected Windows edition display name.
 
    .PARAMETER OSActivation
        The requested or default OS activation value.
 
    .EXAMPLE
        Resolve-OSDCloudWorkflowOSActivation -OSEdition 'Enterprise' -OSActivation 'Retail'
 
        Returns Volume.
 
    .OUTPUTS
        System.String
 
    .NOTES
        Private helper. Not exported.
    #>

    [CmdletBinding()]
    [OutputType([System.String])]
    param (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]
        $OSEdition,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]
        $OSActivation
    )

    $Error.Clear()
    Write-Verbose "[$(Get-Date -format s)] [$($MyInvocation.MyCommand.Name)] OSEdition: $OSEdition"
    Write-Verbose "[$(Get-Date -format s)] [$($MyInvocation.MyCommand.Name)] OSActivation: $OSActivation"

    if ($OSEdition -like 'Enterprise*') {
        return 'Volume'
    }
    if ($OSEdition -like 'Home*') {
        return 'Retail'
    }

    return $OSActivation
}