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