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

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