Documentation ¶
Index ¶
- Variables
- func RegisterUserSvcServer(s grpc.ServiceRegistrar, srv UserSvcServer)
- type PasswordStatus
- func (PasswordStatus) Descriptor() protoreflect.EnumDescriptor
- func (x PasswordStatus) Enum() *PasswordStatus
- func (PasswordStatus) EnumDescriptor() ([]byte, []int)deprecated
- func (x PasswordStatus) Number() protoreflect.EnumNumber
- func (x PasswordStatus) String() string
- func (PasswordStatus) Type() protoreflect.EnumType
- type UnimplementedUserSvcServer
- func (UnimplementedUserSvcServer) ChangePassword(context.Context, *UserPassword) (*UserPasswordResult, error)
- func (UnimplementedUserSvcServer) CreateUser(context.Context, *User) (*User, error)
- func (UnimplementedUserSvcServer) DeleteUser(context.Context, *User) (*User, error)
- func (UnimplementedUserSvcServer) GetUsersByFilter(context.Context, *UserFilter) (*Users, error)
- func (UnimplementedUserSvcServer) UpdateUserBase(context.Context, *User) (*User, error)
- func (UnimplementedUserSvcServer) UpdateUserRole(context.Context, *User) (*User, error)
- func (UnimplementedUserSvcServer) UpdateUserStatus(context.Context, *User) (*User, error)
- type UnsafeUserSvcServer
- type User
- func (*User) Descriptor() ([]byte, []int)deprecated
- func (x *User) GetCreatedAt() *timestamppb.Timestamp
- func (x *User) GetCreatedBy() string
- func (x *User) GetDeletedBy() string
- func (x *User) GetEmail() string
- func (x *User) GetFirstName() string
- func (x *User) GetId() string
- func (x *User) GetLastName() string
- func (x *User) GetRole() string
- func (x *User) GetTags() []string
- func (x *User) GetUpdatedAt() *timestamppb.Timestamp
- func (x *User) GetUpdatedBy() string
- func (x *User) GetUserStatus() UserStatus
- func (x *User) GetUserType() UserType
- func (x *User) GetUsername() string
- func (*User) ProtoMessage()
- func (x *User) ProtoReflect() protoreflect.Message
- func (x *User) Reset()
- func (x *User) String() string
- type UserFilter
- func (*UserFilter) Descriptor() ([]byte, []int)deprecated
- func (x *UserFilter) GetCreatedAtFrom() *timestamppb.Timestamp
- func (x *UserFilter) GetCreatedAtTo() *timestamppb.Timestamp
- func (x *UserFilter) GetEmail() string
- func (x *UserFilter) GetFirstName() string
- func (x *UserFilter) GetId() string
- func (x *UserFilter) GetLastName() string
- func (x *UserFilter) GetLimit() int32
- func (x *UserFilter) GetOffset() int32
- func (x *UserFilter) GetRole() string
- func (x *UserFilter) GetSearchText() string
- func (x *UserFilter) GetSortField() UserSortField
- func (x *UserFilter) GetSortType() string
- func (x *UserFilter) GetTags() []string
- func (x *UserFilter) GetUpdatedAtFrom() *timestamppb.Timestamp
- func (x *UserFilter) GetUpdatedAtTo() *timestamppb.Timestamp
- func (x *UserFilter) GetUserStatus() UserStatus
- func (x *UserFilter) GetUserType() UserType
- func (x *UserFilter) GetUsername() string
- func (*UserFilter) ProtoMessage()
- func (x *UserFilter) ProtoReflect() protoreflect.Message
- func (x *UserFilter) Reset()
- func (x *UserFilter) String() string
- type UserPassword
- func (*UserPassword) Descriptor() ([]byte, []int)deprecated
- func (x *UserPassword) GetId() string
- func (x *UserPassword) GetPassword() string
- func (x *UserPassword) GetPasswordStatus() PasswordStatus
- func (x *UserPassword) GetUserId() string
- func (*UserPassword) ProtoMessage()
- func (x *UserPassword) ProtoReflect() protoreflect.Message
- func (x *UserPassword) Reset()
- func (x *UserPassword) String() string
- type UserPasswordResult
- type UserPasswords
- type UserSortField
- func (UserSortField) Descriptor() protoreflect.EnumDescriptor
- func (x UserSortField) Enum() *UserSortField
- func (UserSortField) EnumDescriptor() ([]byte, []int)deprecated
- func (x UserSortField) Number() protoreflect.EnumNumber
- func (x UserSortField) String() string
- func (UserSortField) Type() protoreflect.EnumType
- type UserStatus
- type UserSvcClient
- type UserSvcServer
- type UserType
- type Users
Constants ¶
This section is empty.
Variables ¶
var ( UserStatus_name = map[int32]string{ 0: "UserStatusNONE", 1: "UserStatusACTIVE", 2: "UserStatusINACTIVE", } UserStatus_value = map[string]int32{ "UserStatusNONE": 0, "UserStatusACTIVE": 1, "UserStatusINACTIVE": 2, } )
Enum value maps for UserStatus.
var ( UserType_name = map[int32]string{ 0: "UserTypeNONE", 1: "UserTypeADMIN", 2: "UserTypeUSER", } UserType_value = map[string]int32{ "UserTypeNONE": 0, "UserTypeADMIN": 1, "UserTypeUSER": 2, } )
Enum value maps for UserType.
var ( UserSortField_name = map[int32]string{ 0: "UserSortFieldNONE", 1: "UserSortFieldId", 2: "UserSortFieldName", 3: "UserSortFieldCreatedAt", 4: "UserSortFieldUpdatedAt", } UserSortField_value = map[string]int32{ "UserSortFieldNONE": 0, "UserSortFieldId": 1, "UserSortFieldName": 2, "UserSortFieldCreatedAt": 3, "UserSortFieldUpdatedAt": 4, } )
Enum value maps for UserSortField.
var ( PasswordStatus_name = map[int32]string{ 0: "PasswordStatusNONE", 1: "PasswordStatusACTIVE", 2: "PasswordStatusINACTIVE", 3: "PasswordStatusAUTO_GENERATED", 4: "PasswordStatusCHANGE_REQUIRED", 5: "PasswordStatusEXPIRED", } PasswordStatus_value = map[string]int32{ "PasswordStatusNONE": 0, "PasswordStatusACTIVE": 1, "PasswordStatusINACTIVE": 2, "PasswordStatusAUTO_GENERATED": 3, "PasswordStatusCHANGE_REQUIRED": 4, "PasswordStatusEXPIRED": 5, } )
Enum value maps for PasswordStatus.
var File_user_proto protoreflect.FileDescriptor
var UserSvc_ServiceDesc = grpc.ServiceDesc{ ServiceName: "UserSvc", HandlerType: (*UserSvcServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "GetUsersByFilter", Handler: _UserSvc_GetUsersByFilter_Handler, }, { MethodName: "CreateUser", Handler: _UserSvc_CreateUser_Handler, }, { MethodName: "DeleteUser", Handler: _UserSvc_DeleteUser_Handler, }, { MethodName: "UpdateUserRole", Handler: _UserSvc_UpdateUserRole_Handler, }, { MethodName: "UpdateUserBase", Handler: _UserSvc_UpdateUserBase_Handler, }, { MethodName: "UpdateUserStatus", Handler: _UserSvc_UpdateUserStatus_Handler, }, { MethodName: "ChangePassword", Handler: _UserSvc_ChangePassword_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "user.proto", }
UserSvc_ServiceDesc is the grpc.ServiceDesc for UserSvc service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterUserSvcServer ¶
func RegisterUserSvcServer(s grpc.ServiceRegistrar, srv UserSvcServer)
Types ¶
type PasswordStatus ¶
type PasswordStatus int32
const ( PasswordStatus_PasswordStatusNONE PasswordStatus = 0 PasswordStatus_PasswordStatusACTIVE PasswordStatus = 1 PasswordStatus_PasswordStatusINACTIVE PasswordStatus = 2 PasswordStatus_PasswordStatusAUTO_GENERATED PasswordStatus = 3 PasswordStatus_PasswordStatusCHANGE_REQUIRED PasswordStatus = 4 PasswordStatus_PasswordStatusEXPIRED PasswordStatus = 5 )
func (PasswordStatus) Descriptor ¶
func (PasswordStatus) Descriptor() protoreflect.EnumDescriptor
func (PasswordStatus) Enum ¶
func (x PasswordStatus) Enum() *PasswordStatus
func (PasswordStatus) EnumDescriptor
deprecated
func (PasswordStatus) EnumDescriptor() ([]byte, []int)
Deprecated: Use PasswordStatus.Descriptor instead.
func (PasswordStatus) Number ¶
func (x PasswordStatus) Number() protoreflect.EnumNumber
func (PasswordStatus) String ¶
func (x PasswordStatus) String() string
func (PasswordStatus) Type ¶
func (PasswordStatus) Type() protoreflect.EnumType
type UnimplementedUserSvcServer ¶
type UnimplementedUserSvcServer struct { }
UnimplementedUserSvcServer must be embedded to have forward compatible implementations.
func (UnimplementedUserSvcServer) ChangePassword ¶
func (UnimplementedUserSvcServer) ChangePassword(context.Context, *UserPassword) (*UserPasswordResult, error)
func (UnimplementedUserSvcServer) CreateUser ¶
func (UnimplementedUserSvcServer) DeleteUser ¶
func (UnimplementedUserSvcServer) GetUsersByFilter ¶
func (UnimplementedUserSvcServer) GetUsersByFilter(context.Context, *UserFilter) (*Users, error)
func (UnimplementedUserSvcServer) UpdateUserBase ¶
func (UnimplementedUserSvcServer) UpdateUserRole ¶
func (UnimplementedUserSvcServer) UpdateUserStatus ¶
type UnsafeUserSvcServer ¶
type UnsafeUserSvcServer interface {
// contains filtered or unexported methods
}
UnsafeUserSvcServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to UserSvcServer will result in compilation errors.
type User ¶
type User struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` Role string `protobuf:"bytes,4,opt,name=role,proto3" json:"role,omitempty"` UserType UserType `protobuf:"varint,5,opt,name=userType,proto3,enum=UserType" json:"userType,omitempty"` UserStatus UserStatus `protobuf:"varint,6,opt,name=userStatus,proto3,enum=UserStatus" json:"userStatus,omitempty"` Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` FirstName string `protobuf:"bytes,8,opt,name=firstName,proto3" json:"firstName,omitempty"` LastName string `protobuf:"bytes,9,opt,name=lastName,proto3" json:"lastName,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,80,opt,name=createdAt,proto3" json:"createdAt,omitempty"` UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,81,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` CreatedBy string `protobuf:"bytes,100,opt,name=createdBy,proto3" json:"createdBy,omitempty"` UpdatedBy string `protobuf:"bytes,101,opt,name=updatedBy,proto3" json:"updatedBy,omitempty"` DeletedBy string `protobuf:"bytes,102,opt,name=deletedBy,proto3" json:"deletedBy,omitempty"` // contains filtered or unexported fields }
func (*User) Descriptor
deprecated
func (*User) GetCreatedAt ¶
func (x *User) GetCreatedAt() *timestamppb.Timestamp
func (*User) GetCreatedBy ¶
func (*User) GetDeletedBy ¶
func (*User) GetFirstName ¶
func (*User) GetLastName ¶
func (*User) GetUpdatedAt ¶
func (x *User) GetUpdatedAt() *timestamppb.Timestamp
func (*User) GetUpdatedBy ¶
func (*User) GetUserStatus ¶
func (x *User) GetUserStatus() UserStatus
func (*User) GetUserType ¶
func (*User) GetUsername ¶
func (*User) ProtoMessage ¶
func (*User) ProtoMessage()
func (*User) ProtoReflect ¶
func (x *User) ProtoReflect() protoreflect.Message
type UserFilter ¶
type UserFilter struct { Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` Username *string `protobuf:"bytes,2,opt,name=username,proto3,oneof" json:"username,omitempty"` Email *string `protobuf:"bytes,3,opt,name=email,proto3,oneof" json:"email,omitempty"` Role *string `protobuf:"bytes,4,opt,name=role,proto3,oneof" json:"role,omitempty"` UserType *UserType `protobuf:"varint,5,opt,name=userType,proto3,enum=UserType,oneof" json:"userType,omitempty"` UserStatus *UserStatus `protobuf:"varint,6,opt,name=userStatus,proto3,enum=UserStatus,oneof" json:"userStatus,omitempty"` Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` FirstName *string `protobuf:"bytes,8,opt,name=firstName,proto3,oneof" json:"firstName,omitempty"` LastName *string `protobuf:"bytes,9,opt,name=lastName,proto3,oneof" json:"lastName,omitempty"` CreatedAtFrom *timestamppb.Timestamp `protobuf:"bytes,80,opt,name=createdAtFrom,proto3,oneof" json:"createdAtFrom,omitempty"` CreatedAtTo *timestamppb.Timestamp `protobuf:"bytes,81,opt,name=createdAtTo,proto3,oneof" json:"createdAtTo,omitempty"` UpdatedAtFrom *timestamppb.Timestamp `protobuf:"bytes,82,opt,name=updatedAtFrom,proto3,oneof" json:"updatedAtFrom,omitempty"` UpdatedAtTo *timestamppb.Timestamp `protobuf:"bytes,84,opt,name=updatedAtTo,proto3,oneof" json:"updatedAtTo,omitempty"` SearchText *string `protobuf:"bytes,95,opt,name=searchText,proto3,oneof" json:"searchText,omitempty"` SortType *string `protobuf:"bytes,96,opt,name=sortType,proto3,oneof" json:"sortType,omitempty"` SortField *UserSortField `protobuf:"varint,97,opt,name=sortField,proto3,enum=UserSortField,oneof" json:"sortField,omitempty"` Limit *int32 `protobuf:"varint,98,opt,name=limit,proto3,oneof" json:"limit,omitempty"` Offset *int32 `protobuf:"varint,99,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // contains filtered or unexported fields }
func (*UserFilter) Descriptor
deprecated
func (*UserFilter) Descriptor() ([]byte, []int)
Deprecated: Use UserFilter.ProtoReflect.Descriptor instead.
func (*UserFilter) GetCreatedAtFrom ¶
func (x *UserFilter) GetCreatedAtFrom() *timestamppb.Timestamp
func (*UserFilter) GetCreatedAtTo ¶
func (x *UserFilter) GetCreatedAtTo() *timestamppb.Timestamp
func (*UserFilter) GetEmail ¶
func (x *UserFilter) GetEmail() string
func (*UserFilter) GetFirstName ¶
func (x *UserFilter) GetFirstName() string
func (*UserFilter) GetId ¶
func (x *UserFilter) GetId() string
func (*UserFilter) GetLastName ¶
func (x *UserFilter) GetLastName() string
func (*UserFilter) GetLimit ¶
func (x *UserFilter) GetLimit() int32
func (*UserFilter) GetOffset ¶
func (x *UserFilter) GetOffset() int32
func (*UserFilter) GetRole ¶
func (x *UserFilter) GetRole() string
func (*UserFilter) GetSearchText ¶
func (x *UserFilter) GetSearchText() string
func (*UserFilter) GetSortField ¶
func (x *UserFilter) GetSortField() UserSortField
func (*UserFilter) GetSortType ¶
func (x *UserFilter) GetSortType() string
func (*UserFilter) GetTags ¶
func (x *UserFilter) GetTags() []string
func (*UserFilter) GetUpdatedAtFrom ¶
func (x *UserFilter) GetUpdatedAtFrom() *timestamppb.Timestamp
func (*UserFilter) GetUpdatedAtTo ¶
func (x *UserFilter) GetUpdatedAtTo() *timestamppb.Timestamp
func (*UserFilter) GetUserStatus ¶
func (x *UserFilter) GetUserStatus() UserStatus
func (*UserFilter) GetUserType ¶
func (x *UserFilter) GetUserType() UserType
func (*UserFilter) GetUsername ¶
func (x *UserFilter) GetUsername() string
func (*UserFilter) ProtoMessage ¶
func (*UserFilter) ProtoMessage()
func (*UserFilter) ProtoReflect ¶
func (x *UserFilter) ProtoReflect() protoreflect.Message
func (*UserFilter) Reset ¶
func (x *UserFilter) Reset()
func (*UserFilter) String ¶
func (x *UserFilter) String() string
type UserPassword ¶
type UserPassword struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` UserId string `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId,omitempty"` Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` PasswordStatus PasswordStatus `protobuf:"varint,4,opt,name=passwordStatus,proto3,enum=PasswordStatus" json:"passwordStatus,omitempty"` // contains filtered or unexported fields }
func (*UserPassword) Descriptor
deprecated
func (*UserPassword) Descriptor() ([]byte, []int)
Deprecated: Use UserPassword.ProtoReflect.Descriptor instead.
func (*UserPassword) GetId ¶
func (x *UserPassword) GetId() string
func (*UserPassword) GetPassword ¶
func (x *UserPassword) GetPassword() string
func (*UserPassword) GetPasswordStatus ¶
func (x *UserPassword) GetPasswordStatus() PasswordStatus
func (*UserPassword) GetUserId ¶
func (x *UserPassword) GetUserId() string
func (*UserPassword) ProtoMessage ¶
func (*UserPassword) ProtoMessage()
func (*UserPassword) ProtoReflect ¶
func (x *UserPassword) ProtoReflect() protoreflect.Message
func (*UserPassword) Reset ¶
func (x *UserPassword) Reset()
func (*UserPassword) String ¶
func (x *UserPassword) String() string
type UserPasswordResult ¶
type UserPasswordResult struct {
// contains filtered or unexported fields
}
func (*UserPasswordResult) Descriptor
deprecated
func (*UserPasswordResult) Descriptor() ([]byte, []int)
Deprecated: Use UserPasswordResult.ProtoReflect.Descriptor instead.
func (*UserPasswordResult) ProtoMessage ¶
func (*UserPasswordResult) ProtoMessage()
func (*UserPasswordResult) ProtoReflect ¶
func (x *UserPasswordResult) ProtoReflect() protoreflect.Message
func (*UserPasswordResult) Reset ¶
func (x *UserPasswordResult) Reset()
func (*UserPasswordResult) String ¶
func (x *UserPasswordResult) String() string
type UserPasswords ¶
type UserPasswords struct { UserPasswords []*UserPassword `protobuf:"bytes,1,rep,name=userPasswords,proto3" json:"userPasswords,omitempty"` // contains filtered or unexported fields }
func (*UserPasswords) Descriptor
deprecated
func (*UserPasswords) Descriptor() ([]byte, []int)
Deprecated: Use UserPasswords.ProtoReflect.Descriptor instead.
func (*UserPasswords) GetUserPasswords ¶
func (x *UserPasswords) GetUserPasswords() []*UserPassword
func (*UserPasswords) ProtoMessage ¶
func (*UserPasswords) ProtoMessage()
func (*UserPasswords) ProtoReflect ¶
func (x *UserPasswords) ProtoReflect() protoreflect.Message
func (*UserPasswords) Reset ¶
func (x *UserPasswords) Reset()
func (*UserPasswords) String ¶
func (x *UserPasswords) String() string
type UserSortField ¶
type UserSortField int32
const ( UserSortField_UserSortFieldNONE UserSortField = 0 UserSortField_UserSortFieldId UserSortField = 1 UserSortField_UserSortFieldName UserSortField = 2 UserSortField_UserSortFieldCreatedAt UserSortField = 3 UserSortField_UserSortFieldUpdatedAt UserSortField = 4 )
func (UserSortField) Descriptor ¶
func (UserSortField) Descriptor() protoreflect.EnumDescriptor
func (UserSortField) Enum ¶
func (x UserSortField) Enum() *UserSortField
func (UserSortField) EnumDescriptor
deprecated
func (UserSortField) EnumDescriptor() ([]byte, []int)
Deprecated: Use UserSortField.Descriptor instead.
func (UserSortField) Number ¶
func (x UserSortField) Number() protoreflect.EnumNumber
func (UserSortField) String ¶
func (x UserSortField) String() string
func (UserSortField) Type ¶
func (UserSortField) Type() protoreflect.EnumType
type UserStatus ¶
type UserStatus int32
const ( UserStatus_UserStatusNONE UserStatus = 0 UserStatus_UserStatusACTIVE UserStatus = 1 UserStatus_UserStatusINACTIVE UserStatus = 2 )
func (UserStatus) Descriptor ¶
func (UserStatus) Descriptor() protoreflect.EnumDescriptor
func (UserStatus) Enum ¶
func (x UserStatus) Enum() *UserStatus
func (UserStatus) EnumDescriptor
deprecated
func (UserStatus) EnumDescriptor() ([]byte, []int)
Deprecated: Use UserStatus.Descriptor instead.
func (UserStatus) Number ¶
func (x UserStatus) Number() protoreflect.EnumNumber
func (UserStatus) String ¶
func (x UserStatus) String() string
func (UserStatus) Type ¶
func (UserStatus) Type() protoreflect.EnumType
type UserSvcClient ¶
type UserSvcClient interface { GetUsersByFilter(ctx context.Context, in *UserFilter, opts ...grpc.CallOption) (*Users, error) CreateUser(ctx context.Context, in *User, opts ...grpc.CallOption) (*User, error) DeleteUser(ctx context.Context, in *User, opts ...grpc.CallOption) (*User, error) UpdateUserRole(ctx context.Context, in *User, opts ...grpc.CallOption) (*User, error) UpdateUserBase(ctx context.Context, in *User, opts ...grpc.CallOption) (*User, error) UpdateUserStatus(ctx context.Context, in *User, opts ...grpc.CallOption) (*User, error) ChangePassword(ctx context.Context, in *UserPassword, opts ...grpc.CallOption) (*UserPasswordResult, error) }
UserSvcClient is the client API for UserSvc service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewUserSvcClient ¶
func NewUserSvcClient(cc grpc.ClientConnInterface) UserSvcClient
type UserSvcServer ¶
type UserSvcServer interface { GetUsersByFilter(context.Context, *UserFilter) (*Users, error) CreateUser(context.Context, *User) (*User, error) DeleteUser(context.Context, *User) (*User, error) UpdateUserRole(context.Context, *User) (*User, error) UpdateUserBase(context.Context, *User) (*User, error) UpdateUserStatus(context.Context, *User) (*User, error) ChangePassword(context.Context, *UserPassword) (*UserPasswordResult, error) // contains filtered or unexported methods }
UserSvcServer is the server API for UserSvc service. All implementations must embed UnimplementedUserSvcServer for forward compatibility
type UserType ¶
type UserType int32
func (UserType) Descriptor ¶
func (UserType) Descriptor() protoreflect.EnumDescriptor
func (UserType) EnumDescriptor
deprecated
func (UserType) Number ¶
func (x UserType) Number() protoreflect.EnumNumber
func (UserType) Type ¶
func (UserType) Type() protoreflect.EnumType
type Users ¶
type Users struct { Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` TotalRows int64 `protobuf:"varint,2,opt,name=totalRows,proto3" json:"totalRows,omitempty"` // contains filtered or unexported fields }
func (*Users) Descriptor
deprecated
func (*Users) GetTotalRows ¶
func (*Users) ProtoMessage ¶
func (*Users) ProtoMessage()
func (*Users) ProtoReflect ¶
func (x *Users) ProtoReflect() protoreflect.Message