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