cDhcpServerDynamicUpdate.psm1

[DscResource()]
class DhcpServerDynamicUpdate {

    [DscProperty(Key)]
    [ValidateSet('Always','Never','OnClientRequest')]
    [String]$dhcpServerDynamicUpdateSetting

    [DhcpServerDynamicUpdate]Get() {
        $currentDhcpServerDynamicUpdateSettingCurrent = (Get-DhcpServerv4DnsSetting).DynamicUpdates
        $result = [Hashtable]::new()
        $result.Add('dhcpServerDynamicUpdateSetting', $currentDhcpServerDynamicUpdateSettingCurrent)

        return $result
    }

    [void]Set() {
        if ($this.Test() -ne $true) {
            Set-DhcpServerv4DnsSetting -DynamicUpdates $this.dhcpServerdynamicUpdateSetting
        }
    }

    [bool]Test() {
        if ($this.Get().dhcpServerDynamicUpdateSetting -eq $this.dhcpServerDynamicUpdateSetting) {
            return $true
        }
        else {
            return $false
        }
    }
}