github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1alpha2/provisioning_policy/provisioning_policy.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/devices/proto/v1alpha2/provisioning_policy.proto 3 // DO NOT EDIT!!! 4 5 package provisioning_policy 6 7 import ( 8 "encoding/json" 9 "fmt" 10 "reflect" 11 "strings" 12 "time" 13 14 "google.golang.org/grpc/codes" 15 "google.golang.org/grpc/status" 16 "google.golang.org/protobuf/encoding/protojson" 17 "google.golang.org/protobuf/proto" 18 "google.golang.org/protobuf/reflect/protoregistry" 19 20 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 21 "github.com/cloudwan/goten-sdk/runtime/strcase" 22 ) 23 24 // proto imports 25 import ( 26 device "github.com/cloudwan/edgelq-sdk/devices/resources/v1alpha2/device" 27 project "github.com/cloudwan/edgelq-sdk/devices/resources/v1alpha2/project" 28 iam_condition "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/condition" 29 iam_role "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/role" 30 iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/service_account" 31 meta "github.com/cloudwan/goten-sdk/types/meta" 32 ) 33 34 // ensure the imports are used 35 var ( 36 _ = new(json.Marshaler) 37 _ = new(fmt.Stringer) 38 _ = reflect.DeepEqual 39 _ = strings.Builder{} 40 _ = time.Second 41 42 _ = strcase.ToLowerCamel 43 _ = codes.NotFound 44 _ = status.Status{} 45 _ = protojson.UnmarshalOptions{} 46 _ = new(proto.Message) 47 _ = protoregistry.GlobalTypes 48 49 _ = new(gotenobject.FieldPath) 50 ) 51 52 // make sure we're using proto imports 53 var ( 54 _ = &device.Device{} 55 _ = &project.Project{} 56 _ = &iam_condition.Condition{} 57 _ = &iam_role.Role{} 58 _ = &iam_service_account.ServiceAccount{} 59 _ = &meta.Meta{} 60 ) 61 62 // FieldPath provides implementation to handle 63 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 64 type ProvisioningPolicy_FieldPath interface { 65 gotenobject.FieldPath 66 Selector() ProvisioningPolicy_FieldPathSelector 67 Get(source *ProvisioningPolicy) []interface{} 68 GetSingle(source *ProvisioningPolicy) (interface{}, bool) 69 ClearValue(item *ProvisioningPolicy) 70 71 // Those methods build corresponding ProvisioningPolicy_FieldPathValue 72 // (or array of values) and holds passed value. Panics if injected type is incorrect. 73 WithIValue(value interface{}) ProvisioningPolicy_FieldPathValue 74 WithIArrayOfValues(values interface{}) ProvisioningPolicy_FieldPathArrayOfValues 75 WithIArrayItemValue(value interface{}) ProvisioningPolicy_FieldPathArrayItemValue 76 } 77 78 type ProvisioningPolicy_FieldPathSelector int32 79 80 const ( 81 ProvisioningPolicy_FieldPathSelectorName ProvisioningPolicy_FieldPathSelector = 0 82 ProvisioningPolicy_FieldPathSelectorDisplayName ProvisioningPolicy_FieldPathSelector = 1 83 ProvisioningPolicy_FieldPathSelectorSpec ProvisioningPolicy_FieldPathSelector = 2 84 ProvisioningPolicy_FieldPathSelectorStatus ProvisioningPolicy_FieldPathSelector = 3 85 ProvisioningPolicy_FieldPathSelectorMetadata ProvisioningPolicy_FieldPathSelector = 4 86 ) 87 88 func (s ProvisioningPolicy_FieldPathSelector) String() string { 89 switch s { 90 case ProvisioningPolicy_FieldPathSelectorName: 91 return "name" 92 case ProvisioningPolicy_FieldPathSelectorDisplayName: 93 return "display_name" 94 case ProvisioningPolicy_FieldPathSelectorSpec: 95 return "spec" 96 case ProvisioningPolicy_FieldPathSelectorStatus: 97 return "status" 98 case ProvisioningPolicy_FieldPathSelectorMetadata: 99 return "metadata" 100 default: 101 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", s)) 102 } 103 } 104 105 func BuildProvisioningPolicy_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningPolicy_FieldPath, error) { 106 if len(fp) == 0 { 107 return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningPolicy") 108 } 109 if len(fp) == 1 { 110 switch fp[0] { 111 case "name": 112 return &ProvisioningPolicy_FieldTerminalPath{selector: ProvisioningPolicy_FieldPathSelectorName}, nil 113 case "display_name", "displayName", "display-name": 114 return &ProvisioningPolicy_FieldTerminalPath{selector: ProvisioningPolicy_FieldPathSelectorDisplayName}, nil 115 case "spec": 116 return &ProvisioningPolicy_FieldTerminalPath{selector: ProvisioningPolicy_FieldPathSelectorSpec}, nil 117 case "status": 118 return &ProvisioningPolicy_FieldTerminalPath{selector: ProvisioningPolicy_FieldPathSelectorStatus}, nil 119 case "metadata": 120 return &ProvisioningPolicy_FieldTerminalPath{selector: ProvisioningPolicy_FieldPathSelectorMetadata}, nil 121 } 122 } else { 123 switch fp[0] { 124 case "spec": 125 if subpath, err := BuildProvisioningPolicySpec_FieldPath(fp[1:]); err != nil { 126 return nil, err 127 } else { 128 return &ProvisioningPolicy_FieldSubPath{selector: ProvisioningPolicy_FieldPathSelectorSpec, subPath: subpath}, nil 129 } 130 case "status": 131 if subpath, err := BuildProvisioningPolicyStatus_FieldPath(fp[1:]); err != nil { 132 return nil, err 133 } else { 134 return &ProvisioningPolicy_FieldSubPath{selector: ProvisioningPolicy_FieldPathSelectorStatus, subPath: subpath}, nil 135 } 136 case "metadata": 137 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 138 return nil, err 139 } else { 140 return &ProvisioningPolicy_FieldSubPath{selector: ProvisioningPolicy_FieldPathSelectorMetadata, subPath: subpath}, nil 141 } 142 } 143 } 144 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningPolicy", fp) 145 } 146 147 func ParseProvisioningPolicy_FieldPath(rawField string) (ProvisioningPolicy_FieldPath, error) { 148 fp, err := gotenobject.ParseRawFieldPath(rawField) 149 if err != nil { 150 return nil, err 151 } 152 return BuildProvisioningPolicy_FieldPath(fp) 153 } 154 155 func MustParseProvisioningPolicy_FieldPath(rawField string) ProvisioningPolicy_FieldPath { 156 fp, err := ParseProvisioningPolicy_FieldPath(rawField) 157 if err != nil { 158 panic(err) 159 } 160 return fp 161 } 162 163 type ProvisioningPolicy_FieldTerminalPath struct { 164 selector ProvisioningPolicy_FieldPathSelector 165 } 166 167 var _ ProvisioningPolicy_FieldPath = (*ProvisioningPolicy_FieldTerminalPath)(nil) 168 169 func (fp *ProvisioningPolicy_FieldTerminalPath) Selector() ProvisioningPolicy_FieldPathSelector { 170 return fp.selector 171 } 172 173 // String returns path representation in proto convention 174 func (fp *ProvisioningPolicy_FieldTerminalPath) String() string { 175 return fp.selector.String() 176 } 177 178 // JSONString returns path representation is JSON convention 179 func (fp *ProvisioningPolicy_FieldTerminalPath) JSONString() string { 180 return strcase.ToLowerCamel(fp.String()) 181 } 182 183 // Get returns all values pointed by specific field from source ProvisioningPolicy 184 func (fp *ProvisioningPolicy_FieldTerminalPath) Get(source *ProvisioningPolicy) (values []interface{}) { 185 if source != nil { 186 switch fp.selector { 187 case ProvisioningPolicy_FieldPathSelectorName: 188 if source.Name != nil { 189 values = append(values, source.Name) 190 } 191 case ProvisioningPolicy_FieldPathSelectorDisplayName: 192 values = append(values, source.DisplayName) 193 case ProvisioningPolicy_FieldPathSelectorSpec: 194 if source.Spec != nil { 195 values = append(values, source.Spec) 196 } 197 case ProvisioningPolicy_FieldPathSelectorStatus: 198 if source.Status != nil { 199 values = append(values, source.Status) 200 } 201 case ProvisioningPolicy_FieldPathSelectorMetadata: 202 if source.Metadata != nil { 203 values = append(values, source.Metadata) 204 } 205 default: 206 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 207 } 208 } 209 return 210 } 211 212 func (fp *ProvisioningPolicy_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 213 return fp.Get(source.(*ProvisioningPolicy)) 214 } 215 216 // GetSingle returns value pointed by specific field of from source ProvisioningPolicy 217 func (fp *ProvisioningPolicy_FieldTerminalPath) GetSingle(source *ProvisioningPolicy) (interface{}, bool) { 218 switch fp.selector { 219 case ProvisioningPolicy_FieldPathSelectorName: 220 res := source.GetName() 221 return res, res != nil 222 case ProvisioningPolicy_FieldPathSelectorDisplayName: 223 return source.GetDisplayName(), source != nil 224 case ProvisioningPolicy_FieldPathSelectorSpec: 225 res := source.GetSpec() 226 return res, res != nil 227 case ProvisioningPolicy_FieldPathSelectorStatus: 228 res := source.GetStatus() 229 return res, res != nil 230 case ProvisioningPolicy_FieldPathSelectorMetadata: 231 res := source.GetMetadata() 232 return res, res != nil 233 default: 234 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 235 } 236 } 237 238 func (fp *ProvisioningPolicy_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 239 return fp.GetSingle(source.(*ProvisioningPolicy)) 240 } 241 242 // GetDefault returns a default value of the field type 243 func (fp *ProvisioningPolicy_FieldTerminalPath) GetDefault() interface{} { 244 switch fp.selector { 245 case ProvisioningPolicy_FieldPathSelectorName: 246 return (*Name)(nil) 247 case ProvisioningPolicy_FieldPathSelectorDisplayName: 248 return "" 249 case ProvisioningPolicy_FieldPathSelectorSpec: 250 return (*ProvisioningPolicy_Spec)(nil) 251 case ProvisioningPolicy_FieldPathSelectorStatus: 252 return (*ProvisioningPolicy_Status)(nil) 253 case ProvisioningPolicy_FieldPathSelectorMetadata: 254 return (*meta.Meta)(nil) 255 default: 256 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 257 } 258 } 259 260 func (fp *ProvisioningPolicy_FieldTerminalPath) ClearValue(item *ProvisioningPolicy) { 261 if item != nil { 262 switch fp.selector { 263 case ProvisioningPolicy_FieldPathSelectorName: 264 item.Name = nil 265 case ProvisioningPolicy_FieldPathSelectorDisplayName: 266 item.DisplayName = "" 267 case ProvisioningPolicy_FieldPathSelectorSpec: 268 item.Spec = nil 269 case ProvisioningPolicy_FieldPathSelectorStatus: 270 item.Status = nil 271 case ProvisioningPolicy_FieldPathSelectorMetadata: 272 item.Metadata = nil 273 default: 274 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 275 } 276 } 277 } 278 279 func (fp *ProvisioningPolicy_FieldTerminalPath) ClearValueRaw(item proto.Message) { 280 fp.ClearValue(item.(*ProvisioningPolicy)) 281 } 282 283 // IsLeaf - whether field path is holds simple value 284 func (fp *ProvisioningPolicy_FieldTerminalPath) IsLeaf() bool { 285 return fp.selector == ProvisioningPolicy_FieldPathSelectorName || 286 fp.selector == ProvisioningPolicy_FieldPathSelectorDisplayName 287 } 288 289 func (fp *ProvisioningPolicy_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 290 return []gotenobject.FieldPath{fp} 291 } 292 293 func (fp *ProvisioningPolicy_FieldTerminalPath) WithIValue(value interface{}) ProvisioningPolicy_FieldPathValue { 294 switch fp.selector { 295 case ProvisioningPolicy_FieldPathSelectorName: 296 return &ProvisioningPolicy_FieldTerminalPathValue{ProvisioningPolicy_FieldTerminalPath: *fp, value: value.(*Name)} 297 case ProvisioningPolicy_FieldPathSelectorDisplayName: 298 return &ProvisioningPolicy_FieldTerminalPathValue{ProvisioningPolicy_FieldTerminalPath: *fp, value: value.(string)} 299 case ProvisioningPolicy_FieldPathSelectorSpec: 300 return &ProvisioningPolicy_FieldTerminalPathValue{ProvisioningPolicy_FieldTerminalPath: *fp, value: value.(*ProvisioningPolicy_Spec)} 301 case ProvisioningPolicy_FieldPathSelectorStatus: 302 return &ProvisioningPolicy_FieldTerminalPathValue{ProvisioningPolicy_FieldTerminalPath: *fp, value: value.(*ProvisioningPolicy_Status)} 303 case ProvisioningPolicy_FieldPathSelectorMetadata: 304 return &ProvisioningPolicy_FieldTerminalPathValue{ProvisioningPolicy_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 305 default: 306 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 307 } 308 } 309 310 func (fp *ProvisioningPolicy_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 311 return fp.WithIValue(value) 312 } 313 314 func (fp *ProvisioningPolicy_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningPolicy_FieldPathArrayOfValues { 315 fpaov := &ProvisioningPolicy_FieldTerminalPathArrayOfValues{ProvisioningPolicy_FieldTerminalPath: *fp} 316 switch fp.selector { 317 case ProvisioningPolicy_FieldPathSelectorName: 318 return &ProvisioningPolicy_FieldTerminalPathArrayOfValues{ProvisioningPolicy_FieldTerminalPath: *fp, values: values.([]*Name)} 319 case ProvisioningPolicy_FieldPathSelectorDisplayName: 320 return &ProvisioningPolicy_FieldTerminalPathArrayOfValues{ProvisioningPolicy_FieldTerminalPath: *fp, values: values.([]string)} 321 case ProvisioningPolicy_FieldPathSelectorSpec: 322 return &ProvisioningPolicy_FieldTerminalPathArrayOfValues{ProvisioningPolicy_FieldTerminalPath: *fp, values: values.([]*ProvisioningPolicy_Spec)} 323 case ProvisioningPolicy_FieldPathSelectorStatus: 324 return &ProvisioningPolicy_FieldTerminalPathArrayOfValues{ProvisioningPolicy_FieldTerminalPath: *fp, values: values.([]*ProvisioningPolicy_Status)} 325 case ProvisioningPolicy_FieldPathSelectorMetadata: 326 return &ProvisioningPolicy_FieldTerminalPathArrayOfValues{ProvisioningPolicy_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 327 default: 328 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 329 } 330 return fpaov 331 } 332 333 func (fp *ProvisioningPolicy_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 334 return fp.WithIArrayOfValues(values) 335 } 336 337 func (fp *ProvisioningPolicy_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningPolicy_FieldPathArrayItemValue { 338 switch fp.selector { 339 default: 340 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fp.selector)) 341 } 342 } 343 344 func (fp *ProvisioningPolicy_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 345 return fp.WithIArrayItemValue(value) 346 } 347 348 type ProvisioningPolicy_FieldSubPath struct { 349 selector ProvisioningPolicy_FieldPathSelector 350 subPath gotenobject.FieldPath 351 } 352 353 var _ ProvisioningPolicy_FieldPath = (*ProvisioningPolicy_FieldSubPath)(nil) 354 355 func (fps *ProvisioningPolicy_FieldSubPath) Selector() ProvisioningPolicy_FieldPathSelector { 356 return fps.selector 357 } 358 func (fps *ProvisioningPolicy_FieldSubPath) AsSpecSubPath() (ProvisioningPolicySpec_FieldPath, bool) { 359 res, ok := fps.subPath.(ProvisioningPolicySpec_FieldPath) 360 return res, ok 361 } 362 func (fps *ProvisioningPolicy_FieldSubPath) AsStatusSubPath() (ProvisioningPolicyStatus_FieldPath, bool) { 363 res, ok := fps.subPath.(ProvisioningPolicyStatus_FieldPath) 364 return res, ok 365 } 366 func (fps *ProvisioningPolicy_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 367 res, ok := fps.subPath.(meta.Meta_FieldPath) 368 return res, ok 369 } 370 371 // String returns path representation in proto convention 372 func (fps *ProvisioningPolicy_FieldSubPath) String() string { 373 return fps.selector.String() + "." + fps.subPath.String() 374 } 375 376 // JSONString returns path representation is JSON convention 377 func (fps *ProvisioningPolicy_FieldSubPath) JSONString() string { 378 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 379 } 380 381 // Get returns all values pointed by selected field from source ProvisioningPolicy 382 func (fps *ProvisioningPolicy_FieldSubPath) Get(source *ProvisioningPolicy) (values []interface{}) { 383 switch fps.selector { 384 case ProvisioningPolicy_FieldPathSelectorSpec: 385 values = append(values, fps.subPath.GetRaw(source.GetSpec())...) 386 case ProvisioningPolicy_FieldPathSelectorStatus: 387 values = append(values, fps.subPath.GetRaw(source.GetStatus())...) 388 case ProvisioningPolicy_FieldPathSelectorMetadata: 389 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 390 default: 391 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fps.selector)) 392 } 393 return 394 } 395 396 func (fps *ProvisioningPolicy_FieldSubPath) GetRaw(source proto.Message) []interface{} { 397 return fps.Get(source.(*ProvisioningPolicy)) 398 } 399 400 // GetSingle returns value of selected field from source ProvisioningPolicy 401 func (fps *ProvisioningPolicy_FieldSubPath) GetSingle(source *ProvisioningPolicy) (interface{}, bool) { 402 switch fps.selector { 403 case ProvisioningPolicy_FieldPathSelectorSpec: 404 if source.GetSpec() == nil { 405 return nil, false 406 } 407 return fps.subPath.GetSingleRaw(source.GetSpec()) 408 case ProvisioningPolicy_FieldPathSelectorStatus: 409 if source.GetStatus() == nil { 410 return nil, false 411 } 412 return fps.subPath.GetSingleRaw(source.GetStatus()) 413 case ProvisioningPolicy_FieldPathSelectorMetadata: 414 if source.GetMetadata() == nil { 415 return nil, false 416 } 417 return fps.subPath.GetSingleRaw(source.GetMetadata()) 418 default: 419 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fps.selector)) 420 } 421 } 422 423 func (fps *ProvisioningPolicy_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 424 return fps.GetSingle(source.(*ProvisioningPolicy)) 425 } 426 427 // GetDefault returns a default value of the field type 428 func (fps *ProvisioningPolicy_FieldSubPath) GetDefault() interface{} { 429 return fps.subPath.GetDefault() 430 } 431 432 func (fps *ProvisioningPolicy_FieldSubPath) ClearValue(item *ProvisioningPolicy) { 433 if item != nil { 434 switch fps.selector { 435 case ProvisioningPolicy_FieldPathSelectorSpec: 436 fps.subPath.ClearValueRaw(item.Spec) 437 case ProvisioningPolicy_FieldPathSelectorStatus: 438 fps.subPath.ClearValueRaw(item.Status) 439 case ProvisioningPolicy_FieldPathSelectorMetadata: 440 fps.subPath.ClearValueRaw(item.Metadata) 441 default: 442 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fps.selector)) 443 } 444 } 445 } 446 447 func (fps *ProvisioningPolicy_FieldSubPath) ClearValueRaw(item proto.Message) { 448 fps.ClearValue(item.(*ProvisioningPolicy)) 449 } 450 451 // IsLeaf - whether field path is holds simple value 452 func (fps *ProvisioningPolicy_FieldSubPath) IsLeaf() bool { 453 return fps.subPath.IsLeaf() 454 } 455 456 func (fps *ProvisioningPolicy_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 457 iPaths := []gotenobject.FieldPath{&ProvisioningPolicy_FieldTerminalPath{selector: fps.selector}} 458 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 459 return iPaths 460 } 461 462 func (fps *ProvisioningPolicy_FieldSubPath) WithIValue(value interface{}) ProvisioningPolicy_FieldPathValue { 463 return &ProvisioningPolicy_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 464 } 465 466 func (fps *ProvisioningPolicy_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 467 return fps.WithIValue(value) 468 } 469 470 func (fps *ProvisioningPolicy_FieldSubPath) WithIArrayOfValues(values interface{}) ProvisioningPolicy_FieldPathArrayOfValues { 471 return &ProvisioningPolicy_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 472 } 473 474 func (fps *ProvisioningPolicy_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 475 return fps.WithIArrayOfValues(values) 476 } 477 478 func (fps *ProvisioningPolicy_FieldSubPath) WithIArrayItemValue(value interface{}) ProvisioningPolicy_FieldPathArrayItemValue { 479 return &ProvisioningPolicy_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 480 } 481 482 func (fps *ProvisioningPolicy_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 483 return fps.WithIArrayItemValue(value) 484 } 485 486 // ProvisioningPolicy_FieldPathValue allows storing values for ProvisioningPolicy fields according to their type 487 type ProvisioningPolicy_FieldPathValue interface { 488 ProvisioningPolicy_FieldPath 489 gotenobject.FieldPathValue 490 SetTo(target **ProvisioningPolicy) 491 CompareWith(*ProvisioningPolicy) (cmp int, comparable bool) 492 } 493 494 func ParseProvisioningPolicy_FieldPathValue(pathStr, valueStr string) (ProvisioningPolicy_FieldPathValue, error) { 495 fp, err := ParseProvisioningPolicy_FieldPath(pathStr) 496 if err != nil { 497 return nil, err 498 } 499 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 500 if err != nil { 501 return nil, status.Errorf(codes.InvalidArgument, "error parsing ProvisioningPolicy field path value from %s: %v", valueStr, err) 502 } 503 return fpv.(ProvisioningPolicy_FieldPathValue), nil 504 } 505 506 func MustParseProvisioningPolicy_FieldPathValue(pathStr, valueStr string) ProvisioningPolicy_FieldPathValue { 507 fpv, err := ParseProvisioningPolicy_FieldPathValue(pathStr, valueStr) 508 if err != nil { 509 panic(err) 510 } 511 return fpv 512 } 513 514 type ProvisioningPolicy_FieldTerminalPathValue struct { 515 ProvisioningPolicy_FieldTerminalPath 516 value interface{} 517 } 518 519 var _ ProvisioningPolicy_FieldPathValue = (*ProvisioningPolicy_FieldTerminalPathValue)(nil) 520 521 // GetRawValue returns raw value stored under selected path for 'ProvisioningPolicy' as interface{} 522 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) GetRawValue() interface{} { 523 return fpv.value 524 } 525 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 526 res, ok := fpv.value.(*Name) 527 return res, ok 528 } 529 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) { 530 res, ok := fpv.value.(string) 531 return res, ok 532 } 533 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) AsSpecValue() (*ProvisioningPolicy_Spec, bool) { 534 res, ok := fpv.value.(*ProvisioningPolicy_Spec) 535 return res, ok 536 } 537 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) AsStatusValue() (*ProvisioningPolicy_Status, bool) { 538 res, ok := fpv.value.(*ProvisioningPolicy_Status) 539 return res, ok 540 } 541 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 542 res, ok := fpv.value.(*meta.Meta) 543 return res, ok 544 } 545 546 // SetTo stores value for selected field for object ProvisioningPolicy 547 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) SetTo(target **ProvisioningPolicy) { 548 if *target == nil { 549 *target = new(ProvisioningPolicy) 550 } 551 switch fpv.selector { 552 case ProvisioningPolicy_FieldPathSelectorName: 553 (*target).Name = fpv.value.(*Name) 554 case ProvisioningPolicy_FieldPathSelectorDisplayName: 555 (*target).DisplayName = fpv.value.(string) 556 case ProvisioningPolicy_FieldPathSelectorSpec: 557 (*target).Spec = fpv.value.(*ProvisioningPolicy_Spec) 558 case ProvisioningPolicy_FieldPathSelectorStatus: 559 (*target).Status = fpv.value.(*ProvisioningPolicy_Status) 560 case ProvisioningPolicy_FieldPathSelectorMetadata: 561 (*target).Metadata = fpv.value.(*meta.Meta) 562 default: 563 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fpv.selector)) 564 } 565 } 566 567 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) SetToRaw(target proto.Message) { 568 typedObject := target.(*ProvisioningPolicy) 569 fpv.SetTo(&typedObject) 570 } 571 572 // CompareWith compares value in the 'ProvisioningPolicy_FieldTerminalPathValue' with the value under path in 'ProvisioningPolicy'. 573 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) CompareWith(source *ProvisioningPolicy) (int, bool) { 574 switch fpv.selector { 575 case ProvisioningPolicy_FieldPathSelectorName: 576 leftValue := fpv.value.(*Name) 577 rightValue := source.GetName() 578 if leftValue == nil { 579 if rightValue != nil { 580 return -1, true 581 } 582 return 0, true 583 } 584 if rightValue == nil { 585 return 1, true 586 } 587 if leftValue.String() == rightValue.String() { 588 return 0, true 589 } else if leftValue.String() < rightValue.String() { 590 return -1, true 591 } else { 592 return 1, true 593 } 594 case ProvisioningPolicy_FieldPathSelectorDisplayName: 595 leftValue := fpv.value.(string) 596 rightValue := source.GetDisplayName() 597 if (leftValue) == (rightValue) { 598 return 0, true 599 } else if (leftValue) < (rightValue) { 600 return -1, true 601 } else { 602 return 1, true 603 } 604 case ProvisioningPolicy_FieldPathSelectorSpec: 605 return 0, false 606 case ProvisioningPolicy_FieldPathSelectorStatus: 607 return 0, false 608 case ProvisioningPolicy_FieldPathSelectorMetadata: 609 return 0, false 610 default: 611 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fpv.selector)) 612 } 613 } 614 615 func (fpv *ProvisioningPolicy_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 616 return fpv.CompareWith(source.(*ProvisioningPolicy)) 617 } 618 619 type ProvisioningPolicy_FieldSubPathValue struct { 620 ProvisioningPolicy_FieldPath 621 subPathValue gotenobject.FieldPathValue 622 } 623 624 var _ ProvisioningPolicy_FieldPathValue = (*ProvisioningPolicy_FieldSubPathValue)(nil) 625 626 func (fpvs *ProvisioningPolicy_FieldSubPathValue) AsSpecPathValue() (ProvisioningPolicySpec_FieldPathValue, bool) { 627 res, ok := fpvs.subPathValue.(ProvisioningPolicySpec_FieldPathValue) 628 return res, ok 629 } 630 func (fpvs *ProvisioningPolicy_FieldSubPathValue) AsStatusPathValue() (ProvisioningPolicyStatus_FieldPathValue, bool) { 631 res, ok := fpvs.subPathValue.(ProvisioningPolicyStatus_FieldPathValue) 632 return res, ok 633 } 634 func (fpvs *ProvisioningPolicy_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 635 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 636 return res, ok 637 } 638 639 func (fpvs *ProvisioningPolicy_FieldSubPathValue) SetTo(target **ProvisioningPolicy) { 640 if *target == nil { 641 *target = new(ProvisioningPolicy) 642 } 643 switch fpvs.Selector() { 644 case ProvisioningPolicy_FieldPathSelectorSpec: 645 fpvs.subPathValue.(ProvisioningPolicySpec_FieldPathValue).SetTo(&(*target).Spec) 646 case ProvisioningPolicy_FieldPathSelectorStatus: 647 fpvs.subPathValue.(ProvisioningPolicyStatus_FieldPathValue).SetTo(&(*target).Status) 648 case ProvisioningPolicy_FieldPathSelectorMetadata: 649 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 650 default: 651 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fpvs.Selector())) 652 } 653 } 654 655 func (fpvs *ProvisioningPolicy_FieldSubPathValue) SetToRaw(target proto.Message) { 656 typedObject := target.(*ProvisioningPolicy) 657 fpvs.SetTo(&typedObject) 658 } 659 660 func (fpvs *ProvisioningPolicy_FieldSubPathValue) GetRawValue() interface{} { 661 return fpvs.subPathValue.GetRawValue() 662 } 663 664 func (fpvs *ProvisioningPolicy_FieldSubPathValue) CompareWith(source *ProvisioningPolicy) (int, bool) { 665 switch fpvs.Selector() { 666 case ProvisioningPolicy_FieldPathSelectorSpec: 667 return fpvs.subPathValue.(ProvisioningPolicySpec_FieldPathValue).CompareWith(source.GetSpec()) 668 case ProvisioningPolicy_FieldPathSelectorStatus: 669 return fpvs.subPathValue.(ProvisioningPolicyStatus_FieldPathValue).CompareWith(source.GetStatus()) 670 case ProvisioningPolicy_FieldPathSelectorMetadata: 671 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 672 default: 673 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fpvs.Selector())) 674 } 675 } 676 677 func (fpvs *ProvisioningPolicy_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 678 return fpvs.CompareWith(source.(*ProvisioningPolicy)) 679 } 680 681 // ProvisioningPolicy_FieldPathArrayItemValue allows storing single item in Path-specific values for ProvisioningPolicy according to their type 682 // Present only for array (repeated) types. 683 type ProvisioningPolicy_FieldPathArrayItemValue interface { 684 gotenobject.FieldPathArrayItemValue 685 ProvisioningPolicy_FieldPath 686 ContainsValue(*ProvisioningPolicy) bool 687 } 688 689 // ParseProvisioningPolicy_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 690 func ParseProvisioningPolicy_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningPolicy_FieldPathArrayItemValue, error) { 691 fp, err := ParseProvisioningPolicy_FieldPath(pathStr) 692 if err != nil { 693 return nil, err 694 } 695 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 696 if err != nil { 697 return nil, status.Errorf(codes.InvalidArgument, "error parsing ProvisioningPolicy field path array item value from %s: %v", valueStr, err) 698 } 699 return fpaiv.(ProvisioningPolicy_FieldPathArrayItemValue), nil 700 } 701 702 func MustParseProvisioningPolicy_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningPolicy_FieldPathArrayItemValue { 703 fpaiv, err := ParseProvisioningPolicy_FieldPathArrayItemValue(pathStr, valueStr) 704 if err != nil { 705 panic(err) 706 } 707 return fpaiv 708 } 709 710 type ProvisioningPolicy_FieldTerminalPathArrayItemValue struct { 711 ProvisioningPolicy_FieldTerminalPath 712 value interface{} 713 } 714 715 var _ ProvisioningPolicy_FieldPathArrayItemValue = (*ProvisioningPolicy_FieldTerminalPathArrayItemValue)(nil) 716 717 // GetRawValue returns stored element value for array in object ProvisioningPolicy as interface{} 718 func (fpaiv *ProvisioningPolicy_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 719 return fpaiv.value 720 } 721 722 func (fpaiv *ProvisioningPolicy_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningPolicy) (interface{}, bool) { 723 return nil, false 724 } 725 726 func (fpaiv *ProvisioningPolicy_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 727 return fpaiv.GetSingle(source.(*ProvisioningPolicy)) 728 } 729 730 // Contains returns a boolean indicating if value that is being held is present in given 'ProvisioningPolicy' 731 func (fpaiv *ProvisioningPolicy_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningPolicy) bool { 732 slice := fpaiv.ProvisioningPolicy_FieldTerminalPath.Get(source) 733 for _, v := range slice { 734 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 735 if proto.Equal(asProtoMsg, v.(proto.Message)) { 736 return true 737 } 738 } else if reflect.DeepEqual(v, fpaiv.value) { 739 return true 740 } 741 } 742 return false 743 } 744 745 type ProvisioningPolicy_FieldSubPathArrayItemValue struct { 746 ProvisioningPolicy_FieldPath 747 subPathItemValue gotenobject.FieldPathArrayItemValue 748 } 749 750 // GetRawValue returns stored array item value 751 func (fpaivs *ProvisioningPolicy_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 752 return fpaivs.subPathItemValue.GetRawItemValue() 753 } 754 func (fpaivs *ProvisioningPolicy_FieldSubPathArrayItemValue) AsSpecPathItemValue() (ProvisioningPolicySpec_FieldPathArrayItemValue, bool) { 755 res, ok := fpaivs.subPathItemValue.(ProvisioningPolicySpec_FieldPathArrayItemValue) 756 return res, ok 757 } 758 func (fpaivs *ProvisioningPolicy_FieldSubPathArrayItemValue) AsStatusPathItemValue() (ProvisioningPolicyStatus_FieldPathArrayItemValue, bool) { 759 res, ok := fpaivs.subPathItemValue.(ProvisioningPolicyStatus_FieldPathArrayItemValue) 760 return res, ok 761 } 762 func (fpaivs *ProvisioningPolicy_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 763 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 764 return res, ok 765 } 766 767 // Contains returns a boolean indicating if value that is being held is present in given 'ProvisioningPolicy' 768 func (fpaivs *ProvisioningPolicy_FieldSubPathArrayItemValue) ContainsValue(source *ProvisioningPolicy) bool { 769 switch fpaivs.Selector() { 770 case ProvisioningPolicy_FieldPathSelectorSpec: 771 return fpaivs.subPathItemValue.(ProvisioningPolicySpec_FieldPathArrayItemValue).ContainsValue(source.GetSpec()) 772 case ProvisioningPolicy_FieldPathSelectorStatus: 773 return fpaivs.subPathItemValue.(ProvisioningPolicyStatus_FieldPathArrayItemValue).ContainsValue(source.GetStatus()) 774 case ProvisioningPolicy_FieldPathSelectorMetadata: 775 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 776 default: 777 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy: %d", fpaivs.Selector())) 778 } 779 } 780 781 // ProvisioningPolicy_FieldPathArrayOfValues allows storing slice of values for ProvisioningPolicy fields according to their type 782 type ProvisioningPolicy_FieldPathArrayOfValues interface { 783 gotenobject.FieldPathArrayOfValues 784 ProvisioningPolicy_FieldPath 785 } 786 787 func ParseProvisioningPolicy_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningPolicy_FieldPathArrayOfValues, error) { 788 fp, err := ParseProvisioningPolicy_FieldPath(pathStr) 789 if err != nil { 790 return nil, err 791 } 792 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 793 if err != nil { 794 return nil, status.Errorf(codes.InvalidArgument, "error parsing ProvisioningPolicy field path array of values from %s: %v", valuesStr, err) 795 } 796 return fpaov.(ProvisioningPolicy_FieldPathArrayOfValues), nil 797 } 798 799 func MustParseProvisioningPolicy_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningPolicy_FieldPathArrayOfValues { 800 fpaov, err := ParseProvisioningPolicy_FieldPathArrayOfValues(pathStr, valuesStr) 801 if err != nil { 802 panic(err) 803 } 804 return fpaov 805 } 806 807 type ProvisioningPolicy_FieldTerminalPathArrayOfValues struct { 808 ProvisioningPolicy_FieldTerminalPath 809 values interface{} 810 } 811 812 var _ ProvisioningPolicy_FieldPathArrayOfValues = (*ProvisioningPolicy_FieldTerminalPathArrayOfValues)(nil) 813 814 func (fpaov *ProvisioningPolicy_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 815 switch fpaov.selector { 816 case ProvisioningPolicy_FieldPathSelectorName: 817 for _, v := range fpaov.values.([]*Name) { 818 values = append(values, v) 819 } 820 case ProvisioningPolicy_FieldPathSelectorDisplayName: 821 for _, v := range fpaov.values.([]string) { 822 values = append(values, v) 823 } 824 case ProvisioningPolicy_FieldPathSelectorSpec: 825 for _, v := range fpaov.values.([]*ProvisioningPolicy_Spec) { 826 values = append(values, v) 827 } 828 case ProvisioningPolicy_FieldPathSelectorStatus: 829 for _, v := range fpaov.values.([]*ProvisioningPolicy_Status) { 830 values = append(values, v) 831 } 832 case ProvisioningPolicy_FieldPathSelectorMetadata: 833 for _, v := range fpaov.values.([]*meta.Meta) { 834 values = append(values, v) 835 } 836 } 837 return 838 } 839 func (fpaov *ProvisioningPolicy_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 840 res, ok := fpaov.values.([]*Name) 841 return res, ok 842 } 843 func (fpaov *ProvisioningPolicy_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) { 844 res, ok := fpaov.values.([]string) 845 return res, ok 846 } 847 func (fpaov *ProvisioningPolicy_FieldTerminalPathArrayOfValues) AsSpecArrayOfValues() ([]*ProvisioningPolicy_Spec, bool) { 848 res, ok := fpaov.values.([]*ProvisioningPolicy_Spec) 849 return res, ok 850 } 851 func (fpaov *ProvisioningPolicy_FieldTerminalPathArrayOfValues) AsStatusArrayOfValues() ([]*ProvisioningPolicy_Status, bool) { 852 res, ok := fpaov.values.([]*ProvisioningPolicy_Status) 853 return res, ok 854 } 855 func (fpaov *ProvisioningPolicy_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 856 res, ok := fpaov.values.([]*meta.Meta) 857 return res, ok 858 } 859 860 type ProvisioningPolicy_FieldSubPathArrayOfValues struct { 861 ProvisioningPolicy_FieldPath 862 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 863 } 864 865 var _ ProvisioningPolicy_FieldPathArrayOfValues = (*ProvisioningPolicy_FieldSubPathArrayOfValues)(nil) 866 867 func (fpsaov *ProvisioningPolicy_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 868 return fpsaov.subPathArrayOfValues.GetRawValues() 869 } 870 func (fpsaov *ProvisioningPolicy_FieldSubPathArrayOfValues) AsSpecPathArrayOfValues() (ProvisioningPolicySpec_FieldPathArrayOfValues, bool) { 871 res, ok := fpsaov.subPathArrayOfValues.(ProvisioningPolicySpec_FieldPathArrayOfValues) 872 return res, ok 873 } 874 func (fpsaov *ProvisioningPolicy_FieldSubPathArrayOfValues) AsStatusPathArrayOfValues() (ProvisioningPolicyStatus_FieldPathArrayOfValues, bool) { 875 res, ok := fpsaov.subPathArrayOfValues.(ProvisioningPolicyStatus_FieldPathArrayOfValues) 876 return res, ok 877 } 878 func (fpsaov *ProvisioningPolicy_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 879 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 880 return res, ok 881 } 882 883 // FieldPath provides implementation to handle 884 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 885 type ProvisioningPolicySpec_FieldPath interface { 886 gotenobject.FieldPath 887 Selector() ProvisioningPolicySpec_FieldPathSelector 888 Get(source *ProvisioningPolicy_Spec) []interface{} 889 GetSingle(source *ProvisioningPolicy_Spec) (interface{}, bool) 890 ClearValue(item *ProvisioningPolicy_Spec) 891 892 // Those methods build corresponding ProvisioningPolicySpec_FieldPathValue 893 // (or array of values) and holds passed value. Panics if injected type is incorrect. 894 WithIValue(value interface{}) ProvisioningPolicySpec_FieldPathValue 895 WithIArrayOfValues(values interface{}) ProvisioningPolicySpec_FieldPathArrayOfValues 896 WithIArrayItemValue(value interface{}) ProvisioningPolicySpec_FieldPathArrayItemValue 897 } 898 899 type ProvisioningPolicySpec_FieldPathSelector int32 900 901 const ( 902 ProvisioningPolicySpec_FieldPathSelectorMode ProvisioningPolicySpec_FieldPathSelector = 0 903 ProvisioningPolicySpec_FieldPathSelectorServiceAccount ProvisioningPolicySpec_FieldPathSelector = 1 904 ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat ProvisioningPolicySpec_FieldPathSelector = 2 905 ProvisioningPolicySpec_FieldPathSelectorLabels ProvisioningPolicySpec_FieldPathSelector = 3 906 ProvisioningPolicySpec_FieldPathSelectorTemplate ProvisioningPolicySpec_FieldPathSelector = 4 907 ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths ProvisioningPolicySpec_FieldPathSelector = 5 908 ProvisioningPolicySpec_FieldPathSelectorRole ProvisioningPolicySpec_FieldPathSelector = 6 909 ProvisioningPolicySpec_FieldPathSelectorCondition ProvisioningPolicySpec_FieldPathSelector = 7 910 ) 911 912 func (s ProvisioningPolicySpec_FieldPathSelector) String() string { 913 switch s { 914 case ProvisioningPolicySpec_FieldPathSelectorMode: 915 return "mode" 916 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 917 return "service_account" 918 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 919 return "device_name_format" 920 case ProvisioningPolicySpec_FieldPathSelectorLabels: 921 return "labels" 922 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 923 return "template" 924 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 925 return "identity_field_paths" 926 case ProvisioningPolicySpec_FieldPathSelectorRole: 927 return "role" 928 case ProvisioningPolicySpec_FieldPathSelectorCondition: 929 return "condition" 930 default: 931 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", s)) 932 } 933 } 934 935 func BuildProvisioningPolicySpec_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningPolicySpec_FieldPath, error) { 936 if len(fp) == 0 { 937 return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningPolicy_Spec") 938 } 939 if len(fp) == 1 { 940 switch fp[0] { 941 case "mode": 942 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorMode}, nil 943 case "service_account", "serviceAccount", "service-account": 944 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorServiceAccount}, nil 945 case "device_name_format", "deviceNameFormat", "device-name-format": 946 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat}, nil 947 case "labels": 948 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorLabels}, nil 949 case "template": 950 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorTemplate}, nil 951 case "identity_field_paths", "identityFieldPaths", "identity-field-paths": 952 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths}, nil 953 case "role": 954 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorRole}, nil 955 case "condition": 956 return &ProvisioningPolicySpec_FieldTerminalPath{selector: ProvisioningPolicySpec_FieldPathSelectorCondition}, nil 957 } 958 } else { 959 switch fp[0] { 960 case "template": 961 if subpath, err := BuildProvisioningPolicySpecTemplate_FieldPath(fp[1:]); err != nil { 962 return nil, err 963 } else { 964 return &ProvisioningPolicySpec_FieldSubPath{selector: ProvisioningPolicySpec_FieldPathSelectorTemplate, subPath: subpath}, nil 965 } 966 case "labels": 967 if len(fp) > 2 { 968 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object ProvisioningPolicy_Spec)", fp) 969 } 970 return &ProvisioningPolicySpec_FieldPathMap{selector: ProvisioningPolicySpec_FieldPathSelectorLabels, key: fp[1]}, nil 971 } 972 } 973 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningPolicy_Spec", fp) 974 } 975 976 func ParseProvisioningPolicySpec_FieldPath(rawField string) (ProvisioningPolicySpec_FieldPath, error) { 977 fp, err := gotenobject.ParseRawFieldPath(rawField) 978 if err != nil { 979 return nil, err 980 } 981 return BuildProvisioningPolicySpec_FieldPath(fp) 982 } 983 984 func MustParseProvisioningPolicySpec_FieldPath(rawField string) ProvisioningPolicySpec_FieldPath { 985 fp, err := ParseProvisioningPolicySpec_FieldPath(rawField) 986 if err != nil { 987 panic(err) 988 } 989 return fp 990 } 991 992 type ProvisioningPolicySpec_FieldTerminalPath struct { 993 selector ProvisioningPolicySpec_FieldPathSelector 994 } 995 996 var _ ProvisioningPolicySpec_FieldPath = (*ProvisioningPolicySpec_FieldTerminalPath)(nil) 997 998 func (fp *ProvisioningPolicySpec_FieldTerminalPath) Selector() ProvisioningPolicySpec_FieldPathSelector { 999 return fp.selector 1000 } 1001 1002 // String returns path representation in proto convention 1003 func (fp *ProvisioningPolicySpec_FieldTerminalPath) String() string { 1004 return fp.selector.String() 1005 } 1006 1007 // JSONString returns path representation is JSON convention 1008 func (fp *ProvisioningPolicySpec_FieldTerminalPath) JSONString() string { 1009 return strcase.ToLowerCamel(fp.String()) 1010 } 1011 1012 // Get returns all values pointed by specific field from source ProvisioningPolicy_Spec 1013 func (fp *ProvisioningPolicySpec_FieldTerminalPath) Get(source *ProvisioningPolicy_Spec) (values []interface{}) { 1014 if source != nil { 1015 switch fp.selector { 1016 case ProvisioningPolicySpec_FieldPathSelectorMode: 1017 values = append(values, source.Mode) 1018 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1019 if source.ServiceAccount != nil { 1020 values = append(values, source.ServiceAccount) 1021 } 1022 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1023 values = append(values, source.DeviceNameFormat) 1024 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1025 values = append(values, source.Labels) 1026 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1027 if source.Template != nil { 1028 values = append(values, source.Template) 1029 } 1030 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1031 for _, value := range source.GetIdentityFieldPaths() { 1032 values = append(values, value) 1033 } 1034 case ProvisioningPolicySpec_FieldPathSelectorRole: 1035 if source.Role != nil { 1036 values = append(values, source.Role) 1037 } 1038 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1039 if source.Condition != nil { 1040 values = append(values, source.Condition) 1041 } 1042 default: 1043 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1044 } 1045 } 1046 return 1047 } 1048 1049 func (fp *ProvisioningPolicySpec_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1050 return fp.Get(source.(*ProvisioningPolicy_Spec)) 1051 } 1052 1053 // GetSingle returns value pointed by specific field of from source ProvisioningPolicy_Spec 1054 func (fp *ProvisioningPolicySpec_FieldTerminalPath) GetSingle(source *ProvisioningPolicy_Spec) (interface{}, bool) { 1055 switch fp.selector { 1056 case ProvisioningPolicySpec_FieldPathSelectorMode: 1057 return source.GetMode(), source != nil 1058 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1059 res := source.GetServiceAccount() 1060 return res, res != nil 1061 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1062 return source.GetDeviceNameFormat(), source != nil 1063 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1064 res := source.GetLabels() 1065 return res, res != nil 1066 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1067 res := source.GetTemplate() 1068 return res, res != nil 1069 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1070 res := source.GetIdentityFieldPaths() 1071 return res, res != nil 1072 case ProvisioningPolicySpec_FieldPathSelectorRole: 1073 res := source.GetRole() 1074 return res, res != nil 1075 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1076 res := source.GetCondition() 1077 return res, res != nil 1078 default: 1079 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1080 } 1081 } 1082 1083 func (fp *ProvisioningPolicySpec_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1084 return fp.GetSingle(source.(*ProvisioningPolicy_Spec)) 1085 } 1086 1087 // GetDefault returns a default value of the field type 1088 func (fp *ProvisioningPolicySpec_FieldTerminalPath) GetDefault() interface{} { 1089 switch fp.selector { 1090 case ProvisioningPolicySpec_FieldPathSelectorMode: 1091 return ProvisioningPolicy_MODE_UNSPECIFIED 1092 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1093 return (*iam_service_account.Reference)(nil) 1094 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1095 return "" 1096 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1097 return (map[string]string)(nil) 1098 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1099 return (*ProvisioningPolicy_Spec_Template)(nil) 1100 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1101 return ([]string)(nil) 1102 case ProvisioningPolicySpec_FieldPathSelectorRole: 1103 return (*iam_role.Reference)(nil) 1104 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1105 return (*iam_condition.Reference)(nil) 1106 default: 1107 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1108 } 1109 } 1110 1111 func (fp *ProvisioningPolicySpec_FieldTerminalPath) ClearValue(item *ProvisioningPolicy_Spec) { 1112 if item != nil { 1113 switch fp.selector { 1114 case ProvisioningPolicySpec_FieldPathSelectorMode: 1115 item.Mode = ProvisioningPolicy_MODE_UNSPECIFIED 1116 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1117 item.ServiceAccount = nil 1118 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1119 item.DeviceNameFormat = "" 1120 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1121 item.Labels = nil 1122 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1123 item.Template = nil 1124 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1125 item.IdentityFieldPaths = nil 1126 case ProvisioningPolicySpec_FieldPathSelectorRole: 1127 item.Role = nil 1128 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1129 item.Condition = nil 1130 default: 1131 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1132 } 1133 } 1134 } 1135 1136 func (fp *ProvisioningPolicySpec_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1137 fp.ClearValue(item.(*ProvisioningPolicy_Spec)) 1138 } 1139 1140 // IsLeaf - whether field path is holds simple value 1141 func (fp *ProvisioningPolicySpec_FieldTerminalPath) IsLeaf() bool { 1142 return fp.selector == ProvisioningPolicySpec_FieldPathSelectorMode || 1143 fp.selector == ProvisioningPolicySpec_FieldPathSelectorServiceAccount || 1144 fp.selector == ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat || 1145 fp.selector == ProvisioningPolicySpec_FieldPathSelectorLabels || 1146 fp.selector == ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths || 1147 fp.selector == ProvisioningPolicySpec_FieldPathSelectorRole || 1148 fp.selector == ProvisioningPolicySpec_FieldPathSelectorCondition 1149 } 1150 1151 func (fp *ProvisioningPolicySpec_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1152 return []gotenobject.FieldPath{fp} 1153 } 1154 1155 func (fp *ProvisioningPolicySpec_FieldTerminalPath) WithIValue(value interface{}) ProvisioningPolicySpec_FieldPathValue { 1156 switch fp.selector { 1157 case ProvisioningPolicySpec_FieldPathSelectorMode: 1158 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(ProvisioningPolicy_Mode)} 1159 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1160 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(*iam_service_account.Reference)} 1161 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1162 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(string)} 1163 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1164 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(map[string]string)} 1165 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1166 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(*ProvisioningPolicy_Spec_Template)} 1167 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1168 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.([]string)} 1169 case ProvisioningPolicySpec_FieldPathSelectorRole: 1170 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(*iam_role.Reference)} 1171 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1172 return &ProvisioningPolicySpec_FieldTerminalPathValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(*iam_condition.Reference)} 1173 default: 1174 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1175 } 1176 } 1177 1178 func (fp *ProvisioningPolicySpec_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1179 return fp.WithIValue(value) 1180 } 1181 1182 func (fp *ProvisioningPolicySpec_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningPolicySpec_FieldPathArrayOfValues { 1183 fpaov := &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp} 1184 switch fp.selector { 1185 case ProvisioningPolicySpec_FieldPathSelectorMode: 1186 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]ProvisioningPolicy_Mode)} 1187 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1188 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]*iam_service_account.Reference)} 1189 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1190 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]string)} 1191 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1192 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]map[string]string)} 1193 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1194 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]*ProvisioningPolicy_Spec_Template)} 1195 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1196 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([][]string)} 1197 case ProvisioningPolicySpec_FieldPathSelectorRole: 1198 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]*iam_role.Reference)} 1199 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1200 return &ProvisioningPolicySpec_FieldTerminalPathArrayOfValues{ProvisioningPolicySpec_FieldTerminalPath: *fp, values: values.([]*iam_condition.Reference)} 1201 default: 1202 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1203 } 1204 return fpaov 1205 } 1206 1207 func (fp *ProvisioningPolicySpec_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1208 return fp.WithIArrayOfValues(values) 1209 } 1210 1211 func (fp *ProvisioningPolicySpec_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningPolicySpec_FieldPathArrayItemValue { 1212 switch fp.selector { 1213 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1214 return &ProvisioningPolicySpec_FieldTerminalPathArrayItemValue{ProvisioningPolicySpec_FieldTerminalPath: *fp, value: value.(string)} 1215 default: 1216 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fp.selector)) 1217 } 1218 } 1219 1220 func (fp *ProvisioningPolicySpec_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1221 return fp.WithIArrayItemValue(value) 1222 } 1223 1224 // FieldPath for map type with additional Key information 1225 type ProvisioningPolicySpec_FieldPathMap struct { 1226 key string 1227 selector ProvisioningPolicySpec_FieldPathSelector 1228 } 1229 1230 var _ ProvisioningPolicySpec_FieldPath = (*ProvisioningPolicySpec_FieldPathMap)(nil) 1231 1232 func (fpm *ProvisioningPolicySpec_FieldPathMap) Selector() ProvisioningPolicySpec_FieldPathSelector { 1233 return fpm.selector 1234 } 1235 1236 func (fpm *ProvisioningPolicySpec_FieldPathMap) Key() string { 1237 return fpm.key 1238 } 1239 1240 // String returns path representation in proto convention 1241 func (fpm *ProvisioningPolicySpec_FieldPathMap) String() string { 1242 return fpm.selector.String() + "." + fpm.key 1243 } 1244 1245 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 1246 func (fpm *ProvisioningPolicySpec_FieldPathMap) JSONString() string { 1247 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 1248 } 1249 1250 // Get returns all values pointed by selected field map key from source ProvisioningPolicy_Spec 1251 func (fpm *ProvisioningPolicySpec_FieldPathMap) Get(source *ProvisioningPolicy_Spec) (values []interface{}) { 1252 switch fpm.selector { 1253 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1254 if value, ok := source.GetLabels()[fpm.key]; ok { 1255 values = append(values, value) 1256 } 1257 default: 1258 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1259 } 1260 return 1261 } 1262 1263 func (fpm *ProvisioningPolicySpec_FieldPathMap) GetRaw(source proto.Message) []interface{} { 1264 return fpm.Get(source.(*ProvisioningPolicy_Spec)) 1265 } 1266 1267 // GetSingle returns value by selected field map key from source ProvisioningPolicy_Spec 1268 func (fpm *ProvisioningPolicySpec_FieldPathMap) GetSingle(source *ProvisioningPolicy_Spec) (interface{}, bool) { 1269 switch fpm.selector { 1270 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1271 res, ok := source.GetLabels()[fpm.key] 1272 return res, ok 1273 default: 1274 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1275 } 1276 } 1277 1278 func (fpm *ProvisioningPolicySpec_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 1279 return fpm.GetSingle(source.(*ProvisioningPolicy_Spec)) 1280 } 1281 1282 // GetDefault returns a default value of the field type 1283 func (fpm *ProvisioningPolicySpec_FieldPathMap) GetDefault() interface{} { 1284 switch fpm.selector { 1285 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1286 var v string 1287 return v 1288 default: 1289 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1290 } 1291 } 1292 1293 func (fpm *ProvisioningPolicySpec_FieldPathMap) ClearValue(item *ProvisioningPolicy_Spec) { 1294 if item != nil { 1295 switch fpm.selector { 1296 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1297 delete(item.Labels, fpm.key) 1298 default: 1299 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1300 } 1301 } 1302 } 1303 1304 func (fpm *ProvisioningPolicySpec_FieldPathMap) ClearValueRaw(item proto.Message) { 1305 fpm.ClearValue(item.(*ProvisioningPolicy_Spec)) 1306 } 1307 1308 // IsLeaf - whether field path is holds simple value 1309 func (fpm *ProvisioningPolicySpec_FieldPathMap) IsLeaf() bool { 1310 switch fpm.selector { 1311 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1312 return true 1313 default: 1314 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1315 } 1316 } 1317 1318 func (fpm *ProvisioningPolicySpec_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1319 return []gotenobject.FieldPath{fpm} 1320 } 1321 1322 func (fpm *ProvisioningPolicySpec_FieldPathMap) WithIValue(value interface{}) ProvisioningPolicySpec_FieldPathValue { 1323 switch fpm.selector { 1324 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1325 return &ProvisioningPolicySpec_FieldPathMapValue{ProvisioningPolicySpec_FieldPathMap: *fpm, value: value.(string)} 1326 default: 1327 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1328 } 1329 } 1330 1331 func (fpm *ProvisioningPolicySpec_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1332 return fpm.WithIValue(value) 1333 } 1334 1335 func (fpm *ProvisioningPolicySpec_FieldPathMap) WithIArrayOfValues(values interface{}) ProvisioningPolicySpec_FieldPathArrayOfValues { 1336 switch fpm.selector { 1337 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1338 return &ProvisioningPolicySpec_FieldPathMapArrayOfValues{ProvisioningPolicySpec_FieldPathMap: *fpm, values: values.([]string)} 1339 default: 1340 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpm.selector)) 1341 } 1342 } 1343 1344 func (fpm *ProvisioningPolicySpec_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1345 return fpm.WithIArrayOfValues(values) 1346 } 1347 1348 func (fpm *ProvisioningPolicySpec_FieldPathMap) WithIArrayItemValue(value interface{}) ProvisioningPolicySpec_FieldPathArrayItemValue { 1349 panic("Cannot create array item value from map fieldpath") 1350 } 1351 1352 func (fpm *ProvisioningPolicySpec_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1353 return fpm.WithIArrayItemValue(value) 1354 } 1355 1356 type ProvisioningPolicySpec_FieldSubPath struct { 1357 selector ProvisioningPolicySpec_FieldPathSelector 1358 subPath gotenobject.FieldPath 1359 } 1360 1361 var _ ProvisioningPolicySpec_FieldPath = (*ProvisioningPolicySpec_FieldSubPath)(nil) 1362 1363 func (fps *ProvisioningPolicySpec_FieldSubPath) Selector() ProvisioningPolicySpec_FieldPathSelector { 1364 return fps.selector 1365 } 1366 func (fps *ProvisioningPolicySpec_FieldSubPath) AsTemplateSubPath() (ProvisioningPolicySpecTemplate_FieldPath, bool) { 1367 res, ok := fps.subPath.(ProvisioningPolicySpecTemplate_FieldPath) 1368 return res, ok 1369 } 1370 1371 // String returns path representation in proto convention 1372 func (fps *ProvisioningPolicySpec_FieldSubPath) String() string { 1373 return fps.selector.String() + "." + fps.subPath.String() 1374 } 1375 1376 // JSONString returns path representation is JSON convention 1377 func (fps *ProvisioningPolicySpec_FieldSubPath) JSONString() string { 1378 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 1379 } 1380 1381 // Get returns all values pointed by selected field from source ProvisioningPolicy_Spec 1382 func (fps *ProvisioningPolicySpec_FieldSubPath) Get(source *ProvisioningPolicy_Spec) (values []interface{}) { 1383 switch fps.selector { 1384 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1385 values = append(values, fps.subPath.GetRaw(source.GetTemplate())...) 1386 default: 1387 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fps.selector)) 1388 } 1389 return 1390 } 1391 1392 func (fps *ProvisioningPolicySpec_FieldSubPath) GetRaw(source proto.Message) []interface{} { 1393 return fps.Get(source.(*ProvisioningPolicy_Spec)) 1394 } 1395 1396 // GetSingle returns value of selected field from source ProvisioningPolicy_Spec 1397 func (fps *ProvisioningPolicySpec_FieldSubPath) GetSingle(source *ProvisioningPolicy_Spec) (interface{}, bool) { 1398 switch fps.selector { 1399 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1400 if source.GetTemplate() == nil { 1401 return nil, false 1402 } 1403 return fps.subPath.GetSingleRaw(source.GetTemplate()) 1404 default: 1405 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fps.selector)) 1406 } 1407 } 1408 1409 func (fps *ProvisioningPolicySpec_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1410 return fps.GetSingle(source.(*ProvisioningPolicy_Spec)) 1411 } 1412 1413 // GetDefault returns a default value of the field type 1414 func (fps *ProvisioningPolicySpec_FieldSubPath) GetDefault() interface{} { 1415 return fps.subPath.GetDefault() 1416 } 1417 1418 func (fps *ProvisioningPolicySpec_FieldSubPath) ClearValue(item *ProvisioningPolicy_Spec) { 1419 if item != nil { 1420 switch fps.selector { 1421 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1422 fps.subPath.ClearValueRaw(item.Template) 1423 default: 1424 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fps.selector)) 1425 } 1426 } 1427 } 1428 1429 func (fps *ProvisioningPolicySpec_FieldSubPath) ClearValueRaw(item proto.Message) { 1430 fps.ClearValue(item.(*ProvisioningPolicy_Spec)) 1431 } 1432 1433 // IsLeaf - whether field path is holds simple value 1434 func (fps *ProvisioningPolicySpec_FieldSubPath) IsLeaf() bool { 1435 return fps.subPath.IsLeaf() 1436 } 1437 1438 func (fps *ProvisioningPolicySpec_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1439 iPaths := []gotenobject.FieldPath{&ProvisioningPolicySpec_FieldTerminalPath{selector: fps.selector}} 1440 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 1441 return iPaths 1442 } 1443 1444 func (fps *ProvisioningPolicySpec_FieldSubPath) WithIValue(value interface{}) ProvisioningPolicySpec_FieldPathValue { 1445 return &ProvisioningPolicySpec_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 1446 } 1447 1448 func (fps *ProvisioningPolicySpec_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1449 return fps.WithIValue(value) 1450 } 1451 1452 func (fps *ProvisioningPolicySpec_FieldSubPath) WithIArrayOfValues(values interface{}) ProvisioningPolicySpec_FieldPathArrayOfValues { 1453 return &ProvisioningPolicySpec_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 1454 } 1455 1456 func (fps *ProvisioningPolicySpec_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1457 return fps.WithIArrayOfValues(values) 1458 } 1459 1460 func (fps *ProvisioningPolicySpec_FieldSubPath) WithIArrayItemValue(value interface{}) ProvisioningPolicySpec_FieldPathArrayItemValue { 1461 return &ProvisioningPolicySpec_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 1462 } 1463 1464 func (fps *ProvisioningPolicySpec_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1465 return fps.WithIArrayItemValue(value) 1466 } 1467 1468 // ProvisioningPolicySpec_FieldPathValue allows storing values for Spec fields according to their type 1469 type ProvisioningPolicySpec_FieldPathValue interface { 1470 ProvisioningPolicySpec_FieldPath 1471 gotenobject.FieldPathValue 1472 SetTo(target **ProvisioningPolicy_Spec) 1473 CompareWith(*ProvisioningPolicy_Spec) (cmp int, comparable bool) 1474 } 1475 1476 func ParseProvisioningPolicySpec_FieldPathValue(pathStr, valueStr string) (ProvisioningPolicySpec_FieldPathValue, error) { 1477 fp, err := ParseProvisioningPolicySpec_FieldPath(pathStr) 1478 if err != nil { 1479 return nil, err 1480 } 1481 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1482 if err != nil { 1483 return nil, status.Errorf(codes.InvalidArgument, "error parsing Spec field path value from %s: %v", valueStr, err) 1484 } 1485 return fpv.(ProvisioningPolicySpec_FieldPathValue), nil 1486 } 1487 1488 func MustParseProvisioningPolicySpec_FieldPathValue(pathStr, valueStr string) ProvisioningPolicySpec_FieldPathValue { 1489 fpv, err := ParseProvisioningPolicySpec_FieldPathValue(pathStr, valueStr) 1490 if err != nil { 1491 panic(err) 1492 } 1493 return fpv 1494 } 1495 1496 type ProvisioningPolicySpec_FieldTerminalPathValue struct { 1497 ProvisioningPolicySpec_FieldTerminalPath 1498 value interface{} 1499 } 1500 1501 var _ ProvisioningPolicySpec_FieldPathValue = (*ProvisioningPolicySpec_FieldTerminalPathValue)(nil) 1502 1503 // GetRawValue returns raw value stored under selected path for 'Spec' as interface{} 1504 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) GetRawValue() interface{} { 1505 return fpv.value 1506 } 1507 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsModeValue() (ProvisioningPolicy_Mode, bool) { 1508 res, ok := fpv.value.(ProvisioningPolicy_Mode) 1509 return res, ok 1510 } 1511 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsServiceAccountValue() (*iam_service_account.Reference, bool) { 1512 res, ok := fpv.value.(*iam_service_account.Reference) 1513 return res, ok 1514 } 1515 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsDeviceNameFormatValue() (string, bool) { 1516 res, ok := fpv.value.(string) 1517 return res, ok 1518 } 1519 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) { 1520 res, ok := fpv.value.(map[string]string) 1521 return res, ok 1522 } 1523 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsTemplateValue() (*ProvisioningPolicy_Spec_Template, bool) { 1524 res, ok := fpv.value.(*ProvisioningPolicy_Spec_Template) 1525 return res, ok 1526 } 1527 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsIdentityFieldPathsValue() ([]string, bool) { 1528 res, ok := fpv.value.([]string) 1529 return res, ok 1530 } 1531 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsRoleValue() (*iam_role.Reference, bool) { 1532 res, ok := fpv.value.(*iam_role.Reference) 1533 return res, ok 1534 } 1535 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) AsConditionValue() (*iam_condition.Reference, bool) { 1536 res, ok := fpv.value.(*iam_condition.Reference) 1537 return res, ok 1538 } 1539 1540 // SetTo stores value for selected field for object Spec 1541 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) SetTo(target **ProvisioningPolicy_Spec) { 1542 if *target == nil { 1543 *target = new(ProvisioningPolicy_Spec) 1544 } 1545 switch fpv.selector { 1546 case ProvisioningPolicySpec_FieldPathSelectorMode: 1547 (*target).Mode = fpv.value.(ProvisioningPolicy_Mode) 1548 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1549 (*target).ServiceAccount = fpv.value.(*iam_service_account.Reference) 1550 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1551 (*target).DeviceNameFormat = fpv.value.(string) 1552 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1553 (*target).Labels = fpv.value.(map[string]string) 1554 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1555 (*target).Template = fpv.value.(*ProvisioningPolicy_Spec_Template) 1556 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1557 (*target).IdentityFieldPaths = fpv.value.([]string) 1558 case ProvisioningPolicySpec_FieldPathSelectorRole: 1559 (*target).Role = fpv.value.(*iam_role.Reference) 1560 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1561 (*target).Condition = fpv.value.(*iam_condition.Reference) 1562 default: 1563 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpv.selector)) 1564 } 1565 } 1566 1567 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1568 typedObject := target.(*ProvisioningPolicy_Spec) 1569 fpv.SetTo(&typedObject) 1570 } 1571 1572 // CompareWith compares value in the 'ProvisioningPolicySpec_FieldTerminalPathValue' with the value under path in 'ProvisioningPolicy_Spec'. 1573 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) CompareWith(source *ProvisioningPolicy_Spec) (int, bool) { 1574 switch fpv.selector { 1575 case ProvisioningPolicySpec_FieldPathSelectorMode: 1576 leftValue := fpv.value.(ProvisioningPolicy_Mode) 1577 rightValue := source.GetMode() 1578 if (leftValue) == (rightValue) { 1579 return 0, true 1580 } else if (leftValue) < (rightValue) { 1581 return -1, true 1582 } else { 1583 return 1, true 1584 } 1585 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1586 leftValue := fpv.value.(*iam_service_account.Reference) 1587 rightValue := source.GetServiceAccount() 1588 if leftValue == nil { 1589 if rightValue != nil { 1590 return -1, true 1591 } 1592 return 0, true 1593 } 1594 if rightValue == nil { 1595 return 1, true 1596 } 1597 if leftValue.String() == rightValue.String() { 1598 return 0, true 1599 } else if leftValue.String() < rightValue.String() { 1600 return -1, true 1601 } else { 1602 return 1, true 1603 } 1604 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1605 leftValue := fpv.value.(string) 1606 rightValue := source.GetDeviceNameFormat() 1607 if (leftValue) == (rightValue) { 1608 return 0, true 1609 } else if (leftValue) < (rightValue) { 1610 return -1, true 1611 } else { 1612 return 1, true 1613 } 1614 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1615 return 0, false 1616 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1617 return 0, false 1618 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1619 return 0, false 1620 case ProvisioningPolicySpec_FieldPathSelectorRole: 1621 leftValue := fpv.value.(*iam_role.Reference) 1622 rightValue := source.GetRole() 1623 if leftValue == nil { 1624 if rightValue != nil { 1625 return -1, true 1626 } 1627 return 0, true 1628 } 1629 if rightValue == nil { 1630 return 1, true 1631 } 1632 if leftValue.String() == rightValue.String() { 1633 return 0, true 1634 } else if leftValue.String() < rightValue.String() { 1635 return -1, true 1636 } else { 1637 return 1, true 1638 } 1639 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1640 leftValue := fpv.value.(*iam_condition.Reference) 1641 rightValue := source.GetCondition() 1642 if leftValue == nil { 1643 if rightValue != nil { 1644 return -1, true 1645 } 1646 return 0, true 1647 } 1648 if rightValue == nil { 1649 return 1, true 1650 } 1651 if leftValue.String() == rightValue.String() { 1652 return 0, true 1653 } else if leftValue.String() < rightValue.String() { 1654 return -1, true 1655 } else { 1656 return 1, true 1657 } 1658 default: 1659 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpv.selector)) 1660 } 1661 } 1662 1663 func (fpv *ProvisioningPolicySpec_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1664 return fpv.CompareWith(source.(*ProvisioningPolicy_Spec)) 1665 } 1666 1667 type ProvisioningPolicySpec_FieldPathMapValue struct { 1668 ProvisioningPolicySpec_FieldPathMap 1669 value interface{} 1670 } 1671 1672 var _ ProvisioningPolicySpec_FieldPathValue = (*ProvisioningPolicySpec_FieldPathMapValue)(nil) 1673 1674 // GetValue returns value stored under selected field in Spec as interface{} 1675 func (fpmv *ProvisioningPolicySpec_FieldPathMapValue) GetRawValue() interface{} { 1676 return fpmv.value 1677 } 1678 func (fpmv *ProvisioningPolicySpec_FieldPathMapValue) AsLabelsElementValue() (string, bool) { 1679 res, ok := fpmv.value.(string) 1680 return res, ok 1681 } 1682 1683 // SetTo stores value for selected field in Spec 1684 func (fpmv *ProvisioningPolicySpec_FieldPathMapValue) SetTo(target **ProvisioningPolicy_Spec) { 1685 if *target == nil { 1686 *target = new(ProvisioningPolicy_Spec) 1687 } 1688 switch fpmv.selector { 1689 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1690 if (*target).Labels == nil { 1691 (*target).Labels = make(map[string]string) 1692 } 1693 (*target).Labels[fpmv.key] = fpmv.value.(string) 1694 default: 1695 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpmv.selector)) 1696 } 1697 } 1698 1699 func (fpmv *ProvisioningPolicySpec_FieldPathMapValue) SetToRaw(target proto.Message) { 1700 typedObject := target.(*ProvisioningPolicy_Spec) 1701 fpmv.SetTo(&typedObject) 1702 } 1703 1704 // CompareWith compares value in the 'ProvisioningPolicySpec_FieldPathMapValue' with the value under path in 'ProvisioningPolicy_Spec'. 1705 func (fpmv *ProvisioningPolicySpec_FieldPathMapValue) CompareWith(source *ProvisioningPolicy_Spec) (int, bool) { 1706 switch fpmv.selector { 1707 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1708 leftValue := fpmv.value.(string) 1709 rightValue := source.GetLabels()[fpmv.key] 1710 if (leftValue) == (rightValue) { 1711 return 0, true 1712 } else if (leftValue) < (rightValue) { 1713 return -1, true 1714 } else { 1715 return 1, true 1716 } 1717 default: 1718 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpmv.selector)) 1719 } 1720 } 1721 1722 func (fpmv *ProvisioningPolicySpec_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 1723 return fpmv.CompareWith(source.(*ProvisioningPolicy_Spec)) 1724 } 1725 1726 type ProvisioningPolicySpec_FieldSubPathValue struct { 1727 ProvisioningPolicySpec_FieldPath 1728 subPathValue gotenobject.FieldPathValue 1729 } 1730 1731 var _ ProvisioningPolicySpec_FieldPathValue = (*ProvisioningPolicySpec_FieldSubPathValue)(nil) 1732 1733 func (fpvs *ProvisioningPolicySpec_FieldSubPathValue) AsTemplatePathValue() (ProvisioningPolicySpecTemplate_FieldPathValue, bool) { 1734 res, ok := fpvs.subPathValue.(ProvisioningPolicySpecTemplate_FieldPathValue) 1735 return res, ok 1736 } 1737 1738 func (fpvs *ProvisioningPolicySpec_FieldSubPathValue) SetTo(target **ProvisioningPolicy_Spec) { 1739 if *target == nil { 1740 *target = new(ProvisioningPolicy_Spec) 1741 } 1742 switch fpvs.Selector() { 1743 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1744 fpvs.subPathValue.(ProvisioningPolicySpecTemplate_FieldPathValue).SetTo(&(*target).Template) 1745 default: 1746 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpvs.Selector())) 1747 } 1748 } 1749 1750 func (fpvs *ProvisioningPolicySpec_FieldSubPathValue) SetToRaw(target proto.Message) { 1751 typedObject := target.(*ProvisioningPolicy_Spec) 1752 fpvs.SetTo(&typedObject) 1753 } 1754 1755 func (fpvs *ProvisioningPolicySpec_FieldSubPathValue) GetRawValue() interface{} { 1756 return fpvs.subPathValue.GetRawValue() 1757 } 1758 1759 func (fpvs *ProvisioningPolicySpec_FieldSubPathValue) CompareWith(source *ProvisioningPolicy_Spec) (int, bool) { 1760 switch fpvs.Selector() { 1761 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1762 return fpvs.subPathValue.(ProvisioningPolicySpecTemplate_FieldPathValue).CompareWith(source.GetTemplate()) 1763 default: 1764 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpvs.Selector())) 1765 } 1766 } 1767 1768 func (fpvs *ProvisioningPolicySpec_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1769 return fpvs.CompareWith(source.(*ProvisioningPolicy_Spec)) 1770 } 1771 1772 // ProvisioningPolicySpec_FieldPathArrayItemValue allows storing single item in Path-specific values for Spec according to their type 1773 // Present only for array (repeated) types. 1774 type ProvisioningPolicySpec_FieldPathArrayItemValue interface { 1775 gotenobject.FieldPathArrayItemValue 1776 ProvisioningPolicySpec_FieldPath 1777 ContainsValue(*ProvisioningPolicy_Spec) bool 1778 } 1779 1780 // ParseProvisioningPolicySpec_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1781 func ParseProvisioningPolicySpec_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningPolicySpec_FieldPathArrayItemValue, error) { 1782 fp, err := ParseProvisioningPolicySpec_FieldPath(pathStr) 1783 if err != nil { 1784 return nil, err 1785 } 1786 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1787 if err != nil { 1788 return nil, status.Errorf(codes.InvalidArgument, "error parsing Spec field path array item value from %s: %v", valueStr, err) 1789 } 1790 return fpaiv.(ProvisioningPolicySpec_FieldPathArrayItemValue), nil 1791 } 1792 1793 func MustParseProvisioningPolicySpec_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningPolicySpec_FieldPathArrayItemValue { 1794 fpaiv, err := ParseProvisioningPolicySpec_FieldPathArrayItemValue(pathStr, valueStr) 1795 if err != nil { 1796 panic(err) 1797 } 1798 return fpaiv 1799 } 1800 1801 type ProvisioningPolicySpec_FieldTerminalPathArrayItemValue struct { 1802 ProvisioningPolicySpec_FieldTerminalPath 1803 value interface{} 1804 } 1805 1806 var _ ProvisioningPolicySpec_FieldPathArrayItemValue = (*ProvisioningPolicySpec_FieldTerminalPathArrayItemValue)(nil) 1807 1808 // GetRawValue returns stored element value for array in object ProvisioningPolicy_Spec as interface{} 1809 func (fpaiv *ProvisioningPolicySpec_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1810 return fpaiv.value 1811 } 1812 func (fpaiv *ProvisioningPolicySpec_FieldTerminalPathArrayItemValue) AsIdentityFieldPathsItemValue() (string, bool) { 1813 res, ok := fpaiv.value.(string) 1814 return res, ok 1815 } 1816 1817 func (fpaiv *ProvisioningPolicySpec_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningPolicy_Spec) (interface{}, bool) { 1818 return nil, false 1819 } 1820 1821 func (fpaiv *ProvisioningPolicySpec_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1822 return fpaiv.GetSingle(source.(*ProvisioningPolicy_Spec)) 1823 } 1824 1825 // Contains returns a boolean indicating if value that is being held is present in given 'Spec' 1826 func (fpaiv *ProvisioningPolicySpec_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningPolicy_Spec) bool { 1827 slice := fpaiv.ProvisioningPolicySpec_FieldTerminalPath.Get(source) 1828 for _, v := range slice { 1829 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1830 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1831 return true 1832 } 1833 } else if reflect.DeepEqual(v, fpaiv.value) { 1834 return true 1835 } 1836 } 1837 return false 1838 } 1839 1840 type ProvisioningPolicySpec_FieldSubPathArrayItemValue struct { 1841 ProvisioningPolicySpec_FieldPath 1842 subPathItemValue gotenobject.FieldPathArrayItemValue 1843 } 1844 1845 // GetRawValue returns stored array item value 1846 func (fpaivs *ProvisioningPolicySpec_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 1847 return fpaivs.subPathItemValue.GetRawItemValue() 1848 } 1849 func (fpaivs *ProvisioningPolicySpec_FieldSubPathArrayItemValue) AsTemplatePathItemValue() (ProvisioningPolicySpecTemplate_FieldPathArrayItemValue, bool) { 1850 res, ok := fpaivs.subPathItemValue.(ProvisioningPolicySpecTemplate_FieldPathArrayItemValue) 1851 return res, ok 1852 } 1853 1854 // Contains returns a boolean indicating if value that is being held is present in given 'Spec' 1855 func (fpaivs *ProvisioningPolicySpec_FieldSubPathArrayItemValue) ContainsValue(source *ProvisioningPolicy_Spec) bool { 1856 switch fpaivs.Selector() { 1857 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1858 return fpaivs.subPathItemValue.(ProvisioningPolicySpecTemplate_FieldPathArrayItemValue).ContainsValue(source.GetTemplate()) 1859 default: 1860 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec: %d", fpaivs.Selector())) 1861 } 1862 } 1863 1864 // ProvisioningPolicySpec_FieldPathArrayOfValues allows storing slice of values for Spec fields according to their type 1865 type ProvisioningPolicySpec_FieldPathArrayOfValues interface { 1866 gotenobject.FieldPathArrayOfValues 1867 ProvisioningPolicySpec_FieldPath 1868 } 1869 1870 func ParseProvisioningPolicySpec_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningPolicySpec_FieldPathArrayOfValues, error) { 1871 fp, err := ParseProvisioningPolicySpec_FieldPath(pathStr) 1872 if err != nil { 1873 return nil, err 1874 } 1875 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1876 if err != nil { 1877 return nil, status.Errorf(codes.InvalidArgument, "error parsing Spec field path array of values from %s: %v", valuesStr, err) 1878 } 1879 return fpaov.(ProvisioningPolicySpec_FieldPathArrayOfValues), nil 1880 } 1881 1882 func MustParseProvisioningPolicySpec_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningPolicySpec_FieldPathArrayOfValues { 1883 fpaov, err := ParseProvisioningPolicySpec_FieldPathArrayOfValues(pathStr, valuesStr) 1884 if err != nil { 1885 panic(err) 1886 } 1887 return fpaov 1888 } 1889 1890 type ProvisioningPolicySpec_FieldTerminalPathArrayOfValues struct { 1891 ProvisioningPolicySpec_FieldTerminalPath 1892 values interface{} 1893 } 1894 1895 var _ ProvisioningPolicySpec_FieldPathArrayOfValues = (*ProvisioningPolicySpec_FieldTerminalPathArrayOfValues)(nil) 1896 1897 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1898 switch fpaov.selector { 1899 case ProvisioningPolicySpec_FieldPathSelectorMode: 1900 for _, v := range fpaov.values.([]ProvisioningPolicy_Mode) { 1901 values = append(values, v) 1902 } 1903 case ProvisioningPolicySpec_FieldPathSelectorServiceAccount: 1904 for _, v := range fpaov.values.([]*iam_service_account.Reference) { 1905 values = append(values, v) 1906 } 1907 case ProvisioningPolicySpec_FieldPathSelectorDeviceNameFormat: 1908 for _, v := range fpaov.values.([]string) { 1909 values = append(values, v) 1910 } 1911 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1912 for _, v := range fpaov.values.([]map[string]string) { 1913 values = append(values, v) 1914 } 1915 case ProvisioningPolicySpec_FieldPathSelectorTemplate: 1916 for _, v := range fpaov.values.([]*ProvisioningPolicy_Spec_Template) { 1917 values = append(values, v) 1918 } 1919 case ProvisioningPolicySpec_FieldPathSelectorIdentityFieldPaths: 1920 for _, v := range fpaov.values.([][]string) { 1921 values = append(values, v) 1922 } 1923 case ProvisioningPolicySpec_FieldPathSelectorRole: 1924 for _, v := range fpaov.values.([]*iam_role.Reference) { 1925 values = append(values, v) 1926 } 1927 case ProvisioningPolicySpec_FieldPathSelectorCondition: 1928 for _, v := range fpaov.values.([]*iam_condition.Reference) { 1929 values = append(values, v) 1930 } 1931 } 1932 return 1933 } 1934 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsModeArrayOfValues() ([]ProvisioningPolicy_Mode, bool) { 1935 res, ok := fpaov.values.([]ProvisioningPolicy_Mode) 1936 return res, ok 1937 } 1938 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsServiceAccountArrayOfValues() ([]*iam_service_account.Reference, bool) { 1939 res, ok := fpaov.values.([]*iam_service_account.Reference) 1940 return res, ok 1941 } 1942 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsDeviceNameFormatArrayOfValues() ([]string, bool) { 1943 res, ok := fpaov.values.([]string) 1944 return res, ok 1945 } 1946 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) { 1947 res, ok := fpaov.values.([]map[string]string) 1948 return res, ok 1949 } 1950 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsTemplateArrayOfValues() ([]*ProvisioningPolicy_Spec_Template, bool) { 1951 res, ok := fpaov.values.([]*ProvisioningPolicy_Spec_Template) 1952 return res, ok 1953 } 1954 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsIdentityFieldPathsArrayOfValues() ([][]string, bool) { 1955 res, ok := fpaov.values.([][]string) 1956 return res, ok 1957 } 1958 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsRoleArrayOfValues() ([]*iam_role.Reference, bool) { 1959 res, ok := fpaov.values.([]*iam_role.Reference) 1960 return res, ok 1961 } 1962 func (fpaov *ProvisioningPolicySpec_FieldTerminalPathArrayOfValues) AsConditionArrayOfValues() ([]*iam_condition.Reference, bool) { 1963 res, ok := fpaov.values.([]*iam_condition.Reference) 1964 return res, ok 1965 } 1966 1967 type ProvisioningPolicySpec_FieldPathMapArrayOfValues struct { 1968 ProvisioningPolicySpec_FieldPathMap 1969 values interface{} 1970 } 1971 1972 var _ ProvisioningPolicySpec_FieldPathArrayOfValues = (*ProvisioningPolicySpec_FieldPathMapArrayOfValues)(nil) 1973 1974 func (fpmaov *ProvisioningPolicySpec_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 1975 switch fpmaov.selector { 1976 case ProvisioningPolicySpec_FieldPathSelectorLabels: 1977 for _, v := range fpmaov.values.([]string) { 1978 values = append(values, v) 1979 } 1980 } 1981 return 1982 } 1983 func (fpmaov *ProvisioningPolicySpec_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) { 1984 res, ok := fpmaov.values.([]string) 1985 return res, ok 1986 } 1987 1988 type ProvisioningPolicySpec_FieldSubPathArrayOfValues struct { 1989 ProvisioningPolicySpec_FieldPath 1990 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1991 } 1992 1993 var _ ProvisioningPolicySpec_FieldPathArrayOfValues = (*ProvisioningPolicySpec_FieldSubPathArrayOfValues)(nil) 1994 1995 func (fpsaov *ProvisioningPolicySpec_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1996 return fpsaov.subPathArrayOfValues.GetRawValues() 1997 } 1998 func (fpsaov *ProvisioningPolicySpec_FieldSubPathArrayOfValues) AsTemplatePathArrayOfValues() (ProvisioningPolicySpecTemplate_FieldPathArrayOfValues, bool) { 1999 res, ok := fpsaov.subPathArrayOfValues.(ProvisioningPolicySpecTemplate_FieldPathArrayOfValues) 2000 return res, ok 2001 } 2002 2003 // FieldPath provides implementation to handle 2004 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2005 type ProvisioningPolicyStatus_FieldPath interface { 2006 gotenobject.FieldPath 2007 Selector() ProvisioningPolicyStatus_FieldPathSelector 2008 Get(source *ProvisioningPolicy_Status) []interface{} 2009 GetSingle(source *ProvisioningPolicy_Status) (interface{}, bool) 2010 ClearValue(item *ProvisioningPolicy_Status) 2011 2012 // Those methods build corresponding ProvisioningPolicyStatus_FieldPathValue 2013 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2014 WithIValue(value interface{}) ProvisioningPolicyStatus_FieldPathValue 2015 WithIArrayOfValues(values interface{}) ProvisioningPolicyStatus_FieldPathArrayOfValues 2016 WithIArrayItemValue(value interface{}) ProvisioningPolicyStatus_FieldPathArrayItemValue 2017 } 2018 2019 type ProvisioningPolicyStatus_FieldPathSelector int32 2020 2021 func (s ProvisioningPolicyStatus_FieldPathSelector) String() string { 2022 switch s { 2023 default: 2024 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", s)) 2025 } 2026 } 2027 2028 func BuildProvisioningPolicyStatus_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningPolicyStatus_FieldPath, error) { 2029 if len(fp) == 0 { 2030 return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningPolicy_Status") 2031 } 2032 if len(fp) == 1 { 2033 switch fp[0] { 2034 } 2035 } 2036 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningPolicy_Status", fp) 2037 } 2038 2039 func ParseProvisioningPolicyStatus_FieldPath(rawField string) (ProvisioningPolicyStatus_FieldPath, error) { 2040 fp, err := gotenobject.ParseRawFieldPath(rawField) 2041 if err != nil { 2042 return nil, err 2043 } 2044 return BuildProvisioningPolicyStatus_FieldPath(fp) 2045 } 2046 2047 func MustParseProvisioningPolicyStatus_FieldPath(rawField string) ProvisioningPolicyStatus_FieldPath { 2048 fp, err := ParseProvisioningPolicyStatus_FieldPath(rawField) 2049 if err != nil { 2050 panic(err) 2051 } 2052 return fp 2053 } 2054 2055 type ProvisioningPolicyStatus_FieldTerminalPath struct { 2056 selector ProvisioningPolicyStatus_FieldPathSelector 2057 } 2058 2059 var _ ProvisioningPolicyStatus_FieldPath = (*ProvisioningPolicyStatus_FieldTerminalPath)(nil) 2060 2061 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) Selector() ProvisioningPolicyStatus_FieldPathSelector { 2062 return fp.selector 2063 } 2064 2065 // String returns path representation in proto convention 2066 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) String() string { 2067 return fp.selector.String() 2068 } 2069 2070 // JSONString returns path representation is JSON convention 2071 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) JSONString() string { 2072 return strcase.ToLowerCamel(fp.String()) 2073 } 2074 2075 // Get returns all values pointed by specific field from source ProvisioningPolicy_Status 2076 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) Get(source *ProvisioningPolicy_Status) (values []interface{}) { 2077 if source != nil { 2078 switch fp.selector { 2079 default: 2080 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2081 } 2082 } 2083 return 2084 } 2085 2086 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2087 return fp.Get(source.(*ProvisioningPolicy_Status)) 2088 } 2089 2090 // GetSingle returns value pointed by specific field of from source ProvisioningPolicy_Status 2091 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) GetSingle(source *ProvisioningPolicy_Status) (interface{}, bool) { 2092 switch fp.selector { 2093 default: 2094 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2095 } 2096 } 2097 2098 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2099 return fp.GetSingle(source.(*ProvisioningPolicy_Status)) 2100 } 2101 2102 // GetDefault returns a default value of the field type 2103 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) GetDefault() interface{} { 2104 switch fp.selector { 2105 default: 2106 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2107 } 2108 } 2109 2110 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) ClearValue(item *ProvisioningPolicy_Status) { 2111 if item != nil { 2112 switch fp.selector { 2113 default: 2114 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2115 } 2116 } 2117 } 2118 2119 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2120 fp.ClearValue(item.(*ProvisioningPolicy_Status)) 2121 } 2122 2123 // IsLeaf - whether field path is holds simple value 2124 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) IsLeaf() bool { 2125 return false 2126 } 2127 2128 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2129 return []gotenobject.FieldPath{fp} 2130 } 2131 2132 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) WithIValue(value interface{}) ProvisioningPolicyStatus_FieldPathValue { 2133 switch fp.selector { 2134 default: 2135 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2136 } 2137 } 2138 2139 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2140 return fp.WithIValue(value) 2141 } 2142 2143 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningPolicyStatus_FieldPathArrayOfValues { 2144 fpaov := &ProvisioningPolicyStatus_FieldTerminalPathArrayOfValues{ProvisioningPolicyStatus_FieldTerminalPath: *fp} 2145 switch fp.selector { 2146 default: 2147 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2148 } 2149 return fpaov 2150 } 2151 2152 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2153 return fp.WithIArrayOfValues(values) 2154 } 2155 2156 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningPolicyStatus_FieldPathArrayItemValue { 2157 switch fp.selector { 2158 default: 2159 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fp.selector)) 2160 } 2161 } 2162 2163 func (fp *ProvisioningPolicyStatus_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2164 return fp.WithIArrayItemValue(value) 2165 } 2166 2167 // ProvisioningPolicyStatus_FieldPathValue allows storing values for Status fields according to their type 2168 type ProvisioningPolicyStatus_FieldPathValue interface { 2169 ProvisioningPolicyStatus_FieldPath 2170 gotenobject.FieldPathValue 2171 SetTo(target **ProvisioningPolicy_Status) 2172 CompareWith(*ProvisioningPolicy_Status) (cmp int, comparable bool) 2173 } 2174 2175 func ParseProvisioningPolicyStatus_FieldPathValue(pathStr, valueStr string) (ProvisioningPolicyStatus_FieldPathValue, error) { 2176 fp, err := ParseProvisioningPolicyStatus_FieldPath(pathStr) 2177 if err != nil { 2178 return nil, err 2179 } 2180 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2181 if err != nil { 2182 return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path value from %s: %v", valueStr, err) 2183 } 2184 return fpv.(ProvisioningPolicyStatus_FieldPathValue), nil 2185 } 2186 2187 func MustParseProvisioningPolicyStatus_FieldPathValue(pathStr, valueStr string) ProvisioningPolicyStatus_FieldPathValue { 2188 fpv, err := ParseProvisioningPolicyStatus_FieldPathValue(pathStr, valueStr) 2189 if err != nil { 2190 panic(err) 2191 } 2192 return fpv 2193 } 2194 2195 type ProvisioningPolicyStatus_FieldTerminalPathValue struct { 2196 ProvisioningPolicyStatus_FieldTerminalPath 2197 value interface{} 2198 } 2199 2200 var _ ProvisioningPolicyStatus_FieldPathValue = (*ProvisioningPolicyStatus_FieldTerminalPathValue)(nil) 2201 2202 // GetRawValue returns raw value stored under selected path for 'Status' as interface{} 2203 func (fpv *ProvisioningPolicyStatus_FieldTerminalPathValue) GetRawValue() interface{} { 2204 return fpv.value 2205 } 2206 2207 // SetTo stores value for selected field for object Status 2208 func (fpv *ProvisioningPolicyStatus_FieldTerminalPathValue) SetTo(target **ProvisioningPolicy_Status) { 2209 if *target == nil { 2210 *target = new(ProvisioningPolicy_Status) 2211 } 2212 switch fpv.selector { 2213 default: 2214 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fpv.selector)) 2215 } 2216 } 2217 2218 func (fpv *ProvisioningPolicyStatus_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2219 typedObject := target.(*ProvisioningPolicy_Status) 2220 fpv.SetTo(&typedObject) 2221 } 2222 2223 // CompareWith compares value in the 'ProvisioningPolicyStatus_FieldTerminalPathValue' with the value under path in 'ProvisioningPolicy_Status'. 2224 func (fpv *ProvisioningPolicyStatus_FieldTerminalPathValue) CompareWith(source *ProvisioningPolicy_Status) (int, bool) { 2225 switch fpv.selector { 2226 default: 2227 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Status: %d", fpv.selector)) 2228 } 2229 } 2230 2231 func (fpv *ProvisioningPolicyStatus_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2232 return fpv.CompareWith(source.(*ProvisioningPolicy_Status)) 2233 } 2234 2235 // ProvisioningPolicyStatus_FieldPathArrayItemValue allows storing single item in Path-specific values for Status according to their type 2236 // Present only for array (repeated) types. 2237 type ProvisioningPolicyStatus_FieldPathArrayItemValue interface { 2238 gotenobject.FieldPathArrayItemValue 2239 ProvisioningPolicyStatus_FieldPath 2240 ContainsValue(*ProvisioningPolicy_Status) bool 2241 } 2242 2243 // ParseProvisioningPolicyStatus_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2244 func ParseProvisioningPolicyStatus_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningPolicyStatus_FieldPathArrayItemValue, error) { 2245 fp, err := ParseProvisioningPolicyStatus_FieldPath(pathStr) 2246 if err != nil { 2247 return nil, err 2248 } 2249 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2250 if err != nil { 2251 return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array item value from %s: %v", valueStr, err) 2252 } 2253 return fpaiv.(ProvisioningPolicyStatus_FieldPathArrayItemValue), nil 2254 } 2255 2256 func MustParseProvisioningPolicyStatus_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningPolicyStatus_FieldPathArrayItemValue { 2257 fpaiv, err := ParseProvisioningPolicyStatus_FieldPathArrayItemValue(pathStr, valueStr) 2258 if err != nil { 2259 panic(err) 2260 } 2261 return fpaiv 2262 } 2263 2264 type ProvisioningPolicyStatus_FieldTerminalPathArrayItemValue struct { 2265 ProvisioningPolicyStatus_FieldTerminalPath 2266 value interface{} 2267 } 2268 2269 var _ ProvisioningPolicyStatus_FieldPathArrayItemValue = (*ProvisioningPolicyStatus_FieldTerminalPathArrayItemValue)(nil) 2270 2271 // GetRawValue returns stored element value for array in object ProvisioningPolicy_Status as interface{} 2272 func (fpaiv *ProvisioningPolicyStatus_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2273 return fpaiv.value 2274 } 2275 2276 func (fpaiv *ProvisioningPolicyStatus_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningPolicy_Status) (interface{}, bool) { 2277 return nil, false 2278 } 2279 2280 func (fpaiv *ProvisioningPolicyStatus_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2281 return fpaiv.GetSingle(source.(*ProvisioningPolicy_Status)) 2282 } 2283 2284 // Contains returns a boolean indicating if value that is being held is present in given 'Status' 2285 func (fpaiv *ProvisioningPolicyStatus_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningPolicy_Status) bool { 2286 slice := fpaiv.ProvisioningPolicyStatus_FieldTerminalPath.Get(source) 2287 for _, v := range slice { 2288 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2289 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2290 return true 2291 } 2292 } else if reflect.DeepEqual(v, fpaiv.value) { 2293 return true 2294 } 2295 } 2296 return false 2297 } 2298 2299 // ProvisioningPolicyStatus_FieldPathArrayOfValues allows storing slice of values for Status fields according to their type 2300 type ProvisioningPolicyStatus_FieldPathArrayOfValues interface { 2301 gotenobject.FieldPathArrayOfValues 2302 ProvisioningPolicyStatus_FieldPath 2303 } 2304 2305 func ParseProvisioningPolicyStatus_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningPolicyStatus_FieldPathArrayOfValues, error) { 2306 fp, err := ParseProvisioningPolicyStatus_FieldPath(pathStr) 2307 if err != nil { 2308 return nil, err 2309 } 2310 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2311 if err != nil { 2312 return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array of values from %s: %v", valuesStr, err) 2313 } 2314 return fpaov.(ProvisioningPolicyStatus_FieldPathArrayOfValues), nil 2315 } 2316 2317 func MustParseProvisioningPolicyStatus_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningPolicyStatus_FieldPathArrayOfValues { 2318 fpaov, err := ParseProvisioningPolicyStatus_FieldPathArrayOfValues(pathStr, valuesStr) 2319 if err != nil { 2320 panic(err) 2321 } 2322 return fpaov 2323 } 2324 2325 type ProvisioningPolicyStatus_FieldTerminalPathArrayOfValues struct { 2326 ProvisioningPolicyStatus_FieldTerminalPath 2327 values interface{} 2328 } 2329 2330 var _ ProvisioningPolicyStatus_FieldPathArrayOfValues = (*ProvisioningPolicyStatus_FieldTerminalPathArrayOfValues)(nil) 2331 2332 func (fpaov *ProvisioningPolicyStatus_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2333 switch fpaov.selector { 2334 } 2335 return 2336 } 2337 2338 // FieldPath provides implementation to handle 2339 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2340 type ProvisioningPolicySpecTemplate_FieldPath interface { 2341 gotenobject.FieldPath 2342 Selector() ProvisioningPolicySpecTemplate_FieldPathSelector 2343 Get(source *ProvisioningPolicy_Spec_Template) []interface{} 2344 GetSingle(source *ProvisioningPolicy_Spec_Template) (interface{}, bool) 2345 ClearValue(item *ProvisioningPolicy_Spec_Template) 2346 2347 // Those methods build corresponding ProvisioningPolicySpecTemplate_FieldPathValue 2348 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2349 WithIValue(value interface{}) ProvisioningPolicySpecTemplate_FieldPathValue 2350 WithIArrayOfValues(values interface{}) ProvisioningPolicySpecTemplate_FieldPathArrayOfValues 2351 WithIArrayItemValue(value interface{}) ProvisioningPolicySpecTemplate_FieldPathArrayItemValue 2352 } 2353 2354 type ProvisioningPolicySpecTemplate_FieldPathSelector int32 2355 2356 const ( 2357 ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata ProvisioningPolicySpecTemplate_FieldPathSelector = 0 2358 ProvisioningPolicySpecTemplate_FieldPathSelectorSpec ProvisioningPolicySpecTemplate_FieldPathSelector = 1 2359 ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec ProvisioningPolicySpecTemplate_FieldPathSelector = 2 2360 ) 2361 2362 func (s ProvisioningPolicySpecTemplate_FieldPathSelector) String() string { 2363 switch s { 2364 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2365 return "metadata" 2366 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2367 return "spec" 2368 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2369 return "public_listing_spec" 2370 default: 2371 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", s)) 2372 } 2373 } 2374 2375 func BuildProvisioningPolicySpecTemplate_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningPolicySpecTemplate_FieldPath, error) { 2376 if len(fp) == 0 { 2377 return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningPolicy_Spec_Template") 2378 } 2379 if len(fp) == 1 { 2380 switch fp[0] { 2381 case "metadata": 2382 return &ProvisioningPolicySpecTemplate_FieldTerminalPath{selector: ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata}, nil 2383 case "spec": 2384 return &ProvisioningPolicySpecTemplate_FieldTerminalPath{selector: ProvisioningPolicySpecTemplate_FieldPathSelectorSpec}, nil 2385 case "public_listing_spec", "publicListingSpec", "public-listing-spec": 2386 return &ProvisioningPolicySpecTemplate_FieldTerminalPath{selector: ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec}, nil 2387 } 2388 } else { 2389 switch fp[0] { 2390 case "metadata": 2391 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 2392 return nil, err 2393 } else { 2394 return &ProvisioningPolicySpecTemplate_FieldSubPath{selector: ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata, subPath: subpath}, nil 2395 } 2396 case "spec": 2397 if subpath, err := device.BuildDeviceSpec_FieldPath(fp[1:]); err != nil { 2398 return nil, err 2399 } else { 2400 return &ProvisioningPolicySpecTemplate_FieldSubPath{selector: ProvisioningPolicySpecTemplate_FieldPathSelectorSpec, subPath: subpath}, nil 2401 } 2402 case "public_listing_spec", "publicListingSpec", "public-listing-spec": 2403 if subpath, err := device.BuildDevicePublicListingSpec_FieldPath(fp[1:]); err != nil { 2404 return nil, err 2405 } else { 2406 return &ProvisioningPolicySpecTemplate_FieldSubPath{selector: ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec, subPath: subpath}, nil 2407 } 2408 } 2409 } 2410 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningPolicy_Spec_Template", fp) 2411 } 2412 2413 func ParseProvisioningPolicySpecTemplate_FieldPath(rawField string) (ProvisioningPolicySpecTemplate_FieldPath, error) { 2414 fp, err := gotenobject.ParseRawFieldPath(rawField) 2415 if err != nil { 2416 return nil, err 2417 } 2418 return BuildProvisioningPolicySpecTemplate_FieldPath(fp) 2419 } 2420 2421 func MustParseProvisioningPolicySpecTemplate_FieldPath(rawField string) ProvisioningPolicySpecTemplate_FieldPath { 2422 fp, err := ParseProvisioningPolicySpecTemplate_FieldPath(rawField) 2423 if err != nil { 2424 panic(err) 2425 } 2426 return fp 2427 } 2428 2429 type ProvisioningPolicySpecTemplate_FieldTerminalPath struct { 2430 selector ProvisioningPolicySpecTemplate_FieldPathSelector 2431 } 2432 2433 var _ ProvisioningPolicySpecTemplate_FieldPath = (*ProvisioningPolicySpecTemplate_FieldTerminalPath)(nil) 2434 2435 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) Selector() ProvisioningPolicySpecTemplate_FieldPathSelector { 2436 return fp.selector 2437 } 2438 2439 // String returns path representation in proto convention 2440 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) String() string { 2441 return fp.selector.String() 2442 } 2443 2444 // JSONString returns path representation is JSON convention 2445 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) JSONString() string { 2446 return strcase.ToLowerCamel(fp.String()) 2447 } 2448 2449 // Get returns all values pointed by specific field from source ProvisioningPolicy_Spec_Template 2450 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) Get(source *ProvisioningPolicy_Spec_Template) (values []interface{}) { 2451 if source != nil { 2452 switch fp.selector { 2453 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2454 if source.Metadata != nil { 2455 values = append(values, source.Metadata) 2456 } 2457 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2458 if source.Spec != nil { 2459 values = append(values, source.Spec) 2460 } 2461 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2462 if source.PublicListingSpec != nil { 2463 values = append(values, source.PublicListingSpec) 2464 } 2465 default: 2466 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2467 } 2468 } 2469 return 2470 } 2471 2472 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2473 return fp.Get(source.(*ProvisioningPolicy_Spec_Template)) 2474 } 2475 2476 // GetSingle returns value pointed by specific field of from source ProvisioningPolicy_Spec_Template 2477 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) GetSingle(source *ProvisioningPolicy_Spec_Template) (interface{}, bool) { 2478 switch fp.selector { 2479 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2480 res := source.GetMetadata() 2481 return res, res != nil 2482 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2483 res := source.GetSpec() 2484 return res, res != nil 2485 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2486 res := source.GetPublicListingSpec() 2487 return res, res != nil 2488 default: 2489 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2490 } 2491 } 2492 2493 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2494 return fp.GetSingle(source.(*ProvisioningPolicy_Spec_Template)) 2495 } 2496 2497 // GetDefault returns a default value of the field type 2498 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) GetDefault() interface{} { 2499 switch fp.selector { 2500 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2501 return (*meta.Meta)(nil) 2502 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2503 return (*device.Device_Spec)(nil) 2504 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2505 return (*device.Device_PublicListingSpec)(nil) 2506 default: 2507 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2508 } 2509 } 2510 2511 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) ClearValue(item *ProvisioningPolicy_Spec_Template) { 2512 if item != nil { 2513 switch fp.selector { 2514 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2515 item.Metadata = nil 2516 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2517 item.Spec = nil 2518 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2519 item.PublicListingSpec = nil 2520 default: 2521 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2522 } 2523 } 2524 } 2525 2526 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2527 fp.ClearValue(item.(*ProvisioningPolicy_Spec_Template)) 2528 } 2529 2530 // IsLeaf - whether field path is holds simple value 2531 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) IsLeaf() bool { 2532 return false 2533 } 2534 2535 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2536 return []gotenobject.FieldPath{fp} 2537 } 2538 2539 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) WithIValue(value interface{}) ProvisioningPolicySpecTemplate_FieldPathValue { 2540 switch fp.selector { 2541 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2542 return &ProvisioningPolicySpecTemplate_FieldTerminalPathValue{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 2543 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2544 return &ProvisioningPolicySpecTemplate_FieldTerminalPathValue{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp, value: value.(*device.Device_Spec)} 2545 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2546 return &ProvisioningPolicySpecTemplate_FieldTerminalPathValue{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp, value: value.(*device.Device_PublicListingSpec)} 2547 default: 2548 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2549 } 2550 } 2551 2552 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2553 return fp.WithIValue(value) 2554 } 2555 2556 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningPolicySpecTemplate_FieldPathArrayOfValues { 2557 fpaov := &ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp} 2558 switch fp.selector { 2559 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2560 return &ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 2561 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2562 return &ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp, values: values.([]*device.Device_Spec)} 2563 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2564 return &ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues{ProvisioningPolicySpecTemplate_FieldTerminalPath: *fp, values: values.([]*device.Device_PublicListingSpec)} 2565 default: 2566 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2567 } 2568 return fpaov 2569 } 2570 2571 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2572 return fp.WithIArrayOfValues(values) 2573 } 2574 2575 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningPolicySpecTemplate_FieldPathArrayItemValue { 2576 switch fp.selector { 2577 default: 2578 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fp.selector)) 2579 } 2580 } 2581 2582 func (fp *ProvisioningPolicySpecTemplate_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2583 return fp.WithIArrayItemValue(value) 2584 } 2585 2586 type ProvisioningPolicySpecTemplate_FieldSubPath struct { 2587 selector ProvisioningPolicySpecTemplate_FieldPathSelector 2588 subPath gotenobject.FieldPath 2589 } 2590 2591 var _ ProvisioningPolicySpecTemplate_FieldPath = (*ProvisioningPolicySpecTemplate_FieldSubPath)(nil) 2592 2593 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) Selector() ProvisioningPolicySpecTemplate_FieldPathSelector { 2594 return fps.selector 2595 } 2596 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 2597 res, ok := fps.subPath.(meta.Meta_FieldPath) 2598 return res, ok 2599 } 2600 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) AsSpecSubPath() (device.DeviceSpec_FieldPath, bool) { 2601 res, ok := fps.subPath.(device.DeviceSpec_FieldPath) 2602 return res, ok 2603 } 2604 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) AsPublicListingSpecSubPath() (device.DevicePublicListingSpec_FieldPath, bool) { 2605 res, ok := fps.subPath.(device.DevicePublicListingSpec_FieldPath) 2606 return res, ok 2607 } 2608 2609 // String returns path representation in proto convention 2610 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) String() string { 2611 return fps.selector.String() + "." + fps.subPath.String() 2612 } 2613 2614 // JSONString returns path representation is JSON convention 2615 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) JSONString() string { 2616 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 2617 } 2618 2619 // Get returns all values pointed by selected field from source ProvisioningPolicy_Spec_Template 2620 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) Get(source *ProvisioningPolicy_Spec_Template) (values []interface{}) { 2621 switch fps.selector { 2622 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2623 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 2624 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2625 values = append(values, fps.subPath.GetRaw(source.GetSpec())...) 2626 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2627 values = append(values, fps.subPath.GetRaw(source.GetPublicListingSpec())...) 2628 default: 2629 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fps.selector)) 2630 } 2631 return 2632 } 2633 2634 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) GetRaw(source proto.Message) []interface{} { 2635 return fps.Get(source.(*ProvisioningPolicy_Spec_Template)) 2636 } 2637 2638 // GetSingle returns value of selected field from source ProvisioningPolicy_Spec_Template 2639 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) GetSingle(source *ProvisioningPolicy_Spec_Template) (interface{}, bool) { 2640 switch fps.selector { 2641 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2642 if source.GetMetadata() == nil { 2643 return nil, false 2644 } 2645 return fps.subPath.GetSingleRaw(source.GetMetadata()) 2646 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2647 if source.GetSpec() == nil { 2648 return nil, false 2649 } 2650 return fps.subPath.GetSingleRaw(source.GetSpec()) 2651 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2652 if source.GetPublicListingSpec() == nil { 2653 return nil, false 2654 } 2655 return fps.subPath.GetSingleRaw(source.GetPublicListingSpec()) 2656 default: 2657 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fps.selector)) 2658 } 2659 } 2660 2661 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2662 return fps.GetSingle(source.(*ProvisioningPolicy_Spec_Template)) 2663 } 2664 2665 // GetDefault returns a default value of the field type 2666 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) GetDefault() interface{} { 2667 return fps.subPath.GetDefault() 2668 } 2669 2670 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) ClearValue(item *ProvisioningPolicy_Spec_Template) { 2671 if item != nil { 2672 switch fps.selector { 2673 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2674 fps.subPath.ClearValueRaw(item.Metadata) 2675 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2676 fps.subPath.ClearValueRaw(item.Spec) 2677 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2678 fps.subPath.ClearValueRaw(item.PublicListingSpec) 2679 default: 2680 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fps.selector)) 2681 } 2682 } 2683 } 2684 2685 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) ClearValueRaw(item proto.Message) { 2686 fps.ClearValue(item.(*ProvisioningPolicy_Spec_Template)) 2687 } 2688 2689 // IsLeaf - whether field path is holds simple value 2690 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) IsLeaf() bool { 2691 return fps.subPath.IsLeaf() 2692 } 2693 2694 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2695 iPaths := []gotenobject.FieldPath{&ProvisioningPolicySpecTemplate_FieldTerminalPath{selector: fps.selector}} 2696 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 2697 return iPaths 2698 } 2699 2700 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) WithIValue(value interface{}) ProvisioningPolicySpecTemplate_FieldPathValue { 2701 return &ProvisioningPolicySpecTemplate_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 2702 } 2703 2704 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2705 return fps.WithIValue(value) 2706 } 2707 2708 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) WithIArrayOfValues(values interface{}) ProvisioningPolicySpecTemplate_FieldPathArrayOfValues { 2709 return &ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 2710 } 2711 2712 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2713 return fps.WithIArrayOfValues(values) 2714 } 2715 2716 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) WithIArrayItemValue(value interface{}) ProvisioningPolicySpecTemplate_FieldPathArrayItemValue { 2717 return &ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 2718 } 2719 2720 func (fps *ProvisioningPolicySpecTemplate_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2721 return fps.WithIArrayItemValue(value) 2722 } 2723 2724 // ProvisioningPolicySpecTemplate_FieldPathValue allows storing values for Template fields according to their type 2725 type ProvisioningPolicySpecTemplate_FieldPathValue interface { 2726 ProvisioningPolicySpecTemplate_FieldPath 2727 gotenobject.FieldPathValue 2728 SetTo(target **ProvisioningPolicy_Spec_Template) 2729 CompareWith(*ProvisioningPolicy_Spec_Template) (cmp int, comparable bool) 2730 } 2731 2732 func ParseProvisioningPolicySpecTemplate_FieldPathValue(pathStr, valueStr string) (ProvisioningPolicySpecTemplate_FieldPathValue, error) { 2733 fp, err := ParseProvisioningPolicySpecTemplate_FieldPath(pathStr) 2734 if err != nil { 2735 return nil, err 2736 } 2737 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2738 if err != nil { 2739 return nil, status.Errorf(codes.InvalidArgument, "error parsing Template field path value from %s: %v", valueStr, err) 2740 } 2741 return fpv.(ProvisioningPolicySpecTemplate_FieldPathValue), nil 2742 } 2743 2744 func MustParseProvisioningPolicySpecTemplate_FieldPathValue(pathStr, valueStr string) ProvisioningPolicySpecTemplate_FieldPathValue { 2745 fpv, err := ParseProvisioningPolicySpecTemplate_FieldPathValue(pathStr, valueStr) 2746 if err != nil { 2747 panic(err) 2748 } 2749 return fpv 2750 } 2751 2752 type ProvisioningPolicySpecTemplate_FieldTerminalPathValue struct { 2753 ProvisioningPolicySpecTemplate_FieldTerminalPath 2754 value interface{} 2755 } 2756 2757 var _ ProvisioningPolicySpecTemplate_FieldPathValue = (*ProvisioningPolicySpecTemplate_FieldTerminalPathValue)(nil) 2758 2759 // GetRawValue returns raw value stored under selected path for 'Template' as interface{} 2760 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) GetRawValue() interface{} { 2761 return fpv.value 2762 } 2763 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 2764 res, ok := fpv.value.(*meta.Meta) 2765 return res, ok 2766 } 2767 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) AsSpecValue() (*device.Device_Spec, bool) { 2768 res, ok := fpv.value.(*device.Device_Spec) 2769 return res, ok 2770 } 2771 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) AsPublicListingSpecValue() (*device.Device_PublicListingSpec, bool) { 2772 res, ok := fpv.value.(*device.Device_PublicListingSpec) 2773 return res, ok 2774 } 2775 2776 // SetTo stores value for selected field for object Template 2777 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) SetTo(target **ProvisioningPolicy_Spec_Template) { 2778 if *target == nil { 2779 *target = new(ProvisioningPolicy_Spec_Template) 2780 } 2781 switch fpv.selector { 2782 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2783 (*target).Metadata = fpv.value.(*meta.Meta) 2784 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2785 (*target).Spec = fpv.value.(*device.Device_Spec) 2786 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2787 (*target).PublicListingSpec = fpv.value.(*device.Device_PublicListingSpec) 2788 default: 2789 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fpv.selector)) 2790 } 2791 } 2792 2793 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2794 typedObject := target.(*ProvisioningPolicy_Spec_Template) 2795 fpv.SetTo(&typedObject) 2796 } 2797 2798 // CompareWith compares value in the 'ProvisioningPolicySpecTemplate_FieldTerminalPathValue' with the value under path in 'ProvisioningPolicy_Spec_Template'. 2799 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) CompareWith(source *ProvisioningPolicy_Spec_Template) (int, bool) { 2800 switch fpv.selector { 2801 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2802 return 0, false 2803 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2804 return 0, false 2805 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2806 return 0, false 2807 default: 2808 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fpv.selector)) 2809 } 2810 } 2811 2812 func (fpv *ProvisioningPolicySpecTemplate_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2813 return fpv.CompareWith(source.(*ProvisioningPolicy_Spec_Template)) 2814 } 2815 2816 type ProvisioningPolicySpecTemplate_FieldSubPathValue struct { 2817 ProvisioningPolicySpecTemplate_FieldPath 2818 subPathValue gotenobject.FieldPathValue 2819 } 2820 2821 var _ ProvisioningPolicySpecTemplate_FieldPathValue = (*ProvisioningPolicySpecTemplate_FieldSubPathValue)(nil) 2822 2823 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 2824 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 2825 return res, ok 2826 } 2827 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) AsSpecPathValue() (device.DeviceSpec_FieldPathValue, bool) { 2828 res, ok := fpvs.subPathValue.(device.DeviceSpec_FieldPathValue) 2829 return res, ok 2830 } 2831 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) AsPublicListingSpecPathValue() (device.DevicePublicListingSpec_FieldPathValue, bool) { 2832 res, ok := fpvs.subPathValue.(device.DevicePublicListingSpec_FieldPathValue) 2833 return res, ok 2834 } 2835 2836 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) SetTo(target **ProvisioningPolicy_Spec_Template) { 2837 if *target == nil { 2838 *target = new(ProvisioningPolicy_Spec_Template) 2839 } 2840 switch fpvs.Selector() { 2841 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2842 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 2843 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2844 fpvs.subPathValue.(device.DeviceSpec_FieldPathValue).SetTo(&(*target).Spec) 2845 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2846 fpvs.subPathValue.(device.DevicePublicListingSpec_FieldPathValue).SetTo(&(*target).PublicListingSpec) 2847 default: 2848 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fpvs.Selector())) 2849 } 2850 } 2851 2852 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) SetToRaw(target proto.Message) { 2853 typedObject := target.(*ProvisioningPolicy_Spec_Template) 2854 fpvs.SetTo(&typedObject) 2855 } 2856 2857 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) GetRawValue() interface{} { 2858 return fpvs.subPathValue.GetRawValue() 2859 } 2860 2861 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) CompareWith(source *ProvisioningPolicy_Spec_Template) (int, bool) { 2862 switch fpvs.Selector() { 2863 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2864 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 2865 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2866 return fpvs.subPathValue.(device.DeviceSpec_FieldPathValue).CompareWith(source.GetSpec()) 2867 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2868 return fpvs.subPathValue.(device.DevicePublicListingSpec_FieldPathValue).CompareWith(source.GetPublicListingSpec()) 2869 default: 2870 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fpvs.Selector())) 2871 } 2872 } 2873 2874 func (fpvs *ProvisioningPolicySpecTemplate_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2875 return fpvs.CompareWith(source.(*ProvisioningPolicy_Spec_Template)) 2876 } 2877 2878 // ProvisioningPolicySpecTemplate_FieldPathArrayItemValue allows storing single item in Path-specific values for Template according to their type 2879 // Present only for array (repeated) types. 2880 type ProvisioningPolicySpecTemplate_FieldPathArrayItemValue interface { 2881 gotenobject.FieldPathArrayItemValue 2882 ProvisioningPolicySpecTemplate_FieldPath 2883 ContainsValue(*ProvisioningPolicy_Spec_Template) bool 2884 } 2885 2886 // ParseProvisioningPolicySpecTemplate_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2887 func ParseProvisioningPolicySpecTemplate_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningPolicySpecTemplate_FieldPathArrayItemValue, error) { 2888 fp, err := ParseProvisioningPolicySpecTemplate_FieldPath(pathStr) 2889 if err != nil { 2890 return nil, err 2891 } 2892 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2893 if err != nil { 2894 return nil, status.Errorf(codes.InvalidArgument, "error parsing Template field path array item value from %s: %v", valueStr, err) 2895 } 2896 return fpaiv.(ProvisioningPolicySpecTemplate_FieldPathArrayItemValue), nil 2897 } 2898 2899 func MustParseProvisioningPolicySpecTemplate_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningPolicySpecTemplate_FieldPathArrayItemValue { 2900 fpaiv, err := ParseProvisioningPolicySpecTemplate_FieldPathArrayItemValue(pathStr, valueStr) 2901 if err != nil { 2902 panic(err) 2903 } 2904 return fpaiv 2905 } 2906 2907 type ProvisioningPolicySpecTemplate_FieldTerminalPathArrayItemValue struct { 2908 ProvisioningPolicySpecTemplate_FieldTerminalPath 2909 value interface{} 2910 } 2911 2912 var _ ProvisioningPolicySpecTemplate_FieldPathArrayItemValue = (*ProvisioningPolicySpecTemplate_FieldTerminalPathArrayItemValue)(nil) 2913 2914 // GetRawValue returns stored element value for array in object ProvisioningPolicy_Spec_Template as interface{} 2915 func (fpaiv *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2916 return fpaiv.value 2917 } 2918 2919 func (fpaiv *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningPolicy_Spec_Template) (interface{}, bool) { 2920 return nil, false 2921 } 2922 2923 func (fpaiv *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2924 return fpaiv.GetSingle(source.(*ProvisioningPolicy_Spec_Template)) 2925 } 2926 2927 // Contains returns a boolean indicating if value that is being held is present in given 'Template' 2928 func (fpaiv *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningPolicy_Spec_Template) bool { 2929 slice := fpaiv.ProvisioningPolicySpecTemplate_FieldTerminalPath.Get(source) 2930 for _, v := range slice { 2931 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2932 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2933 return true 2934 } 2935 } else if reflect.DeepEqual(v, fpaiv.value) { 2936 return true 2937 } 2938 } 2939 return false 2940 } 2941 2942 type ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue struct { 2943 ProvisioningPolicySpecTemplate_FieldPath 2944 subPathItemValue gotenobject.FieldPathArrayItemValue 2945 } 2946 2947 // GetRawValue returns stored array item value 2948 func (fpaivs *ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 2949 return fpaivs.subPathItemValue.GetRawItemValue() 2950 } 2951 func (fpaivs *ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 2952 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 2953 return res, ok 2954 } 2955 func (fpaivs *ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue) AsSpecPathItemValue() (device.DeviceSpec_FieldPathArrayItemValue, bool) { 2956 res, ok := fpaivs.subPathItemValue.(device.DeviceSpec_FieldPathArrayItemValue) 2957 return res, ok 2958 } 2959 func (fpaivs *ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue) AsPublicListingSpecPathItemValue() (device.DevicePublicListingSpec_FieldPathArrayItemValue, bool) { 2960 res, ok := fpaivs.subPathItemValue.(device.DevicePublicListingSpec_FieldPathArrayItemValue) 2961 return res, ok 2962 } 2963 2964 // Contains returns a boolean indicating if value that is being held is present in given 'Template' 2965 func (fpaivs *ProvisioningPolicySpecTemplate_FieldSubPathArrayItemValue) ContainsValue(source *ProvisioningPolicy_Spec_Template) bool { 2966 switch fpaivs.Selector() { 2967 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 2968 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 2969 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 2970 return fpaivs.subPathItemValue.(device.DeviceSpec_FieldPathArrayItemValue).ContainsValue(source.GetSpec()) 2971 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 2972 return fpaivs.subPathItemValue.(device.DevicePublicListingSpec_FieldPathArrayItemValue).ContainsValue(source.GetPublicListingSpec()) 2973 default: 2974 panic(fmt.Sprintf("Invalid selector for ProvisioningPolicy_Spec_Template: %d", fpaivs.Selector())) 2975 } 2976 } 2977 2978 // ProvisioningPolicySpecTemplate_FieldPathArrayOfValues allows storing slice of values for Template fields according to their type 2979 type ProvisioningPolicySpecTemplate_FieldPathArrayOfValues interface { 2980 gotenobject.FieldPathArrayOfValues 2981 ProvisioningPolicySpecTemplate_FieldPath 2982 } 2983 2984 func ParseProvisioningPolicySpecTemplate_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningPolicySpecTemplate_FieldPathArrayOfValues, error) { 2985 fp, err := ParseProvisioningPolicySpecTemplate_FieldPath(pathStr) 2986 if err != nil { 2987 return nil, err 2988 } 2989 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2990 if err != nil { 2991 return nil, status.Errorf(codes.InvalidArgument, "error parsing Template field path array of values from %s: %v", valuesStr, err) 2992 } 2993 return fpaov.(ProvisioningPolicySpecTemplate_FieldPathArrayOfValues), nil 2994 } 2995 2996 func MustParseProvisioningPolicySpecTemplate_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningPolicySpecTemplate_FieldPathArrayOfValues { 2997 fpaov, err := ParseProvisioningPolicySpecTemplate_FieldPathArrayOfValues(pathStr, valuesStr) 2998 if err != nil { 2999 panic(err) 3000 } 3001 return fpaov 3002 } 3003 3004 type ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues struct { 3005 ProvisioningPolicySpecTemplate_FieldTerminalPath 3006 values interface{} 3007 } 3008 3009 var _ ProvisioningPolicySpecTemplate_FieldPathArrayOfValues = (*ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues)(nil) 3010 3011 func (fpaov *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3012 switch fpaov.selector { 3013 case ProvisioningPolicySpecTemplate_FieldPathSelectorMetadata: 3014 for _, v := range fpaov.values.([]*meta.Meta) { 3015 values = append(values, v) 3016 } 3017 case ProvisioningPolicySpecTemplate_FieldPathSelectorSpec: 3018 for _, v := range fpaov.values.([]*device.Device_Spec) { 3019 values = append(values, v) 3020 } 3021 case ProvisioningPolicySpecTemplate_FieldPathSelectorPublicListingSpec: 3022 for _, v := range fpaov.values.([]*device.Device_PublicListingSpec) { 3023 values = append(values, v) 3024 } 3025 } 3026 return 3027 } 3028 func (fpaov *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 3029 res, ok := fpaov.values.([]*meta.Meta) 3030 return res, ok 3031 } 3032 func (fpaov *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues) AsSpecArrayOfValues() ([]*device.Device_Spec, bool) { 3033 res, ok := fpaov.values.([]*device.Device_Spec) 3034 return res, ok 3035 } 3036 func (fpaov *ProvisioningPolicySpecTemplate_FieldTerminalPathArrayOfValues) AsPublicListingSpecArrayOfValues() ([]*device.Device_PublicListingSpec, bool) { 3037 res, ok := fpaov.values.([]*device.Device_PublicListingSpec) 3038 return res, ok 3039 } 3040 3041 type ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues struct { 3042 ProvisioningPolicySpecTemplate_FieldPath 3043 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 3044 } 3045 3046 var _ ProvisioningPolicySpecTemplate_FieldPathArrayOfValues = (*ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues)(nil) 3047 3048 func (fpsaov *ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 3049 return fpsaov.subPathArrayOfValues.GetRawValues() 3050 } 3051 func (fpsaov *ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 3052 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 3053 return res, ok 3054 } 3055 func (fpsaov *ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues) AsSpecPathArrayOfValues() (device.DeviceSpec_FieldPathArrayOfValues, bool) { 3056 res, ok := fpsaov.subPathArrayOfValues.(device.DeviceSpec_FieldPathArrayOfValues) 3057 return res, ok 3058 } 3059 func (fpsaov *ProvisioningPolicySpecTemplate_FieldSubPathArrayOfValues) AsPublicListingSpecPathArrayOfValues() (device.DevicePublicListingSpec_FieldPathArrayOfValues, bool) { 3060 res, ok := fpsaov.subPathArrayOfValues.(device.DevicePublicListingSpec_FieldPathArrayOfValues) 3061 return res, ok 3062 }