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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class UserAccount(google.protobuf.message.Message):
    """Currently represents only [Yandex account](/docs/iam/concepts/#passport)."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    YANDEX_PASSPORT_USER_ACCOUNT_FIELD_NUMBER: builtins.int
    SAML_USER_ACCOUNT_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the user account."""
    @property
    def yandex_passport_user_account(self) -> global___YandexPassportUserAccount:
        """A YandexPassportUserAccount resource."""

    @property
    def saml_user_account(self) -> global___SamlUserAccount:
        """A SAML federated user."""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        yandex_passport_user_account: global___YandexPassportUserAccount | None = ...,
        saml_user_account: global___SamlUserAccount | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["saml_user_account", b"saml_user_account", "user_account", b"user_account", "yandex_passport_user_account", b"yandex_passport_user_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "saml_user_account", b"saml_user_account", "user_account", b"user_account", "yandex_passport_user_account", b"yandex_passport_user_account"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["user_account", b"user_account"]) -> typing.Literal["yandex_passport_user_account", "saml_user_account"] | None: ...

global___UserAccount = UserAccount

@typing.final
class YandexPassportUserAccount(google.protobuf.message.Message):
    """A YandexPassportUserAccount resource.
    For more information, see [Yandex account](/docs/iam/concepts/#passport).
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LOGIN_FIELD_NUMBER: builtins.int
    DEFAULT_EMAIL_FIELD_NUMBER: builtins.int
    login: builtins.str
    """Login of the Yandex user account."""
    default_email: builtins.str
    """Default email of the Yandex user account."""
    def __init__(
        self,
        *,
        login: builtins.str = ...,
        default_email: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["default_email", b"default_email", "login", b"login"]) -> None: ...

global___YandexPassportUserAccount = YandexPassportUserAccount

@typing.final
class SamlUserAccount(google.protobuf.message.Message):
    """A SAML federated user.
    For more information, see [federations](/docs/iam/concepts/users/saml-federations).
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

        VALUE_FIELD_NUMBER: builtins.int
        @property
        def value(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
        def __init__(
            self,
            *,
            value: collections.abc.Iterable[builtins.str] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___SamlUserAccount.Attribute: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___SamlUserAccount.Attribute | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    FEDERATION_ID_FIELD_NUMBER: builtins.int
    NAME_ID_FIELD_NUMBER: builtins.int
    ATTRIBUTES_FIELD_NUMBER: builtins.int
    federation_id: builtins.str
    """ID of the federation that the federation belongs to."""
    name_id: builtins.str
    """Name Id of the SAML federated user.
    The name is unique within the federation. 1-256 characters long.
    """
    @property
    def attributes(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___SamlUserAccount.Attribute]:
        """Additional attributes of the SAML federated user."""

    def __init__(
        self,
        *,
        federation_id: builtins.str = ...,
        name_id: builtins.str = ...,
        attributes: collections.abc.Mapping[builtins.str, global___SamlUserAccount.Attribute] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "federation_id", b"federation_id", "name_id", b"name_id"]) -> None: ...

global___SamlUserAccount = SamlUserAccount
