DSCResources/MSFT_xSPWordAutomationServiceApp/MSFT_xSPWordAutomationServiceApp.schema.mof

/*
**Description**
 
The resource is able to provision, unprovision and configure the Word Automation Service Application.
All settings that you can configure on the Service Application administration page are configurable using this resource.
 
Important:
When you specify Ensure=Present, the Application Pool and DatabaseName parameters are required.
When you specify Ensure=Absent, no other parameters are allowed (with the exception of Name, InstallAccount or PsDscRunAsCredential).
 
**Example**
 
Make sure the service application exists and has a specific configuration
 
    xSPWordAutomationServiceApp Word Automation
    {
        Name = "Word Automation Service Application"
        Ensure = "Present"
        ApplicationPool = "SharePoint Web Services"
        DatabaseName = "WordAutomation_DB"
        DatabaseServer = "SQLServer"
        SupportedFileFormats = "docx", "doc", "mht", "rtf", "xml"
        DisableEmbeddedFonts = $false
        MaximumMemoryUsage = 100
        RecycleThreshold = 100
        DisableBinaryFileScan = $false
        ConversionProcesses = 8
        JobConversionFrequency = 15 (in minutes)
        NumberOfConversionsPerProcess = 12
        TimeBeforeConversionIsMonitored = 5 (in minutes)
        MaximumConversionAttempts = 2
        MaximumSyncConversionRequests = 25
        KeepAliveTimeout = 30 (in seconds)
        MaximumConversionTime = 300 (in seconds)
        PsDscRunAsCredential = $InstallAccount
    }
 
Make sure the service application does not exist and remove when it does
 
    xSPWordAutomationServiceApp Word Automation
    {
        Name = "Word Automation Service Application"
        Ensure = "Absent"
        PsDscRunAsCredential = $InstallAccount
    }
*/
 
[ClassVersion("1.0.0.0"), FriendlyName("xSPWordAutomationServiceApp")]
class MSFT_xSPWordAutomationServiceApp : OMI_BaseResource
{
    [Key, Description("THe name of the service application")] string Name;
    [Required, Description("Present to ensure the app exists, absent to ensure that it does not"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
    [Write, Description("The name of the application pool to run the service app in")] string ApplicationPool;
    [Write, Description("The name of the database for the service app")] string DatabaseName;
    [Write, Description("The name of the server that will host the database")] string DatabaseServer;
    [Write, Description("The list of supported file types"), ValueMap{"docx","doc","mht","rtf","xml"}, Values{"docx","doc","mht","rtf","xml"}] string SupportedFileFormats[];
    [Write, Description("Should embedded fonts be disabled")] boolean DisableEmbeddedFonts;
    [Write, Description("What is the maximum amount of memory the service app should use (in MB)")] uint32 MaximumMemoryUsage;
    [Write, Description("What is the recycle threshold for this service app")] uint32 RecycleThreshold;
    [Write, Description("Should binary file scans be disabled")] boolean DisableBinaryFileScan;
    [Write, Description("How many conversion processes can be run at once")] uint32 ConversionProcesses;
    [Write, Description("How frequently should new jobs be started from the queue (in minutes)")] uint32 JobConversionFrequency;
    [Write, Description("How many document conversions should be included in a single process")] uint32 NumberOfConversionsPerProcess;
    [Write, Description("How long can a conversion be run before it becomes monitored")] uint32 TimeBeforeConversionIsMonitored;
    [Write, Description("What is the maximum number of attempts to convert a document")] uint32 MaximumConversionAttempts;
    [Write, Description("What is the maximum number of sync conversion requests for the service app")] uint32 MaximumSyncConversionRequests;
    [Write, Description("How long is the keep alive timeout set to for the service app")] uint32 KeepAliveTimeout;
    [Write, Description("What is the maximum time in seconds for a document conversion to be allowed to run")] uint32 MaximumConversionTime;
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] string InstallAccount;
};