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