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

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