github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1/group_member/group_member.pb.name.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  	"fmt"
     9  	"net/url"
    10  	"reflect"
    11  	"regexp"
    12  	"strings"
    13  
    14  	"google.golang.org/grpc/codes"
    15  	"google.golang.org/grpc/status"
    16  	"google.golang.org/protobuf/proto"
    17  
    18  	"github.com/cloudwan/goten-sdk/runtime/goten"
    19  	gotenresource "github.com/cloudwan/goten-sdk/runtime/resource"
    20  )
    21  
    22  // proto imports
    23  import (
    24  	group "github.com/cloudwan/edgelq-sdk/iam/resources/v1/group"
    25  	meta "github.com/cloudwan/goten-sdk/types/meta"
    26  )
    27  
    28  // ensure the imports are used
    29  var (
    30  	_ = codes.NotFound
    31  	_ = new(fmt.Stringer)
    32  	_ = new(proto.Message)
    33  	_ = status.Status{}
    34  	_ = url.URL{}
    35  	_ = strings.Builder{}
    36  
    37  	_ = new(goten.GotenMessage)
    38  	_ = new(gotenresource.ListQuery)
    39  )
    40  
    41  // make sure we're using proto imports
    42  var (
    43  	_ = &group.Group{}
    44  	_ = &meta.Meta{}
    45  )
    46  
    47  var groupMember_RegexpId = regexp.MustCompile("^(?P<group_member_id>[\\w][\\w.-]{0,127})$")
    48  var regexPath_Group = regexp.MustCompile("^groups/(?P<group_id>-|[\\w][\\w.-]{0,127})/groupMembers/(?P<group_member_id>-|[\\w][\\w.-]{0,127})$")
    49  var regexPath_Project_Group = regexp.MustCompile("^projects/(?P<project_id>-|[\\w][\\w.-]{0,127})/groups/(?P<group_id>-|[\\w][\\w.-]{0,127})/groupMembers/(?P<group_member_id>-|[\\w][\\w.-]{0,127})$")
    50  var regexPath_Organization_Group = regexp.MustCompile("^organizations/(?P<organization_id>-|[\\w][\\w.-]{0,127})/groups/(?P<group_id>-|[\\w][\\w.-]{0,127})/groupMembers/(?P<group_member_id>-|[\\w][\\w.-]{0,127})$")
    51  var regexPath_Service_Group = regexp.MustCompile("^services/(?P<service_id>-|[a-z][a-z0-9\\-.]{0,28}[a-z0-9])/groups/(?P<group_id>-|[\\w][\\w.-]{0,127})/groupMembers/(?P<group_member_id>-|[\\w][\\w.-]{0,127})$")
    52  
    53  func (r *GroupMember) MaybePopulateDefaults() error {
    54  	groupMemberInterface := interface{}(r)
    55  	if defaulter, ok := groupMemberInterface.(goten.Defaulter); ok {
    56  		return defaulter.PopulateDefaults()
    57  	}
    58  	return nil
    59  }
    60  
    61  type Name struct {
    62  	ParentName
    63  	GroupMemberId string `firestore:"groupMemberId"`
    64  }
    65  
    66  func ParseName(name string) (*Name, error) {
    67  	var matches []string
    68  	if matches = regexPath_Group.FindStringSubmatch(name); matches != nil {
    69  		return NewNameBuilder().
    70  			SetGroupId(matches[1]).
    71  			SetId(matches[2]).
    72  			Name(), nil
    73  	}
    74  	if matches = regexPath_Project_Group.FindStringSubmatch(name); matches != nil {
    75  		return NewNameBuilder().
    76  			SetProjectId(matches[1]).
    77  			SetGroupId(matches[2]).
    78  			SetId(matches[3]).
    79  			Name(), nil
    80  	}
    81  	if matches = regexPath_Organization_Group.FindStringSubmatch(name); matches != nil {
    82  		return NewNameBuilder().
    83  			SetOrganizationId(matches[1]).
    84  			SetGroupId(matches[2]).
    85  			SetId(matches[3]).
    86  			Name(), nil
    87  	}
    88  	if matches = regexPath_Service_Group.FindStringSubmatch(name); matches != nil {
    89  		return NewNameBuilder().
    90  			SetServiceId(matches[1]).
    91  			SetGroupId(matches[2]).
    92  			SetId(matches[3]).
    93  			Name(), nil
    94  	}
    95  
    96  	return nil, status.Errorf(codes.InvalidArgument, "unable to parse '%s' as GroupMember name", name)
    97  }
    98  
    99  func MustParseName(name string) *Name {
   100  	result, err := ParseName(name)
   101  	if err != nil {
   102  		panic(err)
   103  	}
   104  	return result
   105  }
   106  
   107  func ParseNameOrId(nameOrId string) (*Name, error) {
   108  	name, err := ParseName(nameOrId)
   109  	if err == nil {
   110  		return name, err
   111  	}
   112  	if groupMember_RegexpId.MatchString(nameOrId) {
   113  		return &Name{GroupMemberId: nameOrId}, nil
   114  	} else {
   115  		return nil, fmt.Errorf("unable to parse '%s' as GroupMember name or id", nameOrId)
   116  	}
   117  }
   118  
   119  func (name *Name) SetFromSegments(segments gotenresource.NameSegments) error {
   120  	if len(segments) == 0 {
   121  		return status.Errorf(codes.InvalidArgument, "No segments given for GroupMember name")
   122  	}
   123  	if err := name.ParentName.SetFromSegments(segments[:len(segments)-1]); err != nil {
   124  		return err
   125  	}
   126  	if segments[len(segments)-1].CollectionLowerJson != "groupMembers" {
   127  		return status.Errorf(codes.InvalidArgument, "unable to use segments %s to form GroupMember name", segments)
   128  	}
   129  	name.GroupMemberId = segments[len(segments)-1].Id
   130  	return nil
   131  }
   132  
   133  func (name *Name) GetGroupName() *group.Name {
   134  	if name == nil {
   135  		return nil
   136  	}
   137  	return name.ParentName.GetGroupName()
   138  }
   139  
   140  func (name *Name) IsSpecified() bool {
   141  	if name == nil || name.Pattern == "" || name.GroupMemberId == "" {
   142  		return false
   143  	}
   144  	return name.ParentName.IsSpecified()
   145  }
   146  
   147  func (name *Name) IsFullyQualified() bool {
   148  	if name == nil {
   149  		return false
   150  	}
   151  	if name.ParentName.IsFullyQualified() == false {
   152  		return false
   153  	}
   154  	if name.GroupMemberId == "" || name.GroupMemberId == gotenresource.WildcardId {
   155  		return false
   156  	}
   157  	return true
   158  }
   159  
   160  func (name *Name) FullyQualifiedName() (string, error) {
   161  	if !name.IsFullyQualified() {
   162  		return "", status.Errorf(codes.InvalidArgument, "Name for GroupMember is not fully qualified")
   163  	}
   164  	return fmt.Sprintf("//iam.edgelq.com/%s", name.String()), nil
   165  }
   166  
   167  func (name *Name) String() string {
   168  	if name == nil {
   169  		return "<nil>"
   170  	}
   171  	if valueStr, err := name.ProtoString(); err != nil {
   172  		panic(err)
   173  	} else {
   174  		return valueStr
   175  	}
   176  }
   177  
   178  func (name *Name) AsReference() *Reference {
   179  	return &Reference{Name: *name}
   180  }
   181  
   182  func (name *Name) AsRawReference() gotenresource.Reference {
   183  	return name.AsReference()
   184  }
   185  
   186  func (name *Name) GetResourceDescriptor() gotenresource.Descriptor {
   187  	return descriptor
   188  }
   189  
   190  func (name *Name) GetPattern() gotenresource.NamePattern {
   191  	if name == nil {
   192  		return ""
   193  	}
   194  	return name.Pattern
   195  }
   196  
   197  func (name *Name) GetIdParts() map[string]string {
   198  	if name != nil {
   199  		return map[string]string{
   200  			"groupId":        name.GroupId,
   201  			"groupMemberId":  name.GroupMemberId,
   202  			"projectId":      name.ProjectId,
   203  			"organizationId": name.OrganizationId,
   204  			"serviceId":      name.ServiceId,
   205  		}
   206  	}
   207  	return map[string]string{
   208  		"groupId":        "",
   209  		"groupMemberId":  "",
   210  		"projectId":      "",
   211  		"organizationId": "",
   212  		"serviceId":      "",
   213  	}
   214  }
   215  
   216  func (name *Name) GetSegments() gotenresource.NameSegments {
   217  	if name == nil || name.Pattern == "" {
   218  		return nil
   219  	}
   220  	segments := name.ParentName.GetSegments()
   221  	return append(segments, gotenresource.NameSegment{
   222  		CollectionLowerJson: "groupMembers",
   223  		Id:                  name.GroupMemberId,
   224  	})
   225  }
   226  
   227  func (name *Name) GetIParentName() gotenresource.Name {
   228  	if name == nil {
   229  		return (*ParentName)(nil)
   230  	}
   231  	return &name.ParentName
   232  }
   233  
   234  func (name *Name) GetIUnderlyingParentName() gotenresource.Name {
   235  	if parentName := name.GetGroupName(); parentName != nil {
   236  		return parentName
   237  	}
   238  	return nil
   239  }
   240  
   241  // implement methods required by protobuf-go library for string-struct conversion
   242  
   243  func (name *Name) ProtoString() (string, error) {
   244  	if name == nil {
   245  		return "", nil
   246  	}
   247  	result := ""
   248  	parentPrefix, err := name.ParentName.ProtoString()
   249  	if err != nil {
   250  		return "", err
   251  	}
   252  	if parentPrefix != "" {
   253  		result += parentPrefix + "/"
   254  	}
   255  	result += "groupMembers/" + name.GroupMemberId
   256  	return result, nil
   257  }
   258  
   259  func (name *Name) ParseProtoString(data string) error {
   260  	parsed, err := ParseName(data)
   261  	if err != nil {
   262  		return err
   263  	}
   264  	*name = *parsed
   265  	return nil
   266  }
   267  
   268  // GotenEqual returns true if other is of same type and paths are equal (implements goten.Equaler interface)
   269  func (name *Name) GotenEqual(other interface{}) bool {
   270  	if other == nil {
   271  		return name == nil
   272  	}
   273  	other1, ok := other.(*Name)
   274  	if !ok {
   275  		other2, ok := other.(Name)
   276  		if ok {
   277  			other1 = &other2
   278  		} else {
   279  			return false
   280  		}
   281  	}
   282  	if other1 == nil {
   283  		return name == nil
   284  	} else if name == nil {
   285  		return false
   286  	}
   287  	if name.ParentName.GotenEqual(other1.ParentName) == false {
   288  		return false
   289  	}
   290  	if name.GroupMemberId != other1.GroupMemberId {
   291  		return false
   292  	}
   293  
   294  	return true
   295  }
   296  
   297  // Matches is same as GotenEqual, but also will accept "other" if name is wildcard.
   298  func (name *Name) Matches(other interface{}) bool {
   299  	if other == nil {
   300  		return name == nil
   301  	}
   302  	other1, ok := other.(*Name)
   303  	if !ok {
   304  		other2, ok := other.(Name)
   305  		if ok {
   306  			other1 = &other2
   307  		} else {
   308  			return false
   309  		}
   310  	}
   311  	if other1 == nil {
   312  		return name == nil
   313  	} else if name == nil {
   314  		return false
   315  	}
   316  	if name.ParentName.Matches(other1.ParentName) == false {
   317  		return false
   318  	}
   319  	if name.GroupMemberId != other1.GroupMemberId {
   320  		return name.GroupMemberId == gotenresource.WildcardId
   321  	}
   322  
   323  	return true
   324  }
   325  
   326  // implement CustomTypeCliValue method
   327  func (name *Name) SetFromCliFlag(raw string) error {
   328  	parsedName, err := ParseName(raw)
   329  	if err != nil {
   330  		return err
   331  	}
   332  	*name = *parsedName
   333  	return nil
   334  }
   335  
   336  type Reference struct {
   337  	Name
   338  	groupMember *GroupMember
   339  }
   340  
   341  func MakeReference(name *Name, groupMember *GroupMember) (*Reference, error) {
   342  	return &Reference{
   343  		Name:        *name,
   344  		groupMember: groupMember,
   345  	}, nil
   346  }
   347  
   348  func ParseReference(name string) (*Reference, error) {
   349  	parsedName, err := ParseName(name)
   350  	if err != nil {
   351  		return nil, err
   352  	}
   353  	return MakeReference(parsedName, nil)
   354  }
   355  
   356  func MustParseReference(name string) *Reference {
   357  	result, err := ParseReference(name)
   358  	if err != nil {
   359  		panic(err)
   360  	}
   361  	return result
   362  }
   363  
   364  func (ref *Reference) Resolve(resolved *GroupMember) {
   365  	ref.groupMember = resolved
   366  }
   367  
   368  func (ref *Reference) ResolveRaw(res gotenresource.Resource) error {
   369  	if res == nil {
   370  		ref.Resolve(nil)
   371  		return nil
   372  	}
   373  	if typedRes, ok := res.(*GroupMember); ok {
   374  		ref.Resolve(typedRes)
   375  		return nil
   376  	}
   377  	return status.Errorf(codes.Internal, "Invalid resource type for GroupMember: %s", reflect.TypeOf(res).Elem().Name())
   378  }
   379  
   380  func (ref *Reference) Resolved() bool {
   381  	return ref != nil && ref.groupMember != nil
   382  }
   383  
   384  func (ref *Reference) ClearCached() {
   385  	ref.groupMember = nil
   386  }
   387  
   388  func (ref *Reference) GetGroupMember() *GroupMember {
   389  	if ref == nil {
   390  		return nil
   391  	}
   392  	return ref.groupMember
   393  }
   394  
   395  func (ref *Reference) GetRawResource() gotenresource.Resource {
   396  	if ref == nil {
   397  		return (*GroupMember)(nil)
   398  	}
   399  	return ref.groupMember
   400  }
   401  
   402  func (ref *Reference) IsFullyQualified() bool {
   403  	if ref == nil {
   404  		return false
   405  	}
   406  	return ref.Name.IsFullyQualified()
   407  }
   408  
   409  func (ref *Reference) IsSpecified() bool {
   410  	if ref == nil {
   411  		return false
   412  	}
   413  	return ref.Name.IsSpecified()
   414  }
   415  
   416  func (ref *Reference) FullyQualifiedName() (string, error) {
   417  	if !ref.IsFullyQualified() {
   418  		return "", status.Errorf(codes.InvalidArgument, "Name for GroupMember is not fully qualified")
   419  	}
   420  	return fmt.Sprintf("//iam.edgelq.com/%s", ref.String()), nil
   421  }
   422  
   423  func (ref *Reference) GetResourceDescriptor() gotenresource.Descriptor {
   424  	return descriptor
   425  }
   426  
   427  func (ref *Reference) GetPattern() gotenresource.NamePattern {
   428  	if ref == nil {
   429  		return ""
   430  	}
   431  	return ref.Pattern
   432  }
   433  
   434  func (ref *Reference) GetIdParts() map[string]string {
   435  	if ref != nil {
   436  		return ref.Name.GetIdParts()
   437  	}
   438  	return map[string]string{
   439  		"groupId":        "",
   440  		"groupMemberId":  "",
   441  		"projectId":      "",
   442  		"organizationId": "",
   443  		"serviceId":      "",
   444  	}
   445  }
   446  
   447  func (ref *Reference) GetSegments() gotenresource.NameSegments {
   448  	if ref != nil {
   449  		return ref.Name.GetSegments()
   450  	}
   451  	return nil
   452  }
   453  
   454  func (ref *Reference) GetIParentName() gotenresource.Name {
   455  	if ref == nil {
   456  		return (*ParentName)(nil)
   457  	}
   458  	return ref.Name.GetIParentName()
   459  }
   460  
   461  func (ref *Reference) GetIUnderlyingParentName() gotenresource.Name {
   462  	if ref != nil {
   463  		return ref.Name.GetIUnderlyingParentName()
   464  	}
   465  	return nil
   466  }
   467  
   468  func (ref *Reference) String() string {
   469  	if ref == nil {
   470  		return "<nil>"
   471  	}
   472  	return ref.Name.String()
   473  }
   474  
   475  // implement methods required by protobuf-go library for string-struct conversion
   476  
   477  func (ref *Reference) ProtoString() (string, error) {
   478  	if ref == nil {
   479  		return "", nil
   480  	}
   481  	return ref.Name.ProtoString()
   482  }
   483  
   484  func (ref *Reference) ParseProtoString(data string) error {
   485  	parsed, err := ParseReference(data)
   486  	if err != nil {
   487  		return err
   488  	}
   489  	*ref = *parsed
   490  	return nil
   491  }
   492  
   493  // GotenEqual returns true if other is of same type and paths are equal (implements goten.Equaler interface)
   494  func (ref *Reference) GotenEqual(other interface{}) bool {
   495  	if other == nil {
   496  		return ref == nil
   497  	}
   498  	other1, ok := other.(*Reference)
   499  	if !ok {
   500  		other2, ok := other.(Reference)
   501  		if ok {
   502  			other1 = &other2
   503  		} else {
   504  			return false
   505  		}
   506  	}
   507  	if other1 == nil {
   508  		return ref == nil
   509  	} else if ref == nil {
   510  		return false
   511  	}
   512  
   513  	return ref.Name.GotenEqual(other1.Name)
   514  }
   515  
   516  // Matches is same as GotenEqual, but also will accept "other" if name is wildcard.
   517  func (name *Reference) Matches(other interface{}) bool {
   518  	if other == nil {
   519  		return name == nil
   520  	}
   521  	other1, ok := other.(*Reference)
   522  	if !ok {
   523  		other2, ok := other.(Reference)
   524  		if ok {
   525  			other1 = &other2
   526  		} else {
   527  			return false
   528  		}
   529  	}
   530  	if other1 == nil {
   531  		return name == nil
   532  	} else if name == nil {
   533  		return false
   534  	}
   535  	return name.Name.Matches(&other1.Name)
   536  }
   537  
   538  // implement CustomTypeCliValue method
   539  func (ref *Reference) SetFromCliFlag(raw string) error {
   540  	parsedRef, err := ParseReference(raw)
   541  	if err != nil {
   542  		return err
   543  	}
   544  	*ref = *parsedRef
   545  	return nil
   546  }