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