"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _MfaEnforcementStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _MfaEnforcementStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MfaEnforcementStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MFA_ENFORCEMENT_STATUS_UNSPECIFIED: _MfaEnforcementStatus.ValueType  # 0
    MFA_ENFORCEMENT_STATUS_ACTIVE: _MfaEnforcementStatus.ValueType  # 1
    MFA_ENFORCEMENT_STATUS_INACTIVE: _MfaEnforcementStatus.ValueType  # 2
    MFA_ENFORCEMENT_STATUS_DELETING: _MfaEnforcementStatus.ValueType  # 3

class MfaEnforcementStatus(_MfaEnforcementStatus, metaclass=_MfaEnforcementStatusEnumTypeWrapper): ...

MFA_ENFORCEMENT_STATUS_UNSPECIFIED: MfaEnforcementStatus.ValueType  # 0
MFA_ENFORCEMENT_STATUS_ACTIVE: MfaEnforcementStatus.ValueType  # 1
MFA_ENFORCEMENT_STATUS_INACTIVE: MfaEnforcementStatus.ValueType  # 2
MFA_ENFORCEMENT_STATUS_DELETING: MfaEnforcementStatus.ValueType  # 3
global___MfaEnforcementStatus = MfaEnforcementStatus

@typing.final
class MfaEnforcement(google.protobuf.message.Message):
    """MFA enforcement resource"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    ORGANIZATION_ID_FIELD_NUMBER: builtins.int
    ACR_ID_FIELD_NUMBER: builtins.int
    TTL_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    APPLY_AT_FIELD_NUMBER: builtins.int
    ENROLL_WINDOW_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    id: builtins.str
    """id of the MFA enforcement"""
    organization_id: builtins.str
    """organization id of the MFA enforcement"""
    acr_id: builtins.str
    """acr id of the MFA enforcement"""
    status: global___MfaEnforcementStatus.ValueType
    """MFA enforcement status"""
    name: builtins.str
    """name of the MFA enforcement"""
    description: builtins.str
    """description of the MFA enforcement"""
    @property
    def ttl(self) -> google.protobuf.duration_pb2.Duration:
        """the period during which the entered MFA factor is considered valid and the 
        corresponding acr is regarded as satisfied
        """

    @property
    def apply_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the MFA enforcement application start time."""

    @property
    def enroll_window(self) -> google.protobuf.duration_pb2.Duration:
        """the time window during which the user is allowed to create an MFA profile. 
        this window is measured relative to the MFA enforcement application start time
        and the user's most recent successful authentication that falls under the rule 
        (or the user's creation time, if there has been no authentication).
        """

    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """creation timestamp"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        organization_id: builtins.str = ...,
        acr_id: builtins.str = ...,
        ttl: google.protobuf.duration_pb2.Duration | None = ...,
        status: global___MfaEnforcementStatus.ValueType = ...,
        apply_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        enroll_window: google.protobuf.duration_pb2.Duration | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["apply_at", b"apply_at", "created_at", b"created_at", "enroll_window", b"enroll_window", "ttl", b"ttl"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["acr_id", b"acr_id", "apply_at", b"apply_at", "created_at", b"created_at", "description", b"description", "enroll_window", b"enroll_window", "id", b"id", "name", b"name", "organization_id", b"organization_id", "status", b"status", "ttl", b"ttl"]) -> None: ...

global___MfaEnforcement = MfaEnforcement
