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