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

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: PlanAssignment
     3  // DO NOT EDIT!!!
     4  
     5  package plan_assignment
     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  	iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project"
    15  	accepted_plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/accepted_plan"
    16  	common "github.com/cloudwan/edgelq-sdk/limits/resources/v1/common"
    17  	plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan"
    18  	meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    19  	meta "github.com/cloudwan/goten-sdk/types/meta"
    20  )
    21  
    22  // make sure we're using proto imports
    23  var (
    24  	_ = &iam_organization.Organization{}
    25  	_ = &iam_project.Project{}
    26  	_ = &accepted_plan.AcceptedPlan{}
    27  	_ = &common.RegionalPlanAssignment{}
    28  	_ = &plan.Plan{}
    29  	_ = &meta_service.Service{}
    30  	_ = &meta.Meta{}
    31  )
    32  
    33  const (
    34  	NamePattern_Service      = "services/{service}/planAssignments/{plan_assignment}"
    35  	NamePattern_Project      = "projects/{project}/planAssignments/{plan_assignment}"
    36  	NamePattern_Organization = "organizations/{organization}/planAssignments/{plan_assignment}"
    37  )
    38  
    39  type NamePattern struct {
    40  	Pattern gotenresource.NamePattern `firestore:"pattern"`
    41  }
    42  
    43  type NameBuilder struct {
    44  	nameObj Name
    45  }
    46  
    47  func NewNameBuilder() *NameBuilder {
    48  	return &NameBuilder{
    49  		nameObj: Name{
    50  			PlanAssignmentId: gotenresource.WildcardId,
    51  			ParentName: ParentName{
    52  				NamePattern: NamePattern{
    53  					// Set default pattern - just first.
    54  					Pattern: NamePattern_Service,
    55  				},
    56  			},
    57  		},
    58  	}
    59  }
    60  
    61  func (b *NameBuilder) Name() *Name {
    62  	copied := b.nameObj
    63  	return &copied
    64  }
    65  
    66  func (b *NameBuilder) Reference() *Reference {
    67  	return b.nameObj.AsReference()
    68  }
    69  
    70  func (b *NameBuilder) Parent() *ParentName {
    71  	copied := b.nameObj.ParentName
    72  	return &copied
    73  }
    74  
    75  func (b *NameBuilder) ParentReference() *ParentReference {
    76  	return b.nameObj.ParentName.AsReference()
    77  }
    78  
    79  func (b *NameBuilder) SetId(id string) *NameBuilder {
    80  	b.nameObj.PlanAssignmentId = id
    81  	return b
    82  }
    83  
    84  func (b *NameBuilder) SetService(parent *meta_service.Name) *NameBuilder {
    85  	parentName := &b.nameObj.ParentName
    86  
    87  	switch parent.Pattern {
    88  	case meta_service.NamePattern_Nil:
    89  		parentName.Pattern = NamePattern_Service
    90  	}
    91  	parentName.ServiceId = parent.ServiceId
    92  	return b
    93  }
    94  
    95  func (b *NameBuilder) SetProject(parent *iam_project.Name) *NameBuilder {
    96  	parentName := &b.nameObj.ParentName
    97  
    98  	switch parent.Pattern {
    99  	case iam_project.NamePattern_Nil:
   100  		parentName.Pattern = NamePattern_Project
   101  	}
   102  	parentName.ProjectId = parent.ProjectId
   103  	return b
   104  }
   105  
   106  func (b *NameBuilder) SetOrganization(parent *iam_organization.Name) *NameBuilder {
   107  	parentName := &b.nameObj.ParentName
   108  
   109  	switch parent.Pattern {
   110  	case iam_organization.NamePattern_Nil:
   111  		parentName.Pattern = NamePattern_Organization
   112  	}
   113  	parentName.OrganizationId = parent.OrganizationId
   114  	return b
   115  }
   116  
   117  func (b *NameBuilder) SetServiceId(id string) *NameBuilder {
   118  	parentName := &b.nameObj.ParentName
   119  	parentName.ServiceId = id
   120  
   121  	// Set pattern if something matches for this set of IDs
   122  	if parentName.ServiceId != "" {
   123  		parentName.Pattern = NamePattern_Service
   124  	}
   125  	return b
   126  }
   127  
   128  func (b *NameBuilder) SetProjectId(id string) *NameBuilder {
   129  	parentName := &b.nameObj.ParentName
   130  	parentName.ProjectId = id
   131  
   132  	// Set pattern if something matches for this set of IDs
   133  	if parentName.ProjectId != "" {
   134  		parentName.Pattern = NamePattern_Project
   135  	}
   136  	return b
   137  }
   138  
   139  func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder {
   140  	parentName := &b.nameObj.ParentName
   141  	parentName.OrganizationId = id
   142  
   143  	// Set pattern if something matches for this set of IDs
   144  	if parentName.OrganizationId != "" {
   145  		parentName.Pattern = NamePattern_Organization
   146  	}
   147  	return b
   148  }