internal/functions/Set-AzPolicyEnrollmentRestMethod.ps1

function Set-AzPolicyEnrollmentRestMethod {
    [CmdletBinding()]
    param (
        $EnrollmentObj,
        $ApiVersion
    )

    $displayLabel = if ([string]::IsNullOrWhiteSpace($EnrollmentObj.displayName)) { $EnrollmentObj.name } else { $EnrollmentObj.displayName }
    Write-ModernStatus -Message "Setting policy enrollment: $displayLabel" -Status "info" -Indent 2

    $properties = @{
        assignmentScopeValidation    = $EnrollmentObj.assignmentScopeValidation
        description                  = $EnrollmentObj.description
        displayName                  = $EnrollmentObj.displayName
        metadata                     = $EnrollmentObj.metadata
        policyAssignmentId           = $EnrollmentObj.policyAssignmentId
        policyDefinitionReferenceIds = $EnrollmentObj.policyDefinitionReferenceIds
        resourceSelectors            = $EnrollmentObj.resourceSelectors
    }
    Remove-NullFields $properties
    $payload = ConvertTo-Json @{ properties = $properties } -Depth 100 -Compress
    $response = Invoke-AzRestMethod -Path "$($EnrollmentObj.id)?api-version=$ApiVersion" -Method PUT -Payload $payload

    if ($response.StatusCode -lt 200 -or $response.StatusCode -ge 300) {
        throw "Policy Enrollment deployment failed: $($response.StatusCode) -- $($response.Content)"
    }
}