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

import builtins
import collections.abc
import google.protobuf.descriptor
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.group_mapping_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class GetGroupMappingRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id"]) -> None: ...

global___GetGroupMappingRequest = GetGroupMappingRequest

@typing.final
class GetGroupMappingResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_MAPPING_FIELD_NUMBER: builtins.int
    @property
    def group_mapping(self) -> yandex.cloud.organizationmanager.v1.group_mapping_pb2.GroupMapping: ...
    def __init__(
        self,
        *,
        group_mapping: yandex.cloud.organizationmanager.v1.group_mapping_pb2.GroupMapping | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["group_mapping", b"group_mapping"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["group_mapping", b"group_mapping"]) -> None: ...

global___GetGroupMappingResponse = GetGroupMappingResponse

@typing.final
class CreateGroupMappingRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    ENABLED_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    """Federation the group mapping will be created for"""
    enabled: builtins.bool
    """Synchronization status."""
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
        enabled: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["enabled", b"enabled", "federation_id", b"federation_id"]) -> None: ...

global___CreateGroupMappingRequest = CreateGroupMappingRequest

@typing.final
class CreateGroupMappingMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id"]) -> None: ...

global___CreateGroupMappingMetadata = CreateGroupMappingMetadata

@typing.final
class UpdateGroupMappingRequest(google.protobuf.message.Message):
    """Request for updating group mapping configuration"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    UPDATE_MASK_FIELD_NUMBER: builtins.int
    ENABLED_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    """Federation the group mapping update is requested"""
    enabled: builtins.bool
    """A new state of synchronization to update (if mentioned in update_mask)."""
    @property
    def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask:
        """A set of fields that should be updated"""

    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
        update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ...,
        enabled: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["update_mask", b"update_mask"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["enabled", b"enabled", "federation_id", b"federation_id", "update_mask", b"update_mask"]) -> None: ...

global___UpdateGroupMappingRequest = UpdateGroupMappingRequest

@typing.final
class UpdateGroupMappingMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id"]) -> None: ...

global___UpdateGroupMappingMetadata = UpdateGroupMappingMetadata

@typing.final
class DeleteGroupMappingRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    """Federation the group mapping deletion is requested"""
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id"]) -> None: ...

global___DeleteGroupMappingRequest = DeleteGroupMappingRequest

@typing.final
class DeleteGroupMappingMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id"]) -> None: ...

global___DeleteGroupMappingMetadata = DeleteGroupMappingMetadata

@typing.final
class UpdateGroupMappingItemsRequest(google.protobuf.message.Message):
    """Request for updating group mapping configuration"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    GROUP_MAPPING_ITEM_DELTAS_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    """Federation the group mapping update is requested"""
    @property
    def group_mapping_item_deltas(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GroupMappingItemDelta]:
        """A collection of mapping items to add or remove (ignores update_fields)."""

    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
        group_mapping_item_deltas: collections.abc.Iterable[global___GroupMappingItemDelta] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id", "group_mapping_item_deltas", b"group_mapping_item_deltas"]) -> None: ...

global___UpdateGroupMappingItemsRequest = UpdateGroupMappingItemsRequest

@typing.final
class GroupMappingItemDelta(google.protobuf.message.Message):
    """Message describes the user's request to change (add or remove) a single group mapping."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _ActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[GroupMappingItemDelta._Action.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        ACTION_UNSPECIFIED: GroupMappingItemDelta._Action.ValueType  # 0
        ADD: GroupMappingItemDelta._Action.ValueType  # 1
        """Group mapping item is to be added"""
        REMOVE: GroupMappingItemDelta._Action.ValueType  # 2
        """Group mapping item is to be removed"""

    class Action(_Action, metaclass=_ActionEnumTypeWrapper): ...
    ACTION_UNSPECIFIED: GroupMappingItemDelta.Action.ValueType  # 0
    ADD: GroupMappingItemDelta.Action.ValueType  # 1
    """Group mapping item is to be added"""
    REMOVE: GroupMappingItemDelta.Action.ValueType  # 2
    """Group mapping item is to be removed"""

    ITEM_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    action: global___GroupMappingItemDelta.Action.ValueType
    @property
    def item(self) -> yandex.cloud.organizationmanager.v1.group_mapping_pb2.GroupMappingItem: ...
    def __init__(
        self,
        *,
        item: yandex.cloud.organizationmanager.v1.group_mapping_pb2.GroupMappingItem | None = ...,
        action: global___GroupMappingItemDelta.Action.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["item", b"item"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["action", b"action", "item", b"item"]) -> None: ...

global___GroupMappingItemDelta = GroupMappingItemDelta

@typing.final
class UpdateGroupMappingItemsMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id"]) -> None: ...

global___UpdateGroupMappingItemsMetadata = UpdateGroupMappingItemsMetadata

@typing.final
class UpdateGroupMappingItemsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_MAPPING_ITEM_DELTAS_FIELD_NUMBER: builtins.int
    @property
    def group_mapping_item_deltas(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GroupMappingItemDelta]:
        """Effective changes that were applied"""

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

global___UpdateGroupMappingItemsResponse = UpdateGroupMappingItemsResponse

@typing.final
class ListGroupMappingItemsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    page_size: builtins.int
    page_token: builtins.str
    filter: builtins.str
    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
        page_size: builtins.int = ...,
        page_token: builtins.str = ...,
        filter: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federation_id", b"federation_id", "filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

global___ListGroupMappingItemsRequest = ListGroupMappingItemsRequest

@typing.final
class ListGroupMappingItemsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_MAPPING_ITEMS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def group_mapping_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[yandex.cloud.organizationmanager.v1.group_mapping_pb2.GroupMappingItem]: ...
    def __init__(
        self,
        *,
        group_mapping_items: collections.abc.Iterable[yandex.cloud.organizationmanager.v1.group_mapping_pb2.GroupMappingItem] | None = ...,
        next_page_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_mapping_items", b"group_mapping_items", "next_page_token", b"next_page_token"]) -> None: ...

global___ListGroupMappingItemsResponse = ListGroupMappingItemsResponse
