github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1/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/v1/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 NamePattern_Service_Group = "services/{service}/groups/{group}/groupMembers/{group_member}" 28 ) 29 30 type NamePattern struct { 31 Pattern gotenresource.NamePattern `firestore:"pattern"` 32 } 33 34 type NameBuilder struct { 35 nameObj Name 36 } 37 38 func NewNameBuilder() *NameBuilder { 39 return &NameBuilder{ 40 nameObj: Name{ 41 GroupMemberId: gotenresource.WildcardId, 42 ParentName: ParentName{ 43 NamePattern: NamePattern{ 44 // Set default pattern - just first. 45 Pattern: NamePattern_Group, 46 }, 47 }, 48 }, 49 } 50 } 51 52 func (b *NameBuilder) Name() *Name { 53 copied := b.nameObj 54 return &copied 55 } 56 57 func (b *NameBuilder) Reference() *Reference { 58 return b.nameObj.AsReference() 59 } 60 61 func (b *NameBuilder) Parent() *ParentName { 62 copied := b.nameObj.ParentName 63 return &copied 64 } 65 66 func (b *NameBuilder) ParentReference() *ParentReference { 67 return b.nameObj.ParentName.AsReference() 68 } 69 70 func (b *NameBuilder) SetId(id string) *NameBuilder { 71 b.nameObj.GroupMemberId = id 72 return b 73 } 74 75 func (b *NameBuilder) SetGroup(parent *group.Name) *NameBuilder { 76 parentName := &b.nameObj.ParentName 77 78 switch parent.Pattern { 79 case group.NamePattern_Nil: 80 parentName.Pattern = NamePattern_Group 81 case group.NamePattern_Project: 82 parentName.Pattern = NamePattern_Project_Group 83 case group.NamePattern_Organization: 84 parentName.Pattern = NamePattern_Organization_Group 85 case group.NamePattern_Service: 86 parentName.Pattern = NamePattern_Service_Group 87 } 88 parentName.GroupId = parent.GroupId 89 parentName.ProjectId = parent.ProjectId 90 parentName.OrganizationId = parent.OrganizationId 91 parentName.ServiceId = parent.ServiceId 92 return b 93 } 94 95 func (b *NameBuilder) SetGroupId(id string) *NameBuilder { 96 parentName := &b.nameObj.ParentName 97 parentName.GroupId = id 98 99 // Set pattern if something matches for this set of IDs 100 if parentName.GroupId != "" { 101 parentName.Pattern = NamePattern_Group 102 } 103 if parentName.ProjectId != "" && parentName.GroupId != "" { 104 parentName.Pattern = NamePattern_Project_Group 105 } 106 if parentName.OrganizationId != "" && parentName.GroupId != "" { 107 parentName.Pattern = NamePattern_Organization_Group 108 } 109 if parentName.ServiceId != "" && parentName.GroupId != "" { 110 parentName.Pattern = NamePattern_Service_Group 111 } 112 return b 113 } 114 115 func (b *NameBuilder) SetProjectId(id string) *NameBuilder { 116 parentName := &b.nameObj.ParentName 117 parentName.ProjectId = id 118 119 // Set pattern if something matches for this set of IDs 120 if parentName.ProjectId != "" && parentName.GroupId != "" { 121 parentName.Pattern = NamePattern_Project_Group 122 } 123 return b 124 } 125 126 func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder { 127 parentName := &b.nameObj.ParentName 128 parentName.OrganizationId = id 129 130 // Set pattern if something matches for this set of IDs 131 if parentName.OrganizationId != "" && parentName.GroupId != "" { 132 parentName.Pattern = NamePattern_Organization_Group 133 } 134 return b 135 } 136 137 func (b *NameBuilder) SetServiceId(id string) *NameBuilder { 138 parentName := &b.nameObj.ParentName 139 parentName.ServiceId = id 140 141 // Set pattern if something matches for this set of IDs 142 if parentName.ServiceId != "" && parentName.GroupId != "" { 143 parentName.Pattern = NamePattern_Service_Group 144 } 145 return b 146 }