github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1/customized_image/customized_image.pb.namebuilder.go (about) 1 // Code generated by protoc-gen-goten-resource 2 // Resource: CustomizedImage 3 // DO NOT EDIT!!! 4 5 package customized_image 6 7 import ( 8 gotenresource "github.com/cloudwan/goten-sdk/runtime/resource" 9 ) 10 11 // proto imports 12 import ( 13 os_version "github.com/cloudwan/edgelq-sdk/devices/resources/v1/os_version" 14 project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project" 15 iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account" 16 iam_service_account_key "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account_key" 17 meta "github.com/cloudwan/goten-sdk/types/meta" 18 ) 19 20 // make sure we're using proto imports 21 var ( 22 _ = &os_version.OsVersion{} 23 _ = &project.Project{} 24 _ = &iam_service_account.ServiceAccount{} 25 _ = &iam_service_account_key.ServiceAccountKey{} 26 _ = &meta.Meta{} 27 ) 28 29 const ( 30 NamePattern_Project_Region = "projects/{project}/regions/{region}/customizedImages/{customized_image}" 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 CustomizedImageId: gotenresource.WildcardId, 45 ParentName: ParentName{ 46 NamePattern: NamePattern{ 47 // Set default pattern - just first. 48 Pattern: NamePattern_Project_Region, 49 }, 50 RegionId: gotenresource.WildcardId, 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.CustomizedImageId = id 76 return b 77 } 78 79 func (b *NameBuilder) SetProject(parent *project.Name) *NameBuilder { 80 parentName := &b.nameObj.ParentName 81 82 switch parent.Pattern { 83 case project.NamePattern_Nil: 84 parentName.Pattern = NamePattern_Project_Region 85 } 86 parentName.ProjectId = parent.ProjectId 87 return b 88 } 89 90 func (b *NameBuilder) SetProjectId(id string) *NameBuilder { 91 parentName := &b.nameObj.ParentName 92 parentName.ProjectId = id 93 94 // Set pattern if something matches for this set of IDs 95 if parentName.ProjectId != "" && parentName.RegionId != "" { 96 parentName.Pattern = NamePattern_Project_Region 97 } 98 return b 99 } 100 101 func (b *NameBuilder) SetRegionId(id string) *NameBuilder { 102 parentName := &b.nameObj.ParentName 103 parentName.RegionId = id 104 105 // Set pattern if something matches for this set of IDs 106 if parentName.ProjectId != "" && parentName.RegionId != "" { 107 parentName.Pattern = NamePattern_Project_Region 108 } 109 return b 110 }