DSCResources/MSFT_SPServiceAppProxyGroup/MSFT_SPServiceAppProxyGroup.schema.mof

/*
**Description**
 
This resource is used to manage SharePoint Service Application Proxy Groups.
The "Ensure" parameter controls whether or not the Proxy Group should exist. A proxy group cannot be removed if a web application is using it.
The "ServiceAppProxies" property will set a specific list of Service App Proxies to be members of this Proxy Group. It will add and remove proxies to ensure the group matches this list exactly.
The "ServiceAppProxiesToInclude" and "ServiceAppProxiesToExclude" properties will allow you to add and remove proxies from the group, leaving other proxies that are in the group but not in either list intact.
 
Use the proxy group name "Default" to manipulate the default proxy group.
 
 
Requirements:
At least one of the ServiceAppProxies, ServiceAppProxiesToInclude or ServiceAppProxiesToExclude properties needs to be specified.
Do not combine the ServiceAppProxies property with the ServiceAppProxiesToInclude and ServiceAppProxiesToExclude properties.
 
**Examples**
 
   SPServiceAppProxyGroup ProxyGroup1
    {
        Name = "Proxy Group 1"
        Ensure = "Present"
        ServiceAppProxies = "Web 1 User Profile Service Application","Web 1 MMS Service Application","State Service Application"
    }
 
    SPServiceAppProxyGroup ProxyGroup2
    {
        Name = "Proxy Group 2"
        Ensure = "Present"
        ServiceAppProxiesToInclude = "Web 2 User Profile Service Application"
    }
 
*/
[ClassVersion("1.0.0.0"), FriendlyName("SPServiceAppProxyGroup")]
class MSFT_SPServiceAppProxyGroup : OMI_BaseResource
{
    [Key, Description("Name of the Proxy Group to create")] String Name;
    [Write, Description("Present creates the proxy group if it does not already exist, Absent will delete the proxy group if it exists"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
    [Write, Description("List of service application proxies that belong in this proxy group, all others will be removed")] String ServiceAppProxies[];
    [Write, Description("List of service application proxies to add to this proxy group, existing proxies will remain")] String ServiceAppProxiesToInclude[];
    [Write, Description("List of service application proxies to remove from this proxy grop, all others will remain")] String ServiceAppProxiesToExclude[];
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] String InstallAccount;
};