github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1/audited_resource_descriptor/audited_resource_descriptor.pb.name.go (about)

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