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