//
// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.5
// source: Groups.proto

package signalpb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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)
)

type Member_Role int32

const (
	Member_UNKNOWN       Member_Role = 0
	Member_DEFAULT       Member_Role = 1
	Member_ADMINISTRATOR Member_Role = 2
)

// Enum value maps for Member_Role.
var (
	Member_Role_name = map[int32]string{
		0: "UNKNOWN",
		1: "DEFAULT",
		2: "ADMINISTRATOR",
	}
	Member_Role_value = map[string]int32{
		"UNKNOWN":       0,
		"DEFAULT":       1,
		"ADMINISTRATOR": 2,
	}
)

func (x Member_Role) Enum() *Member_Role {
	p := new(Member_Role)
	*p = x
	return p
}

func (x Member_Role) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Member_Role) Descriptor() protoreflect.EnumDescriptor {
	return file_Groups_proto_enumTypes[0].Descriptor()
}

func (Member_Role) Type() protoreflect.EnumType {
	return &file_Groups_proto_enumTypes[0]
}

func (x Member_Role) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Member_Role.Descriptor instead.
func (Member_Role) EnumDescriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{1, 0}
}

type AccessControl_AccessRequired int32

const (
	AccessControl_UNKNOWN       AccessControl_AccessRequired = 0
	AccessControl_ANY           AccessControl_AccessRequired = 1
	AccessControl_MEMBER        AccessControl_AccessRequired = 2
	AccessControl_ADMINISTRATOR AccessControl_AccessRequired = 3
	AccessControl_UNSATISFIABLE AccessControl_AccessRequired = 4
)

// Enum value maps for AccessControl_AccessRequired.
var (
	AccessControl_AccessRequired_name = map[int32]string{
		0: "UNKNOWN",
		1: "ANY",
		2: "MEMBER",
		3: "ADMINISTRATOR",
		4: "UNSATISFIABLE",
	}
	AccessControl_AccessRequired_value = map[string]int32{
		"UNKNOWN":       0,
		"ANY":           1,
		"MEMBER":        2,
		"ADMINISTRATOR": 3,
		"UNSATISFIABLE": 4,
	}
)

func (x AccessControl_AccessRequired) Enum() *AccessControl_AccessRequired {
	p := new(AccessControl_AccessRequired)
	*p = x
	return p
}

func (x AccessControl_AccessRequired) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AccessControl_AccessRequired) Descriptor() protoreflect.EnumDescriptor {
	return file_Groups_proto_enumTypes[1].Descriptor()
}

func (AccessControl_AccessRequired) Type() protoreflect.EnumType {
	return &file_Groups_proto_enumTypes[1]
}

func (x AccessControl_AccessRequired) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use AccessControl_AccessRequired.Descriptor instead.
func (AccessControl_AccessRequired) EnumDescriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{5, 0}
}

type AvatarUploadAttributes struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Credential    string                 `protobuf:"bytes,2,opt,name=credential,proto3" json:"credential,omitempty"`
	Acl           string                 `protobuf:"bytes,3,opt,name=acl,proto3" json:"acl,omitempty"`
	Algorithm     string                 `protobuf:"bytes,4,opt,name=algorithm,proto3" json:"algorithm,omitempty"`
	Date          string                 `protobuf:"bytes,5,opt,name=date,proto3" json:"date,omitempty"`
	Policy        string                 `protobuf:"bytes,6,opt,name=policy,proto3" json:"policy,omitempty"`
	Signature     string                 `protobuf:"bytes,7,opt,name=signature,proto3" json:"signature,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AvatarUploadAttributes) Reset() {
	*x = AvatarUploadAttributes{}
	mi := &file_Groups_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AvatarUploadAttributes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AvatarUploadAttributes) ProtoMessage() {}

func (x *AvatarUploadAttributes) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 AvatarUploadAttributes.ProtoReflect.Descriptor instead.
func (*AvatarUploadAttributes) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{0}
}

func (x *AvatarUploadAttributes) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *AvatarUploadAttributes) GetCredential() string {
	if x != nil {
		return x.Credential
	}
	return ""
}

func (x *AvatarUploadAttributes) GetAcl() string {
	if x != nil {
		return x.Acl
	}
	return ""
}

func (x *AvatarUploadAttributes) GetAlgorithm() string {
	if x != nil {
		return x.Algorithm
	}
	return ""
}

func (x *AvatarUploadAttributes) GetDate() string {
	if x != nil {
		return x.Date
	}
	return ""
}

func (x *AvatarUploadAttributes) GetPolicy() string {
	if x != nil {
		return x.Policy
	}
	return ""
}

func (x *AvatarUploadAttributes) GetSignature() string {
	if x != nil {
		return x.Signature
	}
	return ""
}

type Member struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	UserId          []byte                 `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"`
	Role            Member_Role            `protobuf:"varint,2,opt,name=role,proto3,enum=signal.Member_Role" json:"role,omitempty"`
	ProfileKey      []byte                 `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey,omitempty"`
	Presentation    []byte                 `protobuf:"bytes,4,opt,name=presentation,proto3" json:"presentation,omitempty"`
	JoinedAtVersion uint32                 `protobuf:"varint,5,opt,name=joinedAtVersion,proto3" json:"joinedAtVersion,omitempty"`
	LabelEmoji      []byte                 `protobuf:"bytes,6,opt,name=labelEmoji,proto3" json:"labelEmoji,omitempty"`   // decrypts to a UTF-8 string
	LabelString     []byte                 `protobuf:"bytes,7,opt,name=labelString,proto3" json:"labelString,omitempty"` // decrypts to a UTF-8 string
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Member) Reset() {
	*x = Member{}
	mi := &file_Groups_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Member) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Member) ProtoMessage() {}

func (x *Member) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 Member.ProtoReflect.Descriptor instead.
func (*Member) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{1}
}

func (x *Member) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *Member) GetRole() Member_Role {
	if x != nil {
		return x.Role
	}
	return Member_UNKNOWN
}

func (x *Member) GetProfileKey() []byte {
	if x != nil {
		return x.ProfileKey
	}
	return nil
}

func (x *Member) GetPresentation() []byte {
	if x != nil {
		return x.Presentation
	}
	return nil
}

func (x *Member) GetJoinedAtVersion() uint32 {
	if x != nil {
		return x.JoinedAtVersion
	}
	return 0
}

func (x *Member) GetLabelEmoji() []byte {
	if x != nil {
		return x.LabelEmoji
	}
	return nil
}

func (x *Member) GetLabelString() []byte {
	if x != nil {
		return x.LabelString
	}
	return nil
}

type MemberPendingProfileKey struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Member        *Member                `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
	AddedByUserId []byte                 `protobuf:"bytes,2,opt,name=addedByUserId,proto3" json:"addedByUserId,omitempty"`
	Timestamp     uint64                 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // ms since epoch
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MemberPendingProfileKey) Reset() {
	*x = MemberPendingProfileKey{}
	mi := &file_Groups_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MemberPendingProfileKey) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MemberPendingProfileKey) ProtoMessage() {}

func (x *MemberPendingProfileKey) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 MemberPendingProfileKey.ProtoReflect.Descriptor instead.
func (*MemberPendingProfileKey) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{2}
}

func (x *MemberPendingProfileKey) GetMember() *Member {
	if x != nil {
		return x.Member
	}
	return nil
}

func (x *MemberPendingProfileKey) GetAddedByUserId() []byte {
	if x != nil {
		return x.AddedByUserId
	}
	return nil
}

func (x *MemberPendingProfileKey) GetTimestamp() uint64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

type MemberPendingAdminApproval struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        []byte                 `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"`
	ProfileKey    []byte                 `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"`
	Presentation  []byte                 `protobuf:"bytes,3,opt,name=presentation,proto3" json:"presentation,omitempty"`
	Timestamp     uint64                 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // ms since epoch
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MemberPendingAdminApproval) Reset() {
	*x = MemberPendingAdminApproval{}
	mi := &file_Groups_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MemberPendingAdminApproval) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MemberPendingAdminApproval) ProtoMessage() {}

func (x *MemberPendingAdminApproval) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 MemberPendingAdminApproval.ProtoReflect.Descriptor instead.
func (*MemberPendingAdminApproval) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{3}
}

func (x *MemberPendingAdminApproval) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *MemberPendingAdminApproval) GetProfileKey() []byte {
	if x != nil {
		return x.ProfileKey
	}
	return nil
}

func (x *MemberPendingAdminApproval) GetPresentation() []byte {
	if x != nil {
		return x.Presentation
	}
	return nil
}

func (x *MemberPendingAdminApproval) GetTimestamp() uint64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

type MemberBanned struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        []byte                 `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"`
	Timestamp     uint64                 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // ms since epoch
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MemberBanned) Reset() {
	*x = MemberBanned{}
	mi := &file_Groups_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MemberBanned) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MemberBanned) ProtoMessage() {}

func (x *MemberBanned) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 MemberBanned.ProtoReflect.Descriptor instead.
func (*MemberBanned) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{4}
}

func (x *MemberBanned) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *MemberBanned) GetTimestamp() uint64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

type AccessControl struct {
	state             protoimpl.MessageState       `protogen:"open.v1"`
	Attributes        AccessControl_AccessRequired `protobuf:"varint,1,opt,name=attributes,proto3,enum=signal.AccessControl_AccessRequired" json:"attributes,omitempty"`
	Members           AccessControl_AccessRequired `protobuf:"varint,2,opt,name=members,proto3,enum=signal.AccessControl_AccessRequired" json:"members,omitempty"`
	AddFromInviteLink AccessControl_AccessRequired `protobuf:"varint,3,opt,name=addFromInviteLink,proto3,enum=signal.AccessControl_AccessRequired" json:"addFromInviteLink,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *AccessControl) Reset() {
	*x = AccessControl{}
	mi := &file_Groups_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AccessControl) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccessControl) ProtoMessage() {}

func (x *AccessControl) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 AccessControl.ProtoReflect.Descriptor instead.
func (*AccessControl) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{5}
}

func (x *AccessControl) GetAttributes() AccessControl_AccessRequired {
	if x != nil {
		return x.Attributes
	}
	return AccessControl_UNKNOWN
}

func (x *AccessControl) GetMembers() AccessControl_AccessRequired {
	if x != nil {
		return x.Members
	}
	return AccessControl_UNKNOWN
}

func (x *AccessControl) GetAddFromInviteLink() AccessControl_AccessRequired {
	if x != nil {
		return x.AddFromInviteLink
	}
	return AccessControl_UNKNOWN
}

type Group struct {
	state       protoimpl.MessageState `protogen:"open.v1"`
	PublicKey   []byte                 `protobuf:"bytes,1,opt,name=publicKey,proto3" json:"publicKey,omitempty"`
	Title       []byte                 `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Description []byte                 `protobuf:"bytes,11,opt,name=description,proto3" json:"description,omitempty"`
	// The URL for this group's avatar. The content at this URL can be
	// decrypted/deserialized into a `GroupAttributeBlob`.
	AvatarUrl                   string                        `protobuf:"bytes,3,opt,name=avatarUrl,proto3" json:"avatarUrl,omitempty"`
	DisappearingMessagesTimer   []byte                        `protobuf:"bytes,4,opt,name=disappearingMessagesTimer,proto3" json:"disappearingMessagesTimer,omitempty"`
	AccessControl               *AccessControl                `protobuf:"bytes,5,opt,name=accessControl,proto3" json:"accessControl,omitempty"`
	Version                     uint32                        `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"`
	Members                     []*Member                     `protobuf:"bytes,7,rep,name=members,proto3" json:"members,omitempty"`
	MembersPendingProfileKey    []*MemberPendingProfileKey    `protobuf:"bytes,8,rep,name=membersPendingProfileKey,proto3" json:"membersPendingProfileKey,omitempty"`
	MembersPendingAdminApproval []*MemberPendingAdminApproval `protobuf:"bytes,9,rep,name=membersPendingAdminApproval,proto3" json:"membersPendingAdminApproval,omitempty"`
	InviteLinkPassword          []byte                        `protobuf:"bytes,10,opt,name=inviteLinkPassword,proto3" json:"inviteLinkPassword,omitempty"`
	AnnouncementsOnly           bool                          `protobuf:"varint,12,opt,name=announcements_only,json=announcementsOnly,proto3" json:"announcements_only,omitempty"`
	MembersBanned               []*MemberBanned               `protobuf:"bytes,13,rep,name=members_banned,json=membersBanned,proto3" json:"members_banned,omitempty"` // next: 14
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

func (x *Group) Reset() {
	*x = Group{}
	mi := &file_Groups_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Group) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Group) ProtoMessage() {}

