# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
from .. import _utilities, _tables

__all__ = [
    'MfaDuoArgs',
    'MfaFidoU2fArgs',
    'MfaFidoWebauthnArgs',
    'MfaGoogleOtpArgs',
    'MfaOktaCallArgs',
    'MfaOktaOtpArgs',
    'MfaOktaPasswordArgs',
    'MfaOktaPushArgs',
    'MfaOktaQuestionArgs',
    'MfaOktaSmsArgs',
    'MfaRsaTokenArgs',
    'MfaSymantecVipArgs',
    'MfaYubikeyTokenArgs',
    'RuleIdpDiscoveryAppExcludeArgs',
    'RuleIdpDiscoveryAppIncludeArgs',
    'RuleIdpDiscoveryPlatformIncludeArgs',
    'RuleIdpDiscoveryUserIdentifierPatternArgs',
]

@pulumi.input_type
class MfaDuoArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaFidoU2fArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaFidoWebauthnArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaGoogleOtpArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaOktaCallArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaOktaOtpArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaOktaPasswordArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaOktaPushArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaOktaQuestionArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaOktaSmsArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaRsaTokenArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaSymantecVipArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class MfaYubikeyTokenArgs:
    def __init__(__self__, *,
                 consent_type: Optional[pulumi.Input[str]] = None,
                 enroll: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] consent_type: User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        :param pulumi.Input[str] enroll: Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        if consent_type is not None:
            pulumi.set(__self__, "consent_type", consent_type)
        if enroll is not None:
            pulumi.set(__self__, "enroll", enroll)

    @property
    @pulumi.getter(name="consentType")
    def consent_type(self) -> Optional[pulumi.Input[str]]:
        """
        User consent type required before enrolling in the factor: `"NONE"` or `"TERMS_OF_SERVICE"`. By default it is `"NONE"`.
        """
        return pulumi.get(self, "consent_type")

    @consent_type.setter
    def consent_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "consent_type", value)

    @property
    @pulumi.getter
    def enroll(self) -> Optional[pulumi.Input[str]]:
        """
        Requirements for user initiated enrollment. Can be `"NOT_ALLOWED"`, `"OPTIONAL"`, or `"REQUIRED"`. By default it is `"OPTIONAL"`.
        """
        return pulumi.get(self, "enroll")

    @enroll.setter
    def enroll(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enroll", value)


@pulumi.input_type
class RuleIdpDiscoveryAppExcludeArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] id: ID of the Rule.
        :param pulumi.Input[str] name: Policy Rule Name.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the Rule.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "id", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Policy Rule Name.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class RuleIdpDiscoveryAppIncludeArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] id: ID of the Rule.
        :param pulumi.Input[str] name: Policy Rule Name.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the Rule.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "id", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Policy Rule Name.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class RuleIdpDiscoveryPlatformIncludeArgs:
    def __init__(__self__, *,
                 os_expression: Optional[pulumi.Input[str]] = None,
                 os_type: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if os_expression is not None:
            pulumi.set(__self__, "os_expression", os_expression)
        if os_type is not None:
            pulumi.set(__self__, "os_type", os_type)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="osExpression")
    def os_expression(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "os_expression")

    @os_expression.setter
    def os_expression(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "os_expression", value)

    @property
    @pulumi.getter(name="osType")
    def os_type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "os_type")

    @os_type.setter
    def os_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "os_type", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class RuleIdpDiscoveryUserIdentifierPatternArgs:
    def __init__(__self__, *,
                 match_type: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        if match_type is not None:
            pulumi.set(__self__, "match_type", match_type)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="matchType")
    def match_type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "match_type")

    @match_type.setter
    def match_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "match_type", value)

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "value", value)


