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

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