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