github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/protocol/chat1/common.go (about)

     1  // Auto-generated to Go types and interfaces using avdl-compiler v1.4.10 (https://github.com/keybase/node-avdl-compiler)
     2  //   Input file: avdl/chat1/common.avdl
     3  
     4  package chat1
     5  
     6  import (
     7  	"errors"
     8  	"fmt"
     9  	gregor1 "github.com/keybase/client/go/protocol/gregor1"
    10  	keybase1 "github.com/keybase/client/go/protocol/keybase1"
    11  	stellar1 "github.com/keybase/client/go/protocol/stellar1"
    12  	"github.com/keybase/go-framed-msgpack-rpc/rpc"
    13  )
    14  
    15  type ThreadID []byte
    16  
    17  func (o ThreadID) DeepCopy() ThreadID {
    18  	return (func(x []byte) []byte {
    19  		if x == nil {
    20  			return nil
    21  		}
    22  		return append([]byte{}, x...)
    23  	})(o)
    24  }
    25  
    26  type MessageID uint
    27  
    28  func (o MessageID) DeepCopy() MessageID {
    29  	return o
    30  }
    31  
    32  type TLFConvOrdinal uint
    33  
    34  func (o TLFConvOrdinal) DeepCopy() TLFConvOrdinal {
    35  	return o
    36  }
    37  
    38  type TopicID []byte
    39  
    40  func (o TopicID) DeepCopy() TopicID {
    41  	return (func(x []byte) []byte {
    42  		if x == nil {
    43  			return nil
    44  		}
    45  		return append([]byte{}, x...)
    46  	})(o)
    47  }
    48  
    49  type ConversationID []byte
    50  
    51  func (o ConversationID) DeepCopy() ConversationID {
    52  	return (func(x []byte) []byte {
    53  		if x == nil {
    54  			return nil
    55  		}
    56  		return append([]byte{}, x...)
    57  	})(o)
    58  }
    59  
    60  type TLFID []byte
    61  
    62  func (o TLFID) DeepCopy() TLFID {
    63  	return (func(x []byte) []byte {
    64  		if x == nil {
    65  			return nil
    66  		}
    67  		return append([]byte{}, x...)
    68  	})(o)
    69  }
    70  
    71  type Hash []byte
    72  
    73  func (o Hash) DeepCopy() Hash {
    74  	return (func(x []byte) []byte {
    75  		if x == nil {
    76  			return nil
    77  		}
    78  		return append([]byte{}, x...)
    79  	})(o)
    80  }
    81  
    82  type InboxVers uint64
    83  
    84  func (o InboxVers) DeepCopy() InboxVers {
    85  	return o
    86  }
    87  
    88  type LocalConversationVers uint64
    89  
    90  func (o LocalConversationVers) DeepCopy() LocalConversationVers {
    91  	return o
    92  }
    93  
    94  type ConversationVers uint64
    95  
    96  func (o ConversationVers) DeepCopy() ConversationVers {
    97  	return o
    98  }
    99  
   100  type OutboxID []byte
   101  
   102  func (o OutboxID) DeepCopy() OutboxID {
   103  	return (func(x []byte) []byte {
   104  		if x == nil {
   105  			return nil
   106  		}
   107  		return append([]byte{}, x...)
   108  	})(o)
   109  }
   110  
   111  type TopicNameState []byte
   112  
   113  func (o TopicNameState) DeepCopy() TopicNameState {
   114  	return (func(x []byte) []byte {
   115  		if x == nil {
   116  			return nil
   117  		}
   118  		return append([]byte{}, x...)
   119  	})(o)
   120  }
   121  
   122  type FlipGameID []byte
   123  
   124  func (o FlipGameID) DeepCopy() FlipGameID {
   125  	return (func(x []byte) []byte {
   126  		if x == nil {
   127  			return nil
   128  		}
   129  		return append([]byte{}, x...)
   130  	})(o)
   131  }
   132  
   133  type ArchiveJobID string
   134  
   135  func (o ArchiveJobID) DeepCopy() ArchiveJobID {
   136  	return o
   137  }
   138  
   139  type InboxVersInfo struct {
   140  	Uid  gregor1.UID `codec:"uid" json:"uid"`
   141  	Vers InboxVers   `codec:"vers" json:"vers"`
   142  }
   143  
   144  func (o InboxVersInfo) DeepCopy() InboxVersInfo {
   145  	return InboxVersInfo{
   146  		Uid:  o.Uid.DeepCopy(),
   147  		Vers: o.Vers.DeepCopy(),
   148  	}
   149  }
   150  
   151  type ConversationExistence int
   152  
   153  const (
   154  	ConversationExistence_ACTIVE    ConversationExistence = 0
   155  	ConversationExistence_ARCHIVED  ConversationExistence = 1
   156  	ConversationExistence_DELETED   ConversationExistence = 2
   157  	ConversationExistence_ABANDONED ConversationExistence = 3
   158  )
   159  
   160  func (o ConversationExistence) DeepCopy() ConversationExistence { return o }
   161  
   162  var ConversationExistenceMap = map[string]ConversationExistence{
   163  	"ACTIVE":    0,
   164  	"ARCHIVED":  1,
   165  	"DELETED":   2,
   166  	"ABANDONED": 3,
   167  }
   168  
   169  var ConversationExistenceRevMap = map[ConversationExistence]string{
   170  	0: "ACTIVE",
   171  	1: "ARCHIVED",
   172  	2: "DELETED",
   173  	3: "ABANDONED",
   174  }
   175  
   176  func (e ConversationExistence) String() string {
   177  	if v, ok := ConversationExistenceRevMap[e]; ok {
   178  		return v
   179  	}
   180  	return fmt.Sprintf("%v", int(e))
   181  }
   182  
   183  type ConversationMembersType int
   184  
   185  const (
   186  	ConversationMembersType_KBFS           ConversationMembersType = 0
   187  	ConversationMembersType_TEAM           ConversationMembersType = 1
   188  	ConversationMembersType_IMPTEAMNATIVE  ConversationMembersType = 2
   189  	ConversationMembersType_IMPTEAMUPGRADE ConversationMembersType = 3
   190  )
   191  
   192  func (o ConversationMembersType) DeepCopy() ConversationMembersType { return o }
   193  
   194  var ConversationMembersTypeMap = map[string]ConversationMembersType{
   195  	"KBFS":           0,
   196  	"TEAM":           1,
   197  	"IMPTEAMNATIVE":  2,
   198  	"IMPTEAMUPGRADE": 3,
   199  }
   200  
   201  var ConversationMembersTypeRevMap = map[ConversationMembersType]string{
   202  	0: "KBFS",
   203  	1: "TEAM",
   204  	2: "IMPTEAMNATIVE",
   205  	3: "IMPTEAMUPGRADE",
   206  }
   207  
   208  func (e ConversationMembersType) String() string {
   209  	if v, ok := ConversationMembersTypeRevMap[e]; ok {
   210  		return v
   211  	}
   212  	return fmt.Sprintf("%v", int(e))
   213  }
   214  
   215  type SyncInboxResType int
   216  
   217  const (
   218  	SyncInboxResType_CURRENT     SyncInboxResType = 0
   219  	SyncInboxResType_INCREMENTAL SyncInboxResType = 1
   220  	SyncInboxResType_CLEAR       SyncInboxResType = 2
   221  )
   222  
   223  func (o SyncInboxResType) DeepCopy() SyncInboxResType { return o }
   224  
   225  var SyncInboxResTypeMap = map[string]SyncInboxResType{
   226  	"CURRENT":     0,
   227  	"INCREMENTAL": 1,
   228  	"CLEAR":       2,
   229  }
   230  
   231  var SyncInboxResTypeRevMap = map[SyncInboxResType]string{
   232  	0: "CURRENT",
   233  	1: "INCREMENTAL",
   234  	2: "CLEAR",
   235  }
   236  
   237  func (e SyncInboxResType) String() string {
   238  	if v, ok := SyncInboxResTypeRevMap[e]; ok {
   239  		return v
   240  	}
   241  	return fmt.Sprintf("%v", int(e))
   242  }
   243  
   244  type MessageType int
   245  
   246  const (
   247  	MessageType_NONE               MessageType = 0
   248  	MessageType_TEXT               MessageType = 1
   249  	MessageType_ATTACHMENT         MessageType = 2
   250  	MessageType_EDIT               MessageType = 3
   251  	MessageType_DELETE             MessageType = 4
   252  	MessageType_METADATA           MessageType = 5
   253  	MessageType_TLFNAME            MessageType = 6
   254  	MessageType_HEADLINE           MessageType = 7
   255  	MessageType_ATTACHMENTUPLOADED MessageType = 8
   256  	MessageType_JOIN               MessageType = 9
   257  	MessageType_LEAVE              MessageType = 10
   258  	MessageType_SYSTEM             MessageType = 11
   259  	MessageType_DELETEHISTORY      MessageType = 12
   260  	MessageType_REACTION           MessageType = 13
   261  	MessageType_SENDPAYMENT        MessageType = 14
   262  	MessageType_REQUESTPAYMENT     MessageType = 15
   263  	MessageType_UNFURL             MessageType = 16
   264  	MessageType_FLIP               MessageType = 17
   265  	MessageType_PIN                MessageType = 18
   266  )
   267  
   268  func (o MessageType) DeepCopy() MessageType { return o }
   269  
   270  var MessageTypeMap = map[string]MessageType{
   271  	"NONE":               0,
   272  	"TEXT":               1,
   273  	"ATTACHMENT":         2,
   274  	"EDIT":               3,
   275  	"DELETE":             4,
   276  	"METADATA":           5,
   277  	"TLFNAME":            6,
   278  	"HEADLINE":           7,
   279  	"ATTACHMENTUPLOADED": 8,
   280  	"JOIN":               9,
   281  	"LEAVE":              10,
   282  	"SYSTEM":             11,
   283  	"DELETEHISTORY":      12,
   284  	"REACTION":           13,
   285  	"SENDPAYMENT":        14,
   286  	"REQUESTPAYMENT":     15,
   287  	"UNFURL":             16,
   288  	"FLIP":               17,
   289  	"PIN":                18,
   290  }
   291  
   292  var MessageTypeRevMap = map[MessageType]string{
   293  	0:  "NONE",
   294  	1:  "TEXT",
   295  	2:  "ATTACHMENT",
   296  	3:  "EDIT",
   297  	4:  "DELETE",
   298  	5:  "METADATA",
   299  	6:  "TLFNAME",
   300  	7:  "HEADLINE",
   301  	8:  "ATTACHMENTUPLOADED",
   302  	9:  "JOIN",
   303  	10: "LEAVE",
   304  	11: "SYSTEM",
   305  	12: "DELETEHISTORY",
   306  	13: "REACTION",
   307  	14: "SENDPAYMENT",
   308  	15: "REQUESTPAYMENT",
   309  	16: "UNFURL",
   310  	17: "FLIP",
   311  	18: "PIN",
   312  }
   313  
   314  type TopicType int
   315  
   316  const (
   317  	TopicType_NONE         TopicType = 0
   318  	TopicType_CHAT         TopicType = 1
   319  	TopicType_DEV          TopicType = 2
   320  	TopicType_KBFSFILEEDIT TopicType = 3
   321  	TopicType_EMOJI        TopicType = 4
   322  	TopicType_EMOJICROSS   TopicType = 5
   323  )
   324  
   325  func (o TopicType) DeepCopy() TopicType { return o }
   326  
   327  var TopicTypeMap = map[string]TopicType{
   328  	"NONE":         0,
   329  	"CHAT":         1,
   330  	"DEV":          2,
   331  	"KBFSFILEEDIT": 3,
   332  	"EMOJI":        4,
   333  	"EMOJICROSS":   5,
   334  }
   335  
   336  var TopicTypeRevMap = map[TopicType]string{
   337  	0: "NONE",
   338  	1: "CHAT",
   339  	2: "DEV",
   340  	3: "KBFSFILEEDIT",
   341  	4: "EMOJI",
   342  	5: "EMOJICROSS",
   343  }
   344  
   345  type TeamType int
   346  
   347  const (
   348  	TeamType_NONE    TeamType = 0
   349  	TeamType_SIMPLE  TeamType = 1
   350  	TeamType_COMPLEX TeamType = 2
   351  )
   352  
   353  func (o TeamType) DeepCopy() TeamType { return o }
   354  
   355  var TeamTypeMap = map[string]TeamType{
   356  	"NONE":    0,
   357  	"SIMPLE":  1,
   358  	"COMPLEX": 2,
   359  }
   360  
   361  var TeamTypeRevMap = map[TeamType]string{
   362  	0: "NONE",
   363  	1: "SIMPLE",
   364  	2: "COMPLEX",
   365  }
   366  
   367  func (e TeamType) String() string {
   368  	if v, ok := TeamTypeRevMap[e]; ok {
   369  		return v
   370  	}
   371  	return fmt.Sprintf("%v", int(e))
   372  }
   373  
   374  type NotificationKind int
   375  
   376  const (
   377  	NotificationKind_GENERIC   NotificationKind = 0
   378  	NotificationKind_ATMENTION NotificationKind = 1
   379  )
   380  
   381  func (o NotificationKind) DeepCopy() NotificationKind { return o }
   382  
   383  var NotificationKindMap = map[string]NotificationKind{
   384  	"GENERIC":   0,
   385  	"ATMENTION": 1,
   386  }
   387  
   388  var NotificationKindRevMap = map[NotificationKind]string{
   389  	0: "GENERIC",
   390  	1: "ATMENTION",
   391  }
   392  
   393  type GlobalAppNotificationSetting int
   394  
   395  const (
   396  	GlobalAppNotificationSetting_NEWMESSAGES        GlobalAppNotificationSetting = 0
   397  	GlobalAppNotificationSetting_PLAINTEXTMOBILE    GlobalAppNotificationSetting = 1
   398  	GlobalAppNotificationSetting_PLAINTEXTDESKTOP   GlobalAppNotificationSetting = 2
   399  	GlobalAppNotificationSetting_DEFAULTSOUNDMOBILE GlobalAppNotificationSetting = 3
   400  	GlobalAppNotificationSetting_DISABLETYPING      GlobalAppNotificationSetting = 4
   401  	GlobalAppNotificationSetting_CONVERTHEIC        GlobalAppNotificationSetting = 5
   402  )
   403  
   404  func (o GlobalAppNotificationSetting) DeepCopy() GlobalAppNotificationSetting { return o }
   405  
   406  var GlobalAppNotificationSettingMap = map[string]GlobalAppNotificationSetting{
   407  	"NEWMESSAGES":        0,
   408  	"PLAINTEXTMOBILE":    1,
   409  	"PLAINTEXTDESKTOP":   2,
   410  	"DEFAULTSOUNDMOBILE": 3,
   411  	"DISABLETYPING":      4,
   412  	"CONVERTHEIC":        5,
   413  }
   414  
   415  var GlobalAppNotificationSettingRevMap = map[GlobalAppNotificationSetting]string{
   416  	0: "NEWMESSAGES",
   417  	1: "PLAINTEXTMOBILE",
   418  	2: "PLAINTEXTDESKTOP",
   419  	3: "DEFAULTSOUNDMOBILE",
   420  	4: "DISABLETYPING",
   421  	5: "CONVERTHEIC",
   422  }
   423  
   424  func (e GlobalAppNotificationSetting) String() string {
   425  	if v, ok := GlobalAppNotificationSettingRevMap[e]; ok {
   426  		return v
   427  	}
   428  	return fmt.Sprintf("%v", int(e))
   429  }
   430  
   431  type GlobalAppNotificationSettings struct {
   432  	Settings map[GlobalAppNotificationSetting]bool `codec:"settings" json:"settings"`
   433  }
   434  
   435  func (o GlobalAppNotificationSettings) DeepCopy() GlobalAppNotificationSettings {
   436  	return GlobalAppNotificationSettings{
   437  		Settings: (func(x map[GlobalAppNotificationSetting]bool) map[GlobalAppNotificationSetting]bool {
   438  			if x == nil {
   439  				return nil
   440  			}
   441  			ret := make(map[GlobalAppNotificationSetting]bool, len(x))
   442  			for k, v := range x {
   443  				kCopy := k.DeepCopy()
   444  				vCopy := v
   445  				ret[kCopy] = vCopy
   446  			}
   447  			return ret
   448  		})(o.Settings),
   449  	}
   450  }
   451  
   452  type ConversationStatus int
   453  
   454  const (
   455  	ConversationStatus_UNFILED  ConversationStatus = 0
   456  	ConversationStatus_FAVORITE ConversationStatus = 1
   457  	ConversationStatus_IGNORED  ConversationStatus = 2
   458  	ConversationStatus_BLOCKED  ConversationStatus = 3
   459  	ConversationStatus_MUTED    ConversationStatus = 4
   460  	ConversationStatus_REPORTED ConversationStatus = 5
   461  )
   462  
   463  func (o ConversationStatus) DeepCopy() ConversationStatus { return o }
   464  
   465  var ConversationStatusMap = map[string]ConversationStatus{
   466  	"UNFILED":  0,
   467  	"FAVORITE": 1,
   468  	"IGNORED":  2,
   469  	"BLOCKED":  3,
   470  	"MUTED":    4,
   471  	"REPORTED": 5,
   472  }
   473  
   474  var ConversationStatusRevMap = map[ConversationStatus]string{
   475  	0: "UNFILED",
   476  	1: "FAVORITE",
   477  	2: "IGNORED",
   478  	3: "BLOCKED",
   479  	4: "MUTED",
   480  	5: "REPORTED",
   481  }
   482  
   483  func (e ConversationStatus) String() string {
   484  	if v, ok := ConversationStatusRevMap[e]; ok {
   485  		return v
   486  	}
   487  	return fmt.Sprintf("%v", int(e))
   488  }
   489  
   490  type ConversationMember struct {
   491  	Uid       gregor1.UID    `codec:"uid" json:"uid"`
   492  	ConvID    ConversationID `codec:"convID" json:"convID"`
   493  	TopicType TopicType      `codec:"topicType" json:"topicType"`
   494  }
   495  
   496  func (o ConversationMember) DeepCopy() ConversationMember {
   497  	return ConversationMember{
   498  		Uid:       o.Uid.DeepCopy(),
   499  		ConvID:    o.ConvID.DeepCopy(),
   500  		TopicType: o.TopicType.DeepCopy(),
   501  	}
   502  }
   503  
   504  type ConversationIDMessageIDPair struct {
   505  	ConvID ConversationID `codec:"convID" json:"convID"`
   506  	MsgID  MessageID      `codec:"msgID" json:"msgID"`
   507  }
   508  
   509  func (o ConversationIDMessageIDPair) DeepCopy() ConversationIDMessageIDPair {
   510  	return ConversationIDMessageIDPair{
   511  		ConvID: o.ConvID.DeepCopy(),
   512  		MsgID:  o.MsgID.DeepCopy(),
   513  	}
   514  }
   515  
   516  type ConversationIDMessageIDPairs struct {
   517  	Pairs []ConversationIDMessageIDPair `codec:"pairs" json:"pairs"`
   518  }
   519  
   520  func (o ConversationIDMessageIDPairs) DeepCopy() ConversationIDMessageIDPairs {
   521  	return ConversationIDMessageIDPairs{
   522  		Pairs: (func(x []ConversationIDMessageIDPair) []ConversationIDMessageIDPair {
   523  			if x == nil {
   524  				return nil
   525  			}
   526  			ret := make([]ConversationIDMessageIDPair, len(x))
   527  			for i, v := range x {
   528  				vCopy := v.DeepCopy()
   529  				ret[i] = vCopy
   530  			}
   531  			return ret
   532  		})(o.Pairs),
   533  	}
   534  }
   535  
   536  type ChannelNameMention struct {
   537  	ConvID    ConversationID `codec:"convID" json:"convID"`
   538  	TopicName string         `codec:"topicName" json:"topicName"`
   539  }
   540  
   541  func (o ChannelNameMention) DeepCopy() ChannelNameMention {
   542  	return ChannelNameMention{
   543  		ConvID:    o.ConvID.DeepCopy(),
   544  		TopicName: o.TopicName,
   545  	}
   546  }
   547  
   548  type KBFSPath struct {
   549  	StartIndex   int                   `codec:"startIndex" json:"startIndex"`
   550  	RawPath      string                `codec:"rawPath" json:"rawPath"`
   551  	StandardPath string                `codec:"standardPath" json:"standardPath"`
   552  	PathInfo     keybase1.KBFSPathInfo `codec:"pathInfo" json:"pathInfo"`
   553  }
   554  
   555  func (o KBFSPath) DeepCopy() KBFSPath {
   556  	return KBFSPath{
   557  		StartIndex:   o.StartIndex,
   558  		RawPath:      o.RawPath,
   559  		StandardPath: o.StandardPath,
   560  		PathInfo:     o.PathInfo.DeepCopy(),
   561  	}
   562  }
   563  
   564  type ConversationMemberStatus int
   565  
   566  const (
   567  	ConversationMemberStatus_ACTIVE       ConversationMemberStatus = 0
   568  	ConversationMemberStatus_REMOVED      ConversationMemberStatus = 1
   569  	ConversationMemberStatus_LEFT         ConversationMemberStatus = 2
   570  	ConversationMemberStatus_PREVIEW      ConversationMemberStatus = 3
   571  	ConversationMemberStatus_RESET        ConversationMemberStatus = 4
   572  	ConversationMemberStatus_NEVER_JOINED ConversationMemberStatus = 5
   573  )
   574  
   575  func (o ConversationMemberStatus) DeepCopy() ConversationMemberStatus { return o }
   576  
   577  var ConversationMemberStatusMap = map[string]ConversationMemberStatus{
   578  	"ACTIVE":       0,
   579  	"REMOVED":      1,
   580  	"LEFT":         2,
   581  	"PREVIEW":      3,
   582  	"RESET":        4,
   583  	"NEVER_JOINED": 5,
   584  }
   585  
   586  var ConversationMemberStatusRevMap = map[ConversationMemberStatus]string{
   587  	0: "ACTIVE",
   588  	1: "REMOVED",
   589  	2: "LEFT",
   590  	3: "PREVIEW",
   591  	4: "RESET",
   592  	5: "NEVER_JOINED",
   593  }
   594  
   595  func (e ConversationMemberStatus) String() string {
   596  	if v, ok := ConversationMemberStatusRevMap[e]; ok {
   597  		return v
   598  	}
   599  	return fmt.Sprintf("%v", int(e))
   600  }
   601  
   602  type Pagination struct {
   603  	Next           []byte `codec:"next,omitempty" json:"next,omitempty"`
   604  	Previous       []byte `codec:"previous,omitempty" json:"previous,omitempty"`
   605  	Num            int    `codec:"num" json:"num"`
   606  	Last           bool   `codec:"last,omitempty" json:"last,omitempty"`
   607  	ForceFirstPage bool   `codec:"forceFirstPage,omitempty" json:"forceFirstPage,omitempty"`
   608  }
   609  
   610  func (o Pagination) DeepCopy() Pagination {
   611  	return Pagination{
   612  		Next: (func(x []byte) []byte {
   613  			if x == nil {
   614  				return nil
   615  			}
   616  			return append([]byte{}, x...)
   617  		})(o.Next),
   618  		Previous: (func(x []byte) []byte {
   619  			if x == nil {
   620  				return nil
   621  			}
   622  			return append([]byte{}, x...)
   623  		})(o.Previous),
   624  		Num:            o.Num,
   625  		Last:           o.Last,
   626  		ForceFirstPage: o.ForceFirstPage,
   627  	}
   628  }
   629  
   630  type RateLimit struct {
   631  	Name           string `codec:"name" json:"name"`
   632  	CallsRemaining int    `codec:"callsRemaining" json:"callsRemaining"`
   633  	WindowReset    int    `codec:"windowReset" json:"windowReset"`
   634  	MaxCalls       int    `codec:"maxCalls" json:"maxCalls"`
   635  }
   636  
   637  func (o RateLimit) DeepCopy() RateLimit {
   638  	return RateLimit{
   639  		Name:           o.Name,
   640  		CallsRemaining: o.CallsRemaining,
   641  		WindowReset:    o.WindowReset,
   642  		MaxCalls:       o.MaxCalls,
   643  	}
   644  }
   645  
   646  type InboxParticipantsMode int
   647  
   648  const (
   649  	InboxParticipantsMode_ALL        InboxParticipantsMode = 0
   650  	InboxParticipantsMode_SKIP_TEAMS InboxParticipantsMode = 1
   651  )
   652  
   653  func (o InboxParticipantsMode) DeepCopy() InboxParticipantsMode { return o }
   654  
   655  var InboxParticipantsModeMap = map[string]InboxParticipantsMode{
   656  	"ALL":        0,
   657  	"SKIP_TEAMS": 1,
   658  }
   659  
   660  var InboxParticipantsModeRevMap = map[InboxParticipantsMode]string{
   661  	0: "ALL",
   662  	1: "SKIP_TEAMS",
   663  }
   664  
   665  func (e InboxParticipantsMode) String() string {
   666  	if v, ok := InboxParticipantsModeRevMap[e]; ok {
   667  		return v
   668  	}
   669  	return fmt.Sprintf("%v", int(e))
   670  }
   671  
   672  type GetInboxQuery struct {
   673  	ConvID            *ConversationID            `codec:"convID,omitempty" json:"convID,omitempty"`
   674  	TopicType         *TopicType                 `codec:"topicType,omitempty" json:"topicType,omitempty"`
   675  	TlfID             *TLFID                     `codec:"tlfID,omitempty" json:"tlfID,omitempty"`
   676  	TlfVisibility     *keybase1.TLFVisibility    `codec:"tlfVisibility,omitempty" json:"tlfVisibility,omitempty"`
   677  	Before            *gregor1.Time              `codec:"before,omitempty" json:"before,omitempty"`
   678  	After             *gregor1.Time              `codec:"after,omitempty" json:"after,omitempty"`
   679  	OneChatTypePerTLF *bool                      `codec:"oneChatTypePerTLF,omitempty" json:"oneChatTypePerTLF,omitempty"`
   680  	TopicName         *string                    `codec:"topicName,omitempty" json:"topicName,omitempty"`
   681  	Status            []ConversationStatus       `codec:"status" json:"status"`
   682  	MemberStatus      []ConversationMemberStatus `codec:"memberStatus" json:"memberStatus"`
   683  	Existences        []ConversationExistence    `codec:"existences" json:"existences"`
   684  	MembersTypes      []ConversationMembersType  `codec:"membersTypes" json:"membersTypes"`
   685  	ConvIDs           []ConversationID           `codec:"convIDs" json:"convIDs"`
   686  	UnreadOnly        bool                       `codec:"unreadOnly" json:"unreadOnly"`
   687  	ReadOnly          bool                       `codec:"readOnly" json:"readOnly"`
   688  	ComputeActiveList bool                       `codec:"computeActiveList" json:"computeActiveList"`
   689  	SummarizeMaxMsgs  bool                       `codec:"summarizeMaxMsgs" json:"summarizeMaxMsgs"`
   690  	ParticipantsMode  InboxParticipantsMode      `codec:"participantsMode" json:"participantsMode"`
   691  	SkipBgLoads       bool                       `codec:"skipBgLoads" json:"skipBgLoads"`
   692  	AllowUnseenQuery  bool                       `codec:"allowUnseenQuery" json:"allowUnseenQuery"`
   693  }
   694  
   695  func (o GetInboxQuery) DeepCopy() GetInboxQuery {
   696  	return GetInboxQuery{
   697  		ConvID: (func(x *ConversationID) *ConversationID {
   698  			if x == nil {
   699  				return nil
   700  			}
   701  			tmp := (*x).DeepCopy()
   702  			return &tmp
   703  		})(o.ConvID),
   704  		TopicType: (func(x *TopicType) *TopicType {
   705  			if x == nil {
   706  				return nil
   707  			}
   708  			tmp := (*x).DeepCopy()
   709  			return &tmp
   710  		})(o.TopicType),
   711  		TlfID: (func(x *TLFID) *TLFID {
   712  			if x == nil {
   713  				return nil
   714  			}
   715  			tmp := (*x).DeepCopy()
   716  			return &tmp
   717  		})(o.TlfID),
   718  		TlfVisibility: (func(x *keybase1.TLFVisibility) *keybase1.TLFVisibility {
   719  			if x == nil {
   720  				return nil
   721  			}
   722  			tmp := (*x).DeepCopy()
   723  			return &tmp
   724  		})(o.TlfVisibility),
   725  		Before: (func(x *gregor1.Time) *gregor1.Time {
   726  			if x == nil {
   727  				return nil
   728  			}
   729  			tmp := (*x).DeepCopy()
   730  			return &tmp
   731  		})(o.Before),
   732  		After: (func(x *gregor1.Time) *gregor1.Time {
   733  			if x == nil {
   734  				return nil
   735  			}
   736  			tmp := (*x).DeepCopy()
   737  			return &tmp
   738  		})(o.After),
   739  		OneChatTypePerTLF: (func(x *bool) *bool {
   740  			if x == nil {
   741  				return nil
   742  			}
   743  			tmp := (*x)
   744  			return &tmp
   745  		})(o.OneChatTypePerTLF),
   746  		TopicName: (func(x *string) *string {
   747  			if x == nil {
   748  				return nil
   749  			}
   750  			tmp := (*x)
   751  			return &tmp
   752  		})(o.TopicName),
   753  		Status: (func(x []ConversationStatus) []ConversationStatus {
   754  			if x == nil {
   755  				return nil
   756  			}
   757  			ret := make([]ConversationStatus, len(x))
   758  			for i, v := range x {
   759  				vCopy := v.DeepCopy()
   760  				ret[i] = vCopy
   761  			}
   762  			return ret
   763  		})(o.Status),
   764  		MemberStatus: (func(x []ConversationMemberStatus) []ConversationMemberStatus {
   765  			if x == nil {
   766  				return nil
   767  			}
   768  			ret := make([]ConversationMemberStatus, len(x))
   769  			for i, v := range x {
   770  				vCopy := v.DeepCopy()
   771  				ret[i] = vCopy
   772  			}
   773  			return ret
   774  		})(o.MemberStatus),
   775  		Existences: (func(x []ConversationExistence) []ConversationExistence {
   776  			if x == nil {
   777  				return nil
   778  			}
   779  			ret := make([]ConversationExistence, len(x))
   780  			for i, v := range x {
   781  				vCopy := v.DeepCopy()
   782  				ret[i] = vCopy
   783  			}
   784  			return ret
   785  		})(o.Existences),
   786  		MembersTypes: (func(x []ConversationMembersType) []ConversationMembersType {
   787  			if x == nil {
   788  				return nil
   789  			}
   790  			ret := make([]ConversationMembersType, len(x))
   791  			for i, v := range x {
   792  				vCopy := v.DeepCopy()
   793  				ret[i] = vCopy
   794  			}
   795  			return ret
   796  		})(o.MembersTypes),
   797  		ConvIDs: (func(x []ConversationID) []ConversationID {
   798  			if x == nil {
   799  				return nil
   800  			}
   801  			ret := make([]ConversationID, len(x))
   802  			for i, v := range x {
   803  				vCopy := v.DeepCopy()
   804  				ret[i] = vCopy
   805  			}
   806  			return ret
   807  		})(o.ConvIDs),
   808  		UnreadOnly:        o.UnreadOnly,
   809  		ReadOnly:          o.ReadOnly,
   810  		ComputeActiveList: o.ComputeActiveList,
   811  		SummarizeMaxMsgs:  o.SummarizeMaxMsgs,
   812  		ParticipantsMode:  o.ParticipantsMode.DeepCopy(),
   813  		SkipBgLoads:       o.SkipBgLoads,
   814  		AllowUnseenQuery:  o.AllowUnseenQuery,
   815  	}
   816  }
   817  
   818  type ConversationIDTriple struct {
   819  	Tlfid     TLFID     `codec:"tlfid" json:"tlfid"`
   820  	TopicType TopicType `codec:"topicType" json:"topicType"`
   821  	TopicID   TopicID   `codec:"topicID" json:"topicID"`
   822  }
   823  
   824  func (o ConversationIDTriple) DeepCopy() ConversationIDTriple {
   825  	return ConversationIDTriple{
   826  		Tlfid:     o.Tlfid.DeepCopy(),
   827  		TopicType: o.TopicType.DeepCopy(),
   828  		TopicID:   o.TopicID.DeepCopy(),
   829  	}
   830  }
   831  
   832  type ConversationFinalizeInfo struct {
   833  	ResetUser      string       `codec:"resetUser" json:"resetUser"`
   834  	ResetDate      string       `codec:"resetDate" json:"resetDate"`
   835  	ResetFull      string       `codec:"resetFull" json:"resetFull"`
   836  	ResetTimestamp gregor1.Time `codec:"resetTimestamp" json:"resetTimestamp"`
   837  }
   838  
   839  func (o ConversationFinalizeInfo) DeepCopy() ConversationFinalizeInfo {
   840  	return ConversationFinalizeInfo{
   841  		ResetUser:      o.ResetUser,
   842  		ResetDate:      o.ResetDate,
   843  		ResetFull:      o.ResetFull,
   844  		ResetTimestamp: o.ResetTimestamp.DeepCopy(),
   845  	}
   846  }
   847  
   848  type ConversationResolveInfo struct {
   849  	NewTLFName string `codec:"newTLFName" json:"newTLFName"`
   850  }
   851  
   852  func (o ConversationResolveInfo) DeepCopy() ConversationResolveInfo {
   853  	return ConversationResolveInfo{
   854  		NewTLFName: o.NewTLFName,
   855  	}
   856  }
   857  
   858  type Expunge struct {
   859  	Upto  MessageID `codec:"upto" json:"upto"`
   860  	Basis MessageID `codec:"basis" json:"basis"`
   861  }
   862  
   863  func (o Expunge) DeepCopy() Expunge {
   864  	return Expunge{
   865  		Upto:  o.Upto.DeepCopy(),
   866  		Basis: o.Basis.DeepCopy(),
   867  	}
   868  }
   869  
   870  type ConversationMetadata struct {
   871  	IdTriple       ConversationIDTriple      `codec:"idTriple" json:"idTriple"`
   872  	ConversationID ConversationID            `codec:"conversationID" json:"conversationID"`
   873  	Visibility     keybase1.TLFVisibility    `codec:"visibility" json:"visibility"`
   874  	Status         ConversationStatus        `codec:"status" json:"status"`
   875  	MembersType    ConversationMembersType   `codec:"membersType" json:"membersType"`
   876  	TeamType       TeamType                  `codec:"teamType" json:"teamType"`
   877  	Existence      ConversationExistence     `codec:"existence" json:"existence"`
   878  	Version        ConversationVers          `codec:"version" json:"version"`
   879  	LocalVersion   LocalConversationVers     `codec:"localVersion" json:"localVersion"`
   880  	FinalizeInfo   *ConversationFinalizeInfo `codec:"finalizeInfo,omitempty" json:"finalizeInfo,omitempty"`
   881  	Supersedes     []ConversationMetadata    `codec:"supersedes" json:"supersedes"`
   882  	SupersededBy   []ConversationMetadata    `codec:"supersededBy" json:"supersededBy"`
   883  	ActiveList     []gregor1.UID             `codec:"activeList" json:"activeList"`
   884  	AllList        []gregor1.UID             `codec:"allList" json:"allList"`
   885  	ResetList      []gregor1.UID             `codec:"resetList" json:"resetList"`
   886  	IsDefaultConv  bool                      `codec:"d" json:"isDefaultConv"`
   887  }
   888  
   889  func (o ConversationMetadata) DeepCopy() ConversationMetadata {
   890  	return ConversationMetadata{
   891  		IdTriple:       o.IdTriple.DeepCopy(),
   892  		ConversationID: o.ConversationID.DeepCopy(),
   893  		Visibility:     o.Visibility.DeepCopy(),
   894  		Status:         o.Status.DeepCopy(),
   895  		MembersType:    o.MembersType.DeepCopy(),
   896  		TeamType:       o.TeamType.DeepCopy(),
   897  		Existence:      o.Existence.DeepCopy(),
   898  		Version:        o.Version.DeepCopy(),
   899  		LocalVersion:   o.LocalVersion.DeepCopy(),
   900  		FinalizeInfo: (func(x *ConversationFinalizeInfo) *ConversationFinalizeInfo {
   901  			if x == nil {
   902  				return nil
   903  			}
   904  			tmp := (*x).DeepCopy()
   905  			return &tmp
   906  		})(o.FinalizeInfo),
   907  		Supersedes: (func(x []ConversationMetadata) []ConversationMetadata {
   908  			if x == nil {
   909  				return nil
   910  			}
   911  			ret := make([]ConversationMetadata, len(x))
   912  			for i, v := range x {
   913  				vCopy := v.DeepCopy()
   914  				ret[i] = vCopy
   915  			}
   916  			return ret
   917  		})(o.Supersedes),
   918  		SupersededBy: (func(x []ConversationMetadata) []ConversationMetadata {
   919  			if x == nil {
   920  				return nil
   921  			}
   922  			ret := make([]ConversationMetadata, len(x))
   923  			for i, v := range x {
   924  				vCopy := v.DeepCopy()
   925  				ret[i] = vCopy
   926  			}
   927  			return ret
   928  		})(o.SupersededBy),
   929  		ActiveList: (func(x []gregor1.UID) []gregor1.UID {
   930  			if x == nil {
   931  				return nil
   932  			}
   933  			ret := make([]gregor1.UID, len(x))
   934  			for i, v := range x {
   935  				vCopy := v.DeepCopy()
   936  				ret[i] = vCopy
   937  			}
   938  			return ret
   939  		})(o.ActiveList),
   940  		AllList: (func(x []gregor1.UID) []gregor1.UID {
   941  			if x == nil {
   942  				return nil
   943  			}
   944  			ret := make([]gregor1.UID, len(x))
   945  			for i, v := range x {
   946  				vCopy := v.DeepCopy()
   947  				ret[i] = vCopy
   948  			}
   949  			return ret
   950  		})(o.AllList),
   951  		ResetList: (func(x []gregor1.UID) []gregor1.UID {
   952  			if x == nil {
   953  				return nil
   954  			}
   955  			ret := make([]gregor1.UID, len(x))
   956  			for i, v := range x {
   957  				vCopy := v.DeepCopy()
   958  				ret[i] = vCopy
   959  			}
   960  			return ret
   961  		})(o.ResetList),
   962  		IsDefaultConv: o.IsDefaultConv,
   963  	}
   964  }
   965  
   966  type ConversationNotificationInfo struct {
   967  	ChannelWide bool                                              `codec:"channelWide" json:"channelWide"`
   968  	Settings    map[keybase1.DeviceType]map[NotificationKind]bool `codec:"settings" json:"settings"`
   969  }
   970  
   971  func (o ConversationNotificationInfo) DeepCopy() ConversationNotificationInfo {
   972  	return ConversationNotificationInfo{
   973  		ChannelWide: o.ChannelWide,
   974  		Settings: (func(x map[keybase1.DeviceType]map[NotificationKind]bool) map[keybase1.DeviceType]map[NotificationKind]bool {
   975  			if x == nil {
   976  				return nil
   977  			}
   978  			ret := make(map[keybase1.DeviceType]map[NotificationKind]bool, len(x))
   979  			for k, v := range x {
   980  				kCopy := k.DeepCopy()
   981  				vCopy := (func(x map[NotificationKind]bool) map[NotificationKind]bool {
   982  					if x == nil {
   983  						return nil
   984  					}
   985  					ret := make(map[NotificationKind]bool, len(x))
   986  					for k, v := range x {
   987  						kCopy := k.DeepCopy()
   988  						vCopy := v
   989  						ret[kCopy] = vCopy
   990  					}
   991  					return ret
   992  				})(v)
   993  				ret[kCopy] = vCopy
   994  			}
   995  			return ret
   996  		})(o.Settings),
   997  	}
   998  }
   999  
  1000  type ConversationReaderInfo struct {
  1001  	Mtime             gregor1.Time                 `codec:"mtime" json:"mtime"`
  1002  	ReadMsgid         MessageID                    `codec:"readMsgid" json:"readMsgid"`
  1003  	MaxMsgid          MessageID                    `codec:"maxMsgid" json:"maxMsgid"`
  1004  	Status            ConversationMemberStatus     `codec:"status" json:"status"`
  1005  	UntrustedTeamRole keybase1.TeamRole            `codec:"untrustedTeamRole" json:"untrustedTeamRole"`
  1006  	LastSendTime      gregor1.Time                 `codec:"l" json:"l"`
  1007  	Journeycard       *ConversationJourneycardInfo `codec:"jc,omitempty" json:"jc,omitempty"`
  1008  }
  1009  
  1010  func (o ConversationReaderInfo) DeepCopy() ConversationReaderInfo {
  1011  	return ConversationReaderInfo{
  1012  		Mtime:             o.Mtime.DeepCopy(),
  1013  		ReadMsgid:         o.ReadMsgid.DeepCopy(),
  1014  		MaxMsgid:          o.MaxMsgid.DeepCopy(),
  1015  		Status:            o.Status.DeepCopy(),
  1016  		UntrustedTeamRole: o.UntrustedTeamRole.DeepCopy(),
  1017  		LastSendTime:      o.LastSendTime.DeepCopy(),
  1018  		Journeycard: (func(x *ConversationJourneycardInfo) *ConversationJourneycardInfo {
  1019  			if x == nil {
  1020  				return nil
  1021  			}
  1022  			tmp := (*x).DeepCopy()
  1023  			return &tmp
  1024  		})(o.Journeycard),
  1025  	}
  1026  }
  1027  
  1028  type ConversationJourneycardInfo struct {
  1029  	WelcomeEligible bool `codec:"w" json:"w"`
  1030  }
  1031  
  1032  func (o ConversationJourneycardInfo) DeepCopy() ConversationJourneycardInfo {
  1033  	return ConversationJourneycardInfo{
  1034  		WelcomeEligible: o.WelcomeEligible,
  1035  	}
  1036  }
  1037  
  1038  type ConversationCreatorInfo struct {
  1039  	Ctime gregor1.Time `codec:"ctime" json:"ctime"`
  1040  	Uid   gregor1.UID  `codec:"uid" json:"uid"`
  1041  }
  1042  
  1043  func (o ConversationCreatorInfo) DeepCopy() ConversationCreatorInfo {
  1044  	return ConversationCreatorInfo{
  1045  		Ctime: o.Ctime.DeepCopy(),
  1046  		Uid:   o.Uid.DeepCopy(),
  1047  	}
  1048  }
  1049  
  1050  type ConversationCreatorInfoLocal struct {
  1051  	Ctime    gregor1.Time `codec:"ctime" json:"ctime"`
  1052  	Username string       `codec:"username" json:"username"`
  1053  }
  1054  
  1055  func (o ConversationCreatorInfoLocal) DeepCopy() ConversationCreatorInfoLocal {
  1056  	return ConversationCreatorInfoLocal{
  1057  		Ctime:    o.Ctime.DeepCopy(),
  1058  		Username: o.Username,
  1059  	}
  1060  }
  1061  
  1062  type ConversationMinWriterRoleInfo struct {
  1063  	Uid  gregor1.UID       `codec:"uid" json:"uid"`
  1064  	Role keybase1.TeamRole `codec:"role" json:"role"`
  1065  }
  1066  
  1067  func (o ConversationMinWriterRoleInfo) DeepCopy() ConversationMinWriterRoleInfo {
  1068  	return ConversationMinWriterRoleInfo{
  1069  		Uid:  o.Uid.DeepCopy(),
  1070  		Role: o.Role.DeepCopy(),
  1071  	}
  1072  }
  1073  
  1074  type ConversationSettings struct {
  1075  	MinWriterRoleInfo *ConversationMinWriterRoleInfo `codec:"mwr,omitempty" json:"mwr,omitempty"`
  1076  }
  1077  
  1078  func (o ConversationSettings) DeepCopy() ConversationSettings {
  1079  	return ConversationSettings{
  1080  		MinWriterRoleInfo: (func(x *ConversationMinWriterRoleInfo) *ConversationMinWriterRoleInfo {
  1081  			if x == nil {
  1082  				return nil
  1083  			}
  1084  			tmp := (*x).DeepCopy()
  1085  			return &tmp
  1086  		})(o.MinWriterRoleInfo),
  1087  	}
  1088  }
  1089  
  1090  type Conversation struct {
  1091  	Metadata        ConversationMetadata          `codec:"metadata" json:"metadata"`
  1092  	ReaderInfo      *ConversationReaderInfo       `codec:"readerInfo,omitempty" json:"readerInfo,omitempty"`
  1093  	Notifications   *ConversationNotificationInfo `codec:"notifications,omitempty" json:"notifications,omitempty"`
  1094  	MaxMsgs         []MessageBoxed                `codec:"maxMsgs" json:"maxMsgs"`
  1095  	MaxMsgSummaries []MessageSummary              `codec:"maxMsgSummaries" json:"maxMsgSummaries"`
  1096  	CreatorInfo     *ConversationCreatorInfo      `codec:"creatorInfo,omitempty" json:"creatorInfo,omitempty"`
  1097  	PinnedMsg       *MessageID                    `codec:"pinnedMsg,omitempty" json:"pinnedMsg,omitempty"`
  1098  	Expunge         Expunge                       `codec:"expunge" json:"expunge"`
  1099  	ConvRetention   *RetentionPolicy              `codec:"convRetention,omitempty" json:"convRetention,omitempty"`
  1100  	TeamRetention   *RetentionPolicy              `codec:"teamRetention,omitempty" json:"teamRetention,omitempty"`
  1101  	ConvSettings    *ConversationSettings         `codec:"cs,omitempty" json:"cs,omitempty"`
  1102  }
  1103  
  1104  func (o Conversation) DeepCopy() Conversation {
  1105  	return Conversation{
  1106  		Metadata: o.Metadata.DeepCopy(),
  1107  		ReaderInfo: (func(x *ConversationReaderInfo) *ConversationReaderInfo {
  1108  			if x == nil {
  1109  				return nil
  1110  			}
  1111  			tmp := (*x).DeepCopy()
  1112  			return &tmp
  1113  		})(o.ReaderInfo),
  1114  		Notifications: (func(x *ConversationNotificationInfo) *ConversationNotificationInfo {
  1115  			if x == nil {
  1116  				return nil
  1117  			}
  1118  			tmp := (*x).DeepCopy()
  1119  			return &tmp
  1120  		})(o.Notifications),
  1121  		MaxMsgs: (func(x []MessageBoxed) []MessageBoxed {
  1122  			if x == nil {
  1123  				return nil
  1124  			}
  1125  			ret := make([]MessageBoxed, len(x))
  1126  			for i, v := range x {
  1127  				vCopy := v.DeepCopy()
  1128  				ret[i] = vCopy
  1129  			}
  1130  			return ret
  1131  		})(o.MaxMsgs),
  1132  		MaxMsgSummaries: (func(x []MessageSummary) []MessageSummary {
  1133  			if x == nil {
  1134  				return nil
  1135  			}
  1136  			ret := make([]MessageSummary, len(x))
  1137  			for i, v := range x {
  1138  				vCopy := v.DeepCopy()
  1139  				ret[i] = vCopy
  1140  			}
  1141  			return ret
  1142  		})(o.MaxMsgSummaries),
  1143  		CreatorInfo: (func(x *ConversationCreatorInfo) *ConversationCreatorInfo {
  1144  			if x == nil {
  1145  				return nil
  1146  			}
  1147  			tmp := (*x).DeepCopy()
  1148  			return &tmp
  1149  		})(o.CreatorInfo),
  1150  		PinnedMsg: (func(x *MessageID) *MessageID {
  1151  			if x == nil {
  1152  				return nil
  1153  			}
  1154  			tmp := (*x).DeepCopy()
  1155  			return &tmp
  1156  		})(o.PinnedMsg),
  1157  		Expunge: o.Expunge.DeepCopy(),
  1158  		ConvRetention: (func(x *RetentionPolicy) *RetentionPolicy {
  1159  			if x == nil {
  1160  				return nil
  1161  			}
  1162  			tmp := (*x).DeepCopy()
  1163  			return &tmp
  1164  		})(o.ConvRetention),
  1165  		TeamRetention: (func(x *RetentionPolicy) *RetentionPolicy {
  1166  			if x == nil {
  1167  				return nil
  1168  			}
  1169  			tmp := (*x).DeepCopy()
  1170  			return &tmp
  1171  		})(o.TeamRetention),
  1172  		ConvSettings: (func(x *ConversationSettings) *ConversationSettings {
  1173  			if x == nil {
  1174  				return nil
  1175  			}
  1176  			tmp := (*x).DeepCopy()
  1177  			return &tmp
  1178  		})(o.ConvSettings),
  1179  	}
  1180  }
  1181  
  1182  type MessageSummary struct {
  1183  	MsgID       MessageID    `codec:"msgID" json:"msgID"`
  1184  	MessageType MessageType  `codec:"messageType" json:"messageType"`
  1185  	TlfName     string       `codec:"tlfName" json:"tlfName"`
  1186  	TlfPublic   bool         `codec:"tlfPublic" json:"tlfPublic"`
  1187  	Ctime       gregor1.Time `codec:"ctime" json:"ctime"`
  1188  }
  1189  
  1190  func (o MessageSummary) DeepCopy() MessageSummary {
  1191  	return MessageSummary{
  1192  		MsgID:       o.MsgID.DeepCopy(),
  1193  		MessageType: o.MessageType.DeepCopy(),
  1194  		TlfName:     o.TlfName,
  1195  		TlfPublic:   o.TlfPublic,
  1196  		Ctime:       o.Ctime.DeepCopy(),
  1197  	}
  1198  }
  1199  
  1200  type Reaction struct {
  1201  	Ctime         gregor1.Time `codec:"ctime" json:"ctime"`
  1202  	ReactionMsgID MessageID    `codec:"reactionMsgID" json:"reactionMsgID"`
  1203  }
  1204  
  1205  func (o Reaction) DeepCopy() Reaction {
  1206  	return Reaction{
  1207  		Ctime:         o.Ctime.DeepCopy(),
  1208  		ReactionMsgID: o.ReactionMsgID.DeepCopy(),
  1209  	}
  1210  }
  1211  
  1212  type ReactionMap struct {
  1213  	Reactions map[string]map[string]Reaction `codec:"reactions" json:"reactions"`
  1214  }
  1215  
  1216  func (o ReactionMap) DeepCopy() ReactionMap {
  1217  	return ReactionMap{
  1218  		Reactions: (func(x map[string]map[string]Reaction) map[string]map[string]Reaction {
  1219  			if x == nil {
  1220  				return nil
  1221  			}
  1222  			ret := make(map[string]map[string]Reaction, len(x))
  1223  			for k, v := range x {
  1224  				kCopy := k
  1225  				vCopy := (func(x map[string]Reaction) map[string]Reaction {
  1226  					if x == nil {
  1227  						return nil
  1228  					}
  1229  					ret := make(map[string]Reaction, len(x))
  1230  					for k, v := range x {
  1231  						kCopy := k
  1232  						vCopy := v.DeepCopy()
  1233  						ret[kCopy] = vCopy
  1234  					}
  1235  					return ret
  1236  				})(v)
  1237  				ret[kCopy] = vCopy
  1238  			}
  1239  			return ret
  1240  		})(o.Reactions),
  1241  	}
  1242  }
  1243  
  1244  type MessageServerHeader struct {
  1245  	MessageID    MessageID     `codec:"messageID" json:"messageID"`
  1246  	SupersededBy MessageID     `codec:"supersededBy" json:"supersededBy"`
  1247  	ReactionIDs  []MessageID   `codec:"r" json:"r"`
  1248  	UnfurlIDs    []MessageID   `codec:"u" json:"u"`
  1249  	Replies      []MessageID   `codec:"replies" json:"replies"`
  1250  	Ctime        gregor1.Time  `codec:"ctime" json:"ctime"`
  1251  	Now          gregor1.Time  `codec:"n" json:"n"`
  1252  	Rtime        *gregor1.Time `codec:"rt,omitempty" json:"rt,omitempty"`
  1253  }
  1254  
  1255  func (o MessageServerHeader) DeepCopy() MessageServerHeader {
  1256  	return MessageServerHeader{
  1257  		MessageID:    o.MessageID.DeepCopy(),
  1258  		SupersededBy: o.SupersededBy.DeepCopy(),
  1259  		ReactionIDs: (func(x []MessageID) []MessageID {
  1260  			if x == nil {
  1261  				return nil
  1262  			}
  1263  			ret := make([]MessageID, len(x))
  1264  			for i, v := range x {
  1265  				vCopy := v.DeepCopy()
  1266  				ret[i] = vCopy
  1267  			}
  1268  			return ret
  1269  		})(o.ReactionIDs),
  1270  		UnfurlIDs: (func(x []MessageID) []MessageID {
  1271  			if x == nil {
  1272  				return nil
  1273  			}
  1274  			ret := make([]MessageID, len(x))
  1275  			for i, v := range x {
  1276  				vCopy := v.DeepCopy()
  1277  				ret[i] = vCopy
  1278  			}
  1279  			return ret
  1280  		})(o.UnfurlIDs),
  1281  		Replies: (func(x []MessageID) []MessageID {
  1282  			if x == nil {
  1283  				return nil
  1284  			}
  1285  			ret := make([]MessageID, len(x))
  1286  			for i, v := range x {
  1287  				vCopy := v.DeepCopy()
  1288  				ret[i] = vCopy
  1289  			}
  1290  			return ret
  1291  		})(o.Replies),
  1292  		Ctime: o.Ctime.DeepCopy(),
  1293  		Now:   o.Now.DeepCopy(),
  1294  		Rtime: (func(x *gregor1.Time) *gregor1.Time {
  1295  			if x == nil {
  1296  				return nil
  1297  			}
  1298  			tmp := (*x).DeepCopy()
  1299  			return &tmp
  1300  		})(o.Rtime),
  1301  	}
  1302  }
  1303  
  1304  type MessagePreviousPointer struct {
  1305  	Id   MessageID `codec:"id" json:"id"`
  1306  	Hash Hash      `codec:"hash" json:"hash"`
  1307  }
  1308  
  1309  func (o MessagePreviousPointer) DeepCopy() MessagePreviousPointer {
  1310  	return MessagePreviousPointer{
  1311  		Id:   o.Id.DeepCopy(),
  1312  		Hash: o.Hash.DeepCopy(),
  1313  	}
  1314  }
  1315  
  1316  type OutboxInfo struct {
  1317  	Prev        MessageID    `codec:"prev" json:"prev"`
  1318  	ComposeTime gregor1.Time `codec:"composeTime" json:"composeTime"`
  1319  }
  1320  
  1321  func (o OutboxInfo) DeepCopy() OutboxInfo {
  1322  	return OutboxInfo{
  1323  		Prev:        o.Prev.DeepCopy(),
  1324  		ComposeTime: o.ComposeTime.DeepCopy(),
  1325  	}
  1326  }
  1327  
  1328  type MsgEphemeralMetadata struct {
  1329  	Lifetime   gregor1.DurationSec   `codec:"l" json:"l"`
  1330  	Generation keybase1.EkGeneration `codec:"g" json:"g"`
  1331  	ExplodedBy *string               `codec:"u,omitempty" json:"u,omitempty"`
  1332  }
  1333  
  1334  func (o MsgEphemeralMetadata) DeepCopy() MsgEphemeralMetadata {
  1335  	return MsgEphemeralMetadata{
  1336  		Lifetime:   o.Lifetime.DeepCopy(),
  1337  		Generation: o.Generation.DeepCopy(),
  1338  		ExplodedBy: (func(x *string) *string {
  1339  			if x == nil {
  1340  				return nil
  1341  			}
  1342  			tmp := (*x)
  1343  			return &tmp
  1344  		})(o.ExplodedBy),
  1345  	}
  1346  }
  1347  
  1348  type EphemeralPurgeInfo struct {
  1349  	ConvID          ConversationID `codec:"c" json:"c"`
  1350  	IsActive        bool           `codec:"a" json:"a"`
  1351  	NextPurgeTime   gregor1.Time   `codec:"n" json:"n"`
  1352  	MinUnexplodedID MessageID      `codec:"e" json:"e"`
  1353  }
  1354  
  1355  func (o EphemeralPurgeInfo) DeepCopy() EphemeralPurgeInfo {
  1356  	return EphemeralPurgeInfo{
  1357  		ConvID:          o.ConvID.DeepCopy(),
  1358  		IsActive:        o.IsActive,
  1359  		NextPurgeTime:   o.NextPurgeTime.DeepCopy(),
  1360  		MinUnexplodedID: o.MinUnexplodedID.DeepCopy(),
  1361  	}
  1362  }
  1363  
  1364  type MessageClientHeader struct {
  1365  	Conv              ConversationIDTriple     `codec:"conv" json:"conv"`
  1366  	TlfName           string                   `codec:"tlfName" json:"tlfName"`
  1367  	TlfPublic         bool                     `codec:"tlfPublic" json:"tlfPublic"`
  1368  	MessageType       MessageType              `codec:"messageType" json:"messageType"`
  1369  	Supersedes        MessageID                `codec:"supersedes" json:"supersedes"`
  1370  	KbfsCryptKeysUsed *bool                    `codec:"kbfsCryptKeysUsed,omitempty" json:"kbfsCryptKeysUsed,omitempty"`
  1371  	Deletes           []MessageID              `codec:"deletes" json:"deletes"`
  1372  	Prev              []MessagePreviousPointer `codec:"prev" json:"prev"`
  1373  	DeleteHistory     *MessageDeleteHistory    `codec:"deleteHistory,omitempty" json:"deleteHistory,omitempty"`
  1374  	Sender            gregor1.UID              `codec:"sender" json:"sender"`
  1375  	SenderDevice      gregor1.DeviceID         `codec:"senderDevice" json:"senderDevice"`
  1376  	MerkleRoot        *MerkleRoot              `codec:"merkleRoot,omitempty" json:"merkleRoot,omitempty"`
  1377  	OutboxID          *OutboxID                `codec:"outboxID,omitempty" json:"outboxID,omitempty"`
  1378  	OutboxInfo        *OutboxInfo              `codec:"outboxInfo,omitempty" json:"outboxInfo,omitempty"`
  1379  	EphemeralMetadata *MsgEphemeralMetadata    `codec:"em,omitempty" json:"em,omitempty"`
  1380  	PairwiseMacs      map[keybase1.KID][]byte  `codec:"pm" json:"pm"`
  1381  	BotUID            *gregor1.UID             `codec:"b,omitempty" json:"b,omitempty"`
  1382  	TxID              *stellar1.TransactionID  `codec:"t,omitempty" json:"t,omitempty"`
  1383  }
  1384  
  1385  func (o MessageClientHeader) DeepCopy() MessageClientHeader {
  1386  	return MessageClientHeader{
  1387  		Conv:        o.Conv.DeepCopy(),
  1388  		TlfName:     o.TlfName,
  1389  		TlfPublic:   o.TlfPublic,
  1390  		MessageType: o.MessageType.DeepCopy(),
  1391  		Supersedes:  o.Supersedes.DeepCopy(),
  1392  		KbfsCryptKeysUsed: (func(x *bool) *bool {
  1393  			if x == nil {
  1394  				return nil
  1395  			}
  1396  			tmp := (*x)
  1397  			return &tmp
  1398  		})(o.KbfsCryptKeysUsed),
  1399  		Deletes: (func(x []MessageID) []MessageID {
  1400  			if x == nil {
  1401  				return nil
  1402  			}
  1403  			ret := make([]MessageID, len(x))
  1404  			for i, v := range x {
  1405  				vCopy := v.DeepCopy()
  1406  				ret[i] = vCopy
  1407  			}
  1408  			return ret
  1409  		})(o.Deletes),
  1410  		Prev: (func(x []MessagePreviousPointer) []MessagePreviousPointer {
  1411  			if x == nil {
  1412  				return nil
  1413  			}
  1414  			ret := make([]MessagePreviousPointer, len(x))
  1415  			for i, v := range x {
  1416  				vCopy := v.DeepCopy()
  1417  				ret[i] = vCopy
  1418  			}
  1419  			return ret
  1420  		})(o.Prev),
  1421  		DeleteHistory: (func(x *MessageDeleteHistory) *MessageDeleteHistory {
  1422  			if x == nil {
  1423  				return nil
  1424  			}
  1425  			tmp := (*x).DeepCopy()
  1426  			return &tmp
  1427  		})(o.DeleteHistory),
  1428  		Sender:       o.Sender.DeepCopy(),
  1429  		SenderDevice: o.SenderDevice.DeepCopy(),
  1430  		MerkleRoot: (func(x *MerkleRoot) *MerkleRoot {
  1431  			if x == nil {
  1432  				return nil
  1433  			}
  1434  			tmp := (*x).DeepCopy()
  1435  			return &tmp
  1436  		})(o.MerkleRoot),
  1437  		OutboxID: (func(x *OutboxID) *OutboxID {
  1438  			if x == nil {
  1439  				return nil
  1440  			}
  1441  			tmp := (*x).DeepCopy()
  1442  			return &tmp
  1443  		})(o.OutboxID),
  1444  		OutboxInfo: (func(x *OutboxInfo) *OutboxInfo {
  1445  			if x == nil {
  1446  				return nil
  1447  			}
  1448  			tmp := (*x).DeepCopy()
  1449  			return &tmp
  1450  		})(o.OutboxInfo),
  1451  		EphemeralMetadata: (func(x *MsgEphemeralMetadata) *MsgEphemeralMetadata {
  1452  			if x == nil {
  1453  				return nil
  1454  			}
  1455  			tmp := (*x).DeepCopy()
  1456  			return &tmp
  1457  		})(o.EphemeralMetadata),
  1458  		PairwiseMacs: (func(x map[keybase1.KID][]byte) map[keybase1.KID][]byte {
  1459  			if x == nil {
  1460  				return nil
  1461  			}
  1462  			ret := make(map[keybase1.KID][]byte, len(x))
  1463  			for k, v := range x {
  1464  				kCopy := k.DeepCopy()
  1465  				vCopy := (func(x []byte) []byte {
  1466  					if x == nil {
  1467  						return nil
  1468  					}
  1469  					return append([]byte{}, x...)
  1470  				})(v)
  1471  				ret[kCopy] = vCopy
  1472  			}
  1473  			return ret
  1474  		})(o.PairwiseMacs),
  1475  		BotUID: (func(x *gregor1.UID) *gregor1.UID {
  1476  			if x == nil {
  1477  				return nil
  1478  			}
  1479  			tmp := (*x).DeepCopy()
  1480  			return &tmp
  1481  		})(o.BotUID),
  1482  		TxID: (func(x *stellar1.TransactionID) *stellar1.TransactionID {
  1483  			if x == nil {
  1484  				return nil
  1485  			}
  1486  			tmp := (*x).DeepCopy()
  1487  			return &tmp
  1488  		})(o.TxID),
  1489  	}
  1490  }
  1491  
  1492  type MessageClientHeaderVerified struct {
  1493  	Conv              ConversationIDTriple     `codec:"conv" json:"conv"`
  1494  	TlfName           string                   `codec:"tlfName" json:"tlfName"`
  1495  	TlfPublic         bool                     `codec:"tlfPublic" json:"tlfPublic"`
  1496  	MessageType       MessageType              `codec:"messageType" json:"messageType"`
  1497  	Prev              []MessagePreviousPointer `codec:"prev" json:"prev"`
  1498  	Sender            gregor1.UID              `codec:"sender" json:"sender"`
  1499  	SenderDevice      gregor1.DeviceID         `codec:"senderDevice" json:"senderDevice"`
  1500  	KbfsCryptKeysUsed *bool                    `codec:"kbfsCryptKeysUsed,omitempty" json:"kbfsCryptKeysUsed,omitempty"`
  1501  	MerkleRoot        *MerkleRoot              `codec:"merkleRoot,omitempty" json:"merkleRoot,omitempty"`
  1502  	OutboxID          *OutboxID                `codec:"outboxID,omitempty" json:"outboxID,omitempty"`
  1503  	OutboxInfo        *OutboxInfo              `codec:"outboxInfo,omitempty" json:"outboxInfo,omitempty"`
  1504  	EphemeralMetadata *MsgEphemeralMetadata    `codec:"em,omitempty" json:"em,omitempty"`
  1505  	Rtime             gregor1.Time             `codec:"rt" json:"rt"`
  1506  	HasPairwiseMacs   bool                     `codec:"pm" json:"pm"`
  1507  	BotUID            *gregor1.UID             `codec:"b,omitempty" json:"b,omitempty"`
  1508  }
  1509  
  1510  func (o MessageClientHeaderVerified) DeepCopy() MessageClientHeaderVerified {
  1511  	return MessageClientHeaderVerified{
  1512  		Conv:        o.Conv.DeepCopy(),
  1513  		TlfName:     o.TlfName,
  1514  		TlfPublic:   o.TlfPublic,
  1515  		MessageType: o.MessageType.DeepCopy(),
  1516  		Prev: (func(x []MessagePreviousPointer) []MessagePreviousPointer {
  1517  			if x == nil {
  1518  				return nil
  1519  			}
  1520  			ret := make([]MessagePreviousPointer, len(x))
  1521  			for i, v := range x {
  1522  				vCopy := v.DeepCopy()
  1523  				ret[i] = vCopy
  1524  			}
  1525  			return ret
  1526  		})(o.Prev),
  1527  		Sender:       o.Sender.DeepCopy(),
  1528  		SenderDevice: o.SenderDevice.DeepCopy(),
  1529  		KbfsCryptKeysUsed: (func(x *bool) *bool {
  1530  			if x == nil {
  1531  				return nil
  1532  			}
  1533  			tmp := (*x)
  1534  			return &tmp
  1535  		})(o.KbfsCryptKeysUsed),
  1536  		MerkleRoot: (func(x *MerkleRoot) *MerkleRoot {
  1537  			if x == nil {
  1538  				return nil
  1539  			}
  1540  			tmp := (*x).DeepCopy()
  1541  			return &tmp
  1542  		})(o.MerkleRoot),
  1543  		OutboxID: (func(x *OutboxID) *OutboxID {
  1544  			if x == nil {
  1545  				return nil
  1546  			}
  1547  			tmp := (*x).DeepCopy()
  1548  			return &tmp
  1549  		})(o.OutboxID),
  1550  		OutboxInfo: (func(x *OutboxInfo) *OutboxInfo {
  1551  			if x == nil {
  1552  				return nil
  1553  			}
  1554  			tmp := (*x).DeepCopy()
  1555  			return &tmp
  1556  		})(o.OutboxInfo),
  1557  		EphemeralMetadata: (func(x *MsgEphemeralMetadata) *MsgEphemeralMetadata {
  1558  			if x == nil {
  1559  				return nil
  1560  			}
  1561  			tmp := (*x).DeepCopy()
  1562  			return &tmp
  1563  		})(o.EphemeralMetadata),
  1564  		Rtime:           o.Rtime.DeepCopy(),
  1565  		HasPairwiseMacs: o.HasPairwiseMacs,
  1566  		BotUID: (func(x *gregor1.UID) *gregor1.UID {
  1567  			if x == nil {
  1568  				return nil
  1569  			}
  1570  			tmp := (*x).DeepCopy()
  1571  			return &tmp
  1572  		})(o.BotUID),
  1573  	}
  1574  }
  1575  
  1576  type EncryptedData struct {
  1577  	V int    `codec:"v" json:"v"`
  1578  	E []byte `codec:"e" json:"e"`
  1579  	N []byte `codec:"n" json:"n"`
  1580  }
  1581  
  1582  func (o EncryptedData) DeepCopy() EncryptedData {
  1583  	return EncryptedData{
  1584  		V: o.V,
  1585  		E: (func(x []byte) []byte {
  1586  			if x == nil {
  1587  				return nil
  1588  			}
  1589  			return append([]byte{}, x...)
  1590  		})(o.E),
  1591  		N: (func(x []byte) []byte {
  1592  			if x == nil {
  1593  				return nil
  1594  			}
  1595  			return append([]byte{}, x...)
  1596  		})(o.N),
  1597  	}
  1598  }
  1599  
  1600  type SignEncryptedData struct {
  1601  	V int    `codec:"v" json:"v"`
  1602  	E []byte `codec:"e" json:"e"`
  1603  	N []byte `codec:"n" json:"n"`
  1604  }
  1605  
  1606  func (o SignEncryptedData) DeepCopy() SignEncryptedData {
  1607  	return SignEncryptedData{
  1608  		V: o.V,
  1609  		E: (func(x []byte) []byte {
  1610  			if x == nil {
  1611  				return nil
  1612  			}
  1613  			return append([]byte{}, x...)
  1614  		})(o.E),
  1615  		N: (func(x []byte) []byte {
  1616  			if x == nil {
  1617  				return nil
  1618  			}
  1619  			return append([]byte{}, x...)
  1620  		})(o.N),
  1621  	}
  1622  }
  1623  
  1624  type SealedData struct {
  1625  	V int    `codec:"v" json:"v"`
  1626  	E []byte `codec:"e" json:"e"`
  1627  	N []byte `codec:"n" json:"n"`
  1628  }
  1629  
  1630  func (o SealedData) DeepCopy() SealedData {
  1631  	return SealedData{
  1632  		V: o.V,
  1633  		E: (func(x []byte) []byte {
  1634  			if x == nil {
  1635  				return nil
  1636  			}
  1637  			return append([]byte{}, x...)
  1638  		})(o.E),
  1639  		N: (func(x []byte) []byte {
  1640  			if x == nil {
  1641  				return nil
  1642  			}
  1643  			return append([]byte{}, x...)
  1644  		})(o.N),
  1645  	}
  1646  }
  1647  
  1648  type SignatureInfo struct {
  1649  	V int    `codec:"v" json:"v"`
  1650  	S []byte `codec:"s" json:"s"`
  1651  	K []byte `codec:"k" json:"k"`
  1652  }
  1653  
  1654  func (o SignatureInfo) DeepCopy() SignatureInfo {
  1655  	return SignatureInfo{
  1656  		V: o.V,
  1657  		S: (func(x []byte) []byte {
  1658  			if x == nil {
  1659  				return nil
  1660  			}
  1661  			return append([]byte{}, x...)
  1662  		})(o.S),
  1663  		K: (func(x []byte) []byte {
  1664  			if x == nil {
  1665  				return nil
  1666  			}
  1667  			return append([]byte{}, x...)
  1668  		})(o.K),
  1669  	}
  1670  }
  1671  
  1672  type MerkleRoot struct {
  1673  	Seqno int64  `codec:"seqno" json:"seqno"`
  1674  	Hash  []byte `codec:"hash" json:"hash"`
  1675  }
  1676  
  1677  func (o MerkleRoot) DeepCopy() MerkleRoot {
  1678  	return MerkleRoot{
  1679  		Seqno: o.Seqno,
  1680  		Hash: (func(x []byte) []byte {
  1681  			if x == nil {
  1682  				return nil
  1683  			}
  1684  			return append([]byte{}, x...)
  1685  		})(o.Hash),
  1686  	}
  1687  }
  1688  
  1689  type InboxResType int
  1690  
  1691  const (
  1692  	InboxResType_VERSIONHIT InboxResType = 0
  1693  	InboxResType_FULL       InboxResType = 1
  1694  )
  1695  
  1696  func (o InboxResType) DeepCopy() InboxResType { return o }
  1697  
  1698  var InboxResTypeMap = map[string]InboxResType{
  1699  	"VERSIONHIT": 0,
  1700  	"FULL":       1,
  1701  }
  1702  
  1703  var InboxResTypeRevMap = map[InboxResType]string{
  1704  	0: "VERSIONHIT",
  1705  	1: "FULL",
  1706  }
  1707  
  1708  func (e InboxResType) String() string {
  1709  	if v, ok := InboxResTypeRevMap[e]; ok {
  1710  		return v
  1711  	}
  1712  	return fmt.Sprintf("%v", int(e))
  1713  }
  1714  
  1715  type InboxViewFull struct {
  1716  	Vers          InboxVers      `codec:"vers" json:"vers"`
  1717  	Conversations []Conversation `codec:"conversations" json:"conversations"`
  1718  	Pagination    *Pagination    `codec:"pagination,omitempty" json:"pagination,omitempty"`
  1719  }
  1720  
  1721  func (o InboxViewFull) DeepCopy() InboxViewFull {
  1722  	return InboxViewFull{
  1723  		Vers: o.Vers.DeepCopy(),
  1724  		Conversations: (func(x []Conversation) []Conversation {
  1725  			if x == nil {
  1726  				return nil
  1727  			}
  1728  			ret := make([]Conversation, len(x))
  1729  			for i, v := range x {
  1730  				vCopy := v.DeepCopy()
  1731  				ret[i] = vCopy
  1732  			}
  1733  			return ret
  1734  		})(o.Conversations),
  1735  		Pagination: (func(x *Pagination) *Pagination {
  1736  			if x == nil {
  1737  				return nil
  1738  			}
  1739  			tmp := (*x).DeepCopy()
  1740  			return &tmp
  1741  		})(o.Pagination),
  1742  	}
  1743  }
  1744  
  1745  type InboxView struct {
  1746  	Rtype__ InboxResType   `codec:"rtype" json:"rtype"`
  1747  	Full__  *InboxViewFull `codec:"full,omitempty" json:"full,omitempty"`
  1748  }
  1749  
  1750  func (o *InboxView) Rtype() (ret InboxResType, err error) {
  1751  	switch o.Rtype__ {
  1752  	case InboxResType_FULL:
  1753  		if o.Full__ == nil {
  1754  			err = errors.New("unexpected nil value for Full__")
  1755  			return ret, err
  1756  		}
  1757  	}
  1758  	return o.Rtype__, nil
  1759  }
  1760  
  1761  func (o InboxView) Full() (res InboxViewFull) {
  1762  	if o.Rtype__ != InboxResType_FULL {
  1763  		panic("wrong case accessed")
  1764  	}
  1765  	if o.Full__ == nil {
  1766  		return
  1767  	}
  1768  	return *o.Full__
  1769  }
  1770  
  1771  func NewInboxViewWithVersionhit() InboxView {
  1772  	return InboxView{
  1773  		Rtype__: InboxResType_VERSIONHIT,
  1774  	}
  1775  }
  1776  
  1777  func NewInboxViewWithFull(v InboxViewFull) InboxView {
  1778  	return InboxView{
  1779  		Rtype__: InboxResType_FULL,
  1780  		Full__:  &v,
  1781  	}
  1782  }
  1783  
  1784  func (o InboxView) DeepCopy() InboxView {
  1785  	return InboxView{
  1786  		Rtype__: o.Rtype__.DeepCopy(),
  1787  		Full__: (func(x *InboxViewFull) *InboxViewFull {
  1788  			if x == nil {
  1789  				return nil
  1790  			}
  1791  			tmp := (*x).DeepCopy()
  1792  			return &tmp
  1793  		})(o.Full__),
  1794  	}
  1795  }
  1796  
  1797  type RetentionPolicyType int
  1798  
  1799  const (
  1800  	RetentionPolicyType_NONE      RetentionPolicyType = 0
  1801  	RetentionPolicyType_RETAIN    RetentionPolicyType = 1
  1802  	RetentionPolicyType_EXPIRE    RetentionPolicyType = 2
  1803  	RetentionPolicyType_INHERIT   RetentionPolicyType = 3
  1804  	RetentionPolicyType_EPHEMERAL RetentionPolicyType = 4
  1805  )
  1806  
  1807  func (o RetentionPolicyType) DeepCopy() RetentionPolicyType { return o }
  1808  
  1809  var RetentionPolicyTypeMap = map[string]RetentionPolicyType{
  1810  	"NONE":      0,
  1811  	"RETAIN":    1,
  1812  	"EXPIRE":    2,
  1813  	"INHERIT":   3,
  1814  	"EPHEMERAL": 4,
  1815  }
  1816  
  1817  var RetentionPolicyTypeRevMap = map[RetentionPolicyType]string{
  1818  	0: "NONE",
  1819  	1: "RETAIN",
  1820  	2: "EXPIRE",
  1821  	3: "INHERIT",
  1822  	4: "EPHEMERAL",
  1823  }
  1824  
  1825  func (e RetentionPolicyType) String() string {
  1826  	if v, ok := RetentionPolicyTypeRevMap[e]; ok {
  1827  		return v
  1828  	}
  1829  	return fmt.Sprintf("%v", int(e))
  1830  }
  1831  
  1832  type RetentionPolicy struct {
  1833  	Typ__       RetentionPolicyType `codec:"typ" json:"typ"`
  1834  	Retain__    *RpRetain           `codec:"retain,omitempty" json:"retain,omitempty"`
  1835  	Expire__    *RpExpire           `codec:"expire,omitempty" json:"expire,omitempty"`
  1836  	Inherit__   *RpInherit          `codec:"inherit,omitempty" json:"inherit,omitempty"`
  1837  	Ephemeral__ *RpEphemeral        `codec:"ephemeral,omitempty" json:"ephemeral,omitempty"`
  1838  }
  1839  
  1840  func (o *RetentionPolicy) Typ() (ret RetentionPolicyType, err error) {
  1841  	switch o.Typ__ {
  1842  	case RetentionPolicyType_RETAIN:
  1843  		if o.Retain__ == nil {
  1844  			err = errors.New("unexpected nil value for Retain__")
  1845  			return ret, err
  1846  		}
  1847  	case RetentionPolicyType_EXPIRE:
  1848  		if o.Expire__ == nil {
  1849  			err = errors.New("unexpected nil value for Expire__")
  1850  			return ret, err
  1851  		}
  1852  	case RetentionPolicyType_INHERIT:
  1853  		if o.Inherit__ == nil {
  1854  			err = errors.New("unexpected nil value for Inherit__")
  1855  			return ret, err
  1856  		}
  1857  	case RetentionPolicyType_EPHEMERAL:
  1858  		if o.Ephemeral__ == nil {
  1859  			err = errors.New("unexpected nil value for Ephemeral__")
  1860  			return ret, err
  1861  		}
  1862  	}
  1863  	return o.Typ__, nil
  1864  }
  1865  
  1866  func (o RetentionPolicy) Retain() (res RpRetain) {
  1867  	if o.Typ__ != RetentionPolicyType_RETAIN {
  1868  		panic("wrong case accessed")
  1869  	}
  1870  	if o.Retain__ == nil {
  1871  		return
  1872  	}
  1873  	return *o.Retain__
  1874  }
  1875  
  1876  func (o RetentionPolicy) Expire() (res RpExpire) {
  1877  	if o.Typ__ != RetentionPolicyType_EXPIRE {
  1878  		panic("wrong case accessed")
  1879  	}
  1880  	if o.Expire__ == nil {
  1881  		return
  1882  	}
  1883  	return *o.Expire__
  1884  }
  1885  
  1886  func (o RetentionPolicy) Inherit() (res RpInherit) {
  1887  	if o.Typ__ != RetentionPolicyType_INHERIT {
  1888  		panic("wrong case accessed")
  1889  	}
  1890  	if o.Inherit__ == nil {
  1891  		return
  1892  	}
  1893  	return *o.Inherit__
  1894  }
  1895  
  1896  func (o RetentionPolicy) Ephemeral() (res RpEphemeral) {
  1897  	if o.Typ__ != RetentionPolicyType_EPHEMERAL {
  1898  		panic("wrong case accessed")
  1899  	}
  1900  	if o.Ephemeral__ == nil {
  1901  		return
  1902  	}
  1903  	return *o.Ephemeral__
  1904  }
  1905  
  1906  func NewRetentionPolicyWithRetain(v RpRetain) RetentionPolicy {
  1907  	return RetentionPolicy{
  1908  		Typ__:    RetentionPolicyType_RETAIN,
  1909  		Retain__: &v,
  1910  	}
  1911  }
  1912  
  1913  func NewRetentionPolicyWithExpire(v RpExpire) RetentionPolicy {
  1914  	return RetentionPolicy{
  1915  		Typ__:    RetentionPolicyType_EXPIRE,
  1916  		Expire__: &v,
  1917  	}
  1918  }
  1919  
  1920  func NewRetentionPolicyWithInherit(v RpInherit) RetentionPolicy {
  1921  	return RetentionPolicy{
  1922  		Typ__:     RetentionPolicyType_INHERIT,
  1923  		Inherit__: &v,
  1924  	}
  1925  }
  1926  
  1927  func NewRetentionPolicyWithEphemeral(v RpEphemeral) RetentionPolicy {
  1928  	return RetentionPolicy{
  1929  		Typ__:       RetentionPolicyType_EPHEMERAL,
  1930  		Ephemeral__: &v,
  1931  	}
  1932  }
  1933  
  1934  func (o RetentionPolicy) DeepCopy() RetentionPolicy {
  1935  	return RetentionPolicy{
  1936  		Typ__: o.Typ__.DeepCopy(),
  1937  		Retain__: (func(x *RpRetain) *RpRetain {
  1938  			if x == nil {
  1939  				return nil
  1940  			}
  1941  			tmp := (*x).DeepCopy()
  1942  			return &tmp
  1943  		})(o.Retain__),
  1944  		Expire__: (func(x *RpExpire) *RpExpire {
  1945  			if x == nil {
  1946  				return nil
  1947  			}
  1948  			tmp := (*x).DeepCopy()
  1949  			return &tmp
  1950  		})(o.Expire__),
  1951  		Inherit__: (func(x *RpInherit) *RpInherit {
  1952  			if x == nil {
  1953  				return nil
  1954  			}
  1955  			tmp := (*x).DeepCopy()
  1956  			return &tmp
  1957  		})(o.Inherit__),
  1958  		Ephemeral__: (func(x *RpEphemeral) *RpEphemeral {
  1959  			if x == nil {
  1960  				return nil
  1961  			}
  1962  			tmp := (*x).DeepCopy()
  1963  			return &tmp
  1964  		})(o.Ephemeral__),
  1965  	}
  1966  }
  1967  
  1968  type RpRetain struct {
  1969  }
  1970  
  1971  func (o RpRetain) DeepCopy() RpRetain {
  1972  	return RpRetain{}
  1973  }
  1974  
  1975  type RpExpire struct {
  1976  	Age gregor1.DurationSec `codec:"age" json:"age"`
  1977  }
  1978  
  1979  func (o RpExpire) DeepCopy() RpExpire {
  1980  	return RpExpire{
  1981  		Age: o.Age.DeepCopy(),
  1982  	}
  1983  }
  1984  
  1985  type RpInherit struct {
  1986  }
  1987  
  1988  func (o RpInherit) DeepCopy() RpInherit {
  1989  	return RpInherit{}
  1990  }
  1991  
  1992  type RpEphemeral struct {
  1993  	Age gregor1.DurationSec `codec:"age" json:"age"`
  1994  }
  1995  
  1996  func (o RpEphemeral) DeepCopy() RpEphemeral {
  1997  	return RpEphemeral{
  1998  		Age: o.Age.DeepCopy(),
  1999  	}
  2000  }
  2001  
  2002  type GetThreadReason int
  2003  
  2004  const (
  2005  	GetThreadReason_GENERAL            GetThreadReason = 0
  2006  	GetThreadReason_PUSH               GetThreadReason = 1
  2007  	GetThreadReason_FOREGROUND         GetThreadReason = 2
  2008  	GetThreadReason_BACKGROUNDCONVLOAD GetThreadReason = 3
  2009  	GetThreadReason_FIXRETRY           GetThreadReason = 4
  2010  	GetThreadReason_PREPARE            GetThreadReason = 5
  2011  	GetThreadReason_SEARCHER           GetThreadReason = 6
  2012  	GetThreadReason_INDEXED_SEARCH     GetThreadReason = 7
  2013  	GetThreadReason_KBFSFILEACTIVITY   GetThreadReason = 8
  2014  	GetThreadReason_COINFLIP           GetThreadReason = 9
  2015  	GetThreadReason_BOTCOMMANDS        GetThreadReason = 10
  2016  	GetThreadReason_EMOJISOURCE        GetThreadReason = 11
  2017  	GetThreadReason_FORWARDMSG         GetThreadReason = 12
  2018  	GetThreadReason_LOCALIZE           GetThreadReason = 13
  2019  	GetThreadReason_ARCHIVE            GetThreadReason = 14
  2020  )
  2021  
  2022  func (o GetThreadReason) DeepCopy() GetThreadReason { return o }
  2023  
  2024  var GetThreadReasonMap = map[string]GetThreadReason{
  2025  	"GENERAL":            0,
  2026  	"PUSH":               1,
  2027  	"FOREGROUND":         2,
  2028  	"BACKGROUNDCONVLOAD": 3,
  2029  	"FIXRETRY":           4,
  2030  	"PREPARE":            5,
  2031  	"SEARCHER":           6,
  2032  	"INDEXED_SEARCH":     7,
  2033  	"KBFSFILEACTIVITY":   8,
  2034  	"COINFLIP":           9,
  2035  	"BOTCOMMANDS":        10,
  2036  	"EMOJISOURCE":        11,
  2037  	"FORWARDMSG":         12,
  2038  	"LOCALIZE":           13,
  2039  	"ARCHIVE":            14,
  2040  }
  2041  
  2042  var GetThreadReasonRevMap = map[GetThreadReason]string{
  2043  	0:  "GENERAL",
  2044  	1:  "PUSH",
  2045  	2:  "FOREGROUND",
  2046  	3:  "BACKGROUNDCONVLOAD",
  2047  	4:  "FIXRETRY",
  2048  	5:  "PREPARE",
  2049  	6:  "SEARCHER",
  2050  	7:  "INDEXED_SEARCH",
  2051  	8:  "KBFSFILEACTIVITY",
  2052  	9:  "COINFLIP",
  2053  	10: "BOTCOMMANDS",
  2054  	11: "EMOJISOURCE",
  2055  	12: "FORWARDMSG",
  2056  	13: "LOCALIZE",
  2057  	14: "ARCHIVE",
  2058  }
  2059  
  2060  func (e GetThreadReason) String() string {
  2061  	if v, ok := GetThreadReasonRevMap[e]; ok {
  2062  		return v
  2063  	}
  2064  	return fmt.Sprintf("%v", int(e))
  2065  }
  2066  
  2067  type ReIndexingMode int
  2068  
  2069  const (
  2070  	ReIndexingMode_NONE            ReIndexingMode = 0
  2071  	ReIndexingMode_PRESEARCH_SYNC  ReIndexingMode = 1
  2072  	ReIndexingMode_POSTSEARCH_SYNC ReIndexingMode = 2
  2073  )
  2074  
  2075  func (o ReIndexingMode) DeepCopy() ReIndexingMode { return o }
  2076  
  2077  var ReIndexingModeMap = map[string]ReIndexingMode{
  2078  	"NONE":            0,
  2079  	"PRESEARCH_SYNC":  1,
  2080  	"POSTSEARCH_SYNC": 2,
  2081  }
  2082  
  2083  var ReIndexingModeRevMap = map[ReIndexingMode]string{
  2084  	0: "NONE",
  2085  	1: "PRESEARCH_SYNC",
  2086  	2: "POSTSEARCH_SYNC",
  2087  }
  2088  
  2089  func (e ReIndexingMode) String() string {
  2090  	if v, ok := ReIndexingModeRevMap[e]; ok {
  2091  		return v
  2092  	}
  2093  	return fmt.Sprintf("%v", int(e))
  2094  }
  2095  
  2096  type SearchOpts struct {
  2097  	IsRegex           bool            `codec:"isRegex" json:"isRegex"`
  2098  	SentBy            string          `codec:"sentBy" json:"sentBy"`
  2099  	SentTo            string          `codec:"sentTo" json:"sentTo"`
  2100  	MatchMentions     bool            `codec:"matchMentions" json:"matchMentions"`
  2101  	SentBefore        gregor1.Time    `codec:"sentBefore" json:"sentBefore"`
  2102  	SentAfter         gregor1.Time    `codec:"sentAfter" json:"sentAfter"`
  2103  	MaxHits           int             `codec:"maxHits" json:"maxHits"`
  2104  	MaxMessages       int             `codec:"maxMessages" json:"maxMessages"`
  2105  	BeforeContext     int             `codec:"beforeContext" json:"beforeContext"`
  2106  	AfterContext      int             `codec:"afterContext" json:"afterContext"`
  2107  	InitialPagination *Pagination     `codec:"initialPagination,omitempty" json:"initialPagination,omitempty"`
  2108  	ReindexMode       ReIndexingMode  `codec:"reindexMode" json:"reindexMode"`
  2109  	MaxConvsSearched  int             `codec:"maxConvsSearched" json:"maxConvsSearched"`
  2110  	MaxConvsHit       int             `codec:"maxConvsHit" json:"maxConvsHit"`
  2111  	ConvID            *ConversationID `codec:"convID,omitempty" json:"convID,omitempty"`
  2112  	MaxNameConvs      int             `codec:"maxNameConvs" json:"maxNameConvs"`
  2113  	MaxTeams          int             `codec:"maxTeams" json:"maxTeams"`
  2114  	MaxBots           int             `codec:"maxBots" json:"maxBots"`
  2115  	SkipBotCache      bool            `codec:"skipBotCache" json:"skipBotCache"`
  2116  }
  2117  
  2118  func (o SearchOpts) DeepCopy() SearchOpts {
  2119  	return SearchOpts{
  2120  		IsRegex:       o.IsRegex,
  2121  		SentBy:        o.SentBy,
  2122  		SentTo:        o.SentTo,
  2123  		MatchMentions: o.MatchMentions,
  2124  		SentBefore:    o.SentBefore.DeepCopy(),
  2125  		SentAfter:     o.SentAfter.DeepCopy(),
  2126  		MaxHits:       o.MaxHits,
  2127  		MaxMessages:   o.MaxMessages,
  2128  		BeforeContext: o.BeforeContext,
  2129  		AfterContext:  o.AfterContext,
  2130  		InitialPagination: (func(x *Pagination) *Pagination {
  2131  			if x == nil {
  2132  				return nil
  2133  			}
  2134  			tmp := (*x).DeepCopy()
  2135  			return &tmp
  2136  		})(o.InitialPagination),
  2137  		ReindexMode:      o.ReindexMode.DeepCopy(),
  2138  		MaxConvsSearched: o.MaxConvsSearched,
  2139  		MaxConvsHit:      o.MaxConvsHit,
  2140  		ConvID: (func(x *ConversationID) *ConversationID {
  2141  			if x == nil {
  2142  				return nil
  2143  			}
  2144  			tmp := (*x).DeepCopy()
  2145  			return &tmp
  2146  		})(o.ConvID),
  2147  		MaxNameConvs: o.MaxNameConvs,
  2148  		MaxTeams:     o.MaxTeams,
  2149  		MaxBots:      o.MaxBots,
  2150  		SkipBotCache: o.SkipBotCache,
  2151  	}
  2152  }
  2153  
  2154  type EmptyStruct struct {
  2155  }
  2156  
  2157  func (o EmptyStruct) DeepCopy() EmptyStruct {
  2158  	return EmptyStruct{}
  2159  }
  2160  
  2161  type ChatSearchMatch struct {
  2162  	StartIndex int    `codec:"startIndex" json:"startIndex"`
  2163  	EndIndex   int    `codec:"endIndex" json:"endIndex"`
  2164  	Match      string `codec:"match" json:"match"`
  2165  }
  2166  
  2167  func (o ChatSearchMatch) DeepCopy() ChatSearchMatch {
  2168  	return ChatSearchMatch{
  2169  		StartIndex: o.StartIndex,
  2170  		EndIndex:   o.EndIndex,
  2171  		Match:      o.Match,
  2172  	}
  2173  }
  2174  
  2175  type ChatSearchHit struct {
  2176  	BeforeMessages []UIMessage       `codec:"beforeMessages" json:"beforeMessages"`
  2177  	HitMessage     UIMessage         `codec:"hitMessage" json:"hitMessage"`
  2178  	AfterMessages  []UIMessage       `codec:"afterMessages" json:"afterMessages"`
  2179  	Matches        []ChatSearchMatch `codec:"matches" json:"matches"`
  2180  }
  2181  
  2182  func (o ChatSearchHit) DeepCopy() ChatSearchHit {
  2183  	return ChatSearchHit{
  2184  		BeforeMessages: (func(x []UIMessage) []UIMessage {
  2185  			if x == nil {
  2186  				return nil
  2187  			}
  2188  			ret := make([]UIMessage, len(x))
  2189  			for i, v := range x {
  2190  				vCopy := v.DeepCopy()
  2191  				ret[i] = vCopy
  2192  			}
  2193  			return ret
  2194  		})(o.BeforeMessages),
  2195  		HitMessage: o.HitMessage.DeepCopy(),
  2196  		AfterMessages: (func(x []UIMessage) []UIMessage {
  2197  			if x == nil {
  2198  				return nil
  2199  			}
  2200  			ret := make([]UIMessage, len(x))
  2201  			for i, v := range x {
  2202  				vCopy := v.DeepCopy()
  2203  				ret[i] = vCopy
  2204  			}
  2205  			return ret
  2206  		})(o.AfterMessages),
  2207  		Matches: (func(x []ChatSearchMatch) []ChatSearchMatch {
  2208  			if x == nil {
  2209  				return nil
  2210  			}
  2211  			ret := make([]ChatSearchMatch, len(x))
  2212  			for i, v := range x {
  2213  				vCopy := v.DeepCopy()
  2214  				ret[i] = vCopy
  2215  			}
  2216  			return ret
  2217  		})(o.Matches),
  2218  	}
  2219  }
  2220  
  2221  type ChatSearchInboxHit struct {
  2222  	ConvID   ConversationID  `codec:"convID" json:"convID"`
  2223  	TeamType TeamType        `codec:"teamType" json:"teamType"`
  2224  	ConvName string          `codec:"convName" json:"convName"`
  2225  	Query    string          `codec:"query" json:"query"`
  2226  	Time     gregor1.Time    `codec:"time" json:"time"`
  2227  	Hits     []ChatSearchHit `codec:"hits" json:"hits"`
  2228  }
  2229  
  2230  func (o ChatSearchInboxHit) DeepCopy() ChatSearchInboxHit {
  2231  	return ChatSearchInboxHit{
  2232  		ConvID:   o.ConvID.DeepCopy(),
  2233  		TeamType: o.TeamType.DeepCopy(),
  2234  		ConvName: o.ConvName,
  2235  		Query:    o.Query,
  2236  		Time:     o.Time.DeepCopy(),
  2237  		Hits: (func(x []ChatSearchHit) []ChatSearchHit {
  2238  			if x == nil {
  2239  				return nil
  2240  			}
  2241  			ret := make([]ChatSearchHit, len(x))
  2242  			for i, v := range x {
  2243  				vCopy := v.DeepCopy()
  2244  				ret[i] = vCopy
  2245  			}
  2246  			return ret
  2247  		})(o.Hits),
  2248  	}
  2249  }
  2250  
  2251  type ChatSearchInboxResults struct {
  2252  	Hits           []ChatSearchInboxHit `codec:"hits" json:"hits"`
  2253  	PercentIndexed int                  `codec:"percentIndexed" json:"percentIndexed"`
  2254  }
  2255  
  2256  func (o ChatSearchInboxResults) DeepCopy() ChatSearchInboxResults {
  2257  	return ChatSearchInboxResults{
  2258  		Hits: (func(x []ChatSearchInboxHit) []ChatSearchInboxHit {
  2259  			if x == nil {
  2260  				return nil
  2261  			}
  2262  			ret := make([]ChatSearchInboxHit, len(x))
  2263  			for i, v := range x {
  2264  				vCopy := v.DeepCopy()
  2265  				ret[i] = vCopy
  2266  			}
  2267  			return ret
  2268  		})(o.Hits),
  2269  		PercentIndexed: o.PercentIndexed,
  2270  	}
  2271  }
  2272  
  2273  type ChatSearchInboxDone struct {
  2274  	NumHits        int  `codec:"numHits" json:"numHits"`
  2275  	NumConvs       int  `codec:"numConvs" json:"numConvs"`
  2276  	PercentIndexed int  `codec:"percentIndexed" json:"percentIndexed"`
  2277  	Delegated      bool `codec:"delegated" json:"delegated"`
  2278  }
  2279  
  2280  func (o ChatSearchInboxDone) DeepCopy() ChatSearchInboxDone {
  2281  	return ChatSearchInboxDone{
  2282  		NumHits:        o.NumHits,
  2283  		NumConvs:       o.NumConvs,
  2284  		PercentIndexed: o.PercentIndexed,
  2285  		Delegated:      o.Delegated,
  2286  	}
  2287  }
  2288  
  2289  type ChatSearchIndexStatus struct {
  2290  	PercentIndexed int `codec:"percentIndexed" json:"percentIndexed"`
  2291  }
  2292  
  2293  func (o ChatSearchIndexStatus) DeepCopy() ChatSearchIndexStatus {
  2294  	return ChatSearchIndexStatus{
  2295  		PercentIndexed: o.PercentIndexed,
  2296  	}
  2297  }
  2298  
  2299  type AssetMetadataImage struct {
  2300  	Width     int       `codec:"width" json:"width"`
  2301  	Height    int       `codec:"height" json:"height"`
  2302  	AudioAmps []float64 `codec:"audioAmps" json:"audioAmps"`
  2303  }
  2304  
  2305  func (o AssetMetadataImage) DeepCopy() AssetMetadataImage {
  2306  	return AssetMetadataImage{
  2307  		Width:  o.Width,
  2308  		Height: o.Height,
  2309  		AudioAmps: (func(x []float64) []float64 {
  2310  			if x == nil {
  2311  				return nil
  2312  			}
  2313  			ret := make([]float64, len(x))
  2314  			for i, v := range x {
  2315  				vCopy := v
  2316  				ret[i] = vCopy
  2317  			}
  2318  			return ret
  2319  		})(o.AudioAmps),
  2320  	}
  2321  }
  2322  
  2323  type AssetMetadataVideo struct {
  2324  	Width      int  `codec:"width" json:"width"`
  2325  	Height     int  `codec:"height" json:"height"`
  2326  	DurationMs int  `codec:"durationMs" json:"durationMs"`
  2327  	IsAudio    bool `codec:"isAudio" json:"isAudio"`
  2328  }
  2329  
  2330  func (o AssetMetadataVideo) DeepCopy() AssetMetadataVideo {
  2331  	return AssetMetadataVideo{
  2332  		Width:      o.Width,
  2333  		Height:     o.Height,
  2334  		DurationMs: o.DurationMs,
  2335  		IsAudio:    o.IsAudio,
  2336  	}
  2337  }
  2338  
  2339  type AssetMetadataType int
  2340  
  2341  const (
  2342  	AssetMetadataType_NONE  AssetMetadataType = 0
  2343  	AssetMetadataType_IMAGE AssetMetadataType = 1
  2344  	AssetMetadataType_VIDEO AssetMetadataType = 2
  2345  )
  2346  
  2347  func (o AssetMetadataType) DeepCopy() AssetMetadataType { return o }
  2348  
  2349  var AssetMetadataTypeMap = map[string]AssetMetadataType{
  2350  	"NONE":  0,
  2351  	"IMAGE": 1,
  2352  	"VIDEO": 2,
  2353  }
  2354  
  2355  var AssetMetadataTypeRevMap = map[AssetMetadataType]string{
  2356  	0: "NONE",
  2357  	1: "IMAGE",
  2358  	2: "VIDEO",
  2359  }
  2360  
  2361  type AssetMetadata struct {
  2362  	AssetType__ AssetMetadataType   `codec:"assetType" json:"assetType"`
  2363  	Image__     *AssetMetadataImage `codec:"image,omitempty" json:"image,omitempty"`
  2364  	Video__     *AssetMetadataVideo `codec:"video,omitempty" json:"video,omitempty"`
  2365  }
  2366  
  2367  func (o *AssetMetadata) AssetType() (ret AssetMetadataType, err error) {
  2368  	switch o.AssetType__ {
  2369  	case AssetMetadataType_IMAGE:
  2370  		if o.Image__ == nil {
  2371  			err = errors.New("unexpected nil value for Image__")
  2372  			return ret, err
  2373  		}
  2374  	case AssetMetadataType_VIDEO:
  2375  		if o.Video__ == nil {
  2376  			err = errors.New("unexpected nil value for Video__")
  2377  			return ret, err
  2378  		}
  2379  	}
  2380  	return o.AssetType__, nil
  2381  }
  2382  
  2383  func (o AssetMetadata) Image() (res AssetMetadataImage) {
  2384  	if o.AssetType__ != AssetMetadataType_IMAGE {
  2385  		panic("wrong case accessed")
  2386  	}
  2387  	if o.Image__ == nil {
  2388  		return
  2389  	}
  2390  	return *o.Image__
  2391  }
  2392  
  2393  func (o AssetMetadata) Video() (res AssetMetadataVideo) {
  2394  	if o.AssetType__ != AssetMetadataType_VIDEO {
  2395  		panic("wrong case accessed")
  2396  	}
  2397  	if o.Video__ == nil {
  2398  		return
  2399  	}
  2400  	return *o.Video__
  2401  }
  2402  
  2403  func NewAssetMetadataWithImage(v AssetMetadataImage) AssetMetadata {
  2404  	return AssetMetadata{
  2405  		AssetType__: AssetMetadataType_IMAGE,
  2406  		Image__:     &v,
  2407  	}
  2408  }
  2409  
  2410  func NewAssetMetadataWithVideo(v AssetMetadataVideo) AssetMetadata {
  2411  	return AssetMetadata{
  2412  		AssetType__: AssetMetadataType_VIDEO,
  2413  		Video__:     &v,
  2414  	}
  2415  }
  2416  
  2417  func (o AssetMetadata) DeepCopy() AssetMetadata {
  2418  	return AssetMetadata{
  2419  		AssetType__: o.AssetType__.DeepCopy(),
  2420  		Image__: (func(x *AssetMetadataImage) *AssetMetadataImage {
  2421  			if x == nil {
  2422  				return nil
  2423  			}
  2424  			tmp := (*x).DeepCopy()
  2425  			return &tmp
  2426  		})(o.Image__),
  2427  		Video__: (func(x *AssetMetadataVideo) *AssetMetadataVideo {
  2428  			if x == nil {
  2429  				return nil
  2430  			}
  2431  			tmp := (*x).DeepCopy()
  2432  			return &tmp
  2433  		})(o.Video__),
  2434  	}
  2435  }
  2436  
  2437  type AssetTag int
  2438  
  2439  const (
  2440  	AssetTag_PRIMARY AssetTag = 0
  2441  )
  2442  
  2443  func (o AssetTag) DeepCopy() AssetTag { return o }
  2444  
  2445  var AssetTagMap = map[string]AssetTag{
  2446  	"PRIMARY": 0,
  2447  }
  2448  
  2449  var AssetTagRevMap = map[AssetTag]string{
  2450  	0: "PRIMARY",
  2451  }
  2452  
  2453  type Asset struct {
  2454  	Filename  string        `codec:"filename" json:"filename"`
  2455  	Region    string        `codec:"region" json:"region"`
  2456  	Endpoint  string        `codec:"endpoint" json:"endpoint"`
  2457  	Bucket    string        `codec:"bucket" json:"bucket"`
  2458  	Path      string        `codec:"path" json:"path"`
  2459  	Size      int64         `codec:"size" json:"size"`
  2460  	MimeType  string        `codec:"mimeType" json:"mimeType"`
  2461  	EncHash   Hash          `codec:"encHash" json:"encHash"`
  2462  	PtHash    Hash          `codec:"ptHash" json:"ptHash"`
  2463  	Key       []byte        `codec:"key" json:"key"`
  2464  	VerifyKey []byte        `codec:"verifyKey" json:"verifyKey"`
  2465  	Title     string        `codec:"title" json:"title"`
  2466  	Nonce     []byte        `codec:"nonce" json:"nonce"`
  2467  	Metadata  AssetMetadata `codec:"metadata" json:"metadata"`
  2468  	Tag       AssetTag      `codec:"tag" json:"tag"`
  2469  }
  2470  
  2471  func (o Asset) DeepCopy() Asset {
  2472  	return Asset{
  2473  		Filename: o.Filename,
  2474  		Region:   o.Region,
  2475  		Endpoint: o.Endpoint,
  2476  		Bucket:   o.Bucket,
  2477  		Path:     o.Path,
  2478  		Size:     o.Size,
  2479  		MimeType: o.MimeType,
  2480  		EncHash:  o.EncHash.DeepCopy(),
  2481  		PtHash:   o.PtHash.DeepCopy(),
  2482  		Key: (func(x []byte) []byte {
  2483  			if x == nil {
  2484  				return nil
  2485  			}
  2486  			return append([]byte{}, x...)
  2487  		})(o.Key),
  2488  		VerifyKey: (func(x []byte) []byte {
  2489  			if x == nil {
  2490  				return nil
  2491  			}
  2492  			return append([]byte{}, x...)
  2493  		})(o.VerifyKey),
  2494  		Title: o.Title,
  2495  		Nonce: (func(x []byte) []byte {
  2496  			if x == nil {
  2497  				return nil
  2498  			}
  2499  			return append([]byte{}, x...)
  2500  		})(o.Nonce),
  2501  		Metadata: o.Metadata.DeepCopy(),
  2502  		Tag:      o.Tag.DeepCopy(),
  2503  	}
  2504  }
  2505  
  2506  type BotCommandsAdvertisementTyp int
  2507  
  2508  const (
  2509  	BotCommandsAdvertisementTyp_PUBLIC        BotCommandsAdvertisementTyp = 0
  2510  	BotCommandsAdvertisementTyp_TLFID_MEMBERS BotCommandsAdvertisementTyp = 1
  2511  	BotCommandsAdvertisementTyp_TLFID_CONVS   BotCommandsAdvertisementTyp = 2
  2512  	BotCommandsAdvertisementTyp_CONV          BotCommandsAdvertisementTyp = 3
  2513  )
  2514  
  2515  func (o BotCommandsAdvertisementTyp) DeepCopy() BotCommandsAdvertisementTyp { return o }
  2516  
  2517  var BotCommandsAdvertisementTypMap = map[string]BotCommandsAdvertisementTyp{
  2518  	"PUBLIC":        0,
  2519  	"TLFID_MEMBERS": 1,
  2520  	"TLFID_CONVS":   2,
  2521  	"CONV":          3,
  2522  }
  2523  
  2524  var BotCommandsAdvertisementTypRevMap = map[BotCommandsAdvertisementTyp]string{
  2525  	0: "PUBLIC",
  2526  	1: "TLFID_MEMBERS",
  2527  	2: "TLFID_CONVS",
  2528  	3: "CONV",
  2529  }
  2530  
  2531  func (e BotCommandsAdvertisementTyp) String() string {
  2532  	if v, ok := BotCommandsAdvertisementTypRevMap[e]; ok {
  2533  		return v
  2534  	}
  2535  	return fmt.Sprintf("%v", int(e))
  2536  }
  2537  
  2538  type TeamMember struct {
  2539  	Uid    gregor1.UID               `codec:"uid" json:"uid"`
  2540  	Role   keybase1.TeamRole         `codec:"role" json:"role"`
  2541  	Status keybase1.TeamMemberStatus `codec:"status" json:"status"`
  2542  }
  2543  
  2544  func (o TeamMember) DeepCopy() TeamMember {
  2545  	return TeamMember{
  2546  		Uid:    o.Uid.DeepCopy(),
  2547  		Role:   o.Role.DeepCopy(),
  2548  		Status: o.Status.DeepCopy(),
  2549  	}
  2550  }
  2551  
  2552  type LastActiveStatus int
  2553  
  2554  const (
  2555  	LastActiveStatus_NONE            LastActiveStatus = 0
  2556  	LastActiveStatus_ACTIVE          LastActiveStatus = 1
  2557  	LastActiveStatus_RECENTLY_ACTIVE LastActiveStatus = 2
  2558  )
  2559  
  2560  func (o LastActiveStatus) DeepCopy() LastActiveStatus { return o }
  2561  
  2562  var LastActiveStatusMap = map[string]LastActiveStatus{
  2563  	"NONE":            0,
  2564  	"ACTIVE":          1,
  2565  	"RECENTLY_ACTIVE": 2,
  2566  }
  2567  
  2568  var LastActiveStatusRevMap = map[LastActiveStatus]string{
  2569  	0: "NONE",
  2570  	1: "ACTIVE",
  2571  	2: "RECENTLY_ACTIVE",
  2572  }
  2573  
  2574  func (e LastActiveStatus) String() string {
  2575  	if v, ok := LastActiveStatusRevMap[e]; ok {
  2576  		return v
  2577  	}
  2578  	return fmt.Sprintf("%v", int(e))
  2579  }
  2580  
  2581  type ChatMemberDetails struct {
  2582  	Uid      keybase1.UID      `codec:"uid" json:"uid"`
  2583  	Username string            `codec:"username" json:"username"`
  2584  	FullName keybase1.FullName `codec:"fullName" json:"fullName"`
  2585  }
  2586  
  2587  func (o ChatMemberDetails) DeepCopy() ChatMemberDetails {
  2588  	return ChatMemberDetails{
  2589  		Uid:      o.Uid.DeepCopy(),
  2590  		Username: o.Username,
  2591  		FullName: o.FullName.DeepCopy(),
  2592  	}
  2593  }
  2594  
  2595  type ChatMembersDetails struct {
  2596  	Owners         []ChatMemberDetails `codec:"owners" json:"owners"`
  2597  	Admins         []ChatMemberDetails `codec:"admins" json:"admins"`
  2598  	Writers        []ChatMemberDetails `codec:"writers" json:"writers"`
  2599  	Readers        []ChatMemberDetails `codec:"readers" json:"readers"`
  2600  	Bots           []ChatMemberDetails `codec:"bots" json:"bots"`
  2601  	RestrictedBots []ChatMemberDetails `codec:"restrictedBots" json:"restrictedBots"`
  2602  }
  2603  
  2604  func (o ChatMembersDetails) DeepCopy() ChatMembersDetails {
  2605  	return ChatMembersDetails{
  2606  		Owners: (func(x []ChatMemberDetails) []ChatMemberDetails {
  2607  			if x == nil {
  2608  				return nil
  2609  			}
  2610  			ret := make([]ChatMemberDetails, len(x))
  2611  			for i, v := range x {
  2612  				vCopy := v.DeepCopy()
  2613  				ret[i] = vCopy
  2614  			}
  2615  			return ret
  2616  		})(o.Owners),
  2617  		Admins: (func(x []ChatMemberDetails) []ChatMemberDetails {
  2618  			if x == nil {
  2619  				return nil
  2620  			}
  2621  			ret := make([]ChatMemberDetails, len(x))
  2622  			for i, v := range x {
  2623  				vCopy := v.DeepCopy()
  2624  				ret[i] = vCopy
  2625  			}
  2626  			return ret
  2627  		})(o.Admins),
  2628  		Writers: (func(x []ChatMemberDetails) []ChatMemberDetails {
  2629  			if x == nil {
  2630  				return nil
  2631  			}
  2632  			ret := make([]ChatMemberDetails, len(x))
  2633  			for i, v := range x {
  2634  				vCopy := v.DeepCopy()
  2635  				ret[i] = vCopy
  2636  			}
  2637  			return ret
  2638  		})(o.Writers),
  2639  		Readers: (func(x []ChatMemberDetails) []ChatMemberDetails {
  2640  			if x == nil {
  2641  				return nil
  2642  			}
  2643  			ret := make([]ChatMemberDetails, len(x))
  2644  			for i, v := range x {
  2645  				vCopy := v.DeepCopy()
  2646  				ret[i] = vCopy
  2647  			}
  2648  			return ret
  2649  		})(o.Readers),
  2650  		Bots: (func(x []ChatMemberDetails) []ChatMemberDetails {
  2651  			if x == nil {
  2652  				return nil
  2653  			}
  2654  			ret := make([]ChatMemberDetails, len(x))
  2655  			for i, v := range x {
  2656  				vCopy := v.DeepCopy()
  2657  				ret[i] = vCopy
  2658  			}
  2659  			return ret
  2660  		})(o.Bots),
  2661  		RestrictedBots: (func(x []ChatMemberDetails) []ChatMemberDetails {
  2662  			if x == nil {
  2663  				return nil
  2664  			}
  2665  			ret := make([]ChatMemberDetails, len(x))
  2666  			for i, v := range x {
  2667  				vCopy := v.DeepCopy()
  2668  				ret[i] = vCopy
  2669  			}
  2670  			return ret
  2671  		})(o.RestrictedBots),
  2672  	}
  2673  }
  2674  
  2675  type CommonInterface interface {
  2676  }
  2677  
  2678  func CommonProtocol(i CommonInterface) rpc.Protocol {
  2679  	return rpc.Protocol{
  2680  		Name:    "chat.1.common",
  2681  		Methods: map[string]rpc.ServeHandlerDescription{},
  2682  	}
  2683  }
  2684  
  2685  type CommonClient struct {
  2686  	Cli rpc.GenericClient
  2687  }