github.com/cloudwan/edgelq-sdk@v1.15.4/logging/resources/v1alpha2/log/log.pb.fieldmask.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/logging/proto/v1alpha2/log.proto
     3  // DO NOT EDIT!!!
     4  
     5  package log
     6  
     7  import (
     8  	"encoding/json"
     9  	"strings"
    10  
    11  	"google.golang.org/grpc/codes"
    12  	"google.golang.org/grpc/status"
    13  	"google.golang.org/protobuf/proto"
    14  	preflect "google.golang.org/protobuf/reflect/protoreflect"
    15  	googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    16  
    17  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    18  )
    19  
    20  // proto imports
    21  import (
    22  	iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization"
    23  	iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project"
    24  	log_descriptor "github.com/cloudwan/edgelq-sdk/logging/resources/v1alpha2/log_descriptor"
    25  	structpb "google.golang.org/protobuf/types/known/structpb"
    26  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    27  )
    28  
    29  // ensure the imports are used
    30  var (
    31  	_ = new(json.Marshaler)
    32  	_ = strings.Builder{}
    33  
    34  	_ = codes.NotFound
    35  	_ = status.Status{}
    36  	_ = new(proto.Message)
    37  	_ = new(preflect.Message)
    38  	_ = googlefieldmaskpb.FieldMask{}
    39  
    40  	_ = new(gotenobject.FieldMask)
    41  )
    42  
    43  // make sure we're using proto imports
    44  var (
    45  	_ = &iam_organization.Organization{}
    46  	_ = &iam_project.Project{}
    47  	_ = &log_descriptor.LogDescriptor{}
    48  	_ = &structpb.Struct{}
    49  	_ = &timestamppb.Timestamp{}
    50  )
    51  
    52  type Log_FieldMask struct {
    53  	Paths []Log_FieldPath
    54  }
    55  
    56  func FullLog_FieldMask() *Log_FieldMask {
    57  	res := &Log_FieldMask{}
    58  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorName})
    59  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorScope})
    60  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorService})
    61  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorRegion})
    62  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorVersion})
    63  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorLogDescriptor})
    64  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorLabels})
    65  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorTime})
    66  	res.Paths = append(res.Paths, &Log_FieldTerminalPath{selector: Log_FieldPathSelectorPayload})
    67  	return res
    68  }
    69  
    70  func (fieldMask *Log_FieldMask) String() string {
    71  	if fieldMask == nil {
    72  		return "<nil>"
    73  	}
    74  	pathsStr := make([]string, 0, len(fieldMask.Paths))
    75  	for _, path := range fieldMask.Paths {
    76  		pathsStr = append(pathsStr, path.String())
    77  	}
    78  	return strings.Join(pathsStr, ", ")
    79  }
    80  
    81  func (fieldMask *Log_FieldMask) IsFull() bool {
    82  	if fieldMask == nil {
    83  		return false
    84  	}
    85  	presentSelectors := make([]bool, 9)
    86  	for _, path := range fieldMask.Paths {
    87  		if asFinal, ok := path.(*Log_FieldTerminalPath); ok {
    88  			presentSelectors[int(asFinal.selector)] = true
    89  		}
    90  	}
    91  	for _, flag := range presentSelectors {
    92  		if !flag {
    93  			return false
    94  		}
    95  	}
    96  	return true
    97  }
    98  
    99  func (fieldMask *Log_FieldMask) ProtoReflect() preflect.Message {
   100  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   101  		return ParseLog_FieldPath(raw)
   102  	})
   103  }
   104  
   105  func (fieldMask *Log_FieldMask) ProtoMessage() {}
   106  
   107  func (fieldMask *Log_FieldMask) Reset() {
   108  	if fieldMask != nil {
   109  		fieldMask.Paths = nil
   110  	}
   111  }
   112  
   113  func (fieldMask *Log_FieldMask) Subtract(other *Log_FieldMask) *Log_FieldMask {
   114  	result := &Log_FieldMask{}
   115  	removedSelectors := make([]bool, 9)
   116  
   117  	for _, path := range other.GetPaths() {
   118  		switch tp := path.(type) {
   119  		case *Log_FieldTerminalPath:
   120  			removedSelectors[int(tp.selector)] = true
   121  		}
   122  	}
   123  	for _, path := range fieldMask.GetPaths() {
   124  		if !removedSelectors[int(path.Selector())] {
   125  			result.Paths = append(result.Paths, path)
   126  		}
   127  	}
   128  
   129  	if len(result.Paths) == 0 {
   130  		return nil
   131  	}
   132  	return result
   133  }
   134  
   135  func (fieldMask *Log_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   136  	return fieldMask.Subtract(other.(*Log_FieldMask))
   137  }
   138  
   139  // FilterInputFields generates copy of field paths with output_only field paths removed
   140  func (fieldMask *Log_FieldMask) FilterInputFields() *Log_FieldMask {
   141  	result := &Log_FieldMask{}
   142  	result.Paths = append(result.Paths, fieldMask.Paths...)
   143  	return result
   144  }
   145  
   146  // ToFieldMask is used for proto conversions
   147  func (fieldMask *Log_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   148  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   149  	for _, path := range fieldMask.Paths {
   150  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   151  	}
   152  	return protoFieldMask
   153  }
   154  
   155  func (fieldMask *Log_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   156  	if fieldMask == nil {
   157  		return status.Error(codes.Internal, "target field mask is nil")
   158  	}
   159  	fieldMask.Paths = make([]Log_FieldPath, 0, len(protoFieldMask.Paths))
   160  	for _, strPath := range protoFieldMask.Paths {
   161  		path, err := ParseLog_FieldPath(strPath)
   162  		if err != nil {
   163  			return err
   164  		}
   165  		fieldMask.Paths = append(fieldMask.Paths, path)
   166  	}
   167  	return nil
   168  }
   169  
   170  // implement methods required by customType
   171  func (fieldMask Log_FieldMask) Marshal() ([]byte, error) {
   172  	protoFieldMask := fieldMask.ToProtoFieldMask()
   173  	return proto.Marshal(protoFieldMask)
   174  }
   175  
   176  func (fieldMask *Log_FieldMask) Unmarshal(data []byte) error {
   177  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   178  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   179  		return err
   180  	}
   181  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   182  		return err
   183  	}
   184  	return nil
   185  }
   186  
   187  func (fieldMask *Log_FieldMask) Size() int {
   188  	return proto.Size(fieldMask.ToProtoFieldMask())
   189  }
   190  
   191  func (fieldMask Log_FieldMask) MarshalJSON() ([]byte, error) {
   192  	return json.Marshal(fieldMask.ToProtoFieldMask())
   193  }
   194  
   195  func (fieldMask *Log_FieldMask) UnmarshalJSON(data []byte) error {
   196  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   197  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   198  		return err
   199  	}
   200  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   201  		return err
   202  	}
   203  	return nil
   204  }
   205  
   206  func (fieldMask *Log_FieldMask) AppendPath(path Log_FieldPath) {
   207  	fieldMask.Paths = append(fieldMask.Paths, path)
   208  }
   209  
   210  func (fieldMask *Log_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   211  	fieldMask.Paths = append(fieldMask.Paths, path.(Log_FieldPath))
   212  }
   213  
   214  func (fieldMask *Log_FieldMask) GetPaths() []Log_FieldPath {
   215  	if fieldMask == nil {
   216  		return nil
   217  	}
   218  	return fieldMask.Paths
   219  }
   220  
   221  func (fieldMask *Log_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   222  	if fieldMask == nil {
   223  		return nil
   224  	}
   225  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   226  	for _, path := range fieldMask.Paths {
   227  		rawPaths = append(rawPaths, path)
   228  	}
   229  	return rawPaths
   230  }
   231  
   232  func (fieldMask *Log_FieldMask) SetFromCliFlag(raw string) error {
   233  	path, err := ParseLog_FieldPath(raw)
   234  	if err != nil {
   235  		return err
   236  	}
   237  	fieldMask.Paths = append(fieldMask.Paths, path)
   238  	return nil
   239  }
   240  
   241  func (fieldMask *Log_FieldMask) Set(target, source *Log) {
   242  	for _, path := range fieldMask.Paths {
   243  		val, _ := path.GetSingle(source)
   244  		// if val is nil, then field does not exist in source, skip
   245  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   246  		if val != nil {
   247  			path.WithIValue(val).SetTo(&target)
   248  		}
   249  	}
   250  }
   251  
   252  func (fieldMask *Log_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   253  	fieldMask.Set(target.(*Log), source.(*Log))
   254  }
   255  
   256  func (fieldMask *Log_FieldMask) Project(source *Log) *Log {
   257  	if source == nil {
   258  		return nil
   259  	}
   260  	if fieldMask == nil {
   261  		return source
   262  	}
   263  	result := &Log{}
   264  	var labelsMapKeys []string
   265  	wholeLabelsAccepted := false
   266  
   267  	for _, p := range fieldMask.Paths {
   268  		switch tp := p.(type) {
   269  		case *Log_FieldTerminalPath:
   270  			switch tp.selector {
   271  			case Log_FieldPathSelectorName:
   272  				result.Name = source.Name
   273  			case Log_FieldPathSelectorScope:
   274  				result.Scope = source.Scope
   275  			case Log_FieldPathSelectorService:
   276  				result.Service = source.Service
   277  			case Log_FieldPathSelectorRegion:
   278  				result.Region = source.Region
   279  			case Log_FieldPathSelectorVersion:
   280  				result.Version = source.Version
   281  			case Log_FieldPathSelectorLogDescriptor:
   282  				result.LogDescriptor = source.LogDescriptor
   283  			case Log_FieldPathSelectorLabels:
   284  				result.Labels = source.Labels
   285  				wholeLabelsAccepted = true
   286  			case Log_FieldPathSelectorTime:
   287  				result.Time = source.Time
   288  			case Log_FieldPathSelectorPayload:
   289  				result.Payload = source.Payload
   290  			}
   291  		case *Log_FieldPathMap:
   292  			switch tp.selector {
   293  			case Log_FieldPathSelectorLabels:
   294  				labelsMapKeys = append(labelsMapKeys, tp.key)
   295  			}
   296  		}
   297  	}
   298  	if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil {
   299  		copiedMap := map[string]string{}
   300  		sourceMap := source.GetLabels()
   301  		for _, key := range labelsMapKeys {
   302  			copiedMap[key] = sourceMap[key]
   303  		}
   304  		result.Labels = copiedMap
   305  	}
   306  	return result
   307  }
   308  
   309  func (fieldMask *Log_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   310  	return fieldMask.Project(source.(*Log))
   311  }
   312  
   313  func (fieldMask *Log_FieldMask) PathsCount() int {
   314  	if fieldMask == nil {
   315  		return 0
   316  	}
   317  	return len(fieldMask.Paths)
   318  }