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