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