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