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

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