DSCResources/MSFT_SPUserProfileProperty/MSFT_SPUserProfileProperty.schema.mof

 
/*
**Description**
 
This resource will create a property in a user profile service application.
It creates, update or delete a property using the parameters that are passed in to it .
 
The parameter DisplayOrder is absolute. ie.: If you want it to be placed as the 5th field of section Bla, which has propertyName value of 5000 then your DisplayOrder needs to be 5005
If no DisplayOrder is added then SharePoint adds it as the last property of section X.
 
Length is only relevant if Field type is "String".
 
This Resource doesn't currently support removing existing user profile properties
 
**Example**
SPUserProfileProperty WorkEmailProperty
{
    Name = "WorkEmail2"
    Ensure = "Present"
    UserProfileService = "User Profile Service Application"
    DisplayName = "Work Email"
    Type = "Email"
    Description = "" #implementation isn't using it yet
    PolicySetting = "Mandatory"
    PrivacySetting = "Public"
    MappingConnectionName = "contoso.com"
    MappingPropertyName = "mail"
    MappingDirection = "Import"
    Length = 10
    DisplayOrder =25
    IsEventLog =$false
    IsVisibleOnEditor=$true
    IsVisibleOnViewer = $true
    IsUserEditable = $true
    IsAlias = $false
    IsSearchable = $false
    TermStore = ""
    TermGroup = ""
    TermSet = ""
    UserOverridePrivacy = $false
}
 
*/
 
 
[ClassVersion("1.0.0.0"), FriendlyName("SPUserProfileProperty")]
class MSFT_SPUserProfileProperty : OMI_BaseResource
{
    [Key, Description("The internal name of the user profile property")] string Name;
    [Write, Description("Present if the property should exist, absent if it should be removed"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure;
    [Required, Description("The name of the user profile service application")] string UserProfileService;
    [Write, Description("The display name of the property")] string DisplayName;
    [Write, Description("The type of the property"), ValueMap{"BigInteger","Binary","Boolean","Date","DateNoYear","DateTime","Email","Float","Guid","HTML","Integer","Person","String","StringMultiValue","TimeZone","URL"}, Values{"BigInteger","Binary","Boolean","Date","DateNoYear","DateTime","Email","Float","Guid","HTML","Integer","Person","String","StringMultiValue","TimeZone","URL"}] string Type;
    [Write, Description("The description of the property")] string Description;
    [Write, Description("The policy setting to apply to the property"), ValueMap{"Mandatory","Optin","Optout","Disabled"}, Values{"Mandatory","Optin","Optout","Disabled"}] string PolicySetting;
    [Write, Description("The privacy setting for the property"), ValueMap{"Public","Contacts","Organization","Manager","Private"}, Values{"Public","Contacts","Organization","Manager","Private"}] string PrivacySetting;
    [Write, Description("The name of the UPS connect to map this property to")] string MappingConnectionName;
    [Write, Description("The name of the property from the UPS connection to map to")] string MappingPropertyName;
    [Write, Description("The direction of the mapping, either Import or Export")] string MappingDirection;
    [Write, Description("The length of the field")] uint32 Length;
    [Write, Description("The display order to put the property in to the list at")] uint32 DisplayOrder;
    [Write, Description("Is this field used for event logging")] boolean IsEventLog;
    [Write, Description("Is this field visible when editing a users profile, or hidden from editing")] boolean IsVisibleOnEditor;
    [Write, Description("Is this field visible when viewing a users profile")] boolean IsVisibleOnViewer;
    [Write, Description("Is this field able to be edited by a user, or only an administrator")] boolean IsUserEditable;
    [Write, Description("Is this field an alias that can be used to refer to a user by")] boolean IsAlias;
    [Write, Description("Is this field able to be searched upon")] boolean IsSearchable;
    [Write, Description("Can users override the default privacy policy")] boolean UserOverridePrivacy;
    [Write, Description("The name of the term store to look up managed terms from")] string TermStore;
    [Write, Description("The name of the term store group that terms are in for this field")] string TermGroup;
    [Write, Description("The name of the term set to allow values to be selected from")] string TermSet;
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] String InstallAccount;
};