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  	_ = &timestamppb.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  }