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

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: LimitPool
     3  // DO NOT EDIT!!!
     4  
     5  package limit_pool
     6  
     7  import (
     8  	gotenresource "github.com/cloudwan/goten-sdk/runtime/resource"
     9  )
    10  
    11  // proto imports
    12  import (
    13  	iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization"
    14  	meta_resource "github.com/cloudwan/goten-sdk/meta-service/resources/v1/resource"
    15  	meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    16  	meta "github.com/cloudwan/goten-sdk/types/meta"
    17  )
    18  
    19  // make sure we're using proto imports
    20  var (
    21  	_ = &iam_organization.Organization{}
    22  	_ = &meta_resource.Resource{}
    23  	_ = &meta_service.Service{}
    24  	_ = &meta.Meta{}
    25  )
    26  
    27  const (
    28  	NamePattern_Service      = "services/{service}/limitPools/{limit_pool}"
    29  	NamePattern_Organization = "organizations/{organization}/limitPools/{limit_pool}"
    30  )
    31  
    32  type NamePattern struct {
    33  	Pattern gotenresource.NamePattern `firestore:"pattern"`
    34  }
    35  
    36  type NameBuilder struct {
    37  	nameObj Name
    38  }
    39  
    40  func NewNameBuilder() *NameBuilder {
    41  	return &NameBuilder{
    42  		nameObj: Name{
    43  			LimitPoolId: gotenresource.WildcardId,
    44  			ParentName: ParentName{
    45  				NamePattern: NamePattern{
    46  					// Set default pattern - just first.
    47  					Pattern: NamePattern_Service,
    48  				},
    49  			},
    50  		},
    51  	}
    52  }
    53  
    54  func (b *NameBuilder) Name() *Name {
    55  	copied := b.nameObj
    56  	return &copied
    57  }
    58  
    59  func (b *NameBuilder) Reference() *Reference {
    60  	return b.nameObj.AsReference()
    61  }
    62  
    63  func (b *NameBuilder) Parent() *ParentName {
    64  	copied := b.nameObj.ParentName
    65  	return &copied
    66  }
    67  
    68  func (b *NameBuilder) ParentReference() *ParentReference {
    69  	return b.nameObj.ParentName.AsReference()
    70  }
    71  
    72  func (b *NameBuilder) SetId(id string) *NameBuilder {
    73  	b.nameObj.LimitPoolId = id
    74  	return b
    75  }
    76  
    77  func (b *NameBuilder) SetService(parent *meta_service.Name) *NameBuilder {
    78  	parentName := &b.nameObj.ParentName
    79  
    80  	switch parent.Pattern {
    81  	case meta_service.NamePattern_Nil:
    82  		parentName.Pattern = NamePattern_Service
    83  	}
    84  	parentName.ServiceId = parent.ServiceId
    85  	return b
    86  }
    87  
    88  func (b *NameBuilder) SetOrganization(parent *iam_organization.Name) *NameBuilder {
    89  	parentName := &b.nameObj.ParentName
    90  
    91  	switch parent.Pattern {
    92  	case iam_organization.NamePattern_Nil:
    93  		parentName.Pattern = NamePattern_Organization
    94  	}
    95  	parentName.OrganizationId = parent.OrganizationId
    96  	return b
    97  }
    98  
    99  func (b *NameBuilder) SetServiceId(id string) *NameBuilder {
   100  	parentName := &b.nameObj.ParentName
   101  	parentName.ServiceId = id
   102  
   103  	// Set pattern if something matches for this set of IDs
   104  	if parentName.ServiceId != "" {
   105  		parentName.Pattern = NamePattern_Service
   106  	}
   107  	return b
   108  }
   109  
   110  func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder {
   111  	parentName := &b.nameObj.ParentName
   112  	parentName.OrganizationId = id
   113  
   114  	// Set pattern if something matches for this set of IDs
   115  	if parentName.OrganizationId != "" {
   116  		parentName.Pattern = NamePattern_Organization
   117  	}
   118  	return b
   119  }