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