github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/protocol/keybase1/teams.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/keybase1/teams.avdl
     3  
     4  package keybase1
     5  
     6  import (
     7  	"errors"
     8  	"fmt"
     9  	"github.com/keybase/go-framed-msgpack-rpc/rpc"
    10  	context "golang.org/x/net/context"
    11  	"time"
    12  )
    13  
    14  type TeamRole int
    15  
    16  const (
    17  	TeamRole_NONE          TeamRole = 0
    18  	TeamRole_READER        TeamRole = 1
    19  	TeamRole_WRITER        TeamRole = 2
    20  	TeamRole_ADMIN         TeamRole = 3
    21  	TeamRole_OWNER         TeamRole = 4
    22  	TeamRole_BOT           TeamRole = 5
    23  	TeamRole_RESTRICTEDBOT TeamRole = 6
    24  )
    25  
    26  func (o TeamRole) DeepCopy() TeamRole { return o }
    27  
    28  var TeamRoleMap = map[string]TeamRole{
    29  	"NONE":          0,
    30  	"READER":        1,
    31  	"WRITER":        2,
    32  	"ADMIN":         3,
    33  	"OWNER":         4,
    34  	"BOT":           5,
    35  	"RESTRICTEDBOT": 6,
    36  }
    37  
    38  var TeamRoleRevMap = map[TeamRole]string{
    39  	0: "NONE",
    40  	1: "READER",
    41  	2: "WRITER",
    42  	3: "ADMIN",
    43  	4: "OWNER",
    44  	5: "BOT",
    45  	6: "RESTRICTEDBOT",
    46  }
    47  
    48  func (e TeamRole) String() string {
    49  	if v, ok := TeamRoleRevMap[e]; ok {
    50  		return v
    51  	}
    52  	return fmt.Sprintf("%v", int(e))
    53  }
    54  
    55  type TeamApplication int
    56  
    57  const (
    58  	TeamApplication_KBFS                TeamApplication = 1
    59  	TeamApplication_CHAT                TeamApplication = 2
    60  	TeamApplication_SALTPACK            TeamApplication = 3
    61  	TeamApplication_GIT_METADATA        TeamApplication = 4
    62  	TeamApplication_SEITAN_INVITE_TOKEN TeamApplication = 5
    63  	TeamApplication_STELLAR_RELAY       TeamApplication = 6
    64  	TeamApplication_KVSTORE             TeamApplication = 7
    65  )
    66  
    67  func (o TeamApplication) DeepCopy() TeamApplication { return o }
    68  
    69  var TeamApplicationMap = map[string]TeamApplication{
    70  	"KBFS":                1,
    71  	"CHAT":                2,
    72  	"SALTPACK":            3,
    73  	"GIT_METADATA":        4,
    74  	"SEITAN_INVITE_TOKEN": 5,
    75  	"STELLAR_RELAY":       6,
    76  	"KVSTORE":             7,
    77  }
    78  
    79  var TeamApplicationRevMap = map[TeamApplication]string{
    80  	1: "KBFS",
    81  	2: "CHAT",
    82  	3: "SALTPACK",
    83  	4: "GIT_METADATA",
    84  	5: "SEITAN_INVITE_TOKEN",
    85  	6: "STELLAR_RELAY",
    86  	7: "KVSTORE",
    87  }
    88  
    89  func (e TeamApplication) String() string {
    90  	if v, ok := TeamApplicationRevMap[e]; ok {
    91  		return v
    92  	}
    93  	return fmt.Sprintf("%v", int(e))
    94  }
    95  
    96  type TeamStatus int
    97  
    98  const (
    99  	TeamStatus_NONE      TeamStatus = 0
   100  	TeamStatus_LIVE      TeamStatus = 1
   101  	TeamStatus_DELETED   TeamStatus = 2
   102  	TeamStatus_ABANDONED TeamStatus = 3
   103  )
   104  
   105  func (o TeamStatus) DeepCopy() TeamStatus { return o }
   106  
   107  var TeamStatusMap = map[string]TeamStatus{
   108  	"NONE":      0,
   109  	"LIVE":      1,
   110  	"DELETED":   2,
   111  	"ABANDONED": 3,
   112  }
   113  
   114  var TeamStatusRevMap = map[TeamStatus]string{
   115  	0: "NONE",
   116  	1: "LIVE",
   117  	2: "DELETED",
   118  	3: "ABANDONED",
   119  }
   120  
   121  func (e TeamStatus) String() string {
   122  	if v, ok := TeamStatusRevMap[e]; ok {
   123  		return v
   124  	}
   125  	return fmt.Sprintf("%v", int(e))
   126  }
   127  
   128  type AuditMode int
   129  
   130  const (
   131  	AuditMode_STANDARD           AuditMode = 0
   132  	AuditMode_JUST_CREATED       AuditMode = 1
   133  	AuditMode_SKIP               AuditMode = 2
   134  	AuditMode_STANDARD_NO_HIDDEN AuditMode = 3
   135  )
   136  
   137  func (o AuditMode) DeepCopy() AuditMode { return o }
   138  
   139  var AuditModeMap = map[string]AuditMode{
   140  	"STANDARD":           0,
   141  	"JUST_CREATED":       1,
   142  	"SKIP":               2,
   143  	"STANDARD_NO_HIDDEN": 3,
   144  }
   145  
   146  var AuditModeRevMap = map[AuditMode]string{
   147  	0: "STANDARD",
   148  	1: "JUST_CREATED",
   149  	2: "SKIP",
   150  	3: "STANDARD_NO_HIDDEN",
   151  }
   152  
   153  func (e AuditMode) String() string {
   154  	if v, ok := AuditModeRevMap[e]; ok {
   155  		return v
   156  	}
   157  	return fmt.Sprintf("%v", int(e))
   158  }
   159  
   160  type PerTeamKeyGeneration int
   161  
   162  func (o PerTeamKeyGeneration) DeepCopy() PerTeamKeyGeneration {
   163  	return o
   164  }
   165  
   166  type PTKType int
   167  
   168  const (
   169  	PTKType_READER PTKType = 0
   170  )
   171  
   172  func (o PTKType) DeepCopy() PTKType { return o }
   173  
   174  var PTKTypeMap = map[string]PTKType{
   175  	"READER": 0,
   176  }
   177  
   178  var PTKTypeRevMap = map[PTKType]string{
   179  	0: "READER",
   180  }
   181  
   182  func (e PTKType) String() string {
   183  	if v, ok := PTKTypeRevMap[e]; ok {
   184  		return v
   185  	}
   186  	return fmt.Sprintf("%v", int(e))
   187  }
   188  
   189  type PerTeamSeedCheckVersion int
   190  
   191  const (
   192  	PerTeamSeedCheckVersion_V1 PerTeamSeedCheckVersion = 1
   193  )
   194  
   195  func (o PerTeamSeedCheckVersion) DeepCopy() PerTeamSeedCheckVersion { return o }
   196  
   197  var PerTeamSeedCheckVersionMap = map[string]PerTeamSeedCheckVersion{
   198  	"V1": 1,
   199  }
   200  
   201  var PerTeamSeedCheckVersionRevMap = map[PerTeamSeedCheckVersion]string{
   202  	1: "V1",
   203  }
   204  
   205  func (e PerTeamSeedCheckVersion) String() string {
   206  	if v, ok := PerTeamSeedCheckVersionRevMap[e]; ok {
   207  		return v
   208  	}
   209  	return fmt.Sprintf("%v", int(e))
   210  }
   211  
   212  type PerTeamSeedCheck struct {
   213  	Version PerTeamSeedCheckVersion `codec:"version" json:"version"`
   214  	Value   PerTeamSeedCheckValue   `codec:"value" json:"value"`
   215  }
   216  
   217  func (o PerTeamSeedCheck) DeepCopy() PerTeamSeedCheck {
   218  	return PerTeamSeedCheck{
   219  		Version: o.Version.DeepCopy(),
   220  		Value:   o.Value.DeepCopy(),
   221  	}
   222  }
   223  
   224  type PerTeamSeedCheckValue []byte
   225  
   226  func (o PerTeamSeedCheckValue) DeepCopy() PerTeamSeedCheckValue {
   227  	return (func(x []byte) []byte {
   228  		if x == nil {
   229  			return nil
   230  		}
   231  		return append([]byte{}, x...)
   232  	})(o)
   233  }
   234  
   235  type PerTeamSeedCheckValuePostImage []byte
   236  
   237  func (o PerTeamSeedCheckValuePostImage) DeepCopy() PerTeamSeedCheckValuePostImage {
   238  	return (func(x []byte) []byte {
   239  		if x == nil {
   240  			return nil
   241  		}
   242  		return append([]byte{}, x...)
   243  	})(o)
   244  }
   245  
   246  type PerTeamSeedCheckPostImage struct {
   247  	Value   PerTeamSeedCheckValuePostImage `codec:"h" json:"h"`
   248  	Version PerTeamSeedCheckVersion        `codec:"v" json:"v"`
   249  }
   250  
   251  func (o PerTeamSeedCheckPostImage) DeepCopy() PerTeamSeedCheckPostImage {
   252  	return PerTeamSeedCheckPostImage{
   253  		Value:   o.Value.DeepCopy(),
   254  		Version: o.Version.DeepCopy(),
   255  	}
   256  }
   257  
   258  type TeamApplicationKey struct {
   259  	Application   TeamApplication      `codec:"application" json:"application"`
   260  	KeyGeneration PerTeamKeyGeneration `codec:"keyGeneration" json:"keyGeneration"`
   261  	Key           Bytes32              `codec:"key" json:"key"`
   262  }
   263  
   264  func (o TeamApplicationKey) DeepCopy() TeamApplicationKey {
   265  	return TeamApplicationKey{
   266  		Application:   o.Application.DeepCopy(),
   267  		KeyGeneration: o.KeyGeneration.DeepCopy(),
   268  		Key:           o.Key.DeepCopy(),
   269  	}
   270  }
   271  
   272  type MaskB64 []byte
   273  
   274  func (o MaskB64) DeepCopy() MaskB64 {
   275  	return (func(x []byte) []byte {
   276  		if x == nil {
   277  			return nil
   278  		}
   279  		return append([]byte{}, x...)
   280  	})(o)
   281  }
   282  
   283  type TeamInviteID string
   284  
   285  func (o TeamInviteID) DeepCopy() TeamInviteID {
   286  	return o
   287  }
   288  
   289  type TeamInviteMaxUses int
   290  
   291  func (o TeamInviteMaxUses) DeepCopy() TeamInviteMaxUses {
   292  	return o
   293  }
   294  
   295  type ReaderKeyMask struct {
   296  	Application TeamApplication      `codec:"application" json:"application"`
   297  	Generation  PerTeamKeyGeneration `codec:"generation" json:"generation"`
   298  	Mask        MaskB64              `codec:"mask" json:"mask"`
   299  }
   300  
   301  func (o ReaderKeyMask) DeepCopy() ReaderKeyMask {
   302  	return ReaderKeyMask{
   303  		Application: o.Application.DeepCopy(),
   304  		Generation:  o.Generation.DeepCopy(),
   305  		Mask:        o.Mask.DeepCopy(),
   306  	}
   307  }
   308  
   309  type PerTeamKey struct {
   310  	Gen    PerTeamKeyGeneration `codec:"gen" json:"gen"`
   311  	Seqno  Seqno                `codec:"seqno" json:"seqno"`
   312  	SigKID KID                  `codec:"sigKID" json:"sigKID"`
   313  	EncKID KID                  `codec:"encKID" json:"encKID"`
   314  }
   315  
   316  func (o PerTeamKey) DeepCopy() PerTeamKey {
   317  	return PerTeamKey{
   318  		Gen:    o.Gen.DeepCopy(),
   319  		Seqno:  o.Seqno.DeepCopy(),
   320  		SigKID: o.SigKID.DeepCopy(),
   321  		EncKID: o.EncKID.DeepCopy(),
   322  	}
   323  }
   324  
   325  type PerTeamKeyAndCheck struct {
   326  	Ptk   PerTeamKey                `codec:"ptk" json:"ptk"`
   327  	Check PerTeamSeedCheckPostImage `codec:"check" json:"check"`
   328  }
   329  
   330  func (o PerTeamKeyAndCheck) DeepCopy() PerTeamKeyAndCheck {
   331  	return PerTeamKeyAndCheck{
   332  		Ptk:   o.Ptk.DeepCopy(),
   333  		Check: o.Check.DeepCopy(),
   334  	}
   335  }
   336  
   337  type PerTeamKeySeed [32]byte
   338  
   339  func (o PerTeamKeySeed) DeepCopy() PerTeamKeySeed {
   340  	var ret PerTeamKeySeed
   341  	copy(ret[:], o[:])
   342  	return ret
   343  }
   344  
   345  type PerTeamKeySeedItem struct {
   346  	Seed       PerTeamKeySeed       `codec:"seed" json:"seed"`
   347  	Generation PerTeamKeyGeneration `codec:"generation" json:"generation"`
   348  	Seqno      Seqno                `codec:"seqno" json:"seqno"`
   349  	Check      *PerTeamSeedCheck    `codec:"check,omitempty" json:"check,omitempty"`
   350  }
   351  
   352  func (o PerTeamKeySeedItem) DeepCopy() PerTeamKeySeedItem {
   353  	return PerTeamKeySeedItem{
   354  		Seed:       o.Seed.DeepCopy(),
   355  		Generation: o.Generation.DeepCopy(),
   356  		Seqno:      o.Seqno.DeepCopy(),
   357  		Check: (func(x *PerTeamSeedCheck) *PerTeamSeedCheck {
   358  			if x == nil {
   359  				return nil
   360  			}
   361  			tmp := (*x).DeepCopy()
   362  			return &tmp
   363  		})(o.Check),
   364  	}
   365  }
   366  
   367  type TeamMember struct {
   368  	Uid         UID              `codec:"uid" json:"uid"`
   369  	Role        TeamRole         `codec:"role" json:"role"`
   370  	EldestSeqno Seqno            `codec:"eldestSeqno" json:"eldestSeqno"`
   371  	Status      TeamMemberStatus `codec:"status" json:"status"`
   372  	BotSettings *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"`
   373  }
   374  
   375  func (o TeamMember) DeepCopy() TeamMember {
   376  	return TeamMember{
   377  		Uid:         o.Uid.DeepCopy(),
   378  		Role:        o.Role.DeepCopy(),
   379  		EldestSeqno: o.EldestSeqno.DeepCopy(),
   380  		Status:      o.Status.DeepCopy(),
   381  		BotSettings: (func(x *TeamBotSettings) *TeamBotSettings {
   382  			if x == nil {
   383  				return nil
   384  			}
   385  			tmp := (*x).DeepCopy()
   386  			return &tmp
   387  		})(o.BotSettings),
   388  	}
   389  }
   390  
   391  type TeamMembers struct {
   392  	Owners         []UserVersion `codec:"owners" json:"owners"`
   393  	Admins         []UserVersion `codec:"admins" json:"admins"`
   394  	Writers        []UserVersion `codec:"writers" json:"writers"`
   395  	Readers        []UserVersion `codec:"readers" json:"readers"`
   396  	Bots           []UserVersion `codec:"bots" json:"bots"`
   397  	RestrictedBots []UserVersion `codec:"restrictedBots" json:"restrictedBots"`
   398  }
   399  
   400  func (o TeamMembers) DeepCopy() TeamMembers {
   401  	return TeamMembers{
   402  		Owners: (func(x []UserVersion) []UserVersion {
   403  			if x == nil {
   404  				return nil
   405  			}
   406  			ret := make([]UserVersion, len(x))
   407  			for i, v := range x {
   408  				vCopy := v.DeepCopy()
   409  				ret[i] = vCopy
   410  			}
   411  			return ret
   412  		})(o.Owners),
   413  		Admins: (func(x []UserVersion) []UserVersion {
   414  			if x == nil {
   415  				return nil
   416  			}
   417  			ret := make([]UserVersion, len(x))
   418  			for i, v := range x {
   419  				vCopy := v.DeepCopy()
   420  				ret[i] = vCopy
   421  			}
   422  			return ret
   423  		})(o.Admins),
   424  		Writers: (func(x []UserVersion) []UserVersion {
   425  			if x == nil {
   426  				return nil
   427  			}
   428  			ret := make([]UserVersion, len(x))
   429  			for i, v := range x {
   430  				vCopy := v.DeepCopy()
   431  				ret[i] = vCopy
   432  			}
   433  			return ret
   434  		})(o.Writers),
   435  		Readers: (func(x []UserVersion) []UserVersion {
   436  			if x == nil {
   437  				return nil
   438  			}
   439  			ret := make([]UserVersion, len(x))
   440  			for i, v := range x {
   441  				vCopy := v.DeepCopy()
   442  				ret[i] = vCopy
   443  			}
   444  			return ret
   445  		})(o.Readers),
   446  		Bots: (func(x []UserVersion) []UserVersion {
   447  			if x == nil {
   448  				return nil
   449  			}
   450  			ret := make([]UserVersion, len(x))
   451  			for i, v := range x {
   452  				vCopy := v.DeepCopy()
   453  				ret[i] = vCopy
   454  			}
   455  			return ret
   456  		})(o.Bots),
   457  		RestrictedBots: (func(x []UserVersion) []UserVersion {
   458  			if x == nil {
   459  				return nil
   460  			}
   461  			ret := make([]UserVersion, len(x))
   462  			for i, v := range x {
   463  				vCopy := v.DeepCopy()
   464  				ret[i] = vCopy
   465  			}
   466  			return ret
   467  		})(o.RestrictedBots),
   468  	}
   469  }
   470  
   471  type TeamMemberStatus int
   472  
   473  const (
   474  	TeamMemberStatus_ACTIVE  TeamMemberStatus = 0
   475  	TeamMemberStatus_RESET   TeamMemberStatus = 1
   476  	TeamMemberStatus_DELETED TeamMemberStatus = 2
   477  )
   478  
   479  func (o TeamMemberStatus) DeepCopy() TeamMemberStatus { return o }
   480  
   481  var TeamMemberStatusMap = map[string]TeamMemberStatus{
   482  	"ACTIVE":  0,
   483  	"RESET":   1,
   484  	"DELETED": 2,
   485  }
   486  
   487  var TeamMemberStatusRevMap = map[TeamMemberStatus]string{
   488  	0: "ACTIVE",
   489  	1: "RESET",
   490  	2: "DELETED",
   491  }
   492  
   493  func (e TeamMemberStatus) String() string {
   494  	if v, ok := TeamMemberStatusRevMap[e]; ok {
   495  		return v
   496  	}
   497  	return fmt.Sprintf("%v", int(e))
   498  }
   499  
   500  type TeamMemberDetails struct {
   501  	Uv       UserVersion      `codec:"uv" json:"uv"`
   502  	Username string           `codec:"username" json:"username"`
   503  	FullName FullName         `codec:"fullName" json:"fullName"`
   504  	NeedsPUK bool             `codec:"needsPUK" json:"needsPUK"`
   505  	Status   TeamMemberStatus `codec:"status" json:"status"`
   506  	JoinTime *Time            `codec:"joinTime,omitempty" json:"joinTime,omitempty"`
   507  	Role     TeamRole         `codec:"role" json:"role"`
   508  }
   509  
   510  func (o TeamMemberDetails) DeepCopy() TeamMemberDetails {
   511  	return TeamMemberDetails{
   512  		Uv:       o.Uv.DeepCopy(),
   513  		Username: o.Username,
   514  		FullName: o.FullName.DeepCopy(),
   515  		NeedsPUK: o.NeedsPUK,
   516  		Status:   o.Status.DeepCopy(),
   517  		JoinTime: (func(x *Time) *Time {
   518  			if x == nil {
   519  				return nil
   520  			}
   521  			tmp := (*x).DeepCopy()
   522  			return &tmp
   523  		})(o.JoinTime),
   524  		Role: o.Role.DeepCopy(),
   525  	}
   526  }
   527  
   528  type TeamMembersDetails struct {
   529  	Owners         []TeamMemberDetails `codec:"owners" json:"owners"`
   530  	Admins         []TeamMemberDetails `codec:"admins" json:"admins"`
   531  	Writers        []TeamMemberDetails `codec:"writers" json:"writers"`
   532  	Readers        []TeamMemberDetails `codec:"readers" json:"readers"`
   533  	Bots           []TeamMemberDetails `codec:"bots" json:"bots"`
   534  	RestrictedBots []TeamMemberDetails `codec:"restrictedBots" json:"restrictedBots"`
   535  }
   536  
   537  func (o TeamMembersDetails) DeepCopy() TeamMembersDetails {
   538  	return TeamMembersDetails{
   539  		Owners: (func(x []TeamMemberDetails) []TeamMemberDetails {
   540  			if x == nil {
   541  				return nil
   542  			}
   543  			ret := make([]TeamMemberDetails, len(x))
   544  			for i, v := range x {
   545  				vCopy := v.DeepCopy()
   546  				ret[i] = vCopy
   547  			}
   548  			return ret
   549  		})(o.Owners),
   550  		Admins: (func(x []TeamMemberDetails) []TeamMemberDetails {
   551  			if x == nil {
   552  				return nil
   553  			}
   554  			ret := make([]TeamMemberDetails, len(x))
   555  			for i, v := range x {
   556  				vCopy := v.DeepCopy()
   557  				ret[i] = vCopy
   558  			}
   559  			return ret
   560  		})(o.Admins),
   561  		Writers: (func(x []TeamMemberDetails) []TeamMemberDetails {
   562  			if x == nil {
   563  				return nil
   564  			}
   565  			ret := make([]TeamMemberDetails, len(x))
   566  			for i, v := range x {
   567  				vCopy := v.DeepCopy()
   568  				ret[i] = vCopy
   569  			}
   570  			return ret
   571  		})(o.Writers),
   572  		Readers: (func(x []TeamMemberDetails) []TeamMemberDetails {
   573  			if x == nil {
   574  				return nil
   575  			}
   576  			ret := make([]TeamMemberDetails, len(x))
   577  			for i, v := range x {
   578  				vCopy := v.DeepCopy()
   579  				ret[i] = vCopy
   580  			}
   581  			return ret
   582  		})(o.Readers),
   583  		Bots: (func(x []TeamMemberDetails) []TeamMemberDetails {
   584  			if x == nil {
   585  				return nil
   586  			}
   587  			ret := make([]TeamMemberDetails, len(x))
   588  			for i, v := range x {
   589  				vCopy := v.DeepCopy()
   590  				ret[i] = vCopy
   591  			}
   592  			return ret
   593  		})(o.Bots),
   594  		RestrictedBots: (func(x []TeamMemberDetails) []TeamMemberDetails {
   595  			if x == nil {
   596  				return nil
   597  			}
   598  			ret := make([]TeamMemberDetails, len(x))
   599  			for i, v := range x {
   600  				vCopy := v.DeepCopy()
   601  				ret[i] = vCopy
   602  			}
   603  			return ret
   604  		})(o.RestrictedBots),
   605  	}
   606  }
   607  
   608  type TeamDetails struct {
   609  	Name                   string                               `codec:"name" json:"name"`
   610  	Members                TeamMembersDetails                   `codec:"members" json:"members"`
   611  	KeyGeneration          PerTeamKeyGeneration                 `codec:"keyGeneration" json:"keyGeneration"`
   612  	AnnotatedActiveInvites map[TeamInviteID]AnnotatedTeamInvite `codec:"annotatedActiveInvites" json:"annotatedActiveInvites"`
   613  	Settings               TeamSettings                         `codec:"settings" json:"settings"`
   614  	Showcase               TeamShowcase                         `codec:"showcase" json:"showcase"`
   615  }
   616  
   617  func (o TeamDetails) DeepCopy() TeamDetails {
   618  	return TeamDetails{
   619  		Name:          o.Name,
   620  		Members:       o.Members.DeepCopy(),
   621  		KeyGeneration: o.KeyGeneration.DeepCopy(),
   622  		AnnotatedActiveInvites: (func(x map[TeamInviteID]AnnotatedTeamInvite) map[TeamInviteID]AnnotatedTeamInvite {
   623  			if x == nil {
   624  				return nil
   625  			}
   626  			ret := make(map[TeamInviteID]AnnotatedTeamInvite, len(x))
   627  			for k, v := range x {
   628  				kCopy := k.DeepCopy()
   629  				vCopy := v.DeepCopy()
   630  				ret[kCopy] = vCopy
   631  			}
   632  			return ret
   633  		})(o.AnnotatedActiveInvites),
   634  		Settings: o.Settings.DeepCopy(),
   635  		Showcase: o.Showcase.DeepCopy(),
   636  	}
   637  }
   638  
   639  type TeamMemberRole struct {
   640  	Uid      UID      `codec:"uid" json:"uid"`
   641  	Username string   `codec:"username" json:"username"`
   642  	FullName FullName `codec:"fullName" json:"fullName"`
   643  	Role     TeamRole `codec:"role" json:"role"`
   644  }
   645  
   646  func (o TeamMemberRole) DeepCopy() TeamMemberRole {
   647  	return TeamMemberRole{
   648  		Uid:      o.Uid.DeepCopy(),
   649  		Username: o.Username,
   650  		FullName: o.FullName.DeepCopy(),
   651  		Role:     o.Role.DeepCopy(),
   652  	}
   653  }
   654  
   655  type UntrustedTeamInfo struct {
   656  	Name          TeamName         `codec:"name" json:"name"`
   657  	InTeam        bool             `codec:"inTeam" json:"inTeam"`
   658  	Open          bool             `codec:"open" json:"open"`
   659  	Description   string           `codec:"description" json:"description"`
   660  	PublicAdmins  []string         `codec:"publicAdmins" json:"publicAdmins"`
   661  	NumMembers    int              `codec:"numMembers" json:"numMembers"`
   662  	PublicMembers []TeamMemberRole `codec:"publicMembers" json:"publicMembers"`
   663  }
   664  
   665  func (o UntrustedTeamInfo) DeepCopy() UntrustedTeamInfo {
   666  	return UntrustedTeamInfo{
   667  		Name:        o.Name.DeepCopy(),
   668  		InTeam:      o.InTeam,
   669  		Open:        o.Open,
   670  		Description: o.Description,
   671  		PublicAdmins: (func(x []string) []string {
   672  			if x == nil {
   673  				return nil
   674  			}
   675  			ret := make([]string, len(x))
   676  			for i, v := range x {
   677  				vCopy := v
   678  				ret[i] = vCopy
   679  			}
   680  			return ret
   681  		})(o.PublicAdmins),
   682  		NumMembers: o.NumMembers,
   683  		PublicMembers: (func(x []TeamMemberRole) []TeamMemberRole {
   684  			if x == nil {
   685  				return nil
   686  			}
   687  			ret := make([]TeamMemberRole, len(x))
   688  			for i, v := range x {
   689  				vCopy := v.DeepCopy()
   690  				ret[i] = vCopy
   691  			}
   692  			return ret
   693  		})(o.PublicMembers),
   694  	}
   695  }
   696  
   697  type UserVersionPercentForm string
   698  
   699  func (o UserVersionPercentForm) DeepCopy() UserVersionPercentForm {
   700  	return o
   701  }
   702  
   703  type TeamUsedInvite struct {
   704  	InviteID TeamInviteID           `codec:"inviteID" json:"inviteID"`
   705  	Uv       UserVersionPercentForm `codec:"uv" json:"uv"`
   706  }
   707  
   708  func (o TeamUsedInvite) DeepCopy() TeamUsedInvite {
   709  	return TeamUsedInvite{
   710  		InviteID: o.InviteID.DeepCopy(),
   711  		Uv:       o.Uv.DeepCopy(),
   712  	}
   713  }
   714  
   715  type TeamChangeReq struct {
   716  	Owners           []UserVersion                           `codec:"owners" json:"owners"`
   717  	Admins           []UserVersion                           `codec:"admins" json:"admins"`
   718  	Writers          []UserVersion                           `codec:"writers" json:"writers"`
   719  	Readers          []UserVersion                           `codec:"readers" json:"readers"`
   720  	Bots             []UserVersion                           `codec:"bots" json:"bots"`
   721  	RestrictedBots   map[UserVersion]TeamBotSettings         `codec:"restrictedBots" json:"restrictedBots"`
   722  	None             []UserVersion                           `codec:"none" json:"none"`
   723  	CompletedInvites map[TeamInviteID]UserVersionPercentForm `codec:"completedInvites" json:"completedInvites"`
   724  	UsedInvites      []TeamUsedInvite                        `codec:"usedInvites" json:"usedInvites"`
   725  }
   726  
   727  func (o TeamChangeReq) DeepCopy() TeamChangeReq {
   728  	return TeamChangeReq{
   729  		Owners: (func(x []UserVersion) []UserVersion {
   730  			if x == nil {
   731  				return nil
   732  			}
   733  			ret := make([]UserVersion, len(x))
   734  			for i, v := range x {
   735  				vCopy := v.DeepCopy()
   736  				ret[i] = vCopy
   737  			}
   738  			return ret
   739  		})(o.Owners),
   740  		Admins: (func(x []UserVersion) []UserVersion {
   741  			if x == nil {
   742  				return nil
   743  			}
   744  			ret := make([]UserVersion, len(x))
   745  			for i, v := range x {
   746  				vCopy := v.DeepCopy()
   747  				ret[i] = vCopy
   748  			}
   749  			return ret
   750  		})(o.Admins),
   751  		Writers: (func(x []UserVersion) []UserVersion {
   752  			if x == nil {
   753  				return nil
   754  			}
   755  			ret := make([]UserVersion, len(x))
   756  			for i, v := range x {
   757  				vCopy := v.DeepCopy()
   758  				ret[i] = vCopy
   759  			}
   760  			return ret
   761  		})(o.Writers),
   762  		Readers: (func(x []UserVersion) []UserVersion {
   763  			if x == nil {
   764  				return nil
   765  			}
   766  			ret := make([]UserVersion, len(x))
   767  			for i, v := range x {
   768  				vCopy := v.DeepCopy()
   769  				ret[i] = vCopy
   770  			}
   771  			return ret
   772  		})(o.Readers),
   773  		Bots: (func(x []UserVersion) []UserVersion {
   774  			if x == nil {
   775  				return nil
   776  			}
   777  			ret := make([]UserVersion, len(x))
   778  			for i, v := range x {
   779  				vCopy := v.DeepCopy()
   780  				ret[i] = vCopy
   781  			}
   782  			return ret
   783  		})(o.Bots),
   784  		RestrictedBots: (func(x map[UserVersion]TeamBotSettings) map[UserVersion]TeamBotSettings {
   785  			if x == nil {
   786  				return nil
   787  			}
   788  			ret := make(map[UserVersion]TeamBotSettings, len(x))
   789  			for k, v := range x {
   790  				kCopy := k.DeepCopy()
   791  				vCopy := v.DeepCopy()
   792  				ret[kCopy] = vCopy
   793  			}
   794  			return ret
   795  		})(o.RestrictedBots),
   796  		None: (func(x []UserVersion) []UserVersion {
   797  			if x == nil {
   798  				return nil
   799  			}
   800  			ret := make([]UserVersion, len(x))
   801  			for i, v := range x {
   802  				vCopy := v.DeepCopy()
   803  				ret[i] = vCopy
   804  			}
   805  			return ret
   806  		})(o.None),
   807  		CompletedInvites: (func(x map[TeamInviteID]UserVersionPercentForm) map[TeamInviteID]UserVersionPercentForm {
   808  			if x == nil {
   809  				return nil
   810  			}
   811  			ret := make(map[TeamInviteID]UserVersionPercentForm, len(x))
   812  			for k, v := range x {
   813  				kCopy := k.DeepCopy()
   814  				vCopy := v.DeepCopy()
   815  				ret[kCopy] = vCopy
   816  			}
   817  			return ret
   818  		})(o.CompletedInvites),
   819  		UsedInvites: (func(x []TeamUsedInvite) []TeamUsedInvite {
   820  			if x == nil {
   821  				return nil
   822  			}
   823  			ret := make([]TeamUsedInvite, len(x))
   824  			for i, v := range x {
   825  				vCopy := v.DeepCopy()
   826  				ret[i] = vCopy
   827  			}
   828  			return ret
   829  		})(o.UsedInvites),
   830  	}
   831  }
   832  
   833  type TeamPlusApplicationKeys struct {
   834  	Id                 TeamID               `codec:"id" json:"id"`
   835  	Name               string               `codec:"name" json:"name"`
   836  	Implicit           bool                 `codec:"implicit" json:"implicit"`
   837  	Public             bool                 `codec:"public" json:"public"`
   838  	Application        TeamApplication      `codec:"application" json:"application"`
   839  	Writers            []UserVersion        `codec:"writers" json:"writers"`
   840  	OnlyReaders        []UserVersion        `codec:"onlyReaders" json:"onlyReaders"`
   841  	OnlyRestrictedBots []UserVersion        `codec:"onlyRestrictedBots" json:"onlyRestrictedBots"`
   842  	ApplicationKeys    []TeamApplicationKey `codec:"applicationKeys" json:"applicationKeys"`
   843  }
   844  
   845  func (o TeamPlusApplicationKeys) DeepCopy() TeamPlusApplicationKeys {
   846  	return TeamPlusApplicationKeys{
   847  		Id:          o.Id.DeepCopy(),
   848  		Name:        o.Name,
   849  		Implicit:    o.Implicit,
   850  		Public:      o.Public,
   851  		Application: o.Application.DeepCopy(),
   852  		Writers: (func(x []UserVersion) []UserVersion {
   853  			if x == nil {
   854  				return nil
   855  			}
   856  			ret := make([]UserVersion, len(x))
   857  			for i, v := range x {
   858  				vCopy := v.DeepCopy()
   859  				ret[i] = vCopy
   860  			}
   861  			return ret
   862  		})(o.Writers),
   863  		OnlyReaders: (func(x []UserVersion) []UserVersion {
   864  			if x == nil {
   865  				return nil
   866  			}
   867  			ret := make([]UserVersion, len(x))
   868  			for i, v := range x {
   869  				vCopy := v.DeepCopy()
   870  				ret[i] = vCopy
   871  			}
   872  			return ret
   873  		})(o.OnlyReaders),
   874  		OnlyRestrictedBots: (func(x []UserVersion) []UserVersion {
   875  			if x == nil {
   876  				return nil
   877  			}
   878  			ret := make([]UserVersion, len(x))
   879  			for i, v := range x {
   880  				vCopy := v.DeepCopy()
   881  				ret[i] = vCopy
   882  			}
   883  			return ret
   884  		})(o.OnlyRestrictedBots),
   885  		ApplicationKeys: (func(x []TeamApplicationKey) []TeamApplicationKey {
   886  			if x == nil {
   887  				return nil
   888  			}
   889  			ret := make([]TeamApplicationKey, len(x))
   890  			for i, v := range x {
   891  				vCopy := v.DeepCopy()
   892  				ret[i] = vCopy
   893  			}
   894  			return ret
   895  		})(o.ApplicationKeys),
   896  	}
   897  }
   898  
   899  type TeamData struct {
   900  	Subversion                int                                                  `codec:"v" json:"v"`
   901  	Frozen                    bool                                                 `codec:"frozen" json:"frozen"`
   902  	Tombstoned                bool                                                 `codec:"tombstoned" json:"tombstoned"`
   903  	Secretless                bool                                                 `codec:"secretless" json:"secretless"`
   904  	Name                      TeamName                                             `codec:"name" json:"name"`
   905  	Chain                     TeamSigChainState                                    `codec:"chain" json:"chain"`
   906  	PerTeamKeySeedsUnverified map[PerTeamKeyGeneration]PerTeamKeySeedItem          `codec:"perTeamKeySeeds" json:"perTeamKeySeedsUnverified"`
   907  	ReaderKeyMasks            map[TeamApplication]map[PerTeamKeyGeneration]MaskB64 `codec:"readerKeyMasks" json:"readerKeyMasks"`
   908  	LatestSeqnoHint           Seqno                                                `codec:"latestSeqnoHint" json:"latestSeqnoHint"`
   909  	CachedAt                  Time                                                 `codec:"cachedAt" json:"cachedAt"`
   910  	TlfCryptKeys              map[TeamApplication][]CryptKey                       `codec:"tlfCryptKeys" json:"tlfCryptKeys"`
   911  }
   912  
   913  func (o TeamData) DeepCopy() TeamData {
   914  	return TeamData{
   915  		Subversion: o.Subversion,
   916  		Frozen:     o.Frozen,
   917  		Tombstoned: o.Tombstoned,
   918  		Secretless: o.Secretless,
   919  		Name:       o.Name.DeepCopy(),
   920  		Chain:      o.Chain.DeepCopy(),
   921  		PerTeamKeySeedsUnverified: (func(x map[PerTeamKeyGeneration]PerTeamKeySeedItem) map[PerTeamKeyGeneration]PerTeamKeySeedItem {
   922  			if x == nil {
   923  				return nil
   924  			}
   925  			ret := make(map[PerTeamKeyGeneration]PerTeamKeySeedItem, len(x))
   926  			for k, v := range x {
   927  				kCopy := k.DeepCopy()
   928  				vCopy := v.DeepCopy()
   929  				ret[kCopy] = vCopy
   930  			}
   931  			return ret
   932  		})(o.PerTeamKeySeedsUnverified),
   933  		ReaderKeyMasks: (func(x map[TeamApplication]map[PerTeamKeyGeneration]MaskB64) map[TeamApplication]map[PerTeamKeyGeneration]MaskB64 {
   934  			if x == nil {
   935  				return nil
   936  			}
   937  			ret := make(map[TeamApplication]map[PerTeamKeyGeneration]MaskB64, len(x))
   938  			for k, v := range x {
   939  				kCopy := k.DeepCopy()
   940  				vCopy := (func(x map[PerTeamKeyGeneration]MaskB64) map[PerTeamKeyGeneration]MaskB64 {
   941  					if x == nil {
   942  						return nil
   943  					}
   944  					ret := make(map[PerTeamKeyGeneration]MaskB64, len(x))
   945  					for k, v := range x {
   946  						kCopy := k.DeepCopy()
   947  						vCopy := v.DeepCopy()
   948  						ret[kCopy] = vCopy
   949  					}
   950  					return ret
   951  				})(v)
   952  				ret[kCopy] = vCopy
   953  			}
   954  			return ret
   955  		})(o.ReaderKeyMasks),
   956  		LatestSeqnoHint: o.LatestSeqnoHint.DeepCopy(),
   957  		CachedAt:        o.CachedAt.DeepCopy(),
   958  		TlfCryptKeys: (func(x map[TeamApplication][]CryptKey) map[TeamApplication][]CryptKey {
   959  			if x == nil {
   960  				return nil
   961  			}
   962  			ret := make(map[TeamApplication][]CryptKey, len(x))
   963  			for k, v := range x {
   964  				kCopy := k.DeepCopy()
   965  				vCopy := (func(x []CryptKey) []CryptKey {
   966  					if x == nil {
   967  						return nil
   968  					}
   969  					ret := make([]CryptKey, len(x))
   970  					for i, v := range x {
   971  						vCopy := v.DeepCopy()
   972  						ret[i] = vCopy
   973  					}
   974  					return ret
   975  				})(v)
   976  				ret[kCopy] = vCopy
   977  			}
   978  			return ret
   979  		})(o.TlfCryptKeys),
   980  	}
   981  }
   982  
   983  type FastTeamData struct {
   984  	Frozen                     bool                                                 `codec:"frozen" json:"frozen"`
   985  	Subversion                 int                                                  `codec:"subversion" json:"subversion"`
   986  	Tombstoned                 bool                                                 `codec:"tombstoned" json:"tombstoned"`
   987  	Name                       TeamName                                             `codec:"name" json:"name"`
   988  	Chain                      FastTeamSigChainState                                `codec:"chain" json:"chain"`
   989  	PerTeamKeySeedsUnverified  map[PerTeamKeyGeneration]PerTeamKeySeed              `codec:"perTeamKeySeeds" json:"perTeamKeySeedsUnverified"`
   990  	MaxContinuousPTKGeneration PerTeamKeyGeneration                                 `codec:"maxContinuousPTKGeneration" json:"maxContinuousPTKGeneration"`
   991  	SeedChecks                 map[PerTeamKeyGeneration]PerTeamSeedCheck            `codec:"seedChecks" json:"seedChecks"`
   992  	LatestKeyGeneration        PerTeamKeyGeneration                                 `codec:"latestKeyGeneration" json:"latestKeyGeneration"`
   993  	ReaderKeyMasks             map[TeamApplication]map[PerTeamKeyGeneration]MaskB64 `codec:"readerKeyMasks" json:"readerKeyMasks"`
   994  	LatestSeqnoHint            Seqno                                                `codec:"latestSeqnoHint" json:"latestSeqnoHint"`
   995  	CachedAt                   Time                                                 `codec:"cachedAt" json:"cachedAt"`
   996  	LoadedLatest               bool                                                 `codec:"loadedLatest" json:"loadedLatest"`
   997  }
   998  
   999  func (o FastTeamData) DeepCopy() FastTeamData {
  1000  	return FastTeamData{
  1001  		Frozen:     o.Frozen,
  1002  		Subversion: o.Subversion,
  1003  		Tombstoned: o.Tombstoned,
  1004  		Name:       o.Name.DeepCopy(),
  1005  		Chain:      o.Chain.DeepCopy(),
  1006  		PerTeamKeySeedsUnverified: (func(x map[PerTeamKeyGeneration]PerTeamKeySeed) map[PerTeamKeyGeneration]PerTeamKeySeed {
  1007  			if x == nil {
  1008  				return nil
  1009  			}
  1010  			ret := make(map[PerTeamKeyGeneration]PerTeamKeySeed, len(x))
  1011  			for k, v := range x {
  1012  				kCopy := k.DeepCopy()
  1013  				vCopy := v.DeepCopy()
  1014  				ret[kCopy] = vCopy
  1015  			}
  1016  			return ret
  1017  		})(o.PerTeamKeySeedsUnverified),
  1018  		MaxContinuousPTKGeneration: o.MaxContinuousPTKGeneration.DeepCopy(),
  1019  		SeedChecks: (func(x map[PerTeamKeyGeneration]PerTeamSeedCheck) map[PerTeamKeyGeneration]PerTeamSeedCheck {
  1020  			if x == nil {
  1021  				return nil
  1022  			}
  1023  			ret := make(map[PerTeamKeyGeneration]PerTeamSeedCheck, len(x))
  1024  			for k, v := range x {
  1025  				kCopy := k.DeepCopy()
  1026  				vCopy := v.DeepCopy()
  1027  				ret[kCopy] = vCopy
  1028  			}
  1029  			return ret
  1030  		})(o.SeedChecks),
  1031  		LatestKeyGeneration: o.LatestKeyGeneration.DeepCopy(),
  1032  		ReaderKeyMasks: (func(x map[TeamApplication]map[PerTeamKeyGeneration]MaskB64) map[TeamApplication]map[PerTeamKeyGeneration]MaskB64 {
  1033  			if x == nil {
  1034  				return nil
  1035  			}
  1036  			ret := make(map[TeamApplication]map[PerTeamKeyGeneration]MaskB64, len(x))
  1037  			for k, v := range x {
  1038  				kCopy := k.DeepCopy()
  1039  				vCopy := (func(x map[PerTeamKeyGeneration]MaskB64) map[PerTeamKeyGeneration]MaskB64 {
  1040  					if x == nil {
  1041  						return nil
  1042  					}
  1043  					ret := make(map[PerTeamKeyGeneration]MaskB64, len(x))
  1044  					for k, v := range x {
  1045  						kCopy := k.DeepCopy()
  1046  						vCopy := v.DeepCopy()
  1047  						ret[kCopy] = vCopy
  1048  					}
  1049  					return ret
  1050  				})(v)
  1051  				ret[kCopy] = vCopy
  1052  			}
  1053  			return ret
  1054  		})(o.ReaderKeyMasks),
  1055  		LatestSeqnoHint: o.LatestSeqnoHint.DeepCopy(),
  1056  		CachedAt:        o.CachedAt.DeepCopy(),
  1057  		LoadedLatest:    o.LoadedLatest,
  1058  	}
  1059  }
  1060  
  1061  type RatchetType int
  1062  
  1063  const (
  1064  	RatchetType_MAIN        RatchetType = 0
  1065  	RatchetType_BLINDED     RatchetType = 1
  1066  	RatchetType_SELF        RatchetType = 2
  1067  	RatchetType_UNCOMMITTED RatchetType = 3
  1068  )
  1069  
  1070  func (o RatchetType) DeepCopy() RatchetType { return o }
  1071  
  1072  var RatchetTypeMap = map[string]RatchetType{
  1073  	"MAIN":        0,
  1074  	"BLINDED":     1,
  1075  	"SELF":        2,
  1076  	"UNCOMMITTED": 3,
  1077  }
  1078  
  1079  var RatchetTypeRevMap = map[RatchetType]string{
  1080  	0: "MAIN",
  1081  	1: "BLINDED",
  1082  	2: "SELF",
  1083  	3: "UNCOMMITTED",
  1084  }
  1085  
  1086  func (e RatchetType) String() string {
  1087  	if v, ok := RatchetTypeRevMap[e]; ok {
  1088  		return v
  1089  	}
  1090  	return fmt.Sprintf("%v", int(e))
  1091  }
  1092  
  1093  type HiddenTeamChainRatchetSet struct {
  1094  	Ratchets map[RatchetType]LinkTripleAndTime `codec:"ratchets" json:"ratchets"`
  1095  }
  1096  
  1097  func (o HiddenTeamChainRatchetSet) DeepCopy() HiddenTeamChainRatchetSet {
  1098  	return HiddenTeamChainRatchetSet{
  1099  		Ratchets: (func(x map[RatchetType]LinkTripleAndTime) map[RatchetType]LinkTripleAndTime {
  1100  			if x == nil {
  1101  				return nil
  1102  			}
  1103  			ret := make(map[RatchetType]LinkTripleAndTime, len(x))
  1104  			for k, v := range x {
  1105  				kCopy := k.DeepCopy()
  1106  				vCopy := v.DeepCopy()
  1107  				ret[kCopy] = vCopy
  1108  			}
  1109  			return ret
  1110  		})(o.Ratchets),
  1111  	}
  1112  }
  1113  
  1114  type HiddenTeamChain struct {
  1115  	Id                 TeamID                         `codec:"id" json:"id"`
  1116  	Subversion         int                            `codec:"subversion" json:"subversion"`
  1117  	Public             bool                           `codec:"public" json:"public"`
  1118  	Frozen             bool                           `codec:"frozen" json:"frozen"`
  1119  	Tombstoned         bool                           `codec:"tombstoned" json:"tombstoned"`
  1120  	Last               Seqno                          `codec:"last" json:"last"`
  1121  	LastFull           Seqno                          `codec:"lastFull" json:"lastFull"`
  1122  	LatestSeqnoHint    Seqno                          `codec:"latestSeqnoHint" json:"latestSeqnoHint"`
  1123  	LastCommittedSeqno Seqno                          `codec:"lastCommittedSeqno" json:"lastCommittedSeqno"`
  1124  	LinkReceiptTimes   map[Seqno]Time                 `codec:"linkReceiptTimes" json:"linkReceiptTimes"`
  1125  	LastPerTeamKeys    map[PTKType]Seqno              `codec:"lastPerTeamKeys" json:"lastPerTeamKeys"`
  1126  	Outer              map[Seqno]LinkID               `codec:"outer" json:"outer"`
  1127  	Inner              map[Seqno]HiddenTeamChainLink  `codec:"inner" json:"inner"`
  1128  	ReaderPerTeamKeys  map[PerTeamKeyGeneration]Seqno `codec:"readerPerTeamKeys" json:"readerPerTeamKeys"`
  1129  	RatchetSet         HiddenTeamChainRatchetSet      `codec:"ratchetSet" json:"ratchetSet"`
  1130  	CachedAt           Time                           `codec:"cachedAt" json:"cachedAt"`
  1131  	NeedRotate         bool                           `codec:"needRotate" json:"needRotate"`
  1132  	MerkleRoots        map[Seqno]MerkleRootV2         `codec:"merkleRoots" json:"merkleRoots"`
  1133  }
  1134  
  1135  func (o HiddenTeamChain) DeepCopy() HiddenTeamChain {
  1136  	return HiddenTeamChain{
  1137  		Id:                 o.Id.DeepCopy(),
  1138  		Subversion:         o.Subversion,
  1139  		Public:             o.Public,
  1140  		Frozen:             o.Frozen,
  1141  		Tombstoned:         o.Tombstoned,
  1142  		Last:               o.Last.DeepCopy(),
  1143  		LastFull:           o.LastFull.DeepCopy(),
  1144  		LatestSeqnoHint:    o.LatestSeqnoHint.DeepCopy(),
  1145  		LastCommittedSeqno: o.LastCommittedSeqno.DeepCopy(),
  1146  		LinkReceiptTimes: (func(x map[Seqno]Time) map[Seqno]Time {
  1147  			if x == nil {
  1148  				return nil
  1149  			}
  1150  			ret := make(map[Seqno]Time, len(x))
  1151  			for k, v := range x {
  1152  				kCopy := k.DeepCopy()
  1153  				vCopy := v.DeepCopy()
  1154  				ret[kCopy] = vCopy
  1155  			}
  1156  			return ret
  1157  		})(o.LinkReceiptTimes),
  1158  		LastPerTeamKeys: (func(x map[PTKType]Seqno) map[PTKType]Seqno {
  1159  			if x == nil {
  1160  				return nil
  1161  			}
  1162  			ret := make(map[PTKType]Seqno, len(x))
  1163  			for k, v := range x {
  1164  				kCopy := k.DeepCopy()
  1165  				vCopy := v.DeepCopy()
  1166  				ret[kCopy] = vCopy
  1167  			}
  1168  			return ret
  1169  		})(o.LastPerTeamKeys),
  1170  		Outer: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
  1171  			if x == nil {
  1172  				return nil
  1173  			}
  1174  			ret := make(map[Seqno]LinkID, len(x))
  1175  			for k, v := range x {
  1176  				kCopy := k.DeepCopy()
  1177  				vCopy := v.DeepCopy()
  1178  				ret[kCopy] = vCopy
  1179  			}
  1180  			return ret
  1181  		})(o.Outer),
  1182  		Inner: (func(x map[Seqno]HiddenTeamChainLink) map[Seqno]HiddenTeamChainLink {
  1183  			if x == nil {
  1184  				return nil
  1185  			}
  1186  			ret := make(map[Seqno]HiddenTeamChainLink, len(x))
  1187  			for k, v := range x {
  1188  				kCopy := k.DeepCopy()
  1189  				vCopy := v.DeepCopy()
  1190  				ret[kCopy] = vCopy
  1191  			}
  1192  			return ret
  1193  		})(o.Inner),
  1194  		ReaderPerTeamKeys: (func(x map[PerTeamKeyGeneration]Seqno) map[PerTeamKeyGeneration]Seqno {
  1195  			if x == nil {
  1196  				return nil
  1197  			}
  1198  			ret := make(map[PerTeamKeyGeneration]Seqno, len(x))
  1199  			for k, v := range x {
  1200  				kCopy := k.DeepCopy()
  1201  				vCopy := v.DeepCopy()
  1202  				ret[kCopy] = vCopy
  1203  			}
  1204  			return ret
  1205  		})(o.ReaderPerTeamKeys),
  1206  		RatchetSet: o.RatchetSet.DeepCopy(),
  1207  		CachedAt:   o.CachedAt.DeepCopy(),
  1208  		NeedRotate: o.NeedRotate,
  1209  		MerkleRoots: (func(x map[Seqno]MerkleRootV2) map[Seqno]MerkleRootV2 {
  1210  			if x == nil {
  1211  				return nil
  1212  			}
  1213  			ret := make(map[Seqno]MerkleRootV2, len(x))
  1214  			for k, v := range x {
  1215  				kCopy := k.DeepCopy()
  1216  				vCopy := v.DeepCopy()
  1217  				ret[kCopy] = vCopy
  1218  			}
  1219  			return ret
  1220  		})(o.MerkleRoots),
  1221  	}
  1222  }
  1223  
  1224  type LinkTriple struct {
  1225  	Seqno   Seqno   `codec:"seqno" json:"seqno"`
  1226  	SeqType SeqType `codec:"seqType" json:"seqType"`
  1227  	LinkID  LinkID  `codec:"linkID" json:"linkID"`
  1228  }
  1229  
  1230  func (o LinkTriple) DeepCopy() LinkTriple {
  1231  	return LinkTriple{
  1232  		Seqno:   o.Seqno.DeepCopy(),
  1233  		SeqType: o.SeqType.DeepCopy(),
  1234  		LinkID:  o.LinkID.DeepCopy(),
  1235  	}
  1236  }
  1237  
  1238  type LinkTripleAndTime struct {
  1239  	Triple LinkTriple `codec:"triple" json:"triple"`
  1240  	Time   Time       `codec:"time" json:"time"`
  1241  }
  1242  
  1243  func (o LinkTripleAndTime) DeepCopy() LinkTripleAndTime {
  1244  	return LinkTripleAndTime{
  1245  		Triple: o.Triple.DeepCopy(),
  1246  		Time:   o.Time.DeepCopy(),
  1247  	}
  1248  }
  1249  
  1250  type UpPointer struct {
  1251  	OurSeqno    Seqno  `codec:"ourSeqno" json:"ourSeqno"`
  1252  	ParentID    TeamID `codec:"parentID" json:"parentID"`
  1253  	ParentSeqno Seqno  `codec:"parentSeqno" json:"parentSeqno"`
  1254  	Deletion    bool   `codec:"deletion" json:"deletion"`
  1255  }
  1256  
  1257  func (o UpPointer) DeepCopy() UpPointer {
  1258  	return UpPointer{
  1259  		OurSeqno:    o.OurSeqno.DeepCopy(),
  1260  		ParentID:    o.ParentID.DeepCopy(),
  1261  		ParentSeqno: o.ParentSeqno.DeepCopy(),
  1262  		Deletion:    o.Deletion,
  1263  	}
  1264  }
  1265  
  1266  type DownPointer struct {
  1267  	Id            TeamID `codec:"id" json:"id"`
  1268  	NameComponent string `codec:"nameComponent" json:"nameComponent"`
  1269  	IsDeleted     bool   `codec:"isDeleted" json:"isDeleted"`
  1270  }
  1271  
  1272  func (o DownPointer) DeepCopy() DownPointer {
  1273  	return DownPointer{
  1274  		Id:            o.Id.DeepCopy(),
  1275  		NameComponent: o.NameComponent,
  1276  		IsDeleted:     o.IsDeleted,
  1277  	}
  1278  }
  1279  
  1280  type Signer struct {
  1281  	E Seqno `codec:"e" json:"e"`
  1282  	K KID   `codec:"k" json:"k"`
  1283  	U UID   `codec:"u" json:"u"`
  1284  }
  1285  
  1286  func (o Signer) DeepCopy() Signer {
  1287  	return Signer{
  1288  		E: o.E.DeepCopy(),
  1289  		K: o.K.DeepCopy(),
  1290  		U: o.U.DeepCopy(),
  1291  	}
  1292  }
  1293  
  1294  type HiddenTeamChainLink struct {
  1295  	MerkleRoot  MerkleRootV2                   `codec:"m" json:"m"`
  1296  	ParentChain LinkTriple                     `codec:"p" json:"p"`
  1297  	Signer      Signer                         `codec:"s" json:"s"`
  1298  	Ptk         map[PTKType]PerTeamKeyAndCheck `codec:"k" json:"k"`
  1299  }
  1300  
  1301  func (o HiddenTeamChainLink) DeepCopy() HiddenTeamChainLink {
  1302  	return HiddenTeamChainLink{
  1303  		MerkleRoot:  o.MerkleRoot.DeepCopy(),
  1304  		ParentChain: o.ParentChain.DeepCopy(),
  1305  		Signer:      o.Signer.DeepCopy(),
  1306  		Ptk: (func(x map[PTKType]PerTeamKeyAndCheck) map[PTKType]PerTeamKeyAndCheck {
  1307  			if x == nil {
  1308  				return nil
  1309  			}
  1310  			ret := make(map[PTKType]PerTeamKeyAndCheck, len(x))
  1311  			for k, v := range x {
  1312  				kCopy := k.DeepCopy()
  1313  				vCopy := v.DeepCopy()
  1314  				ret[kCopy] = vCopy
  1315  			}
  1316  			return ret
  1317  		})(o.Ptk),
  1318  	}
  1319  }
  1320  
  1321  type FastTeamSigChainState struct {
  1322  	ID                      TeamID                                  `codec:"ID" json:"ID"`
  1323  	Public                  bool                                    `codec:"public" json:"public"`
  1324  	RootAncestor            TeamName                                `codec:"rootAncestor" json:"rootAncestor"`
  1325  	NameDepth               int                                     `codec:"nameDepth" json:"nameDepth"`
  1326  	Last                    *LinkTriple                             `codec:"last,omitempty" json:"last,omitempty"`
  1327  	PerTeamKeys             map[PerTeamKeyGeneration]PerTeamKey     `codec:"perTeamKeys" json:"perTeamKeys"`
  1328  	PerTeamKeySeedsVerified map[PerTeamKeyGeneration]PerTeamKeySeed `codec:"perTeamKeySeedsVerified" json:"perTeamKeySeedsVerified"`
  1329  	DownPointers            map[Seqno]DownPointer                   `codec:"downPointers" json:"downPointers"`
  1330  	LastUpPointer           *UpPointer                              `codec:"lastUpPointer,omitempty" json:"lastUpPointer,omitempty"`
  1331  	PerTeamKeyCTime         UnixTime                                `codec:"perTeamKeyCTime" json:"perTeamKeyCTime"`
  1332  	LinkIDs                 map[Seqno]LinkID                        `codec:"linkIDs" json:"linkIDs"`
  1333  	MerkleInfo              map[Seqno]MerkleRootV2                  `codec:"merkleInfo" json:"merkleInfo"`
  1334  }
  1335  
  1336  func (o FastTeamSigChainState) DeepCopy() FastTeamSigChainState {
  1337  	return FastTeamSigChainState{
  1338  		ID:           o.ID.DeepCopy(),
  1339  		Public:       o.Public,
  1340  		RootAncestor: o.RootAncestor.DeepCopy(),
  1341  		NameDepth:    o.NameDepth,
  1342  		Last: (func(x *LinkTriple) *LinkTriple {
  1343  			if x == nil {
  1344  				return nil
  1345  			}
  1346  			tmp := (*x).DeepCopy()
  1347  			return &tmp
  1348  		})(o.Last),
  1349  		PerTeamKeys: (func(x map[PerTeamKeyGeneration]PerTeamKey) map[PerTeamKeyGeneration]PerTeamKey {
  1350  			if x == nil {
  1351  				return nil
  1352  			}
  1353  			ret := make(map[PerTeamKeyGeneration]PerTeamKey, len(x))
  1354  			for k, v := range x {
  1355  				kCopy := k.DeepCopy()
  1356  				vCopy := v.DeepCopy()
  1357  				ret[kCopy] = vCopy
  1358  			}
  1359  			return ret
  1360  		})(o.PerTeamKeys),
  1361  		PerTeamKeySeedsVerified: (func(x map[PerTeamKeyGeneration]PerTeamKeySeed) map[PerTeamKeyGeneration]PerTeamKeySeed {
  1362  			if x == nil {
  1363  				return nil
  1364  			}
  1365  			ret := make(map[PerTeamKeyGeneration]PerTeamKeySeed, len(x))
  1366  			for k, v := range x {
  1367  				kCopy := k.DeepCopy()
  1368  				vCopy := v.DeepCopy()
  1369  				ret[kCopy] = vCopy
  1370  			}
  1371  			return ret
  1372  		})(o.PerTeamKeySeedsVerified),
  1373  		DownPointers: (func(x map[Seqno]DownPointer) map[Seqno]DownPointer {
  1374  			if x == nil {
  1375  				return nil
  1376  			}
  1377  			ret := make(map[Seqno]DownPointer, len(x))
  1378  			for k, v := range x {
  1379  				kCopy := k.DeepCopy()
  1380  				vCopy := v.DeepCopy()
  1381  				ret[kCopy] = vCopy
  1382  			}
  1383  			return ret
  1384  		})(o.DownPointers),
  1385  		LastUpPointer: (func(x *UpPointer) *UpPointer {
  1386  			if x == nil {
  1387  				return nil
  1388  			}
  1389  			tmp := (*x).DeepCopy()
  1390  			return &tmp
  1391  		})(o.LastUpPointer),
  1392  		PerTeamKeyCTime: o.PerTeamKeyCTime.DeepCopy(),
  1393  		LinkIDs: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
  1394  			if x == nil {
  1395  				return nil
  1396  			}
  1397  			ret := make(map[Seqno]LinkID, len(x))
  1398  			for k, v := range x {
  1399  				kCopy := k.DeepCopy()
  1400  				vCopy := v.DeepCopy()
  1401  				ret[kCopy] = vCopy
  1402  			}
  1403  			return ret
  1404  		})(o.LinkIDs),
  1405  		MerkleInfo: (func(x map[Seqno]MerkleRootV2) map[Seqno]MerkleRootV2 {
  1406  			if x == nil {
  1407  				return nil
  1408  			}
  1409  			ret := make(map[Seqno]MerkleRootV2, len(x))
  1410  			for k, v := range x {
  1411  				kCopy := k.DeepCopy()
  1412  				vCopy := v.DeepCopy()
  1413  				ret[kCopy] = vCopy
  1414  			}
  1415  			return ret
  1416  		})(o.MerkleInfo),
  1417  	}
  1418  }
  1419  
  1420  type Audit struct {
  1421  	Time           Time  `codec:"time" json:"time"`
  1422  	MaxMerkleSeqno Seqno `codec:"mms" json:"mms"`
  1423  	MaxChainSeqno  Seqno `codec:"mcs" json:"mcs"`
  1424  	MaxHiddenSeqno Seqno `codec:"mhs" json:"mhs"`
  1425  	MaxMerkleProbe Seqno `codec:"mmp" json:"mmp"`
  1426  }
  1427  
  1428  func (o Audit) DeepCopy() Audit {
  1429  	return Audit{
  1430  		Time:           o.Time.DeepCopy(),
  1431  		MaxMerkleSeqno: o.MaxMerkleSeqno.DeepCopy(),
  1432  		MaxChainSeqno:  o.MaxChainSeqno.DeepCopy(),
  1433  		MaxHiddenSeqno: o.MaxHiddenSeqno.DeepCopy(),
  1434  		MaxMerkleProbe: o.MaxMerkleProbe.DeepCopy(),
  1435  	}
  1436  }
  1437  
  1438  type Probe struct {
  1439  	Index           int   `codec:"i" json:"i"`
  1440  	TeamSeqno       Seqno `codec:"s" json:"t"`
  1441  	TeamHiddenSeqno Seqno `codec:"h" json:"h"`
  1442  }
  1443  
  1444  func (o Probe) DeepCopy() Probe {
  1445  	return Probe{
  1446  		Index:           o.Index,
  1447  		TeamSeqno:       o.TeamSeqno.DeepCopy(),
  1448  		TeamHiddenSeqno: o.TeamHiddenSeqno.DeepCopy(),
  1449  	}
  1450  }
  1451  
  1452  type AuditVersion int
  1453  
  1454  const (
  1455  	AuditVersion_V0 AuditVersion = 0
  1456  	AuditVersion_V1 AuditVersion = 1
  1457  	AuditVersion_V2 AuditVersion = 2
  1458  	AuditVersion_V3 AuditVersion = 3
  1459  	AuditVersion_V4 AuditVersion = 4
  1460  )
  1461  
  1462  func (o AuditVersion) DeepCopy() AuditVersion { return o }
  1463  
  1464  var AuditVersionMap = map[string]AuditVersion{
  1465  	"V0": 0,
  1466  	"V1": 1,
  1467  	"V2": 2,
  1468  	"V3": 3,
  1469  	"V4": 4,
  1470  }
  1471  
  1472  var AuditVersionRevMap = map[AuditVersion]string{
  1473  	0: "V0",
  1474  	1: "V1",
  1475  	2: "V2",
  1476  	3: "V3",
  1477  	4: "V4",
  1478  }
  1479  
  1480  func (e AuditVersion) String() string {
  1481  	if v, ok := AuditVersionRevMap[e]; ok {
  1482  		return v
  1483  	}
  1484  	return fmt.Sprintf("%v", int(e))
  1485  }
  1486  
  1487  type AuditHistory struct {
  1488  	ID                TeamID           `codec:"ID" json:"ID"`
  1489  	Public            bool             `codec:"public" json:"public"`
  1490  	PriorMerkleSeqno  Seqno            `codec:"priorMerkleSeqno" json:"priorMerkleSeqno"`
  1491  	Version           AuditVersion     `codec:"version" json:"version"`
  1492  	Audits            []Audit          `codec:"audits" json:"audits"`
  1493  	PreProbes         map[Seqno]Probe  `codec:"preProbes" json:"preProbes"`
  1494  	PostProbes        map[Seqno]Probe  `codec:"postProbes" json:"postProbes"`
  1495  	Tails             map[Seqno]LinkID `codec:"tails" json:"tails"`
  1496  	HiddenTails       map[Seqno]LinkID `codec:"hiddenTails" json:"hiddenTails"`
  1497  	PreProbesToRetry  []Seqno          `codec:"preProbesToRetry" json:"preProbesToRetry"`
  1498  	PostProbesToRetry []Seqno          `codec:"postProbesToRetry" json:"postProbesToRetry"`
  1499  	SkipUntil         Time             `codec:"skipUntil" json:"skipUntil"`
  1500  }
  1501  
  1502  func (o AuditHistory) DeepCopy() AuditHistory {
  1503  	return AuditHistory{
  1504  		ID:               o.ID.DeepCopy(),
  1505  		Public:           o.Public,
  1506  		PriorMerkleSeqno: o.PriorMerkleSeqno.DeepCopy(),
  1507  		Version:          o.Version.DeepCopy(),
  1508  		Audits: (func(x []Audit) []Audit {
  1509  			if x == nil {
  1510  				return nil
  1511  			}
  1512  			ret := make([]Audit, len(x))
  1513  			for i, v := range x {
  1514  				vCopy := v.DeepCopy()
  1515  				ret[i] = vCopy
  1516  			}
  1517  			return ret
  1518  		})(o.Audits),
  1519  		PreProbes: (func(x map[Seqno]Probe) map[Seqno]Probe {
  1520  			if x == nil {
  1521  				return nil
  1522  			}
  1523  			ret := make(map[Seqno]Probe, len(x))
  1524  			for k, v := range x {
  1525  				kCopy := k.DeepCopy()
  1526  				vCopy := v.DeepCopy()
  1527  				ret[kCopy] = vCopy
  1528  			}
  1529  			return ret
  1530  		})(o.PreProbes),
  1531  		PostProbes: (func(x map[Seqno]Probe) map[Seqno]Probe {
  1532  			if x == nil {
  1533  				return nil
  1534  			}
  1535  			ret := make(map[Seqno]Probe, len(x))
  1536  			for k, v := range x {
  1537  				kCopy := k.DeepCopy()
  1538  				vCopy := v.DeepCopy()
  1539  				ret[kCopy] = vCopy
  1540  			}
  1541  			return ret
  1542  		})(o.PostProbes),
  1543  		Tails: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
  1544  			if x == nil {
  1545  				return nil
  1546  			}
  1547  			ret := make(map[Seqno]LinkID, len(x))
  1548  			for k, v := range x {
  1549  				kCopy := k.DeepCopy()
  1550  				vCopy := v.DeepCopy()
  1551  				ret[kCopy] = vCopy
  1552  			}
  1553  			return ret
  1554  		})(o.Tails),
  1555  		HiddenTails: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
  1556  			if x == nil {
  1557  				return nil
  1558  			}
  1559  			ret := make(map[Seqno]LinkID, len(x))
  1560  			for k, v := range x {
  1561  				kCopy := k.DeepCopy()
  1562  				vCopy := v.DeepCopy()
  1563  				ret[kCopy] = vCopy
  1564  			}
  1565  			return ret
  1566  		})(o.HiddenTails),
  1567  		PreProbesToRetry: (func(x []Seqno) []Seqno {
  1568  			if x == nil {
  1569  				return nil
  1570  			}
  1571  			ret := make([]Seqno, len(x))
  1572  			for i, v := range x {
  1573  				vCopy := v.DeepCopy()
  1574  				ret[i] = vCopy
  1575  			}
  1576  			return ret
  1577  		})(o.PreProbesToRetry),
  1578  		PostProbesToRetry: (func(x []Seqno) []Seqno {
  1579  			if x == nil {
  1580  				return nil
  1581  			}
  1582  			ret := make([]Seqno, len(x))
  1583  			for i, v := range x {
  1584  				vCopy := v.DeepCopy()
  1585  				ret[i] = vCopy
  1586  			}
  1587  			return ret
  1588  		})(o.PostProbesToRetry),
  1589  		SkipUntil: o.SkipUntil.DeepCopy(),
  1590  	}
  1591  }
  1592  
  1593  type TeamInviteCategory int
  1594  
  1595  const (
  1596  	TeamInviteCategory_NONE       TeamInviteCategory = 0
  1597  	TeamInviteCategory_UNKNOWN    TeamInviteCategory = 1
  1598  	TeamInviteCategory_KEYBASE    TeamInviteCategory = 2
  1599  	TeamInviteCategory_EMAIL      TeamInviteCategory = 3
  1600  	TeamInviteCategory_SBS        TeamInviteCategory = 4
  1601  	TeamInviteCategory_SEITAN     TeamInviteCategory = 5
  1602  	TeamInviteCategory_PHONE      TeamInviteCategory = 6
  1603  	TeamInviteCategory_INVITELINK TeamInviteCategory = 7
  1604  )
  1605  
  1606  func (o TeamInviteCategory) DeepCopy() TeamInviteCategory { return o }
  1607  
  1608  var TeamInviteCategoryMap = map[string]TeamInviteCategory{
  1609  	"NONE":       0,
  1610  	"UNKNOWN":    1,
  1611  	"KEYBASE":    2,
  1612  	"EMAIL":      3,
  1613  	"SBS":        4,
  1614  	"SEITAN":     5,
  1615  	"PHONE":      6,
  1616  	"INVITELINK": 7,
  1617  }
  1618  
  1619  var TeamInviteCategoryRevMap = map[TeamInviteCategory]string{
  1620  	0: "NONE",
  1621  	1: "UNKNOWN",
  1622  	2: "KEYBASE",
  1623  	3: "EMAIL",
  1624  	4: "SBS",
  1625  	5: "SEITAN",
  1626  	6: "PHONE",
  1627  	7: "INVITELINK",
  1628  }
  1629  
  1630  func (e TeamInviteCategory) String() string {
  1631  	if v, ok := TeamInviteCategoryRevMap[e]; ok {
  1632  		return v
  1633  	}
  1634  	return fmt.Sprintf("%v", int(e))
  1635  }
  1636  
  1637  type TeamInviteType struct {
  1638  	C__       TeamInviteCategory       `codec:"c" json:"c"`
  1639  	Unknown__ *string                  `codec:"unknown,omitempty" json:"unknown,omitempty"`
  1640  	Sbs__     *TeamInviteSocialNetwork `codec:"sbs,omitempty" json:"sbs,omitempty"`
  1641  }
  1642  
  1643  func (o *TeamInviteType) C() (ret TeamInviteCategory, err error) {
  1644  	switch o.C__ {
  1645  	case TeamInviteCategory_UNKNOWN:
  1646  		if o.Unknown__ == nil {
  1647  			err = errors.New("unexpected nil value for Unknown__")
  1648  			return ret, err
  1649  		}
  1650  	case TeamInviteCategory_SBS:
  1651  		if o.Sbs__ == nil {
  1652  			err = errors.New("unexpected nil value for Sbs__")
  1653  			return ret, err
  1654  		}
  1655  	}
  1656  	return o.C__, nil
  1657  }
  1658  
  1659  func (o TeamInviteType) Unknown() (res string) {
  1660  	if o.C__ != TeamInviteCategory_UNKNOWN {
  1661  		panic("wrong case accessed")
  1662  	}
  1663  	if o.Unknown__ == nil {
  1664  		return
  1665  	}
  1666  	return *o.Unknown__
  1667  }
  1668  
  1669  func (o TeamInviteType) Sbs() (res TeamInviteSocialNetwork) {
  1670  	if o.C__ != TeamInviteCategory_SBS {
  1671  		panic("wrong case accessed")
  1672  	}
  1673  	if o.Sbs__ == nil {
  1674  		return
  1675  	}
  1676  	return *o.Sbs__
  1677  }
  1678  
  1679  func NewTeamInviteTypeWithUnknown(v string) TeamInviteType {
  1680  	return TeamInviteType{
  1681  		C__:       TeamInviteCategory_UNKNOWN,
  1682  		Unknown__: &v,
  1683  	}
  1684  }
  1685  
  1686  func NewTeamInviteTypeWithSbs(v TeamInviteSocialNetwork) TeamInviteType {
  1687  	return TeamInviteType{
  1688  		C__:   TeamInviteCategory_SBS,
  1689  		Sbs__: &v,
  1690  	}
  1691  }
  1692  
  1693  func NewTeamInviteTypeDefault(c TeamInviteCategory) TeamInviteType {
  1694  	return TeamInviteType{
  1695  		C__: c,
  1696  	}
  1697  }
  1698  
  1699  func (o TeamInviteType) DeepCopy() TeamInviteType {
  1700  	return TeamInviteType{
  1701  		C__: o.C__.DeepCopy(),
  1702  		Unknown__: (func(x *string) *string {
  1703  			if x == nil {
  1704  				return nil
  1705  			}
  1706  			tmp := (*x)
  1707  			return &tmp
  1708  		})(o.Unknown__),
  1709  		Sbs__: (func(x *TeamInviteSocialNetwork) *TeamInviteSocialNetwork {
  1710  			if x == nil {
  1711  				return nil
  1712  			}
  1713  			tmp := (*x).DeepCopy()
  1714  			return &tmp
  1715  		})(o.Sbs__),
  1716  	}
  1717  }
  1718  
  1719  type TeamInviteSocialNetwork string
  1720  
  1721  func (o TeamInviteSocialNetwork) DeepCopy() TeamInviteSocialNetwork {
  1722  	return o
  1723  }
  1724  
  1725  type TeamInviteName string
  1726  
  1727  func (o TeamInviteName) DeepCopy() TeamInviteName {
  1728  	return o
  1729  }
  1730  
  1731  type TeamInviteDisplayName string
  1732  
  1733  func (o TeamInviteDisplayName) DeepCopy() TeamInviteDisplayName {
  1734  	return o
  1735  }
  1736  
  1737  type TeamInvite struct {
  1738  	Role    TeamRole           `codec:"role" json:"role"`
  1739  	Id      TeamInviteID       `codec:"id" json:"id"`
  1740  	Type    TeamInviteType     `codec:"type" json:"type"`
  1741  	Name    TeamInviteName     `codec:"name" json:"name"`
  1742  	Inviter UserVersion        `codec:"inviter" json:"inviter"`
  1743  	MaxUses *TeamInviteMaxUses `codec:"maxUses,omitempty" json:"maxUses,omitempty"`
  1744  	Etime   *UnixTime          `codec:"etime,omitempty" json:"etime,omitempty"`
  1745  }
  1746  
  1747  func (o TeamInvite) DeepCopy() TeamInvite {
  1748  	return TeamInvite{
  1749  		Role:    o.Role.DeepCopy(),
  1750  		Id:      o.Id.DeepCopy(),
  1751  		Type:    o.Type.DeepCopy(),
  1752  		Name:    o.Name.DeepCopy(),
  1753  		Inviter: o.Inviter.DeepCopy(),
  1754  		MaxUses: (func(x *TeamInviteMaxUses) *TeamInviteMaxUses {
  1755  			if x == nil {
  1756  				return nil
  1757  			}
  1758  			tmp := (*x).DeepCopy()
  1759  			return &tmp
  1760  		})(o.MaxUses),
  1761  		Etime: (func(x *UnixTime) *UnixTime {
  1762  			if x == nil {
  1763  				return nil
  1764  			}
  1765  			tmp := (*x).DeepCopy()
  1766  			return &tmp
  1767  		})(o.Etime),
  1768  	}
  1769  }
  1770  
  1771  type AnnotatedTeamInvite struct {
  1772  	InviteMetadata      TeamInviteMetadata     `codec:"inviteMetadata" json:"inviteMetadata"`
  1773  	DisplayName         TeamInviteDisplayName  `codec:"displayName" json:"displayName"`
  1774  	InviterUsername     string                 `codec:"inviterUsername" json:"inviterUsername"`
  1775  	TeamName            string                 `codec:"teamName" json:"teamName"`
  1776  	IsValid             bool                   `codec:"isValid" json:"isValid"`
  1777  	ValidityDescription string                 `codec:"validityDescription" json:"validityDescription"`
  1778  	InviteExt           AnnotatedTeamInviteExt `codec:"inviteExt" json:"inviteExt"`
  1779  }
  1780  
  1781  func (o AnnotatedTeamInvite) DeepCopy() AnnotatedTeamInvite {
  1782  	return AnnotatedTeamInvite{
  1783  		InviteMetadata:      o.InviteMetadata.DeepCopy(),
  1784  		DisplayName:         o.DisplayName.DeepCopy(),
  1785  		InviterUsername:     o.InviterUsername,
  1786  		TeamName:            o.TeamName,
  1787  		IsValid:             o.IsValid,
  1788  		ValidityDescription: o.ValidityDescription,
  1789  		InviteExt:           o.InviteExt.DeepCopy(),
  1790  	}
  1791  }
  1792  
  1793  type KeybaseInviteExt struct {
  1794  	InviteeUv UserVersion      `codec:"inviteeUv" json:"inviteeUv"`
  1795  	Status    TeamMemberStatus `codec:"status" json:"status"`
  1796  	FullName  FullName         `codec:"fullName" json:"fullName"`
  1797  	Username  string           `codec:"username" json:"username"`
  1798  }
  1799  
  1800  func (o KeybaseInviteExt) DeepCopy() KeybaseInviteExt {
  1801  	return KeybaseInviteExt{
  1802  		InviteeUv: o.InviteeUv.DeepCopy(),
  1803  		Status:    o.Status.DeepCopy(),
  1804  		FullName:  o.FullName.DeepCopy(),
  1805  		Username:  o.Username,
  1806  	}
  1807  }
  1808  
  1809  type InvitelinkInviteExt struct {
  1810  	AnnotatedUsedInvites []AnnotatedTeamUsedInviteLogPoint `codec:"annotatedUsedInvites" json:"annotatedUsedInvites"`
  1811  }
  1812  
  1813  func (o InvitelinkInviteExt) DeepCopy() InvitelinkInviteExt {
  1814  	return InvitelinkInviteExt{
  1815  		AnnotatedUsedInvites: (func(x []AnnotatedTeamUsedInviteLogPoint) []AnnotatedTeamUsedInviteLogPoint {
  1816  			if x == nil {
  1817  				return nil
  1818  			}
  1819  			ret := make([]AnnotatedTeamUsedInviteLogPoint, len(x))
  1820  			for i, v := range x {
  1821  				vCopy := v.DeepCopy()
  1822  				ret[i] = vCopy
  1823  			}
  1824  			return ret
  1825  		})(o.AnnotatedUsedInvites),
  1826  	}
  1827  }
  1828  
  1829  type AnnotatedTeamInviteExt struct {
  1830  	C__          TeamInviteCategory   `codec:"c" json:"c"`
  1831  	Keybase__    *KeybaseInviteExt    `codec:"keybase,omitempty" json:"keybase,omitempty"`
  1832  	Invitelink__ *InvitelinkInviteExt `codec:"invitelink,omitempty" json:"invitelink,omitempty"`
  1833  }
  1834  
  1835  func (o *AnnotatedTeamInviteExt) C() (ret TeamInviteCategory, err error) {
  1836  	switch o.C__ {
  1837  	case TeamInviteCategory_KEYBASE:
  1838  		if o.Keybase__ == nil {
  1839  			err = errors.New("unexpected nil value for Keybase__")
  1840  			return ret, err
  1841  		}
  1842  	case TeamInviteCategory_INVITELINK:
  1843  		if o.Invitelink__ == nil {
  1844  			err = errors.New("unexpected nil value for Invitelink__")
  1845  			return ret, err
  1846  		}
  1847  	}
  1848  	return o.C__, nil
  1849  }
  1850  
  1851  func (o AnnotatedTeamInviteExt) Keybase() (res KeybaseInviteExt) {
  1852  	if o.C__ != TeamInviteCategory_KEYBASE {
  1853  		panic("wrong case accessed")
  1854  	}
  1855  	if o.Keybase__ == nil {
  1856  		return
  1857  	}
  1858  	return *o.Keybase__
  1859  }
  1860  
  1861  func (o AnnotatedTeamInviteExt) Invitelink() (res InvitelinkInviteExt) {
  1862  	if o.C__ != TeamInviteCategory_INVITELINK {
  1863  		panic("wrong case accessed")
  1864  	}
  1865  	if o.Invitelink__ == nil {
  1866  		return
  1867  	}
  1868  	return *o.Invitelink__
  1869  }
  1870  
  1871  func NewAnnotatedTeamInviteExtWithKeybase(v KeybaseInviteExt) AnnotatedTeamInviteExt {
  1872  	return AnnotatedTeamInviteExt{
  1873  		C__:       TeamInviteCategory_KEYBASE,
  1874  		Keybase__: &v,
  1875  	}
  1876  }
  1877  
  1878  func NewAnnotatedTeamInviteExtWithInvitelink(v InvitelinkInviteExt) AnnotatedTeamInviteExt {
  1879  	return AnnotatedTeamInviteExt{
  1880  		C__:          TeamInviteCategory_INVITELINK,
  1881  		Invitelink__: &v,
  1882  	}
  1883  }
  1884  
  1885  func NewAnnotatedTeamInviteExtDefault(c TeamInviteCategory) AnnotatedTeamInviteExt {
  1886  	return AnnotatedTeamInviteExt{
  1887  		C__: c,
  1888  	}
  1889  }
  1890  
  1891  func (o AnnotatedTeamInviteExt) DeepCopy() AnnotatedTeamInviteExt {
  1892  	return AnnotatedTeamInviteExt{
  1893  		C__: o.C__.DeepCopy(),
  1894  		Keybase__: (func(x *KeybaseInviteExt) *KeybaseInviteExt {
  1895  			if x == nil {
  1896  				return nil
  1897  			}
  1898  			tmp := (*x).DeepCopy()
  1899  			return &tmp
  1900  		})(o.Keybase__),
  1901  		Invitelink__: (func(x *InvitelinkInviteExt) *InvitelinkInviteExt {
  1902  			if x == nil {
  1903  				return nil
  1904  			}
  1905  			tmp := (*x).DeepCopy()
  1906  			return &tmp
  1907  		})(o.Invitelink__),
  1908  	}
  1909  }
  1910  
  1911  type TeamEncryptedKBFSKeyset struct {
  1912  	V int    `codec:"v" json:"v"`
  1913  	E []byte `codec:"e" json:"e"`
  1914  	N []byte `codec:"n" json:"n"`
  1915  }
  1916  
  1917  func (o TeamEncryptedKBFSKeyset) DeepCopy() TeamEncryptedKBFSKeyset {
  1918  	return TeamEncryptedKBFSKeyset{
  1919  		V: o.V,
  1920  		E: (func(x []byte) []byte {
  1921  			if x == nil {
  1922  				return nil
  1923  			}
  1924  			return append([]byte{}, x...)
  1925  		})(o.E),
  1926  		N: (func(x []byte) []byte {
  1927  			if x == nil {
  1928  				return nil
  1929  			}
  1930  			return append([]byte{}, x...)
  1931  		})(o.N),
  1932  	}
  1933  }
  1934  
  1935  type TeamGetLegacyTLFUpgrade struct {
  1936  	EncryptedKeyset  string               `codec:"encryptedKeyset" json:"encrypted_keyset"`
  1937  	TeamGeneration   PerTeamKeyGeneration `codec:"teamGeneration" json:"team_generation"`
  1938  	LegacyGeneration int                  `codec:"legacyGeneration" json:"legacy_generation"`
  1939  	AppType          TeamApplication      `codec:"appType" json:"app_type"`
  1940  }
  1941  
  1942  func (o TeamGetLegacyTLFUpgrade) DeepCopy() TeamGetLegacyTLFUpgrade {
  1943  	return TeamGetLegacyTLFUpgrade{
  1944  		EncryptedKeyset:  o.EncryptedKeyset,
  1945  		TeamGeneration:   o.TeamGeneration.DeepCopy(),
  1946  		LegacyGeneration: o.LegacyGeneration,
  1947  		AppType:          o.AppType.DeepCopy(),
  1948  	}
  1949  }
  1950  
  1951  type TeamEncryptedKBFSKeysetHash string
  1952  
  1953  func (o TeamEncryptedKBFSKeysetHash) DeepCopy() TeamEncryptedKBFSKeysetHash {
  1954  	return o
  1955  }
  1956  
  1957  type TeamLegacyTLFUpgradeChainInfo struct {
  1958  	KeysetHash       TeamEncryptedKBFSKeysetHash `codec:"keysetHash" json:"keysetHash"`
  1959  	TeamGeneration   PerTeamKeyGeneration        `codec:"teamGeneration" json:"teamGeneration"`
  1960  	LegacyGeneration int                         `codec:"legacyGeneration" json:"legacyGeneration"`
  1961  	AppType          TeamApplication             `codec:"appType" json:"appType"`
  1962  }
  1963  
  1964  func (o TeamLegacyTLFUpgradeChainInfo) DeepCopy() TeamLegacyTLFUpgradeChainInfo {
  1965  	return TeamLegacyTLFUpgradeChainInfo{
  1966  		KeysetHash:       o.KeysetHash.DeepCopy(),
  1967  		TeamGeneration:   o.TeamGeneration.DeepCopy(),
  1968  		LegacyGeneration: o.LegacyGeneration,
  1969  		AppType:          o.AppType.DeepCopy(),
  1970  	}
  1971  }
  1972  
  1973  type TeamSignatureMetadata struct {
  1974  	SigMeta SignatureMetadata `codec:"sigMeta" json:"sigMeta"`
  1975  	Uv      UserVersion       `codec:"uv" json:"uv"`
  1976  }
  1977  
  1978  func (o TeamSignatureMetadata) DeepCopy() TeamSignatureMetadata {
  1979  	return TeamSignatureMetadata{
  1980  		SigMeta: o.SigMeta.DeepCopy(),
  1981  		Uv:      o.Uv.DeepCopy(),
  1982  	}
  1983  }
  1984  
  1985  type TeamInviteMetadataCancel struct {
  1986  	TeamSigMeta TeamSignatureMetadata `codec:"teamSigMeta" json:"teamSigMeta"`
  1987  }
  1988  
  1989  func (o TeamInviteMetadataCancel) DeepCopy() TeamInviteMetadataCancel {
  1990  	return TeamInviteMetadataCancel{
  1991  		TeamSigMeta: o.TeamSigMeta.DeepCopy(),
  1992  	}
  1993  }
  1994  
  1995  type TeamInviteMetadataCompleted struct {
  1996  	TeamSigMeta TeamSignatureMetadata `codec:"teamSigMeta" json:"teamSigMeta"`
  1997  }
  1998  
  1999  func (o TeamInviteMetadataCompleted) DeepCopy() TeamInviteMetadataCompleted {
  2000  	return TeamInviteMetadataCompleted{
  2001  		TeamSigMeta: o.TeamSigMeta.DeepCopy(),
  2002  	}
  2003  }
  2004  
  2005  type TeamInviteMetadataStatusCode int
  2006  
  2007  const (
  2008  	TeamInviteMetadataStatusCode_ACTIVE    TeamInviteMetadataStatusCode = 0
  2009  	TeamInviteMetadataStatusCode_OBSOLETE  TeamInviteMetadataStatusCode = 1
  2010  	TeamInviteMetadataStatusCode_CANCELLED TeamInviteMetadataStatusCode = 2
  2011  	TeamInviteMetadataStatusCode_COMPLETED TeamInviteMetadataStatusCode = 3
  2012  )
  2013  
  2014  func (o TeamInviteMetadataStatusCode) DeepCopy() TeamInviteMetadataStatusCode { return o }
  2015  
  2016  var TeamInviteMetadataStatusCodeMap = map[string]TeamInviteMetadataStatusCode{
  2017  	"ACTIVE":    0,
  2018  	"OBSOLETE":  1,
  2019  	"CANCELLED": 2,
  2020  	"COMPLETED": 3,
  2021  }
  2022  
  2023  var TeamInviteMetadataStatusCodeRevMap = map[TeamInviteMetadataStatusCode]string{
  2024  	0: "ACTIVE",
  2025  	1: "OBSOLETE",
  2026  	2: "CANCELLED",
  2027  	3: "COMPLETED",
  2028  }
  2029  
  2030  func (e TeamInviteMetadataStatusCode) String() string {
  2031  	if v, ok := TeamInviteMetadataStatusCodeRevMap[e]; ok {
  2032  		return v
  2033  	}
  2034  	return fmt.Sprintf("%v", int(e))
  2035  }
  2036  
  2037  type TeamInviteMetadataStatus struct {
  2038  	Code__      TeamInviteMetadataStatusCode `codec:"code" json:"code"`
  2039  	Cancelled__ *TeamInviteMetadataCancel    `codec:"cancelled,omitempty" json:"cancelled,omitempty"`
  2040  	Completed__ *TeamInviteMetadataCompleted `codec:"completed,omitempty" json:"completed,omitempty"`
  2041  }
  2042  
  2043  func (o *TeamInviteMetadataStatus) Code() (ret TeamInviteMetadataStatusCode, err error) {
  2044  	switch o.Code__ {
  2045  	case TeamInviteMetadataStatusCode_CANCELLED:
  2046  		if o.Cancelled__ == nil {
  2047  			err = errors.New("unexpected nil value for Cancelled__")
  2048  			return ret, err
  2049  		}
  2050  	case TeamInviteMetadataStatusCode_COMPLETED:
  2051  		if o.Completed__ == nil {
  2052  			err = errors.New("unexpected nil value for Completed__")
  2053  			return ret, err
  2054  		}
  2055  	}
  2056  	return o.Code__, nil
  2057  }
  2058  
  2059  func (o TeamInviteMetadataStatus) Cancelled() (res TeamInviteMetadataCancel) {
  2060  	if o.Code__ != TeamInviteMetadataStatusCode_CANCELLED {
  2061  		panic("wrong case accessed")
  2062  	}
  2063  	if o.Cancelled__ == nil {
  2064  		return
  2065  	}
  2066  	return *o.Cancelled__
  2067  }
  2068  
  2069  func (o TeamInviteMetadataStatus) Completed() (res TeamInviteMetadataCompleted) {
  2070  	if o.Code__ != TeamInviteMetadataStatusCode_COMPLETED {
  2071  		panic("wrong case accessed")
  2072  	}
  2073  	if o.Completed__ == nil {
  2074  		return
  2075  	}
  2076  	return *o.Completed__
  2077  }
  2078  
  2079  func NewTeamInviteMetadataStatusWithActive() TeamInviteMetadataStatus {
  2080  	return TeamInviteMetadataStatus{
  2081  		Code__: TeamInviteMetadataStatusCode_ACTIVE,
  2082  	}
  2083  }
  2084  
  2085  func NewTeamInviteMetadataStatusWithObsolete() TeamInviteMetadataStatus {
  2086  	return TeamInviteMetadataStatus{
  2087  		Code__: TeamInviteMetadataStatusCode_OBSOLETE,
  2088  	}
  2089  }
  2090  
  2091  func NewTeamInviteMetadataStatusWithCancelled(v TeamInviteMetadataCancel) TeamInviteMetadataStatus {
  2092  	return TeamInviteMetadataStatus{
  2093  		Code__:      TeamInviteMetadataStatusCode_CANCELLED,
  2094  		Cancelled__: &v,
  2095  	}
  2096  }
  2097  
  2098  func NewTeamInviteMetadataStatusWithCompleted(v TeamInviteMetadataCompleted) TeamInviteMetadataStatus {
  2099  	return TeamInviteMetadataStatus{
  2100  		Code__:      TeamInviteMetadataStatusCode_COMPLETED,
  2101  		Completed__: &v,
  2102  	}
  2103  }
  2104  
  2105  func (o TeamInviteMetadataStatus) DeepCopy() TeamInviteMetadataStatus {
  2106  	return TeamInviteMetadataStatus{
  2107  		Code__: o.Code__.DeepCopy(),
  2108  		Cancelled__: (func(x *TeamInviteMetadataCancel) *TeamInviteMetadataCancel {
  2109  			if x == nil {
  2110  				return nil
  2111  			}
  2112  			tmp := (*x).DeepCopy()
  2113  			return &tmp
  2114  		})(o.Cancelled__),
  2115  		Completed__: (func(x *TeamInviteMetadataCompleted) *TeamInviteMetadataCompleted {
  2116  			if x == nil {
  2117  				return nil
  2118  			}
  2119  			tmp := (*x).DeepCopy()
  2120  			return &tmp
  2121  		})(o.Completed__),
  2122  	}
  2123  }
  2124  
  2125  type TeamInviteMetadata struct {
  2126  	Invite      TeamInvite               `codec:"invite" json:"invite"`
  2127  	TeamSigMeta TeamSignatureMetadata    `codec:"teamSigMeta" json:"teamSigMeta"`
  2128  	Status      TeamInviteMetadataStatus `codec:"status" json:"status"`
  2129  	UsedInvites []TeamUsedInviteLogPoint `codec:"usedInvites" json:"usedInvites"`
  2130  }
  2131  
  2132  func (o TeamInviteMetadata) DeepCopy() TeamInviteMetadata {
  2133  	return TeamInviteMetadata{
  2134  		Invite:      o.Invite.DeepCopy(),
  2135  		TeamSigMeta: o.TeamSigMeta.DeepCopy(),
  2136  		Status:      o.Status.DeepCopy(),
  2137  		UsedInvites: (func(x []TeamUsedInviteLogPoint) []TeamUsedInviteLogPoint {
  2138  			if x == nil {
  2139  				return nil
  2140  			}
  2141  			ret := make([]TeamUsedInviteLogPoint, len(x))
  2142  			for i, v := range x {
  2143  				vCopy := v.DeepCopy()
  2144  				ret[i] = vCopy
  2145  			}
  2146  			return ret
  2147  		})(o.UsedInvites),
  2148  	}
  2149  }
  2150  
  2151  type TeamSigChainState struct {
  2152  	Reader                  UserVersion                                       `codec:"reader" json:"reader"`
  2153  	Id                      TeamID                                            `codec:"id" json:"id"`
  2154  	Implicit                bool                                              `codec:"implicit" json:"implicit"`
  2155  	Public                  bool                                              `codec:"public" json:"public"`
  2156  	RootAncestor            TeamName                                          `codec:"rootAncestor" json:"rootAncestor"`
  2157  	NameDepth               int                                               `codec:"nameDepth" json:"nameDepth"`
  2158  	NameLog                 []TeamNameLogPoint                                `codec:"nameLog" json:"nameLog"`
  2159  	LastSeqno               Seqno                                             `codec:"lastSeqno" json:"lastSeqno"`
  2160  	LastLinkID              LinkID                                            `codec:"lastLinkID" json:"lastLinkID"`
  2161  	LastHighSeqno           Seqno                                             `codec:"lastHighSeqno" json:"lastHighSeqno"`
  2162  	LastHighLinkID          LinkID                                            `codec:"lastHighLinkID" json:"lastHighLinkID"`
  2163  	ParentID                *TeamID                                           `codec:"parentID,omitempty" json:"parentID,omitempty"`
  2164  	UserLog                 map[UserVersion][]UserLogPoint                    `codec:"userLog" json:"userLog"`
  2165  	SubteamLog              map[TeamID][]SubteamLogPoint                      `codec:"subteamLog" json:"subteamLog"`
  2166  	PerTeamKeys             map[PerTeamKeyGeneration]PerTeamKey               `codec:"perTeamKeys" json:"perTeamKeys"`
  2167  	MaxPerTeamKeyGeneration PerTeamKeyGeneration                              `codec:"maxPerTeamKeyGeneration" json:"maxPerTeamKeyGeneration"`
  2168  	PerTeamKeyCTime         UnixTime                                          `codec:"perTeamKeyCTime" json:"perTeamKeyCTime"`
  2169  	LinkIDs                 map[Seqno]LinkID                                  `codec:"linkIDs" json:"linkIDs"`
  2170  	StubbedLinks            map[Seqno]bool                                    `codec:"stubbedLinks" json:"stubbedLinks"`
  2171  	InviteMetadatas         map[TeamInviteID]TeamInviteMetadata               `codec:"inviteMetadatas" json:"inviteMetadatas"`
  2172  	Open                    bool                                              `codec:"open" json:"open"`
  2173  	OpenTeamJoinAs          TeamRole                                          `codec:"openTeamJoinAs" json:"openTeamJoinAs"`
  2174  	Bots                    map[UserVersion]TeamBotSettings                   `codec:"bots" json:"bots"`
  2175  	TlfIDs                  []TLFID                                           `codec:"tlfIDs" json:"tlfIDs"`
  2176  	TlfLegacyUpgrade        map[TeamApplication]TeamLegacyTLFUpgradeChainInfo `codec:"tlfLegacyUpgrade" json:"tlfLegacyUpgrade"`
  2177  	HeadMerkle              *MerkleRootV2                                     `codec:"headMerkle,omitempty" json:"headMerkle,omitempty"`
  2178  	MerkleRoots             map[Seqno]MerkleRootV2                            `codec:"merkleRoots" json:"merkleRoots"`
  2179  }
  2180  
  2181  func (o TeamSigChainState) DeepCopy() TeamSigChainState {
  2182  	return TeamSigChainState{
  2183  		Reader:       o.Reader.DeepCopy(),
  2184  		Id:           o.Id.DeepCopy(),
  2185  		Implicit:     o.Implicit,
  2186  		Public:       o.Public,
  2187  		RootAncestor: o.RootAncestor.DeepCopy(),
  2188  		NameDepth:    o.NameDepth,
  2189  		NameLog: (func(x []TeamNameLogPoint) []TeamNameLogPoint {
  2190  			if x == nil {
  2191  				return nil
  2192  			}
  2193  			ret := make([]TeamNameLogPoint, len(x))
  2194  			for i, v := range x {
  2195  				vCopy := v.DeepCopy()
  2196  				ret[i] = vCopy
  2197  			}
  2198  			return ret
  2199  		})(o.NameLog),
  2200  		LastSeqno:      o.LastSeqno.DeepCopy(),
  2201  		LastLinkID:     o.LastLinkID.DeepCopy(),
  2202  		LastHighSeqno:  o.LastHighSeqno.DeepCopy(),
  2203  		LastHighLinkID: o.LastHighLinkID.DeepCopy(),
  2204  		ParentID: (func(x *TeamID) *TeamID {
  2205  			if x == nil {
  2206  				return nil
  2207  			}
  2208  			tmp := (*x).DeepCopy()
  2209  			return &tmp
  2210  		})(o.ParentID),
  2211  		UserLog: (func(x map[UserVersion][]UserLogPoint) map[UserVersion][]UserLogPoint {
  2212  			if x == nil {
  2213  				return nil
  2214  			}
  2215  			ret := make(map[UserVersion][]UserLogPoint, len(x))
  2216  			for k, v := range x {
  2217  				kCopy := k.DeepCopy()
  2218  				vCopy := (func(x []UserLogPoint) []UserLogPoint {
  2219  					if x == nil {
  2220  						return nil
  2221  					}
  2222  					ret := make([]UserLogPoint, len(x))
  2223  					for i, v := range x {
  2224  						vCopy := v.DeepCopy()
  2225  						ret[i] = vCopy
  2226  					}
  2227  					return ret
  2228  				})(v)
  2229  				ret[kCopy] = vCopy
  2230  			}
  2231  			return ret
  2232  		})(o.UserLog),
  2233  		SubteamLog: (func(x map[TeamID][]SubteamLogPoint) map[TeamID][]SubteamLogPoint {
  2234  			if x == nil {
  2235  				return nil
  2236  			}
  2237  			ret := make(map[TeamID][]SubteamLogPoint, len(x))
  2238  			for k, v := range x {
  2239  				kCopy := k.DeepCopy()
  2240  				vCopy := (func(x []SubteamLogPoint) []SubteamLogPoint {
  2241  					if x == nil {
  2242  						return nil
  2243  					}
  2244  					ret := make([]SubteamLogPoint, len(x))
  2245  					for i, v := range x {
  2246  						vCopy := v.DeepCopy()
  2247  						ret[i] = vCopy
  2248  					}
  2249  					return ret
  2250  				})(v)
  2251  				ret[kCopy] = vCopy
  2252  			}
  2253  			return ret
  2254  		})(o.SubteamLog),
  2255  		PerTeamKeys: (func(x map[PerTeamKeyGeneration]PerTeamKey) map[PerTeamKeyGeneration]PerTeamKey {
  2256  			if x == nil {
  2257  				return nil
  2258  			}
  2259  			ret := make(map[PerTeamKeyGeneration]PerTeamKey, len(x))
  2260  			for k, v := range x {
  2261  				kCopy := k.DeepCopy()
  2262  				vCopy := v.DeepCopy()
  2263  				ret[kCopy] = vCopy
  2264  			}
  2265  			return ret
  2266  		})(o.PerTeamKeys),
  2267  		MaxPerTeamKeyGeneration: o.MaxPerTeamKeyGeneration.DeepCopy(),
  2268  		PerTeamKeyCTime:         o.PerTeamKeyCTime.DeepCopy(),
  2269  		LinkIDs: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
  2270  			if x == nil {
  2271  				return nil
  2272  			}
  2273  			ret := make(map[Seqno]LinkID, len(x))
  2274  			for k, v := range x {
  2275  				kCopy := k.DeepCopy()
  2276  				vCopy := v.DeepCopy()
  2277  				ret[kCopy] = vCopy
  2278  			}
  2279  			return ret
  2280  		})(o.LinkIDs),
  2281  		StubbedLinks: (func(x map[Seqno]bool) map[Seqno]bool {
  2282  			if x == nil {
  2283  				return nil
  2284  			}
  2285  			ret := make(map[Seqno]bool, len(x))
  2286  			for k, v := range x {
  2287  				kCopy := k.DeepCopy()
  2288  				vCopy := v
  2289  				ret[kCopy] = vCopy
  2290  			}
  2291  			return ret
  2292  		})(o.StubbedLinks),
  2293  		InviteMetadatas: (func(x map[TeamInviteID]TeamInviteMetadata) map[TeamInviteID]TeamInviteMetadata {
  2294  			if x == nil {
  2295  				return nil
  2296  			}
  2297  			ret := make(map[TeamInviteID]TeamInviteMetadata, len(x))
  2298  			for k, v := range x {
  2299  				kCopy := k.DeepCopy()
  2300  				vCopy := v.DeepCopy()
  2301  				ret[kCopy] = vCopy
  2302  			}
  2303  			return ret
  2304  		})(o.InviteMetadatas),
  2305  		Open:           o.Open,
  2306  		OpenTeamJoinAs: o.OpenTeamJoinAs.DeepCopy(),
  2307  		Bots: (func(x map[UserVersion]TeamBotSettings) map[UserVersion]TeamBotSettings {
  2308  			if x == nil {
  2309  				return nil
  2310  			}
  2311  			ret := make(map[UserVersion]TeamBotSettings, len(x))
  2312  			for k, v := range x {
  2313  				kCopy := k.DeepCopy()
  2314  				vCopy := v.DeepCopy()
  2315  				ret[kCopy] = vCopy
  2316  			}
  2317  			return ret
  2318  		})(o.Bots),
  2319  		TlfIDs: (func(x []TLFID) []TLFID {
  2320  			if x == nil {
  2321  				return nil
  2322  			}
  2323  			ret := make([]TLFID, len(x))
  2324  			for i, v := range x {
  2325  				vCopy := v.DeepCopy()
  2326  				ret[i] = vCopy
  2327  			}
  2328  			return ret
  2329  		})(o.TlfIDs),
  2330  		TlfLegacyUpgrade: (func(x map[TeamApplication]TeamLegacyTLFUpgradeChainInfo) map[TeamApplication]TeamLegacyTLFUpgradeChainInfo {
  2331  			if x == nil {
  2332  				return nil
  2333  			}
  2334  			ret := make(map[TeamApplication]TeamLegacyTLFUpgradeChainInfo, len(x))
  2335  			for k, v := range x {
  2336  				kCopy := k.DeepCopy()
  2337  				vCopy := v.DeepCopy()
  2338  				ret[kCopy] = vCopy
  2339  			}
  2340  			return ret
  2341  		})(o.TlfLegacyUpgrade),
  2342  		HeadMerkle: (func(x *MerkleRootV2) *MerkleRootV2 {
  2343  			if x == nil {
  2344  				return nil
  2345  			}
  2346  			tmp := (*x).DeepCopy()
  2347  			return &tmp
  2348  		})(o.HeadMerkle),
  2349  		MerkleRoots: (func(x map[Seqno]MerkleRootV2) map[Seqno]MerkleRootV2 {
  2350  			if x == nil {
  2351  				return nil
  2352  			}
  2353  			ret := make(map[Seqno]MerkleRootV2, len(x))
  2354  			for k, v := range x {
  2355  				kCopy := k.DeepCopy()
  2356  				vCopy := v.DeepCopy()
  2357  				ret[kCopy] = vCopy
  2358  			}
  2359  			return ret
  2360  		})(o.MerkleRoots),
  2361  	}
  2362  }
  2363  
  2364  type BoxSummaryHash string
  2365  
  2366  func (o BoxSummaryHash) DeepCopy() BoxSummaryHash {
  2367  	return o
  2368  }
  2369  
  2370  type TeamNameLogPoint struct {
  2371  	LastPart TeamNamePart `codec:"lastPart" json:"lastPart"`
  2372  	Seqno    Seqno        `codec:"seqno" json:"seqno"`
  2373  }
  2374  
  2375  func (o TeamNameLogPoint) DeepCopy() TeamNameLogPoint {
  2376  	return TeamNameLogPoint{
  2377  		LastPart: o.LastPart.DeepCopy(),
  2378  		Seqno:    o.Seqno.DeepCopy(),
  2379  	}
  2380  }
  2381  
  2382  type UserLogPoint struct {
  2383  	Role    TeamRole          `codec:"role" json:"role"`
  2384  	SigMeta SignatureMetadata `codec:"sigMeta" json:"sigMeta"`
  2385  }
  2386  
  2387  func (o UserLogPoint) DeepCopy() UserLogPoint {
  2388  	return UserLogPoint{
  2389  		Role:    o.Role.DeepCopy(),
  2390  		SigMeta: o.SigMeta.DeepCopy(),
  2391  	}
  2392  }
  2393  
  2394  type AnnotatedTeamUsedInviteLogPoint struct {
  2395  	Username               string                 `codec:"username" json:"username"`
  2396  	TeamUsedInviteLogPoint TeamUsedInviteLogPoint `codec:"teamUsedInviteLogPoint" json:"teamUsedInviteLogPoint"`
  2397  }
  2398  
  2399  func (o AnnotatedTeamUsedInviteLogPoint) DeepCopy() AnnotatedTeamUsedInviteLogPoint {
  2400  	return AnnotatedTeamUsedInviteLogPoint{
  2401  		Username:               o.Username,
  2402  		TeamUsedInviteLogPoint: o.TeamUsedInviteLogPoint.DeepCopy(),
  2403  	}
  2404  }
  2405  
  2406  type TeamUsedInviteLogPoint struct {
  2407  	Uv       UserVersion `codec:"uv" json:"uv"`
  2408  	LogPoint int         `codec:"logPoint" json:"logPoint"`
  2409  }
  2410  
  2411  func (o TeamUsedInviteLogPoint) DeepCopy() TeamUsedInviteLogPoint {
  2412  	return TeamUsedInviteLogPoint{
  2413  		Uv:       o.Uv.DeepCopy(),
  2414  		LogPoint: o.LogPoint,
  2415  	}
  2416  }
  2417  
  2418  type SubteamLogPoint struct {
  2419  	Name  TeamName `codec:"name" json:"name"`
  2420  	Seqno Seqno    `codec:"seqno" json:"seqno"`
  2421  }
  2422  
  2423  func (o SubteamLogPoint) DeepCopy() SubteamLogPoint {
  2424  	return SubteamLogPoint{
  2425  		Name:  o.Name.DeepCopy(),
  2426  		Seqno: o.Seqno.DeepCopy(),
  2427  	}
  2428  }
  2429  
  2430  type TeamNamePart string
  2431  
  2432  func (o TeamNamePart) DeepCopy() TeamNamePart {
  2433  	return o
  2434  }
  2435  
  2436  type TeamName struct {
  2437  	Parts []TeamNamePart `codec:"parts" json:"parts"`
  2438  }
  2439  
  2440  func (o TeamName) DeepCopy() TeamName {
  2441  	return TeamName{
  2442  		Parts: (func(x []TeamNamePart) []TeamNamePart {
  2443  			if x == nil {
  2444  				return nil
  2445  			}
  2446  			ret := make([]TeamNamePart, len(x))
  2447  			for i, v := range x {
  2448  				vCopy := v.DeepCopy()
  2449  				ret[i] = vCopy
  2450  			}
  2451  			return ret
  2452  		})(o.Parts),
  2453  	}
  2454  }
  2455  
  2456  type TeamCLKRResetUser struct {
  2457  	Uid               UID   `codec:"uid" json:"uid"`
  2458  	UserEldestSeqno   Seqno `codec:"userEldestSeqno" json:"user_eldest"`
  2459  	MemberEldestSeqno Seqno `codec:"memberEldestSeqno" json:"member_eldest"`
  2460  }
  2461  
  2462  func (o TeamCLKRResetUser) DeepCopy() TeamCLKRResetUser {
  2463  	return TeamCLKRResetUser{
  2464  		Uid:               o.Uid.DeepCopy(),
  2465  		UserEldestSeqno:   o.UserEldestSeqno.DeepCopy(),
  2466  		MemberEldestSeqno: o.MemberEldestSeqno.DeepCopy(),
  2467  	}
  2468  }
  2469  
  2470  type TeamCLKRMsg struct {
  2471  	TeamID              TeamID               `codec:"teamID" json:"team_id"`
  2472  	Generation          PerTeamKeyGeneration `codec:"generation" json:"generation"`
  2473  	Score               int                  `codec:"score" json:"score"`
  2474  	ResetUsersUntrusted []TeamCLKRResetUser  `codec:"resetUsersUntrusted" json:"reset_users"`
  2475  }
  2476  
  2477  func (o TeamCLKRMsg) DeepCopy() TeamCLKRMsg {
  2478  	return TeamCLKRMsg{
  2479  		TeamID:     o.TeamID.DeepCopy(),
  2480  		Generation: o.Generation.DeepCopy(),
  2481  		Score:      o.Score,
  2482  		ResetUsersUntrusted: (func(x []TeamCLKRResetUser) []TeamCLKRResetUser {
  2483  			if x == nil {
  2484  				return nil
  2485  			}
  2486  			ret := make([]TeamCLKRResetUser, len(x))
  2487  			for i, v := range x {
  2488  				vCopy := v.DeepCopy()
  2489  				ret[i] = vCopy
  2490  			}
  2491  			return ret
  2492  		})(o.ResetUsersUntrusted),
  2493  	}
  2494  }
  2495  
  2496  type TeamResetUser struct {
  2497  	Username    string `codec:"username" json:"username"`
  2498  	Uid         UID    `codec:"uid" json:"uid"`
  2499  	EldestSeqno Seqno  `codec:"eldestSeqno" json:"eldest_seqno"`
  2500  	IsDelete    bool   `codec:"isDelete" json:"is_delete"`
  2501  }
  2502  
  2503  func (o TeamResetUser) DeepCopy() TeamResetUser {
  2504  	return TeamResetUser{
  2505  		Username:    o.Username,
  2506  		Uid:         o.Uid.DeepCopy(),
  2507  		EldestSeqno: o.EldestSeqno.DeepCopy(),
  2508  		IsDelete:    o.IsDelete,
  2509  	}
  2510  }
  2511  
  2512  type TeamMemberOutFromReset struct {
  2513  	TeamID    TeamID        `codec:"teamID" json:"team_id"`
  2514  	TeamName  string        `codec:"teamName" json:"team_name"`
  2515  	ResetUser TeamResetUser `codec:"resetUser" json:"reset_user"`
  2516  }
  2517  
  2518  func (o TeamMemberOutFromReset) DeepCopy() TeamMemberOutFromReset {
  2519  	return TeamMemberOutFromReset{
  2520  		TeamID:    o.TeamID.DeepCopy(),
  2521  		TeamName:  o.TeamName,
  2522  		ResetUser: o.ResetUser.DeepCopy(),
  2523  	}
  2524  }
  2525  
  2526  type TeamChangeRow struct {
  2527  	Id                  TeamID `codec:"id" json:"id"`
  2528  	Name                string `codec:"name" json:"name"`
  2529  	KeyRotated          bool   `codec:"keyRotated" json:"key_rotated"`
  2530  	MembershipChanged   bool   `codec:"membershipChanged" json:"membership_changed"`
  2531  	LatestSeqno         Seqno  `codec:"latestSeqno" json:"latest_seqno"`
  2532  	LatestHiddenSeqno   Seqno  `codec:"latestHiddenSeqno" json:"latest_hidden_seqno"`
  2533  	LatestOffchainSeqno Seqno  `codec:"latestOffchainSeqno" json:"latest_offchain_version"`
  2534  	ImplicitTeam        bool   `codec:"implicitTeam" json:"implicit_team"`
  2535  	Misc                bool   `codec:"misc" json:"misc"`
  2536  	RemovedResetUsers   bool   `codec:"removedResetUsers" json:"removed_reset_users"`
  2537  }
  2538  
  2539  func (o TeamChangeRow) DeepCopy() TeamChangeRow {
  2540  	return TeamChangeRow{
  2541  		Id:                  o.Id.DeepCopy(),
  2542  		Name:                o.Name,
  2543  		KeyRotated:          o.KeyRotated,
  2544  		MembershipChanged:   o.MembershipChanged,
  2545  		LatestSeqno:         o.LatestSeqno.DeepCopy(),
  2546  		LatestHiddenSeqno:   o.LatestHiddenSeqno.DeepCopy(),
  2547  		LatestOffchainSeqno: o.LatestOffchainSeqno.DeepCopy(),
  2548  		ImplicitTeam:        o.ImplicitTeam,
  2549  		Misc:                o.Misc,
  2550  		RemovedResetUsers:   o.RemovedResetUsers,
  2551  	}
  2552  }
  2553  
  2554  type TeamExitRow struct {
  2555  	Id TeamID `codec:"id" json:"id"`
  2556  }
  2557  
  2558  func (o TeamExitRow) DeepCopy() TeamExitRow {
  2559  	return TeamExitRow{
  2560  		Id: o.Id.DeepCopy(),
  2561  	}
  2562  }
  2563  
  2564  type TeamNewlyAddedRow struct {
  2565  	Id   TeamID `codec:"id" json:"id"`
  2566  	Name string `codec:"name" json:"name"`
  2567  }
  2568  
  2569  func (o TeamNewlyAddedRow) DeepCopy() TeamNewlyAddedRow {
  2570  	return TeamNewlyAddedRow{
  2571  		Id:   o.Id.DeepCopy(),
  2572  		Name: o.Name,
  2573  	}
  2574  }
  2575  
  2576  type TeamInvitee struct {
  2577  	InviteID    TeamInviteID `codec:"inviteID" json:"invite_id"`
  2578  	Uid         UID          `codec:"uid" json:"uid"`
  2579  	EldestSeqno Seqno        `codec:"eldestSeqno" json:"eldest_seqno"`
  2580  	Role        TeamRole     `codec:"role" json:"role"`
  2581  }
  2582  
  2583  func (o TeamInvitee) DeepCopy() TeamInvitee {
  2584  	return TeamInvitee{
  2585  		InviteID:    o.InviteID.DeepCopy(),
  2586  		Uid:         o.Uid.DeepCopy(),
  2587  		EldestSeqno: o.EldestSeqno.DeepCopy(),
  2588  		Role:        o.Role.DeepCopy(),
  2589  	}
  2590  }
  2591  
  2592  type TeamSBSMsg struct {
  2593  	TeamID   TeamID        `codec:"teamID" json:"team_id"`
  2594  	Score    int           `codec:"score" json:"score"`
  2595  	Invitees []TeamInvitee `codec:"invitees" json:"invitees"`
  2596  }
  2597  
  2598  func (o TeamSBSMsg) DeepCopy() TeamSBSMsg {
  2599  	return TeamSBSMsg{
  2600  		TeamID: o.TeamID.DeepCopy(),
  2601  		Score:  o.Score,
  2602  		Invitees: (func(x []TeamInvitee) []TeamInvitee {
  2603  			if x == nil {
  2604  				return nil
  2605  			}
  2606  			ret := make([]TeamInvitee, len(x))
  2607  			for i, v := range x {
  2608  				vCopy := v.DeepCopy()
  2609  				ret[i] = vCopy
  2610  			}
  2611  			return ret
  2612  		})(o.Invitees),
  2613  	}
  2614  }
  2615  
  2616  type TeamAccessRequest struct {
  2617  	Uid         UID   `codec:"uid" json:"uid"`
  2618  	EldestSeqno Seqno `codec:"eldestSeqno" json:"eldest_seqno"`
  2619  }
  2620  
  2621  func (o TeamAccessRequest) DeepCopy() TeamAccessRequest {
  2622  	return TeamAccessRequest{
  2623  		Uid:         o.Uid.DeepCopy(),
  2624  		EldestSeqno: o.EldestSeqno.DeepCopy(),
  2625  	}
  2626  }
  2627  
  2628  type TeamOpenReqMsg struct {
  2629  	TeamID TeamID              `codec:"teamID" json:"team_id"`
  2630  	Tars   []TeamAccessRequest `codec:"tars" json:"tars"`
  2631  }
  2632  
  2633  func (o TeamOpenReqMsg) DeepCopy() TeamOpenReqMsg {
  2634  	return TeamOpenReqMsg{
  2635  		TeamID: o.TeamID.DeepCopy(),
  2636  		Tars: (func(x []TeamAccessRequest) []TeamAccessRequest {
  2637  			if x == nil {
  2638  				return nil
  2639  			}
  2640  			ret := make([]TeamAccessRequest, len(x))
  2641  			for i, v := range x {
  2642  				vCopy := v.DeepCopy()
  2643  				ret[i] = vCopy
  2644  			}
  2645  			return ret
  2646  		})(o.Tars),
  2647  	}
  2648  }
  2649  
  2650  type SeitanAKey string
  2651  
  2652  func (o SeitanAKey) DeepCopy() SeitanAKey {
  2653  	return o
  2654  }
  2655  
  2656  type SeitanIKey string
  2657  
  2658  func (o SeitanIKey) DeepCopy() SeitanIKey {
  2659  	return o
  2660  }
  2661  
  2662  type SeitanIKeyInvitelink string
  2663  
  2664  func (o SeitanIKeyInvitelink) DeepCopy() SeitanIKeyInvitelink {
  2665  	return o
  2666  }
  2667  
  2668  type SeitanPubKey string
  2669  
  2670  func (o SeitanPubKey) DeepCopy() SeitanPubKey {
  2671  	return o
  2672  }
  2673  
  2674  type SeitanIKeyV2 string
  2675  
  2676  func (o SeitanIKeyV2) DeepCopy() SeitanIKeyV2 {
  2677  	return o
  2678  }
  2679  
  2680  type SeitanKeyAndLabelVersion int
  2681  
  2682  const (
  2683  	SeitanKeyAndLabelVersion_V1         SeitanKeyAndLabelVersion = 1
  2684  	SeitanKeyAndLabelVersion_V2         SeitanKeyAndLabelVersion = 2
  2685  	SeitanKeyAndLabelVersion_Invitelink SeitanKeyAndLabelVersion = 3
  2686  )
  2687  
  2688  func (o SeitanKeyAndLabelVersion) DeepCopy() SeitanKeyAndLabelVersion { return o }
  2689  
  2690  var SeitanKeyAndLabelVersionMap = map[string]SeitanKeyAndLabelVersion{
  2691  	"V1":         1,
  2692  	"V2":         2,
  2693  	"Invitelink": 3,
  2694  }
  2695  
  2696  var SeitanKeyAndLabelVersionRevMap = map[SeitanKeyAndLabelVersion]string{
  2697  	1: "V1",
  2698  	2: "V2",
  2699  	3: "Invitelink",
  2700  }
  2701  
  2702  func (e SeitanKeyAndLabelVersion) String() string {
  2703  	if v, ok := SeitanKeyAndLabelVersionRevMap[e]; ok {
  2704  		return v
  2705  	}
  2706  	return fmt.Sprintf("%v", int(e))
  2707  }
  2708  
  2709  type SeitanKeyAndLabel struct {
  2710  	V__          SeitanKeyAndLabelVersion     `codec:"v" json:"v"`
  2711  	V1__         *SeitanKeyAndLabelVersion1   `codec:"v1,omitempty" json:"v1,omitempty"`
  2712  	V2__         *SeitanKeyAndLabelVersion2   `codec:"v2,omitempty" json:"v2,omitempty"`
  2713  	Invitelink__ *SeitanKeyAndLabelInvitelink `codec:"invitelink,omitempty" json:"invitelink,omitempty"`
  2714  }
  2715  
  2716  func (o *SeitanKeyAndLabel) V() (ret SeitanKeyAndLabelVersion, err error) {
  2717  	switch o.V__ {
  2718  	case SeitanKeyAndLabelVersion_V1:
  2719  		if o.V1__ == nil {
  2720  			err = errors.New("unexpected nil value for V1__")
  2721  			return ret, err
  2722  		}
  2723  	case SeitanKeyAndLabelVersion_V2:
  2724  		if o.V2__ == nil {
  2725  			err = errors.New("unexpected nil value for V2__")
  2726  			return ret, err
  2727  		}
  2728  	case SeitanKeyAndLabelVersion_Invitelink:
  2729  		if o.Invitelink__ == nil {
  2730  			err = errors.New("unexpected nil value for Invitelink__")
  2731  			return ret, err
  2732  		}
  2733  	}
  2734  	return o.V__, nil
  2735  }
  2736  
  2737  func (o SeitanKeyAndLabel) V1() (res SeitanKeyAndLabelVersion1) {
  2738  	if o.V__ != SeitanKeyAndLabelVersion_V1 {
  2739  		panic("wrong case accessed")
  2740  	}
  2741  	if o.V1__ == nil {
  2742  		return
  2743  	}
  2744  	return *o.V1__
  2745  }
  2746  
  2747  func (o SeitanKeyAndLabel) V2() (res SeitanKeyAndLabelVersion2) {
  2748  	if o.V__ != SeitanKeyAndLabelVersion_V2 {
  2749  		panic("wrong case accessed")
  2750  	}
  2751  	if o.V2__ == nil {
  2752  		return
  2753  	}
  2754  	return *o.V2__
  2755  }
  2756  
  2757  func (o SeitanKeyAndLabel) Invitelink() (res SeitanKeyAndLabelInvitelink) {
  2758  	if o.V__ != SeitanKeyAndLabelVersion_Invitelink {
  2759  		panic("wrong case accessed")
  2760  	}
  2761  	if o.Invitelink__ == nil {
  2762  		return
  2763  	}
  2764  	return *o.Invitelink__
  2765  }
  2766  
  2767  func NewSeitanKeyAndLabelWithV1(v SeitanKeyAndLabelVersion1) SeitanKeyAndLabel {
  2768  	return SeitanKeyAndLabel{
  2769  		V__:  SeitanKeyAndLabelVersion_V1,
  2770  		V1__: &v,
  2771  	}
  2772  }
  2773  
  2774  func NewSeitanKeyAndLabelWithV2(v SeitanKeyAndLabelVersion2) SeitanKeyAndLabel {
  2775  	return SeitanKeyAndLabel{
  2776  		V__:  SeitanKeyAndLabelVersion_V2,
  2777  		V2__: &v,
  2778  	}
  2779  }
  2780  
  2781  func NewSeitanKeyAndLabelWithInvitelink(v SeitanKeyAndLabelInvitelink) SeitanKeyAndLabel {
  2782  	return SeitanKeyAndLabel{
  2783  		V__:          SeitanKeyAndLabelVersion_Invitelink,
  2784  		Invitelink__: &v,
  2785  	}
  2786  }
  2787  
  2788  func NewSeitanKeyAndLabelDefault(v SeitanKeyAndLabelVersion) SeitanKeyAndLabel {
  2789  	return SeitanKeyAndLabel{
  2790  		V__: v,
  2791  	}
  2792  }
  2793  
  2794  func (o SeitanKeyAndLabel) DeepCopy() SeitanKeyAndLabel {
  2795  	return SeitanKeyAndLabel{
  2796  		V__: o.V__.DeepCopy(),
  2797  		V1__: (func(x *SeitanKeyAndLabelVersion1) *SeitanKeyAndLabelVersion1 {
  2798  			if x == nil {
  2799  				return nil
  2800  			}
  2801  			tmp := (*x).DeepCopy()
  2802  			return &tmp
  2803  		})(o.V1__),
  2804  		V2__: (func(x *SeitanKeyAndLabelVersion2) *SeitanKeyAndLabelVersion2 {
  2805  			if x == nil {
  2806  				return nil
  2807  			}
  2808  			tmp := (*x).DeepCopy()
  2809  			return &tmp
  2810  		})(o.V2__),
  2811  		Invitelink__: (func(x *SeitanKeyAndLabelInvitelink) *SeitanKeyAndLabelInvitelink {
  2812  			if x == nil {
  2813  				return nil
  2814  			}
  2815  			tmp := (*x).DeepCopy()
  2816  			return &tmp
  2817  		})(o.Invitelink__),
  2818  	}
  2819  }
  2820  
  2821  type SeitanKeyAndLabelVersion1 struct {
  2822  	I SeitanIKey     `codec:"i" json:"i"`
  2823  	L SeitanKeyLabel `codec:"l" json:"l"`
  2824  }
  2825  
  2826  func (o SeitanKeyAndLabelVersion1) DeepCopy() SeitanKeyAndLabelVersion1 {
  2827  	return SeitanKeyAndLabelVersion1{
  2828  		I: o.I.DeepCopy(),
  2829  		L: o.L.DeepCopy(),
  2830  	}
  2831  }
  2832  
  2833  type SeitanKeyAndLabelVersion2 struct {
  2834  	K SeitanPubKey   `codec:"k" json:"k"`
  2835  	L SeitanKeyLabel `codec:"l" json:"l"`
  2836  }
  2837  
  2838  func (o SeitanKeyAndLabelVersion2) DeepCopy() SeitanKeyAndLabelVersion2 {
  2839  	return SeitanKeyAndLabelVersion2{
  2840  		K: o.K.DeepCopy(),
  2841  		L: o.L.DeepCopy(),
  2842  	}
  2843  }
  2844  
  2845  type SeitanKeyAndLabelInvitelink struct {
  2846  	I SeitanIKeyInvitelink `codec:"i" json:"i"`
  2847  	L SeitanKeyLabel       `codec:"l" json:"l"`
  2848  }
  2849  
  2850  func (o SeitanKeyAndLabelInvitelink) DeepCopy() SeitanKeyAndLabelInvitelink {
  2851  	return SeitanKeyAndLabelInvitelink{
  2852  		I: o.I.DeepCopy(),
  2853  		L: o.L.DeepCopy(),
  2854  	}
  2855  }
  2856  
  2857  type SeitanKeyLabelType int
  2858  
  2859  const (
  2860  	SeitanKeyLabelType_SMS     SeitanKeyLabelType = 1
  2861  	SeitanKeyLabelType_GENERIC SeitanKeyLabelType = 2
  2862  )
  2863  
  2864  func (o SeitanKeyLabelType) DeepCopy() SeitanKeyLabelType { return o }
  2865  
  2866  var SeitanKeyLabelTypeMap = map[string]SeitanKeyLabelType{
  2867  	"SMS":     1,
  2868  	"GENERIC": 2,
  2869  }
  2870  
  2871  var SeitanKeyLabelTypeRevMap = map[SeitanKeyLabelType]string{
  2872  	1: "SMS",
  2873  	2: "GENERIC",
  2874  }
  2875  
  2876  func (e SeitanKeyLabelType) String() string {
  2877  	if v, ok := SeitanKeyLabelTypeRevMap[e]; ok {
  2878  		return v
  2879  	}
  2880  	return fmt.Sprintf("%v", int(e))
  2881  }
  2882  
  2883  type SeitanKeyLabel struct {
  2884  	T__       SeitanKeyLabelType     `codec:"t" json:"t"`
  2885  	Sms__     *SeitanKeyLabelSms     `codec:"sms,omitempty" json:"sms,omitempty"`
  2886  	Generic__ *SeitanKeyLabelGeneric `codec:"generic,omitempty" json:"generic,omitempty"`
  2887  }
  2888  
  2889  func (o *SeitanKeyLabel) T() (ret SeitanKeyLabelType, err error) {
  2890  	switch o.T__ {
  2891  	case SeitanKeyLabelType_SMS:
  2892  		if o.Sms__ == nil {
  2893  			err = errors.New("unexpected nil value for Sms__")
  2894  			return ret, err
  2895  		}
  2896  	case SeitanKeyLabelType_GENERIC:
  2897  		if o.Generic__ == nil {
  2898  			err = errors.New("unexpected nil value for Generic__")
  2899  			return ret, err
  2900  		}
  2901  	}
  2902  	return o.T__, nil
  2903  }
  2904  
  2905  func (o SeitanKeyLabel) Sms() (res SeitanKeyLabelSms) {
  2906  	if o.T__ != SeitanKeyLabelType_SMS {
  2907  		panic("wrong case accessed")
  2908  	}
  2909  	if o.Sms__ == nil {
  2910  		return
  2911  	}
  2912  	return *o.Sms__
  2913  }
  2914  
  2915  func (o SeitanKeyLabel) Generic() (res SeitanKeyLabelGeneric) {
  2916  	if o.T__ != SeitanKeyLabelType_GENERIC {
  2917  		panic("wrong case accessed")
  2918  	}
  2919  	if o.Generic__ == nil {
  2920  		return
  2921  	}
  2922  	return *o.Generic__
  2923  }
  2924  
  2925  func NewSeitanKeyLabelWithSms(v SeitanKeyLabelSms) SeitanKeyLabel {
  2926  	return SeitanKeyLabel{
  2927  		T__:   SeitanKeyLabelType_SMS,
  2928  		Sms__: &v,
  2929  	}
  2930  }
  2931  
  2932  func NewSeitanKeyLabelWithGeneric(v SeitanKeyLabelGeneric) SeitanKeyLabel {
  2933  	return SeitanKeyLabel{
  2934  		T__:       SeitanKeyLabelType_GENERIC,
  2935  		Generic__: &v,
  2936  	}
  2937  }
  2938  
  2939  func NewSeitanKeyLabelDefault(t SeitanKeyLabelType) SeitanKeyLabel {
  2940  	return SeitanKeyLabel{
  2941  		T__: t,
  2942  	}
  2943  }
  2944  
  2945  func (o SeitanKeyLabel) DeepCopy() SeitanKeyLabel {
  2946  	return SeitanKeyLabel{
  2947  		T__: o.T__.DeepCopy(),
  2948  		Sms__: (func(x *SeitanKeyLabelSms) *SeitanKeyLabelSms {
  2949  			if x == nil {
  2950  				return nil
  2951  			}
  2952  			tmp := (*x).DeepCopy()
  2953  			return &tmp
  2954  		})(o.Sms__),
  2955  		Generic__: (func(x *SeitanKeyLabelGeneric) *SeitanKeyLabelGeneric {
  2956  			if x == nil {
  2957  				return nil
  2958  			}
  2959  			tmp := (*x).DeepCopy()
  2960  			return &tmp
  2961  		})(o.Generic__),
  2962  	}
  2963  }
  2964  
  2965  type SeitanKeyLabelSms struct {
  2966  	F string `codec:"f" json:"f"`
  2967  	N string `codec:"n" json:"n"`
  2968  }
  2969  
  2970  func (o SeitanKeyLabelSms) DeepCopy() SeitanKeyLabelSms {
  2971  	return SeitanKeyLabelSms{
  2972  		F: o.F,
  2973  		N: o.N,
  2974  	}
  2975  }
  2976  
  2977  type SeitanKeyLabelGeneric struct {
  2978  	L string `codec:"l" json:"l"`
  2979  }
  2980  
  2981  func (o SeitanKeyLabelGeneric) DeepCopy() SeitanKeyLabelGeneric {
  2982  	return SeitanKeyLabelGeneric{
  2983  		L: o.L,
  2984  	}
  2985  }
  2986  
  2987  type TeamSeitanRequest struct {
  2988  	InviteID    TeamInviteID `codec:"inviteID" json:"invite_id"`
  2989  	Uid         UID          `codec:"uid" json:"uid"`
  2990  	EldestSeqno Seqno        `codec:"eldestSeqno" json:"eldest_seqno"`
  2991  	Akey        SeitanAKey   `codec:"akey" json:"akey"`
  2992  	Role        TeamRole     `codec:"role" json:"role"`
  2993  	UnixCTime   int64        `codec:"unixCTime" json:"ctime"`
  2994  }
  2995  
  2996  func (o TeamSeitanRequest) DeepCopy() TeamSeitanRequest {
  2997  	return TeamSeitanRequest{
  2998  		InviteID:    o.InviteID.DeepCopy(),
  2999  		Uid:         o.Uid.DeepCopy(),
  3000  		EldestSeqno: o.EldestSeqno.DeepCopy(),
  3001  		Akey:        o.Akey.DeepCopy(),
  3002  		Role:        o.Role.DeepCopy(),
  3003  		UnixCTime:   o.UnixCTime,
  3004  	}
  3005  }
  3006  
  3007  type TeamSeitanMsg struct {
  3008  	TeamID  TeamID              `codec:"teamID" json:"team_id"`
  3009  	Seitans []TeamSeitanRequest `codec:"seitans" json:"seitans"`
  3010  }
  3011  
  3012  func (o TeamSeitanMsg) DeepCopy() TeamSeitanMsg {
  3013  	return TeamSeitanMsg{
  3014  		TeamID: o.TeamID.DeepCopy(),
  3015  		Seitans: (func(x []TeamSeitanRequest) []TeamSeitanRequest {
  3016  			if x == nil {
  3017  				return nil
  3018  			}
  3019  			ret := make([]TeamSeitanRequest, len(x))
  3020  			for i, v := range x {
  3021  				vCopy := v.DeepCopy()
  3022  				ret[i] = vCopy
  3023  			}
  3024  			return ret
  3025  		})(o.Seitans),
  3026  	}
  3027  }
  3028  
  3029  type TeamOpenSweepMsg struct {
  3030  	TeamID              TeamID              `codec:"teamID" json:"team_id"`
  3031  	ResetUsersUntrusted []TeamCLKRResetUser `codec:"resetUsersUntrusted" json:"reset_users"`
  3032  }
  3033  
  3034  func (o TeamOpenSweepMsg) DeepCopy() TeamOpenSweepMsg {
  3035  	return TeamOpenSweepMsg{
  3036  		TeamID: o.TeamID.DeepCopy(),
  3037  		ResetUsersUntrusted: (func(x []TeamCLKRResetUser) []TeamCLKRResetUser {
  3038  			if x == nil {
  3039  				return nil
  3040  			}
  3041  			ret := make([]TeamCLKRResetUser, len(x))
  3042  			for i, v := range x {
  3043  				vCopy := v.DeepCopy()
  3044  				ret[i] = vCopy
  3045  			}
  3046  			return ret
  3047  		})(o.ResetUsersUntrusted),
  3048  	}
  3049  }
  3050  
  3051  type TeamKBFSKeyRefresher struct {
  3052  	Generation int             `codec:"generation" json:"generation"`
  3053  	AppType    TeamApplication `codec:"appType" json:"appType"`
  3054  }
  3055  
  3056  func (o TeamKBFSKeyRefresher) DeepCopy() TeamKBFSKeyRefresher {
  3057  	return TeamKBFSKeyRefresher{
  3058  		Generation: o.Generation,
  3059  		AppType:    o.AppType.DeepCopy(),
  3060  	}
  3061  }
  3062  
  3063  // * TeamRefreshData are needed or wanted data requirements that, if unmet, will cause
  3064  // * a refresh of the cache.
  3065  type TeamRefreshers struct {
  3066  	NeedKeyGeneration                     PerTeamKeyGeneration                       `codec:"needKeyGeneration" json:"needKeyGeneration"`
  3067  	NeedApplicationsAtGenerations         map[PerTeamKeyGeneration][]TeamApplication `codec:"needApplicationsAtGenerations" json:"needApplicationsAtGenerations"`
  3068  	NeedApplicationsAtGenerationsWithKBFS map[PerTeamKeyGeneration][]TeamApplication `codec:"needApplicationsAtGenerationsWithKBFS" json:"needApplicationsAtGenerationsWithKBFS"`
  3069  	WantMembers                           []UserVersion                              `codec:"wantMembers" json:"wantMembers"`
  3070  	WantMembersRole                       TeamRole                                   `codec:"wantMembersRole" json:"wantMembersRole"`
  3071  	NeedKBFSKeyGeneration                 TeamKBFSKeyRefresher                       `codec:"needKBFSKeyGeneration" json:"needKBFSKeyGeneration"`
  3072  }
  3073  
  3074  func (o TeamRefreshers) DeepCopy() TeamRefreshers {
  3075  	return TeamRefreshers{
  3076  		NeedKeyGeneration: o.NeedKeyGeneration.DeepCopy(),
  3077  		NeedApplicationsAtGenerations: (func(x map[PerTeamKeyGeneration][]TeamApplication) map[PerTeamKeyGeneration][]TeamApplication {
  3078  			if x == nil {
  3079  				return nil
  3080  			}
  3081  			ret := make(map[PerTeamKeyGeneration][]TeamApplication, len(x))
  3082  			for k, v := range x {
  3083  				kCopy := k.DeepCopy()
  3084  				vCopy := (func(x []TeamApplication) []TeamApplication {
  3085  					if x == nil {
  3086  						return nil
  3087  					}
  3088  					ret := make([]TeamApplication, len(x))
  3089  					for i, v := range x {
  3090  						vCopy := v.DeepCopy()
  3091  						ret[i] = vCopy
  3092  					}
  3093  					return ret
  3094  				})(v)
  3095  				ret[kCopy] = vCopy
  3096  			}
  3097  			return ret
  3098  		})(o.NeedApplicationsAtGenerations),
  3099  		NeedApplicationsAtGenerationsWithKBFS: (func(x map[PerTeamKeyGeneration][]TeamApplication) map[PerTeamKeyGeneration][]TeamApplication {
  3100  			if x == nil {
  3101  				return nil
  3102  			}
  3103  			ret := make(map[PerTeamKeyGeneration][]TeamApplication, len(x))
  3104  			for k, v := range x {
  3105  				kCopy := k.DeepCopy()
  3106  				vCopy := (func(x []TeamApplication) []TeamApplication {
  3107  					if x == nil {
  3108  						return nil
  3109  					}
  3110  					ret := make([]TeamApplication, len(x))
  3111  					for i, v := range x {
  3112  						vCopy := v.DeepCopy()
  3113  						ret[i] = vCopy
  3114  					}
  3115  					return ret
  3116  				})(v)
  3117  				ret[kCopy] = vCopy
  3118  			}
  3119  			return ret
  3120  		})(o.NeedApplicationsAtGenerationsWithKBFS),
  3121  		WantMembers: (func(x []UserVersion) []UserVersion {
  3122  			if x == nil {
  3123  				return nil
  3124  			}
  3125  			ret := make([]UserVersion, len(x))
  3126  			for i, v := range x {
  3127  				vCopy := v.DeepCopy()
  3128  				ret[i] = vCopy
  3129  			}
  3130  			return ret
  3131  		})(o.WantMembers),
  3132  		WantMembersRole:       o.WantMembersRole.DeepCopy(),
  3133  		NeedKBFSKeyGeneration: o.NeedKBFSKeyGeneration.DeepCopy(),
  3134  	}
  3135  }
  3136  
  3137  type LoadTeamArg struct {
  3138  	ID                        TeamID         `codec:"ID" json:"ID"`
  3139  	Name                      string         `codec:"name" json:"name"`
  3140  	Public                    bool           `codec:"public" json:"public"`
  3141  	NeedAdmin                 bool           `codec:"needAdmin" json:"needAdmin"`
  3142  	RefreshUIDMapper          bool           `codec:"refreshUIDMapper" json:"refreshUIDMapper"`
  3143  	Refreshers                TeamRefreshers `codec:"refreshers" json:"refreshers"`
  3144  	ForceFullReload           bool           `codec:"forceFullReload" json:"forceFullReload"`
  3145  	ForceRepoll               bool           `codec:"forceRepoll" json:"forceRepoll"`
  3146  	StaleOK                   bool           `codec:"staleOK" json:"staleOK"`
  3147  	AllowNameLookupBurstCache bool           `codec:"allowNameLookupBurstCache" json:"allowNameLookupBurstCache"`
  3148  	SkipNeedHiddenRotateCheck bool           `codec:"skipNeedHiddenRotateCheck" json:"skipNeedHiddenRotateCheck"`
  3149  	AuditMode                 AuditMode      `codec:"auditMode" json:"auditMode"`
  3150  }
  3151  
  3152  func (o LoadTeamArg) DeepCopy() LoadTeamArg {
  3153  	return LoadTeamArg{
  3154  		ID:                        o.ID.DeepCopy(),
  3155  		Name:                      o.Name,
  3156  		Public:                    o.Public,
  3157  		NeedAdmin:                 o.NeedAdmin,
  3158  		RefreshUIDMapper:          o.RefreshUIDMapper,
  3159  		Refreshers:                o.Refreshers.DeepCopy(),
  3160  		ForceFullReload:           o.ForceFullReload,
  3161  		ForceRepoll:               o.ForceRepoll,
  3162  		StaleOK:                   o.StaleOK,
  3163  		AllowNameLookupBurstCache: o.AllowNameLookupBurstCache,
  3164  		SkipNeedHiddenRotateCheck: o.SkipNeedHiddenRotateCheck,
  3165  		AuditMode:                 o.AuditMode.DeepCopy(),
  3166  	}
  3167  }
  3168  
  3169  type FastTeamLoadArg struct {
  3170  	ID                    TeamID                 `codec:"ID" json:"ID"`
  3171  	Public                bool                   `codec:"public" json:"public"`
  3172  	AssertTeamName        *TeamName              `codec:"assertTeamName,omitempty" json:"assertTeamName,omitempty"`
  3173  	Applications          []TeamApplication      `codec:"applications" json:"applications"`
  3174  	KeyGenerationsNeeded  []PerTeamKeyGeneration `codec:"keyGenerationsNeeded" json:"keyGenerationsNeeded"`
  3175  	NeedLatestKey         bool                   `codec:"needLatestKey" json:"needLatestKey"`
  3176  	ForceRefresh          bool                   `codec:"forceRefresh" json:"forceRefresh"`
  3177  	HiddenChainIsOptional bool                   `codec:"hiddenChainIsOptional" json:"hiddenChainIsOptional"`
  3178  }
  3179  
  3180  func (o FastTeamLoadArg) DeepCopy() FastTeamLoadArg {
  3181  	return FastTeamLoadArg{
  3182  		ID:     o.ID.DeepCopy(),
  3183  		Public: o.Public,
  3184  		AssertTeamName: (func(x *TeamName) *TeamName {
  3185  			if x == nil {
  3186  				return nil
  3187  			}
  3188  			tmp := (*x).DeepCopy()
  3189  			return &tmp
  3190  		})(o.AssertTeamName),
  3191  		Applications: (func(x []TeamApplication) []TeamApplication {
  3192  			if x == nil {
  3193  				return nil
  3194  			}
  3195  			ret := make([]TeamApplication, len(x))
  3196  			for i, v := range x {
  3197  				vCopy := v.DeepCopy()
  3198  				ret[i] = vCopy
  3199  			}
  3200  			return ret
  3201  		})(o.Applications),
  3202  		KeyGenerationsNeeded: (func(x []PerTeamKeyGeneration) []PerTeamKeyGeneration {
  3203  			if x == nil {
  3204  				return nil
  3205  			}
  3206  			ret := make([]PerTeamKeyGeneration, len(x))
  3207  			for i, v := range x {
  3208  				vCopy := v.DeepCopy()
  3209  				ret[i] = vCopy
  3210  			}
  3211  			return ret
  3212  		})(o.KeyGenerationsNeeded),
  3213  		NeedLatestKey:         o.NeedLatestKey,
  3214  		ForceRefresh:          o.ForceRefresh,
  3215  		HiddenChainIsOptional: o.HiddenChainIsOptional,
  3216  	}
  3217  }
  3218  
  3219  type FastTeamLoadRes struct {
  3220  	Name            TeamName             `codec:"name" json:"name"`
  3221  	ApplicationKeys []TeamApplicationKey `codec:"applicationKeys" json:"applicationKeys"`
  3222  }
  3223  
  3224  func (o FastTeamLoadRes) DeepCopy() FastTeamLoadRes {
  3225  	return FastTeamLoadRes{
  3226  		Name: o.Name.DeepCopy(),
  3227  		ApplicationKeys: (func(x []TeamApplicationKey) []TeamApplicationKey {
  3228  			if x == nil {
  3229  				return nil
  3230  			}
  3231  			ret := make([]TeamApplicationKey, len(x))
  3232  			for i, v := range x {
  3233  				vCopy := v.DeepCopy()
  3234  				ret[i] = vCopy
  3235  			}
  3236  			return ret
  3237  		})(o.ApplicationKeys),
  3238  	}
  3239  }
  3240  
  3241  type ImplicitRole struct {
  3242  	Role     TeamRole `codec:"role" json:"role"`
  3243  	Ancestor TeamID   `codec:"ancestor" json:"ancestor"`
  3244  }
  3245  
  3246  func (o ImplicitRole) DeepCopy() ImplicitRole {
  3247  	return ImplicitRole{
  3248  		Role:     o.Role.DeepCopy(),
  3249  		Ancestor: o.Ancestor.DeepCopy(),
  3250  	}
  3251  }
  3252  
  3253  type MemberInfo struct {
  3254  	UserID              UID           `codec:"userID" json:"uid"`
  3255  	TeamID              TeamID        `codec:"teamID" json:"team_id"`
  3256  	FqName              string        `codec:"fqName" json:"fq_name"`
  3257  	IsImplicitTeam      bool          `codec:"isImplicitTeam" json:"is_implicit_team"`
  3258  	IsOpenTeam          bool          `codec:"isOpenTeam" json:"is_open_team"`
  3259  	Role                TeamRole      `codec:"role" json:"role"`
  3260  	Implicit            *ImplicitRole `codec:"implicit,omitempty" json:"implicit,omitempty"`
  3261  	MemberCount         int           `codec:"memberCount" json:"member_count"`
  3262  	AllowProfilePromote bool          `codec:"allowProfilePromote" json:"allow_profile_promote"`
  3263  	IsMemberShowcased   bool          `codec:"isMemberShowcased" json:"is_member_showcased"`
  3264  }
  3265  
  3266  func (o MemberInfo) DeepCopy() MemberInfo {
  3267  	return MemberInfo{
  3268  		UserID:         o.UserID.DeepCopy(),
  3269  		TeamID:         o.TeamID.DeepCopy(),
  3270  		FqName:         o.FqName,
  3271  		IsImplicitTeam: o.IsImplicitTeam,
  3272  		IsOpenTeam:     o.IsOpenTeam,
  3273  		Role:           o.Role.DeepCopy(),
  3274  		Implicit: (func(x *ImplicitRole) *ImplicitRole {
  3275  			if x == nil {
  3276  				return nil
  3277  			}
  3278  			tmp := (*x).DeepCopy()
  3279  			return &tmp
  3280  		})(o.Implicit),
  3281  		MemberCount:         o.MemberCount,
  3282  		AllowProfilePromote: o.AllowProfilePromote,
  3283  		IsMemberShowcased:   o.IsMemberShowcased,
  3284  	}
  3285  }
  3286  
  3287  type TeamList struct {
  3288  	Teams []MemberInfo `codec:"teams" json:"teams"`
  3289  }
  3290  
  3291  func (o TeamList) DeepCopy() TeamList {
  3292  	return TeamList{
  3293  		Teams: (func(x []MemberInfo) []MemberInfo {
  3294  			if x == nil {
  3295  				return nil
  3296  			}
  3297  			ret := make([]MemberInfo, len(x))
  3298  			for i, v := range x {
  3299  				vCopy := v.DeepCopy()
  3300  				ret[i] = vCopy
  3301  			}
  3302  			return ret
  3303  		})(o.Teams),
  3304  	}
  3305  }
  3306  
  3307  type AnnotatedMemberInfo struct {
  3308  	UserID              UID              `codec:"userID" json:"uid"`
  3309  	TeamID              TeamID           `codec:"teamID" json:"team_id"`
  3310  	Username            string           `codec:"username" json:"username"`
  3311  	FullName            string           `codec:"fullName" json:"full_name"`
  3312  	FqName              string           `codec:"fqName" json:"fq_name"`
  3313  	IsImplicitTeam      bool             `codec:"isImplicitTeam" json:"is_implicit_team"`
  3314  	ImpTeamDisplayName  string           `codec:"impTeamDisplayName" json:"implicit_team_display_name"`
  3315  	IsOpenTeam          bool             `codec:"isOpenTeam" json:"is_open_team"`
  3316  	Role                TeamRole         `codec:"role" json:"role"`
  3317  	Implicit            *ImplicitRole    `codec:"implicit,omitempty" json:"implicit,omitempty"`
  3318  	NeedsPUK            bool             `codec:"needsPUK" json:"needsPUK"`
  3319  	MemberCount         int              `codec:"memberCount" json:"member_count"`
  3320  	EldestSeqno         Seqno            `codec:"eldestSeqno" json:"member_eldest_seqno"`
  3321  	AllowProfilePromote bool             `codec:"allowProfilePromote" json:"allow_profile_promote"`
  3322  	IsMemberShowcased   bool             `codec:"isMemberShowcased" json:"is_member_showcased"`
  3323  	Status              TeamMemberStatus `codec:"status" json:"status"`
  3324  }
  3325  
  3326  func (o AnnotatedMemberInfo) DeepCopy() AnnotatedMemberInfo {
  3327  	return AnnotatedMemberInfo{
  3328  		UserID:             o.UserID.DeepCopy(),
  3329  		TeamID:             o.TeamID.DeepCopy(),
  3330  		Username:           o.Username,
  3331  		FullName:           o.FullName,
  3332  		FqName:             o.FqName,
  3333  		IsImplicitTeam:     o.IsImplicitTeam,
  3334  		ImpTeamDisplayName: o.ImpTeamDisplayName,
  3335  		IsOpenTeam:         o.IsOpenTeam,
  3336  		Role:               o.Role.DeepCopy(),
  3337  		Implicit: (func(x *ImplicitRole) *ImplicitRole {
  3338  			if x == nil {
  3339  				return nil
  3340  			}
  3341  			tmp := (*x).DeepCopy()
  3342  			return &tmp
  3343  		})(o.Implicit),
  3344  		NeedsPUK:            o.NeedsPUK,
  3345  		MemberCount:         o.MemberCount,
  3346  		EldestSeqno:         o.EldestSeqno.DeepCopy(),
  3347  		AllowProfilePromote: o.AllowProfilePromote,
  3348  		IsMemberShowcased:   o.IsMemberShowcased,
  3349  		Status:              o.Status.DeepCopy(),
  3350  	}
  3351  }
  3352  
  3353  type AnnotatedTeamList struct {
  3354  	Teams []AnnotatedMemberInfo `codec:"teams" json:"teams"`
  3355  }
  3356  
  3357  func (o AnnotatedTeamList) DeepCopy() AnnotatedTeamList {
  3358  	return AnnotatedTeamList{
  3359  		Teams: (func(x []AnnotatedMemberInfo) []AnnotatedMemberInfo {
  3360  			if x == nil {
  3361  				return nil
  3362  			}
  3363  			ret := make([]AnnotatedMemberInfo, len(x))
  3364  			for i, v := range x {
  3365  				vCopy := v.DeepCopy()
  3366  				ret[i] = vCopy
  3367  			}
  3368  			return ret
  3369  		})(o.Teams),
  3370  	}
  3371  }
  3372  
  3373  type TeamAddMemberResult struct {
  3374  	Invited     bool  `codec:"invited" json:"invited"`
  3375  	User        *User `codec:"user,omitempty" json:"user,omitempty"`
  3376  	ChatSending bool  `codec:"chatSending" json:"chatSending"`
  3377  }
  3378  
  3379  func (o TeamAddMemberResult) DeepCopy() TeamAddMemberResult {
  3380  	return TeamAddMemberResult{
  3381  		Invited: o.Invited,
  3382  		User: (func(x *User) *User {
  3383  			if x == nil {
  3384  				return nil
  3385  			}
  3386  			tmp := (*x).DeepCopy()
  3387  			return &tmp
  3388  		})(o.User),
  3389  		ChatSending: o.ChatSending,
  3390  	}
  3391  }
  3392  
  3393  type TeamAddMembersResult struct {
  3394  	NotAdded []User `codec:"notAdded" json:"notAdded"`
  3395  }
  3396  
  3397  func (o TeamAddMembersResult) DeepCopy() TeamAddMembersResult {
  3398  	return TeamAddMembersResult{
  3399  		NotAdded: (func(x []User) []User {
  3400  			if x == nil {
  3401  				return nil
  3402  			}
  3403  			ret := make([]User, len(x))
  3404  			for i, v := range x {
  3405  				vCopy := v.DeepCopy()
  3406  				ret[i] = vCopy
  3407  			}
  3408  			return ret
  3409  		})(o.NotAdded),
  3410  	}
  3411  }
  3412  
  3413  type TeamJoinRequest struct {
  3414  	Name     string   `codec:"name" json:"name"`
  3415  	Username string   `codec:"username" json:"username"`
  3416  	FullName FullName `codec:"fullName" json:"fullName"`
  3417  	Ctime    UnixTime `codec:"ctime" json:"ctime"`
  3418  }
  3419  
  3420  func (o TeamJoinRequest) DeepCopy() TeamJoinRequest {
  3421  	return TeamJoinRequest{
  3422  		Name:     o.Name,
  3423  		Username: o.Username,
  3424  		FullName: o.FullName.DeepCopy(),
  3425  		Ctime:    o.Ctime.DeepCopy(),
  3426  	}
  3427  }
  3428  
  3429  type TeamTreeResult struct {
  3430  	Entries []TeamTreeEntry `codec:"entries" json:"entries"`
  3431  }
  3432  
  3433  func (o TeamTreeResult) DeepCopy() TeamTreeResult {
  3434  	return TeamTreeResult{
  3435  		Entries: (func(x []TeamTreeEntry) []TeamTreeEntry {
  3436  			if x == nil {
  3437  				return nil
  3438  			}
  3439  			ret := make([]TeamTreeEntry, len(x))
  3440  			for i, v := range x {
  3441  				vCopy := v.DeepCopy()
  3442  				ret[i] = vCopy
  3443  			}
  3444  			return ret
  3445  		})(o.Entries),
  3446  	}
  3447  }
  3448  
  3449  type TeamTreeEntry struct {
  3450  	Name  TeamName `codec:"name" json:"name"`
  3451  	Admin bool     `codec:"admin" json:"admin"`
  3452  }
  3453  
  3454  func (o TeamTreeEntry) DeepCopy() TeamTreeEntry {
  3455  	return TeamTreeEntry{
  3456  		Name:  o.Name.DeepCopy(),
  3457  		Admin: o.Admin,
  3458  	}
  3459  }
  3460  
  3461  type SubteamListEntry struct {
  3462  	Name        TeamName `codec:"name" json:"name"`
  3463  	TeamID      TeamID   `codec:"teamID" json:"teamID"`
  3464  	MemberCount int      `codec:"memberCount" json:"memberCount"`
  3465  }
  3466  
  3467  func (o SubteamListEntry) DeepCopy() SubteamListEntry {
  3468  	return SubteamListEntry{
  3469  		Name:        o.Name.DeepCopy(),
  3470  		TeamID:      o.TeamID.DeepCopy(),
  3471  		MemberCount: o.MemberCount,
  3472  	}
  3473  }
  3474  
  3475  type SubteamListResult struct {
  3476  	Entries []SubteamListEntry `codec:"entries" json:"entries"`
  3477  }
  3478  
  3479  func (o SubteamListResult) DeepCopy() SubteamListResult {
  3480  	return SubteamListResult{
  3481  		Entries: (func(x []SubteamListEntry) []SubteamListEntry {
  3482  			if x == nil {
  3483  				return nil
  3484  			}
  3485  			ret := make([]SubteamListEntry, len(x))
  3486  			for i, v := range x {
  3487  				vCopy := v.DeepCopy()
  3488  				ret[i] = vCopy
  3489  			}
  3490  			return ret
  3491  		})(o.Entries),
  3492  	}
  3493  }
  3494  
  3495  type TeamCreateResult struct {
  3496  	TeamID       TeamID `codec:"teamID" json:"teamID"`
  3497  	ChatSent     bool   `codec:"chatSent" json:"chatSent"`
  3498  	CreatorAdded bool   `codec:"creatorAdded" json:"creatorAdded"`
  3499  }
  3500  
  3501  func (o TeamCreateResult) DeepCopy() TeamCreateResult {
  3502  	return TeamCreateResult{
  3503  		TeamID:       o.TeamID.DeepCopy(),
  3504  		ChatSent:     o.ChatSent,
  3505  		CreatorAdded: o.CreatorAdded,
  3506  	}
  3507  }
  3508  
  3509  type TeamSettings struct {
  3510  	Open   bool     `codec:"open" json:"open"`
  3511  	JoinAs TeamRole `codec:"joinAs" json:"joinAs"`
  3512  }
  3513  
  3514  func (o TeamSettings) DeepCopy() TeamSettings {
  3515  	return TeamSettings{
  3516  		Open:   o.Open,
  3517  		JoinAs: o.JoinAs.DeepCopy(),
  3518  	}
  3519  }
  3520  
  3521  type TeamBotSettings struct {
  3522  	Cmds     bool     `codec:"cmds" json:"cmds"`
  3523  	Mentions bool     `codec:"mentions" json:"mentions"`
  3524  	Triggers []string `codec:"triggers" json:"triggers"`
  3525  	Convs    []string `codec:"convs" json:"convs"`
  3526  }
  3527  
  3528  func (o TeamBotSettings) DeepCopy() TeamBotSettings {
  3529  	return TeamBotSettings{
  3530  		Cmds:     o.Cmds,
  3531  		Mentions: o.Mentions,
  3532  		Triggers: (func(x []string) []string {
  3533  			if x == nil {
  3534  				return nil
  3535  			}
  3536  			ret := make([]string, len(x))
  3537  			for i, v := range x {
  3538  				vCopy := v
  3539  				ret[i] = vCopy
  3540  			}
  3541  			return ret
  3542  		})(o.Triggers),
  3543  		Convs: (func(x []string) []string {
  3544  			if x == nil {
  3545  				return nil
  3546  			}
  3547  			ret := make([]string, len(x))
  3548  			for i, v := range x {
  3549  				vCopy := v
  3550  				ret[i] = vCopy
  3551  			}
  3552  			return ret
  3553  		})(o.Convs),
  3554  	}
  3555  }
  3556  
  3557  type TeamRequestAccessResult struct {
  3558  	Open bool `codec:"open" json:"open"`
  3559  }
  3560  
  3561  func (o TeamRequestAccessResult) DeepCopy() TeamRequestAccessResult {
  3562  	return TeamRequestAccessResult{
  3563  		Open: o.Open,
  3564  	}
  3565  }
  3566  
  3567  type TeamAcceptOrRequestResult struct {
  3568  	WasToken    bool `codec:"wasToken" json:"wasToken"`
  3569  	WasSeitan   bool `codec:"wasSeitan" json:"wasSeitan"`
  3570  	WasTeamName bool `codec:"wasTeamName" json:"wasTeamName"`
  3571  	WasOpenTeam bool `codec:"wasOpenTeam" json:"wasOpenTeam"`
  3572  }
  3573  
  3574  func (o TeamAcceptOrRequestResult) DeepCopy() TeamAcceptOrRequestResult {
  3575  	return TeamAcceptOrRequestResult{
  3576  		WasToken:    o.WasToken,
  3577  		WasSeitan:   o.WasSeitan,
  3578  		WasTeamName: o.WasTeamName,
  3579  		WasOpenTeam: o.WasOpenTeam,
  3580  	}
  3581  }
  3582  
  3583  type TeamShowcase struct {
  3584  	IsShowcased       bool    `codec:"isShowcased" json:"is_showcased"`
  3585  	Description       *string `codec:"description,omitempty" json:"description,omitempty"`
  3586  	SetByUID          *UID    `codec:"setByUID,omitempty" json:"set_by_uid,omitempty"`
  3587  	AnyMemberShowcase bool    `codec:"anyMemberShowcase" json:"any_member_showcase"`
  3588  }
  3589  
  3590  func (o TeamShowcase) DeepCopy() TeamShowcase {
  3591  	return TeamShowcase{
  3592  		IsShowcased: o.IsShowcased,
  3593  		Description: (func(x *string) *string {
  3594  			if x == nil {
  3595  				return nil
  3596  			}
  3597  			tmp := (*x)
  3598  			return &tmp
  3599  		})(o.Description),
  3600  		SetByUID: (func(x *UID) *UID {
  3601  			if x == nil {
  3602  				return nil
  3603  			}
  3604  			tmp := (*x).DeepCopy()
  3605  			return &tmp
  3606  		})(o.SetByUID),
  3607  		AnyMemberShowcase: o.AnyMemberShowcase,
  3608  	}
  3609  }
  3610  
  3611  type TeamAndMemberShowcase struct {
  3612  	TeamShowcase      TeamShowcase `codec:"teamShowcase" json:"teamShowcase"`
  3613  	IsMemberShowcased bool         `codec:"isMemberShowcased" json:"isMemberShowcased"`
  3614  }
  3615  
  3616  func (o TeamAndMemberShowcase) DeepCopy() TeamAndMemberShowcase {
  3617  	return TeamAndMemberShowcase{
  3618  		TeamShowcase:      o.TeamShowcase.DeepCopy(),
  3619  		IsMemberShowcased: o.IsMemberShowcased,
  3620  	}
  3621  }
  3622  
  3623  type TeamAvatar struct {
  3624  	AvatarFilename string         `codec:"avatarFilename" json:"avatarFilename"`
  3625  	Crop           *ImageCropRect `codec:"crop,omitempty" json:"crop,omitempty"`
  3626  }
  3627  
  3628  func (o TeamAvatar) DeepCopy() TeamAvatar {
  3629  	return TeamAvatar{
  3630  		AvatarFilename: o.AvatarFilename,
  3631  		Crop: (func(x *ImageCropRect) *ImageCropRect {
  3632  			if x == nil {
  3633  				return nil
  3634  			}
  3635  			tmp := (*x).DeepCopy()
  3636  			return &tmp
  3637  		})(o.Crop),
  3638  	}
  3639  }
  3640  
  3641  type TeamCreateFancyInfo struct {
  3642  	Name               string         `codec:"name" json:"name"`
  3643  	Description        string         `codec:"description" json:"description"`
  3644  	JoinSubteam        bool           `codec:"joinSubteam" json:"joinSubteam"`
  3645  	OpenSettings       TeamSettings   `codec:"openSettings" json:"openSettings"`
  3646  	ProfileShowcase    bool           `codec:"profileShowcase" json:"profileShowcase"`
  3647  	Avatar             *TeamAvatar    `codec:"avatar,omitempty" json:"avatar,omitempty"`
  3648  	ChatChannels       []string       `codec:"chatChannels" json:"chatChannels"`
  3649  	Subteams           []string       `codec:"subteams" json:"subteams"`
  3650  	Users              []UserRolePair `codec:"users" json:"users"`
  3651  	EmailInviteMessage *string        `codec:"emailInviteMessage,omitempty" json:"emailInviteMessage,omitempty"`
  3652  }
  3653  
  3654  func (o TeamCreateFancyInfo) DeepCopy() TeamCreateFancyInfo {
  3655  	return TeamCreateFancyInfo{
  3656  		Name:            o.Name,
  3657  		Description:     o.Description,
  3658  		JoinSubteam:     o.JoinSubteam,
  3659  		OpenSettings:    o.OpenSettings.DeepCopy(),
  3660  		ProfileShowcase: o.ProfileShowcase,
  3661  		Avatar: (func(x *TeamAvatar) *TeamAvatar {
  3662  			if x == nil {
  3663  				return nil
  3664  			}
  3665  			tmp := (*x).DeepCopy()
  3666  			return &tmp
  3667  		})(o.Avatar),
  3668  		ChatChannels: (func(x []string) []string {
  3669  			if x == nil {
  3670  				return nil
  3671  			}
  3672  			ret := make([]string, len(x))
  3673  			for i, v := range x {
  3674  				vCopy := v
  3675  				ret[i] = vCopy
  3676  			}
  3677  			return ret
  3678  		})(o.ChatChannels),
  3679  		Subteams: (func(x []string) []string {
  3680  			if x == nil {
  3681  				return nil
  3682  			}
  3683  			ret := make([]string, len(x))
  3684  			for i, v := range x {
  3685  				vCopy := v
  3686  				ret[i] = vCopy
  3687  			}
  3688  			return ret
  3689  		})(o.Subteams),
  3690  		Users: (func(x []UserRolePair) []UserRolePair {
  3691  			if x == nil {
  3692  				return nil
  3693  			}
  3694  			ret := make([]UserRolePair, len(x))
  3695  			for i, v := range x {
  3696  				vCopy := v.DeepCopy()
  3697  				ret[i] = vCopy
  3698  			}
  3699  			return ret
  3700  		})(o.Users),
  3701  		EmailInviteMessage: (func(x *string) *string {
  3702  			if x == nil {
  3703  				return nil
  3704  			}
  3705  			tmp := (*x)
  3706  			return &tmp
  3707  		})(o.EmailInviteMessage),
  3708  	}
  3709  }
  3710  
  3711  type UserRolePair struct {
  3712  	Assertion   string           `codec:"assertion" json:"assertion"`
  3713  	Role        TeamRole         `codec:"role" json:"role"`
  3714  	BotSettings *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"`
  3715  }
  3716  
  3717  func (o UserRolePair) DeepCopy() UserRolePair {
  3718  	return UserRolePair{
  3719  		Assertion: o.Assertion,
  3720  		Role:      o.Role.DeepCopy(),
  3721  		BotSettings: (func(x *TeamBotSettings) *TeamBotSettings {
  3722  			if x == nil {
  3723  				return nil
  3724  			}
  3725  			tmp := (*x).DeepCopy()
  3726  			return &tmp
  3727  		})(o.BotSettings),
  3728  	}
  3729  }
  3730  
  3731  type AssertionTeamMemberToRemove struct {
  3732  	Assertion         string `codec:"assertion" json:"assertion"`
  3733  	RemoveFromSubtree bool   `codec:"removeFromSubtree" json:"removeFromSubtree"`
  3734  }
  3735  
  3736  func (o AssertionTeamMemberToRemove) DeepCopy() AssertionTeamMemberToRemove {
  3737  	return AssertionTeamMemberToRemove{
  3738  		Assertion:         o.Assertion,
  3739  		RemoveFromSubtree: o.RemoveFromSubtree,
  3740  	}
  3741  }
  3742  
  3743  type InviteTeamMemberToRemove struct {
  3744  	InviteID TeamInviteID `codec:"inviteID" json:"inviteID"`
  3745  }
  3746  
  3747  func (o InviteTeamMemberToRemove) DeepCopy() InviteTeamMemberToRemove {
  3748  	return InviteTeamMemberToRemove{
  3749  		InviteID: o.InviteID.DeepCopy(),
  3750  	}
  3751  }
  3752  
  3753  type TeamMemberToRemoveType int
  3754  
  3755  const (
  3756  	TeamMemberToRemoveType_ASSERTION TeamMemberToRemoveType = 0
  3757  	TeamMemberToRemoveType_INVITEID  TeamMemberToRemoveType = 1
  3758  )
  3759  
  3760  func (o TeamMemberToRemoveType) DeepCopy() TeamMemberToRemoveType { return o }
  3761  
  3762  var TeamMemberToRemoveTypeMap = map[string]TeamMemberToRemoveType{
  3763  	"ASSERTION": 0,
  3764  	"INVITEID":  1,
  3765  }
  3766  
  3767  var TeamMemberToRemoveTypeRevMap = map[TeamMemberToRemoveType]string{
  3768  	0: "ASSERTION",
  3769  	1: "INVITEID",
  3770  }
  3771  
  3772  func (e TeamMemberToRemoveType) String() string {
  3773  	if v, ok := TeamMemberToRemoveTypeRevMap[e]; ok {
  3774  		return v
  3775  	}
  3776  	return fmt.Sprintf("%v", int(e))
  3777  }
  3778  
  3779  type TeamMemberToRemove struct {
  3780  	Type__      TeamMemberToRemoveType       `codec:"type" json:"type"`
  3781  	Assertion__ *AssertionTeamMemberToRemove `codec:"assertion,omitempty" json:"assertion,omitempty"`
  3782  	Inviteid__  *InviteTeamMemberToRemove    `codec:"inviteid,omitempty" json:"inviteid,omitempty"`
  3783  }
  3784  
  3785  func (o *TeamMemberToRemove) Type() (ret TeamMemberToRemoveType, err error) {
  3786  	switch o.Type__ {
  3787  	case TeamMemberToRemoveType_ASSERTION:
  3788  		if o.Assertion__ == nil {
  3789  			err = errors.New("unexpected nil value for Assertion__")
  3790  			return ret, err
  3791  		}
  3792  	case TeamMemberToRemoveType_INVITEID:
  3793  		if o.Inviteid__ == nil {
  3794  			err = errors.New("unexpected nil value for Inviteid__")
  3795  			return ret, err
  3796  		}
  3797  	}
  3798  	return o.Type__, nil
  3799  }
  3800  
  3801  func (o TeamMemberToRemove) Assertion() (res AssertionTeamMemberToRemove) {
  3802  	if o.Type__ != TeamMemberToRemoveType_ASSERTION {
  3803  		panic("wrong case accessed")
  3804  	}
  3805  	if o.Assertion__ == nil {
  3806  		return
  3807  	}
  3808  	return *o.Assertion__
  3809  }
  3810  
  3811  func (o TeamMemberToRemove) Inviteid() (res InviteTeamMemberToRemove) {
  3812  	if o.Type__ != TeamMemberToRemoveType_INVITEID {
  3813  		panic("wrong case accessed")
  3814  	}
  3815  	if o.Inviteid__ == nil {
  3816  		return
  3817  	}
  3818  	return *o.Inviteid__
  3819  }
  3820  
  3821  func NewTeamMemberToRemoveWithAssertion(v AssertionTeamMemberToRemove) TeamMemberToRemove {
  3822  	return TeamMemberToRemove{
  3823  		Type__:      TeamMemberToRemoveType_ASSERTION,
  3824  		Assertion__: &v,
  3825  	}
  3826  }
  3827  
  3828  func NewTeamMemberToRemoveWithInviteid(v InviteTeamMemberToRemove) TeamMemberToRemove {
  3829  	return TeamMemberToRemove{
  3830  		Type__:     TeamMemberToRemoveType_INVITEID,
  3831  		Inviteid__: &v,
  3832  	}
  3833  }
  3834  
  3835  func (o TeamMemberToRemove) DeepCopy() TeamMemberToRemove {
  3836  	return TeamMemberToRemove{
  3837  		Type__: o.Type__.DeepCopy(),
  3838  		Assertion__: (func(x *AssertionTeamMemberToRemove) *AssertionTeamMemberToRemove {
  3839  			if x == nil {
  3840  				return nil
  3841  			}
  3842  			tmp := (*x).DeepCopy()
  3843  			return &tmp
  3844  		})(o.Assertion__),
  3845  		Inviteid__: (func(x *InviteTeamMemberToRemove) *InviteTeamMemberToRemove {
  3846  			if x == nil {
  3847  				return nil
  3848  			}
  3849  			tmp := (*x).DeepCopy()
  3850  			return &tmp
  3851  		})(o.Inviteid__),
  3852  	}
  3853  }
  3854  
  3855  type RemoveTeamMemberFailure struct {
  3856  	TeamMember     TeamMemberToRemove `codec:"teamMember" json:"teamMember"`
  3857  	ErrorAtTarget  *string            `codec:"errorAtTarget,omitempty" json:"errorAtTarget,omitempty"`
  3858  	ErrorAtSubtree *string            `codec:"errorAtSubtree,omitempty" json:"errorAtSubtree,omitempty"`
  3859  }
  3860  
  3861  func (o RemoveTeamMemberFailure) DeepCopy() RemoveTeamMemberFailure {
  3862  	return RemoveTeamMemberFailure{
  3863  		TeamMember: o.TeamMember.DeepCopy(),
  3864  		ErrorAtTarget: (func(x *string) *string {
  3865  			if x == nil {
  3866  				return nil
  3867  			}
  3868  			tmp := (*x)
  3869  			return &tmp
  3870  		})(o.ErrorAtTarget),
  3871  		ErrorAtSubtree: (func(x *string) *string {
  3872  			if x == nil {
  3873  				return nil
  3874  			}
  3875  			tmp := (*x)
  3876  			return &tmp
  3877  		})(o.ErrorAtSubtree),
  3878  	}
  3879  }
  3880  
  3881  type TeamRemoveMembersResult struct {
  3882  	Failures []RemoveTeamMemberFailure `codec:"failures" json:"failures"`
  3883  }
  3884  
  3885  func (o TeamRemoveMembersResult) DeepCopy() TeamRemoveMembersResult {
  3886  	return TeamRemoveMembersResult{
  3887  		Failures: (func(x []RemoveTeamMemberFailure) []RemoveTeamMemberFailure {
  3888  			if x == nil {
  3889  				return nil
  3890  			}
  3891  			ret := make([]RemoveTeamMemberFailure, len(x))
  3892  			for i, v := range x {
  3893  				vCopy := v.DeepCopy()
  3894  				ret[i] = vCopy
  3895  			}
  3896  			return ret
  3897  		})(o.Failures),
  3898  	}
  3899  }
  3900  
  3901  type TeamEditMembersResult struct {
  3902  	Failures []UserRolePair `codec:"failures" json:"failures"`
  3903  }
  3904  
  3905  func (o TeamEditMembersResult) DeepCopy() TeamEditMembersResult {
  3906  	return TeamEditMembersResult{
  3907  		Failures: (func(x []UserRolePair) []UserRolePair {
  3908  			if x == nil {
  3909  				return nil
  3910  			}
  3911  			ret := make([]UserRolePair, len(x))
  3912  			for i, v := range x {
  3913  				vCopy := v.DeepCopy()
  3914  				ret[i] = vCopy
  3915  			}
  3916  			return ret
  3917  		})(o.Failures),
  3918  	}
  3919  }
  3920  
  3921  type UntrustedTeamExistsResult struct {
  3922  	Exists bool       `codec:"exists" json:"exists"`
  3923  	Status StatusCode `codec:"status" json:"status"`
  3924  }
  3925  
  3926  func (o UntrustedTeamExistsResult) DeepCopy() UntrustedTeamExistsResult {
  3927  	return UntrustedTeamExistsResult{
  3928  		Exists: o.Exists,
  3929  		Status: o.Status.DeepCopy(),
  3930  	}
  3931  }
  3932  
  3933  type Invitelink struct {
  3934  	Ikey SeitanIKeyInvitelink `codec:"ikey" json:"ikey"`
  3935  	Url  string               `codec:"url" json:"url"`
  3936  }
  3937  
  3938  func (o Invitelink) DeepCopy() Invitelink {
  3939  	return Invitelink{
  3940  		Ikey: o.Ikey.DeepCopy(),
  3941  		Url:  o.Url,
  3942  	}
  3943  }
  3944  
  3945  type BulkRes struct {
  3946  	Malformed []string `codec:"malformed" json:"malformed"`
  3947  }
  3948  
  3949  func (o BulkRes) DeepCopy() BulkRes {
  3950  	return BulkRes{
  3951  		Malformed: (func(x []string) []string {
  3952  			if x == nil {
  3953  				return nil
  3954  			}
  3955  			ret := make([]string, len(x))
  3956  			for i, v := range x {
  3957  				vCopy := v
  3958  				ret[i] = vCopy
  3959  			}
  3960  			return ret
  3961  		})(o.Malformed),
  3962  	}
  3963  }
  3964  
  3965  type InviteLinkDetails struct {
  3966  	InviteID          TeamInviteID               `codec:"inviteID" json:"inviteID"`
  3967  	InviterResetOrDel bool                       `codec:"inviterResetOrDel" json:"inviterResetOrDel"`
  3968  	InviterUID        UID                        `codec:"inviterUID" json:"inviterUID"`
  3969  	InviterUsername   string                     `codec:"inviterUsername" json:"inviterUsername"`
  3970  	IsMember          bool                       `codec:"isMember" json:"isMember"`
  3971  	TeamAvatars       map[AvatarFormat]AvatarUrl `codec:"teamAvatars" json:"teamAvatars"`
  3972  	TeamDesc          string                     `codec:"teamDesc" json:"teamDesc"`
  3973  	TeamID            TeamID                     `codec:"teamID" json:"teamID"`
  3974  	TeamIsOpen        bool                       `codec:"teamIsOpen" json:"teamIsOpen"`
  3975  	TeamName          TeamName                   `codec:"teamName" json:"teamName"`
  3976  	TeamNumMembers    int                        `codec:"teamNumMembers" json:"teamNumMembers"`
  3977  }
  3978  
  3979  func (o InviteLinkDetails) DeepCopy() InviteLinkDetails {
  3980  	return InviteLinkDetails{
  3981  		InviteID:          o.InviteID.DeepCopy(),
  3982  		InviterResetOrDel: o.InviterResetOrDel,
  3983  		InviterUID:        o.InviterUID.DeepCopy(),
  3984  		InviterUsername:   o.InviterUsername,
  3985  		IsMember:          o.IsMember,
  3986  		TeamAvatars: (func(x map[AvatarFormat]AvatarUrl) map[AvatarFormat]AvatarUrl {
  3987  			if x == nil {
  3988  				return nil
  3989  			}
  3990  			ret := make(map[AvatarFormat]AvatarUrl, len(x))
  3991  			for k, v := range x {
  3992  				kCopy := k.DeepCopy()
  3993  				vCopy := v.DeepCopy()
  3994  				ret[kCopy] = vCopy
  3995  			}
  3996  			return ret
  3997  		})(o.TeamAvatars),
  3998  		TeamDesc:       o.TeamDesc,
  3999  		TeamID:         o.TeamID.DeepCopy(),
  4000  		TeamIsOpen:     o.TeamIsOpen,
  4001  		TeamName:       o.TeamName.DeepCopy(),
  4002  		TeamNumMembers: o.TeamNumMembers,
  4003  	}
  4004  }
  4005  
  4006  type ImplicitTeamUserSet struct {
  4007  	KeybaseUsers    []string          `codec:"keybaseUsers" json:"keybaseUsers"`
  4008  	UnresolvedUsers []SocialAssertion `codec:"unresolvedUsers" json:"unresolvedUsers"`
  4009  }
  4010  
  4011  func (o ImplicitTeamUserSet) DeepCopy() ImplicitTeamUserSet {
  4012  	return ImplicitTeamUserSet{
  4013  		KeybaseUsers: (func(x []string) []string {
  4014  			if x == nil {
  4015  				return nil
  4016  			}
  4017  			ret := make([]string, len(x))
  4018  			for i, v := range x {
  4019  				vCopy := v
  4020  				ret[i] = vCopy
  4021  			}
  4022  			return ret
  4023  		})(o.KeybaseUsers),
  4024  		UnresolvedUsers: (func(x []SocialAssertion) []SocialAssertion {
  4025  			if x == nil {
  4026  				return nil
  4027  			}
  4028  			ret := make([]SocialAssertion, len(x))
  4029  			for i, v := range x {
  4030  				vCopy := v.DeepCopy()
  4031  				ret[i] = vCopy
  4032  			}
  4033  			return ret
  4034  		})(o.UnresolvedUsers),
  4035  	}
  4036  }
  4037  
  4038  // * iTeams
  4039  type ImplicitTeamDisplayName struct {
  4040  	IsPublic     bool                      `codec:"isPublic" json:"isPublic"`
  4041  	Writers      ImplicitTeamUserSet       `codec:"writers" json:"writers"`
  4042  	Readers      ImplicitTeamUserSet       `codec:"readers" json:"readers"`
  4043  	ConflictInfo *ImplicitTeamConflictInfo `codec:"conflictInfo,omitempty" json:"conflictInfo,omitempty"`
  4044  }
  4045  
  4046  func (o ImplicitTeamDisplayName) DeepCopy() ImplicitTeamDisplayName {
  4047  	return ImplicitTeamDisplayName{
  4048  		IsPublic: o.IsPublic,
  4049  		Writers:  o.Writers.DeepCopy(),
  4050  		Readers:  o.Readers.DeepCopy(),
  4051  		ConflictInfo: (func(x *ImplicitTeamConflictInfo) *ImplicitTeamConflictInfo {
  4052  			if x == nil {
  4053  				return nil
  4054  			}
  4055  			tmp := (*x).DeepCopy()
  4056  			return &tmp
  4057  		})(o.ConflictInfo),
  4058  	}
  4059  }
  4060  
  4061  type ConflictGeneration int
  4062  
  4063  func (o ConflictGeneration) DeepCopy() ConflictGeneration {
  4064  	return o
  4065  }
  4066  
  4067  type ImplicitTeamConflictInfo struct {
  4068  	Generation ConflictGeneration `codec:"generation" json:"generation"`
  4069  	Time       Time               `codec:"time" json:"time"`
  4070  }
  4071  
  4072  func (o ImplicitTeamConflictInfo) DeepCopy() ImplicitTeamConflictInfo {
  4073  	return ImplicitTeamConflictInfo{
  4074  		Generation: o.Generation.DeepCopy(),
  4075  		Time:       o.Time.DeepCopy(),
  4076  	}
  4077  }
  4078  
  4079  type LookupImplicitTeamRes struct {
  4080  	TeamID      TeamID                  `codec:"teamID" json:"teamID"`
  4081  	Name        TeamName                `codec:"name" json:"name"`
  4082  	DisplayName ImplicitTeamDisplayName `codec:"displayName" json:"displayName"`
  4083  	TlfID       TLFID                   `codec:"tlfID" json:"tlfID"`
  4084  }
  4085  
  4086  func (o LookupImplicitTeamRes) DeepCopy() LookupImplicitTeamRes {
  4087  	return LookupImplicitTeamRes{
  4088  		TeamID:      o.TeamID.DeepCopy(),
  4089  		Name:        o.Name.DeepCopy(),
  4090  		DisplayName: o.DisplayName.DeepCopy(),
  4091  		TlfID:       o.TlfID.DeepCopy(),
  4092  	}
  4093  }
  4094  
  4095  type TeamOperation struct {
  4096  	ManageMembers          bool `codec:"manageMembers" json:"manageMembers"`
  4097  	ManageSubteams         bool `codec:"manageSubteams" json:"manageSubteams"`
  4098  	CreateChannel          bool `codec:"createChannel" json:"createChannel"`
  4099  	Chat                   bool `codec:"chat" json:"chat"`
  4100  	DeleteChannel          bool `codec:"deleteChannel" json:"deleteChannel"`
  4101  	RenameChannel          bool `codec:"renameChannel" json:"renameChannel"`
  4102  	RenameTeam             bool `codec:"renameTeam" json:"renameTeam"`
  4103  	EditChannelDescription bool `codec:"editChannelDescription" json:"editChannelDescription"`
  4104  	EditTeamDescription    bool `codec:"editTeamDescription" json:"editTeamDescription"`
  4105  	SetTeamShowcase        bool `codec:"setTeamShowcase" json:"setTeamShowcase"`
  4106  	SetMemberShowcase      bool `codec:"setMemberShowcase" json:"setMemberShowcase"`
  4107  	SetRetentionPolicy     bool `codec:"setRetentionPolicy" json:"setRetentionPolicy"`
  4108  	SetMinWriterRole       bool `codec:"setMinWriterRole" json:"setMinWriterRole"`
  4109  	ChangeOpenTeam         bool `codec:"changeOpenTeam" json:"changeOpenTeam"`
  4110  	LeaveTeam              bool `codec:"leaveTeam" json:"leaveTeam"`
  4111  	JoinTeam               bool `codec:"joinTeam" json:"joinTeam"`
  4112  	SetPublicityAny        bool `codec:"setPublicityAny" json:"setPublicityAny"`
  4113  	ListFirst              bool `codec:"listFirst" json:"listFirst"`
  4114  	ChangeTarsDisabled     bool `codec:"changeTarsDisabled" json:"changeTarsDisabled"`
  4115  	DeleteChatHistory      bool `codec:"deleteChatHistory" json:"deleteChatHistory"`
  4116  	DeleteOtherEmojis      bool `codec:"deleteOtherEmojis" json:"deleteOtherEmojis"`
  4117  	DeleteOtherMessages    bool `codec:"deleteOtherMessages" json:"deleteOtherMessages"`
  4118  	DeleteTeam             bool `codec:"deleteTeam" json:"deleteTeam"`
  4119  	PinMessage             bool `codec:"pinMessage" json:"pinMessage"`
  4120  	ManageBots             bool `codec:"manageBots" json:"manageBots"`
  4121  	ManageEmojis           bool `codec:"manageEmojis" json:"manageEmojis"`
  4122  }
  4123  
  4124  func (o TeamOperation) DeepCopy() TeamOperation {
  4125  	return TeamOperation{
  4126  		ManageMembers:          o.ManageMembers,
  4127  		ManageSubteams:         o.ManageSubteams,
  4128  		CreateChannel:          o.CreateChannel,
  4129  		Chat:                   o.Chat,
  4130  		DeleteChannel:          o.DeleteChannel,
  4131  		RenameChannel:          o.RenameChannel,
  4132  		RenameTeam:             o.RenameTeam,
  4133  		EditChannelDescription: o.EditChannelDescription,
  4134  		EditTeamDescription:    o.EditTeamDescription,
  4135  		SetTeamShowcase:        o.SetTeamShowcase,
  4136  		SetMemberShowcase:      o.SetMemberShowcase,
  4137  		SetRetentionPolicy:     o.SetRetentionPolicy,
  4138  		SetMinWriterRole:       o.SetMinWriterRole,
  4139  		ChangeOpenTeam:         o.ChangeOpenTeam,
  4140  		LeaveTeam:              o.LeaveTeam,
  4141  		JoinTeam:               o.JoinTeam,
  4142  		SetPublicityAny:        o.SetPublicityAny,
  4143  		ListFirst:              o.ListFirst,
  4144  		ChangeTarsDisabled:     o.ChangeTarsDisabled,
  4145  		DeleteChatHistory:      o.DeleteChatHistory,
  4146  		DeleteOtherEmojis:      o.DeleteOtherEmojis,
  4147  		DeleteOtherMessages:    o.DeleteOtherMessages,
  4148  		DeleteTeam:             o.DeleteTeam,
  4149  		PinMessage:             o.PinMessage,
  4150  		ManageBots:             o.ManageBots,
  4151  		ManageEmojis:           o.ManageEmojis,
  4152  	}
  4153  }
  4154  
  4155  type ProfileTeamLoadRes struct {
  4156  	LoadTimeNsec int64 `codec:"loadTimeNsec" json:"loadTimeNsec"`
  4157  }
  4158  
  4159  func (o ProfileTeamLoadRes) DeepCopy() ProfileTeamLoadRes {
  4160  	return ProfileTeamLoadRes{
  4161  		LoadTimeNsec: o.LoadTimeNsec,
  4162  	}
  4163  }
  4164  
  4165  type RotationType int
  4166  
  4167  const (
  4168  	RotationType_VISIBLE RotationType = 0
  4169  	RotationType_HIDDEN  RotationType = 1
  4170  	RotationType_CLKR    RotationType = 2
  4171  )
  4172  
  4173  func (o RotationType) DeepCopy() RotationType { return o }
  4174  
  4175  var RotationTypeMap = map[string]RotationType{
  4176  	"VISIBLE": 0,
  4177  	"HIDDEN":  1,
  4178  	"CLKR":    2,
  4179  }
  4180  
  4181  var RotationTypeRevMap = map[RotationType]string{
  4182  	0: "VISIBLE",
  4183  	1: "HIDDEN",
  4184  	2: "CLKR",
  4185  }
  4186  
  4187  func (e RotationType) String() string {
  4188  	if v, ok := RotationTypeRevMap[e]; ok {
  4189  		return v
  4190  	}
  4191  	return fmt.Sprintf("%v", int(e))
  4192  }
  4193  
  4194  type TeamDebugRes struct {
  4195  	Chain TeamSigChainState `codec:"chain" json:"chain"`
  4196  }
  4197  
  4198  func (o TeamDebugRes) DeepCopy() TeamDebugRes {
  4199  	return TeamDebugRes{
  4200  		Chain: o.Chain.DeepCopy(),
  4201  	}
  4202  }
  4203  
  4204  type TeamProfileAddEntry struct {
  4205  	TeamID         TeamID   `codec:"teamID" json:"teamID"`
  4206  	TeamName       TeamName `codec:"teamName" json:"teamName"`
  4207  	Open           bool     `codec:"open" json:"open"`
  4208  	DisabledReason string   `codec:"disabledReason" json:"disabledReason"`
  4209  }
  4210  
  4211  func (o TeamProfileAddEntry) DeepCopy() TeamProfileAddEntry {
  4212  	return TeamProfileAddEntry{
  4213  		TeamID:         o.TeamID.DeepCopy(),
  4214  		TeamName:       o.TeamName.DeepCopy(),
  4215  		Open:           o.Open,
  4216  		DisabledReason: o.DisabledReason,
  4217  	}
  4218  }
  4219  
  4220  type MemberEmail struct {
  4221  	Email string `codec:"email" json:"email"`
  4222  	Role  string `codec:"role" json:"role"`
  4223  }
  4224  
  4225  func (o MemberEmail) DeepCopy() MemberEmail {
  4226  	return MemberEmail{
  4227  		Email: o.Email,
  4228  		Role:  o.Role,
  4229  	}
  4230  }
  4231  
  4232  type MemberUsername struct {
  4233  	Username string `codec:"username" json:"username"`
  4234  	Role     string `codec:"role" json:"role"`
  4235  }
  4236  
  4237  func (o MemberUsername) DeepCopy() MemberUsername {
  4238  	return MemberUsername{
  4239  		Username: o.Username,
  4240  		Role:     o.Role,
  4241  	}
  4242  }
  4243  
  4244  type TeamRolePair struct {
  4245  	Role         TeamRole `codec:"role" json:"role"`
  4246  	ImplicitRole TeamRole `codec:"implicitRole" json:"implicit_role"`
  4247  }
  4248  
  4249  func (o TeamRolePair) DeepCopy() TeamRolePair {
  4250  	return TeamRolePair{
  4251  		Role:         o.Role.DeepCopy(),
  4252  		ImplicitRole: o.ImplicitRole.DeepCopy(),
  4253  	}
  4254  }
  4255  
  4256  type TeamRoleMapAndVersion struct {
  4257  	Teams   map[TeamID]TeamRolePair `codec:"teams" json:"teams"`
  4258  	Version UserTeamVersion         `codec:"version" json:"user_team_version"`
  4259  }
  4260  
  4261  func (o TeamRoleMapAndVersion) DeepCopy() TeamRoleMapAndVersion {
  4262  	return TeamRoleMapAndVersion{
  4263  		Teams: (func(x map[TeamID]TeamRolePair) map[TeamID]TeamRolePair {
  4264  			if x == nil {
  4265  				return nil
  4266  			}
  4267  			ret := make(map[TeamID]TeamRolePair, len(x))
  4268  			for k, v := range x {
  4269  				kCopy := k.DeepCopy()
  4270  				vCopy := v.DeepCopy()
  4271  				ret[kCopy] = vCopy
  4272  			}
  4273  			return ret
  4274  		})(o.Teams),
  4275  		Version: o.Version.DeepCopy(),
  4276  	}
  4277  }
  4278  
  4279  type TeamRoleMapStored struct {
  4280  	Data     TeamRoleMapAndVersion `codec:"data" json:"data"`
  4281  	CachedAt Time                  `codec:"cachedAt" json:"cachedAt"`
  4282  }
  4283  
  4284  func (o TeamRoleMapStored) DeepCopy() TeamRoleMapStored {
  4285  	return TeamRoleMapStored{
  4286  		Data:     o.Data.DeepCopy(),
  4287  		CachedAt: o.CachedAt.DeepCopy(),
  4288  	}
  4289  }
  4290  
  4291  type UserTeamVersion int
  4292  
  4293  func (o UserTeamVersion) DeepCopy() UserTeamVersion {
  4294  	return o
  4295  }
  4296  
  4297  type UserTeamVersionUpdate struct {
  4298  	Version UserTeamVersion `codec:"version" json:"version"`
  4299  }
  4300  
  4301  func (o UserTeamVersionUpdate) DeepCopy() UserTeamVersionUpdate {
  4302  	return UserTeamVersionUpdate{
  4303  		Version: o.Version.DeepCopy(),
  4304  	}
  4305  }
  4306  
  4307  type AnnotatedTeam struct {
  4308  	TeamID                       TeamID                `codec:"teamID" json:"teamID"`
  4309  	Name                         string                `codec:"name" json:"name"`
  4310  	TransitiveSubteamsUnverified SubteamListResult     `codec:"transitiveSubteamsUnverified" json:"transitiveSubteamsUnverified"`
  4311  	Members                      []TeamMemberDetails   `codec:"members" json:"members"`
  4312  	Invites                      []AnnotatedTeamInvite `codec:"invites" json:"invites"`
  4313  	Settings                     TeamSettings          `codec:"settings" json:"settings"`
  4314  	KeyGeneration                PerTeamKeyGeneration  `codec:"keyGeneration" json:"keyGeneration"`
  4315  	Showcase                     TeamShowcase          `codec:"showcase" json:"showcase"`
  4316  	JoinRequests                 []TeamJoinRequest     `codec:"joinRequests" json:"joinRequests"`
  4317  	TarsDisabled                 bool                  `codec:"tarsDisabled" json:"tarsDisabled"`
  4318  }
  4319  
  4320  func (o AnnotatedTeam) DeepCopy() AnnotatedTeam {
  4321  	return AnnotatedTeam{
  4322  		TeamID:                       o.TeamID.DeepCopy(),
  4323  		Name:                         o.Name,
  4324  		TransitiveSubteamsUnverified: o.TransitiveSubteamsUnverified.DeepCopy(),
  4325  		Members: (func(x []TeamMemberDetails) []TeamMemberDetails {
  4326  			if x == nil {
  4327  				return nil
  4328  			}
  4329  			ret := make([]TeamMemberDetails, len(x))
  4330  			for i, v := range x {
  4331  				vCopy := v.DeepCopy()
  4332  				ret[i] = vCopy
  4333  			}
  4334  			return ret
  4335  		})(o.Members),
  4336  		Invites: (func(x []AnnotatedTeamInvite) []AnnotatedTeamInvite {
  4337  			if x == nil {
  4338  				return nil
  4339  			}
  4340  			ret := make([]AnnotatedTeamInvite, len(x))
  4341  			for i, v := range x {
  4342  				vCopy := v.DeepCopy()
  4343  				ret[i] = vCopy
  4344  			}
  4345  			return ret
  4346  		})(o.Invites),
  4347  		Settings:      o.Settings.DeepCopy(),
  4348  		KeyGeneration: o.KeyGeneration.DeepCopy(),
  4349  		Showcase:      o.Showcase.DeepCopy(),
  4350  		JoinRequests: (func(x []TeamJoinRequest) []TeamJoinRequest {
  4351  			if x == nil {
  4352  				return nil
  4353  			}
  4354  			ret := make([]TeamJoinRequest, len(x))
  4355  			for i, v := range x {
  4356  				vCopy := v.DeepCopy()
  4357  				ret[i] = vCopy
  4358  			}
  4359  			return ret
  4360  		})(o.JoinRequests),
  4361  		TarsDisabled: o.TarsDisabled,
  4362  	}
  4363  }
  4364  
  4365  type TeamTreeMembershipValue struct {
  4366  	Role     TeamRole `codec:"role" json:"role"`
  4367  	JoinTime *Time    `codec:"joinTime,omitempty" json:"joinTime,omitempty"`
  4368  	TeamID   TeamID   `codec:"teamID" json:"teamID"`
  4369  }
  4370  
  4371  func (o TeamTreeMembershipValue) DeepCopy() TeamTreeMembershipValue {
  4372  	return TeamTreeMembershipValue{
  4373  		Role: o.Role.DeepCopy(),
  4374  		JoinTime: (func(x *Time) *Time {
  4375  			if x == nil {
  4376  				return nil
  4377  			}
  4378  			tmp := (*x).DeepCopy()
  4379  			return &tmp
  4380  		})(o.JoinTime),
  4381  		TeamID: o.TeamID.DeepCopy(),
  4382  	}
  4383  }
  4384  
  4385  type TeamTreeMembershipStatus int
  4386  
  4387  const (
  4388  	TeamTreeMembershipStatus_OK     TeamTreeMembershipStatus = 0
  4389  	TeamTreeMembershipStatus_ERROR  TeamTreeMembershipStatus = 1
  4390  	TeamTreeMembershipStatus_HIDDEN TeamTreeMembershipStatus = 2
  4391  )
  4392  
  4393  func (o TeamTreeMembershipStatus) DeepCopy() TeamTreeMembershipStatus { return o }
  4394  
  4395  var TeamTreeMembershipStatusMap = map[string]TeamTreeMembershipStatus{
  4396  	"OK":     0,
  4397  	"ERROR":  1,
  4398  	"HIDDEN": 2,
  4399  }
  4400  
  4401  var TeamTreeMembershipStatusRevMap = map[TeamTreeMembershipStatus]string{
  4402  	0: "OK",
  4403  	1: "ERROR",
  4404  	2: "HIDDEN",
  4405  }
  4406  
  4407  func (e TeamTreeMembershipStatus) String() string {
  4408  	if v, ok := TeamTreeMembershipStatusRevMap[e]; ok {
  4409  		return v
  4410  	}
  4411  	return fmt.Sprintf("%v", int(e))
  4412  }
  4413  
  4414  type TeamTreeError struct {
  4415  	Message           string `codec:"message" json:"message"`
  4416  	WillSkipSubtree   bool   `codec:"willSkipSubtree" json:"willSkipSubtree"`
  4417  	WillSkipAncestors bool   `codec:"willSkipAncestors" json:"willSkipAncestors"`
  4418  }
  4419  
  4420  func (o TeamTreeError) DeepCopy() TeamTreeError {
  4421  	return TeamTreeError{
  4422  		Message:           o.Message,
  4423  		WillSkipSubtree:   o.WillSkipSubtree,
  4424  		WillSkipAncestors: o.WillSkipAncestors,
  4425  	}
  4426  }
  4427  
  4428  type TeamTreeMembershipResult struct {
  4429  	S__     TeamTreeMembershipStatus `codec:"s" json:"s"`
  4430  	Ok__    *TeamTreeMembershipValue `codec:"ok,omitempty" json:"ok,omitempty"`
  4431  	Error__ *TeamTreeError           `codec:"error,omitempty" json:"error,omitempty"`
  4432  }
  4433  
  4434  func (o *TeamTreeMembershipResult) S() (ret TeamTreeMembershipStatus, err error) {
  4435  	switch o.S__ {
  4436  	case TeamTreeMembershipStatus_OK:
  4437  		if o.Ok__ == nil {
  4438  			err = errors.New("unexpected nil value for Ok__")
  4439  			return ret, err
  4440  		}
  4441  	case TeamTreeMembershipStatus_ERROR:
  4442  		if o.Error__ == nil {
  4443  			err = errors.New("unexpected nil value for Error__")
  4444  			return ret, err
  4445  		}
  4446  	}
  4447  	return o.S__, nil
  4448  }
  4449  
  4450  func (o TeamTreeMembershipResult) Ok() (res TeamTreeMembershipValue) {
  4451  	if o.S__ != TeamTreeMembershipStatus_OK {
  4452  		panic("wrong case accessed")
  4453  	}
  4454  	if o.Ok__ == nil {
  4455  		return
  4456  	}
  4457  	return *o.Ok__
  4458  }
  4459  
  4460  func (o TeamTreeMembershipResult) Error() (res TeamTreeError) {
  4461  	if o.S__ != TeamTreeMembershipStatus_ERROR {
  4462  		panic("wrong case accessed")
  4463  	}
  4464  	if o.Error__ == nil {
  4465  		return
  4466  	}
  4467  	return *o.Error__
  4468  }
  4469  
  4470  func NewTeamTreeMembershipResultWithOk(v TeamTreeMembershipValue) TeamTreeMembershipResult {
  4471  	return TeamTreeMembershipResult{
  4472  		S__:  TeamTreeMembershipStatus_OK,
  4473  		Ok__: &v,
  4474  	}
  4475  }
  4476  
  4477  func NewTeamTreeMembershipResultWithError(v TeamTreeError) TeamTreeMembershipResult {
  4478  	return TeamTreeMembershipResult{
  4479  		S__:     TeamTreeMembershipStatus_ERROR,
  4480  		Error__: &v,
  4481  	}
  4482  }
  4483  
  4484  func NewTeamTreeMembershipResultWithHidden() TeamTreeMembershipResult {
  4485  	return TeamTreeMembershipResult{
  4486  		S__: TeamTreeMembershipStatus_HIDDEN,
  4487  	}
  4488  }
  4489  
  4490  func (o TeamTreeMembershipResult) DeepCopy() TeamTreeMembershipResult {
  4491  	return TeamTreeMembershipResult{
  4492  		S__: o.S__.DeepCopy(),
  4493  		Ok__: (func(x *TeamTreeMembershipValue) *TeamTreeMembershipValue {
  4494  			if x == nil {
  4495  				return nil
  4496  			}
  4497  			tmp := (*x).DeepCopy()
  4498  			return &tmp
  4499  		})(o.Ok__),
  4500  		Error__: (func(x *TeamTreeError) *TeamTreeError {
  4501  			if x == nil {
  4502  				return nil
  4503  			}
  4504  			tmp := (*x).DeepCopy()
  4505  			return &tmp
  4506  		})(o.Error__),
  4507  	}
  4508  }
  4509  
  4510  type TeamTreeMembership struct {
  4511  	TeamName       string                   `codec:"teamName" json:"teamName"`
  4512  	Result         TeamTreeMembershipResult `codec:"result" json:"result"`
  4513  	TargetTeamID   TeamID                   `codec:"targetTeamID" json:"targetTeamID"`
  4514  	TargetUsername string                   `codec:"targetUsername" json:"targetUsername"`
  4515  	Guid           int                      `codec:"guid" json:"guid"`
  4516  }
  4517  
  4518  func (o TeamTreeMembership) DeepCopy() TeamTreeMembership {
  4519  	return TeamTreeMembership{
  4520  		TeamName:       o.TeamName,
  4521  		Result:         o.Result.DeepCopy(),
  4522  		TargetTeamID:   o.TargetTeamID.DeepCopy(),
  4523  		TargetUsername: o.TargetUsername,
  4524  		Guid:           o.Guid,
  4525  	}
  4526  }
  4527  
  4528  type TeamTreeMembershipsDoneResult struct {
  4529  	ExpectedCount  int    `codec:"expectedCount" json:"expectedCount"`
  4530  	TargetTeamID   TeamID `codec:"targetTeamID" json:"targetTeamID"`
  4531  	TargetUsername string `codec:"targetUsername" json:"targetUsername"`
  4532  	Guid           int    `codec:"guid" json:"guid"`
  4533  }
  4534  
  4535  func (o TeamTreeMembershipsDoneResult) DeepCopy() TeamTreeMembershipsDoneResult {
  4536  	return TeamTreeMembershipsDoneResult{
  4537  		ExpectedCount:  o.ExpectedCount,
  4538  		TargetTeamID:   o.TargetTeamID.DeepCopy(),
  4539  		TargetUsername: o.TargetUsername,
  4540  		Guid:           o.Guid,
  4541  	}
  4542  }
  4543  
  4544  type TeamTreeInitial struct {
  4545  	Guid int `codec:"guid" json:"guid"`
  4546  }
  4547  
  4548  func (o TeamTreeInitial) DeepCopy() TeamTreeInitial {
  4549  	return TeamTreeInitial{
  4550  		Guid: o.Guid,
  4551  	}
  4552  }
  4553  
  4554  type GetUntrustedTeamInfoArg struct {
  4555  	TeamName TeamName `codec:"teamName" json:"teamName"`
  4556  }
  4557  
  4558  type TeamCreateArg struct {
  4559  	SessionID   int    `codec:"sessionID" json:"sessionID"`
  4560  	Name        string `codec:"name" json:"name"`
  4561  	JoinSubteam bool   `codec:"joinSubteam" json:"joinSubteam"`
  4562  }
  4563  
  4564  type TeamCreateWithSettingsArg struct {
  4565  	SessionID   int          `codec:"sessionID" json:"sessionID"`
  4566  	Name        string       `codec:"name" json:"name"`
  4567  	JoinSubteam bool         `codec:"joinSubteam" json:"joinSubteam"`
  4568  	Settings    TeamSettings `codec:"settings" json:"settings"`
  4569  }
  4570  
  4571  type TeamCreateFancyArg struct {
  4572  	SessionID int                 `codec:"sessionID" json:"sessionID"`
  4573  	TeamInfo  TeamCreateFancyInfo `codec:"teamInfo" json:"teamInfo"`
  4574  }
  4575  
  4576  type TeamGetByIDArg struct {
  4577  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4578  	Id        TeamID `codec:"id" json:"id"`
  4579  }
  4580  
  4581  type TeamGetArg struct {
  4582  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4583  	Name      string `codec:"name" json:"name"`
  4584  }
  4585  
  4586  type TeamGetMembersByIDArg struct {
  4587  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4588  	Id        TeamID `codec:"id" json:"id"`
  4589  }
  4590  
  4591  type TeamListUnverifiedArg struct {
  4592  	SessionID            int    `codec:"sessionID" json:"sessionID"`
  4593  	UserAssertion        string `codec:"userAssertion" json:"userAssertion"`
  4594  	IncludeImplicitTeams bool   `codec:"includeImplicitTeams" json:"includeImplicitTeams"`
  4595  }
  4596  
  4597  type TeamListTeammatesArg struct {
  4598  	SessionID            int  `codec:"sessionID" json:"sessionID"`
  4599  	IncludeImplicitTeams bool `codec:"includeImplicitTeams" json:"includeImplicitTeams"`
  4600  }
  4601  
  4602  type TeamListVerifiedArg struct {
  4603  	SessionID            int    `codec:"sessionID" json:"sessionID"`
  4604  	UserAssertion        string `codec:"userAssertion" json:"userAssertion"`
  4605  	IncludeImplicitTeams bool   `codec:"includeImplicitTeams" json:"includeImplicitTeams"`
  4606  }
  4607  
  4608  type TeamListSubteamsRecursiveArg struct {
  4609  	SessionID      int    `codec:"sessionID" json:"sessionID"`
  4610  	ParentTeamName string `codec:"parentTeamName" json:"parentTeamName"`
  4611  	ForceRepoll    bool   `codec:"forceRepoll" json:"forceRepoll"`
  4612  }
  4613  
  4614  type TeamAddMemberArg struct {
  4615  	SessionID            int              `codec:"sessionID" json:"sessionID"`
  4616  	TeamID               TeamID           `codec:"teamID" json:"teamID"`
  4617  	Email                string           `codec:"email" json:"email"`
  4618  	Phone                string           `codec:"phone" json:"phone"`
  4619  	Username             string           `codec:"username" json:"username"`
  4620  	Role                 TeamRole         `codec:"role" json:"role"`
  4621  	BotSettings          *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"`
  4622  	SendChatNotification bool             `codec:"sendChatNotification" json:"sendChatNotification"`
  4623  	EmailInviteMessage   *string          `codec:"emailInviteMessage,omitempty" json:"emailInviteMessage,omitempty"`
  4624  }
  4625  
  4626  type TeamAddMembersArg struct {
  4627  	SessionID            int              `codec:"sessionID" json:"sessionID"`
  4628  	TeamID               TeamID           `codec:"teamID" json:"teamID"`
  4629  	Assertions           []string         `codec:"assertions" json:"assertions"`
  4630  	Role                 TeamRole         `codec:"role" json:"role"`
  4631  	BotSettings          *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"`
  4632  	SendChatNotification bool             `codec:"sendChatNotification" json:"sendChatNotification"`
  4633  	EmailInviteMessage   *string          `codec:"emailInviteMessage,omitempty" json:"emailInviteMessage,omitempty"`
  4634  }
  4635  
  4636  type TeamAddMembersMultiRoleArg struct {
  4637  	SessionID            int            `codec:"sessionID" json:"sessionID"`
  4638  	TeamID               TeamID         `codec:"teamID" json:"teamID"`
  4639  	Users                []UserRolePair `codec:"users" json:"users"`
  4640  	SendChatNotification bool           `codec:"sendChatNotification" json:"sendChatNotification"`
  4641  	EmailInviteMessage   *string        `codec:"emailInviteMessage,omitempty" json:"emailInviteMessage,omitempty"`
  4642  	AddToChannels        []string       `codec:"addToChannels" json:"addToChannels"`
  4643  }
  4644  
  4645  type TeamRemoveMemberArg struct {
  4646  	SessionID int                `codec:"sessionID" json:"sessionID"`
  4647  	TeamID    TeamID             `codec:"teamID" json:"teamID"`
  4648  	Member    TeamMemberToRemove `codec:"member" json:"member"`
  4649  }
  4650  
  4651  type TeamRemoveMembersArg struct {
  4652  	SessionID               int                  `codec:"sessionID" json:"sessionID"`
  4653  	TeamID                  TeamID               `codec:"teamID" json:"teamID"`
  4654  	Members                 []TeamMemberToRemove `codec:"members" json:"members"`
  4655  	NoErrorOnPartialFailure bool                 `codec:"noErrorOnPartialFailure" json:"noErrorOnPartialFailure"`
  4656  }
  4657  
  4658  type TeamLeaveArg struct {
  4659  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4660  	Name      string `codec:"name" json:"name"`
  4661  	Permanent bool   `codec:"permanent" json:"permanent"`
  4662  }
  4663  
  4664  type TeamEditMemberArg struct {
  4665  	SessionID   int              `codec:"sessionID" json:"sessionID"`
  4666  	Name        string           `codec:"name" json:"name"`
  4667  	Username    string           `codec:"username" json:"username"`
  4668  	Role        TeamRole         `codec:"role" json:"role"`
  4669  	BotSettings *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"`
  4670  }
  4671  
  4672  type TeamEditMembersArg struct {
  4673  	SessionID int            `codec:"sessionID" json:"sessionID"`
  4674  	TeamID    TeamID         `codec:"teamID" json:"teamID"`
  4675  	Users     []UserRolePair `codec:"users" json:"users"`
  4676  }
  4677  
  4678  type TeamGetBotSettingsArg struct {
  4679  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4680  	Name      string `codec:"name" json:"name"`
  4681  	Username  string `codec:"username" json:"username"`
  4682  }
  4683  
  4684  type TeamSetBotSettingsArg struct {
  4685  	SessionID   int             `codec:"sessionID" json:"sessionID"`
  4686  	Name        string          `codec:"name" json:"name"`
  4687  	Username    string          `codec:"username" json:"username"`
  4688  	BotSettings TeamBotSettings `codec:"botSettings" json:"botSettings"`
  4689  }
  4690  
  4691  type UntrustedTeamExistsArg struct {
  4692  	TeamName TeamName `codec:"teamName" json:"teamName"`
  4693  }
  4694  
  4695  type TeamRenameArg struct {
  4696  	SessionID int      `codec:"sessionID" json:"sessionID"`
  4697  	PrevName  TeamName `codec:"prevName" json:"prevName"`
  4698  	NewName   TeamName `codec:"newName" json:"newName"`
  4699  }
  4700  
  4701  type TeamAcceptInviteArg struct {
  4702  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4703  	Token     string `codec:"token" json:"token"`
  4704  }
  4705  
  4706  type TeamRequestAccessArg struct {
  4707  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4708  	Name      string `codec:"name" json:"name"`
  4709  }
  4710  
  4711  type TeamAcceptInviteOrRequestAccessArg struct {
  4712  	SessionID   int    `codec:"sessionID" json:"sessionID"`
  4713  	TokenOrName string `codec:"tokenOrName" json:"tokenOrName"`
  4714  }
  4715  
  4716  type TeamListRequestsArg struct {
  4717  	SessionID int     `codec:"sessionID" json:"sessionID"`
  4718  	TeamName  *string `codec:"teamName,omitempty" json:"teamName,omitempty"`
  4719  }
  4720  
  4721  type TeamListMyAccessRequestsArg struct {
  4722  	SessionID int     `codec:"sessionID" json:"sessionID"`
  4723  	TeamName  *string `codec:"teamName,omitempty" json:"teamName,omitempty"`
  4724  }
  4725  
  4726  type TeamIgnoreRequestArg struct {
  4727  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4728  	Name      string `codec:"name" json:"name"`
  4729  	Username  string `codec:"username" json:"username"`
  4730  }
  4731  
  4732  type TeamTreeUnverifiedArg struct {
  4733  	SessionID int      `codec:"sessionID" json:"sessionID"`
  4734  	Name      TeamName `codec:"name" json:"name"`
  4735  }
  4736  
  4737  type TeamGetSubteamsUnverifiedArg struct {
  4738  	SessionID int      `codec:"sessionID" json:"sessionID"`
  4739  	Name      TeamName `codec:"name" json:"name"`
  4740  }
  4741  
  4742  type TeamDeleteArg struct {
  4743  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4744  	TeamID    TeamID `codec:"teamID" json:"teamID"`
  4745  }
  4746  
  4747  type TeamSetSettingsArg struct {
  4748  	SessionID int          `codec:"sessionID" json:"sessionID"`
  4749  	TeamID    TeamID       `codec:"teamID" json:"teamID"`
  4750  	Settings  TeamSettings `codec:"settings" json:"settings"`
  4751  }
  4752  
  4753  type TeamCreateSeitanTokenArg struct {
  4754  	SessionID int            `codec:"sessionID" json:"sessionID"`
  4755  	Teamname  string         `codec:"teamname" json:"teamname"`
  4756  	Role      TeamRole       `codec:"role" json:"role"`
  4757  	Label     SeitanKeyLabel `codec:"label" json:"label"`
  4758  }
  4759  
  4760  type TeamCreateSeitanTokenV2Arg struct {
  4761  	SessionID int            `codec:"sessionID" json:"sessionID"`
  4762  	Teamname  string         `codec:"teamname" json:"teamname"`
  4763  	Role      TeamRole       `codec:"role" json:"role"`
  4764  	Label     SeitanKeyLabel `codec:"label" json:"label"`
  4765  }
  4766  
  4767  type TeamCreateSeitanInvitelinkArg struct {
  4768  	SessionID int               `codec:"sessionID" json:"sessionID"`
  4769  	Teamname  string            `codec:"teamname" json:"teamname"`
  4770  	Role      TeamRole          `codec:"role" json:"role"`
  4771  	MaxUses   TeamInviteMaxUses `codec:"maxUses" json:"maxUses"`
  4772  	Etime     *UnixTime         `codec:"etime,omitempty" json:"etime,omitempty"`
  4773  }
  4774  
  4775  type TeamCreateSeitanInvitelinkWithDurationArg struct {
  4776  	SessionID   int               `codec:"sessionID" json:"sessionID"`
  4777  	Teamname    string            `codec:"teamname" json:"teamname"`
  4778  	Role        TeamRole          `codec:"role" json:"role"`
  4779  	MaxUses     TeamInviteMaxUses `codec:"maxUses" json:"maxUses"`
  4780  	ExpireAfter *string           `codec:"expireAfter,omitempty" json:"expireAfter,omitempty"`
  4781  }
  4782  
  4783  type GetInviteLinkDetailsArg struct {
  4784  	InviteID TeamInviteID `codec:"inviteID" json:"inviteID"`
  4785  }
  4786  
  4787  type TeamAddEmailsBulkArg struct {
  4788  	SessionID int      `codec:"sessionID" json:"sessionID"`
  4789  	Name      string   `codec:"name" json:"name"`
  4790  	Emails    string   `codec:"emails" json:"emails"`
  4791  	Role      TeamRole `codec:"role" json:"role"`
  4792  }
  4793  
  4794  type LookupImplicitTeamArg struct {
  4795  	Name   string `codec:"name" json:"name"`
  4796  	Public bool   `codec:"public" json:"public"`
  4797  }
  4798  
  4799  type LookupOrCreateImplicitTeamArg struct {
  4800  	Name   string `codec:"name" json:"name"`
  4801  	Public bool   `codec:"public" json:"public"`
  4802  }
  4803  
  4804  type TeamReAddMemberAfterResetArg struct {
  4805  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4806  	Id        TeamID `codec:"id" json:"id"`
  4807  	Username  string `codec:"username" json:"username"`
  4808  }
  4809  
  4810  type LoadTeamPlusApplicationKeysArg struct {
  4811  	SessionID       int                 `codec:"sessionID" json:"sessionID"`
  4812  	Id              TeamID              `codec:"id" json:"id"`
  4813  	Application     TeamApplication     `codec:"application" json:"application"`
  4814  	Refreshers      TeamRefreshers      `codec:"refreshers" json:"refreshers"`
  4815  	IncludeKBFSKeys bool                `codec:"includeKBFSKeys" json:"includeKBFSKeys"`
  4816  	Oa              OfflineAvailability `codec:"oa" json:"oa"`
  4817  }
  4818  
  4819  type GetTeamRootIDArg struct {
  4820  	Id TeamID `codec:"id" json:"id"`
  4821  }
  4822  
  4823  type GetTeamShowcaseArg struct {
  4824  	TeamID TeamID `codec:"teamID" json:"teamID"`
  4825  }
  4826  
  4827  type GetTeamAndMemberShowcaseArg struct {
  4828  	TeamID TeamID `codec:"teamID" json:"teamID"`
  4829  }
  4830  
  4831  type SetTeamShowcaseArg struct {
  4832  	TeamID            TeamID  `codec:"teamID" json:"teamID"`
  4833  	IsShowcased       *bool   `codec:"isShowcased,omitempty" json:"isShowcased,omitempty"`
  4834  	Description       *string `codec:"description,omitempty" json:"description,omitempty"`
  4835  	AnyMemberShowcase *bool   `codec:"anyMemberShowcase,omitempty" json:"anyMemberShowcase,omitempty"`
  4836  }
  4837  
  4838  type SetTeamMemberShowcaseArg struct {
  4839  	TeamID      TeamID `codec:"teamID" json:"teamID"`
  4840  	IsShowcased bool   `codec:"isShowcased" json:"isShowcased"`
  4841  }
  4842  
  4843  type CanUserPerformArg struct {
  4844  	Name string `codec:"name" json:"name"`
  4845  }
  4846  
  4847  type TeamRotateKeyArg struct {
  4848  	TeamID TeamID       `codec:"teamID" json:"teamID"`
  4849  	Rt     RotationType `codec:"rt" json:"rt"`
  4850  }
  4851  
  4852  type TeamDebugArg struct {
  4853  	TeamID TeamID `codec:"teamID" json:"teamID"`
  4854  }
  4855  
  4856  type GetTarsDisabledArg struct {
  4857  	TeamID TeamID `codec:"teamID" json:"teamID"`
  4858  }
  4859  
  4860  type SetTarsDisabledArg struct {
  4861  	TeamID   TeamID `codec:"teamID" json:"teamID"`
  4862  	Disabled bool   `codec:"disabled" json:"disabled"`
  4863  }
  4864  
  4865  type TeamProfileAddListArg struct {
  4866  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4867  	Username  string `codec:"username" json:"username"`
  4868  }
  4869  
  4870  type UploadTeamAvatarArg struct {
  4871  	Teamname             string         `codec:"teamname" json:"teamname"`
  4872  	Filename             string         `codec:"filename" json:"filename"`
  4873  	Crop                 *ImageCropRect `codec:"crop,omitempty" json:"crop,omitempty"`
  4874  	SendChatNotification bool           `codec:"sendChatNotification" json:"sendChatNotification"`
  4875  }
  4876  
  4877  type TryDecryptWithTeamKeyArg struct {
  4878  	TeamID         TeamID               `codec:"teamID" json:"teamID"`
  4879  	EncryptedData  []byte               `codec:"encryptedData" json:"encryptedData"`
  4880  	Nonce          BoxNonce             `codec:"nonce" json:"nonce"`
  4881  	PeersPublicKey BoxPublicKey         `codec:"peersPublicKey" json:"peersPublicKey"`
  4882  	MinGeneration  PerTeamKeyGeneration `codec:"minGeneration" json:"minGeneration"`
  4883  }
  4884  
  4885  type FindNextMerkleRootAfterTeamRemovalArg struct {
  4886  	Uid               UID          `codec:"uid" json:"uid"`
  4887  	Team              TeamID       `codec:"team" json:"team"`
  4888  	IsPublic          bool         `codec:"isPublic" json:"isPublic"`
  4889  	TeamSigchainSeqno Seqno        `codec:"teamSigchainSeqno" json:"teamSigchainSeqno"`
  4890  	Prev              MerkleRootV2 `codec:"prev" json:"prev"`
  4891  }
  4892  
  4893  type FindNextMerkleRootAfterTeamRemovalBySigningKeyArg struct {
  4894  	Uid            UID    `codec:"uid" json:"uid"`
  4895  	SigningKey     KID    `codec:"signingKey" json:"signingKey"`
  4896  	Team           TeamID `codec:"team" json:"team"`
  4897  	IsPublic       bool   `codec:"isPublic" json:"isPublic"`
  4898  	AnyRoleAllowed bool   `codec:"anyRoleAllowed" json:"anyRoleAllowed"`
  4899  }
  4900  
  4901  type ProfileTeamLoadArg struct {
  4902  	Arg LoadTeamArg `codec:"arg" json:"arg"`
  4903  }
  4904  
  4905  type GetTeamIDArg struct {
  4906  	TeamName string `codec:"teamName" json:"teamName"`
  4907  }
  4908  
  4909  type GetTeamNameArg struct {
  4910  	TeamID TeamID `codec:"teamID" json:"teamID"`
  4911  }
  4912  
  4913  type FtlArg struct {
  4914  	Arg FastTeamLoadArg `codec:"arg" json:"arg"`
  4915  }
  4916  
  4917  type GetTeamRoleMapArg struct {
  4918  }
  4919  
  4920  type GetAnnotatedTeamArg struct {
  4921  	TeamID TeamID `codec:"teamID" json:"teamID"`
  4922  }
  4923  
  4924  type GetAnnotatedTeamByNameArg struct {
  4925  	TeamName string `codec:"teamName" json:"teamName"`
  4926  }
  4927  
  4928  type LoadTeamTreeMembershipsAsyncArg struct {
  4929  	SessionID int    `codec:"sessionID" json:"sessionID"`
  4930  	TeamID    TeamID `codec:"teamID" json:"teamID"`
  4931  	Username  string `codec:"username" json:"username"`
  4932  }
  4933  
  4934  type FindAssertionsInTeamNoResolveArg struct {
  4935  	SessionID  int      `codec:"sessionID" json:"sessionID"`
  4936  	TeamID     TeamID   `codec:"teamID" json:"teamID"`
  4937  	Assertions []string `codec:"assertions" json:"assertions"`
  4938  }
  4939  
  4940  type TeamsInterface interface {
  4941  	GetUntrustedTeamInfo(context.Context, TeamName) (UntrustedTeamInfo, error)
  4942  	TeamCreate(context.Context, TeamCreateArg) (TeamCreateResult, error)
  4943  	TeamCreateWithSettings(context.Context, TeamCreateWithSettingsArg) (TeamCreateResult, error)
  4944  	TeamCreateFancy(context.Context, TeamCreateFancyArg) (TeamID, error)
  4945  	TeamGetByID(context.Context, TeamGetByIDArg) (TeamDetails, error)
  4946  	TeamGet(context.Context, TeamGetArg) (TeamDetails, error)
  4947  	TeamGetMembersByID(context.Context, TeamGetMembersByIDArg) ([]TeamMemberDetails, error)
  4948  	TeamListUnverified(context.Context, TeamListUnverifiedArg) (AnnotatedTeamList, error)
  4949  	TeamListTeammates(context.Context, TeamListTeammatesArg) (AnnotatedTeamList, error)
  4950  	TeamListVerified(context.Context, TeamListVerifiedArg) (AnnotatedTeamList, error)
  4951  	TeamListSubteamsRecursive(context.Context, TeamListSubteamsRecursiveArg) ([]TeamIDAndName, error)
  4952  	TeamAddMember(context.Context, TeamAddMemberArg) (TeamAddMemberResult, error)
  4953  	TeamAddMembers(context.Context, TeamAddMembersArg) (TeamAddMembersResult, error)
  4954  	TeamAddMembersMultiRole(context.Context, TeamAddMembersMultiRoleArg) (TeamAddMembersResult, error)
  4955  	TeamRemoveMember(context.Context, TeamRemoveMemberArg) error
  4956  	TeamRemoveMembers(context.Context, TeamRemoveMembersArg) (TeamRemoveMembersResult, error)
  4957  	TeamLeave(context.Context, TeamLeaveArg) error
  4958  	TeamEditMember(context.Context, TeamEditMemberArg) error
  4959  	TeamEditMembers(context.Context, TeamEditMembersArg) (TeamEditMembersResult, error)
  4960  	TeamGetBotSettings(context.Context, TeamGetBotSettingsArg) (TeamBotSettings, error)
  4961  	TeamSetBotSettings(context.Context, TeamSetBotSettingsArg) error
  4962  	UntrustedTeamExists(context.Context, TeamName) (UntrustedTeamExistsResult, error)
  4963  	TeamRename(context.Context, TeamRenameArg) error
  4964  	TeamAcceptInvite(context.Context, TeamAcceptInviteArg) error
  4965  	TeamRequestAccess(context.Context, TeamRequestAccessArg) (TeamRequestAccessResult, error)
  4966  	TeamAcceptInviteOrRequestAccess(context.Context, TeamAcceptInviteOrRequestAccessArg) (TeamAcceptOrRequestResult, error)
  4967  	TeamListRequests(context.Context, TeamListRequestsArg) ([]TeamJoinRequest, error)
  4968  	TeamListMyAccessRequests(context.Context, TeamListMyAccessRequestsArg) ([]TeamName, error)
  4969  	TeamIgnoreRequest(context.Context, TeamIgnoreRequestArg) error
  4970  	TeamTreeUnverified(context.Context, TeamTreeUnverifiedArg) (TeamTreeResult, error)
  4971  	TeamGetSubteamsUnverified(context.Context, TeamGetSubteamsUnverifiedArg) (SubteamListResult, error)
  4972  	TeamDelete(context.Context, TeamDeleteArg) error
  4973  	TeamSetSettings(context.Context, TeamSetSettingsArg) error
  4974  	TeamCreateSeitanToken(context.Context, TeamCreateSeitanTokenArg) (SeitanIKey, error)
  4975  	TeamCreateSeitanTokenV2(context.Context, TeamCreateSeitanTokenV2Arg) (SeitanIKeyV2, error)
  4976  	TeamCreateSeitanInvitelink(context.Context, TeamCreateSeitanInvitelinkArg) (Invitelink, error)
  4977  	TeamCreateSeitanInvitelinkWithDuration(context.Context, TeamCreateSeitanInvitelinkWithDurationArg) (Invitelink, error)
  4978  	GetInviteLinkDetails(context.Context, TeamInviteID) (InviteLinkDetails, error)
  4979  	TeamAddEmailsBulk(context.Context, TeamAddEmailsBulkArg) (BulkRes, error)
  4980  	LookupImplicitTeam(context.Context, LookupImplicitTeamArg) (LookupImplicitTeamRes, error)
  4981  	LookupOrCreateImplicitTeam(context.Context, LookupOrCreateImplicitTeamArg) (LookupImplicitTeamRes, error)
  4982  	TeamReAddMemberAfterReset(context.Context, TeamReAddMemberAfterResetArg) error
  4983  	// * loadTeamPlusApplicationKeys loads team information for applications like KBFS and Chat.
  4984  	// * If refreshers are non-empty, then force a refresh of the cache if the requirements
  4985  	// * of the refreshers aren't met. If OfflineAvailability is set to BEST_EFFORT, and the
  4986  	// * client is currently offline (or thinks it's offline), then the refreshers are overridden
  4987  	// * and ignored, and stale data might still be returned.
  4988  	LoadTeamPlusApplicationKeys(context.Context, LoadTeamPlusApplicationKeysArg) (TeamPlusApplicationKeys, error)
  4989  	GetTeamRootID(context.Context, TeamID) (TeamID, error)
  4990  	GetTeamShowcase(context.Context, TeamID) (TeamShowcase, error)
  4991  	GetTeamAndMemberShowcase(context.Context, TeamID) (TeamAndMemberShowcase, error)
  4992  	SetTeamShowcase(context.Context, SetTeamShowcaseArg) error
  4993  	SetTeamMemberShowcase(context.Context, SetTeamMemberShowcaseArg) error
  4994  	CanUserPerform(context.Context, string) (TeamOperation, error)
  4995  	TeamRotateKey(context.Context, TeamRotateKeyArg) error
  4996  	TeamDebug(context.Context, TeamID) (TeamDebugRes, error)
  4997  	GetTarsDisabled(context.Context, TeamID) (bool, error)
  4998  	SetTarsDisabled(context.Context, SetTarsDisabledArg) error
  4999  	TeamProfileAddList(context.Context, TeamProfileAddListArg) ([]TeamProfileAddEntry, error)
  5000  	UploadTeamAvatar(context.Context, UploadTeamAvatarArg) error
  5001  	TryDecryptWithTeamKey(context.Context, TryDecryptWithTeamKeyArg) ([]byte, error)
  5002  	// FindNextMerkleRootAfterTeamRemoval finds the first Merkle root that contains the user being
  5003  	// removed from the team at that given seqno in the team's chain. You should pass in a previous
  5004  	// Merkle root as a starting point for the binary search.
  5005  	FindNextMerkleRootAfterTeamRemoval(context.Context, FindNextMerkleRootAfterTeamRemovalArg) (NextMerkleRootRes, error)
  5006  	// FindNextMerkleRootAfterTeamRemovalBySigningKey find the first Merkle root that contains the user
  5007  	// with the given signing key being removed from the given team. If there are several such instances,
  5008  	// we will return just the last one. When anyRoleAllowed is false, the team removal is any drop in
  5009  	// permissions from Writer (or above) to Reader (or below).
  5010  	FindNextMerkleRootAfterTeamRemovalBySigningKey(context.Context, FindNextMerkleRootAfterTeamRemovalBySigningKeyArg) (NextMerkleRootRes, error)
  5011  	// ProfileTeamLoad loads a team and then throws it on the ground, for the purposes of profiling
  5012  	// the team load machinery.
  5013  	ProfileTeamLoad(context.Context, LoadTeamArg) (ProfileTeamLoadRes, error)
  5014  	// Gets a TeamID from a team name string. Returns an error if the
  5015  	// current user can't read the team.
  5016  	GetTeamID(context.Context, string) (TeamID, error)
  5017  	// Gets a TeamName from a team id string. Returns an error if the
  5018  	// current user can't read the team.
  5019  	GetTeamName(context.Context, TeamID) (TeamName, error)
  5020  	Ftl(context.Context, FastTeamLoadArg) (FastTeamLoadRes, error)
  5021  	GetTeamRoleMap(context.Context) (TeamRoleMapAndVersion, error)
  5022  	GetAnnotatedTeam(context.Context, TeamID) (AnnotatedTeam, error)
  5023  	GetAnnotatedTeamByName(context.Context, string) (AnnotatedTeam, error)
  5024  	LoadTeamTreeMembershipsAsync(context.Context, LoadTeamTreeMembershipsAsyncArg) (TeamTreeInitial, error)
  5025  	FindAssertionsInTeamNoResolve(context.Context, FindAssertionsInTeamNoResolveArg) ([]string, error)
  5026  }
  5027  
  5028  func TeamsProtocol(i TeamsInterface) rpc.Protocol {
  5029  	return rpc.Protocol{
  5030  		Name: "keybase.1.teams",
  5031  		Methods: map[string]rpc.ServeHandlerDescription{
  5032  			"getUntrustedTeamInfo": {
  5033  				MakeArg: func() interface{} {
  5034  					var ret [1]GetUntrustedTeamInfoArg
  5035  					return &ret
  5036  				},
  5037  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5038  					typedArgs, ok := args.(*[1]GetUntrustedTeamInfoArg)
  5039  					if !ok {
  5040  						err = rpc.NewTypeError((*[1]GetUntrustedTeamInfoArg)(nil), args)
  5041  						return
  5042  					}
  5043  					ret, err = i.GetUntrustedTeamInfo(ctx, typedArgs[0].TeamName)
  5044  					return
  5045  				},
  5046  			},
  5047  			"teamCreate": {
  5048  				MakeArg: func() interface{} {
  5049  					var ret [1]TeamCreateArg
  5050  					return &ret
  5051  				},
  5052  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5053  					typedArgs, ok := args.(*[1]TeamCreateArg)
  5054  					if !ok {
  5055  						err = rpc.NewTypeError((*[1]TeamCreateArg)(nil), args)
  5056  						return
  5057  					}
  5058  					ret, err = i.TeamCreate(ctx, typedArgs[0])
  5059  					return
  5060  				},
  5061  			},
  5062  			"teamCreateWithSettings": {
  5063  				MakeArg: func() interface{} {
  5064  					var ret [1]TeamCreateWithSettingsArg
  5065  					return &ret
  5066  				},
  5067  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5068  					typedArgs, ok := args.(*[1]TeamCreateWithSettingsArg)
  5069  					if !ok {
  5070  						err = rpc.NewTypeError((*[1]TeamCreateWithSettingsArg)(nil), args)
  5071  						return
  5072  					}
  5073  					ret, err = i.TeamCreateWithSettings(ctx, typedArgs[0])
  5074  					return
  5075  				},
  5076  			},
  5077  			"teamCreateFancy": {
  5078  				MakeArg: func() interface{} {
  5079  					var ret [1]TeamCreateFancyArg
  5080  					return &ret
  5081  				},
  5082  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5083  					typedArgs, ok := args.(*[1]TeamCreateFancyArg)
  5084  					if !ok {
  5085  						err = rpc.NewTypeError((*[1]TeamCreateFancyArg)(nil), args)
  5086  						return
  5087  					}
  5088  					ret, err = i.TeamCreateFancy(ctx, typedArgs[0])
  5089  					return
  5090  				},
  5091  			},
  5092  			"teamGetByID": {
  5093  				MakeArg: func() interface{} {
  5094  					var ret [1]TeamGetByIDArg
  5095  					return &ret
  5096  				},
  5097  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5098  					typedArgs, ok := args.(*[1]TeamGetByIDArg)
  5099  					if !ok {
  5100  						err = rpc.NewTypeError((*[1]TeamGetByIDArg)(nil), args)
  5101  						return
  5102  					}
  5103  					ret, err = i.TeamGetByID(ctx, typedArgs[0])
  5104  					return
  5105  				},
  5106  			},
  5107  			"teamGet": {
  5108  				MakeArg: func() interface{} {
  5109  					var ret [1]TeamGetArg
  5110  					return &ret
  5111  				},
  5112  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5113  					typedArgs, ok := args.(*[1]TeamGetArg)
  5114  					if !ok {
  5115  						err = rpc.NewTypeError((*[1]TeamGetArg)(nil), args)
  5116  						return
  5117  					}
  5118  					ret, err = i.TeamGet(ctx, typedArgs[0])
  5119  					return
  5120  				},
  5121  			},
  5122  			"teamGetMembersByID": {
  5123  				MakeArg: func() interface{} {
  5124  					var ret [1]TeamGetMembersByIDArg
  5125  					return &ret
  5126  				},
  5127  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5128  					typedArgs, ok := args.(*[1]TeamGetMembersByIDArg)
  5129  					if !ok {
  5130  						err = rpc.NewTypeError((*[1]TeamGetMembersByIDArg)(nil), args)
  5131  						return
  5132  					}
  5133  					ret, err = i.TeamGetMembersByID(ctx, typedArgs[0])
  5134  					return
  5135  				},
  5136  			},
  5137  			"teamListUnverified": {
  5138  				MakeArg: func() interface{} {
  5139  					var ret [1]TeamListUnverifiedArg
  5140  					return &ret
  5141  				},
  5142  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5143  					typedArgs, ok := args.(*[1]TeamListUnverifiedArg)
  5144  					if !ok {
  5145  						err = rpc.NewTypeError((*[1]TeamListUnverifiedArg)(nil), args)
  5146  						return
  5147  					}
  5148  					ret, err = i.TeamListUnverified(ctx, typedArgs[0])
  5149  					return
  5150  				},
  5151  			},
  5152  			"teamListTeammates": {
  5153  				MakeArg: func() interface{} {
  5154  					var ret [1]TeamListTeammatesArg
  5155  					return &ret
  5156  				},
  5157  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5158  					typedArgs, ok := args.(*[1]TeamListTeammatesArg)
  5159  					if !ok {
  5160  						err = rpc.NewTypeError((*[1]TeamListTeammatesArg)(nil), args)
  5161  						return
  5162  					}
  5163  					ret, err = i.TeamListTeammates(ctx, typedArgs[0])
  5164  					return
  5165  				},
  5166  			},
  5167  			"teamListVerified": {
  5168  				MakeArg: func() interface{} {
  5169  					var ret [1]TeamListVerifiedArg
  5170  					return &ret
  5171  				},
  5172  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5173  					typedArgs, ok := args.(*[1]TeamListVerifiedArg)
  5174  					if !ok {
  5175  						err = rpc.NewTypeError((*[1]TeamListVerifiedArg)(nil), args)
  5176  						return
  5177  					}
  5178  					ret, err = i.TeamListVerified(ctx, typedArgs[0])
  5179  					return
  5180  				},
  5181  			},
  5182  			"teamListSubteamsRecursive": {
  5183  				MakeArg: func() interface{} {
  5184  					var ret [1]TeamListSubteamsRecursiveArg
  5185  					return &ret
  5186  				},
  5187  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5188  					typedArgs, ok := args.(*[1]TeamListSubteamsRecursiveArg)
  5189  					if !ok {
  5190  						err = rpc.NewTypeError((*[1]TeamListSubteamsRecursiveArg)(nil), args)
  5191  						return
  5192  					}
  5193  					ret, err = i.TeamListSubteamsRecursive(ctx, typedArgs[0])
  5194  					return
  5195  				},
  5196  			},
  5197  			"teamAddMember": {
  5198  				MakeArg: func() interface{} {
  5199  					var ret [1]TeamAddMemberArg
  5200  					return &ret
  5201  				},
  5202  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5203  					typedArgs, ok := args.(*[1]TeamAddMemberArg)
  5204  					if !ok {
  5205  						err = rpc.NewTypeError((*[1]TeamAddMemberArg)(nil), args)
  5206  						return
  5207  					}
  5208  					ret, err = i.TeamAddMember(ctx, typedArgs[0])
  5209  					return
  5210  				},
  5211  			},
  5212  			"teamAddMembers": {
  5213  				MakeArg: func() interface{} {
  5214  					var ret [1]TeamAddMembersArg
  5215  					return &ret
  5216  				},
  5217  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5218  					typedArgs, ok := args.(*[1]TeamAddMembersArg)
  5219  					if !ok {
  5220  						err = rpc.NewTypeError((*[1]TeamAddMembersArg)(nil), args)
  5221  						return
  5222  					}
  5223  					ret, err = i.TeamAddMembers(ctx, typedArgs[0])
  5224  					return
  5225  				},
  5226  			},
  5227  			"teamAddMembersMultiRole": {
  5228  				MakeArg: func() interface{} {
  5229  					var ret [1]TeamAddMembersMultiRoleArg
  5230  					return &ret
  5231  				},
  5232  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5233  					typedArgs, ok := args.(*[1]TeamAddMembersMultiRoleArg)
  5234  					if !ok {
  5235  						err = rpc.NewTypeError((*[1]TeamAddMembersMultiRoleArg)(nil), args)
  5236  						return
  5237  					}
  5238  					ret, err = i.TeamAddMembersMultiRole(ctx, typedArgs[0])
  5239  					return
  5240  				},
  5241  			},
  5242  			"teamRemoveMember": {
  5243  				MakeArg: func() interface{} {
  5244  					var ret [1]TeamRemoveMemberArg
  5245  					return &ret
  5246  				},
  5247  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5248  					typedArgs, ok := args.(*[1]TeamRemoveMemberArg)
  5249  					if !ok {
  5250  						err = rpc.NewTypeError((*[1]TeamRemoveMemberArg)(nil), args)
  5251  						return
  5252  					}
  5253  					err = i.TeamRemoveMember(ctx, typedArgs[0])
  5254  					return
  5255  				},
  5256  			},
  5257  			"teamRemoveMembers": {
  5258  				MakeArg: func() interface{} {
  5259  					var ret [1]TeamRemoveMembersArg
  5260  					return &ret
  5261  				},
  5262  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5263  					typedArgs, ok := args.(*[1]TeamRemoveMembersArg)
  5264  					if !ok {
  5265  						err = rpc.NewTypeError((*[1]TeamRemoveMembersArg)(nil), args)
  5266  						return
  5267  					}
  5268  					ret, err = i.TeamRemoveMembers(ctx, typedArgs[0])
  5269  					return
  5270  				},
  5271  			},
  5272  			"teamLeave": {
  5273  				MakeArg: func() interface{} {
  5274  					var ret [1]TeamLeaveArg
  5275  					return &ret
  5276  				},
  5277  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5278  					typedArgs, ok := args.(*[1]TeamLeaveArg)
  5279  					if !ok {
  5280  						err = rpc.NewTypeError((*[1]TeamLeaveArg)(nil), args)
  5281  						return
  5282  					}
  5283  					err = i.TeamLeave(ctx, typedArgs[0])
  5284  					return
  5285  				},
  5286  			},
  5287  			"teamEditMember": {
  5288  				MakeArg: func() interface{} {
  5289  					var ret [1]TeamEditMemberArg
  5290  					return &ret
  5291  				},
  5292  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5293  					typedArgs, ok := args.(*[1]TeamEditMemberArg)
  5294  					if !ok {
  5295  						err = rpc.NewTypeError((*[1]TeamEditMemberArg)(nil), args)
  5296  						return
  5297  					}
  5298  					err = i.TeamEditMember(ctx, typedArgs[0])
  5299  					return
  5300  				},
  5301  			},
  5302  			"teamEditMembers": {
  5303  				MakeArg: func() interface{} {
  5304  					var ret [1]TeamEditMembersArg
  5305  					return &ret
  5306  				},
  5307  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5308  					typedArgs, ok := args.(*[1]TeamEditMembersArg)
  5309  					if !ok {
  5310  						err = rpc.NewTypeError((*[1]TeamEditMembersArg)(nil), args)
  5311  						return
  5312  					}
  5313  					ret, err = i.TeamEditMembers(ctx, typedArgs[0])
  5314  					return
  5315  				},
  5316  			},
  5317  			"teamGetBotSettings": {
  5318  				MakeArg: func() interface{} {
  5319  					var ret [1]TeamGetBotSettingsArg
  5320  					return &ret
  5321  				},
  5322  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5323  					typedArgs, ok := args.(*[1]TeamGetBotSettingsArg)
  5324  					if !ok {
  5325  						err = rpc.NewTypeError((*[1]TeamGetBotSettingsArg)(nil), args)
  5326  						return
  5327  					}
  5328  					ret, err = i.TeamGetBotSettings(ctx, typedArgs[0])
  5329  					return
  5330  				},
  5331  			},
  5332  			"teamSetBotSettings": {
  5333  				MakeArg: func() interface{} {
  5334  					var ret [1]TeamSetBotSettingsArg
  5335  					return &ret
  5336  				},
  5337  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5338  					typedArgs, ok := args.(*[1]TeamSetBotSettingsArg)
  5339  					if !ok {
  5340  						err = rpc.NewTypeError((*[1]TeamSetBotSettingsArg)(nil), args)
  5341  						return
  5342  					}
  5343  					err = i.TeamSetBotSettings(ctx, typedArgs[0])
  5344  					return
  5345  				},
  5346  			},
  5347  			"untrustedTeamExists": {
  5348  				MakeArg: func() interface{} {
  5349  					var ret [1]UntrustedTeamExistsArg
  5350  					return &ret
  5351  				},
  5352  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5353  					typedArgs, ok := args.(*[1]UntrustedTeamExistsArg)
  5354  					if !ok {
  5355  						err = rpc.NewTypeError((*[1]UntrustedTeamExistsArg)(nil), args)
  5356  						return
  5357  					}
  5358  					ret, err = i.UntrustedTeamExists(ctx, typedArgs[0].TeamName)
  5359  					return
  5360  				},
  5361  			},
  5362  			"teamRename": {
  5363  				MakeArg: func() interface{} {
  5364  					var ret [1]TeamRenameArg
  5365  					return &ret
  5366  				},
  5367  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5368  					typedArgs, ok := args.(*[1]TeamRenameArg)
  5369  					if !ok {
  5370  						err = rpc.NewTypeError((*[1]TeamRenameArg)(nil), args)
  5371  						return
  5372  					}
  5373  					err = i.TeamRename(ctx, typedArgs[0])
  5374  					return
  5375  				},
  5376  			},
  5377  			"teamAcceptInvite": {
  5378  				MakeArg: func() interface{} {
  5379  					var ret [1]TeamAcceptInviteArg
  5380  					return &ret
  5381  				},
  5382  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5383  					typedArgs, ok := args.(*[1]TeamAcceptInviteArg)
  5384  					if !ok {
  5385  						err = rpc.NewTypeError((*[1]TeamAcceptInviteArg)(nil), args)
  5386  						return
  5387  					}
  5388  					err = i.TeamAcceptInvite(ctx, typedArgs[0])
  5389  					return
  5390  				},
  5391  			},
  5392  			"teamRequestAccess": {
  5393  				MakeArg: func() interface{} {
  5394  					var ret [1]TeamRequestAccessArg
  5395  					return &ret
  5396  				},
  5397  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5398  					typedArgs, ok := args.(*[1]TeamRequestAccessArg)
  5399  					if !ok {
  5400  						err = rpc.NewTypeError((*[1]TeamRequestAccessArg)(nil), args)
  5401  						return
  5402  					}
  5403  					ret, err = i.TeamRequestAccess(ctx, typedArgs[0])
  5404  					return
  5405  				},
  5406  			},
  5407  			"teamAcceptInviteOrRequestAccess": {
  5408  				MakeArg: func() interface{} {
  5409  					var ret [1]TeamAcceptInviteOrRequestAccessArg
  5410  					return &ret
  5411  				},
  5412  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5413  					typedArgs, ok := args.(*[1]TeamAcceptInviteOrRequestAccessArg)
  5414  					if !ok {
  5415  						err = rpc.NewTypeError((*[1]TeamAcceptInviteOrRequestAccessArg)(nil), args)
  5416  						return
  5417  					}
  5418  					ret, err = i.TeamAcceptInviteOrRequestAccess(ctx, typedArgs[0])
  5419  					return
  5420  				},
  5421  			},
  5422  			"teamListRequests": {
  5423  				MakeArg: func() interface{} {
  5424  					var ret [1]TeamListRequestsArg
  5425  					return &ret
  5426  				},
  5427  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5428  					typedArgs, ok := args.(*[1]TeamListRequestsArg)
  5429  					if !ok {
  5430  						err = rpc.NewTypeError((*[1]TeamListRequestsArg)(nil), args)
  5431  						return
  5432  					}
  5433  					ret, err = i.TeamListRequests(ctx, typedArgs[0])
  5434  					return
  5435  				},
  5436  			},
  5437  			"teamListMyAccessRequests": {
  5438  				MakeArg: func() interface{} {
  5439  					var ret [1]TeamListMyAccessRequestsArg
  5440  					return &ret
  5441  				},
  5442  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5443  					typedArgs, ok := args.(*[1]TeamListMyAccessRequestsArg)
  5444  					if !ok {
  5445  						err = rpc.NewTypeError((*[1]TeamListMyAccessRequestsArg)(nil), args)
  5446  						return
  5447  					}
  5448  					ret, err = i.TeamListMyAccessRequests(ctx, typedArgs[0])
  5449  					return
  5450  				},
  5451  			},
  5452  			"teamIgnoreRequest": {
  5453  				MakeArg: func() interface{} {
  5454  					var ret [1]TeamIgnoreRequestArg
  5455  					return &ret
  5456  				},
  5457  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5458  					typedArgs, ok := args.(*[1]TeamIgnoreRequestArg)
  5459  					if !ok {
  5460  						err = rpc.NewTypeError((*[1]TeamIgnoreRequestArg)(nil), args)
  5461  						return
  5462  					}
  5463  					err = i.TeamIgnoreRequest(ctx, typedArgs[0])
  5464  					return
  5465  				},
  5466  			},
  5467  			"teamTreeUnverified": {
  5468  				MakeArg: func() interface{} {
  5469  					var ret [1]TeamTreeUnverifiedArg
  5470  					return &ret
  5471  				},
  5472  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5473  					typedArgs, ok := args.(*[1]TeamTreeUnverifiedArg)
  5474  					if !ok {
  5475  						err = rpc.NewTypeError((*[1]TeamTreeUnverifiedArg)(nil), args)
  5476  						return
  5477  					}
  5478  					ret, err = i.TeamTreeUnverified(ctx, typedArgs[0])
  5479  					return
  5480  				},
  5481  			},
  5482  			"teamGetSubteamsUnverified": {
  5483  				MakeArg: func() interface{} {
  5484  					var ret [1]TeamGetSubteamsUnverifiedArg
  5485  					return &ret
  5486  				},
  5487  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5488  					typedArgs, ok := args.(*[1]TeamGetSubteamsUnverifiedArg)
  5489  					if !ok {
  5490  						err = rpc.NewTypeError((*[1]TeamGetSubteamsUnverifiedArg)(nil), args)
  5491  						return
  5492  					}
  5493  					ret, err = i.TeamGetSubteamsUnverified(ctx, typedArgs[0])
  5494  					return
  5495  				},
  5496  			},
  5497  			"teamDelete": {
  5498  				MakeArg: func() interface{} {
  5499  					var ret [1]TeamDeleteArg
  5500  					return &ret
  5501  				},
  5502  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5503  					typedArgs, ok := args.(*[1]TeamDeleteArg)
  5504  					if !ok {
  5505  						err = rpc.NewTypeError((*[1]TeamDeleteArg)(nil), args)
  5506  						return
  5507  					}
  5508  					err = i.TeamDelete(ctx, typedArgs[0])
  5509  					return
  5510  				},
  5511  			},
  5512  			"teamSetSettings": {
  5513  				MakeArg: func() interface{} {
  5514  					var ret [1]TeamSetSettingsArg
  5515  					return &ret
  5516  				},
  5517  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5518  					typedArgs, ok := args.(*[1]TeamSetSettingsArg)
  5519  					if !ok {
  5520  						err = rpc.NewTypeError((*[1]TeamSetSettingsArg)(nil), args)
  5521  						return
  5522  					}
  5523  					err = i.TeamSetSettings(ctx, typedArgs[0])
  5524  					return
  5525  				},
  5526  			},
  5527  			"teamCreateSeitanToken": {
  5528  				MakeArg: func() interface{} {
  5529  					var ret [1]TeamCreateSeitanTokenArg
  5530  					return &ret
  5531  				},
  5532  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5533  					typedArgs, ok := args.(*[1]TeamCreateSeitanTokenArg)
  5534  					if !ok {
  5535  						err = rpc.NewTypeError((*[1]TeamCreateSeitanTokenArg)(nil), args)
  5536  						return
  5537  					}
  5538  					ret, err = i.TeamCreateSeitanToken(ctx, typedArgs[0])
  5539  					return
  5540  				},
  5541  			},
  5542  			"teamCreateSeitanTokenV2": {
  5543  				MakeArg: func() interface{} {
  5544  					var ret [1]TeamCreateSeitanTokenV2Arg
  5545  					return &ret
  5546  				},
  5547  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5548  					typedArgs, ok := args.(*[1]TeamCreateSeitanTokenV2Arg)
  5549  					if !ok {
  5550  						err = rpc.NewTypeError((*[1]TeamCreateSeitanTokenV2Arg)(nil), args)
  5551  						return
  5552  					}
  5553  					ret, err = i.TeamCreateSeitanTokenV2(ctx, typedArgs[0])
  5554  					return
  5555  				},
  5556  			},
  5557  			"teamCreateSeitanInvitelink": {
  5558  				MakeArg: func() interface{} {
  5559  					var ret [1]TeamCreateSeitanInvitelinkArg
  5560  					return &ret
  5561  				},
  5562  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5563  					typedArgs, ok := args.(*[1]TeamCreateSeitanInvitelinkArg)
  5564  					if !ok {
  5565  						err = rpc.NewTypeError((*[1]TeamCreateSeitanInvitelinkArg)(nil), args)
  5566  						return
  5567  					}
  5568  					ret, err = i.TeamCreateSeitanInvitelink(ctx, typedArgs[0])
  5569  					return
  5570  				},
  5571  			},
  5572  			"teamCreateSeitanInvitelinkWithDuration": {
  5573  				MakeArg: func() interface{} {
  5574  					var ret [1]TeamCreateSeitanInvitelinkWithDurationArg
  5575  					return &ret
  5576  				},
  5577  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5578  					typedArgs, ok := args.(*[1]TeamCreateSeitanInvitelinkWithDurationArg)
  5579  					if !ok {
  5580  						err = rpc.NewTypeError((*[1]TeamCreateSeitanInvitelinkWithDurationArg)(nil), args)
  5581  						return
  5582  					}
  5583  					ret, err = i.TeamCreateSeitanInvitelinkWithDuration(ctx, typedArgs[0])
  5584  					return
  5585  				},
  5586  			},
  5587  			"getInviteLinkDetails": {
  5588  				MakeArg: func() interface{} {
  5589  					var ret [1]GetInviteLinkDetailsArg
  5590  					return &ret
  5591  				},
  5592  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5593  					typedArgs, ok := args.(*[1]GetInviteLinkDetailsArg)
  5594  					if !ok {
  5595  						err = rpc.NewTypeError((*[1]GetInviteLinkDetailsArg)(nil), args)
  5596  						return
  5597  					}
  5598  					ret, err = i.GetInviteLinkDetails(ctx, typedArgs[0].InviteID)
  5599  					return
  5600  				},
  5601  			},
  5602  			"teamAddEmailsBulk": {
  5603  				MakeArg: func() interface{} {
  5604  					var ret [1]TeamAddEmailsBulkArg
  5605  					return &ret
  5606  				},
  5607  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5608  					typedArgs, ok := args.(*[1]TeamAddEmailsBulkArg)
  5609  					if !ok {
  5610  						err = rpc.NewTypeError((*[1]TeamAddEmailsBulkArg)(nil), args)
  5611  						return
  5612  					}
  5613  					ret, err = i.TeamAddEmailsBulk(ctx, typedArgs[0])
  5614  					return
  5615  				},
  5616  			},
  5617  			"lookupImplicitTeam": {
  5618  				MakeArg: func() interface{} {
  5619  					var ret [1]LookupImplicitTeamArg
  5620  					return &ret
  5621  				},
  5622  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5623  					typedArgs, ok := args.(*[1]LookupImplicitTeamArg)
  5624  					if !ok {
  5625  						err = rpc.NewTypeError((*[1]LookupImplicitTeamArg)(nil), args)
  5626  						return
  5627  					}
  5628  					ret, err = i.LookupImplicitTeam(ctx, typedArgs[0])
  5629  					return
  5630  				},
  5631  			},
  5632  			"lookupOrCreateImplicitTeam": {
  5633  				MakeArg: func() interface{} {
  5634  					var ret [1]LookupOrCreateImplicitTeamArg
  5635  					return &ret
  5636  				},
  5637  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5638  					typedArgs, ok := args.(*[1]LookupOrCreateImplicitTeamArg)
  5639  					if !ok {
  5640  						err = rpc.NewTypeError((*[1]LookupOrCreateImplicitTeamArg)(nil), args)
  5641  						return
  5642  					}
  5643  					ret, err = i.LookupOrCreateImplicitTeam(ctx, typedArgs[0])
  5644  					return
  5645  				},
  5646  			},
  5647  			"teamReAddMemberAfterReset": {
  5648  				MakeArg: func() interface{} {
  5649  					var ret [1]TeamReAddMemberAfterResetArg
  5650  					return &ret
  5651  				},
  5652  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5653  					typedArgs, ok := args.(*[1]TeamReAddMemberAfterResetArg)
  5654  					if !ok {
  5655  						err = rpc.NewTypeError((*[1]TeamReAddMemberAfterResetArg)(nil), args)
  5656  						return
  5657  					}
  5658  					err = i.TeamReAddMemberAfterReset(ctx, typedArgs[0])
  5659  					return
  5660  				},
  5661  			},
  5662  			"loadTeamPlusApplicationKeys": {
  5663  				MakeArg: func() interface{} {
  5664  					var ret [1]LoadTeamPlusApplicationKeysArg
  5665  					return &ret
  5666  				},
  5667  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5668  					typedArgs, ok := args.(*[1]LoadTeamPlusApplicationKeysArg)
  5669  					if !ok {
  5670  						err = rpc.NewTypeError((*[1]LoadTeamPlusApplicationKeysArg)(nil), args)
  5671  						return
  5672  					}
  5673  					ret, err = i.LoadTeamPlusApplicationKeys(ctx, typedArgs[0])
  5674  					return
  5675  				},
  5676  			},
  5677  			"getTeamRootID": {
  5678  				MakeArg: func() interface{} {
  5679  					var ret [1]GetTeamRootIDArg
  5680  					return &ret
  5681  				},
  5682  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5683  					typedArgs, ok := args.(*[1]GetTeamRootIDArg)
  5684  					if !ok {
  5685  						err = rpc.NewTypeError((*[1]GetTeamRootIDArg)(nil), args)
  5686  						return
  5687  					}
  5688  					ret, err = i.GetTeamRootID(ctx, typedArgs[0].Id)
  5689  					return
  5690  				},
  5691  			},
  5692  			"getTeamShowcase": {
  5693  				MakeArg: func() interface{} {
  5694  					var ret [1]GetTeamShowcaseArg
  5695  					return &ret
  5696  				},
  5697  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5698  					typedArgs, ok := args.(*[1]GetTeamShowcaseArg)
  5699  					if !ok {
  5700  						err = rpc.NewTypeError((*[1]GetTeamShowcaseArg)(nil), args)
  5701  						return
  5702  					}
  5703  					ret, err = i.GetTeamShowcase(ctx, typedArgs[0].TeamID)
  5704  					return
  5705  				},
  5706  			},
  5707  			"getTeamAndMemberShowcase": {
  5708  				MakeArg: func() interface{} {
  5709  					var ret [1]GetTeamAndMemberShowcaseArg
  5710  					return &ret
  5711  				},
  5712  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5713  					typedArgs, ok := args.(*[1]GetTeamAndMemberShowcaseArg)
  5714  					if !ok {
  5715  						err = rpc.NewTypeError((*[1]GetTeamAndMemberShowcaseArg)(nil), args)
  5716  						return
  5717  					}
  5718  					ret, err = i.GetTeamAndMemberShowcase(ctx, typedArgs[0].TeamID)
  5719  					return
  5720  				},
  5721  			},
  5722  			"setTeamShowcase": {
  5723  				MakeArg: func() interface{} {
  5724  					var ret [1]SetTeamShowcaseArg
  5725  					return &ret
  5726  				},
  5727  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5728  					typedArgs, ok := args.(*[1]SetTeamShowcaseArg)
  5729  					if !ok {
  5730  						err = rpc.NewTypeError((*[1]SetTeamShowcaseArg)(nil), args)
  5731  						return
  5732  					}
  5733  					err = i.SetTeamShowcase(ctx, typedArgs[0])
  5734  					return
  5735  				},
  5736  			},
  5737  			"setTeamMemberShowcase": {
  5738  				MakeArg: func() interface{} {
  5739  					var ret [1]SetTeamMemberShowcaseArg
  5740  					return &ret
  5741  				},
  5742  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5743  					typedArgs, ok := args.(*[1]SetTeamMemberShowcaseArg)
  5744  					if !ok {
  5745  						err = rpc.NewTypeError((*[1]SetTeamMemberShowcaseArg)(nil), args)
  5746  						return
  5747  					}
  5748  					err = i.SetTeamMemberShowcase(ctx, typedArgs[0])
  5749  					return
  5750  				},
  5751  			},
  5752  			"canUserPerform": {
  5753  				MakeArg: func() interface{} {
  5754  					var ret [1]CanUserPerformArg
  5755  					return &ret
  5756  				},
  5757  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5758  					typedArgs, ok := args.(*[1]CanUserPerformArg)
  5759  					if !ok {
  5760  						err = rpc.NewTypeError((*[1]CanUserPerformArg)(nil), args)
  5761  						return
  5762  					}
  5763  					ret, err = i.CanUserPerform(ctx, typedArgs[0].Name)
  5764  					return
  5765  				},
  5766  			},
  5767  			"teamRotateKey": {
  5768  				MakeArg: func() interface{} {
  5769  					var ret [1]TeamRotateKeyArg
  5770  					return &ret
  5771  				},
  5772  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5773  					typedArgs, ok := args.(*[1]TeamRotateKeyArg)
  5774  					if !ok {
  5775  						err = rpc.NewTypeError((*[1]TeamRotateKeyArg)(nil), args)
  5776  						return
  5777  					}
  5778  					err = i.TeamRotateKey(ctx, typedArgs[0])
  5779  					return
  5780  				},
  5781  			},
  5782  			"teamDebug": {
  5783  				MakeArg: func() interface{} {
  5784  					var ret [1]TeamDebugArg
  5785  					return &ret
  5786  				},
  5787  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5788  					typedArgs, ok := args.(*[1]TeamDebugArg)
  5789  					if !ok {
  5790  						err = rpc.NewTypeError((*[1]TeamDebugArg)(nil), args)
  5791  						return
  5792  					}
  5793  					ret, err = i.TeamDebug(ctx, typedArgs[0].TeamID)
  5794  					return
  5795  				},
  5796  			},
  5797  			"getTarsDisabled": {
  5798  				MakeArg: func() interface{} {
  5799  					var ret [1]GetTarsDisabledArg
  5800  					return &ret
  5801  				},
  5802  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5803  					typedArgs, ok := args.(*[1]GetTarsDisabledArg)
  5804  					if !ok {
  5805  						err = rpc.NewTypeError((*[1]GetTarsDisabledArg)(nil), args)
  5806  						return
  5807  					}
  5808  					ret, err = i.GetTarsDisabled(ctx, typedArgs[0].TeamID)
  5809  					return
  5810  				},
  5811  			},
  5812  			"setTarsDisabled": {
  5813  				MakeArg: func() interface{} {
  5814  					var ret [1]SetTarsDisabledArg
  5815  					return &ret
  5816  				},
  5817  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5818  					typedArgs, ok := args.(*[1]SetTarsDisabledArg)
  5819  					if !ok {
  5820  						err = rpc.NewTypeError((*[1]SetTarsDisabledArg)(nil), args)
  5821  						return
  5822  					}
  5823  					err = i.SetTarsDisabled(ctx, typedArgs[0])
  5824  					return
  5825  				},
  5826  			},
  5827  			"teamProfileAddList": {
  5828  				MakeArg: func() interface{} {
  5829  					var ret [1]TeamProfileAddListArg
  5830  					return &ret
  5831  				},
  5832  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5833  					typedArgs, ok := args.(*[1]TeamProfileAddListArg)
  5834  					if !ok {
  5835  						err = rpc.NewTypeError((*[1]TeamProfileAddListArg)(nil), args)
  5836  						return
  5837  					}
  5838  					ret, err = i.TeamProfileAddList(ctx, typedArgs[0])
  5839  					return
  5840  				},
  5841  			},
  5842  			"uploadTeamAvatar": {
  5843  				MakeArg: func() interface{} {
  5844  					var ret [1]UploadTeamAvatarArg
  5845  					return &ret
  5846  				},
  5847  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5848  					typedArgs, ok := args.(*[1]UploadTeamAvatarArg)
  5849  					if !ok {
  5850  						err = rpc.NewTypeError((*[1]UploadTeamAvatarArg)(nil), args)
  5851  						return
  5852  					}
  5853  					err = i.UploadTeamAvatar(ctx, typedArgs[0])
  5854  					return
  5855  				},
  5856  			},
  5857  			"tryDecryptWithTeamKey": {
  5858  				MakeArg: func() interface{} {
  5859  					var ret [1]TryDecryptWithTeamKeyArg
  5860  					return &ret
  5861  				},
  5862  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5863  					typedArgs, ok := args.(*[1]TryDecryptWithTeamKeyArg)
  5864  					if !ok {
  5865  						err = rpc.NewTypeError((*[1]TryDecryptWithTeamKeyArg)(nil), args)
  5866  						return
  5867  					}
  5868  					ret, err = i.TryDecryptWithTeamKey(ctx, typedArgs[0])
  5869  					return
  5870  				},
  5871  			},
  5872  			"findNextMerkleRootAfterTeamRemoval": {
  5873  				MakeArg: func() interface{} {
  5874  					var ret [1]FindNextMerkleRootAfterTeamRemovalArg
  5875  					return &ret
  5876  				},
  5877  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5878  					typedArgs, ok := args.(*[1]FindNextMerkleRootAfterTeamRemovalArg)
  5879  					if !ok {
  5880  						err = rpc.NewTypeError((*[1]FindNextMerkleRootAfterTeamRemovalArg)(nil), args)
  5881  						return
  5882  					}
  5883  					ret, err = i.FindNextMerkleRootAfterTeamRemoval(ctx, typedArgs[0])
  5884  					return
  5885  				},
  5886  			},
  5887  			"findNextMerkleRootAfterTeamRemovalBySigningKey": {
  5888  				MakeArg: func() interface{} {
  5889  					var ret [1]FindNextMerkleRootAfterTeamRemovalBySigningKeyArg
  5890  					return &ret
  5891  				},
  5892  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5893  					typedArgs, ok := args.(*[1]FindNextMerkleRootAfterTeamRemovalBySigningKeyArg)
  5894  					if !ok {
  5895  						err = rpc.NewTypeError((*[1]FindNextMerkleRootAfterTeamRemovalBySigningKeyArg)(nil), args)
  5896  						return
  5897  					}
  5898  					ret, err = i.FindNextMerkleRootAfterTeamRemovalBySigningKey(ctx, typedArgs[0])
  5899  					return
  5900  				},
  5901  			},
  5902  			"profileTeamLoad": {
  5903  				MakeArg: func() interface{} {
  5904  					var ret [1]ProfileTeamLoadArg
  5905  					return &ret
  5906  				},
  5907  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5908  					typedArgs, ok := args.(*[1]ProfileTeamLoadArg)
  5909  					if !ok {
  5910  						err = rpc.NewTypeError((*[1]ProfileTeamLoadArg)(nil), args)
  5911  						return
  5912  					}
  5913  					ret, err = i.ProfileTeamLoad(ctx, typedArgs[0].Arg)
  5914  					return
  5915  				},
  5916  			},
  5917  			"getTeamID": {
  5918  				MakeArg: func() interface{} {
  5919  					var ret [1]GetTeamIDArg
  5920  					return &ret
  5921  				},
  5922  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5923  					typedArgs, ok := args.(*[1]GetTeamIDArg)
  5924  					if !ok {
  5925  						err = rpc.NewTypeError((*[1]GetTeamIDArg)(nil), args)
  5926  						return
  5927  					}
  5928  					ret, err = i.GetTeamID(ctx, typedArgs[0].TeamName)
  5929  					return
  5930  				},
  5931  			},
  5932  			"getTeamName": {
  5933  				MakeArg: func() interface{} {
  5934  					var ret [1]GetTeamNameArg
  5935  					return &ret
  5936  				},
  5937  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5938  					typedArgs, ok := args.(*[1]GetTeamNameArg)
  5939  					if !ok {
  5940  						err = rpc.NewTypeError((*[1]GetTeamNameArg)(nil), args)
  5941  						return
  5942  					}
  5943  					ret, err = i.GetTeamName(ctx, typedArgs[0].TeamID)
  5944  					return
  5945  				},
  5946  			},
  5947  			"ftl": {
  5948  				MakeArg: func() interface{} {
  5949  					var ret [1]FtlArg
  5950  					return &ret
  5951  				},
  5952  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5953  					typedArgs, ok := args.(*[1]FtlArg)
  5954  					if !ok {
  5955  						err = rpc.NewTypeError((*[1]FtlArg)(nil), args)
  5956  						return
  5957  					}
  5958  					ret, err = i.Ftl(ctx, typedArgs[0].Arg)
  5959  					return
  5960  				},
  5961  			},
  5962  			"getTeamRoleMap": {
  5963  				MakeArg: func() interface{} {
  5964  					var ret [1]GetTeamRoleMapArg
  5965  					return &ret
  5966  				},
  5967  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5968  					ret, err = i.GetTeamRoleMap(ctx)
  5969  					return
  5970  				},
  5971  			},
  5972  			"getAnnotatedTeam": {
  5973  				MakeArg: func() interface{} {
  5974  					var ret [1]GetAnnotatedTeamArg
  5975  					return &ret
  5976  				},
  5977  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5978  					typedArgs, ok := args.(*[1]GetAnnotatedTeamArg)
  5979  					if !ok {
  5980  						err = rpc.NewTypeError((*[1]GetAnnotatedTeamArg)(nil), args)
  5981  						return
  5982  					}
  5983  					ret, err = i.GetAnnotatedTeam(ctx, typedArgs[0].TeamID)
  5984  					return
  5985  				},
  5986  			},
  5987  			"getAnnotatedTeamByName": {
  5988  				MakeArg: func() interface{} {
  5989  					var ret [1]GetAnnotatedTeamByNameArg
  5990  					return &ret
  5991  				},
  5992  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  5993  					typedArgs, ok := args.(*[1]GetAnnotatedTeamByNameArg)
  5994  					if !ok {
  5995  						err = rpc.NewTypeError((*[1]GetAnnotatedTeamByNameArg)(nil), args)
  5996  						return
  5997  					}
  5998  					ret, err = i.GetAnnotatedTeamByName(ctx, typedArgs[0].TeamName)
  5999  					return
  6000  				},
  6001  			},
  6002  			"loadTeamTreeMembershipsAsync": {
  6003  				MakeArg: func() interface{} {
  6004  					var ret [1]LoadTeamTreeMembershipsAsyncArg
  6005  					return &ret
  6006  				},
  6007  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  6008  					typedArgs, ok := args.(*[1]LoadTeamTreeMembershipsAsyncArg)
  6009  					if !ok {
  6010  						err = rpc.NewTypeError((*[1]LoadTeamTreeMembershipsAsyncArg)(nil), args)
  6011  						return
  6012  					}
  6013  					ret, err = i.LoadTeamTreeMembershipsAsync(ctx, typedArgs[0])
  6014  					return
  6015  				},
  6016  			},
  6017  			"findAssertionsInTeamNoResolve": {
  6018  				MakeArg: func() interface{} {
  6019  					var ret [1]FindAssertionsInTeamNoResolveArg
  6020  					return &ret
  6021  				},
  6022  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  6023  					typedArgs, ok := args.(*[1]FindAssertionsInTeamNoResolveArg)
  6024  					if !ok {
  6025  						err = rpc.NewTypeError((*[1]FindAssertionsInTeamNoResolveArg)(nil), args)
  6026  						return
  6027  					}
  6028  					ret, err = i.FindAssertionsInTeamNoResolve(ctx, typedArgs[0])
  6029  					return
  6030  				},
  6031  			},
  6032  		},
  6033  	}
  6034  }
  6035  
  6036  type TeamsClient struct {
  6037  	Cli rpc.GenericClient
  6038  }
  6039  
  6040  func (c TeamsClient) GetUntrustedTeamInfo(ctx context.Context, teamName TeamName) (res UntrustedTeamInfo, err error) {
  6041  	__arg := GetUntrustedTeamInfoArg{TeamName: teamName}
  6042  	err = c.Cli.Call(ctx, "keybase.1.teams.getUntrustedTeamInfo", []interface{}{__arg}, &res, 0*time.Millisecond)
  6043  	return
  6044  }
  6045  
  6046  func (c TeamsClient) TeamCreate(ctx context.Context, __arg TeamCreateArg) (res TeamCreateResult, err error) {
  6047  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreate", []interface{}{__arg}, &res, 0*time.Millisecond)
  6048  	return
  6049  }
  6050  
  6051  func (c TeamsClient) TeamCreateWithSettings(ctx context.Context, __arg TeamCreateWithSettingsArg) (res TeamCreateResult, err error) {
  6052  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreateWithSettings", []interface{}{__arg}, &res, 0*time.Millisecond)
  6053  	return
  6054  }
  6055  
  6056  func (c TeamsClient) TeamCreateFancy(ctx context.Context, __arg TeamCreateFancyArg) (res TeamID, err error) {
  6057  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreateFancy", []interface{}{__arg}, &res, 0*time.Millisecond)
  6058  	return
  6059  }
  6060  
  6061  func (c TeamsClient) TeamGetByID(ctx context.Context, __arg TeamGetByIDArg) (res TeamDetails, err error) {
  6062  	err = c.Cli.Call(ctx, "keybase.1.teams.teamGetByID", []interface{}{__arg}, &res, 0*time.Millisecond)
  6063  	return
  6064  }
  6065  
  6066  func (c TeamsClient) TeamGet(ctx context.Context, __arg TeamGetArg) (res TeamDetails, err error) {
  6067  	err = c.Cli.Call(ctx, "keybase.1.teams.teamGet", []interface{}{__arg}, &res, 0*time.Millisecond)
  6068  	return
  6069  }
  6070  
  6071  func (c TeamsClient) TeamGetMembersByID(ctx context.Context, __arg TeamGetMembersByIDArg) (res []TeamMemberDetails, err error) {
  6072  	err = c.Cli.Call(ctx, "keybase.1.teams.teamGetMembersByID", []interface{}{__arg}, &res, 0*time.Millisecond)
  6073  	return
  6074  }
  6075  
  6076  func (c TeamsClient) TeamListUnverified(ctx context.Context, __arg TeamListUnverifiedArg) (res AnnotatedTeamList, err error) {
  6077  	err = c.Cli.Call(ctx, "keybase.1.teams.teamListUnverified", []interface{}{__arg}, &res, 0*time.Millisecond)
  6078  	return
  6079  }
  6080  
  6081  func (c TeamsClient) TeamListTeammates(ctx context.Context, __arg TeamListTeammatesArg) (res AnnotatedTeamList, err error) {
  6082  	err = c.Cli.Call(ctx, "keybase.1.teams.teamListTeammates", []interface{}{__arg}, &res, 0*time.Millisecond)
  6083  	return
  6084  }
  6085  
  6086  func (c TeamsClient) TeamListVerified(ctx context.Context, __arg TeamListVerifiedArg) (res AnnotatedTeamList, err error) {
  6087  	err = c.Cli.Call(ctx, "keybase.1.teams.teamListVerified", []interface{}{__arg}, &res, 0*time.Millisecond)
  6088  	return
  6089  }
  6090  
  6091  func (c TeamsClient) TeamListSubteamsRecursive(ctx context.Context, __arg TeamListSubteamsRecursiveArg) (res []TeamIDAndName, err error) {
  6092  	err = c.Cli.Call(ctx, "keybase.1.teams.teamListSubteamsRecursive", []interface{}{__arg}, &res, 0*time.Millisecond)
  6093  	return
  6094  }
  6095  
  6096  func (c TeamsClient) TeamAddMember(ctx context.Context, __arg TeamAddMemberArg) (res TeamAddMemberResult, err error) {
  6097  	err = c.Cli.Call(ctx, "keybase.1.teams.teamAddMember", []interface{}{__arg}, &res, 0*time.Millisecond)
  6098  	return
  6099  }
  6100  
  6101  func (c TeamsClient) TeamAddMembers(ctx context.Context, __arg TeamAddMembersArg) (res TeamAddMembersResult, err error) {
  6102  	err = c.Cli.Call(ctx, "keybase.1.teams.teamAddMembers", []interface{}{__arg}, &res, 0*time.Millisecond)
  6103  	return
  6104  }
  6105  
  6106  func (c TeamsClient) TeamAddMembersMultiRole(ctx context.Context, __arg TeamAddMembersMultiRoleArg) (res TeamAddMembersResult, err error) {
  6107  	err = c.Cli.Call(ctx, "keybase.1.teams.teamAddMembersMultiRole", []interface{}{__arg}, &res, 0*time.Millisecond)
  6108  	return
  6109  }
  6110  
  6111  func (c TeamsClient) TeamRemoveMember(ctx context.Context, __arg TeamRemoveMemberArg) (err error) {
  6112  	err = c.Cli.Call(ctx, "keybase.1.teams.teamRemoveMember", []interface{}{__arg}, nil, 0*time.Millisecond)
  6113  	return
  6114  }
  6115  
  6116  func (c TeamsClient) TeamRemoveMembers(ctx context.Context, __arg TeamRemoveMembersArg) (res TeamRemoveMembersResult, err error) {
  6117  	err = c.Cli.Call(ctx, "keybase.1.teams.teamRemoveMembers", []interface{}{__arg}, &res, 0*time.Millisecond)
  6118  	return
  6119  }
  6120  
  6121  func (c TeamsClient) TeamLeave(ctx context.Context, __arg TeamLeaveArg) (err error) {
  6122  	err = c.Cli.Call(ctx, "keybase.1.teams.teamLeave", []interface{}{__arg}, nil, 0*time.Millisecond)
  6123  	return
  6124  }
  6125  
  6126  func (c TeamsClient) TeamEditMember(ctx context.Context, __arg TeamEditMemberArg) (err error) {
  6127  	err = c.Cli.Call(ctx, "keybase.1.teams.teamEditMember", []interface{}{__arg}, nil, 0*time.Millisecond)
  6128  	return
  6129  }
  6130  
  6131  func (c TeamsClient) TeamEditMembers(ctx context.Context, __arg TeamEditMembersArg) (res TeamEditMembersResult, err error) {
  6132  	err = c.Cli.Call(ctx, "keybase.1.teams.teamEditMembers", []interface{}{__arg}, &res, 0*time.Millisecond)
  6133  	return
  6134  }
  6135  
  6136  func (c TeamsClient) TeamGetBotSettings(ctx context.Context, __arg TeamGetBotSettingsArg) (res TeamBotSettings, err error) {
  6137  	err = c.Cli.Call(ctx, "keybase.1.teams.teamGetBotSettings", []interface{}{__arg}, &res, 0*time.Millisecond)
  6138  	return
  6139  }
  6140  
  6141  func (c TeamsClient) TeamSetBotSettings(ctx context.Context, __arg TeamSetBotSettingsArg) (err error) {
  6142  	err = c.Cli.Call(ctx, "keybase.1.teams.teamSetBotSettings", []interface{}{__arg}, nil, 0*time.Millisecond)
  6143  	return
  6144  }
  6145  
  6146  func (c TeamsClient) UntrustedTeamExists(ctx context.Context, teamName TeamName) (res UntrustedTeamExistsResult, err error) {
  6147  	__arg := UntrustedTeamExistsArg{TeamName: teamName}
  6148  	err = c.Cli.Call(ctx, "keybase.1.teams.untrustedTeamExists", []interface{}{__arg}, &res, 0*time.Millisecond)
  6149  	return
  6150  }
  6151  
  6152  func (c TeamsClient) TeamRename(ctx context.Context, __arg TeamRenameArg) (err error) {
  6153  	err = c.Cli.Call(ctx, "keybase.1.teams.teamRename", []interface{}{__arg}, nil, 0*time.Millisecond)
  6154  	return
  6155  }
  6156  
  6157  func (c TeamsClient) TeamAcceptInvite(ctx context.Context, __arg TeamAcceptInviteArg) (err error) {
  6158  	err = c.Cli.Call(ctx, "keybase.1.teams.teamAcceptInvite", []interface{}{__arg}, nil, 0*time.Millisecond)
  6159  	return
  6160  }
  6161  
  6162  func (c TeamsClient) TeamRequestAccess(ctx context.Context, __arg TeamRequestAccessArg) (res TeamRequestAccessResult, err error) {
  6163  	err = c.Cli.Call(ctx, "keybase.1.teams.teamRequestAccess", []interface{}{__arg}, &res, 0*time.Millisecond)
  6164  	return
  6165  }
  6166  
  6167  func (c TeamsClient) TeamAcceptInviteOrRequestAccess(ctx context.Context, __arg TeamAcceptInviteOrRequestAccessArg) (res TeamAcceptOrRequestResult, err error) {
  6168  	err = c.Cli.Call(ctx, "keybase.1.teams.teamAcceptInviteOrRequestAccess", []interface{}{__arg}, &res, 0*time.Millisecond)
  6169  	return
  6170  }
  6171  
  6172  func (c TeamsClient) TeamListRequests(ctx context.Context, __arg TeamListRequestsArg) (res []TeamJoinRequest, err error) {
  6173  	err = c.Cli.Call(ctx, "keybase.1.teams.teamListRequests", []interface{}{__arg}, &res, 0*time.Millisecond)
  6174  	return
  6175  }
  6176  
  6177  func (c TeamsClient) TeamListMyAccessRequests(ctx context.Context, __arg TeamListMyAccessRequestsArg) (res []TeamName, err error) {
  6178  	err = c.Cli.Call(ctx, "keybase.1.teams.teamListMyAccessRequests", []interface{}{__arg}, &res, 0*time.Millisecond)
  6179  	return
  6180  }
  6181  
  6182  func (c TeamsClient) TeamIgnoreRequest(ctx context.Context, __arg TeamIgnoreRequestArg) (err error) {
  6183  	err = c.Cli.Call(ctx, "keybase.1.teams.teamIgnoreRequest", []interface{}{__arg}, nil, 0*time.Millisecond)
  6184  	return
  6185  }
  6186  
  6187  func (c TeamsClient) TeamTreeUnverified(ctx context.Context, __arg TeamTreeUnverifiedArg) (res TeamTreeResult, err error) {
  6188  	err = c.Cli.Call(ctx, "keybase.1.teams.teamTreeUnverified", []interface{}{__arg}, &res, 0*time.Millisecond)
  6189  	return
  6190  }
  6191  
  6192  func (c TeamsClient) TeamGetSubteamsUnverified(ctx context.Context, __arg TeamGetSubteamsUnverifiedArg) (res SubteamListResult, err error) {
  6193  	err = c.Cli.Call(ctx, "keybase.1.teams.teamGetSubteamsUnverified", []interface{}{__arg}, &res, 0*time.Millisecond)
  6194  	return
  6195  }
  6196  
  6197  func (c TeamsClient) TeamDelete(ctx context.Context, __arg TeamDeleteArg) (err error) {
  6198  	err = c.Cli.Call(ctx, "keybase.1.teams.teamDelete", []interface{}{__arg}, nil, 0*time.Millisecond)
  6199  	return
  6200  }
  6201  
  6202  func (c TeamsClient) TeamSetSettings(ctx context.Context, __arg TeamSetSettingsArg) (err error) {
  6203  	err = c.Cli.Call(ctx, "keybase.1.teams.teamSetSettings", []interface{}{__arg}, nil, 0*time.Millisecond)
  6204  	return
  6205  }
  6206  
  6207  func (c TeamsClient) TeamCreateSeitanToken(ctx context.Context, __arg TeamCreateSeitanTokenArg) (res SeitanIKey, err error) {
  6208  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreateSeitanToken", []interface{}{__arg}, &res, 0*time.Millisecond)
  6209  	return
  6210  }
  6211  
  6212  func (c TeamsClient) TeamCreateSeitanTokenV2(ctx context.Context, __arg TeamCreateSeitanTokenV2Arg) (res SeitanIKeyV2, err error) {
  6213  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreateSeitanTokenV2", []interface{}{__arg}, &res, 0*time.Millisecond)
  6214  	return
  6215  }
  6216  
  6217  func (c TeamsClient) TeamCreateSeitanInvitelink(ctx context.Context, __arg TeamCreateSeitanInvitelinkArg) (res Invitelink, err error) {
  6218  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreateSeitanInvitelink", []interface{}{__arg}, &res, 0*time.Millisecond)
  6219  	return
  6220  }
  6221  
  6222  func (c TeamsClient) TeamCreateSeitanInvitelinkWithDuration(ctx context.Context, __arg TeamCreateSeitanInvitelinkWithDurationArg) (res Invitelink, err error) {
  6223  	err = c.Cli.Call(ctx, "keybase.1.teams.teamCreateSeitanInvitelinkWithDuration", []interface{}{__arg}, &res, 0*time.Millisecond)
  6224  	return
  6225  }
  6226  
  6227  func (c TeamsClient) GetInviteLinkDetails(ctx context.Context, inviteID TeamInviteID) (res InviteLinkDetails, err error) {
  6228  	__arg := GetInviteLinkDetailsArg{InviteID: inviteID}
  6229  	err = c.Cli.Call(ctx, "keybase.1.teams.getInviteLinkDetails", []interface{}{__arg}, &res, 0*time.Millisecond)
  6230  	return
  6231  }
  6232  
  6233  func (c TeamsClient) TeamAddEmailsBulk(ctx context.Context, __arg TeamAddEmailsBulkArg) (res BulkRes, err error) {
  6234  	err = c.Cli.Call(ctx, "keybase.1.teams.teamAddEmailsBulk", []interface{}{__arg}, &res, 0*time.Millisecond)
  6235  	return
  6236  }
  6237  
  6238  func (c TeamsClient) LookupImplicitTeam(ctx context.Context, __arg LookupImplicitTeamArg) (res LookupImplicitTeamRes, err error) {
  6239  	err = c.Cli.Call(ctx, "keybase.1.teams.lookupImplicitTeam", []interface{}{__arg}, &res, 0*time.Millisecond)
  6240  	return
  6241  }
  6242  
  6243  func (c TeamsClient) LookupOrCreateImplicitTeam(ctx context.Context, __arg LookupOrCreateImplicitTeamArg) (res LookupImplicitTeamRes, err error) {
  6244  	err = c.Cli.Call(ctx, "keybase.1.teams.lookupOrCreateImplicitTeam", []interface{}{__arg}, &res, 0*time.Millisecond)
  6245  	return
  6246  }
  6247  
  6248  func (c TeamsClient) TeamReAddMemberAfterReset(ctx context.Context, __arg TeamReAddMemberAfterResetArg) (err error) {
  6249  	err = c.Cli.Call(ctx, "keybase.1.teams.teamReAddMemberAfterReset", []interface{}{__arg}, nil, 0*time.Millisecond)
  6250  	return
  6251  }
  6252  
  6253  // * loadTeamPlusApplicationKeys loads team information for applications like KBFS and Chat.
  6254  // * If refreshers are non-empty, then force a refresh of the cache if the requirements
  6255  // * of the refreshers aren't met. If OfflineAvailability is set to BEST_EFFORT, and the
  6256  // * client is currently offline (or thinks it's offline), then the refreshers are overridden
  6257  // * and ignored, and stale data might still be returned.
  6258  func (c TeamsClient) LoadTeamPlusApplicationKeys(ctx context.Context, __arg LoadTeamPlusApplicationKeysArg) (res TeamPlusApplicationKeys, err error) {
  6259  	err = c.Cli.Call(ctx, "keybase.1.teams.loadTeamPlusApplicationKeys", []interface{}{__arg}, &res, 0*time.Millisecond)
  6260  	return
  6261  }
  6262  
  6263  func (c TeamsClient) GetTeamRootID(ctx context.Context, id TeamID) (res TeamID, err error) {
  6264  	__arg := GetTeamRootIDArg{Id: id}
  6265  	err = c.Cli.Call(ctx, "keybase.1.teams.getTeamRootID", []interface{}{__arg}, &res, 0*time.Millisecond)
  6266  	return
  6267  }
  6268  
  6269  func (c TeamsClient) GetTeamShowcase(ctx context.Context, teamID TeamID) (res TeamShowcase, err error) {
  6270  	__arg := GetTeamShowcaseArg{TeamID: teamID}
  6271  	err = c.Cli.Call(ctx, "keybase.1.teams.getTeamShowcase", []interface{}{__arg}, &res, 0*time.Millisecond)
  6272  	return
  6273  }
  6274  
  6275  func (c TeamsClient) GetTeamAndMemberShowcase(ctx context.Context, teamID TeamID) (res TeamAndMemberShowcase, err error) {
  6276  	__arg := GetTeamAndMemberShowcaseArg{TeamID: teamID}
  6277  	err = c.Cli.Call(ctx, "keybase.1.teams.getTeamAndMemberShowcase", []interface{}{__arg}, &res, 0*time.Millisecond)
  6278  	return
  6279  }
  6280  
  6281  func (c TeamsClient) SetTeamShowcase(ctx context.Context, __arg SetTeamShowcaseArg) (err error) {
  6282  	err = c.Cli.Call(ctx, "keybase.1.teams.setTeamShowcase", []interface{}{__arg}, nil, 0*time.Millisecond)
  6283  	return
  6284  }
  6285  
  6286  func (c TeamsClient) SetTeamMemberShowcase(ctx context.Context, __arg SetTeamMemberShowcaseArg) (err error) {
  6287  	err = c.Cli.Call(ctx, "keybase.1.teams.setTeamMemberShowcase", []interface{}{__arg}, nil, 0*time.Millisecond)
  6288  	return
  6289  }
  6290  
  6291  func (c TeamsClient) CanUserPerform(ctx context.Context, name string) (res TeamOperation, err error) {
  6292  	__arg := CanUserPerformArg{Name: name}
  6293  	err = c.Cli.Call(ctx, "keybase.1.teams.canUserPerform", []interface{}{__arg}, &res, 0*time.Millisecond)
  6294  	return
  6295  }
  6296  
  6297  func (c TeamsClient) TeamRotateKey(ctx context.Context, __arg TeamRotateKeyArg) (err error) {
  6298  	err = c.Cli.Call(ctx, "keybase.1.teams.teamRotateKey", []interface{}{__arg}, nil, 0*time.Millisecond)
  6299  	return
  6300  }
  6301  
  6302  func (c TeamsClient) TeamDebug(ctx context.Context, teamID TeamID) (res TeamDebugRes, err error) {
  6303  	__arg := TeamDebugArg{TeamID: teamID}
  6304  	err = c.Cli.Call(ctx, "keybase.1.teams.teamDebug", []interface{}{__arg}, &res, 0*time.Millisecond)
  6305  	return
  6306  }
  6307  
  6308  func (c TeamsClient) GetTarsDisabled(ctx context.Context, teamID TeamID) (res bool, err error) {
  6309  	__arg := GetTarsDisabledArg{TeamID: teamID}
  6310  	err = c.Cli.Call(ctx, "keybase.1.teams.getTarsDisabled", []interface{}{__arg}, &res, 0*time.Millisecond)
  6311  	return
  6312  }
  6313  
  6314  func (c TeamsClient) SetTarsDisabled(ctx context.Context, __arg SetTarsDisabledArg) (err error) {
  6315  	err = c.Cli.Call(ctx, "keybase.1.teams.setTarsDisabled", []interface{}{__arg}, nil, 0*time.Millisecond)
  6316  	return
  6317  }
  6318  
  6319  func (c TeamsClient) TeamProfileAddList(ctx context.Context, __arg TeamProfileAddListArg) (res []TeamProfileAddEntry, err error) {
  6320  	err = c.Cli.Call(ctx, "keybase.1.teams.teamProfileAddList", []interface{}{__arg}, &res, 0*time.Millisecond)
  6321  	return
  6322  }
  6323  
  6324  func (c TeamsClient) UploadTeamAvatar(ctx context.Context, __arg UploadTeamAvatarArg) (err error) {
  6325  	err = c.Cli.Call(ctx, "keybase.1.teams.uploadTeamAvatar", []interface{}{__arg}, nil, 0*time.Millisecond)
  6326  	return
  6327  }
  6328  
  6329  func (c TeamsClient) TryDecryptWithTeamKey(ctx context.Context, __arg TryDecryptWithTeamKeyArg) (res []byte, err error) {
  6330  	err = c.Cli.Call(ctx, "keybase.1.teams.tryDecryptWithTeamKey", []interface{}{__arg}, &res, 0*time.Millisecond)
  6331  	return
  6332  }
  6333  
  6334  // FindNextMerkleRootAfterTeamRemoval finds the first Merkle root that contains the user being
  6335  // removed from the team at that given seqno in the team's chain. You should pass in a previous
  6336  // Merkle root as a starting point for the binary search.
  6337  func (c TeamsClient) FindNextMerkleRootAfterTeamRemoval(ctx context.Context, __arg FindNextMerkleRootAfterTeamRemovalArg) (res NextMerkleRootRes, err error) {
  6338  	err = c.Cli.Call(ctx, "keybase.1.teams.findNextMerkleRootAfterTeamRemoval", []interface{}{__arg}, &res, 0*time.Millisecond)
  6339  	return
  6340  }
  6341  
  6342  // FindNextMerkleRootAfterTeamRemovalBySigningKey find the first Merkle root that contains the user
  6343  // with the given signing key being removed from the given team. If there are several such instances,
  6344  // we will return just the last one. When anyRoleAllowed is false, the team removal is any drop in
  6345  // permissions from Writer (or above) to Reader (or below).
  6346  func (c TeamsClient) FindNextMerkleRootAfterTeamRemovalBySigningKey(ctx context.Context, __arg FindNextMerkleRootAfterTeamRemovalBySigningKeyArg) (res NextMerkleRootRes, err error) {
  6347  	err = c.Cli.Call(ctx, "keybase.1.teams.findNextMerkleRootAfterTeamRemovalBySigningKey", []interface{}{__arg}, &res, 0*time.Millisecond)
  6348  	return
  6349  }
  6350  
  6351  // ProfileTeamLoad loads a team and then throws it on the ground, for the purposes of profiling
  6352  // the team load machinery.
  6353  func (c TeamsClient) ProfileTeamLoad(ctx context.Context, arg LoadTeamArg) (res ProfileTeamLoadRes, err error) {
  6354  	__arg := ProfileTeamLoadArg{Arg: arg}
  6355  	err = c.Cli.Call(ctx, "keybase.1.teams.profileTeamLoad", []interface{}{__arg}, &res, 0*time.Millisecond)
  6356  	return
  6357  }
  6358  
  6359  // Gets a TeamID from a team name string. Returns an error if the
  6360  // current user can't read the team.
  6361  func (c TeamsClient) GetTeamID(ctx context.Context, teamName string) (res TeamID, err error) {
  6362  	__arg := GetTeamIDArg{TeamName: teamName}
  6363  	err = c.Cli.Call(ctx, "keybase.1.teams.getTeamID", []interface{}{__arg}, &res, 0*time.Millisecond)
  6364  	return
  6365  }
  6366  
  6367  // Gets a TeamName from a team id string. Returns an error if the
  6368  // current user can't read the team.
  6369  func (c TeamsClient) GetTeamName(ctx context.Context, teamID TeamID) (res TeamName, err error) {
  6370  	__arg := GetTeamNameArg{TeamID: teamID}
  6371  	err = c.Cli.Call(ctx, "keybase.1.teams.getTeamName", []interface{}{__arg}, &res, 0*time.Millisecond)
  6372  	return
  6373  }
  6374  
  6375  func (c TeamsClient) Ftl(ctx context.Context, arg FastTeamLoadArg) (res FastTeamLoadRes, err error) {
  6376  	__arg := FtlArg{Arg: arg}
  6377  	err = c.Cli.Call(ctx, "keybase.1.teams.ftl", []interface{}{__arg}, &res, 0*time.Millisecond)
  6378  	return
  6379  }
  6380  
  6381  func (c TeamsClient) GetTeamRoleMap(ctx context.Context) (res TeamRoleMapAndVersion, err error) {
  6382  	err = c.Cli.Call(ctx, "keybase.1.teams.getTeamRoleMap", []interface{}{GetTeamRoleMapArg{}}, &res, 0*time.Millisecond)
  6383  	return
  6384  }
  6385  
  6386  func (c TeamsClient) GetAnnotatedTeam(ctx context.Context, teamID TeamID) (res AnnotatedTeam, err error) {
  6387  	__arg := GetAnnotatedTeamArg{TeamID: teamID}
  6388  	err = c.Cli.Call(ctx, "keybase.1.teams.getAnnotatedTeam", []interface{}{__arg}, &res, 0*time.Millisecond)
  6389  	return
  6390  }
  6391  
  6392  func (c TeamsClient) GetAnnotatedTeamByName(ctx context.Context, teamName string) (res AnnotatedTeam, err error) {
  6393  	__arg := GetAnnotatedTeamByNameArg{TeamName: teamName}
  6394  	err = c.Cli.Call(ctx, "keybase.1.teams.getAnnotatedTeamByName", []interface{}{__arg}, &res, 0*time.Millisecond)
  6395  	return
  6396  }
  6397  
  6398  func (c TeamsClient) LoadTeamTreeMembershipsAsync(ctx context.Context, __arg LoadTeamTreeMembershipsAsyncArg) (res TeamTreeInitial, err error) {
  6399  	err = c.Cli.Call(ctx, "keybase.1.teams.loadTeamTreeMembershipsAsync", []interface{}{__arg}, &res, 0*time.Millisecond)
  6400  	return
  6401  }
  6402  
  6403  func (c TeamsClient) FindAssertionsInTeamNoResolve(ctx context.Context, __arg FindAssertionsInTeamNoResolveArg) (res []string, err error) {
  6404  	err = c.Cli.Call(ctx, "keybase.1.teams.findAssertionsInTeamNoResolve", []interface{}{__arg}, &res, 0*time.Millisecond)
  6405  	return
  6406  }