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

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