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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.field_mask_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing
import yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

class _AttributesFlavorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AttributesFlavor.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ATTRIBUTES_FLAVOR_UNSPECIFIED: _AttributesFlavor.ValueType  # 0
    """The flavor is not specified."""
    ACTIVE_DIRECTORY: _AttributesFlavor.ValueType  # 1
    """Active Directory attributes."""

class AttributesFlavor(_AttributesFlavor, metaclass=_AttributesFlavorEnumTypeWrapper):
    """Flavor of attributes to list."""

ATTRIBUTES_FLAVOR_UNSPECIFIED: AttributesFlavor.ValueType  # 0
"""The flavor is not specified."""
ACTIVE_DIRECTORY: AttributesFlavor.ValueType  # 1
"""Active Directory attributes."""
global___AttributesFlavor = AttributesFlavor

@typing.final
class CreateSynchronizationSettingsRequest(google.protobuf.message.Message):
    """Request to create synchronization settings."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    REPLACEMENT_DOMAIN_FIELD_NUMBER: builtins.int
    REMOVE_USER_BEHAVIOR_FIELD_NUMBER: builtins.int
    SYNCHRONIZATION_INTERVAL_FIELD_NUMBER: builtins.int
    ALLOW_TO_CAPTURE_USERS_FIELD_NUMBER: builtins.int
    ALLOW_TO_CAPTURE_GROUPS_FIELD_NUMBER: builtins.int
    USER_ATTRIBUTE_MAPPINGS_FIELD_NUMBER: builtins.int
    GROUP_ATTRIBUTE_MAPPINGS_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    replacement_domain: builtins.str
    """Domain replacement configuration."""
    remove_user_behavior: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.RemoveUserBehavior.ValueType
    """Behavior when removing users."""
    allow_to_capture_users: builtins.bool
    """Whether users can be captured during synchronization."""
    allow_to_capture_groups: builtins.bool
    """Whether groups can be captured during synchronization."""
    @property
    def filter(self) -> yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.SynchronizationFilter:
        """Filter configuration for synchronization."""

    @property
    def synchronization_interval(self) -> google.protobuf.duration_pb2.Duration:
        """Interval between synchronization runs."""

    @property
    def user_attribute_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.UserAttributeMapping]:
        """User attribute mappings."""

    @property
    def group_attribute_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.GroupAttributeMapping]:
        """Group attribute mappings."""

    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
        filter: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.SynchronizationFilter | None = ...,
        replacement_domain: builtins.str = ...,
        remove_user_behavior: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.RemoveUserBehavior.ValueType = ...,
        synchronization_interval: google.protobuf.duration_pb2.Duration | None = ...,
        allow_to_capture_users: builtins.bool = ...,
        allow_to_capture_groups: builtins.bool = ...,
        user_attribute_mappings: collections.abc.Iterable[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.UserAttributeMapping] | None = ...,
        group_attribute_mappings: collections.abc.Iterable[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.GroupAttributeMapping] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["filter", b"filter", "synchronization_interval", b"synchronization_interval"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["allow_to_capture_groups", b"allow_to_capture_groups", "allow_to_capture_users", b"allow_to_capture_users", "filter", b"filter", "group_attribute_mappings", b"group_attribute_mappings", "remove_user_behavior", b"remove_user_behavior", "replacement_domain", b"replacement_domain", "subject_container_id", b"subject_container_id", "synchronization_interval", b"synchronization_interval", "user_attribute_mappings", b"user_attribute_mappings"]) -> None: ...

global___CreateSynchronizationSettingsRequest = CreateSynchronizationSettingsRequest

@typing.final
class CreateSynchronizationSettingsMetadata(google.protobuf.message.Message):
    """Metadata for the [SynchronizationService.CreateSynchronizationSettings] operation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___CreateSynchronizationSettingsMetadata = CreateSynchronizationSettingsMetadata

