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