github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1alpha2/os_image_profile/os_image_profile.pb.namebuilder.go (about) 1 // Code generated by protoc-gen-goten-resource 2 // Resource: OsImageProfile 3 // DO NOT EDIT!!! 4 5 package os_image_profile 6 7 import ( 8 gotenresource "github.com/cloudwan/goten-sdk/runtime/resource" 9 ) 10 11 // proto imports 12 import ( 13 device_type "github.com/cloudwan/edgelq-sdk/devices/resources/v1alpha2/device_type" 14 project "github.com/cloudwan/edgelq-sdk/devices/resources/v1alpha2/project" 15 meta "github.com/cloudwan/goten-sdk/types/meta" 16 ) 17 18 // make sure we're using proto imports 19 var ( 20 _ = &device_type.DeviceType{} 21 _ = &project.Project{} 22 _ = &meta.Meta{} 23 ) 24 25 const ( 26 NamePattern_Project_Region = "projects/{project}/regions/{region}/osImageProfiles/{os_image_profile}" 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 OsImageProfileId: gotenresource.WildcardId, 41 ParentName: ParentName{ 42 NamePattern: NamePattern{ 43 // Set default pattern - just first. 44 Pattern: NamePattern_Project_Region, 45 }, 46 RegionId: gotenresource.WildcardId, 47 }, 48 }, 49 } 50 } 51 52 func (b *NameBuilder) Name() *Name { 53 copied := b.nameObj 54 return &copied 55 } 56 57 func (b *NameBuilder) Reference() *Reference { 58 return b.nameObj.AsReference() 59 } 60 61 func (b *NameBuilder) Parent() *ParentName { 62 copied := b.nameObj.ParentName 63 return &copied 64 } 65 66 func (b *NameBuilder) ParentReference() *ParentReference { 67 return b.nameObj.ParentName.AsReference() 68 } 69 70 func (b *NameBuilder) SetId(id string) *NameBuilder { 71 b.nameObj.OsImageProfileId = id 72 return b 73 } 74 75 func (b *NameBuilder) SetProject(parent *project.Name) *NameBuilder { 76 parentName := &b.nameObj.ParentName 77 78 switch parent.Pattern { 79 case project.NamePattern_Nil: 80 parentName.Pattern = NamePattern_Project_Region 81 } 82 parentName.ProjectId = parent.ProjectId 83 return b 84 } 85 86 func (b *NameBuilder) SetProjectId(id string) *NameBuilder { 87 parentName := &b.nameObj.ParentName 88 parentName.ProjectId = id 89 90 // Set pattern if something matches for this set of IDs 91 if parentName.ProjectId != "" && parentName.RegionId != "" { 92 parentName.Pattern = NamePattern_Project_Region 93 } 94 return b 95 } 96 97 func (b *NameBuilder) SetRegionId(id string) *NameBuilder { 98 parentName := &b.nameObj.ParentName 99 parentName.RegionId = id 100 101 // Set pattern if something matches for this set of IDs 102 if parentName.ProjectId != "" && parentName.RegionId != "" { 103 parentName.Pattern = NamePattern_Project_Region 104 } 105 return b 106 }