func (x *Group) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 Group.ProtoReflect.Descriptor instead.
func (*Group) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{6}
}

func (x *Group) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *Group) GetTitle() []byte {
	if x != nil {
		return x.Title
	}
	return nil
}

func (x *Group) GetDescription() []byte {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *Group) GetAvatarUrl() string {
	if x != nil {
		return x.AvatarUrl
	}
	return ""
}

func (x *Group) GetDisappearingMessagesTimer() []byte {
	if x != nil {
		return x.DisappearingMessagesTimer
	}
	return nil
}

func (x *Group) GetAccessControl() *AccessControl {
	if x != nil {
		return x.AccessControl
	}
	return nil
}

func (x *Group) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *Group) GetMembers() []*Member {
	if x != nil {
		return x.Members
	}
	return nil
}

func (x *Group) GetMembersPendingProfileKey() []*MemberPendingProfileKey {
	if x != nil {
		return x.MembersPendingProfileKey
	}
	return nil
}

func (x *Group) GetMembersPendingAdminApproval() []*MemberPendingAdminApproval {
	if x != nil {
		return x.MembersPendingAdminApproval
	}
	return nil
}

func (x *Group) GetInviteLinkPassword() []byte {
	if x != nil {
		return x.InviteLinkPassword
	}
	return nil
}

func (x *Group) GetAnnouncementsOnly() bool {
	if x != nil {
		return x.AnnouncementsOnly
	}
	return false
}

func (x *Group) GetMembersBanned() []*MemberBanned {
	if x != nil {
		return x.MembersBanned
	}
	return nil
}

type GroupAttributeBlob struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Content:
	//
	//	*GroupAttributeBlob_Title
	//	*GroupAttributeBlob_Avatar
	//	*GroupAttributeBlob_DisappearingMessagesDuration
	//	*GroupAttributeBlob_DescriptionText
	Content       isGroupAttributeBlob_Content `protobuf_oneof:"content"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupAttributeBlob) Reset() {
	*x = GroupAttributeBlob{}
	mi := &file_Groups_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupAttributeBlob) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupAttributeBlob) ProtoMessage() {}

func (x *GroupAttributeBlob) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_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 GroupAttributeBlob.ProtoReflect.Descriptor instead.
func (*GroupAttributeBlob) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{7}
}

func (x *GroupAttributeBlob) GetContent() isGroupAttributeBlob_Content {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *GroupAttributeBlob) GetTitle() string {
	if x != nil {
		if x, ok := x.Content.(*GroupAttributeBlob_Title); ok {
			return x.Title
		}
	}
	return ""
}

func (x *GroupAttributeBlob) GetAvatar() []byte {
	if x != nil {
		if x, ok := x.Content.(*GroupAttributeBlob_Avatar); ok {
			return x.Avatar
		}
	}
	return nil
}

func (x *GroupAttributeBlob) GetDisappearingMessagesDuration() uint32 {
	if x != nil {
		if x, ok := x.Content.(*GroupAttributeBlob_DisappearingMessagesDuration); ok {
			return x.DisappearingMessagesDuration
		}
	}
	return 0
}

func (x *GroupAttributeBlob) GetDescriptionText() string {
	if x != nil {
		if x, ok := x.Content.(*GroupAttributeBlob_DescriptionText); ok {
			return x.DescriptionText
		}
	}
	return ""
}

type isGroupAttributeBlob_Content interface {
	isGroupAttributeBlob_Content()
}

type GroupAttributeBlob_Title struct {
	Title string `protobuf:"bytes,1,opt,name=title,proto3,oneof"`
}

type GroupAttributeBlob_Avatar struct {
	Avatar []byte `protobuf:"bytes,2,opt,name=avatar,proto3,oneof"`
}

type GroupAttributeBlob_DisappearingMessagesDuration struct {
	DisappearingMessagesDuration uint32 `protobuf:"varint,3,opt,name=disappearingMessagesDuration,proto3,oneof"`
}

type GroupAttributeBlob_DescriptionText struct {
	DescriptionText string `protobuf:"bytes,4,opt,name=descriptionText,proto3,oneof"`
}

func (*GroupAttributeBlob_Title) isGroupAttributeBlob_Content() {}

func (*GroupAttributeBlob_Avatar) isGroupAttributeBlob_Content() {}

func (*GroupAttributeBlob_DisappearingMessagesDuration) isGroupAttributeBlob_Content() {}

func (*GroupAttributeBlob_DescriptionText) isGroupAttributeBlob_Content() {}

type GroupInviteLink struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Contents:
	//
	//	*GroupInviteLink_ContentsV1
	Contents      isGroupInviteLink_Contents `protobuf_oneof:"contents"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupInviteLink) Reset() {
	*x = GroupInviteLink{}
	mi := &file_Groups_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupInviteLink) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupInviteLink) ProtoMessage() {}

func (x *GroupInviteLink) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[8]
	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 GroupInviteLink.ProtoReflect.Descriptor instead.
func (*GroupInviteLink) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{8}
}

func (x *GroupInviteLink) GetContents() isGroupInviteLink_Contents {
	if x != nil {
		return x.Contents
	}
	return nil
}

func (x *GroupInviteLink) GetContentsV1() *GroupInviteLink_GroupInviteLinkContentsV1 {
	if x != nil {
		if x, ok := x.Contents.(*GroupInviteLink_ContentsV1); ok {
			return x.ContentsV1
		}
	}
	return nil
}

type isGroupInviteLink_Contents interface {
	isGroupInviteLink_Contents()
}

type GroupInviteLink_ContentsV1 struct {
	ContentsV1 *GroupInviteLink_GroupInviteLinkContentsV1 `protobuf:"bytes,1,opt,name=contentsV1,proto3,oneof"`
}

func (*GroupInviteLink_ContentsV1) isGroupInviteLink_Contents() {}

type GroupJoinInfo struct {
	state                protoimpl.MessageState       `protogen:"open.v1"`
	PublicKey            []byte                       `protobuf:"bytes,1,opt,name=publicKey,proto3" json:"publicKey,omitempty"`
	Title                []byte                       `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Description          []byte                       `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	Avatar               string                       `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"`
	MemberCount          uint32                       `protobuf:"varint,4,opt,name=memberCount,proto3" json:"memberCount,omitempty"`
	AddFromInviteLink    AccessControl_AccessRequired `protobuf:"varint,5,opt,name=addFromInviteLink,proto3,enum=signal.AccessControl_AccessRequired" json:"addFromInviteLink,omitempty"`
	Version              uint32                       `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"`
	PendingAdminApproval bool                         `protobuf:"varint,7,opt,name=pendingAdminApproval,proto3" json:"pendingAdminApproval,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *GroupJoinInfo) Reset() {
	*x = GroupJoinInfo{}
	mi := &file_Groups_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupJoinInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupJoinInfo) ProtoMessage() {}

func (x *GroupJoinInfo) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[9]
	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 GroupJoinInfo.ProtoReflect.Descriptor instead.
func (*GroupJoinInfo) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{9}
}

func (x *GroupJoinInfo) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *GroupJoinInfo) GetTitle() []byte {
	if x != nil {
		return x.Title
	}
	return nil
}

func (x *GroupJoinInfo) GetDescription() []byte {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *GroupJoinInfo) GetAvatar() string {
	if x != nil {
		return x.Avatar
	}
	return ""
}

func (x *GroupJoinInfo) GetMemberCount() uint32 {
	if x != nil {
		return x.MemberCount
	}
	return 0
}

func (x *GroupJoinInfo) GetAddFromInviteLink() AccessControl_AccessRequired {
	if x != nil {
		return x.AddFromInviteLink
	}
	return AccessControl_UNKNOWN
}

func (x *GroupJoinInfo) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *GroupJoinInfo) GetPendingAdminApproval() bool {
	if x != nil {
		return x.PendingAdminApproval
	}
	return false
}

type GroupChange struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Actions         []byte                 `protobuf:"bytes,1,opt,name=actions,proto3" json:"actions,omitempty"`
	ServerSignature []byte                 `protobuf:"bytes,2,opt,name=serverSignature,proto3" json:"serverSignature,omitempty"`
	ChangeEpoch     uint32                 `protobuf:"varint,3,opt,name=changeEpoch,proto3" json:"changeEpoch,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *GroupChange) Reset() {
	*x = GroupChange{}
	mi := &file_Groups_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange) ProtoMessage() {}

func (x *GroupChange) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[10]
	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 GroupChange.ProtoReflect.Descriptor instead.
func (*GroupChange) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10}
}

func (x *GroupChange) GetActions() []byte {
	if x != nil {
		return x.Actions
	}
	return nil
}

func (x *GroupChange) GetServerSignature() []byte {
	if x != nil {
		return x.ServerSignature
	}
	return nil
}

func (x *GroupChange) GetChangeEpoch() uint32 {
	if x != nil {
		return x.ChangeEpoch
	}
	return 0
}

type ExternalGroupCredential struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ExternalGroupCredential) Reset() {
	*x = ExternalGroupCredential{}
	mi := &file_Groups_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ExternalGroupCredential) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExternalGroupCredential) ProtoMessage() {}

func (x *ExternalGroupCredential) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[11]
	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 ExternalGroupCredential.ProtoReflect.Descriptor instead.
func (*ExternalGroupCredential) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{11}
}

func (x *ExternalGroupCredential) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

