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

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: Bucket
     3  // DO NOT EDIT!!!
     4  
     5  package bucket
     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  	log_descriptor "github.com/cloudwan/edgelq-sdk/logging/resources/v1/log_descriptor"
    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  	_ = &log_descriptor.LogDescriptor{}
    25  	_ = &meta_service.Service{}
    26  	_ = &meta.Meta{}
    27  )
    28  
    29  const (
    30  	NamePattern_Project_Region      = "projects/{project}/regions/{region}/buckets/{bucket}"
    31  	NamePattern_Organization_Region = "organizations/{organization}/regions/{region}/buckets/{bucket}"
    32  	NamePattern_Service_Region      = "services/{service}/regions/{region}/buckets/{bucket}"
    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  			BucketId: gotenresource.WildcardId,
    47  			ParentName: ParentName{
    48  				NamePattern: NamePattern{
    49  					// Set default pattern - just first.
    50  					Pattern: NamePattern_Project_Region,
    51  				},
    52  				RegionId: gotenresource.WildcardId,
    53  			},
    54  		},
    55  	}
    56  }
    57  
    58  func (b *NameBuilder) Name() *Name {
    59  	copied := b.nameObj
    60  	return &copied
    61  }
    62  
    63  func (b *NameBuilder) Reference() *Reference {
    64  	return b.nameObj.AsReference()
    65  }
    66  
    67  func (b *NameBuilder) Parent() *ParentName {
    68  	copied := b.nameObj.ParentName
    69  	return &copied
    70  }
    71  
    72  func (b *NameBuilder) ParentReference() *ParentReference {
    73  	return b.nameObj.ParentName.AsReference()
    74  }
    75  
    76  func (b *NameBuilder) SetId(id string) *NameBuilder {
    77  	b.nameObj.BucketId = id
    78  	return b
    79  }
    80  
    81  func (b *NameBuilder) SetProject(parent *iam_project.Name) *NameBuilder {
    82  	parentName := &b.nameObj.ParentName
    83  
    84  	switch parent.Pattern {
    85  	case iam_project.NamePattern_Nil:
    86  		parentName.Pattern = NamePattern_Project_Region
    87  	}
    88  	parentName.ProjectId = parent.ProjectId
    89  	return b
    90  }
    91  
    92  func (b *NameBuilder) SetOrganization(parent *iam_organization.Name) *NameBuilder {
    93  	parentName := &b.nameObj.ParentName
    94  
    95  	switch parent.Pattern {
    96  	case iam_organization.NamePattern_Nil:
    97  		parentName.Pattern = NamePattern_Organization_Region
    98  	}
    99  	parentName.OrganizationId = parent.OrganizationId
   100  	return b
   101  }
   102  
   103  func (b *NameBuilder) SetService(parent *meta_service.Name) *NameBuilder {
   104  	parentName := &b.nameObj.ParentName
   105  
   106  	switch parent.Pattern {
   107  	case meta_service.NamePattern_Nil:
   108  		parentName.Pattern = NamePattern_Service_Region
   109  	}
   110  	parentName.ServiceId = parent.ServiceId
   111  	return b
   112  }
   113  
   114  func (b *NameBuilder) SetProjectId(id string) *NameBuilder {
   115  	parentName := &b.nameObj.ParentName
   116  	parentName.ProjectId = id
   117  
   118  	// Set pattern if something matches for this set of IDs
   119  	if parentName.ProjectId != "" && parentName.RegionId != "" {
   120  		parentName.Pattern = NamePattern_Project_Region
   121  	}
   122  	return b
   123  }
   124  
   125  func (b *NameBuilder) SetRegionId(id string) *NameBuilder {
   126  	parentName := &b.nameObj.ParentName
   127  	parentName.RegionId = id
   128  
   129  	// Set pattern if something matches for this set of IDs
   130  	if parentName.ProjectId != "" && parentName.RegionId != "" {
   131  		parentName.Pattern = NamePattern_Project_Region
   132  	}
   133  	if parentName.OrganizationId != "" && parentName.RegionId != "" {
   134  		parentName.Pattern = NamePattern_Organization_Region
   135  	}
   136  	if parentName.ServiceId != "" && parentName.RegionId != "" {
   137  		parentName.Pattern = NamePattern_Service_Region
   138  	}
   139  	return b
   140  }
   141  
   142  func (b *NameBuilder) SetOrganizationId(id string) *NameBuilder {
   143  	parentName := &b.nameObj.ParentName
   144  	parentName.OrganizationId = id
   145  
   146  	// Set pattern if something matches for this set of IDs
   147  	if parentName.OrganizationId != "" && parentName.RegionId != "" {
   148  		parentName.Pattern = NamePattern_Organization_Region
   149  	}
   150  	return b
   151  }
   152  
   153  func (b *NameBuilder) SetServiceId(id string) *NameBuilder {
   154  	parentName := &b.nameObj.ParentName
   155  	parentName.ServiceId = id
   156  
   157  	// Set pattern if something matches for this set of IDs
   158  	if parentName.ServiceId != "" && parentName.RegionId != "" {
   159  		parentName.Pattern = NamePattern_Service_Region
   160  	}
   161  	return b
   162  }