mattermost/python-sdk/build/lib/mattermost_plugin/grpc/user_pb2.pyi
Nick Misasi 01643af641 debug: add extensive logging to trace hook registration flow
Go side:
- Log hooks returned by Implemented()
- Log each hook name -> ID mapping
- Log OnActivate implementation status
- Log OnActivate call flow

Python side:
- Log Implemented() return value
- Log OnActivate gRPC receipt and handler invocation

This is temporary debug logging to diagnose why OnActivate
isn't being called for Python plugins.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 09:12:22 -05:00

247 lines
11 KiB
Python

"""
@generated by mypy-protobuf. Do not edit manually!
isort:skip_file
Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
See LICENSE.txt for license information.
"""
from collections import abc as _abc
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf.internal import containers as _containers
import builtins as _builtins
import sys
import typing as _typing
if sys.version_info >= (3, 10):
from typing import TypeAlias as _TypeAlias
else:
from typing_extensions import TypeAlias as _TypeAlias
DESCRIPTOR: _descriptor.FileDescriptor
@_typing.final
class User(_message.Message):
"""User contains the details about a Mattermost user.
Maps to model.User in Go.
"""
DESCRIPTOR: _descriptor.Descriptor
@_typing.final
class PropsEntry(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
KEY_FIELD_NUMBER: _builtins.int
VALUE_FIELD_NUMBER: _builtins.int
key: _builtins.str
value: _builtins.str
def __init__(
self,
*,
key: _builtins.str = ...,
value: _builtins.str = ...,
) -> None: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
class NotifyPropsEntry(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
KEY_FIELD_NUMBER: _builtins.int
VALUE_FIELD_NUMBER: _builtins.int
key: _builtins.str
value: _builtins.str
def __init__(
self,
*,
key: _builtins.str = ...,
value: _builtins.str = ...,
) -> None: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
@_typing.final
class TimezoneEntry(_message.Message):
DESCRIPTOR: _descriptor.Descriptor
KEY_FIELD_NUMBER: _builtins.int
VALUE_FIELD_NUMBER: _builtins.int
key: _builtins.str
value: _builtins.str
def __init__(
self,
*,
key: _builtins.str = ...,
value: _builtins.str = ...,
) -> None: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
ID_FIELD_NUMBER: _builtins.int
CREATE_AT_FIELD_NUMBER: _builtins.int
UPDATE_AT_FIELD_NUMBER: _builtins.int
DELETE_AT_FIELD_NUMBER: _builtins.int
USERNAME_FIELD_NUMBER: _builtins.int
PASSWORD_FIELD_NUMBER: _builtins.int
AUTH_DATA_FIELD_NUMBER: _builtins.int
AUTH_SERVICE_FIELD_NUMBER: _builtins.int
EMAIL_FIELD_NUMBER: _builtins.int
EMAIL_VERIFIED_FIELD_NUMBER: _builtins.int
NICKNAME_FIELD_NUMBER: _builtins.int
FIRST_NAME_FIELD_NUMBER: _builtins.int
LAST_NAME_FIELD_NUMBER: _builtins.int
POSITION_FIELD_NUMBER: _builtins.int
ROLES_FIELD_NUMBER: _builtins.int
ALLOW_MARKETING_FIELD_NUMBER: _builtins.int
PROPS_FIELD_NUMBER: _builtins.int
NOTIFY_PROPS_FIELD_NUMBER: _builtins.int
LAST_PASSWORD_UPDATE_FIELD_NUMBER: _builtins.int
LAST_PICTURE_UPDATE_FIELD_NUMBER: _builtins.int
FAILED_ATTEMPTS_FIELD_NUMBER: _builtins.int
LOCALE_FIELD_NUMBER: _builtins.int
TIMEZONE_FIELD_NUMBER: _builtins.int
MFA_ACTIVE_FIELD_NUMBER: _builtins.int
MFA_SECRET_FIELD_NUMBER: _builtins.int
REMOTE_ID_FIELD_NUMBER: _builtins.int
LAST_ACTIVITY_AT_FIELD_NUMBER: _builtins.int
IS_BOT_FIELD_NUMBER: _builtins.int
BOT_DESCRIPTION_FIELD_NUMBER: _builtins.int
BOT_LAST_ICON_UPDATE_FIELD_NUMBER: _builtins.int
TERMS_OF_SERVICE_ID_FIELD_NUMBER: _builtins.int
TERMS_OF_SERVICE_CREATE_AT_FIELD_NUMBER: _builtins.int
DISABLE_WELCOME_EMAIL_FIELD_NUMBER: _builtins.int
LAST_LOGIN_FIELD_NUMBER: _builtins.int
id: _builtins.str
"""Unique identifier for the user (26-char ID)"""
create_at: _builtins.int
"""Timestamp when the user was created (milliseconds since epoch)"""
update_at: _builtins.int
"""Timestamp when the user was last updated (milliseconds since epoch)"""
delete_at: _builtins.int
"""Timestamp when the user was deleted (0 if not deleted, milliseconds since epoch)"""
username: _builtins.str
"""The user's username (unique, lowercase)"""
password: _builtins.str
"""The user's password (only populated during create/update, never in responses)"""
auth_data: _builtins.str
"""External authentication data (e.g., LDAP DN, SAML NameID)"""
auth_service: _builtins.str
"""The authentication service used (e.g., "email", "ldap", "saml", "gitlab")"""
email: _builtins.str
"""The user's email address"""
email_verified: _builtins.bool
"""Whether the user's email has been verified"""
nickname: _builtins.str
"""The user's nickname (display name alternative)"""
first_name: _builtins.str
"""The user's first name"""
last_name: _builtins.str
"""The user's last name"""
position: _builtins.str
"""The user's job position"""
roles: _builtins.str
"""Space-separated list of role names assigned to the user"""
allow_marketing: _builtins.bool
"""Whether the user has opted in to marketing emails"""
last_password_update: _builtins.int
"""Timestamp when the password was last updated (milliseconds since epoch)"""
last_picture_update: _builtins.int
"""Timestamp when the profile picture was last updated (milliseconds since epoch)"""
failed_attempts: _builtins.int
"""Number of consecutive failed login attempts"""
locale: _builtins.str
"""The user's locale preference (e.g., "en", "es")"""
mfa_active: _builtins.bool
"""Whether MFA (multi-factor authentication) is enabled"""
mfa_secret: _builtins.str
"""MFA secret (only for internal use, never in API responses)"""
remote_id: _builtins.str
"""Remote cluster ID if this user is from a shared channel"""
last_activity_at: _builtins.int
"""Timestamp of last activity (milliseconds since epoch)"""
is_bot: _builtins.bool
"""Whether this is a bot account"""
bot_description: _builtins.str
"""Description for bot accounts"""
bot_last_icon_update: _builtins.int
"""Timestamp when the bot icon was last updated (milliseconds since epoch)"""
terms_of_service_id: _builtins.str
"""ID of the terms of service the user has accepted"""
terms_of_service_create_at: _builtins.int
"""Timestamp when the user accepted the terms of service (milliseconds since epoch)"""
disable_welcome_email: _builtins.bool
"""Whether to skip sending the welcome email"""
last_login: _builtins.int
"""Timestamp of last login (milliseconds since epoch)"""
@_builtins.property
def props(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]:
"""User-specific properties (custom status, etc.)
Maps to model.StringMap (map[string]string)
"""
@_builtins.property
def notify_props(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]:
"""Notification preferences
Maps to model.StringMap (map[string]string)
"""
@_builtins.property
def timezone(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]:
"""Timezone settings
Maps to model.StringMap (map[string]string)
"""
def __init__(
self,
*,
id: _builtins.str = ...,
create_at: _builtins.int = ...,
update_at: _builtins.int = ...,
delete_at: _builtins.int = ...,
username: _builtins.str = ...,
password: _builtins.str = ...,
auth_data: _builtins.str | None = ...,
auth_service: _builtins.str = ...,
email: _builtins.str = ...,
email_verified: _builtins.bool = ...,
nickname: _builtins.str = ...,
first_name: _builtins.str = ...,
last_name: _builtins.str = ...,
position: _builtins.str = ...,
roles: _builtins.str = ...,
allow_marketing: _builtins.bool = ...,
props: _abc.Mapping[_builtins.str, _builtins.str] | None = ...,
notify_props: _abc.Mapping[_builtins.str, _builtins.str] | None = ...,
last_password_update: _builtins.int = ...,
last_picture_update: _builtins.int = ...,
failed_attempts: _builtins.int = ...,
locale: _builtins.str = ...,
timezone: _abc.Mapping[_builtins.str, _builtins.str] | None = ...,
mfa_active: _builtins.bool = ...,
mfa_secret: _builtins.str = ...,
remote_id: _builtins.str | None = ...,
last_activity_at: _builtins.int = ...,
is_bot: _builtins.bool = ...,
bot_description: _builtins.str = ...,
bot_last_icon_update: _builtins.int = ...,
terms_of_service_id: _builtins.str = ...,
terms_of_service_create_at: _builtins.int = ...,
disable_welcome_email: _builtins.bool = ...,
last_login: _builtins.int = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _typing.Literal["_auth_data", b"_auth_data", "_remote_id", b"_remote_id", "auth_data", b"auth_data", "remote_id", b"remote_id"] # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["_auth_data", b"_auth_data", "_remote_id", b"_remote_id", "allow_marketing", b"allow_marketing", "auth_data", b"auth_data", "auth_service", b"auth_service", "bot_description", b"bot_description", "bot_last_icon_update", b"bot_last_icon_update", "create_at", b"create_at", "delete_at", b"delete_at", "disable_welcome_email", b"disable_welcome_email", "email", b"email", "email_verified", b"email_verified", "failed_attempts", b"failed_attempts", "first_name", b"first_name", "id", b"id", "is_bot", b"is_bot", "last_activity_at", b"last_activity_at", "last_login", b"last_login", "last_name", b"last_name", "last_password_update", b"last_password_update", "last_picture_update", b"last_picture_update", "locale", b"locale", "mfa_active", b"mfa_active", "mfa_secret", b"mfa_secret", "nickname", b"nickname", "notify_props", b"notify_props", "password", b"password", "position", b"position", "props", b"props", "remote_id", b"remote_id", "roles", b"roles", "terms_of_service_create_at", b"terms_of_service_create_at", "terms_of_service_id", b"terms_of_service_id", "timezone", b"timezone", "update_at", b"update_at", "username", b"username"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
_WhichOneofReturnType__auth_data: _TypeAlias = _typing.Literal["auth_data"] # noqa: Y015
_WhichOneofArgType__auth_data: _TypeAlias = _typing.Literal["_auth_data", b"_auth_data"] # noqa: Y015
_WhichOneofReturnType__remote_id: _TypeAlias = _typing.Literal["remote_id"] # noqa: Y015
_WhichOneofArgType__remote_id: _TypeAlias = _typing.Literal["_remote_id", b"_remote_id"] # noqa: Y015
@_typing.overload
def WhichOneof(self, oneof_group: _WhichOneofArgType__auth_data) -> _WhichOneofReturnType__auth_data | None: ...
@_typing.overload
def WhichOneof(self, oneof_group: _WhichOneofArgType__remote_id) -> _WhichOneofReturnType__remote_id | None: ...
Global___User: _TypeAlias = User # noqa: Y015