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

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