DSCResources/MSFT_xSPWebAppBlockedFileTypes/MSFT_xSPWebAppBlockedFileTypes.schema.mof

/*
**Description**
 
This resource is responsible for controlling the blocked file type setting on a specific web application.
It has two modes of operation, the first is to use the "blocked" property, where you are able to define a specific list of file types that will be blocked.
In this mode when it is detected that the list does not match the local farm, it is set to match this list exactly.
The second mode is to use the "EnsureBlocked" and "EnsureAllowed" properties.
EnsureBlocked will check to make sure that the specified file types are on the list, and if not they will be added.
EnsureAllowed checks to make sure that a file type is not on the list, and if it is it will be removed.
Both of these properties will only make changes to the file types in their list and will leave the full list as it is otherwise, whereas the blocked property resets the list in full.
 
**Example**
 
    xSPWebAppBlockedFileTypes PrimaryWebAppBlockedFileTypes
    {
        Url = "Shttp://exmaple.contoso.local"
        EnsureBlocked = @("exe", "dll", "msi")
        EnsureAllowed = @("pdf", "docx", "xlsx")
        PsDscRunAsCredential = $InstallAccount
    }
*/
[ClassVersion("1.0.0"), FriendlyName("xSPWebAppBlockedFileTypes")]
Class MSFT_xSPWebAppBlockedFileTypes : OMI_BaseResource
{
    [Key, Description("The URL of the web application to set blocked file types for")] string Url;
    [write, Description("This is a fixed list to use for blocked file types in this web app")] string Blocked[];
    [write, Description("This list of file types that will always be added to the list for this web app. Types not in this list will be left in the list")] string EnsureBlocked[];
    [write, Description("This list of file types that will always be removedfrom the list for this web app. Types not in this list will be left in the list")] string EnsureAllowed[];
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] string InstallAccount;
};