type GroupResponse struct {
	state                         protoimpl.MessageState `protogen:"open.v1"`
	Group                         *Group                 `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	GroupSendEndorsementsResponse []byte                 `protobuf:"bytes,2,opt,name=group_send_endorsements_response,json=groupSendEndorsementsResponse,proto3" json:"group_send_endorsements_response,omitempty"`
	unknownFields                 protoimpl.UnknownFields
	sizeCache                     protoimpl.SizeCache
}

func (x *GroupResponse) Reset() {
	*x = GroupResponse{}
	mi := &file_Groups_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupResponse) ProtoMessage() {}

func (x *GroupResponse) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[12]
	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 GroupResponse.ProtoReflect.Descriptor instead.
func (*GroupResponse) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{12}
}

func (x *GroupResponse) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

func (x *GroupResponse) GetGroupSendEndorsementsResponse() []byte {
	if x != nil {
		return x.GroupSendEndorsementsResponse
	}
	return nil
}

type GroupChanges struct {
	state                         protoimpl.MessageState           `protogen:"open.v1"`
	GroupChanges                  []*GroupChanges_GroupChangeState `protobuf:"bytes,1,rep,name=groupChanges,proto3" json:"groupChanges,omitempty"`
	GroupSendEndorsementsResponse []byte                           `protobuf:"bytes,2,opt,name=group_send_endorsements_response,json=groupSendEndorsementsResponse,proto3" json:"group_send_endorsements_response,omitempty"`
	unknownFields                 protoimpl.UnknownFields
	sizeCache                     protoimpl.SizeCache
}

func (x *GroupChanges) Reset() {
	*x = GroupChanges{}
	mi := &file_Groups_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChanges) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChanges) ProtoMessage() {}

func (x *GroupChanges) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[13]
	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 GroupChanges.ProtoReflect.Descriptor instead.
func (*GroupChanges) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{13}
}

func (x *GroupChanges) GetGroupChanges() []*GroupChanges_GroupChangeState {
	if x != nil {
		return x.GroupChanges
	}
	return nil
}

func (x *GroupChanges) GetGroupSendEndorsementsResponse() []byte {
	if x != nil {
		return x.GroupSendEndorsementsResponse
	}
	return nil
}

type GroupChangeResponse struct {
	state                         protoimpl.MessageState `protogen:"open.v1"`
	GroupChange                   *GroupChange           `protobuf:"bytes,1,opt,name=group_change,json=groupChange,proto3" json:"group_change,omitempty"`
	GroupSendEndorsementsResponse []byte                 `protobuf:"bytes,2,opt,name=group_send_endorsements_response,json=groupSendEndorsementsResponse,proto3" json:"group_send_endorsements_response,omitempty"`
	unknownFields                 protoimpl.UnknownFields
	sizeCache                     protoimpl.SizeCache
}

func (x *GroupChangeResponse) Reset() {
	*x = GroupChangeResponse{}
	mi := &file_Groups_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChangeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChangeResponse) ProtoMessage() {}

func (x *GroupChangeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[14]
	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 GroupChangeResponse.ProtoReflect.Descriptor instead.
func (*GroupChangeResponse) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{14}
}

func (x *GroupChangeResponse) GetGroupChange() *GroupChange {
	if x != nil {
		return x.GroupChange
	}
	return nil
}

func (x *GroupChangeResponse) GetGroupSendEndorsementsResponse() []byte {
	if x != nil {
		return x.GroupSendEndorsementsResponse
	}
	return nil
}

type GroupInviteLink_GroupInviteLinkContentsV1 struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	GroupMasterKey     []byte                 `protobuf:"bytes,1,opt,name=groupMasterKey,proto3" json:"groupMasterKey,omitempty"`
	InviteLinkPassword []byte                 `protobuf:"bytes,2,opt,name=inviteLinkPassword,proto3" json:"inviteLinkPassword,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *GroupInviteLink_GroupInviteLinkContentsV1) Reset() {
	*x = GroupInviteLink_GroupInviteLinkContentsV1{}
	mi := &file_Groups_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupInviteLink_GroupInviteLinkContentsV1) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupInviteLink_GroupInviteLinkContentsV1) ProtoMessage() {}

func (x *GroupInviteLink_GroupInviteLinkContentsV1) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[15]
	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 GroupInviteLink_GroupInviteLinkContentsV1.ProtoReflect.Descriptor instead.
func (*GroupInviteLink_GroupInviteLinkContentsV1) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{8, 0}
}

func (x *GroupInviteLink_GroupInviteLinkContentsV1) GetGroupMasterKey() []byte {
	if x != nil {
		return x.GroupMasterKey
	}
	return nil
}

func (x *GroupInviteLink_GroupInviteLinkContentsV1) GetInviteLinkPassword() []byte {
	if x != nil {
		return x.InviteLinkPassword
	}
	return nil
}

type GroupChange_Actions struct {
	state        protoimpl.MessageState `protogen:"open.v1"`
	SourceUserId []byte                 `protobuf:"bytes,1,opt,name=sourceUserId,proto3" json:"sourceUserId,omitempty"`
	// clients should not provide this value; the server will provide it in the response buffer to ensure the signature is binding to a particular group
	// if clients set it during a request the server will respond with 400.
	GroupId                               []byte                                                            `protobuf:"bytes,25,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	Version                               uint32                                                            `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
	AddMembers                            []*GroupChange_Actions_AddMemberAction                            `protobuf:"bytes,3,rep,name=addMembers,proto3" json:"addMembers,omitempty"`
	DeleteMembers                         []*GroupChange_Actions_DeleteMemberAction                         `protobuf:"bytes,4,rep,name=deleteMembers,proto3" json:"deleteMembers,omitempty"`
	ModifyMemberRoles                     []*GroupChange_Actions_ModifyMemberRoleAction                     `protobuf:"bytes,5,rep,name=modifyMemberRoles,proto3" json:"modifyMemberRoles,omitempty"`
	ModifyMemberProfileKeys               []*GroupChange_Actions_ModifyMemberProfileKeyAction               `protobuf:"bytes,6,rep,name=modifyMemberProfileKeys,proto3" json:"modifyMemberProfileKeys,omitempty"`
	AddMembersPendingProfileKey           []*GroupChange_Actions_AddMemberPendingProfileKeyAction           `protobuf:"bytes,7,rep,name=addMembersPendingProfileKey,proto3" json:"addMembersPendingProfileKey,omitempty"`
	DeleteMembersPendingProfileKey        []*GroupChange_Actions_DeleteMemberPendingProfileKeyAction        `protobuf:"bytes,8,rep,name=deleteMembersPendingProfileKey,proto3" json:"deleteMembersPendingProfileKey,omitempty"`
	PromoteMembersPendingProfileKey       []*GroupChange_Actions_PromoteMemberPendingProfileKeyAction       `protobuf:"bytes,9,rep,name=promoteMembersPendingProfileKey,proto3" json:"promoteMembersPendingProfileKey,omitempty"`
	ModifyTitle                           *GroupChange_Actions_ModifyTitleAction                            `protobuf:"bytes,10,opt,name=modifyTitle,proto3" json:"modifyTitle,omitempty"`
	ModifyAvatar                          *GroupChange_Actions_ModifyAvatarAction                           `protobuf:"bytes,11,opt,name=modifyAvatar,proto3" json:"modifyAvatar,omitempty"`
	ModifyDisappearingMessageTimer        *GroupChange_Actions_ModifyDisappearingMessageTimerAction         `protobuf:"bytes,12,opt,name=modifyDisappearingMessageTimer,proto3" json:"modifyDisappearingMessageTimer,omitempty"`
	ModifyAttributesAccess                *GroupChange_Actions_ModifyAttributesAccessControlAction          `protobuf:"bytes,13,opt,name=modifyAttributesAccess,proto3" json:"modifyAttributesAccess,omitempty"`
	ModifyMemberAccess                    *GroupChange_Actions_ModifyMembersAccessControlAction             `protobuf:"bytes,14,opt,name=modifyMemberAccess,proto3" json:"modifyMemberAccess,omitempty"`
	ModifyAddFromInviteLinkAccess         *GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction   `protobuf:"bytes,15,opt,name=modifyAddFromInviteLinkAccess,proto3" json:"modifyAddFromInviteLinkAccess,omitempty"`                                                                        // change epoch = 1
	AddMembersPendingAdminApproval        []*GroupChange_Actions_AddMemberPendingAdminApprovalAction        `protobuf:"bytes,16,rep,name=addMembersPendingAdminApproval,proto3" json:"addMembersPendingAdminApproval,omitempty"`                                                                      // change epoch = 1
	DeleteMembersPendingAdminApproval     []*GroupChange_Actions_DeleteMemberPendingAdminApprovalAction     `protobuf:"bytes,17,rep,name=deleteMembersPendingAdminApproval,proto3" json:"deleteMembersPendingAdminApproval,omitempty"`                                                                // change epoch = 1
	PromoteMembersPendingAdminApproval    []*GroupChange_Actions_PromoteMemberPendingAdminApprovalAction    `protobuf:"bytes,18,rep,name=promoteMembersPendingAdminApproval,proto3" json:"promoteMembersPendingAdminApproval,omitempty"`                                                              // change epoch = 1
	ModifyInviteLinkPassword              *GroupChange_Actions_ModifyInviteLinkPasswordAction               `protobuf:"bytes,19,opt,name=modifyInviteLinkPassword,proto3" json:"modifyInviteLinkPassword,omitempty"`                                                                                  // change epoch = 1
	ModifyDescription                     *GroupChange_Actions_ModifyDescriptionAction                      `protobuf:"bytes,20,opt,name=modifyDescription,proto3" json:"modifyDescription,omitempty"`                                                                                                // change epoch = 2
	ModifyAnnouncementsOnly               *GroupChange_Actions_ModifyAnnouncementsOnlyAction                `protobuf:"bytes,21,opt,name=modify_announcements_only,json=modifyAnnouncementsOnly,proto3" json:"modify_announcements_only,omitempty"`                                                   // change epoch = 3
	AddMembersBanned                      []*GroupChange_Actions_AddMemberBannedAction                      `protobuf:"bytes,22,rep,name=add_members_banned,json=addMembersBanned,proto3" json:"add_members_banned,omitempty"`                                                                        // change epoch = 4
	DeleteMembersBanned                   []*GroupChange_Actions_DeleteMemberBannedAction                   `protobuf:"bytes,23,rep,name=delete_members_banned,json=deleteMembersBanned,proto3" json:"delete_members_banned,omitempty"`                                                               // change epoch = 4
	PromoteMembersPendingPniAciProfileKey []*GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction `protobuf:"bytes,24,rep,name=promote_members_pending_pni_aci_profile_key,json=promoteMembersPendingPniAciProfileKey,proto3" json:"promote_members_pending_pni_aci_profile_key,omitempty"` // change epoch = 5
	ModifyMemberLabels                    []*GroupChange_Actions_ModifyMemberLabelAction                    `protobuf:"bytes,26,rep,name=modifyMemberLabels,proto3" json:"modifyMemberLabels,omitempty"`                                                                                              // change epoch = 6;
	unknownFields                         protoimpl.UnknownFields
	sizeCache                             protoimpl.SizeCache
}

func (x *GroupChange_Actions) Reset() {
	*x = GroupChange_Actions{}
	mi := &file_Groups_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions) ProtoMessage() {}

func (x *GroupChange_Actions) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[16]
	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 GroupChange_Actions.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0}
}

func (x *GroupChange_Actions) GetSourceUserId() []byte {
	if x != nil {
		return x.SourceUserId
	}
	return nil
}

func (x *GroupChange_Actions) GetGroupId() []byte {
	if x != nil {
		return x.GroupId
	}
	return nil
}

func (x *GroupChange_Actions) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *GroupChange_Actions) GetAddMembers() []*GroupChange_Actions_AddMemberAction {
	if x != nil {
		return x.AddMembers
	}
	return nil
}

