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