DSCResources/MSFT_SPManagedAccount/MSFT_SPManagedAccount.schema.mof

/*
**Description**
 
This resource will ensure a managed account is provisioned in to the SharePoint farm.
The Account object specific the credential to store (including username and password) to set as the managed account.
The settings for EmailNotification, PreExpireDays and Schedule all relate to enabling automatic password change for the managed account, leaving these option out of the resource will ensure that no automatic password changing from SharePoint occurs.
 
**Example**
 
    SPManagedAccount WebPoolManagedAccount
    {
        AccountName = $WebPoolManagedAccount.UserName
        Account = $WebPoolManagedAccount
        Ensure = "Present"
        PsDscRunAsCredential = $InstallAccount
    }
*/
[ClassVersion("1.0.0.0"), FriendlyName("SPManagedAccount")]
class MSFT_SPManagedAccount : OMI_BaseResource
{
    [Key, Description("The username of the account")] string AccountName;
    [Write, Description("The credential with password of the account"), EmbeddedInstance("MSFT_Credential")] String Account;
    [Write, Description("How many days before a password change should an email be sent")] Uint32 EmailNotification;
    [Write, Description("How many days before a password expires should it be changed")] Uint32 PreExpireDays;
    [Write, Description("What is the schedule for the password reset")] string Schedule;
    [Write, Description("Present ensures managed account exists, absent ensures it is removed"), 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;
};