func (x *GroupChange_Actions) GetDeleteMembers() []*GroupChange_Actions_DeleteMemberAction {
	if x != nil {
		return x.DeleteMembers
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyMemberRoles() []*GroupChange_Actions_ModifyMemberRoleAction {
	if x != nil {
		return x.ModifyMemberRoles
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyMemberProfileKeys() []*GroupChange_Actions_ModifyMemberProfileKeyAction {
	if x != nil {
		return x.ModifyMemberProfileKeys
	}
	return nil
}

func (x *GroupChange_Actions) GetAddMembersPendingProfileKey() []*GroupChange_Actions_AddMemberPendingProfileKeyAction {
	if x != nil {
		return x.AddMembersPendingProfileKey
	}
	return nil
}

func (x *GroupChange_Actions) GetDeleteMembersPendingProfileKey() []*GroupChange_Actions_DeleteMemberPendingProfileKeyAction {
	if x != nil {
		return x.DeleteMembersPendingProfileKey
	}
	return nil
}

func (x *GroupChange_Actions) GetPromoteMembersPendingProfileKey() []*GroupChange_Actions_PromoteMemberPendingProfileKeyAction {
	if x != nil {
		return x.PromoteMembersPendingProfileKey
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyTitle() *GroupChange_Actions_ModifyTitleAction {
	if x != nil {
		return x.ModifyTitle
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyAvatar() *GroupChange_Actions_ModifyAvatarAction {
	if x != nil {
		return x.ModifyAvatar
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyDisappearingMessageTimer() *GroupChange_Actions_ModifyDisappearingMessageTimerAction {
	if x != nil {
		return x.ModifyDisappearingMessageTimer
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyAttributesAccess() *GroupChange_Actions_ModifyAttributesAccessControlAction {
	if x != nil {
		return x.ModifyAttributesAccess
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyMemberAccess() *GroupChange_Actions_ModifyMembersAccessControlAction {
	if x != nil {
		return x.ModifyMemberAccess
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyAddFromInviteLinkAccess() *GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction {
	if x != nil {
		return x.ModifyAddFromInviteLinkAccess
	}
	return nil
}

func (x *GroupChange_Actions) GetAddMembersPendingAdminApproval() []*GroupChange_Actions_AddMemberPendingAdminApprovalAction {
	if x != nil {
		return x.AddMembersPendingAdminApproval
	}
	return nil
}

func (x *GroupChange_Actions) GetDeleteMembersPendingAdminApproval() []*GroupChange_Actions_DeleteMemberPendingAdminApprovalAction {
	if x != nil {
		return x.DeleteMembersPendingAdminApproval
	}
	return nil
}

func (x *GroupChange_Actions) GetPromoteMembersPendingAdminApproval() []*GroupChange_Actions_PromoteMemberPendingAdminApprovalAction {
	if x != nil {
		return x.PromoteMembersPendingAdminApproval
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyInviteLinkPassword() *GroupChange_Actions_ModifyInviteLinkPasswordAction {
	if x != nil {
		return x.ModifyInviteLinkPassword
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyDescription() *GroupChange_Actions_ModifyDescriptionAction {
	if x != nil {
		return x.ModifyDescription
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyAnnouncementsOnly() *GroupChange_Actions_ModifyAnnouncementsOnlyAction {
	if x != nil {
		return x.ModifyAnnouncementsOnly
	}
	return nil
}

func (x *GroupChange_Actions) GetAddMembersBanned() []*GroupChange_Actions_AddMemberBannedAction {
	if x != nil {
		return x.AddMembersBanned
	}
	return nil
}

func (x *GroupChange_Actions) GetDeleteMembersBanned() []*GroupChange_Actions_DeleteMemberBannedAction {
	if x != nil {
		return x.DeleteMembersBanned
	}
	return nil
}

func (x *GroupChange_Actions) GetPromoteMembersPendingPniAciProfileKey() []*GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction {
	if x != nil {
		return x.PromoteMembersPendingPniAciProfileKey
	}
	return nil
}

func (x *GroupChange_Actions) GetModifyMemberLabels() []*GroupChange_Actions_ModifyMemberLabelAction {
	if x != nil {
		return x.ModifyMemberLabels
	}
	return nil
}

type GroupChange_Actions_AddMemberAction struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Added              *Member                `protobuf:"bytes,1,opt,name=added,proto3" json:"added,omitempty"`
	JoinFromInviteLink bool                   `protobuf:"varint,2,opt,name=joinFromInviteLink,proto3" json:"joinFromInviteLink,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *GroupChange_Actions_AddMemberAction) Reset() {
	*x = GroupChange_Actions_AddMemberAction{}
	mi := &file_Groups_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_AddMemberAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_AddMemberAction) ProtoMessage() {}

func (x *GroupChange_Actions_AddMemberAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[17]
	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 GroupChange_Actions_AddMemberAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_AddMemberAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 0}
}

func (x *GroupChange_Actions_AddMemberAction) GetAdded() *Member {
	if x != nil {
		return x.Added
	}
	return nil
}

func (x *GroupChange_Actions_AddMemberAction) GetJoinFromInviteLink() bool {
	if x != nil {
		return x.JoinFromInviteLink
	}
	return false
}

type GroupChange_Actions_DeleteMemberAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	DeletedUserId []byte                 `protobuf:"bytes,1,opt,name=deletedUserId,proto3" json:"deletedUserId,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_DeleteMemberAction) Reset() {
	*x = GroupChange_Actions_DeleteMemberAction{}
	mi := &file_Groups_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_DeleteMemberAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_DeleteMemberAction) ProtoMessage() {}

func (x *GroupChange_Actions_DeleteMemberAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[18]
	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 GroupChange_Actions_DeleteMemberAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_DeleteMemberAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 1}
}

func (x *GroupChange_Actions_DeleteMemberAction) GetDeletedUserId() []byte {
	if x != nil {
		return x.DeletedUserId
	}
	return nil
}

type GroupChange_Actions_ModifyMemberRoleAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        []byte                 `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"`
	Role          Member_Role            `protobuf:"varint,2,opt,name=role,proto3,enum=signal.Member_Role" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyMemberRoleAction) Reset() {
	*x = GroupChange_Actions_ModifyMemberRoleAction{}
	mi := &file_Groups_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyMemberRoleAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyMemberRoleAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyMemberRoleAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[19]
	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 GroupChange_Actions_ModifyMemberRoleAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyMemberRoleAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 2}
}

func (x *GroupChange_Actions_ModifyMemberRoleAction) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupChange_Actions_ModifyMemberRoleAction) GetRole() Member_Role {
	if x != nil {
		return x.Role
	}
	return Member_UNKNOWN
}

type GroupChange_Actions_ModifyMemberLabelAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        []byte                 `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"`
	LabelEmoji    []byte                 `protobuf:"bytes,2,opt,name=labelEmoji,proto3" json:"labelEmoji,omitempty"`   // decrypts to a UTF-8 string
	LabelString   []byte                 `protobuf:"bytes,3,opt,name=labelString,proto3" json:"labelString,omitempty"` // decrypts to a UTF-8 string
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyMemberLabelAction) Reset() {
	*x = GroupChange_Actions_ModifyMemberLabelAction{}
	mi := &file_Groups_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyMemberLabelAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyMemberLabelAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyMemberLabelAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[20]
	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 GroupChange_Actions_ModifyMemberLabelAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyMemberLabelAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 3}
}

func (x *GroupChange_Actions_ModifyMemberLabelAction) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupChange_Actions_ModifyMemberLabelAction) GetLabelEmoji() []byte {
	if x != nil {
		return x.LabelEmoji
	}
	return nil
}

func (x *GroupChange_Actions_ModifyMemberLabelAction) GetLabelString() []byte {
	if x != nil {
		return x.LabelString
	}
	return nil
}

type GroupChange_Actions_ModifyMemberProfileKeyAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Presentation  []byte                 `protobuf:"bytes,1,opt,name=presentation,proto3" json:"presentation,omitempty"`
	UserId        []byte                 `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	ProfileKey    []byte                 `protobuf:"bytes,3,opt,name=profile_key,json=profileKey,proto3" json:"profile_key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyMemberProfileKeyAction) Reset() {
	*x = GroupChange_Actions_ModifyMemberProfileKeyAction{}
	mi := &file_Groups_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyMemberProfileKeyAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyMemberProfileKeyAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyMemberProfileKeyAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[21]
	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 GroupChange_Actions_ModifyMemberProfileKeyAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyMemberProfileKeyAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 4}
}

func (x *GroupChange_Actions_ModifyMemberProfileKeyAction) GetPresentation() []byte {
	if x != nil {
		return x.Presentation
	}
	return nil
}

func (x *GroupChange_Actions_ModifyMemberProfileKeyAction) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupChange_Actions_ModifyMemberProfileKeyAction) GetProfileKey() []byte {
	if x != nil {
		return x.ProfileKey
	}
	return nil
}

type GroupChange_Actions_AddMemberPendingProfileKeyAction struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Added         *MemberPendingProfileKey `protobuf:"bytes,1,opt,name=added,proto3" json:"added,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_AddMemberPendingProfileKeyAction) Reset() {
	*x = GroupChange_Actions_AddMemberPendingProfileKeyAction{}
	mi := &file_Groups_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_AddMemberPendingProfileKeyAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_AddMemberPendingProfileKeyAction) ProtoMessage() {}

func (x *GroupChange_Actions_AddMemberPendingProfileKeyAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[22]
	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 GroupChange_Actions_AddMemberPendingProfileKeyAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_AddMemberPendingProfileKeyAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 5}
}

func (x *GroupChange_Actions_AddMemberPendingProfileKeyAction) GetAdded() *MemberPendingProfileKey {
	if x != nil {
		return x.Added
	}
	return nil
}

type GroupChange_Actions_DeleteMemberPendingProfileKeyAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	DeletedUserId []byte                 `protobuf:"bytes,1,opt,name=deletedUserId,proto3" json:"deletedUserId,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_DeleteMemberPendingProfileKeyAction) Reset() {
	*x = GroupChange_Actions_DeleteMemberPendingProfileKeyAction{}
	mi := &file_Groups_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_DeleteMemberPendingProfileKeyAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_DeleteMemberPendingProfileKeyAction) ProtoMessage() {}

func (x *GroupChange_Actions_DeleteMemberPendingProfileKeyAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[23]
	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 GroupChange_Actions_DeleteMemberPendingProfileKeyAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_DeleteMemberPendingProfileKeyAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 6}
}

func (x *GroupChange_Actions_DeleteMemberPendingProfileKeyAction) GetDeletedUserId() []byte {
	if x != nil {
		return x.DeletedUserId
	}
	return nil
}

type GroupChange_Actions_PromoteMemberPendingProfileKeyAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Presentation  []byte                 `protobuf:"bytes,1,opt,name=presentation,proto3" json:"presentation,omitempty"`
	UserId        []byte                 `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	ProfileKey    []byte                 `protobuf:"bytes,3,opt,name=profile_key,json=profileKey,proto3" json:"profile_key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_PromoteMemberPendingProfileKeyAction) Reset() {
	*x = GroupChange_Actions_PromoteMemberPendingProfileKeyAction{}
	mi := &file_Groups_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_PromoteMemberPendingProfileKeyAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_PromoteMemberPendingProfileKeyAction) ProtoMessage() {}

func (x *GroupChange_Actions_PromoteMemberPendingProfileKeyAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[24]
	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 GroupChange_Actions_PromoteMemberPendingProfileKeyAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_PromoteMemberPendingProfileKeyAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 7}
}

func (x *GroupChange_Actions_PromoteMemberPendingProfileKeyAction) GetPresentation() []byte {
	if x != nil {
		return x.Presentation
	}
	return nil
}

func (x *GroupChange_Actions_PromoteMemberPendingProfileKeyAction) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupChange_Actions_PromoteMemberPendingProfileKeyAction) GetProfileKey() []byte {
	if x != nil {
		return x.ProfileKey
	}
	return nil
}

type GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Presentation  []byte                 `protobuf:"bytes,1,opt,name=presentation,proto3" json:"presentation,omitempty"`
	UserId        []byte                 `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	Pni           []byte                 `protobuf:"bytes,3,opt,name=pni,proto3" json:"pni,omitempty"`
	ProfileKey    []byte                 `protobuf:"bytes,4,opt,name=profile_key,json=profileKey,proto3" json:"profile_key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) Reset() {
	*x = GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction{}
	mi := &file_Groups_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) ProtoMessage() {}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[25]
	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 GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 8}
}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) GetPresentation() []byte {
	if x != nil {
		return x.Presentation
	}
	return nil
}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) GetPni() []byte {
	if x != nil {
		return x.Pni
	}
	return nil
}

func (x *GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction) GetProfileKey() []byte {
	if x != nil {
		return x.ProfileKey
	}
	return nil
}

type GroupChange_Actions_AddMemberPendingAdminApprovalAction struct {
	state         protoimpl.MessageState      `protogen:"open.v1"`
	Added         *MemberPendingAdminApproval `protobuf:"bytes,1,opt,name=added,proto3" json:"added,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_AddMemberPendingAdminApprovalAction) Reset() {
	*x = GroupChange_Actions_AddMemberPendingAdminApprovalAction{}
	mi := &file_Groups_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_AddMemberPendingAdminApprovalAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_AddMemberPendingAdminApprovalAction) ProtoMessage() {}

func (x *GroupChange_Actions_AddMemberPendingAdminApprovalAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[26]
	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 GroupChange_Actions_AddMemberPendingAdminApprovalAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_AddMemberPendingAdminApprovalAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 9}
}

func (x *GroupChange_Actions_AddMemberPendingAdminApprovalAction) GetAdded() *MemberPendingAdminApproval {
	if x != nil {
		return x.Added
	}
	return nil
}

type GroupChange_Actions_DeleteMemberPendingAdminApprovalAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	DeletedUserId []byte                 `protobuf:"bytes,1,opt,name=deletedUserId,proto3" json:"deletedUserId,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_DeleteMemberPendingAdminApprovalAction) Reset() {
	*x = GroupChange_Actions_DeleteMemberPendingAdminApprovalAction{}
	mi := &file_Groups_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_DeleteMemberPendingAdminApprovalAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_DeleteMemberPendingAdminApprovalAction) ProtoMessage() {}

func (x *GroupChange_Actions_DeleteMemberPendingAdminApprovalAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[27]
	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 GroupChange_Actions_DeleteMemberPendingAdminApprovalAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_DeleteMemberPendingAdminApprovalAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 10}
}

func (x *GroupChange_Actions_DeleteMemberPendingAdminApprovalAction) GetDeletedUserId() []byte {
	if x != nil {
		return x.DeletedUserId
	}
	return nil
}

type GroupChange_Actions_PromoteMemberPendingAdminApprovalAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        []byte                 `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"`
	Role          Member_Role            `protobuf:"varint,2,opt,name=role,proto3,enum=signal.Member_Role" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) Reset() {
	*x = GroupChange_Actions_PromoteMemberPendingAdminApprovalAction{}
	mi := &file_Groups_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) ProtoMessage() {}

func (x *GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[28]
	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 GroupChange_Actions_PromoteMemberPendingAdminApprovalAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 11}
}

func (x *GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) GetUserId() []byte {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupChange_Actions_PromoteMemberPendingAdminApprovalAction) GetRole() Member_Role {
	if x != nil {
		return x.Role
	}
	return Member_UNKNOWN
}

type GroupChange_Actions_AddMemberBannedAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Added         *MemberBanned          `protobuf:"bytes,1,opt,name=added,proto3" json:"added,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_AddMemberBannedAction) Reset() {
	*x = GroupChange_Actions_AddMemberBannedAction{}
	mi := &file_Groups_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_AddMemberBannedAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_AddMemberBannedAction) ProtoMessage() {}

func (x *GroupChange_Actions_AddMemberBannedAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[29]
	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 GroupChange_Actions_AddMemberBannedAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_AddMemberBannedAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 12}
}

func (x *GroupChange_Actions_AddMemberBannedAction) GetAdded() *MemberBanned {
	if x != nil {
		return x.Added
	}
	return nil
}

type GroupChange_Actions_DeleteMemberBannedAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	DeletedUserId []byte                 `protobuf:"bytes,1,opt,name=deletedUserId,proto3" json:"deletedUserId,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_DeleteMemberBannedAction) Reset() {
	*x = GroupChange_Actions_DeleteMemberBannedAction{}
	mi := &file_Groups_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_DeleteMemberBannedAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_DeleteMemberBannedAction) ProtoMessage() {}

func (x *GroupChange_Actions_DeleteMemberBannedAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[30]
	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 GroupChange_Actions_DeleteMemberBannedAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_DeleteMemberBannedAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 13}
}

func (x *GroupChange_Actions_DeleteMemberBannedAction) GetDeletedUserId() []byte {
	if x != nil {
		return x.DeletedUserId
	}
	return nil
}

type GroupChange_Actions_ModifyTitleAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Title         []byte                 `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyTitleAction) Reset() {
	*x = GroupChange_Actions_ModifyTitleAction{}
	mi := &file_Groups_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyTitleAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyTitleAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyTitleAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[31]
	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 GroupChange_Actions_ModifyTitleAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyTitleAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 14}
}

