DSCResources/MSFT_SCAutoSensitivityLabelRule/MSFT_SCAutoSensitivityLabelRule.schema.mof

[ClassVersion("1.0.0")]
Class MSFT_SCHeaderPattern
{
    [Required, Description("Name of the header pattern")] String Name;
    [Required, Description("Regular expressions for the pattern")] String Values[];
};
[ClassVersion("1.0.0")]
Class MSFT_SCDLPSensitiveInformation
{
    [Required, Description("Name of the Sensitive Information Content")] String name;
    [Write, Description("Id of the Sensitive Information Content")] String id;
    [Write, Description("Maximum Confidence level value for the Sensitive Information")] String maxconfidence;
    [Write, Description("Minimum Confidence level value for the Sensitive Information")] String minconfidence;
    [Write, Description("Type of Classifier value for the Sensitive Information")] String classifiertype;
    [Write, Description("Minimum Count value for the Sensitive Information")] String mincount;
    [Write, Description("Maximum Count value for the Sensitive Information")] String maxcount;
};
[ClassVersion("1.0.0")]
Class MSFT_SCDLPLabel
{
    [Required, Description("Name of the Sensitive Label")] String name;
    [Write, Description("Id of the Sensitive Information label")] String id;
    [Write, Description("Type of the Sensitive Information label")] String type;
};
[ClassVersion("1.0.0")]
Class MSFT_SCDLPContainsSensitiveInformationGroup
{
    [Write, Description("Sensitive Information Content Types"),EmbeddedInstance("MSFT_SCDLPSensitiveInformation")] String SensitiveInformation[];
    [Write, Description("Sensitive Information Labels"),EmbeddedInstance("MSFT_SCDLPLabel")] String Labels[];
    [Required, Description("Name of the group")] String Name;
    [Required, Description("Operator"),ValueMap{"And","Or"}, Values{"And","Or"}] String Operator;
};
[ClassVersion("1.0.0")]
Class MSFT_SCDLPContainsSensitiveInformation
{
    [Write, Description("Sensitive Information Content Types"),EmbeddedInstance("MSFT_SCDLPSensitiveInformation")] String SensitiveInformation[];
    [Write, Description("Groups of sensitive information types."),EmbeddedInstance("MSFT_SCDLPContainsSensitiveInformationGroup")] String Groups[];
    [Write, Description("Operator"),ValueMap{"And","Or"}, Values{"And","Or"}] String Operator;
};
[ClassVersion("1.0.0.0"), FriendlyName("SCAutoSensitivityLabelRule")]
class MSFT_SCAutoSensitivityLabelRule : OMI_BaseResource
{
    [Key, Description("Name of the Rule.")] String Name;
    [Required, Description("Name of the associated Policy.")] String Policy;
    [Write, Description("The AccessScope parameter specifies a condition for the auto-labeling policy rule that's based on the access scope of the content. The rule is applied to content that matches the specified access scope. Valid values are: InOrganization, NotInOrganization, None"), ValueMap{"InOrganization","NotInOrganization", "None"}, Values{"InOrganization","NotInOrganization", "None"}] String AccessScope;
    [Write, Description("The AnyOfRecipientAddressContainsWords parameter specifies a condition for the auto-labeling policy rule that looks for words or phrases in recipient email addresses. You can specify multiple words or phrases separated by commas.")] String AnyOfRecipientAddressContainsWords;
    [Write, Description("The AnyOfRecipientAddressMatchesPatterns parameter specifies a condition for the auto-labeling policy rule that looks for text patterns in recipient email addresses by using regular expressions.")] String AnyOfRecipientAddressMatchesPatterns;
    [Write, Description("The Comment parameter specifies an optional comment.")] String Comment;
    [Write, Description("The ContentContainsSensitiveInformation parameter specifies a condition for the rule that's based on a sensitive information type match in content. The rule is applied to content that contains the specified sensitive information type."), EmbeddedInstance("MSFT_SCDLPContainsSensitiveInformation")] String ContentContainsSensitiveInformation;
    [Write, Description("The ContentExtensionMatchesWords parameter specifies a condition for the auto-labeling policy rule that looks for words in file name extensions. You can specify multiple words separated by commas.")] String ContentExtensionMatchesWords;
    [Write, Description("The Disabled parameter specifies whether the auto-labeling policy rule is enabled or disabled.")] Boolean Disabled;
    [Write, Description("The DocumentIsPasswordProtected parameter specifies a condition for the auto-labeling policy rule that looks for password protected files (because the contents of the file can't be inspected). Password detection only works for Office documents and .zip files. ")] Boolean DocumentIsPasswordProtected;
    [Write, Description("The DocumentIsUnsupported parameter specifies a condition for the auto-labeling policy rule that looks for files that can't be scanned.")] Boolean DocumentIsUnsupported;
    [Write, Description("The ExceptIfAccessScopeAccessScope parameter specifies an exception for the auto-labeling policy rule that's based on the access scope of the content. The rule isn't applied to content that matches the specified access scope. Valid values are: InOrganization, NotInOrganization, None"), ValueMap{"InOrganization","NotInOrganization", "None"}, Values{"InOrganization","NotInOrganization", "None"}] String ExceptIfAccessScope;
    [Write, Description("The ExceptIfAnyOfRecipientAddressContainsWords parameter specifies an exception for the auto-labeling policy rule that looks for words or phrases in recipient email addresses. You can specify multiple words separated by commas.")] String ExceptIfAnyOfRecipientAddressContainsWords;
    [Write, Description("The ExceptIfAnyOfRecipientAddressMatchesPatterns parameter specifies an exception for the auto-labeling policy rule that looks for text patterns in recipient email addresses by using regular expressions. ")] String ExceptIfAnyOfRecipientAddressMatchesPatterns;
    [Write, Description("The ExceptIfContentContainsSensitiveInformation parameter specifies an exception for the auto-labeling policy rule that's based on a sensitive information type match in content. The rule isn't applied to content that contains the specified sensitive information type."), EmbeddedInstance("MSFT_SCDLPContainsSensitiveInformation")] String ExceptIfContentContainsSensitiveInformation;
    [Write, Description("The ExceptIfContentExtensionMatchesWords parameter specifies an exception for the auto-labeling policy rule that looks for words in file name extensions. You can specify multiple words separated by commas.")] String ExceptIfContentExtensionMatchesWords[];
    [Write, Description("The ExceptIfDocumentIsPasswordProtected parameter specifies an exception for the auto-labeling policy rule that looks for password protected files (because the contents of the file can't be inspected). Password detection only works for Office documents and .zip files. ")] Boolean ExceptIfDocumentIsPasswordProtected;
    [Write, Description("The ExceptIfDocumentIsUnsupported parameter specifies an exception for the auto-labeling policy rule that looks for files that can't be scanned.")] Boolean ExceptIfDocumentIsUnsupported;
    [Write, Description("The ExceptIfFrom parameter specifies an exception for the auto-labeling policy rule that looks for messages from specific senders. You can use any value that uniquely identifies the sender.")] String ExceptIfFrom[];
    [Write, Description("The ExceptIfFromAddressContainsWords parameter specifies an exception for the auto-labeling policy rule that looks for words or phrases in the sender's email address. You can specify multiple words or phrases separated by commas.")] String ExceptIfFromAddressContainsWords;
    [Write, Description("The ExceptIfFromAddressMatchesPatterns parameter specifies an exception for the auto-labeling policy rule that looks for text patterns in the sender's email address by using regular expressions. ")] String ExceptIfFromAddressMatchesPatterns;
    [Write, Description("The ExceptIfFromMemberOf parameter specifies an exception for the auto-labeling policy rule that looks for messages sent by group members. You identify the group members by their email addresses. You can enter multiple values separated by commas.")] String ExceptIfFromMemberOf[];
    [Write, Description("The HeaderMatchesPatterns parameter specifies an exception for the auto-labeling policy rule that looks for text patterns in a header field by using regular expressions.")] String ExceptIfHeaderMatchesPatterns[];
    [Write, Description("The ExceptIfProcessingLimitExceeded parameter specifies an exception for the auto-labeling policy rule that looks for files where scanning couldn't complete.")] Boolean ExceptIfProcessingLimitExceeded;
    [Write, Description("The ExceptIfRecipientDomainIs parameter specifies an exception for the auto-labeling policy rule that looks for recipients with email address in the specified domains. You can specify multiple domains separated by commas.")] String ExceptIfRecipientDomainIs[];
    [Write, Description("The ExceptIfSenderDomainIs parameter specifies an exception for the auto-labeling policy rule that looks for messages from senders with email address in the specified domains. You can specify multiple values separated by commas.")] String ExceptIfSenderDomainIs[];
    [Write, Description("The ExceptIfSenderIpRanges parameter specifies an exception for the auto-labeling policy rule that looks for senders whose IP addresses matches the specified value, or fall within the specified ranges.")] String ExceptIfSenderIPRanges[];
    [Write, Description("The ExceptIfSentTo parameter specifies an exception for the auto-labeling policy rule that looks for recipients in messages. You can use any value that uniquely identifies the recipient. ")] String ExceptIfSentTo[];
    [Write, Description("The ExceptIfSentToMemberOf parameter specifies an exception for the auto-labeling policy rule that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You identify the groups by email address. You can specify multiple values separated by commas.")] String ExceptIfSentToMemberOf[];
    [Write, Description("The ExceptIfSubjectMatchesPatterns parameter specifies an exception for the auto-labeling policy rule that looks for text patterns in the Subject field of messages by using regular expressions.")] String ExceptIfSubjectMatchesPatterns;
    [Write, Description("The FromAddressContainsWords parameter specifies a condition for the auto-labeling policy rule that looks for words or phrases in the sender's email address. You can specify multiple words or phrases separated by commas.")] String FromAddressContainsWords;
    [Write, Description("The FromAddressMatchesPatterns parameter specifies a condition for the auto-labeling policy rule that looks for text patterns in the sender's email address by using regular expressions.")] String FromAddressMatchesPatterns;
    [Write, Description("The HeaderMatchesPatterns parameter specifies a condition for the auto-labeling policy rule that looks for text patterns in a header field by using regular expressions."), EmbeddedInstance("MSFT_SCHeaderPattern")] String HeaderMatchesPatterns;
    [Write, Description("The ProcessingLimitExceeded parameter specifies a condition for the auto-labeling policy rule that looks for files where scanning couldn't complete. You can use this condition to create rules that work together to identify and process messages where the content couldn't be fully scanned.")] Boolean ProcessingLimitExceeded;
    [Write, Description("The RecipientDomainIs parameter specifies a condition for the auto-labeling policy rule that looks for recipients with email address in the specified domains. You can specify multiple domains separated by commas.")] String RecipientDomainIs[];
    [Write, Description("The ReportSeverityLevel parameter specifies the severity level of the incident report for content detections based on the rule. Valid values are: None, Low, Medium, High"), ValueMap{"None","Low", "Medium", "High"}, Values{"None","Low", "Medium", "High"}] String ReportSeverityLevel;
    [Write, Description("The RuleErrorAction parameter specifies what to do if an error is encountered during the evaluation of the rule. Valid values are: Ignore, RetryThenBlock, *blank*"), ValueMap{"Ignore","RetryThenBlock", ""}, Values{"Ignore","RetryThenBlock", ""}] String RuleErrorAction;
    [Write, Description("The SenderDomainIs parameter specifies a condition for the auto-labeling policy rule that looks for messages from senders with email address in the specified domains. ")] String SenderDomainIs[];
    [Write, Description("The SenderIpRanges parameter specifies a condition for the auto-sensitivity policy rule that looks for senders whose IP addresses matches the specified value, or fall within the specified ranges.")] String SenderIPRanges[];
    [Write, Description("The SentTo parameter specifies a condition for the auto-sensitivity policy rule that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] String SentTo[];
    [Write, Description("The SentToMemberOf parameter specifies a condition for the auto-labeling policy rule that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You identify the groups by email address.")] String SentToMemberOf[];
    [Write, Description("The SubjectMatchesPatterns parameter specifies a condition for the auto-labeling policy rule that looks for text patterns in the Subject field of messages by using regular expressions.")] String SubjectMatchesPatterns;
    [Key, Description("Workload the rule is associated with. Value can be: Exchange, SharePoint, OneDriveForBusiness"), ValueMap{"Exchange","SharePoint", "OneDriveForBusiness"}, Values{"Exchange","SharePoint", "OneDriveForBusiness"}] String Workload;
    [Write, Description("Specify if this rule should exist or not."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;
    [Write, Description("Credentials of the Exchange Global Admin"), EmbeddedInstance("MSFT_Credential")] string Credential;
    [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId;
    [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId;
    [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint;
    [Write, Description("Username can be made up to anything but password will be used for CertificatePassword"), EmbeddedInstance("MSFT_Credential")] String CertificatePassword;
    [Write, Description("Path to certificate used in service principal usually a PFX file.")] String CertificatePath;
};