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 _ = ×tamppb.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 }