func (x *GroupChange_Actions_ModifyTitleAction) GetTitle() []byte {
	if x != nil {
		return x.Title
	}
	return nil
}

type GroupChange_Actions_ModifyDescriptionAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Description   []byte                 `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyDescriptionAction) Reset() {
	*x = GroupChange_Actions_ModifyDescriptionAction{}
	mi := &file_Groups_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyDescriptionAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyDescriptionAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyDescriptionAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[32]
	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 GroupChange_Actions_ModifyDescriptionAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyDescriptionAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 15}
}

func (x *GroupChange_Actions_ModifyDescriptionAction) GetDescription() []byte {
	if x != nil {
		return x.Description
	}
	return nil
}

type GroupChange_Actions_ModifyAvatarAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Avatar        string                 `protobuf:"bytes,1,opt,name=avatar,proto3" json:"avatar,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyAvatarAction) Reset() {
	*x = GroupChange_Actions_ModifyAvatarAction{}
	mi := &file_Groups_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyAvatarAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyAvatarAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyAvatarAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[33]
	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 GroupChange_Actions_ModifyAvatarAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyAvatarAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 16}
}

func (x *GroupChange_Actions_ModifyAvatarAction) GetAvatar() string {
	if x != nil {
		return x.Avatar
	}
	return ""
}

type GroupChange_Actions_ModifyDisappearingMessageTimerAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Timer         []byte                 `protobuf:"bytes,1,opt,name=timer,proto3" json:"timer,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyDisappearingMessageTimerAction) Reset() {
	*x = GroupChange_Actions_ModifyDisappearingMessageTimerAction{}
	mi := &file_Groups_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyDisappearingMessageTimerAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyDisappearingMessageTimerAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyDisappearingMessageTimerAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[34]
	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 GroupChange_Actions_ModifyDisappearingMessageTimerAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyDisappearingMessageTimerAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 17}
}

func (x *GroupChange_Actions_ModifyDisappearingMessageTimerAction) GetTimer() []byte {
	if x != nil {
		return x.Timer
	}
	return nil
}

type GroupChange_Actions_ModifyAttributesAccessControlAction struct {
	state            protoimpl.MessageState       `protogen:"open.v1"`
	AttributesAccess AccessControl_AccessRequired `protobuf:"varint,1,opt,name=attributesAccess,proto3,enum=signal.AccessControl_AccessRequired" json:"attributesAccess,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyAttributesAccessControlAction) Reset() {
	*x = GroupChange_Actions_ModifyAttributesAccessControlAction{}
	mi := &file_Groups_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyAttributesAccessControlAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyAttributesAccessControlAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyAttributesAccessControlAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[35]
	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 GroupChange_Actions_ModifyAttributesAccessControlAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyAttributesAccessControlAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 18}
}

func (x *GroupChange_Actions_ModifyAttributesAccessControlAction) GetAttributesAccess() AccessControl_AccessRequired {
	if x != nil {
		return x.AttributesAccess
	}
	return AccessControl_UNKNOWN
}

type GroupChange_Actions_ModifyMembersAccessControlAction struct {
	state         protoimpl.MessageState       `protogen:"open.v1"`
	MembersAccess AccessControl_AccessRequired `protobuf:"varint,1,opt,name=membersAccess,proto3,enum=signal.AccessControl_AccessRequired" json:"membersAccess,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyMembersAccessControlAction) Reset() {
	*x = GroupChange_Actions_ModifyMembersAccessControlAction{}
	mi := &file_Groups_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyMembersAccessControlAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyMembersAccessControlAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyMembersAccessControlAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[36]
	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 GroupChange_Actions_ModifyMembersAccessControlAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyMembersAccessControlAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 19}
}

func (x *GroupChange_Actions_ModifyMembersAccessControlAction) GetMembersAccess() AccessControl_AccessRequired {
	if x != nil {
		return x.MembersAccess
	}
	return AccessControl_UNKNOWN
}

type GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction struct {
	state                   protoimpl.MessageState       `protogen:"open.v1"`
	AddFromInviteLinkAccess AccessControl_AccessRequired `protobuf:"varint,1,opt,name=addFromInviteLinkAccess,proto3,enum=signal.AccessControl_AccessRequired" json:"addFromInviteLinkAccess,omitempty"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction) Reset() {
	*x = GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction{}
	mi := &file_Groups_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[37]
	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 GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 20}
}

func (x *GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction) GetAddFromInviteLinkAccess() AccessControl_AccessRequired {
	if x != nil {
		return x.AddFromInviteLinkAccess
	}
	return AccessControl_UNKNOWN
}

type GroupChange_Actions_ModifyInviteLinkPasswordAction struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	InviteLinkPassword []byte                 `protobuf:"bytes,1,opt,name=inviteLinkPassword,proto3" json:"inviteLinkPassword,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyInviteLinkPasswordAction) Reset() {
	*x = GroupChange_Actions_ModifyInviteLinkPasswordAction{}
	mi := &file_Groups_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyInviteLinkPasswordAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyInviteLinkPasswordAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyInviteLinkPasswordAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[38]
	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 GroupChange_Actions_ModifyInviteLinkPasswordAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyInviteLinkPasswordAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 21}
}

func (x *GroupChange_Actions_ModifyInviteLinkPasswordAction) GetInviteLinkPassword() []byte {
	if x != nil {
		return x.InviteLinkPassword
	}
	return nil
}

type GroupChange_Actions_ModifyAnnouncementsOnlyAction struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	AnnouncementsOnly bool                   `protobuf:"varint,1,opt,name=announcements_only,json=announcementsOnly,proto3" json:"announcements_only,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *GroupChange_Actions_ModifyAnnouncementsOnlyAction) Reset() {
	*x = GroupChange_Actions_ModifyAnnouncementsOnlyAction{}
	mi := &file_Groups_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChange_Actions_ModifyAnnouncementsOnlyAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChange_Actions_ModifyAnnouncementsOnlyAction) ProtoMessage() {}

func (x *GroupChange_Actions_ModifyAnnouncementsOnlyAction) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[39]
	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 GroupChange_Actions_ModifyAnnouncementsOnlyAction.ProtoReflect.Descriptor instead.
func (*GroupChange_Actions_ModifyAnnouncementsOnlyAction) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{10, 0, 22}
}

func (x *GroupChange_Actions_ModifyAnnouncementsOnlyAction) GetAnnouncementsOnly() bool {
	if x != nil {
		return x.AnnouncementsOnly
	}
	return false
}

