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

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