@typing.final
class UpdateSynchronizationSettingsRequest(google.protobuf.message.Message):
    """Request to update synchronization settings."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    REPLACEMENT_DOMAIN_FIELD_NUMBER: builtins.int
    REMOVE_USER_BEHAVIOR_FIELD_NUMBER: builtins.int
    SYNCHRONIZATION_INTERVAL_FIELD_NUMBER: builtins.int
    ALLOW_TO_CAPTURE_USERS_FIELD_NUMBER: builtins.int
    ALLOW_TO_CAPTURE_GROUPS_FIELD_NUMBER: builtins.int
    USER_ATTRIBUTE_MAPPINGS_FIELD_NUMBER: builtins.int
    GROUP_ATTRIBUTE_MAPPINGS_FIELD_NUMBER: builtins.int
    UPDATE_MASK_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    replacement_domain: builtins.str
    """Domain replacement configuration."""
    remove_user_behavior: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.RemoveUserBehavior.ValueType
    """Behavior when removing users."""
    allow_to_capture_users: builtins.bool
    """Whether users can be captured during synchronization."""
    allow_to_capture_groups: builtins.bool
    """Whether groups can be captured during synchronization."""
    @property
    def filter(self) -> yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.SynchronizationFilter:
        """Filter configuration for synchronization."""

    @property
    def synchronization_interval(self) -> google.protobuf.duration_pb2.Duration:
        """Interval between synchronization runs."""

    @property
    def user_attribute_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.UserAttributeMapping]:
        """User attribute mappings."""

    @property
    def group_attribute_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.GroupAttributeMapping]:
        """Group attribute mappings."""

    @property
    def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask:
        """Field mask that specifies which fields are going to be updated."""

    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
        filter: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.SynchronizationFilter | None = ...,
        replacement_domain: builtins.str = ...,
        remove_user_behavior: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.RemoveUserBehavior.ValueType = ...,
        synchronization_interval: google.protobuf.duration_pb2.Duration | None = ...,
        allow_to_capture_users: builtins.bool = ...,
        allow_to_capture_groups: builtins.bool = ...,
        user_attribute_mappings: collections.abc.Iterable[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.UserAttributeMapping] | None = ...,
        group_attribute_mappings: collections.abc.Iterable[yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.GroupAttributeMapping] | None = ...,
        update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["filter", b"filter", "synchronization_interval", b"synchronization_interval", "update_mask", b"update_mask"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["allow_to_capture_groups", b"allow_to_capture_groups", "allow_to_capture_users", b"allow_to_capture_users", "filter", b"filter", "group_attribute_mappings", b"group_attribute_mappings", "remove_user_behavior", b"remove_user_behavior", "replacement_domain", b"replacement_domain", "subject_container_id", b"subject_container_id", "synchronization_interval", b"synchronization_interval", "update_mask", b"update_mask", "user_attribute_mappings", b"user_attribute_mappings"]) -> None: ...

global___UpdateSynchronizationSettingsRequest = UpdateSynchronizationSettingsRequest

@typing.final
class UpdateSynchronizationSettingsMetadata(google.protobuf.message.Message):
    """Metadata for the [SynchronizationService.UpdateSynchronizationSettings] operation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___UpdateSynchronizationSettingsMetadata = UpdateSynchronizationSettingsMetadata

@typing.final
class DeleteSynchronizationSettingsRequest(google.protobuf.message.Message):
    """Request to delete synchronization settings."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___DeleteSynchronizationSettingsRequest = DeleteSynchronizationSettingsRequest

@typing.final
class DeleteSynchronizationSettingsMetadata(google.protobuf.message.Message):
    """Metadata for the [SynchronizationService.DeleteSynchronizationSettings] operation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___DeleteSynchronizationSettingsMetadata = DeleteSynchronizationSettingsMetadata

@typing.final
class GetSynchronizationSettingsRequest(google.protobuf.message.Message):
    """Request to get synchronization settings."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___GetSynchronizationSettingsRequest = GetSynchronizationSettingsRequest

@typing.final
class ListSupportedAttributesRequest(google.protobuf.message.Message):
    """Request to list supported attributes."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FLAVOR_FIELD_NUMBER: builtins.int
    flavor: global___AttributesFlavor.ValueType
    """Flavor of attributes to list."""
    def __init__(
        self,
        *,
        flavor: global___AttributesFlavor.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["flavor", b"flavor"]) -> None: ...

global___ListSupportedAttributesRequest = ListSupportedAttributesRequest

