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

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: Group
     3  // DO NOT EDIT!!!
     4  
     5  package group
     6  
     7  import (
     8  	gotenresource "github.com/cloudwan/goten-sdk/runtime/resource"
     9  )
    10  
    11  // proto imports
    12  import (
    13  	organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization"
    14  	project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project"
    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  	_ = &organization.Organization{}
    22  	_ = &project.Project{}
    23  	_ = &meta_service.Service{}
    24  	_ = &meta.Meta{}
    25  )
    26  
    27  const (
    28  	NamePattern_Nil          = "groups/{group}"
    29  	NamePattern_Project      = "projects/{project}/groups/{group}"
    30  	NamePattern_Organization = "organizations/{organization}/groups/{group}"
    31  	NamePattern_Service      = "services/{service}/groups/{group}"
    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  			GroupId: gotenresource.WildcardId,
    46  			ParentName: ParentName{
    47  				NamePattern: NamePattern{
    48  					// Set default pattern - just first.
    49  					Pattern: NamePattern_Nil,
    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.GroupId = id
    76  	return b
    77  }
    78  
    79  func (b *NameBuilder) SetProject(parent *project.Name) *NameBuilder {
    80  	parentName := &b.nameObj.ParentName
    81  
    82  	switch parent.Pattern {
    83  	case project.NamePattern_Nil:
    84  		parentName.Pattern = NamePattern_Project
    85  	}
    86  	parentName.ProjectId = parent.ProjectId
    87  	return b
    88  }
    89  
    90  func (b *NameBuilder) SetOrganization(parent *organization.Name) *NameBuilder {
    91  	parentName := &b.nameObj.ParentName
    92  
    93  	switch parent.Pattern {
    94  	case organization.NamePattern_Nil:
    95  		parentName.Pattern = NamePattern_Organization
    96  	}
    97  	parentName.OrganizationId = parent.OrganizationId
    98  	return b
    99  }
   100  
   101  func (b *NameBuilder) SetService(parent *meta_service.Name) *NameBuilder {
   102  	parentName := &b.nameObj.ParentName
   103  
   104  	switch parent.Pattern {
   105  	case meta_service.NamePattern_Nil:
   106  		parentName.Pattern = NamePattern_Service
   107  	}
   108  	parentName.ServiceId = parent.ServiceId
   109  	return b
   110  }
   111  
   112  func (b *NameBuilder) SetProjectId(id string) *NameBuilder {
   113  	parentName := &b.nameObj.ParentName
   114  	parentName.ProjectId = id
   115  
   116  	// Set pattern if something matches for this set of IDs
   117  	if parentName.ProjectId != "" {
   118  		parentName.Pattern = NamePattern_Project
   119  	}
   120  	return b
   121  }
   122  
   123  func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder {
   124  	parentName := &b.nameObj.ParentName
   125  	parentName.OrganizationId = id
   126  
   127  	// Set pattern if something matches for this set of IDs
   128  	if parentName.OrganizationId != "" {
   129  		parentName.Pattern = NamePattern_Organization
   130  	}
   131  	return b
   132  }
   133  
   134  func (b *NameBuilder) SetServiceId(id string) *NameBuilder {
   135  	parentName := &b.nameObj.ParentName
   136  	parentName.ServiceId = id
   137  
   138  	// Set pattern if something matches for this set of IDs
   139  	if parentName.ServiceId != "" {
   140  		parentName.Pattern = NamePattern_Service
   141  	}
   142  	return b
   143  }