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