github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1/tpm_attestation_cert/tpm_attestation_cert.pb.namebuilder.go (about)

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: TpmAttestationCert
     3  // DO NOT EDIT!!!
     4  
     5  package tpm_attestation_cert
     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/v1/project"
    14  	meta "github.com/cloudwan/goten-sdk/types/meta"
    15  )
    16  
    17  // make sure we're using proto imports
    18  var (
    19  	_ = &project.Project{}
    20  	_ = &meta.Meta{}
    21  )
    22  
    23  const (
    24  	NamePattern_Nil     = "tpmAttestationCerts/{tpm_attestation_cert}"
    25  	NamePattern_Project = "projects/{project}/tpmAttestationCerts/{tpm_attestation_cert}"
    26  )
    27  
    28  type NamePattern struct {
    29  	Pattern gotenresource.NamePattern `firestore:"pattern"`
    30  }
    31  
    32  type NameBuilder struct {
    33  	nameObj Name
    34  }
    35  
    36  func NewNameBuilder() *NameBuilder {
    37  	return &NameBuilder{
    38  		nameObj: Name{
    39  			TpmAttestationCertId: gotenresource.WildcardId,
    40  			ParentName: ParentName{
    41  				NamePattern: NamePattern{
    42  					// Set default pattern - just first.
    43  					Pattern: NamePattern_Nil,
    44  				},
    45  			},
    46  		},
    47  	}
    48  }
    49  
    50  func (b *NameBuilder) Name() *Name {
    51  	copied := b.nameObj
    52  	return &copied
    53  }
    54  
    55  func (b *NameBuilder) Reference() *Reference {
    56  	return b.nameObj.AsReference()
    57  }
    58  
    59  func (b *NameBuilder) Parent() *ParentName {
    60  	copied := b.nameObj.ParentName
    61  	return &copied
    62  }
    63  
    64  func (b *NameBuilder) ParentReference() *ParentReference {
    65  	return b.nameObj.ParentName.AsReference()
    66  }
    67  
    68  func (b *NameBuilder) SetId(id string) *NameBuilder {
    69  	b.nameObj.TpmAttestationCertId = id
    70  	return b
    71  }
    72  
    73  func (b *NameBuilder) SetProject(parent *project.Name) *NameBuilder {
    74  	parentName := &b.nameObj.ParentName
    75  
    76  	switch parent.Pattern {
    77  	case project.NamePattern_Nil:
    78  		parentName.Pattern = NamePattern_Project
    79  	}
    80  	parentName.ProjectId = parent.ProjectId
    81  	return b
    82  }
    83  
    84  func (b *NameBuilder) SetProjectId(id string) *NameBuilder {
    85  	parentName := &b.nameObj.ParentName
    86  	parentName.ProjectId = id
    87  
    88  	// Set pattern if something matches for this set of IDs
    89  	if parentName.ProjectId != "" {
    90  		parentName.Pattern = NamePattern_Project
    91  	}
    92  	return b
    93  }