DSCResources/MSFT_SPSearchServiceApp/MSFT_SPSearchServiceApp.schema.mof

/*
**Description**
 
This resource is responsible for provisioning the search service application.
The current version lets you specify the database name and server, as well as the application pool.
If the application pool is changed the DSC resource will set it back as per what is set in the resource.
The database name parameter is used as the prefix for all search databases (so you will end up with one for the admin database which matches the name, and then "_analyticsreportingstore", "_crawlstore" and "_linkstore" databases as well).
 
**Example**
 
    SPSearchServiceApp SearchServiceApp
    {
        Name = "Search Service Application"
        DatabaseName = "SP_Search"
        ApplicationPool = "SharePoint Service Applications"
        PsDscRunAsCredential = $InstallAccount
    }
*/
[ClassVersion("1.0.0.0"), FriendlyName("SPSearchServiceApp")]
class MSFT_SPSearchServiceApp : OMI_BaseResource
{
    [Key, Description("The name of the search service application")] string Name;
    [Required, Description("The application pool that it should run in")] string ApplicationPool;
    [Write, Description("The URL of the enterprise search center site collection")] string SearchCenterUrl;
    [Write, Description("The name of the database (noting that some search databases will use this as a prefix)")] string DatabaseName;
    [Write, Description("The server that host the databases for this service application")] string DatabaseServer;
    [Write, Description("The default content access account for this search service app"), EmbeddedInstance("MSFT_Credential")] String DefaultContentAccessAccount;
    [Write, Description("Should this search service application be a cloud based service app")] boolean CloudIndex;
    [Write, Description("Present if the service app should exist, absent if it should not"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] String InstallAccount;
};