type GroupChanges_GroupChangeState struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	GroupChange   *GroupChange           `protobuf:"bytes,1,opt,name=groupChange,proto3" json:"groupChange,omitempty"`
	GroupState    *Group                 `protobuf:"bytes,2,opt,name=groupState,proto3" json:"groupState,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GroupChanges_GroupChangeState) Reset() {
	*x = GroupChanges_GroupChangeState{}
	mi := &file_Groups_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupChanges_GroupChangeState) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupChanges_GroupChangeState) ProtoMessage() {}

func (x *GroupChanges_GroupChangeState) ProtoReflect() protoreflect.Message {
	mi := &file_Groups_proto_msgTypes[40]
	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 GroupChanges_GroupChangeState.ProtoReflect.Descriptor instead.
func (*GroupChanges_GroupChangeState) Descriptor() ([]byte, []int) {
	return file_Groups_proto_rawDescGZIP(), []int{13, 0}
}

func (x *GroupChanges_GroupChangeState) GetGroupChange() *GroupChange {
	if x != nil {
		return x.GroupChange
	}
	return nil
}

func (x *GroupChanges_GroupChangeState) GetGroupState() *Group {
	if x != nil {
		return x.GroupState
	}
	return nil
}

var File_Groups_proto protoreflect.FileDescriptor

const file_Groups_proto_rawDesc = "" +
	"\n" +
	"\fGroups.proto\x12\x06signal\"\xc4\x01\n" +
	"\x16AvatarUploadAttributes\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x1e\n" +
	"\n" +
	"credential\x18\x02 \x01(\tR\n" +
	"credential\x12\x10\n" +
	"\x03acl\x18\x03 \x01(\tR\x03acl\x12\x1c\n" +
	"\talgorithm\x18\x04 \x01(\tR\talgorithm\x12\x12\n" +
	"\x04date\x18\x05 \x01(\tR\x04date\x12\x16\n" +
	"\x06policy\x18\x06 \x01(\tR\x06policy\x12\x1c\n" +
	"\tsignature\x18\a \x01(\tR\tsignature\"\xae\x02\n" +
	"\x06Member\x12\x16\n" +
	"\x06userId\x18\x01 \x01(\fR\x06userId\x12'\n" +
	"\x04role\x18\x02 \x01(\x0e2\x13.signal.Member.RoleR\x04role\x12\x1e\n" +
	"\n" +
	"profileKey\x18\x03 \x01(\fR\n" +
	"profileKey\x12\"\n" +
	"\fpresentation\x18\x04 \x01(\fR\fpresentation\x12(\n" +
	"\x0fjoinedAtVersion\x18\x05 \x01(\rR\x0fjoinedAtVersion\x12\x1e\n" +
	"\n" +
	"labelEmoji\x18\x06 \x01(\fR\n" +
	"labelEmoji\x12 \n" +
	"\vlabelString\x18\a \x01(\fR\vlabelString\"3\n" +
	"\x04Role\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\v\n" +
	"\aDEFAULT\x10\x01\x12\x11\n" +
	"\rADMINISTRATOR\x10\x02\"\x85\x01\n" +
	"\x17MemberPendingProfileKey\x12&\n" +
	"\x06member\x18\x01 \x01(\v2\x0e.signal.MemberR\x06member\x12$\n" +
	"\raddedByUserId\x18\x02 \x01(\fR\raddedByUserId\x12\x1c\n" +
	"\ttimestamp\x18\x03 \x01(\x04R\ttimestamp\"\x96\x01\n" +
	"\x1aMemberPendingAdminApproval\x12\x16\n" +
	"\x06userId\x18\x01 \x01(\fR\x06userId\x12\x1e\n" +
	"\n" +
	"profileKey\x18\x02 \x01(\fR\n" +
	"profileKey\x12\"\n" +
	"\fpresentation\x18\x03 \x01(\fR\fpresentation\x12\x1c\n" +
	"\ttimestamp\x18\x04 \x01(\x04R\ttimestamp\"D\n" +
	"\fMemberBanned\x12\x16\n" +
	"\x06userId\x18\x01 \x01(\fR\x06userId\x12\x1c\n" +
	"\ttimestamp\x18\x02 \x01(\x04R\ttimestamp\"\xc3\x02\n" +
	"\rAccessControl\x12D\n" +
	"\n" +
	"attributes\x18\x01 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\n" +
	"attributes\x12>\n" +
	"\amembers\x18\x02 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\amembers\x12R\n" +
	"\x11addFromInviteLink\x18\x03 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\x11addFromInviteLink\"X\n" +
	"\x0eAccessRequired\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\a\n" +
	"\x03ANY\x10\x01\x12\n" +
	"\n" +
	"\x06MEMBER\x10\x02\x12\x11\n" +
	"\rADMINISTRATOR\x10\x03\x12\x11\n" +
	"\rUNSATISFIABLE\x10\x04\"\x99\x05\n" +
	"\x05Group\x12\x1c\n" +
	"\tpublicKey\x18\x01 \x01(\fR\tpublicKey\x12\x14\n" +
	"\x05title\x18\x02 \x01(\fR\x05title\x12 \n" +
	"\vdescription\x18\v \x01(\fR\vdescription\x12\x1c\n" +
	"\tavatarUrl\x18\x03 \x01(\tR\tavatarUrl\x12<\n" +
	"\x19disappearingMessagesTimer\x18\x04 \x01(\fR\x19disappearingMessagesTimer\x12;\n" +
	"\raccessControl\x18\x05 \x01(\v2\x15.signal.AccessControlR\raccessControl\x12\x18\n" +
	"\aversion\x18\x06 \x01(\rR\aversion\x12(\n" +
	"\amembers\x18\a \x03(\v2\x0e.signal.MemberR\amembers\x12[\n" +
	"\x18membersPendingProfileKey\x18\b \x03(\v2\x1f.signal.MemberPendingProfileKeyR\x18membersPendingProfileKey\x12d\n" +
	"\x1bmembersPendingAdminApproval\x18\t \x03(\v2\".signal.MemberPendingAdminApprovalR\x1bmembersPendingAdminApproval\x12.\n" +
	"\x12inviteLinkPassword\x18\n" +
	" \x01(\fR\x12inviteLinkPassword\x12-\n" +
	"\x12announcements_only\x18\f \x01(\bR\x11announcementsOnly\x12;\n" +
	"\x0emembers_banned\x18\r \x03(\v2\x14.signal.MemberBannedR\rmembersBanned\"\xc3\x01\n" +
	"\x12GroupAttributeBlob\x12\x16\n" +
	"\x05title\x18\x01 \x01(\tH\x00R\x05title\x12\x18\n" +
	"\x06avatar\x18\x02 \x01(\fH\x00R\x06avatar\x12D\n" +
	"\x1cdisappearingMessagesDuration\x18\x03 \x01(\rH\x00R\x1cdisappearingMessagesDuration\x12*\n" +
	"\x0fdescriptionText\x18\x04 \x01(\tH\x00R\x0fdescriptionTextB\t\n" +
	"\acontent\"\xe7\x01\n" +
	"\x0fGroupInviteLink\x12S\n" +
	"\n" +
	"contentsV1\x18\x01 \x01(\v21.signal.GroupInviteLink.GroupInviteLinkContentsV1H\x00R\n" +
	"contentsV1\x1as\n" +
	"\x19GroupInviteLinkContentsV1\x12&\n" +
	"\x0egroupMasterKey\x18\x01 \x01(\fR\x0egroupMasterKey\x12.\n" +
	"\x12inviteLinkPassword\x18\x02 \x01(\fR\x12inviteLinkPasswordB\n" +
	"\n" +
	"\bcontents\"\xc1\x02\n" +
	"\rGroupJoinInfo\x12\x1c\n" +
	"\tpublicKey\x18\x01 \x01(\fR\tpublicKey\x12\x14\n" +
	"\x05title\x18\x02 \x01(\fR\x05title\x12 \n" +
	"\vdescription\x18\b \x01(\fR\vdescription\x12\x16\n" +
	"\x06avatar\x18\x03 \x01(\tR\x06avatar\x12 \n" +
	"\vmemberCount\x18\x04 \x01(\rR\vmemberCount\x12R\n" +
	"\x11addFromInviteLink\x18\x05 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\x11addFromInviteLink\x12\x18\n" +
	"\aversion\x18\x06 \x01(\rR\aversion\x122\n" +
	"\x14pendingAdminApproval\x18\a \x01(\bR\x14pendingAdminApproval\"\xbb'\n" +
	"\vGroupChange\x12\x18\n" +
	"\aactions\x18\x01 \x01(\fR\aactions\x12(\n" +
	"\x0fserverSignature\x18\x02 \x01(\fR\x0fserverSignature\x12 \n" +
	"\vchangeEpoch\x18\x03 \x01(\rR\vchangeEpoch\x1a\xc5&\n" +
	"\aActions\x12\"\n" +
	"\fsourceUserId\x18\x01 \x01(\fR\fsourceUserId\x12\x19\n" +
	"\bgroup_id\x18\x19 \x01(\fR\agroupId\x12\x18\n" +
	"\aversion\x18\x02 \x01(\rR\aversion\x12K\n" +
	"\n" +
	"addMembers\x18\x03 \x03(\v2+.signal.GroupChange.Actions.AddMemberActionR\n" +
	"addMembers\x12T\n" +
	"\rdeleteMembers\x18\x04 \x03(\v2..signal.GroupChange.Actions.DeleteMemberActionR\rdeleteMembers\x12`\n" +
	"\x11modifyMemberRoles\x18\x05 \x03(\v22.signal.GroupChange.Actions.ModifyMemberRoleActionR\x11modifyMemberRoles\x12r\n" +
	"\x17modifyMemberProfileKeys\x18\x06 \x03(\v28.signal.GroupChange.Actions.ModifyMemberProfileKeyActionR\x17modifyMemberProfileKeys\x12~\n" +
	"\x1baddMembersPendingProfileKey\x18\a \x03(\v2<.signal.GroupChange.Actions.AddMemberPendingProfileKeyActionR\x1baddMembersPendingProfileKey\x12\x87\x01\n" +
	"\x1edeleteMembersPendingProfileKey\x18\b \x03(\v2?.signal.GroupChange.Actions.DeleteMemberPendingProfileKeyActionR\x1edeleteMembersPendingProfileKey\x12\x8a\x01\n" +
	"\x1fpromoteMembersPendingProfileKey\x18\t \x03(\v2@.signal.GroupChange.Actions.PromoteMemberPendingProfileKeyActionR\x1fpromoteMembersPendingProfileKey\x12O\n" +
	"\vmodifyTitle\x18\n" +
	" \x01(\v2-.signal.GroupChange.Actions.ModifyTitleActionR\vmodifyTitle\x12R\n" +
	"\fmodifyAvatar\x18\v \x01(\v2..signal.GroupChange.Actions.ModifyAvatarActionR\fmodifyAvatar\x12\x88\x01\n" +
	"\x1emodifyDisappearingMessageTimer\x18\f \x01(\v2@.signal.GroupChange.Actions.ModifyDisappearingMessageTimerActionR\x1emodifyDisappearingMessageTimer\x12w\n" +
	"\x16modifyAttributesAccess\x18\r \x01(\v2?.signal.GroupChange.Actions.ModifyAttributesAccessControlActionR\x16modifyAttributesAccess\x12l\n" +
	"\x12modifyMemberAccess\x18\x0e \x01(\v2<.signal.GroupChange.Actions.ModifyMembersAccessControlActionR\x12modifyMemberAccess\x12\x8c\x01\n" +
	"\x1dmodifyAddFromInviteLinkAccess\x18\x0f \x01(\v2F.signal.GroupChange.Actions.ModifyAddFromInviteLinkAccessControlActionR\x1dmodifyAddFromInviteLinkAccess\x12\x87\x01\n" +
	"\x1eaddMembersPendingAdminApproval\x18\x10 \x03(\v2?.signal.GroupChange.Actions.AddMemberPendingAdminApprovalActionR\x1eaddMembersPendingAdminApproval\x12\x90\x01\n" +
	"!deleteMembersPendingAdminApproval\x18\x11 \x03(\v2B.signal.GroupChange.Actions.DeleteMemberPendingAdminApprovalActionR!deleteMembersPendingAdminApproval\x12\x93\x01\n" +
	"\"promoteMembersPendingAdminApproval\x18\x12 \x03(\v2C.signal.GroupChange.Actions.PromoteMemberPendingAdminApprovalActionR\"promoteMembersPendingAdminApproval\x12v\n" +
	"\x18modifyInviteLinkPassword\x18\x13 \x01(\v2:.signal.GroupChange.Actions.ModifyInviteLinkPasswordActionR\x18modifyInviteLinkPassword\x12a\n" +
	"\x11modifyDescription\x18\x14 \x01(\v23.signal.GroupChange.Actions.ModifyDescriptionActionR\x11modifyDescription\x12u\n" +
	"\x19modify_announcements_only\x18\x15 \x01(\v29.signal.GroupChange.Actions.ModifyAnnouncementsOnlyActionR\x17modifyAnnouncementsOnly\x12_\n" +
	"\x12add_members_banned\x18\x16 \x03(\v21.signal.GroupChange.Actions.AddMemberBannedActionR\x10addMembersBanned\x12h\n" +
	"\x15delete_members_banned\x18\x17 \x03(\v24.signal.GroupChange.Actions.DeleteMemberBannedActionR\x13deleteMembersBanned\x12\xa2\x01\n" +
	"+promote_members_pending_pni_aci_profile_key\x18\x18 \x03(\v2F.signal.GroupChange.Actions.PromoteMemberPendingPniAciProfileKeyActionR%promoteMembersPendingPniAciProfileKey\x12c\n" +
	"\x12modifyMemberLabels\x18\x1a \x03(\v23.signal.GroupChange.Actions.ModifyMemberLabelActionR\x12modifyMemberLabels\x1ag\n" +
	"\x0fAddMemberAction\x12$\n" +
	"\x05added\x18\x01 \x01(\v2\x0e.signal.MemberR\x05added\x12.\n" +
	"\x12joinFromInviteLink\x18\x02 \x01(\bR\x12joinFromInviteLink\x1a:\n" +
	"\x12DeleteMemberAction\x12$\n" +
	"\rdeletedUserId\x18\x01 \x01(\fR\rdeletedUserId\x1aY\n" +
	"\x16ModifyMemberRoleAction\x12\x16\n" +
	"\x06userId\x18\x01 \x01(\fR\x06userId\x12'\n" +
	"\x04role\x18\x02 \x01(\x0e2\x13.signal.Member.RoleR\x04role\x1as\n" +
	"\x17ModifyMemberLabelAction\x12\x16\n" +
	"\x06userId\x18\x01 \x01(\fR\x06userId\x12\x1e\n" +
	"\n" +
	"labelEmoji\x18\x02 \x01(\fR\n" +
	"labelEmoji\x12 \n" +
	"\vlabelString\x18\x03 \x01(\fR\vlabelString\x1a|\n" +
	"\x1cModifyMemberProfileKeyAction\x12\"\n" +
	"\fpresentation\x18\x01 \x01(\fR\fpresentation\x12\x17\n" +
	"\auser_id\x18\x02 \x01(\fR\x06userId\x12\x1f\n" +
	"\vprofile_key\x18\x03 \x01(\fR\n" +
	"profileKey\x1aY\n" +
	" AddMemberPendingProfileKeyAction\x125\n" +
	"\x05added\x18\x01 \x01(\v2\x1f.signal.MemberPendingProfileKeyR\x05added\x1aK\n" +
	"#DeleteMemberPendingProfileKeyAction\x12$\n" +
	"\rdeletedUserId\x18\x01 \x01(\fR\rdeletedUserId\x1a\x84\x01\n" +
	"$PromoteMemberPendingProfileKeyAction\x12\"\n" +
	"\fpresentation\x18\x01 \x01(\fR\fpresentation\x12\x17\n" +
	"\auser_id\x18\x02 \x01(\fR\x06userId\x12\x1f\n" +
	"\vprofile_key\x18\x03 \x01(\fR\n" +
	"profileKey\x1a\x9c\x01\n" +
	"*PromoteMemberPendingPniAciProfileKeyAction\x12\"\n" +
	"\fpresentation\x18\x01 \x01(\fR\fpresentation\x12\x17\n" +
	"\auser_id\x18\x02 \x01(\fR\x06userId\x12\x10\n" +
	"\x03pni\x18\x03 \x01(\fR\x03pni\x12\x1f\n" +
	"\vprofile_key\x18\x04 \x01(\fR\n" +
	"profileKey\x1a_\n" +
	"#AddMemberPendingAdminApprovalAction\x128\n" +
	"\x05added\x18\x01 \x01(\v2\".signal.MemberPendingAdminApprovalR\x05added\x1aN\n" +
	"&DeleteMemberPendingAdminApprovalAction\x12$\n" +
	"\rdeletedUserId\x18\x01 \x01(\fR\rdeletedUserId\x1aj\n" +
	"'PromoteMemberPendingAdminApprovalAction\x12\x16\n" +
	"\x06userId\x18\x01 \x01(\fR\x06userId\x12'\n" +
	"\x04role\x18\x02 \x01(\x0e2\x13.signal.Member.RoleR\x04role\x1aC\n" +
	"\x15AddMemberBannedAction\x12*\n" +
	"\x05added\x18\x01 \x01(\v2\x14.signal.MemberBannedR\x05added\x1a@\n" +
	"\x18DeleteMemberBannedAction\x12$\n" +
	"\rdeletedUserId\x18\x01 \x01(\fR\rdeletedUserId\x1a)\n" +
	"\x11ModifyTitleAction\x12\x14\n" +
	"\x05title\x18\x01 \x01(\fR\x05title\x1a;\n" +
	"\x17ModifyDescriptionAction\x12 \n" +
	"\vdescription\x18\x01 \x01(\fR\vdescription\x1a,\n" +
	"\x12ModifyAvatarAction\x12\x16\n" +
	"\x06avatar\x18\x01 \x01(\tR\x06avatar\x1a<\n" +
	"$ModifyDisappearingMessageTimerAction\x12\x14\n" +
	"\x05timer\x18\x01 \x01(\fR\x05timer\x1aw\n" +
	"#ModifyAttributesAccessControlAction\x12P\n" +
	"\x10attributesAccess\x18\x01 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\x10attributesAccess\x1an\n" +
	" ModifyMembersAccessControlAction\x12J\n" +
	"\rmembersAccess\x18\x01 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\rmembersAccess\x1a\x8c\x01\n" +
	"*ModifyAddFromInviteLinkAccessControlAction\x12^\n" +
	"\x17addFromInviteLinkAccess\x18\x01 \x01(\x0e2$.signal.AccessControl.AccessRequiredR\x17addFromInviteLinkAccess\x1aP\n" +
	"\x1eModifyInviteLinkPasswordAction\x12.\n" +
	"\x12inviteLinkPassword\x18\x01 \x01(\fR\x12inviteLinkPassword\x1aN\n" +
	"\x1dModifyAnnouncementsOnlyAction\x12-\n" +
	"\x12announcements_only\x18\x01 \x01(\bR\x11announcementsOnly\"/\n" +
	"\x17ExternalGroupCredential\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"}\n" +
	"\rGroupResponse\x12#\n" +
	"\x05group\x18\x01 \x01(\v2\r.signal.GroupR\x05group\x12G\n" +
	" group_send_endorsements_response\x18\x02 \x01(\fR\x1dgroupSendEndorsementsResponse\"\x9c\x02\n" +
	"\fGroupChanges\x12I\n" +
	"\fgroupChanges\x18\x01 \x03(\v2%.signal.GroupChanges.GroupChangeStateR\fgroupChanges\x12G\n" +
	" group_send_endorsements_response\x18\x02 \x01(\fR\x1dgroupSendEndorsementsResponse\x1ax\n" +
	"\x10GroupChangeState\x125\n" +
	"\vgroupChange\x18\x01 \x01(\v2\x13.signal.GroupChangeR\vgroupChange\x12-\n" +
	"\n" +
	"groupState\x18\x02 \x01(\v2\r.signal.GroupR\n" +
	"groupState\"\x96\x01\n" +
	"\x13GroupChangeResponse\x126\n" +
	"\fgroup_change\x18\x01 \x01(\v2\x13.signal.GroupChangeR\vgroupChange\x12G\n" +
	" group_send_endorsements_response\x18\x02 \x01(\fR\x1dgroupSendEndorsementsResponseB@\n" +
	"/org.signal.storageservice.storage.protos.groupsB\vGroupProtosP\x01b\x06proto3"

