github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1alpha2/audited_resource_descriptor/audited_resource_descriptor.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/audit/proto/v1alpha2/audited_resource_descriptor.proto 3 // DO NOT EDIT!!! 4 5 package audited_resource_descriptor 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 common "github.com/cloudwan/edgelq-sdk/audit/resources/v1alpha2/common" 23 meta "github.com/cloudwan/goten-sdk/types/meta" 24 ) 25 26 // ensure the imports are used 27 var ( 28 _ = new(json.Marshaler) 29 _ = strings.Builder{} 30 31 _ = codes.NotFound 32 _ = status.Status{} 33 _ = new(proto.Message) 34 _ = new(preflect.Message) 35 _ = googlefieldmaskpb.FieldMask{} 36 37 _ = new(gotenobject.FieldMask) 38 ) 39 40 // make sure we're using proto imports 41 var ( 42 _ = &common.Authentication{} 43 _ = &meta.Meta{} 44 ) 45 46 type AuditedResourceDescriptor_FieldMask struct { 47 Paths []AuditedResourceDescriptor_FieldPath 48 } 49 50 func FullAuditedResourceDescriptor_FieldMask() *AuditedResourceDescriptor_FieldMask { 51 res := &AuditedResourceDescriptor_FieldMask{} 52 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorName}) 53 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorDisplayName}) 54 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorDescription}) 55 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorLabels}) 56 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets}) 57 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorVersions}) 58 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorSpecFields}) 59 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorStateFields}) 60 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorMetaFields}) 61 res.Paths = append(res.Paths, &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorMetadata}) 62 return res 63 } 64 65 func (fieldMask *AuditedResourceDescriptor_FieldMask) String() string { 66 if fieldMask == nil { 67 return "<nil>" 68 } 69 pathsStr := make([]string, 0, len(fieldMask.Paths)) 70 for _, path := range fieldMask.Paths { 71 pathsStr = append(pathsStr, path.String()) 72 } 73 return strings.Join(pathsStr, ", ") 74 } 75 76 func (fieldMask *AuditedResourceDescriptor_FieldMask) IsFull() bool { 77 if fieldMask == nil { 78 return false 79 } 80 presentSelectors := make([]bool, 10) 81 for _, path := range fieldMask.Paths { 82 if asFinal, ok := path.(*AuditedResourceDescriptor_FieldTerminalPath); ok { 83 presentSelectors[int(asFinal.selector)] = true 84 } 85 } 86 for _, flag := range presentSelectors { 87 if !flag { 88 return false 89 } 90 } 91 return true 92 } 93 94 func (fieldMask *AuditedResourceDescriptor_FieldMask) ProtoReflect() preflect.Message { 95 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 96 return ParseAuditedResourceDescriptor_FieldPath(raw) 97 }) 98 } 99 100 func (fieldMask *AuditedResourceDescriptor_FieldMask) ProtoMessage() {} 101 102 func (fieldMask *AuditedResourceDescriptor_FieldMask) Reset() { 103 if fieldMask != nil { 104 fieldMask.Paths = nil 105 } 106 } 107 108 func (fieldMask *AuditedResourceDescriptor_FieldMask) Subtract(other *AuditedResourceDescriptor_FieldMask) *AuditedResourceDescriptor_FieldMask { 109 result := &AuditedResourceDescriptor_FieldMask{} 110 removedSelectors := make([]bool, 10) 111 otherSubMasks := map[AuditedResourceDescriptor_FieldPathSelector]gotenobject.FieldMask{ 112 AuditedResourceDescriptor_FieldPathSelectorLabels: &common.LabelDescriptor_FieldMask{}, 113 AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets: &common.LabelKeySet_FieldMask{}, 114 AuditedResourceDescriptor_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 115 } 116 mySubMasks := map[AuditedResourceDescriptor_FieldPathSelector]gotenobject.FieldMask{ 117 AuditedResourceDescriptor_FieldPathSelectorLabels: &common.LabelDescriptor_FieldMask{}, 118 AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets: &common.LabelKeySet_FieldMask{}, 119 AuditedResourceDescriptor_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 120 } 121 122 for _, path := range other.GetPaths() { 123 switch tp := path.(type) { 124 case *AuditedResourceDescriptor_FieldTerminalPath: 125 removedSelectors[int(tp.selector)] = true 126 case *AuditedResourceDescriptor_FieldSubPath: 127 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 128 } 129 } 130 for _, path := range fieldMask.GetPaths() { 131 if !removedSelectors[int(path.Selector())] { 132 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 133 if tp, ok := path.(*AuditedResourceDescriptor_FieldTerminalPath); ok { 134 switch tp.selector { 135 case AuditedResourceDescriptor_FieldPathSelectorLabels: 136 mySubMasks[AuditedResourceDescriptor_FieldPathSelectorLabels] = common.FullLabelDescriptor_FieldMask() 137 case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets: 138 mySubMasks[AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets] = common.FullLabelKeySet_FieldMask() 139 case AuditedResourceDescriptor_FieldPathSelectorMetadata: 140 mySubMasks[AuditedResourceDescriptor_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 141 } 142 } else if tp, ok := path.(*AuditedResourceDescriptor_FieldSubPath); ok { 143 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 144 } 145 } else { 146 result.Paths = append(result.Paths, path) 147 } 148 } 149 } 150 for selector, mySubMask := range mySubMasks { 151 if mySubMask.PathsCount() > 0 { 152 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 153 result.Paths = append(result.Paths, &AuditedResourceDescriptor_FieldSubPath{selector: selector, subPath: allowedPath}) 154 } 155 } 156 } 157 158 if len(result.Paths) == 0 { 159 return nil 160 } 161 return result 162 } 163 164 func (fieldMask *AuditedResourceDescriptor_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 165 return fieldMask.Subtract(other.(*AuditedResourceDescriptor_FieldMask)) 166 } 167 168 // FilterInputFields generates copy of field paths with output_only field paths removed 169 func (fieldMask *AuditedResourceDescriptor_FieldMask) FilterInputFields() *AuditedResourceDescriptor_FieldMask { 170 result := &AuditedResourceDescriptor_FieldMask{} 171 for _, path := range fieldMask.Paths { 172 switch path.Selector() { 173 case AuditedResourceDescriptor_FieldPathSelectorMetadata: 174 if _, ok := path.(*AuditedResourceDescriptor_FieldTerminalPath); ok { 175 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 176 result.Paths = append(result.Paths, &AuditedResourceDescriptor_FieldSubPath{selector: path.Selector(), subPath: subpath}) 177 } 178 } else if sub, ok := path.(*AuditedResourceDescriptor_FieldSubPath); ok { 179 selectedMask := &meta.Meta_FieldMask{ 180 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 181 } 182 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 183 result.Paths = append(result.Paths, &AuditedResourceDescriptor_FieldSubPath{selector: AuditedResourceDescriptor_FieldPathSelectorMetadata, subPath: allowedPath}) 184 } 185 } 186 default: 187 result.Paths = append(result.Paths, path) 188 } 189 } 190 return result 191 } 192 193 // ToFieldMask is used for proto conversions 194 func (fieldMask *AuditedResourceDescriptor_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 195 protoFieldMask := &googlefieldmaskpb.FieldMask{} 196 for _, path := range fieldMask.Paths { 197 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 198 } 199 return protoFieldMask 200 } 201 202 func (fieldMask *AuditedResourceDescriptor_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 203 if fieldMask == nil { 204 return status.Error(codes.Internal, "target field mask is nil") 205 } 206 fieldMask.Paths = make([]AuditedResourceDescriptor_FieldPath, 0, len(protoFieldMask.Paths)) 207 for _, strPath := range protoFieldMask.Paths { 208 path, err := ParseAuditedResourceDescriptor_FieldPath(strPath) 209 if err != nil { 210 return err 211 } 212 fieldMask.Paths = append(fieldMask.Paths, path) 213 } 214 return nil 215 } 216 217 // implement methods required by customType 218 func (fieldMask AuditedResourceDescriptor_FieldMask) Marshal() ([]byte, error) { 219 protoFieldMask := fieldMask.ToProtoFieldMask() 220 return proto.Marshal(protoFieldMask) 221 } 222 223 func (fieldMask *AuditedResourceDescriptor_FieldMask) Unmarshal(data []byte) error { 224 protoFieldMask := &googlefieldmaskpb.FieldMask{} 225 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 226 return err 227 } 228 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 229 return err 230 } 231 return nil 232 } 233 234 func (fieldMask *AuditedResourceDescriptor_FieldMask) Size() int { 235 return proto.Size(fieldMask.ToProtoFieldMask()) 236 } 237 238 func (fieldMask AuditedResourceDescriptor_FieldMask) MarshalJSON() ([]byte, error) { 239 return json.Marshal(fieldMask.ToProtoFieldMask()) 240 } 241 242 func (fieldMask *AuditedResourceDescriptor_FieldMask) UnmarshalJSON(data []byte) error { 243 protoFieldMask := &googlefieldmaskpb.FieldMask{} 244 if err := json.Unmarshal(data, protoFieldMask); err != nil { 245 return err 246 } 247 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 248 return err 249 } 250 return nil 251 } 252 253 func (fieldMask *AuditedResourceDescriptor_FieldMask) AppendPath(path AuditedResourceDescriptor_FieldPath) { 254 fieldMask.Paths = append(fieldMask.Paths, path) 255 } 256 257 func (fieldMask *AuditedResourceDescriptor_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 258 fieldMask.Paths = append(fieldMask.Paths, path.(AuditedResourceDescriptor_FieldPath)) 259 } 260 261 func (fieldMask *AuditedResourceDescriptor_FieldMask) GetPaths() []AuditedResourceDescriptor_FieldPath { 262 if fieldMask == nil { 263 return nil 264 } 265 return fieldMask.Paths 266 } 267 268 func (fieldMask *AuditedResourceDescriptor_FieldMask) GetRawPaths() []gotenobject.FieldPath { 269 if fieldMask == nil { 270 return nil 271 } 272 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 273 for _, path := range fieldMask.Paths { 274 rawPaths = append(rawPaths, path) 275 } 276 return rawPaths 277 } 278 279 func (fieldMask *AuditedResourceDescriptor_FieldMask) SetFromCliFlag(raw string) error { 280 path, err := ParseAuditedResourceDescriptor_FieldPath(raw) 281 if err != nil { 282 return err 283 } 284 fieldMask.Paths = append(fieldMask.Paths, path) 285 return nil 286 } 287 288 func (fieldMask *AuditedResourceDescriptor_FieldMask) Set(target, source *AuditedResourceDescriptor) { 289 for _, path := range fieldMask.Paths { 290 val, _ := path.GetSingle(source) 291 // if val is nil, then field does not exist in source, skip 292 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 293 if val != nil { 294 path.WithIValue(val).SetTo(&target) 295 } 296 } 297 } 298 299 func (fieldMask *AuditedResourceDescriptor_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 300 fieldMask.Set(target.(*AuditedResourceDescriptor), source.(*AuditedResourceDescriptor)) 301 } 302 303 func (fieldMask *AuditedResourceDescriptor_FieldMask) Project(source *AuditedResourceDescriptor) *AuditedResourceDescriptor { 304 if source == nil { 305 return nil 306 } 307 if fieldMask == nil { 308 return source 309 } 310 result := &AuditedResourceDescriptor{} 311 labelsMask := &common.LabelDescriptor_FieldMask{} 312 wholeLabelsAccepted := false 313 promotedLabelKeySetsMask := &common.LabelKeySet_FieldMask{} 314 wholePromotedLabelKeySetsAccepted := false 315 metadataMask := &meta.Meta_FieldMask{} 316 wholeMetadataAccepted := false 317 318 for _, p := range fieldMask.Paths { 319 switch tp := p.(type) { 320 case *AuditedResourceDescriptor_FieldTerminalPath: 321 switch tp.selector { 322 case AuditedResourceDescriptor_FieldPathSelectorName: 323 result.Name = source.Name 324 case AuditedResourceDescriptor_FieldPathSelectorDisplayName: 325 result.DisplayName = source.DisplayName 326 case AuditedResourceDescriptor_FieldPathSelectorDescription: 327 result.Description = source.Description 328 case AuditedResourceDescriptor_FieldPathSelectorLabels: 329 result.Labels = source.Labels 330 wholeLabelsAccepted = true 331 case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets: 332 result.PromotedLabelKeySets = source.PromotedLabelKeySets 333 wholePromotedLabelKeySetsAccepted = true 334 case AuditedResourceDescriptor_FieldPathSelectorVersions: 335 result.Versions = source.Versions 336 case AuditedResourceDescriptor_FieldPathSelectorSpecFields: 337 result.SpecFields = source.SpecFields 338 case AuditedResourceDescriptor_FieldPathSelectorStateFields: 339 result.StateFields = source.StateFields 340 case AuditedResourceDescriptor_FieldPathSelectorMetaFields: 341 result.MetaFields = source.MetaFields 342 case AuditedResourceDescriptor_FieldPathSelectorMetadata: 343 result.Metadata = source.Metadata 344 wholeMetadataAccepted = true 345 } 346 case *AuditedResourceDescriptor_FieldSubPath: 347 switch tp.selector { 348 case AuditedResourceDescriptor_FieldPathSelectorLabels: 349 labelsMask.AppendPath(tp.subPath.(common.LabelDescriptor_FieldPath)) 350 case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets: 351 promotedLabelKeySetsMask.AppendPath(tp.subPath.(common.LabelKeySet_FieldPath)) 352 case AuditedResourceDescriptor_FieldPathSelectorMetadata: 353 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 354 } 355 } 356 } 357 if wholeLabelsAccepted == false && len(labelsMask.Paths) > 0 { 358 for _, sourceItem := range source.GetLabels() { 359 result.Labels = append(result.Labels, labelsMask.Project(sourceItem)) 360 } 361 } 362 if wholePromotedLabelKeySetsAccepted == false && len(promotedLabelKeySetsMask.Paths) > 0 { 363 for _, sourceItem := range source.GetPromotedLabelKeySets() { 364 result.PromotedLabelKeySets = append(result.PromotedLabelKeySets, promotedLabelKeySetsMask.Project(sourceItem)) 365 } 366 } 367 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 368 result.Metadata = metadataMask.Project(source.GetMetadata()) 369 } 370 return result 371 } 372 373 func (fieldMask *AuditedResourceDescriptor_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 374 return fieldMask.Project(source.(*AuditedResourceDescriptor)) 375 } 376 377 func (fieldMask *AuditedResourceDescriptor_FieldMask) PathsCount() int { 378 if fieldMask == nil { 379 return 0 380 } 381 return len(fieldMask.Paths) 382 }