github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1alpha2/group_member/group_member.pb.namebuilder.go (about) 1 // Code generated by protoc-gen-goten-resource 2 // Resource: GroupMember 3 // DO NOT EDIT!!! 4 5 package group_member 6 7 import ( 8 gotenresource "github.com/cloudwan/goten-sdk/runtime/resource" 9 ) 10 11 // proto imports 12 import ( 13 group "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/group" 14 meta "github.com/cloudwan/goten-sdk/types/meta" 15 ) 16 17 // make sure we're using proto imports 18 var ( 19 _ = &group.Group{} 20 _ = &meta.Meta{} 21 ) 22 23 const ( 24 NamePattern_Group = "groups/{group}/groupMembers/{group_member}" 25 NamePattern_Project_Group = "projects/{project}/groups/{group}/groupMembers/{group_member}" 26 NamePattern_Organization_Group = "organizations/{organization}/groups/{group}/groupMembers/{group_member}" 27 ) 28 29 type NamePattern struct { 30 Pattern gotenresource.NamePattern `firestore:"pattern"` 31 } 32 33 type NameBuilder struct { 34 nameObj Name 35 } 36 37 func NewNameBuilder() *NameBuilder { 38 return &NameBuilder{ 39 nameObj: Name{ 40 GroupMemberId: gotenresource.WildcardId, 41 ParentName: ParentName{ 42 NamePattern: NamePattern{ 43 // Set default pattern - just first. 44 Pattern: NamePattern_Group, 45 }, 46 }, 47 }, 48 } 49 } 50 51 func (b *NameBuilder) Name() *Name { 52 copied := b.nameObj 53 return &copied 54 } 55 56 func (b *NameBuilder) Reference() *Reference { 57 return b.nameObj.AsReference() 58 } 59 60 func (b *NameBuilder) Parent() *ParentName { 61 copied := b.nameObj.ParentName 62 return &copied 63 } 64 65 func (b *NameBuilder) ParentReference() *ParentReference { 66 return b.nameObj.ParentName.AsReference() 67 } 68 69 func (b *NameBuilder) SetId(id string) *NameBuilder { 70 b.nameObj.GroupMemberId = id 71 return b 72 } 73 74 func (b *NameBuilder) SetGroup(parent *group.Name) *NameBuilder { 75 parentName := &b.nameObj.ParentName 76 77 switch parent.Pattern { 78 case group.NamePattern_Nil: 79 parentName.Pattern = NamePattern_Group 80 case group.NamePattern_Project: 81 parentName.Pattern = NamePattern_Project_Group 82 case group.NamePattern_Organization: 83 parentName.Pattern = NamePattern_Organization_Group 84 } 85 parentName.GroupId = parent.GroupId 86 parentName.ProjectId = parent.ProjectId 87 parentName.OrganizationId = parent.OrganizationId 88 return b 89 } 90 91 func (b *NameBuilder) SetGroupId(id string) *NameBuilder { 92 parentName := &b.nameObj.ParentName 93 parentName.GroupId = id 94 95 // Set pattern if something matches for this set of IDs 96 if parentName.GroupId != "" { 97 parentName.Pattern = NamePattern_Group 98 } 99 if parentName.ProjectId != "" && parentName.GroupId != "" { 100 parentName.Pattern = NamePattern_Project_Group 101 } 102 if parentName.OrganizationId != "" && parentName.GroupId != "" { 103 parentName.Pattern = NamePattern_Organization_Group 104 } 105 return b 106 } 107 108 func (b *NameBuilder) SetProjectId(id string) *NameBuilder { 109 parentName := &b.nameObj.ParentName 110 parentName.ProjectId = id 111 112 // Set pattern if something matches for this set of IDs 113 if parentName.ProjectId != "" && parentName.GroupId != "" { 114 parentName.Pattern = NamePattern_Project_Group 115 } 116 return b 117 } 118 119 func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder { 120 parentName := &b.nameObj.ParentName 121 parentName.OrganizationId = id 122 123 // Set pattern if something matches for this set of IDs 124 if parentName.OrganizationId != "" && parentName.GroupId != "" { 125 parentName.Pattern = NamePattern_Organization_Group 126 } 127 return b 128 }