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