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

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: Plan
     3  // DO NOT EDIT!!!
     4  
     5  package plan
     6  
     7  import (
     8  	gotenresource "github.com/cloudwan/goten-sdk/runtime/resource"
     9  )
    10  
    11  // proto imports
    12  import (
    13  	iam_iam_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1/common"
    14  	iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization"
    15  	meta_resource "github.com/cloudwan/goten-sdk/meta-service/resources/v1/resource"
    16  	meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    17  	meta "github.com/cloudwan/goten-sdk/types/meta"
    18  )
    19  
    20  // make sure we're using proto imports
    21  var (
    22  	_ = &iam_iam_common.PCR{}
    23  	_ = &iam_organization.Organization{}
    24  	_ = &meta_resource.Resource{}
    25  	_ = &meta_service.Service{}
    26  	_ = &meta.Meta{}
    27  )
    28  
    29  const (
    30  	NamePattern_Service      = "services/{service}/plans/{plan}"
    31  	NamePattern_Organization = "organizations/{organization}/plans/{plan}"
    32  )
    33  
    34  type NamePattern struct {
    35  	Pattern gotenresource.NamePattern `firestore:"pattern"`
    36  }
    37  
    38  type NameBuilder struct {
    39  	nameObj Name
    40  }
    41  
    42  func NewNameBuilder() *NameBuilder {
    43  	return &NameBuilder{
    44  		nameObj: Name{
    45  			PlanId: gotenresource.WildcardId,
    46  			ParentName: ParentName{
    47  				NamePattern: NamePattern{
    48  					// Set default pattern - just first.
    49  					Pattern: NamePattern_Service,
    50  				},
    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.PlanId = id
    76  	return b
    77  }
    78  
    79  func (b *NameBuilder) SetService(parent *meta_service.Name) *NameBuilder {
    80  	parentName := &b.nameObj.ParentName
    81  
    82  	switch parent.Pattern {
    83  	case meta_service.NamePattern_Nil:
    84  		parentName.Pattern = NamePattern_Service
    85  	}
    86  	parentName.ServiceId = parent.ServiceId
    87  	return b
    88  }
    89  
    90  func (b *NameBuilder) SetOrganization(parent *iam_organization.Name) *NameBuilder {
    91  	parentName := &b.nameObj.ParentName
    92  
    93  	switch parent.Pattern {
    94  	case iam_organization.NamePattern_Nil:
    95  		parentName.Pattern = NamePattern_Organization
    96  	}
    97  	parentName.OrganizationId = parent.OrganizationId
    98  	return b
    99  }
   100  
   101  func (b *NameBuilder) SetServiceId(id string) *NameBuilder {
   102  	parentName := &b.nameObj.ParentName
   103  	parentName.ServiceId = id
   104  
   105  	// Set pattern if something matches for this set of IDs
   106  	if parentName.ServiceId != "" {
   107  		parentName.Pattern = NamePattern_Service
   108  	}
   109  	return b
   110  }
   111  
   112  func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder {
   113  	parentName := &b.nameObj.ParentName
   114  	parentName.OrganizationId = id
   115  
   116  	// Set pattern if something matches for this set of IDs
   117  	if parentName.OrganizationId != "" {
   118  		parentName.Pattern = NamePattern_Organization
   119  	}
   120  	return b
   121  }