mattermost/server/public/pluginapi/grpc/generated/go/pluginapiv1/post.pb.go
Nick Misasi ca57bca5a2 feat(01-02): add core protobuf types (User, Channel, Post, Team, FileInfo)
- Add common.proto with Empty, StringMap, and AppError messages
- Add user.proto with User message (34 fields mirroring model.User)
- Add channel.proto with Channel, ChannelType enum, ChannelBannerInfo
- Add post.proto with Post, PostMetadata, PostEmbed, PostPriority, Reaction
- Add team.proto with Team, TeamMember, TeamUnread, TeamType enum
- Add file.proto with FileInfo, FileUploadResponse, FileData
- Update Makefile to support all proto files with proper import mappings
- Remove bootstrap.proto (replaced by common.proto)
- Use google.protobuf.Struct for dynamic JSON fields (Post.props, Channel.props)
- All timestamps are int64 (milliseconds since epoch)
- All IDs are strings (26-char base32)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:06:42 -05:00

1005 lines
31 KiB
Go

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.6
// protoc v6.33.4
// source: post.proto
package pluginapiv1
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
structpb "google.golang.org/protobuf/types/known/structpb"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// PostMetadata contains additional metadata about a post.
// Maps to model.PostMetadata in Go.
type PostMetadata struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Embedded content (link previews, etc.)
Embeds []*PostEmbed `protobuf:"bytes,1,rep,name=embeds,proto3" json:"embeds,omitempty"`
// Emoji reactions on this post
Reactions []*Reaction `protobuf:"bytes,2,rep,name=reactions,proto3" json:"reactions,omitempty"`
// File attachments
Files []*FileInfo `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"`
// Images in the post (URLs to dimensions)
Images map[string]*PostImage `protobuf:"bytes,4,rep,name=images,proto3" json:"images,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Post priority information
Priority *PostPriority `protobuf:"bytes,5,opt,name=priority,proto3,oneof" json:"priority,omitempty"`
// Acknowledgements from users
Acknowledgements []*PostAcknowledgement `protobuf:"bytes,6,rep,name=acknowledgements,proto3" json:"acknowledgements,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostMetadata) Reset() {
*x = PostMetadata{}
mi := &file_post_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostMetadata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostMetadata) ProtoMessage() {}
func (x *PostMetadata) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostMetadata.ProtoReflect.Descriptor instead.
func (*PostMetadata) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{0}
}
func (x *PostMetadata) GetEmbeds() []*PostEmbed {
if x != nil {
return x.Embeds
}
return nil
}
func (x *PostMetadata) GetReactions() []*Reaction {
if x != nil {
return x.Reactions
}
return nil
}
func (x *PostMetadata) GetFiles() []*FileInfo {
if x != nil {
return x.Files
}
return nil
}
func (x *PostMetadata) GetImages() map[string]*PostImage {
if x != nil {
return x.Images
}
return nil
}
func (x *PostMetadata) GetPriority() *PostPriority {
if x != nil {
return x.Priority
}
return nil
}
func (x *PostMetadata) GetAcknowledgements() []*PostAcknowledgement {
if x != nil {
return x.Acknowledgements
}
return nil
}
// PostEmbed represents embedded content in a post.
type PostEmbed struct {
state protoimpl.MessageState `protogen:"open.v1"`
// The type of embed (e.g., "link", "opengraph", "image")
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
// The URL being embedded
Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
// The embedded data (structure depends on type)
Data *structpb.Struct `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostEmbed) Reset() {
*x = PostEmbed{}
mi := &file_post_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostEmbed) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostEmbed) ProtoMessage() {}
func (x *PostEmbed) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostEmbed.ProtoReflect.Descriptor instead.
func (*PostEmbed) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{1}
}
func (x *PostEmbed) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *PostEmbed) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *PostEmbed) GetData() *structpb.Struct {
if x != nil {
return x.Data
}
return nil
}
// PostImage represents image dimensions.
type PostImage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Width int32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
Format string `protobuf:"bytes,3,opt,name=format,proto3" json:"format,omitempty"`
FrameCount int64 `protobuf:"varint,4,opt,name=frame_count,json=frameCount,proto3" json:"frame_count,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostImage) Reset() {
*x = PostImage{}
mi := &file_post_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostImage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostImage) ProtoMessage() {}
func (x *PostImage) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostImage.ProtoReflect.Descriptor instead.
func (*PostImage) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{2}
}
func (x *PostImage) GetWidth() int32 {
if x != nil {
return x.Width
}
return 0
}
func (x *PostImage) GetHeight() int32 {
if x != nil {
return x.Height
}
return 0
}
func (x *PostImage) GetFormat() string {
if x != nil {
return x.Format
}
return ""
}
func (x *PostImage) GetFrameCount() int64 {
if x != nil {
return x.FrameCount
}
return 0
}
// PostPriority represents priority settings for a post.
type PostPriority struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Priority level (e.g., "urgent")
Priority *string `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"`
// Whether acknowledgement was requested
RequestedAck *bool `protobuf:"varint,2,opt,name=requested_ack,json=requestedAck,proto3,oneof" json:"requested_ack,omitempty"`
// Whether persistent notifications are enabled
PersistentNotifications *bool `protobuf:"varint,3,opt,name=persistent_notifications,json=persistentNotifications,proto3,oneof" json:"persistent_notifications,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostPriority) Reset() {
*x = PostPriority{}
mi := &file_post_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostPriority) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostPriority) ProtoMessage() {}
func (x *PostPriority) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostPriority.ProtoReflect.Descriptor instead.
func (*PostPriority) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{3}
}
func (x *PostPriority) GetPriority() string {
if x != nil && x.Priority != nil {
return *x.Priority
}
return ""
}
func (x *PostPriority) GetRequestedAck() bool {
if x != nil && x.RequestedAck != nil {
return *x.RequestedAck
}
return false
}
func (x *PostPriority) GetPersistentNotifications() bool {
if x != nil && x.PersistentNotifications != nil {
return *x.PersistentNotifications
}
return false
}
// PostAcknowledgement represents a user's acknowledgement of a post.
type PostAcknowledgement struct {
state protoimpl.MessageState `protogen:"open.v1"`
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
PostId string `protobuf:"bytes,2,opt,name=post_id,json=postId,proto3" json:"post_id,omitempty"`
AcknowledgedAt int64 `protobuf:"varint,3,opt,name=acknowledged_at,json=acknowledgedAt,proto3" json:"acknowledged_at,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostAcknowledgement) Reset() {
*x = PostAcknowledgement{}
mi := &file_post_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostAcknowledgement) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostAcknowledgement) ProtoMessage() {}
func (x *PostAcknowledgement) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostAcknowledgement.ProtoReflect.Descriptor instead.
func (*PostAcknowledgement) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{4}
}
func (x *PostAcknowledgement) GetUserId() string {
if x != nil {
return x.UserId
}
return ""
}
func (x *PostAcknowledgement) GetPostId() string {
if x != nil {
return x.PostId
}
return ""
}
func (x *PostAcknowledgement) GetAcknowledgedAt() int64 {
if x != nil {
return x.AcknowledgedAt
}
return 0
}
// Reaction represents a user's emoji reaction to a post.
// Maps to model.Reaction in Go.
type Reaction struct {
state protoimpl.MessageState `protogen:"open.v1"`
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
PostId string `protobuf:"bytes,2,opt,name=post_id,json=postId,proto3" json:"post_id,omitempty"`
EmojiName string `protobuf:"bytes,3,opt,name=emoji_name,json=emojiName,proto3" json:"emoji_name,omitempty"`
CreateAt int64 `protobuf:"varint,4,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty"`
UpdateAt int64 `protobuf:"varint,5,opt,name=update_at,json=updateAt,proto3" json:"update_at,omitempty"`
DeleteAt int64 `protobuf:"varint,6,opt,name=delete_at,json=deleteAt,proto3" json:"delete_at,omitempty"`
RemoteId *string `protobuf:"bytes,7,opt,name=remote_id,json=remoteId,proto3,oneof" json:"remote_id,omitempty"`
ChannelId *string `protobuf:"bytes,8,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Reaction) Reset() {
*x = Reaction{}
mi := &file_post_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Reaction) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Reaction) ProtoMessage() {}
func (x *Reaction) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Reaction.ProtoReflect.Descriptor instead.
func (*Reaction) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{5}
}
func (x *Reaction) GetUserId() string {
if x != nil {
return x.UserId
}
return ""
}
func (x *Reaction) GetPostId() string {
if x != nil {
return x.PostId
}
return ""
}
func (x *Reaction) GetEmojiName() string {
if x != nil {
return x.EmojiName
}
return ""
}
func (x *Reaction) GetCreateAt() int64 {
if x != nil {
return x.CreateAt
}
return 0
}
func (x *Reaction) GetUpdateAt() int64 {
if x != nil {
return x.UpdateAt
}
return 0
}
func (x *Reaction) GetDeleteAt() int64 {
if x != nil {
return x.DeleteAt
}
return 0
}
func (x *Reaction) GetRemoteId() string {
if x != nil && x.RemoteId != nil {
return *x.RemoteId
}
return ""
}
func (x *Reaction) GetChannelId() string {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return ""
}
// Post represents a message/post in Mattermost.
// Maps to model.Post in Go.
type Post struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Unique identifier for the post (26-char ID)
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Timestamp when the post was created (milliseconds since epoch)
CreateAt int64 `protobuf:"varint,2,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty"`
// Timestamp when the post was last updated (milliseconds since epoch)
UpdateAt int64 `protobuf:"varint,3,opt,name=update_at,json=updateAt,proto3" json:"update_at,omitempty"`
// Timestamp when the post was last edited (0 if never edited)
EditAt int64 `protobuf:"varint,4,opt,name=edit_at,json=editAt,proto3" json:"edit_at,omitempty"`
// Timestamp when the post was deleted (0 if not deleted)
DeleteAt int64 `protobuf:"varint,5,opt,name=delete_at,json=deleteAt,proto3" json:"delete_at,omitempty"`
// Whether the post is pinned to the channel
IsPinned bool `protobuf:"varint,6,opt,name=is_pinned,json=isPinned,proto3" json:"is_pinned,omitempty"`
// ID of the user who created the post
UserId string `protobuf:"bytes,7,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
// ID of the channel this post belongs to
ChannelId string `protobuf:"bytes,8,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
// ID of the root post if this is a reply (empty for root posts)
RootId string `protobuf:"bytes,9,opt,name=root_id,json=rootId,proto3" json:"root_id,omitempty"`
// Original post ID (used for cross-posting)
OriginalId string `protobuf:"bytes,10,opt,name=original_id,json=originalId,proto3" json:"original_id,omitempty"`
// The message content
Message string `protobuf:"bytes,11,opt,name=message,proto3" json:"message,omitempty"`
// Original message before server modifications (for edit boxes)
MessageSource string `protobuf:"bytes,12,opt,name=message_source,json=messageSource,proto3" json:"message_source,omitempty"`
// Post type (empty for normal posts, "system_*" for system messages)
Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type,omitempty"`
// Post-specific properties (attachments, webhook data, etc.)
// Maps to model.StringInterface (map[string]any) in Go
Props *structpb.Struct `protobuf:"bytes,14,opt,name=props,proto3" json:"props,omitempty"`
// Extracted hashtags from the message
Hashtags string `protobuf:"bytes,15,opt,name=hashtags,proto3" json:"hashtags,omitempty"`
// IDs of attached files
FileIds []string `protobuf:"bytes,16,rep,name=file_ids,json=fileIds,proto3" json:"file_ids,omitempty"`
// Client-generated ID for deduplication
PendingPostId string `protobuf:"bytes,17,opt,name=pending_post_id,json=pendingPostId,proto3" json:"pending_post_id,omitempty"`
// Whether this post has emoji reactions
HasReactions bool `protobuf:"varint,18,opt,name=has_reactions,json=hasReactions,proto3" json:"has_reactions,omitempty"`
// Remote cluster ID if this post is from a shared channel
RemoteId *string `protobuf:"bytes,19,opt,name=remote_id,json=remoteId,proto3,oneof" json:"remote_id,omitempty"`
// Number of replies (for root posts only)
ReplyCount int64 `protobuf:"varint,20,opt,name=reply_count,json=replyCount,proto3" json:"reply_count,omitempty"`
// Timestamp of the last reply (for root posts only)
LastReplyAt int64 `protobuf:"varint,21,opt,name=last_reply_at,json=lastReplyAt,proto3" json:"last_reply_at,omitempty"`
// Users who participated in the thread
Participants []*User `protobuf:"bytes,22,rep,name=participants,proto3" json:"participants,omitempty"`
// Whether the current user is following this thread
IsFollowing *bool `protobuf:"varint,23,opt,name=is_following,json=isFollowing,proto3,oneof" json:"is_following,omitempty"`
// Additional metadata (embeds, reactions, files, etc.)
Metadata *PostMetadata `protobuf:"bytes,24,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Post) Reset() {
*x = Post{}
mi := &file_post_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Post) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Post) ProtoMessage() {}
func (x *Post) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Post.ProtoReflect.Descriptor instead.
func (*Post) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{6}
}
func (x *Post) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Post) GetCreateAt() int64 {
if x != nil {
return x.CreateAt
}
return 0
}
func (x *Post) GetUpdateAt() int64 {
if x != nil {
return x.UpdateAt
}
return 0
}
func (x *Post) GetEditAt() int64 {
if x != nil {
return x.EditAt
}
return 0
}
func (x *Post) GetDeleteAt() int64 {
if x != nil {
return x.DeleteAt
}
return 0
}
func (x *Post) GetIsPinned() bool {
if x != nil {
return x.IsPinned
}
return false
}
func (x *Post) GetUserId() string {
if x != nil {
return x.UserId
}
return ""
}
func (x *Post) GetChannelId() string {
if x != nil {
return x.ChannelId
}
return ""
}
func (x *Post) GetRootId() string {
if x != nil {
return x.RootId
}
return ""
}
func (x *Post) GetOriginalId() string {
if x != nil {
return x.OriginalId
}
return ""
}
func (x *Post) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *Post) GetMessageSource() string {
if x != nil {
return x.MessageSource
}
return ""
}
func (x *Post) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Post) GetProps() *structpb.Struct {
if x != nil {
return x.Props
}
return nil
}
func (x *Post) GetHashtags() string {
if x != nil {
return x.Hashtags
}
return ""
}
func (x *Post) GetFileIds() []string {
if x != nil {
return x.FileIds
}
return nil
}
func (x *Post) GetPendingPostId() string {
if x != nil {
return x.PendingPostId
}
return ""
}
func (x *Post) GetHasReactions() bool {
if x != nil {
return x.HasReactions
}
return false
}
func (x *Post) GetRemoteId() string {
if x != nil && x.RemoteId != nil {
return *x.RemoteId
}
return ""
}
func (x *Post) GetReplyCount() int64 {
if x != nil {
return x.ReplyCount
}
return 0
}
func (x *Post) GetLastReplyAt() int64 {
if x != nil {
return x.LastReplyAt
}
return 0
}
func (x *Post) GetParticipants() []*User {
if x != nil {
return x.Participants
}
return nil
}
func (x *Post) GetIsFollowing() bool {
if x != nil && x.IsFollowing != nil {
return *x.IsFollowing
}
return false
}
func (x *Post) GetMetadata() *PostMetadata {
if x != nil {
return x.Metadata
}
return nil
}
// PostList represents a list of posts with ordering information.
// Maps to model.PostList in Go.
type PostList struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Ordered list of post IDs
Order []string `protobuf:"bytes,1,rep,name=order,proto3" json:"order,omitempty"`
// Map of post ID to Post
Posts map[string]*Post `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// The ID to use for fetching the next page
NextPostId string `protobuf:"bytes,3,opt,name=next_post_id,json=nextPostId,proto3" json:"next_post_id,omitempty"`
// The ID to use for fetching the previous page
PrevPostId string `protobuf:"bytes,4,opt,name=prev_post_id,json=prevPostId,proto3" json:"prev_post_id,omitempty"`
// Whether the first post in the list is at the channel's first unread
FirstInaccessiblePostTime bool `protobuf:"varint,5,opt,name=first_inaccessible_post_time,json=firstInaccessiblePostTime,proto3" json:"first_inaccessible_post_time,omitempty"`
// Whether there are more posts to fetch
HasNext bool `protobuf:"varint,6,opt,name=has_next,json=hasNext,proto3" json:"has_next,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostList) Reset() {
*x = PostList{}
mi := &file_post_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostList) ProtoMessage() {}
func (x *PostList) ProtoReflect() protoreflect.Message {
mi := &file_post_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostList.ProtoReflect.Descriptor instead.
func (*PostList) Descriptor() ([]byte, []int) {
return file_post_proto_rawDescGZIP(), []int{7}
}
func (x *PostList) GetOrder() []string {
if x != nil {
return x.Order
}
return nil
}
func (x *PostList) GetPosts() map[string]*Post {
if x != nil {
return x.Posts
}
return nil
}
func (x *PostList) GetNextPostId() string {
if x != nil {
return x.NextPostId
}
return ""
}
func (x *PostList) GetPrevPostId() string {
if x != nil {
return x.PrevPostId
}
return ""
}
func (x *PostList) GetFirstInaccessiblePostTime() bool {
if x != nil {
return x.FirstInaccessiblePostTime
}
return false
}
func (x *PostList) GetHasNext() bool {
if x != nil {
return x.HasNext
}
return false
}
var File_post_proto protoreflect.FileDescriptor
const file_post_proto_rawDesc = "" +
"\n" +
"\n" +
"post.proto\x12\x17mattermost.pluginapi.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\n" +
"user.proto\x1a\n" +
"file.proto\"\x9d\x04\n" +
"\fPostMetadata\x12:\n" +
"\x06embeds\x18\x01 \x03(\v2\".mattermost.pluginapi.v1.PostEmbedR\x06embeds\x12?\n" +
"\treactions\x18\x02 \x03(\v2!.mattermost.pluginapi.v1.ReactionR\treactions\x127\n" +
"\x05files\x18\x03 \x03(\v2!.mattermost.pluginapi.v1.FileInfoR\x05files\x12I\n" +
"\x06images\x18\x04 \x03(\v21.mattermost.pluginapi.v1.PostMetadata.ImagesEntryR\x06images\x12F\n" +
"\bpriority\x18\x05 \x01(\v2%.mattermost.pluginapi.v1.PostPriorityH\x00R\bpriority\x88\x01\x01\x12X\n" +
"\x10acknowledgements\x18\x06 \x03(\v2,.mattermost.pluginapi.v1.PostAcknowledgementR\x10acknowledgements\x1a]\n" +
"\vImagesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x128\n" +
"\x05value\x18\x02 \x01(\v2\".mattermost.pluginapi.v1.PostImageR\x05value:\x028\x01B\v\n" +
"\t_priority\"^\n" +
"\tPostEmbed\x12\x12\n" +
"\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n" +
"\x03url\x18\x02 \x01(\tR\x03url\x12+\n" +
"\x04data\x18\x03 \x01(\v2\x17.google.protobuf.StructR\x04data\"r\n" +
"\tPostImage\x12\x14\n" +
"\x05width\x18\x01 \x01(\x05R\x05width\x12\x16\n" +
"\x06height\x18\x02 \x01(\x05R\x06height\x12\x16\n" +
"\x06format\x18\x03 \x01(\tR\x06format\x12\x1f\n" +
"\vframe_count\x18\x04 \x01(\x03R\n" +
"frameCount\"\xd5\x01\n" +
"\fPostPriority\x12\x1f\n" +
"\bpriority\x18\x01 \x01(\tH\x00R\bpriority\x88\x01\x01\x12(\n" +
"\rrequested_ack\x18\x02 \x01(\bH\x01R\frequestedAck\x88\x01\x01\x12>\n" +
"\x18persistent_notifications\x18\x03 \x01(\bH\x02R\x17persistentNotifications\x88\x01\x01B\v\n" +
"\t_priorityB\x10\n" +
"\x0e_requested_ackB\x1b\n" +
"\x19_persistent_notifications\"p\n" +
"\x13PostAcknowledgement\x12\x17\n" +
"\auser_id\x18\x01 \x01(\tR\x06userId\x12\x17\n" +
"\apost_id\x18\x02 \x01(\tR\x06postId\x12'\n" +
"\x0facknowledged_at\x18\x03 \x01(\x03R\x0eacknowledgedAt\"\x95\x02\n" +
"\bReaction\x12\x17\n" +
"\auser_id\x18\x01 \x01(\tR\x06userId\x12\x17\n" +
"\apost_id\x18\x02 \x01(\tR\x06postId\x12\x1d\n" +
"\n" +
"emoji_name\x18\x03 \x01(\tR\temojiName\x12\x1b\n" +
"\tcreate_at\x18\x04 \x01(\x03R\bcreateAt\x12\x1b\n" +
"\tupdate_at\x18\x05 \x01(\x03R\bupdateAt\x12\x1b\n" +
"\tdelete_at\x18\x06 \x01(\x03R\bdeleteAt\x12 \n" +
"\tremote_id\x18\a \x01(\tH\x00R\bremoteId\x88\x01\x01\x12\"\n" +
"\n" +
"channel_id\x18\b \x01(\tH\x01R\tchannelId\x88\x01\x01B\f\n" +
"\n" +
"_remote_idB\r\n" +
"\v_channel_id\"\xe3\x06\n" +
"\x04Post\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n" +
"\tcreate_at\x18\x02 \x01(\x03R\bcreateAt\x12\x1b\n" +
"\tupdate_at\x18\x03 \x01(\x03R\bupdateAt\x12\x17\n" +
"\aedit_at\x18\x04 \x01(\x03R\x06editAt\x12\x1b\n" +
"\tdelete_at\x18\x05 \x01(\x03R\bdeleteAt\x12\x1b\n" +
"\tis_pinned\x18\x06 \x01(\bR\bisPinned\x12\x17\n" +
"\auser_id\x18\a \x01(\tR\x06userId\x12\x1d\n" +
"\n" +
"channel_id\x18\b \x01(\tR\tchannelId\x12\x17\n" +
"\aroot_id\x18\t \x01(\tR\x06rootId\x12\x1f\n" +
"\voriginal_id\x18\n" +
" \x01(\tR\n" +
"originalId\x12\x18\n" +
"\amessage\x18\v \x01(\tR\amessage\x12%\n" +
"\x0emessage_source\x18\f \x01(\tR\rmessageSource\x12\x12\n" +
"\x04type\x18\r \x01(\tR\x04type\x12-\n" +
"\x05props\x18\x0e \x01(\v2\x17.google.protobuf.StructR\x05props\x12\x1a\n" +
"\bhashtags\x18\x0f \x01(\tR\bhashtags\x12\x19\n" +
"\bfile_ids\x18\x10 \x03(\tR\afileIds\x12&\n" +
"\x0fpending_post_id\x18\x11 \x01(\tR\rpendingPostId\x12#\n" +
"\rhas_reactions\x18\x12 \x01(\bR\fhasReactions\x12 \n" +
"\tremote_id\x18\x13 \x01(\tH\x00R\bremoteId\x88\x01\x01\x12\x1f\n" +
"\vreply_count\x18\x14 \x01(\x03R\n" +
"replyCount\x12\"\n" +
"\rlast_reply_at\x18\x15 \x01(\x03R\vlastReplyAt\x12A\n" +
"\fparticipants\x18\x16 \x03(\v2\x1d.mattermost.pluginapi.v1.UserR\fparticipants\x12&\n" +
"\fis_following\x18\x17 \x01(\bH\x01R\visFollowing\x88\x01\x01\x12F\n" +
"\bmetadata\x18\x18 \x01(\v2%.mattermost.pluginapi.v1.PostMetadataH\x02R\bmetadata\x88\x01\x01B\f\n" +
"\n" +
"_remote_idB\x0f\n" +
"\r_is_followingB\v\n" +
"\t_metadata\"\xdd\x02\n" +
"\bPostList\x12\x14\n" +
"\x05order\x18\x01 \x03(\tR\x05order\x12B\n" +
"\x05posts\x18\x02 \x03(\v2,.mattermost.pluginapi.v1.PostList.PostsEntryR\x05posts\x12 \n" +
"\fnext_post_id\x18\x03 \x01(\tR\n" +
"nextPostId\x12 \n" +
"\fprev_post_id\x18\x04 \x01(\tR\n" +
"prevPostId\x12?\n" +
"\x1cfirst_inaccessible_post_time\x18\x05 \x01(\bR\x19firstInaccessiblePostTime\x12\x19\n" +
"\bhas_next\x18\x06 \x01(\bR\ahasNext\x1aW\n" +
"\n" +
"PostsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x123\n" +
"\x05value\x18\x02 \x01(\v2\x1d.mattermost.pluginapi.v1.PostR\x05value:\x028\x01BXZVgithub.com/mattermost/mattermost/server/public/pluginapi/grpc/generated/go/pluginapiv1b\x06proto3"
var (
file_post_proto_rawDescOnce sync.Once
file_post_proto_rawDescData []byte
)
func file_post_proto_rawDescGZIP() []byte {
file_post_proto_rawDescOnce.Do(func() {
file_post_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_post_proto_rawDesc), len(file_post_proto_rawDesc)))
})
return file_post_proto_rawDescData
}
var file_post_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_post_proto_goTypes = []any{
(*PostMetadata)(nil), // 0: mattermost.pluginapi.v1.PostMetadata
(*PostEmbed)(nil), // 1: mattermost.pluginapi.v1.PostEmbed
(*PostImage)(nil), // 2: mattermost.pluginapi.v1.PostImage
(*PostPriority)(nil), // 3: mattermost.pluginapi.v1.PostPriority
(*PostAcknowledgement)(nil), // 4: mattermost.pluginapi.v1.PostAcknowledgement
(*Reaction)(nil), // 5: mattermost.pluginapi.v1.Reaction
(*Post)(nil), // 6: mattermost.pluginapi.v1.Post
(*PostList)(nil), // 7: mattermost.pluginapi.v1.PostList
nil, // 8: mattermost.pluginapi.v1.PostMetadata.ImagesEntry
nil, // 9: mattermost.pluginapi.v1.PostList.PostsEntry
(*FileInfo)(nil), // 10: mattermost.pluginapi.v1.FileInfo
(*structpb.Struct)(nil), // 11: google.protobuf.Struct
(*User)(nil), // 12: mattermost.pluginapi.v1.User
}
var file_post_proto_depIdxs = []int32{
1, // 0: mattermost.pluginapi.v1.PostMetadata.embeds:type_name -> mattermost.pluginapi.v1.PostEmbed
5, // 1: mattermost.pluginapi.v1.PostMetadata.reactions:type_name -> mattermost.pluginapi.v1.Reaction
10, // 2: mattermost.pluginapi.v1.PostMetadata.files:type_name -> mattermost.pluginapi.v1.FileInfo
8, // 3: mattermost.pluginapi.v1.PostMetadata.images:type_name -> mattermost.pluginapi.v1.PostMetadata.ImagesEntry
3, // 4: mattermost.pluginapi.v1.PostMetadata.priority:type_name -> mattermost.pluginapi.v1.PostPriority
4, // 5: mattermost.pluginapi.v1.PostMetadata.acknowledgements:type_name -> mattermost.pluginapi.v1.PostAcknowledgement
11, // 6: mattermost.pluginapi.v1.PostEmbed.data:type_name -> google.protobuf.Struct
11, // 7: mattermost.pluginapi.v1.Post.props:type_name -> google.protobuf.Struct
12, // 8: mattermost.pluginapi.v1.Post.participants:type_name -> mattermost.pluginapi.v1.User
0, // 9: mattermost.pluginapi.v1.Post.metadata:type_name -> mattermost.pluginapi.v1.PostMetadata
9, // 10: mattermost.pluginapi.v1.PostList.posts:type_name -> mattermost.pluginapi.v1.PostList.PostsEntry
2, // 11: mattermost.pluginapi.v1.PostMetadata.ImagesEntry.value:type_name -> mattermost.pluginapi.v1.PostImage
6, // 12: mattermost.pluginapi.v1.PostList.PostsEntry.value:type_name -> mattermost.pluginapi.v1.Post
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_post_proto_init() }
func file_post_proto_init() {
if File_post_proto != nil {
return
}
file_user_proto_init()
file_file_proto_init()
file_post_proto_msgTypes[0].OneofWrappers = []any{}
file_post_proto_msgTypes[3].OneofWrappers = []any{}
file_post_proto_msgTypes[5].OneofWrappers = []any{}
file_post_proto_msgTypes[6].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_post_proto_rawDesc), len(file_post_proto_rawDesc)),
NumEnums: 0,
NumMessages: 10,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_post_proto_goTypes,
DependencyIndexes: file_post_proto_depIdxs,
MessageInfos: file_post_proto_msgTypes,
}.Build()
File_post_proto = out.File
file_post_proto_goTypes = nil
file_post_proto_depIdxs = nil
}