var (
	file_Groups_proto_rawDescOnce sync.Once
	file_Groups_proto_rawDescData []byte
)

func file_Groups_proto_rawDescGZIP() []byte {
	file_Groups_proto_rawDescOnce.Do(func() {
		file_Groups_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_Groups_proto_rawDesc), len(file_Groups_proto_rawDesc)))
	})
	return file_Groups_proto_rawDescData
}

var file_Groups_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_Groups_proto_msgTypes = make([]protoimpl.MessageInfo, 41)
var file_Groups_proto_goTypes = []any{
	(Member_Role)(0),                                                       // 0: signal.Member.Role
	(AccessControl_AccessRequired)(0),                                      // 1: signal.AccessControl.AccessRequired
	(*AvatarUploadAttributes)(nil),                                         // 2: signal.AvatarUploadAttributes
	(*Member)(nil),                                                         // 3: signal.Member
	(*MemberPendingProfileKey)(nil),                                        // 4: signal.MemberPendingProfileKey
	(*MemberPendingAdminApproval)(nil),                                     // 5: signal.MemberPendingAdminApproval
	(*MemberBanned)(nil),                                                   // 6: signal.MemberBanned
	(*AccessControl)(nil),                                                  // 7: signal.AccessControl
	(*Group)(nil),                                                          // 8: signal.Group
	(*GroupAttributeBlob)(nil),                                             // 9: signal.GroupAttributeBlob
	(*GroupInviteLink)(nil),                                                // 10: signal.GroupInviteLink
	(*GroupJoinInfo)(nil),                                                  // 11: signal.GroupJoinInfo
	(*GroupChange)(nil),                                                    // 12: signal.GroupChange
	(*ExternalGroupCredential)(nil),                                        // 13: signal.ExternalGroupCredential
	(*GroupResponse)(nil),                                                  // 14: signal.GroupResponse
	(*GroupChanges)(nil),                                                   // 15: signal.GroupChanges
	(*GroupChangeResponse)(nil),                                            // 16: signal.GroupChangeResponse
	(*GroupInviteLink_GroupInviteLinkContentsV1)(nil),                      // 17: signal.GroupInviteLink.GroupInviteLinkContentsV1
	(*GroupChange_Actions)(nil),                                            // 18: signal.GroupChange.Actions
	(*GroupChange_Actions_AddMemberAction)(nil),                            // 19: signal.GroupChange.Actions.AddMemberAction
	(*GroupChange_Actions_DeleteMemberAction)(nil),                         // 20: signal.GroupChange.Actions.DeleteMemberAction
	(*GroupChange_Actions_ModifyMemberRoleAction)(nil),                     // 21: signal.GroupChange.Actions.ModifyMemberRoleAction
	(*GroupChange_Actions_ModifyMemberLabelAction)(nil),                    // 22: signal.GroupChange.Actions.ModifyMemberLabelAction
	(*GroupChange_Actions_ModifyMemberProfileKeyAction)(nil),               // 23: signal.GroupChange.Actions.ModifyMemberProfileKeyAction
	(*GroupChange_Actions_AddMemberPendingProfileKeyAction)(nil),           // 24: signal.GroupChange.Actions.AddMemberPendingProfileKeyAction
	(*GroupChange_Actions_DeleteMemberPendingProfileKeyAction)(nil),        // 25: signal.GroupChange.Actions.DeleteMemberPendingProfileKeyAction
	(*GroupChange_Actions_PromoteMemberPendingProfileKeyAction)(nil),       // 26: signal.GroupChange.Actions.PromoteMemberPendingProfileKeyAction
	(*GroupChange_Actions_PromoteMemberPendingPniAciProfileKeyAction)(nil), // 27: signal.GroupChange.Actions.PromoteMemberPendingPniAciProfileKeyAction
	(*GroupChange_Actions_AddMemberPendingAdminApprovalAction)(nil),        // 28: signal.GroupChange.Actions.AddMemberPendingAdminApprovalAction
	(*GroupChange_Actions_DeleteMemberPendingAdminApprovalAction)(nil),     // 29: signal.GroupChange.Actions.DeleteMemberPendingAdminApprovalAction
	(*GroupChange_Actions_PromoteMemberPendingAdminApprovalAction)(nil),    // 30: signal.GroupChange.Actions.PromoteMemberPendingAdminApprovalAction
	(*GroupChange_Actions_AddMemberBannedAction)(nil),                      // 31: signal.GroupChange.Actions.AddMemberBannedAction
	(*GroupChange_Actions_DeleteMemberBannedAction)(nil),                   // 32: signal.GroupChange.Actions.DeleteMemberBannedAction
	(*GroupChange_Actions_ModifyTitleAction)(nil),                          // 33: signal.GroupChange.Actions.ModifyTitleAction
	(*GroupChange_Actions_ModifyDescriptionAction)(nil),                    // 34: signal.GroupChange.Actions.ModifyDescriptionAction
	(*GroupChange_Actions_ModifyAvatarAction)(nil),                         // 35: signal.GroupChange.Actions.ModifyAvatarAction
	(*GroupChange_Actions_ModifyDisappearingMessageTimerAction)(nil),       // 36: signal.GroupChange.Actions.ModifyDisappearingMessageTimerAction
	(*GroupChange_Actions_ModifyAttributesAccessControlAction)(nil),        // 37: signal.GroupChange.Actions.ModifyAttributesAccessControlAction
	(*GroupChange_Actions_ModifyMembersAccessControlAction)(nil),           // 38: signal.GroupChange.Actions.ModifyMembersAccessControlAction
	(*GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction)(nil), // 39: signal.GroupChange.Actions.ModifyAddFromInviteLinkAccessControlAction
	(*GroupChange_Actions_ModifyInviteLinkPasswordAction)(nil),             // 40: signal.GroupChange.Actions.ModifyInviteLinkPasswordAction
	(*GroupChange_Actions_ModifyAnnouncementsOnlyAction)(nil),              // 41: signal.GroupChange.Actions.ModifyAnnouncementsOnlyAction
	(*GroupChanges_GroupChangeState)(nil),                                  // 42: signal.GroupChanges.GroupChangeState
}
var file_Groups_proto_depIdxs = []int32{
	0,  // 0: signal.Member.role:type_name -> signal.Member.Role
	3,  // 1: signal.MemberPendingProfileKey.member:type_name -> signal.Member
	1,  // 2: signal.AccessControl.attributes:type_name -> signal.AccessControl.AccessRequired
	1,  // 3: signal.AccessControl.members:type_name -> signal.AccessControl.AccessRequired
	1,  // 4: signal.AccessControl.addFromInviteLink:type_name -> signal.AccessControl.AccessRequired
	7,  // 5: signal.Group.accessControl:type_name -> signal.AccessControl
	3,  // 6: signal.Group.members:type_name -> signal.Member
	4,  // 7: signal.Group.membersPendingProfileKey:type_name -> signal.MemberPendingProfileKey
	5,  // 8: signal.Group.membersPendingAdminApproval:type_name -> signal.MemberPendingAdminApproval
	6,  // 9: signal.Group.members_banned:type_name -> signal.MemberBanned
	17, // 10: signal.GroupInviteLink.contentsV1:type_name -> signal.GroupInviteLink.GroupInviteLinkContentsV1
	1,  // 11: signal.GroupJoinInfo.addFromInviteLink:type_name -> signal.AccessControl.AccessRequired
	8,  // 12: signal.GroupResponse.group:type_name -> signal.Group
	42, // 13: signal.GroupChanges.groupChanges:type_name -> signal.GroupChanges.GroupChangeState
	12, // 14: signal.GroupChangeResponse.group_change:type_name -> signal.GroupChange
	19, // 15: signal.GroupChange.Actions.addMembers:type_name -> signal.GroupChange.Actions.AddMemberAction
	20, // 16: signal.GroupChange.Actions.deleteMembers:type_name -> signal.GroupChange.Actions.DeleteMemberAction
	21, // 17: signal.GroupChange.Actions.modifyMemberRoles:type_name -> signal.GroupChange.Actions.ModifyMemberRoleAction
	23, // 18: signal.GroupChange.Actions.modifyMemberProfileKeys:type_name -> signal.GroupChange.Actions.ModifyMemberProfileKeyAction
	24, // 19: signal.GroupChange.Actions.addMembersPendingProfileKey:type_name -> signal.GroupChange.Actions.AddMemberPendingProfileKeyAction
	25, // 20: signal.GroupChange.Actions.deleteMembersPendingProfileKey:type_name -> signal.GroupChange.Actions.DeleteMemberPendingProfileKeyAction
	26, // 21: signal.GroupChange.Actions.promoteMembersPendingProfileKey:type_name -> signal.GroupChange.Actions.PromoteMemberPendingProfileKeyAction
	33, // 22: signal.GroupChange.Actions.modifyTitle:type_name -> signal.GroupChange.Actions.ModifyTitleAction
	35, // 23: signal.GroupChange.Actions.modifyAvatar:type_name -> signal.GroupChange.Actions.ModifyAvatarAction
	36, // 24: signal.GroupChange.Actions.modifyDisappearingMessageTimer:type_name -> signal.GroupChange.Actions.ModifyDisappearingMessageTimerAction
	37, // 25: signal.GroupChange.Actions.modifyAttributesAccess:type_name -> signal.GroupChange.Actions.ModifyAttributesAccessControlAction
	38, // 26: signal.GroupChange.Actions.modifyMemberAccess:type_name -> signal.GroupChange.Actions.ModifyMembersAccessControlAction
	39, // 27: signal.GroupChange.Actions.modifyAddFromInviteLinkAccess:type_name -> signal.GroupChange.Actions.ModifyAddFromInviteLinkAccessControlAction
	28, // 28: signal.GroupChange.Actions.addMembersPendingAdminApproval:type_name -> signal.GroupChange.Actions.AddMemberPendingAdminApprovalAction
	29, // 29: signal.GroupChange.Actions.deleteMembersPendingAdminApproval:type_name -> signal.GroupChange.Actions.DeleteMemberPendingAdminApprovalAction
	30, // 30: signal.GroupChange.Actions.promoteMembersPendingAdminApproval:type_name -> signal.GroupChange.Actions.PromoteMemberPendingAdminApprovalAction
	40, // 31: signal.GroupChange.Actions.modifyInviteLinkPassword:type_name -> signal.GroupChange.Actions.ModifyInviteLinkPasswordAction
	34, // 32: signal.GroupChange.Actions.modifyDescription:type_name -> signal.GroupChange.Actions.ModifyDescriptionAction
	41, // 33: signal.GroupChange.Actions.modify_announcements_only:type_name -> signal.GroupChange.Actions.ModifyAnnouncementsOnlyAction
	31, // 34: signal.GroupChange.Actions.add_members_banned:type_name -> signal.GroupChange.Actions.AddMemberBannedAction
	32, // 35: signal.GroupChange.Actions.delete_members_banned:type_name -> signal.GroupChange.Actions.DeleteMemberBannedAction
	27, // 36: signal.GroupChange.Actions.promote_members_pending_pni_aci_profile_key:type_name -> signal.GroupChange.Actions.PromoteMemberPendingPniAciProfileKeyAction
	22, // 37: signal.GroupChange.Actions.modifyMemberLabels:type_name -> signal.GroupChange.Actions.ModifyMemberLabelAction
	3,  // 38: signal.GroupChange.Actions.AddMemberAction.added:type_name -> signal.Member
	0,  // 39: signal.GroupChange.Actions.ModifyMemberRoleAction.role:type_name -> signal.Member.Role
	4,  // 40: signal.GroupChange.Actions.AddMemberPendingProfileKeyAction.added:type_name -> signal.MemberPendingProfileKey
	5,  // 41: signal.GroupChange.Actions.AddMemberPendingAdminApprovalAction.added:type_name -> signal.MemberPendingAdminApproval
	0,  // 42: signal.GroupChange.Actions.PromoteMemberPendingAdminApprovalAction.role:type_name -> signal.Member.Role
	6,  // 43: signal.GroupChange.Actions.AddMemberBannedAction.added:type_name -> signal.MemberBanned
	1,  // 44: signal.GroupChange.Actions.ModifyAttributesAccessControlAction.attributesAccess:type_name -> signal.AccessControl.AccessRequired
	1,  // 45: signal.GroupChange.Actions.ModifyMembersAccessControlAction.membersAccess:type_name -> signal.AccessControl.AccessRequired
	1,  // 46: signal.GroupChange.Actions.ModifyAddFromInviteLinkAccessControlAction.addFromInviteLinkAccess:type_name -> signal.AccessControl.AccessRequired
	12, // 47: signal.GroupChanges.GroupChangeState.groupChange:type_name -> signal.GroupChange
	8,  // 48: signal.GroupChanges.GroupChangeState.groupState:type_name -> signal.Group
	49, // [49:49] is the sub-list for method output_type
	49, // [49:49] is the sub-list for method input_type
	49, // [49:49] is the sub-list for extension type_name
	49, // [49:49] is the sub-list for extension extendee
	0,  // [0:49] is the sub-list for field type_name
}

func init() { file_Groups_proto_init() }
func file_Groups_proto_init() {
	if File_Groups_proto != nil {
		return
	}
	file_Groups_proto_msgTypes[7].OneofWrappers = []any{
		(*GroupAttributeBlob_Title)(nil),
		(*GroupAttributeBlob_Avatar)(nil),
		(*GroupAttributeBlob_DisappearingMessagesDuration)(nil),
		(*GroupAttributeBlob_DescriptionText)(nil),
	}
	file_Groups_proto_msgTypes[8].OneofWrappers = []any{
		(*GroupInviteLink_ContentsV1)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_Groups_proto_rawDesc), len(file_Groups_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   41,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_Groups_proto_goTypes,
		DependencyIndexes: file_Groups_proto_depIdxs,
		EnumInfos:         file_Groups_proto_enumTypes,
		MessageInfos:      file_Groups_proto_msgTypes,
	}.Build()
	File_Groups_proto = out.File
	file_Groups_proto_goTypes = nil
	file_Groups_proto_depIdxs = nil
}
