DSCResources/MSFT_xSPUserProfileServiceApp/MSFT_xSPUserProfileServiceApp.schema.mof

/*
**Description**
 
This resource will provision an instance of the user profile service to the farm.
It creates the required databases using the parameters that are passed in to it (although these are only used during the initial provisioning).
The farm account is used during the provisioning of the service only (in the set method), and the install account is used in the get and test methods.
This is done to ensure that the databases are created with the correct schema owners and allow the user profile sync service to operate correctly.
 
**Example**
 
    xSPUserProfileServiceApp UserProfileServiceApp
    {
        Name = "User Profile Service Application"
        ApplicationPool = "SharePoint Service Applications"
        MySiteHostLocation = "http://my.sharepoint.contoso.local"
        ProfileDBName = "SP_UserProfiles"
        ProfileDBServer = "SQL.contoso.local\SQLINSTANCE"
        SocialDBName = "SP_Social"
        SocialDBServer = "SQL.contoso.local\SQLINSTANCE"
        SyncDBName = "SP_ProfileSync"
        SyncDBServer = "SQL.contoso.local\SQLINSTANCE"
        FarmAccount = $FarmAccount
        PsDscRunAsCredential = $SetupAccount
    }
*/
[ClassVersion("1.0.0.0"), FriendlyName("xSPUserProfileServiceApp")]
class MSFT_xSPUserProfileServiceApp : OMI_BaseResource
{
    [Key, Description("The name of the user profile service")] string Name;
    [Required, Description("The name of the application pool to run the service app in")] string ApplicationPool;
    [Required, Description("The farm account to use when provisioning the app"), EmbeddedInstance("MSFT_Credential")] String FarmAccount;
    [Write, Description("The URL of the my site host collection")] string MySiteHostLocation;
    [Write, Description("The name of the profile database")] string ProfileDBName;
    [Write, Description("The name of the server to host the profile database")] string ProfileDBServer;
    [Write, Description("The name of the social database")] string SocialDBName;
    [Write, Description("The name of the database server to host the social database")] string SocialDBServer;
    [Write, Description("The name of the sync database")] string SyncDBName;
    [Write, Description("The name of the database server to host the sync database")] string SyncDBServer;
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] String InstallAccount;
};