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