@typing.final
class ListSupportedAttributesResponse(google.protobuf.message.Message):
    """Response message for [SynchronizationService.ListSupportedAttributes]."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_SUPPORTED_ATTRIBUTES_FIELD_NUMBER: builtins.int
    GROUP_SUPPORTED_ATTRIBUTES_FIELD_NUMBER: builtins.int
    @property
    def user_supported_attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UserSupportedAttribute]:
        """List of supported user attributes."""

    @property
    def group_supported_attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GroupSupportedAttribute]:
        """List of supported group attributes."""

    def __init__(
        self,
        *,
        user_supported_attributes: collections.abc.Iterable[global___UserSupportedAttribute] | None = ...,
        group_supported_attributes: collections.abc.Iterable[global___GroupSupportedAttribute] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_supported_attributes", b"group_supported_attributes", "user_supported_attributes", b"user_supported_attributes"]) -> None: ...

global___ListSupportedAttributesResponse = ListSupportedAttributesResponse

@typing.final
class UserSupportedAttribute(google.protobuf.message.Message):
    """Supported user attribute configuration."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TARGET_ATTRIBUTE_FIELD_NUMBER: builtins.int
    SOURCE_ATTRIBUTES_FIELD_NUMBER: builtins.int
    target_attribute: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.UserTargetAttribute.ValueType
    """Target attribute to map to."""
    @property
    def source_attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SourceAttributes]:
        """List of source attribute configurations."""

    def __init__(
        self,
        *,
        target_attribute: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.UserTargetAttribute.ValueType = ...,
        source_attributes: collections.abc.Iterable[global___SourceAttributes] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["source_attributes", b"source_attributes", "target_attribute", b"target_attribute"]) -> None: ...

global___UserSupportedAttribute = UserSupportedAttribute

@typing.final
class GroupSupportedAttribute(google.protobuf.message.Message):
    """Supported group attribute configuration."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TARGET_ATTRIBUTE_FIELD_NUMBER: builtins.int
    SOURCE_ATTRIBUTES_FIELD_NUMBER: builtins.int
    target_attribute: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.GroupTargetAttribute.ValueType
    """Target attribute to map to."""
    @property
    def source_attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SourceAttributes]:
        """List of source attribute configurations."""

    def __init__(
        self,
        *,
        target_attribute: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.GroupTargetAttribute.ValueType = ...,
        source_attributes: collections.abc.Iterable[global___SourceAttributes] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["source_attributes", b"source_attributes", "target_attribute", b"target_attribute"]) -> None: ...

global___GroupSupportedAttribute = GroupSupportedAttribute

@typing.final
class SourceAttributes(google.protobuf.message.Message):
    """Source attribute configuration."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    ATTRIBUTES_FIELD_NUMBER: builtins.int
    type: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.MappingType.ValueType
    """Type of mapping."""
    @property
    def attributes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of source attribute names. Empty for EMPTY type."""

    def __init__(
        self,
        *,
        type: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.MappingType.ValueType = ...,
        attributes: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "type", b"type"]) -> None: ...

global___SourceAttributes = SourceAttributes

@typing.final
class SetReplicationTokenRequest(google.protobuf.message.Message):
    """Request to set replication token."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    REPLICATION_TOKEN_FIELD_NUMBER: builtins.int
    SESSION_TYPE_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    replication_token: builtins.str
    """Replication token value."""
    session_type: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.SessionType.ValueType
    """Type of synchronization session."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
        replication_token: builtins.str = ...,
        session_type: yandex.cloud.organizationmanager.v1.idp.synchronization_settings_pb2.SessionType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["replication_token", b"replication_token", "session_type", b"session_type", "subject_container_id", b"subject_container_id"]) -> None: ...

global___SetReplicationTokenRequest = SetReplicationTokenRequest

@typing.final
class SetReplicationTokenMetadata(google.protobuf.message.Message):
    """Metadata for the [SynchronizationService.SetReplicationToken] operation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___SetReplicationTokenMetadata = SetReplicationTokenMetadata

@typing.final
class ResetReplicationTokenRequest(google.protobuf.message.Message):
    """Request to reset replication token."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___ResetReplicationTokenRequest = ResetReplicationTokenRequest

@typing.final
class ResetReplicationTokenMetadata(google.protobuf.message.Message):
    """Metadata for the [SynchronizationService.ResetReplicationToken] operation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBJECT_CONTAINER_ID_FIELD_NUMBER: builtins.int
    subject_container_id: builtins.str
    """ID of the subject container."""
    def __init__(
        self,
        *,
        subject_container_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["subject_container_id", b"subject_container_id"]) -> None: ...

global___ResetReplicationTokenMetadata = ResetReplicationTokenMetadata
