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

     1  // Code generated by protoc-gen-goten-resource
     2  // Resource: ProvisioningPolicy
     3  // DO NOT EDIT!!!
     4  
     5  package provisioning_policy
     6  
     7  import (
     8  	gotenresource "github.com/cloudwan/goten-sdk/runtime/resource"
     9  )
    10  
    11  // proto imports
    12  import (
    13  	device "github.com/cloudwan/edgelq-sdk/devices/resources/v1/device"
    14  	project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project"
    15  	iam_condition "github.com/cloudwan/edgelq-sdk/iam/resources/v1/condition"
    16  	iam_role "github.com/cloudwan/edgelq-sdk/iam/resources/v1/role"
    17  	iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account"
    18  	meta "github.com/cloudwan/goten-sdk/types/meta"
    19  	structpb "google.golang.org/protobuf/types/known/structpb"
    20  )
    21  
    22  // make sure we're using proto imports
    23  var (
    24  	_ = &device.Device{}
    25  	_ = &project.Project{}
    26  	_ = &iam_condition.Condition{}
    27  	_ = &iam_role.Role{}
    28  	_ = &iam_service_account.ServiceAccount{}
    29  	_ = &structpb.Struct{}
    30  	_ = &meta.Meta{}
    31  )
    32  
    33  const (
    34  	NamePattern_Project_Region = "projects/{project}/regions/{region}/provisioningPolicies/{provisioning_policy}"
    35  )
    36  
    37  type NamePattern struct {
    38  	Pattern gotenresource.NamePattern `firestore:"pattern"`
    39  }
    40  
    41  type NameBuilder struct {
    42  	nameObj Name
    43  }
    44  
    45  func NewNameBuilder() *NameBuilder {
    46  	return &NameBuilder{
    47  		nameObj: Name{
    48  			ProvisioningPolicyId: gotenresource.WildcardId,
    49  			ParentName: ParentName{
    50  				NamePattern: NamePattern{
    51  					// Set default pattern - just first.
    52  					Pattern: NamePattern_Project_Region,
    53  				},
    54  				RegionId: gotenresource.WildcardId,
    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.ProvisioningPolicyId = 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_Region
    89  	}
    90  	parentName.ProjectId = parent.ProjectId
    91  	return b
    92  }
    93  
    94  func (b *NameBuilder) SetProjectId(id string) *NameBuilder {
    95  	parentName := &b.nameObj.ParentName
    96  	parentName.ProjectId = id
    97  
    98  	// Set pattern if something matches for this set of IDs
    99  	if parentName.ProjectId != "" && parentName.RegionId != "" {
   100  		parentName.Pattern = NamePattern_Project_Region
   101  	}
   102  	return b
   103  }
   104  
   105  func (b *NameBuilder) SetRegionId(id string) *NameBuilder {
   106  	parentName := &b.nameObj.ParentName
   107  	parentName.RegionId = id
   108  
   109  	// Set pattern if something matches for this set of IDs
   110  	if parentName.ProjectId != "" && parentName.RegionId != "" {
   111  		parentName.Pattern = NamePattern_Project_Region
   112  	}
   113  	return b
   114  }