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