github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1alpha2/organization/organization.pb.fieldpath.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1alpha2/organization.proto
     3  // DO NOT EDIT!!!
     4  
     5  package organization
     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  	iam_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/common"
    27  	meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service"
    28  	meta "github.com/cloudwan/goten-sdk/types/meta"
    29  	multi_region_policy "github.com/cloudwan/goten-sdk/types/multi_region_policy"
    30  )
    31  
    32  // ensure the imports are used
    33  var (
    34  	_ = new(json.Marshaler)
    35  	_ = new(fmt.Stringer)
    36  	_ = reflect.DeepEqual
    37  	_ = strings.Builder{}
    38  	_ = time.Second
    39  
    40  	_ = strcase.ToLowerCamel
    41  	_ = codes.NotFound
    42  	_ = status.Status{}
    43  	_ = protojson.UnmarshalOptions{}
    44  	_ = new(proto.Message)
    45  	_ = protoregistry.GlobalTypes
    46  
    47  	_ = new(gotenobject.FieldPath)
    48  )
    49  
    50  // make sure we're using proto imports
    51  var (
    52  	_ = &iam_common.PCR{}
    53  	_ = &meta_service.Service{}
    54  	_ = &meta.Meta{}
    55  	_ = &multi_region_policy.MultiRegionPolicy{}
    56  )
    57  
    58  // FieldPath provides implementation to handle
    59  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    60  type Organization_FieldPath interface {
    61  	gotenobject.FieldPath
    62  	Selector() Organization_FieldPathSelector
    63  	Get(source *Organization) []interface{}
    64  	GetSingle(source *Organization) (interface{}, bool)
    65  	ClearValue(item *Organization)
    66  
    67  	// Those methods build corresponding Organization_FieldPathValue
    68  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    69  	WithIValue(value interface{}) Organization_FieldPathValue
    70  	WithIArrayOfValues(values interface{}) Organization_FieldPathArrayOfValues
    71  	WithIArrayItemValue(value interface{}) Organization_FieldPathArrayItemValue
    72  }
    73  
    74  type Organization_FieldPathSelector int32
    75  
    76  const (
    77  	Organization_FieldPathSelectorName               Organization_FieldPathSelector = 0
    78  	Organization_FieldPathSelectorTitle              Organization_FieldPathSelector = 1
    79  	Organization_FieldPathSelectorParentOrganization Organization_FieldPathSelector = 2
    80  	Organization_FieldPathSelectorRootOrganization   Organization_FieldPathSelector = 3
    81  	Organization_FieldPathSelectorAncestryPath       Organization_FieldPathSelector = 4
    82  	Organization_FieldPathSelectorMetadata           Organization_FieldPathSelector = 5
    83  	Organization_FieldPathSelectorMultiRegionPolicy  Organization_FieldPathSelector = 6
    84  	Organization_FieldPathSelectorAllowedServices    Organization_FieldPathSelector = 7
    85  	Organization_FieldPathSelectorBusinessTier       Organization_FieldPathSelector = 8
    86  	Organization_FieldPathSelectorServiceTiers       Organization_FieldPathSelector = 9
    87  	Organization_FieldPathSelectorServiceErrors      Organization_FieldPathSelector = 10
    88  )
    89  
    90  func (s Organization_FieldPathSelector) String() string {
    91  	switch s {
    92  	case Organization_FieldPathSelectorName:
    93  		return "name"
    94  	case Organization_FieldPathSelectorTitle:
    95  		return "title"
    96  	case Organization_FieldPathSelectorParentOrganization:
    97  		return "parent_organization"
    98  	case Organization_FieldPathSelectorRootOrganization:
    99  		return "root_organization"
   100  	case Organization_FieldPathSelectorAncestryPath:
   101  		return "ancestry_path"
   102  	case Organization_FieldPathSelectorMetadata:
   103  		return "metadata"
   104  	case Organization_FieldPathSelectorMultiRegionPolicy:
   105  		return "multi_region_policy"
   106  	case Organization_FieldPathSelectorAllowedServices:
   107  		return "allowed_services"
   108  	case Organization_FieldPathSelectorBusinessTier:
   109  		return "business_tier"
   110  	case Organization_FieldPathSelectorServiceTiers:
   111  		return "service_tiers"
   112  	case Organization_FieldPathSelectorServiceErrors:
   113  		return "service_errors"
   114  	default:
   115  		panic(fmt.Sprintf("Invalid selector for Organization: %d", s))
   116  	}
   117  }
   118  
   119  func BuildOrganization_FieldPath(fp gotenobject.RawFieldPath) (Organization_FieldPath, error) {
   120  	if len(fp) == 0 {
   121  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Organization")
   122  	}
   123  	if len(fp) == 1 {
   124  		switch fp[0] {
   125  		case "name":
   126  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorName}, nil
   127  		case "title":
   128  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorTitle}, nil
   129  		case "parent_organization", "parentOrganization", "parent-organization":
   130  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorParentOrganization}, nil
   131  		case "root_organization", "rootOrganization", "root-organization":
   132  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorRootOrganization}, nil
   133  		case "ancestry_path", "ancestryPath", "ancestry-path":
   134  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorAncestryPath}, nil
   135  		case "metadata":
   136  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorMetadata}, nil
   137  		case "multi_region_policy", "multiRegionPolicy", "multi-region-policy":
   138  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorMultiRegionPolicy}, nil
   139  		case "allowed_services", "allowedServices", "allowed-services":
   140  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorAllowedServices}, nil
   141  		case "business_tier", "businessTier", "business-tier":
   142  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorBusinessTier}, nil
   143  		case "service_tiers", "serviceTiers", "service-tiers":
   144  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorServiceTiers}, nil
   145  		case "service_errors", "serviceErrors", "service-errors":
   146  			return &Organization_FieldTerminalPath{selector: Organization_FieldPathSelectorServiceErrors}, nil
   147  		}
   148  	} else {
   149  		switch fp[0] {
   150  		case "metadata":
   151  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   152  				return nil, err
   153  			} else {
   154  				return &Organization_FieldSubPath{selector: Organization_FieldPathSelectorMetadata, subPath: subpath}, nil
   155  			}
   156  		case "multi_region_policy", "multiRegionPolicy", "multi-region-policy":
   157  			if subpath, err := multi_region_policy.BuildMultiRegionPolicy_FieldPath(fp[1:]); err != nil {
   158  				return nil, err
   159  			} else {
   160  				return &Organization_FieldSubPath{selector: Organization_FieldPathSelectorMultiRegionPolicy, subPath: subpath}, nil
   161  			}
   162  		case "service_tiers", "serviceTiers", "service-tiers":
   163  			if subpath, err := iam_common.BuildServiceBusinessTier_FieldPath(fp[1:]); err != nil {
   164  				return nil, err
   165  			} else {
   166  				return &Organization_FieldSubPath{selector: Organization_FieldPathSelectorServiceTiers, subPath: subpath}, nil
   167  			}
   168  		case "service_errors", "serviceErrors", "service-errors":
   169  			if len(fp) > 2 {
   170  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Organization)", fp)
   171  			}
   172  			return &Organization_FieldPathMap{selector: Organization_FieldPathSelectorServiceErrors, key: fp[1]}, nil
   173  		}
   174  	}
   175  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Organization", fp)
   176  }
   177  
   178  func ParseOrganization_FieldPath(rawField string) (Organization_FieldPath, error) {
   179  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   180  	if err != nil {
   181  		return nil, err
   182  	}
   183  	return BuildOrganization_FieldPath(fp)
   184  }
   185  
   186  func MustParseOrganization_FieldPath(rawField string) Organization_FieldPath {
   187  	fp, err := ParseOrganization_FieldPath(rawField)
   188  	if err != nil {
   189  		panic(err)
   190  	}
   191  	return fp
   192  }
   193  
   194  type Organization_FieldTerminalPath struct {
   195  	selector Organization_FieldPathSelector
   196  }
   197  
   198  var _ Organization_FieldPath = (*Organization_FieldTerminalPath)(nil)
   199  
   200  func (fp *Organization_FieldTerminalPath) Selector() Organization_FieldPathSelector {
   201  	return fp.selector
   202  }
   203  
   204  // String returns path representation in proto convention
   205  func (fp *Organization_FieldTerminalPath) String() string {
   206  	return fp.selector.String()
   207  }
   208  
   209  // JSONString returns path representation is JSON convention
   210  func (fp *Organization_FieldTerminalPath) JSONString() string {
   211  	return strcase.ToLowerCamel(fp.String())
   212  }
   213  
   214  // Get returns all values pointed by specific field from source Organization
   215  func (fp *Organization_FieldTerminalPath) Get(source *Organization) (values []interface{}) {
   216  	if source != nil {
   217  		switch fp.selector {
   218  		case Organization_FieldPathSelectorName:
   219  			if source.Name != nil {
   220  				values = append(values, source.Name)
   221  			}
   222  		case Organization_FieldPathSelectorTitle:
   223  			values = append(values, source.Title)
   224  		case Organization_FieldPathSelectorParentOrganization:
   225  			if source.ParentOrganization != nil {
   226  				values = append(values, source.ParentOrganization)
   227  			}
   228  		case Organization_FieldPathSelectorRootOrganization:
   229  			if source.RootOrganization != nil {
   230  				values = append(values, source.RootOrganization)
   231  			}
   232  		case Organization_FieldPathSelectorAncestryPath:
   233  			for _, value := range source.GetAncestryPath() {
   234  				values = append(values, value)
   235  			}
   236  		case Organization_FieldPathSelectorMetadata:
   237  			if source.Metadata != nil {
   238  				values = append(values, source.Metadata)
   239  			}
   240  		case Organization_FieldPathSelectorMultiRegionPolicy:
   241  			if source.MultiRegionPolicy != nil {
   242  				values = append(values, source.MultiRegionPolicy)
   243  			}
   244  		case Organization_FieldPathSelectorAllowedServices:
   245  			for _, value := range source.GetAllowedServices() {
   246  				values = append(values, value)
   247  			}
   248  		case Organization_FieldPathSelectorBusinessTier:
   249  			values = append(values, source.BusinessTier)
   250  		case Organization_FieldPathSelectorServiceTiers:
   251  			for _, value := range source.GetServiceTiers() {
   252  				values = append(values, value)
   253  			}
   254  		case Organization_FieldPathSelectorServiceErrors:
   255  			if source.ServiceErrors != nil {
   256  				values = append(values, source.ServiceErrors)
   257  			}
   258  		default:
   259  			panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   260  		}
   261  	}
   262  	return
   263  }
   264  
   265  func (fp *Organization_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   266  	return fp.Get(source.(*Organization))
   267  }
   268  
   269  // GetSingle returns value pointed by specific field of from source Organization
   270  func (fp *Organization_FieldTerminalPath) GetSingle(source *Organization) (interface{}, bool) {
   271  	switch fp.selector {
   272  	case Organization_FieldPathSelectorName:
   273  		res := source.GetName()
   274  		return res, res != nil
   275  	case Organization_FieldPathSelectorTitle:
   276  		return source.GetTitle(), source != nil
   277  	case Organization_FieldPathSelectorParentOrganization:
   278  		res := source.GetParentOrganization()
   279  		return res, res != nil
   280  	case Organization_FieldPathSelectorRootOrganization:
   281  		res := source.GetRootOrganization()
   282  		return res, res != nil
   283  	case Organization_FieldPathSelectorAncestryPath:
   284  		res := source.GetAncestryPath()
   285  		return res, res != nil
   286  	case Organization_FieldPathSelectorMetadata:
   287  		res := source.GetMetadata()
   288  		return res, res != nil
   289  	case Organization_FieldPathSelectorMultiRegionPolicy:
   290  		res := source.GetMultiRegionPolicy()
   291  		return res, res != nil
   292  	case Organization_FieldPathSelectorAllowedServices:
   293  		res := source.GetAllowedServices()
   294  		return res, res != nil
   295  	case Organization_FieldPathSelectorBusinessTier:
   296  		return source.GetBusinessTier(), source != nil
   297  	case Organization_FieldPathSelectorServiceTiers:
   298  		res := source.GetServiceTiers()
   299  		return res, res != nil
   300  	case Organization_FieldPathSelectorServiceErrors:
   301  		res := source.GetServiceErrors()
   302  		return res, res != nil
   303  	default:
   304  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   305  	}
   306  }
   307  
   308  func (fp *Organization_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   309  	return fp.GetSingle(source.(*Organization))
   310  }
   311  
   312  // GetDefault returns a default value of the field type
   313  func (fp *Organization_FieldTerminalPath) GetDefault() interface{} {
   314  	switch fp.selector {
   315  	case Organization_FieldPathSelectorName:
   316  		return (*Name)(nil)
   317  	case Organization_FieldPathSelectorTitle:
   318  		return ""
   319  	case Organization_FieldPathSelectorParentOrganization:
   320  		return (*Reference)(nil)
   321  	case Organization_FieldPathSelectorRootOrganization:
   322  		return (*Reference)(nil)
   323  	case Organization_FieldPathSelectorAncestryPath:
   324  		return ([]*Reference)(nil)
   325  	case Organization_FieldPathSelectorMetadata:
   326  		return (*meta.Meta)(nil)
   327  	case Organization_FieldPathSelectorMultiRegionPolicy:
   328  		return (*multi_region_policy.MultiRegionPolicy)(nil)
   329  	case Organization_FieldPathSelectorAllowedServices:
   330  		return ([]*meta_service.Reference)(nil)
   331  	case Organization_FieldPathSelectorBusinessTier:
   332  		return iam_common.BusinessTier_UNDEFINED
   333  	case Organization_FieldPathSelectorServiceTiers:
   334  		return ([]*iam_common.ServiceBusinessTier)(nil)
   335  	case Organization_FieldPathSelectorServiceErrors:
   336  		return (map[string]*iam_common.ServiceErrors)(nil)
   337  	default:
   338  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   339  	}
   340  }
   341  
   342  func (fp *Organization_FieldTerminalPath) ClearValue(item *Organization) {
   343  	if item != nil {
   344  		switch fp.selector {
   345  		case Organization_FieldPathSelectorName:
   346  			item.Name = nil
   347  		case Organization_FieldPathSelectorTitle:
   348  			item.Title = ""
   349  		case Organization_FieldPathSelectorParentOrganization:
   350  			item.ParentOrganization = nil
   351  		case Organization_FieldPathSelectorRootOrganization:
   352  			item.RootOrganization = nil
   353  		case Organization_FieldPathSelectorAncestryPath:
   354  			item.AncestryPath = nil
   355  		case Organization_FieldPathSelectorMetadata:
   356  			item.Metadata = nil
   357  		case Organization_FieldPathSelectorMultiRegionPolicy:
   358  			item.MultiRegionPolicy = nil
   359  		case Organization_FieldPathSelectorAllowedServices:
   360  			item.AllowedServices = nil
   361  		case Organization_FieldPathSelectorBusinessTier:
   362  			item.BusinessTier = iam_common.BusinessTier_UNDEFINED
   363  		case Organization_FieldPathSelectorServiceTiers:
   364  			item.ServiceTiers = nil
   365  		case Organization_FieldPathSelectorServiceErrors:
   366  			item.ServiceErrors = nil
   367  		default:
   368  			panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   369  		}
   370  	}
   371  }
   372  
   373  func (fp *Organization_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   374  	fp.ClearValue(item.(*Organization))
   375  }
   376  
   377  // IsLeaf - whether field path is holds simple value
   378  func (fp *Organization_FieldTerminalPath) IsLeaf() bool {
   379  	return fp.selector == Organization_FieldPathSelectorName ||
   380  		fp.selector == Organization_FieldPathSelectorTitle ||
   381  		fp.selector == Organization_FieldPathSelectorParentOrganization ||
   382  		fp.selector == Organization_FieldPathSelectorRootOrganization ||
   383  		fp.selector == Organization_FieldPathSelectorAncestryPath ||
   384  		fp.selector == Organization_FieldPathSelectorAllowedServices ||
   385  		fp.selector == Organization_FieldPathSelectorBusinessTier
   386  }
   387  
   388  func (fp *Organization_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   389  	return []gotenobject.FieldPath{fp}
   390  }
   391  
   392  func (fp *Organization_FieldTerminalPath) WithIValue(value interface{}) Organization_FieldPathValue {
   393  	switch fp.selector {
   394  	case Organization_FieldPathSelectorName:
   395  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(*Name)}
   396  	case Organization_FieldPathSelectorTitle:
   397  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(string)}
   398  	case Organization_FieldPathSelectorParentOrganization:
   399  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(*Reference)}
   400  	case Organization_FieldPathSelectorRootOrganization:
   401  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(*Reference)}
   402  	case Organization_FieldPathSelectorAncestryPath:
   403  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.([]*Reference)}
   404  	case Organization_FieldPathSelectorMetadata:
   405  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   406  	case Organization_FieldPathSelectorMultiRegionPolicy:
   407  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(*multi_region_policy.MultiRegionPolicy)}
   408  	case Organization_FieldPathSelectorAllowedServices:
   409  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.([]*meta_service.Reference)}
   410  	case Organization_FieldPathSelectorBusinessTier:
   411  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(iam_common.BusinessTier)}
   412  	case Organization_FieldPathSelectorServiceTiers:
   413  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.([]*iam_common.ServiceBusinessTier)}
   414  	case Organization_FieldPathSelectorServiceErrors:
   415  		return &Organization_FieldTerminalPathValue{Organization_FieldTerminalPath: *fp, value: value.(map[string]*iam_common.ServiceErrors)}
   416  	default:
   417  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   418  	}
   419  }
   420  
   421  func (fp *Organization_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   422  	return fp.WithIValue(value)
   423  }
   424  
   425  func (fp *Organization_FieldTerminalPath) WithIArrayOfValues(values interface{}) Organization_FieldPathArrayOfValues {
   426  	fpaov := &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp}
   427  	switch fp.selector {
   428  	case Organization_FieldPathSelectorName:
   429  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]*Name)}
   430  	case Organization_FieldPathSelectorTitle:
   431  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]string)}
   432  	case Organization_FieldPathSelectorParentOrganization:
   433  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]*Reference)}
   434  	case Organization_FieldPathSelectorRootOrganization:
   435  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]*Reference)}
   436  	case Organization_FieldPathSelectorAncestryPath:
   437  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([][]*Reference)}
   438  	case Organization_FieldPathSelectorMetadata:
   439  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   440  	case Organization_FieldPathSelectorMultiRegionPolicy:
   441  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]*multi_region_policy.MultiRegionPolicy)}
   442  	case Organization_FieldPathSelectorAllowedServices:
   443  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([][]*meta_service.Reference)}
   444  	case Organization_FieldPathSelectorBusinessTier:
   445  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]iam_common.BusinessTier)}
   446  	case Organization_FieldPathSelectorServiceTiers:
   447  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([][]*iam_common.ServiceBusinessTier)}
   448  	case Organization_FieldPathSelectorServiceErrors:
   449  		return &Organization_FieldTerminalPathArrayOfValues{Organization_FieldTerminalPath: *fp, values: values.([]map[string]*iam_common.ServiceErrors)}
   450  	default:
   451  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   452  	}
   453  	return fpaov
   454  }
   455  
   456  func (fp *Organization_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   457  	return fp.WithIArrayOfValues(values)
   458  }
   459  
   460  func (fp *Organization_FieldTerminalPath) WithIArrayItemValue(value interface{}) Organization_FieldPathArrayItemValue {
   461  	switch fp.selector {
   462  	case Organization_FieldPathSelectorAncestryPath:
   463  		return &Organization_FieldTerminalPathArrayItemValue{Organization_FieldTerminalPath: *fp, value: value.(*Reference)}
   464  	case Organization_FieldPathSelectorAllowedServices:
   465  		return &Organization_FieldTerminalPathArrayItemValue{Organization_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)}
   466  	case Organization_FieldPathSelectorServiceTiers:
   467  		return &Organization_FieldTerminalPathArrayItemValue{Organization_FieldTerminalPath: *fp, value: value.(*iam_common.ServiceBusinessTier)}
   468  	default:
   469  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fp.selector))
   470  	}
   471  }
   472  
   473  func (fp *Organization_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   474  	return fp.WithIArrayItemValue(value)
   475  }
   476  
   477  // FieldPath for map type with additional Key information
   478  type Organization_FieldPathMap struct {
   479  	key      string
   480  	selector Organization_FieldPathSelector
   481  }
   482  
   483  var _ Organization_FieldPath = (*Organization_FieldPathMap)(nil)
   484  
   485  func (fpm *Organization_FieldPathMap) Selector() Organization_FieldPathSelector {
   486  	return fpm.selector
   487  }
   488  
   489  func (fpm *Organization_FieldPathMap) Key() string {
   490  	return fpm.key
   491  }
   492  
   493  // String returns path representation in proto convention
   494  func (fpm *Organization_FieldPathMap) String() string {
   495  	return fpm.selector.String() + "." + fpm.key
   496  }
   497  
   498  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
   499  func (fpm *Organization_FieldPathMap) JSONString() string {
   500  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
   501  }
   502  
   503  // Get returns all values pointed by selected field map key from source Organization
   504  func (fpm *Organization_FieldPathMap) Get(source *Organization) (values []interface{}) {
   505  	switch fpm.selector {
   506  	case Organization_FieldPathSelectorServiceErrors:
   507  		if value, ok := source.GetServiceErrors()[fpm.key]; ok {
   508  			values = append(values, value)
   509  		}
   510  	default:
   511  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   512  	}
   513  	return
   514  }
   515  
   516  func (fpm *Organization_FieldPathMap) GetRaw(source proto.Message) []interface{} {
   517  	return fpm.Get(source.(*Organization))
   518  }
   519  
   520  // GetSingle returns value by selected field map key from source Organization
   521  func (fpm *Organization_FieldPathMap) GetSingle(source *Organization) (interface{}, bool) {
   522  	switch fpm.selector {
   523  	case Organization_FieldPathSelectorServiceErrors:
   524  		res, ok := source.GetServiceErrors()[fpm.key]
   525  		return res, ok
   526  	default:
   527  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   528  	}
   529  }
   530  
   531  func (fpm *Organization_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
   532  	return fpm.GetSingle(source.(*Organization))
   533  }
   534  
   535  // GetDefault returns a default value of the field type
   536  func (fpm *Organization_FieldPathMap) GetDefault() interface{} {
   537  	switch fpm.selector {
   538  	case Organization_FieldPathSelectorServiceErrors:
   539  		var v *iam_common.ServiceErrors
   540  		return v
   541  	default:
   542  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   543  	}
   544  }
   545  
   546  func (fpm *Organization_FieldPathMap) ClearValue(item *Organization) {
   547  	if item != nil {
   548  		switch fpm.selector {
   549  		case Organization_FieldPathSelectorServiceErrors:
   550  			delete(item.ServiceErrors, fpm.key)
   551  		default:
   552  			panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   553  		}
   554  	}
   555  }
   556  
   557  func (fpm *Organization_FieldPathMap) ClearValueRaw(item proto.Message) {
   558  	fpm.ClearValue(item.(*Organization))
   559  }
   560  
   561  // IsLeaf - whether field path is holds simple value
   562  func (fpm *Organization_FieldPathMap) IsLeaf() bool {
   563  	switch fpm.selector {
   564  	case Organization_FieldPathSelectorServiceErrors:
   565  		return false
   566  	default:
   567  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   568  	}
   569  }
   570  
   571  func (fpm *Organization_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   572  	return []gotenobject.FieldPath{fpm}
   573  }
   574  
   575  func (fpm *Organization_FieldPathMap) WithIValue(value interface{}) Organization_FieldPathValue {
   576  	switch fpm.selector {
   577  	case Organization_FieldPathSelectorServiceErrors:
   578  		return &Organization_FieldPathMapValue{Organization_FieldPathMap: *fpm, value: value.(*iam_common.ServiceErrors)}
   579  	default:
   580  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   581  	}
   582  }
   583  
   584  func (fpm *Organization_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   585  	return fpm.WithIValue(value)
   586  }
   587  
   588  func (fpm *Organization_FieldPathMap) WithIArrayOfValues(values interface{}) Organization_FieldPathArrayOfValues {
   589  	switch fpm.selector {
   590  	case Organization_FieldPathSelectorServiceErrors:
   591  		return &Organization_FieldPathMapArrayOfValues{Organization_FieldPathMap: *fpm, values: values.([]*iam_common.ServiceErrors)}
   592  	default:
   593  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpm.selector))
   594  	}
   595  }
   596  
   597  func (fpm *Organization_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   598  	return fpm.WithIArrayOfValues(values)
   599  }
   600  
   601  func (fpm *Organization_FieldPathMap) WithIArrayItemValue(value interface{}) Organization_FieldPathArrayItemValue {
   602  	panic("Cannot create array item value from map fieldpath")
   603  }
   604  
   605  func (fpm *Organization_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   606  	return fpm.WithIArrayItemValue(value)
   607  }
   608  
   609  type Organization_FieldSubPath struct {
   610  	selector Organization_FieldPathSelector
   611  	subPath  gotenobject.FieldPath
   612  }
   613  
   614  var _ Organization_FieldPath = (*Organization_FieldSubPath)(nil)
   615  
   616  func (fps *Organization_FieldSubPath) Selector() Organization_FieldPathSelector {
   617  	return fps.selector
   618  }
   619  func (fps *Organization_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   620  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   621  	return res, ok
   622  }
   623  func (fps *Organization_FieldSubPath) AsMultiRegionPolicySubPath() (multi_region_policy.MultiRegionPolicy_FieldPath, bool) {
   624  	res, ok := fps.subPath.(multi_region_policy.MultiRegionPolicy_FieldPath)
   625  	return res, ok
   626  }
   627  func (fps *Organization_FieldSubPath) AsServiceTiersSubPath() (iam_common.ServiceBusinessTier_FieldPath, bool) {
   628  	res, ok := fps.subPath.(iam_common.ServiceBusinessTier_FieldPath)
   629  	return res, ok
   630  }
   631  
   632  // String returns path representation in proto convention
   633  func (fps *Organization_FieldSubPath) String() string {
   634  	return fps.selector.String() + "." + fps.subPath.String()
   635  }
   636  
   637  // JSONString returns path representation is JSON convention
   638  func (fps *Organization_FieldSubPath) JSONString() string {
   639  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   640  }
   641  
   642  // Get returns all values pointed by selected field from source Organization
   643  func (fps *Organization_FieldSubPath) Get(source *Organization) (values []interface{}) {
   644  	switch fps.selector {
   645  	case Organization_FieldPathSelectorMetadata:
   646  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   647  	case Organization_FieldPathSelectorMultiRegionPolicy:
   648  		values = append(values, fps.subPath.GetRaw(source.GetMultiRegionPolicy())...)
   649  	case Organization_FieldPathSelectorServiceTiers:
   650  		for _, item := range source.GetServiceTiers() {
   651  			values = append(values, fps.subPath.GetRaw(item)...)
   652  		}
   653  	default:
   654  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fps.selector))
   655  	}
   656  	return
   657  }
   658  
   659  func (fps *Organization_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   660  	return fps.Get(source.(*Organization))
   661  }
   662  
   663  // GetSingle returns value of selected field from source Organization
   664  func (fps *Organization_FieldSubPath) GetSingle(source *Organization) (interface{}, bool) {
   665  	switch fps.selector {
   666  	case Organization_FieldPathSelectorMetadata:
   667  		if source.GetMetadata() == nil {
   668  			return nil, false
   669  		}
   670  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   671  	case Organization_FieldPathSelectorMultiRegionPolicy:
   672  		if source.GetMultiRegionPolicy() == nil {
   673  			return nil, false
   674  		}
   675  		return fps.subPath.GetSingleRaw(source.GetMultiRegionPolicy())
   676  	case Organization_FieldPathSelectorServiceTiers:
   677  		if len(source.GetServiceTiers()) == 0 {
   678  			return nil, false
   679  		}
   680  		return fps.subPath.GetSingleRaw(source.GetServiceTiers()[0])
   681  	default:
   682  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fps.selector))
   683  	}
   684  }
   685  
   686  func (fps *Organization_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   687  	return fps.GetSingle(source.(*Organization))
   688  }
   689  
   690  // GetDefault returns a default value of the field type
   691  func (fps *Organization_FieldSubPath) GetDefault() interface{} {
   692  	return fps.subPath.GetDefault()
   693  }
   694  
   695  func (fps *Organization_FieldSubPath) ClearValue(item *Organization) {
   696  	if item != nil {
   697  		switch fps.selector {
   698  		case Organization_FieldPathSelectorMetadata:
   699  			fps.subPath.ClearValueRaw(item.Metadata)
   700  		case Organization_FieldPathSelectorMultiRegionPolicy:
   701  			fps.subPath.ClearValueRaw(item.MultiRegionPolicy)
   702  		case Organization_FieldPathSelectorServiceTiers:
   703  			for _, subItem := range item.ServiceTiers {
   704  				fps.subPath.ClearValueRaw(subItem)
   705  			}
   706  		default:
   707  			panic(fmt.Sprintf("Invalid selector for Organization: %d", fps.selector))
   708  		}
   709  	}
   710  }
   711  
   712  func (fps *Organization_FieldSubPath) ClearValueRaw(item proto.Message) {
   713  	fps.ClearValue(item.(*Organization))
   714  }
   715  
   716  // IsLeaf - whether field path is holds simple value
   717  func (fps *Organization_FieldSubPath) IsLeaf() bool {
   718  	return fps.subPath.IsLeaf()
   719  }
   720  
   721  func (fps *Organization_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   722  	iPaths := []gotenobject.FieldPath{&Organization_FieldTerminalPath{selector: fps.selector}}
   723  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   724  	return iPaths
   725  }
   726  
   727  func (fps *Organization_FieldSubPath) WithIValue(value interface{}) Organization_FieldPathValue {
   728  	return &Organization_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   729  }
   730  
   731  func (fps *Organization_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   732  	return fps.WithIValue(value)
   733  }
   734  
   735  func (fps *Organization_FieldSubPath) WithIArrayOfValues(values interface{}) Organization_FieldPathArrayOfValues {
   736  	return &Organization_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   737  }
   738  
   739  func (fps *Organization_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   740  	return fps.WithIArrayOfValues(values)
   741  }
   742  
   743  func (fps *Organization_FieldSubPath) WithIArrayItemValue(value interface{}) Organization_FieldPathArrayItemValue {
   744  	return &Organization_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   745  }
   746  
   747  func (fps *Organization_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   748  	return fps.WithIArrayItemValue(value)
   749  }
   750  
   751  // Organization_FieldPathValue allows storing values for Organization fields according to their type
   752  type Organization_FieldPathValue interface {
   753  	Organization_FieldPath
   754  	gotenobject.FieldPathValue
   755  	SetTo(target **Organization)
   756  	CompareWith(*Organization) (cmp int, comparable bool)
   757  }
   758  
   759  func ParseOrganization_FieldPathValue(pathStr, valueStr string) (Organization_FieldPathValue, error) {
   760  	fp, err := ParseOrganization_FieldPath(pathStr)
   761  	if err != nil {
   762  		return nil, err
   763  	}
   764  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   765  	if err != nil {
   766  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Organization field path value from %s: %v", valueStr, err)
   767  	}
   768  	return fpv.(Organization_FieldPathValue), nil
   769  }
   770  
   771  func MustParseOrganization_FieldPathValue(pathStr, valueStr string) Organization_FieldPathValue {
   772  	fpv, err := ParseOrganization_FieldPathValue(pathStr, valueStr)
   773  	if err != nil {
   774  		panic(err)
   775  	}
   776  	return fpv
   777  }
   778  
   779  type Organization_FieldTerminalPathValue struct {
   780  	Organization_FieldTerminalPath
   781  	value interface{}
   782  }
   783  
   784  var _ Organization_FieldPathValue = (*Organization_FieldTerminalPathValue)(nil)
   785  
   786  // GetRawValue returns raw value stored under selected path for 'Organization' as interface{}
   787  func (fpv *Organization_FieldTerminalPathValue) GetRawValue() interface{} {
   788  	return fpv.value
   789  }
   790  func (fpv *Organization_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   791  	res, ok := fpv.value.(*Name)
   792  	return res, ok
   793  }
   794  func (fpv *Organization_FieldTerminalPathValue) AsTitleValue() (string, bool) {
   795  	res, ok := fpv.value.(string)
   796  	return res, ok
   797  }
   798  func (fpv *Organization_FieldTerminalPathValue) AsParentOrganizationValue() (*Reference, bool) {
   799  	res, ok := fpv.value.(*Reference)
   800  	return res, ok
   801  }
   802  func (fpv *Organization_FieldTerminalPathValue) AsRootOrganizationValue() (*Reference, bool) {
   803  	res, ok := fpv.value.(*Reference)
   804  	return res, ok
   805  }
   806  func (fpv *Organization_FieldTerminalPathValue) AsAncestryPathValue() ([]*Reference, bool) {
   807  	res, ok := fpv.value.([]*Reference)
   808  	return res, ok
   809  }
   810  func (fpv *Organization_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   811  	res, ok := fpv.value.(*meta.Meta)
   812  	return res, ok
   813  }
   814  func (fpv *Organization_FieldTerminalPathValue) AsMultiRegionPolicyValue() (*multi_region_policy.MultiRegionPolicy, bool) {
   815  	res, ok := fpv.value.(*multi_region_policy.MultiRegionPolicy)
   816  	return res, ok
   817  }
   818  func (fpv *Organization_FieldTerminalPathValue) AsAllowedServicesValue() ([]*meta_service.Reference, bool) {
   819  	res, ok := fpv.value.([]*meta_service.Reference)
   820  	return res, ok
   821  }
   822  func (fpv *Organization_FieldTerminalPathValue) AsBusinessTierValue() (iam_common.BusinessTier, bool) {
   823  	res, ok := fpv.value.(iam_common.BusinessTier)
   824  	return res, ok
   825  }
   826  func (fpv *Organization_FieldTerminalPathValue) AsServiceTiersValue() ([]*iam_common.ServiceBusinessTier, bool) {
   827  	res, ok := fpv.value.([]*iam_common.ServiceBusinessTier)
   828  	return res, ok
   829  }
   830  func (fpv *Organization_FieldTerminalPathValue) AsServiceErrorsValue() (map[string]*iam_common.ServiceErrors, bool) {
   831  	res, ok := fpv.value.(map[string]*iam_common.ServiceErrors)
   832  	return res, ok
   833  }
   834  
   835  // SetTo stores value for selected field for object Organization
   836  func (fpv *Organization_FieldTerminalPathValue) SetTo(target **Organization) {
   837  	if *target == nil {
   838  		*target = new(Organization)
   839  	}
   840  	switch fpv.selector {
   841  	case Organization_FieldPathSelectorName:
   842  		(*target).Name = fpv.value.(*Name)
   843  	case Organization_FieldPathSelectorTitle:
   844  		(*target).Title = fpv.value.(string)
   845  	case Organization_FieldPathSelectorParentOrganization:
   846  		(*target).ParentOrganization = fpv.value.(*Reference)
   847  	case Organization_FieldPathSelectorRootOrganization:
   848  		(*target).RootOrganization = fpv.value.(*Reference)
   849  	case Organization_FieldPathSelectorAncestryPath:
   850  		(*target).AncestryPath = fpv.value.([]*Reference)
   851  	case Organization_FieldPathSelectorMetadata:
   852  		(*target).Metadata = fpv.value.(*meta.Meta)
   853  	case Organization_FieldPathSelectorMultiRegionPolicy:
   854  		(*target).MultiRegionPolicy = fpv.value.(*multi_region_policy.MultiRegionPolicy)
   855  	case Organization_FieldPathSelectorAllowedServices:
   856  		(*target).AllowedServices = fpv.value.([]*meta_service.Reference)
   857  	case Organization_FieldPathSelectorBusinessTier:
   858  		(*target).BusinessTier = fpv.value.(iam_common.BusinessTier)
   859  	case Organization_FieldPathSelectorServiceTiers:
   860  		(*target).ServiceTiers = fpv.value.([]*iam_common.ServiceBusinessTier)
   861  	case Organization_FieldPathSelectorServiceErrors:
   862  		(*target).ServiceErrors = fpv.value.(map[string]*iam_common.ServiceErrors)
   863  	default:
   864  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpv.selector))
   865  	}
   866  }
   867  
   868  func (fpv *Organization_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   869  	typedObject := target.(*Organization)
   870  	fpv.SetTo(&typedObject)
   871  }
   872  
   873  // CompareWith compares value in the 'Organization_FieldTerminalPathValue' with the value under path in 'Organization'.
   874  func (fpv *Organization_FieldTerminalPathValue) CompareWith(source *Organization) (int, bool) {
   875  	switch fpv.selector {
   876  	case Organization_FieldPathSelectorName:
   877  		leftValue := fpv.value.(*Name)
   878  		rightValue := source.GetName()
   879  		if leftValue == nil {
   880  			if rightValue != nil {
   881  				return -1, true
   882  			}
   883  			return 0, true
   884  		}
   885  		if rightValue == nil {
   886  			return 1, true
   887  		}
   888  		if leftValue.String() == rightValue.String() {
   889  			return 0, true
   890  		} else if leftValue.String() < rightValue.String() {
   891  			return -1, true
   892  		} else {
   893  			return 1, true
   894  		}
   895  	case Organization_FieldPathSelectorTitle:
   896  		leftValue := fpv.value.(string)
   897  		rightValue := source.GetTitle()
   898  		if (leftValue) == (rightValue) {
   899  			return 0, true
   900  		} else if (leftValue) < (rightValue) {
   901  			return -1, true
   902  		} else {
   903  			return 1, true
   904  		}
   905  	case Organization_FieldPathSelectorParentOrganization:
   906  		leftValue := fpv.value.(*Reference)
   907  		rightValue := source.GetParentOrganization()
   908  		if leftValue == nil {
   909  			if rightValue != nil {
   910  				return -1, true
   911  			}
   912  			return 0, true
   913  		}
   914  		if rightValue == nil {
   915  			return 1, true
   916  		}
   917  		if leftValue.String() == rightValue.String() {
   918  			return 0, true
   919  		} else if leftValue.String() < rightValue.String() {
   920  			return -1, true
   921  		} else {
   922  			return 1, true
   923  		}
   924  	case Organization_FieldPathSelectorRootOrganization:
   925  		leftValue := fpv.value.(*Reference)
   926  		rightValue := source.GetRootOrganization()
   927  		if leftValue == nil {
   928  			if rightValue != nil {
   929  				return -1, true
   930  			}
   931  			return 0, true
   932  		}
   933  		if rightValue == nil {
   934  			return 1, true
   935  		}
   936  		if leftValue.String() == rightValue.String() {
   937  			return 0, true
   938  		} else if leftValue.String() < rightValue.String() {
   939  			return -1, true
   940  		} else {
   941  			return 1, true
   942  		}
   943  	case Organization_FieldPathSelectorAncestryPath:
   944  		return 0, false
   945  	case Organization_FieldPathSelectorMetadata:
   946  		return 0, false
   947  	case Organization_FieldPathSelectorMultiRegionPolicy:
   948  		return 0, false
   949  	case Organization_FieldPathSelectorAllowedServices:
   950  		return 0, false
   951  	case Organization_FieldPathSelectorBusinessTier:
   952  		leftValue := fpv.value.(iam_common.BusinessTier)
   953  		rightValue := source.GetBusinessTier()
   954  		if (leftValue) == (rightValue) {
   955  			return 0, true
   956  		} else if (leftValue) < (rightValue) {
   957  			return -1, true
   958  		} else {
   959  			return 1, true
   960  		}
   961  	case Organization_FieldPathSelectorServiceTiers:
   962  		return 0, false
   963  	case Organization_FieldPathSelectorServiceErrors:
   964  		return 0, false
   965  	default:
   966  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpv.selector))
   967  	}
   968  }
   969  
   970  func (fpv *Organization_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   971  	return fpv.CompareWith(source.(*Organization))
   972  }
   973  
   974  type Organization_FieldPathMapValue struct {
   975  	Organization_FieldPathMap
   976  	value interface{}
   977  }
   978  
   979  var _ Organization_FieldPathValue = (*Organization_FieldPathMapValue)(nil)
   980  
   981  // GetValue returns value stored under selected field in Organization as interface{}
   982  func (fpmv *Organization_FieldPathMapValue) GetRawValue() interface{} {
   983  	return fpmv.value
   984  }
   985  func (fpmv *Organization_FieldPathMapValue) AsServiceErrorsElementValue() (*iam_common.ServiceErrors, bool) {
   986  	res, ok := fpmv.value.(*iam_common.ServiceErrors)
   987  	return res, ok
   988  }
   989  
   990  // SetTo stores value for selected field in Organization
   991  func (fpmv *Organization_FieldPathMapValue) SetTo(target **Organization) {
   992  	if *target == nil {
   993  		*target = new(Organization)
   994  	}
   995  	switch fpmv.selector {
   996  	case Organization_FieldPathSelectorServiceErrors:
   997  		if (*target).ServiceErrors == nil {
   998  			(*target).ServiceErrors = make(map[string]*iam_common.ServiceErrors)
   999  		}
  1000  		(*target).ServiceErrors[fpmv.key] = fpmv.value.(*iam_common.ServiceErrors)
  1001  	default:
  1002  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpmv.selector))
  1003  	}
  1004  }
  1005  
  1006  func (fpmv *Organization_FieldPathMapValue) SetToRaw(target proto.Message) {
  1007  	typedObject := target.(*Organization)
  1008  	fpmv.SetTo(&typedObject)
  1009  }
  1010  
  1011  // CompareWith compares value in the 'Organization_FieldPathMapValue' with the value under path in 'Organization'.
  1012  func (fpmv *Organization_FieldPathMapValue) CompareWith(source *Organization) (int, bool) {
  1013  	switch fpmv.selector {
  1014  	case Organization_FieldPathSelectorServiceErrors:
  1015  		return 0, false
  1016  	default:
  1017  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpmv.selector))
  1018  	}
  1019  }
  1020  
  1021  func (fpmv *Organization_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
  1022  	return fpmv.CompareWith(source.(*Organization))
  1023  }
  1024  
  1025  type Organization_FieldSubPathValue struct {
  1026  	Organization_FieldPath
  1027  	subPathValue gotenobject.FieldPathValue
  1028  }
  1029  
  1030  var _ Organization_FieldPathValue = (*Organization_FieldSubPathValue)(nil)
  1031  
  1032  func (fpvs *Organization_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
  1033  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
  1034  	return res, ok
  1035  }
  1036  func (fpvs *Organization_FieldSubPathValue) AsMultiRegionPolicyPathValue() (multi_region_policy.MultiRegionPolicy_FieldPathValue, bool) {
  1037  	res, ok := fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue)
  1038  	return res, ok
  1039  }
  1040  func (fpvs *Organization_FieldSubPathValue) AsServiceTiersPathValue() (iam_common.ServiceBusinessTier_FieldPathValue, bool) {
  1041  	res, ok := fpvs.subPathValue.(iam_common.ServiceBusinessTier_FieldPathValue)
  1042  	return res, ok
  1043  }
  1044  
  1045  func (fpvs *Organization_FieldSubPathValue) SetTo(target **Organization) {
  1046  	if *target == nil {
  1047  		*target = new(Organization)
  1048  	}
  1049  	switch fpvs.Selector() {
  1050  	case Organization_FieldPathSelectorMetadata:
  1051  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
  1052  	case Organization_FieldPathSelectorMultiRegionPolicy:
  1053  		fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue).SetTo(&(*target).MultiRegionPolicy)
  1054  	case Organization_FieldPathSelectorServiceTiers:
  1055  		panic("FieldPath setter is unsupported for array subpaths")
  1056  	default:
  1057  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpvs.Selector()))
  1058  	}
  1059  }
  1060  
  1061  func (fpvs *Organization_FieldSubPathValue) SetToRaw(target proto.Message) {
  1062  	typedObject := target.(*Organization)
  1063  	fpvs.SetTo(&typedObject)
  1064  }
  1065  
  1066  func (fpvs *Organization_FieldSubPathValue) GetRawValue() interface{} {
  1067  	return fpvs.subPathValue.GetRawValue()
  1068  }
  1069  
  1070  func (fpvs *Organization_FieldSubPathValue) CompareWith(source *Organization) (int, bool) {
  1071  	switch fpvs.Selector() {
  1072  	case Organization_FieldPathSelectorMetadata:
  1073  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
  1074  	case Organization_FieldPathSelectorMultiRegionPolicy:
  1075  		return fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue).CompareWith(source.GetMultiRegionPolicy())
  1076  	case Organization_FieldPathSelectorServiceTiers:
  1077  		return 0, false // repeated field
  1078  	default:
  1079  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpvs.Selector()))
  1080  	}
  1081  }
  1082  
  1083  func (fpvs *Organization_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1084  	return fpvs.CompareWith(source.(*Organization))
  1085  }
  1086  
  1087  // Organization_FieldPathArrayItemValue allows storing single item in Path-specific values for Organization according to their type
  1088  // Present only for array (repeated) types.
  1089  type Organization_FieldPathArrayItemValue interface {
  1090  	gotenobject.FieldPathArrayItemValue
  1091  	Organization_FieldPath
  1092  	ContainsValue(*Organization) bool
  1093  }
  1094  
  1095  // ParseOrganization_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1096  func ParseOrganization_FieldPathArrayItemValue(pathStr, valueStr string) (Organization_FieldPathArrayItemValue, error) {
  1097  	fp, err := ParseOrganization_FieldPath(pathStr)
  1098  	if err != nil {
  1099  		return nil, err
  1100  	}
  1101  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1102  	if err != nil {
  1103  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Organization field path array item value from %s: %v", valueStr, err)
  1104  	}
  1105  	return fpaiv.(Organization_FieldPathArrayItemValue), nil
  1106  }
  1107  
  1108  func MustParseOrganization_FieldPathArrayItemValue(pathStr, valueStr string) Organization_FieldPathArrayItemValue {
  1109  	fpaiv, err := ParseOrganization_FieldPathArrayItemValue(pathStr, valueStr)
  1110  	if err != nil {
  1111  		panic(err)
  1112  	}
  1113  	return fpaiv
  1114  }
  1115  
  1116  type Organization_FieldTerminalPathArrayItemValue struct {
  1117  	Organization_FieldTerminalPath
  1118  	value interface{}
  1119  }
  1120  
  1121  var _ Organization_FieldPathArrayItemValue = (*Organization_FieldTerminalPathArrayItemValue)(nil)
  1122  
  1123  // GetRawValue returns stored element value for array in object Organization as interface{}
  1124  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1125  	return fpaiv.value
  1126  }
  1127  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) AsAncestryPathItemValue() (*Reference, bool) {
  1128  	res, ok := fpaiv.value.(*Reference)
  1129  	return res, ok
  1130  }
  1131  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) AsAllowedServicesItemValue() (*meta_service.Reference, bool) {
  1132  	res, ok := fpaiv.value.(*meta_service.Reference)
  1133  	return res, ok
  1134  }
  1135  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) AsServiceTiersItemValue() (*iam_common.ServiceBusinessTier, bool) {
  1136  	res, ok := fpaiv.value.(*iam_common.ServiceBusinessTier)
  1137  	return res, ok
  1138  }
  1139  
  1140  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) GetSingle(source *Organization) (interface{}, bool) {
  1141  	return nil, false
  1142  }
  1143  
  1144  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1145  	return fpaiv.GetSingle(source.(*Organization))
  1146  }
  1147  
  1148  // Contains returns a boolean indicating if value that is being held is present in given 'Organization'
  1149  func (fpaiv *Organization_FieldTerminalPathArrayItemValue) ContainsValue(source *Organization) bool {
  1150  	slice := fpaiv.Organization_FieldTerminalPath.Get(source)
  1151  	for _, v := range slice {
  1152  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1153  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1154  				return true
  1155  			}
  1156  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1157  			return true
  1158  		}
  1159  	}
  1160  	return false
  1161  }
  1162  
  1163  type Organization_FieldSubPathArrayItemValue struct {
  1164  	Organization_FieldPath
  1165  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1166  }
  1167  
  1168  // GetRawValue returns stored array item value
  1169  func (fpaivs *Organization_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1170  	return fpaivs.subPathItemValue.GetRawItemValue()
  1171  }
  1172  func (fpaivs *Organization_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
  1173  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
  1174  	return res, ok
  1175  }
  1176  func (fpaivs *Organization_FieldSubPathArrayItemValue) AsMultiRegionPolicyPathItemValue() (multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue, bool) {
  1177  	res, ok := fpaivs.subPathItemValue.(multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue)
  1178  	return res, ok
  1179  }
  1180  func (fpaivs *Organization_FieldSubPathArrayItemValue) AsServiceTiersPathItemValue() (iam_common.ServiceBusinessTier_FieldPathArrayItemValue, bool) {
  1181  	res, ok := fpaivs.subPathItemValue.(iam_common.ServiceBusinessTier_FieldPathArrayItemValue)
  1182  	return res, ok
  1183  }
  1184  
  1185  // Contains returns a boolean indicating if value that is being held is present in given 'Organization'
  1186  func (fpaivs *Organization_FieldSubPathArrayItemValue) ContainsValue(source *Organization) bool {
  1187  	switch fpaivs.Selector() {
  1188  	case Organization_FieldPathSelectorMetadata:
  1189  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
  1190  	case Organization_FieldPathSelectorMultiRegionPolicy:
  1191  		return fpaivs.subPathItemValue.(multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue).ContainsValue(source.GetMultiRegionPolicy())
  1192  	case Organization_FieldPathSelectorServiceTiers:
  1193  		return false // repeated/map field
  1194  	default:
  1195  		panic(fmt.Sprintf("Invalid selector for Organization: %d", fpaivs.Selector()))
  1196  	}
  1197  }
  1198  
  1199  // Organization_FieldPathArrayOfValues allows storing slice of values for Organization fields according to their type
  1200  type Organization_FieldPathArrayOfValues interface {
  1201  	gotenobject.FieldPathArrayOfValues
  1202  	Organization_FieldPath
  1203  }
  1204  
  1205  func ParseOrganization_FieldPathArrayOfValues(pathStr, valuesStr string) (Organization_FieldPathArrayOfValues, error) {
  1206  	fp, err := ParseOrganization_FieldPath(pathStr)
  1207  	if err != nil {
  1208  		return nil, err
  1209  	}
  1210  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1211  	if err != nil {
  1212  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Organization field path array of values from %s: %v", valuesStr, err)
  1213  	}
  1214  	return fpaov.(Organization_FieldPathArrayOfValues), nil
  1215  }
  1216  
  1217  func MustParseOrganization_FieldPathArrayOfValues(pathStr, valuesStr string) Organization_FieldPathArrayOfValues {
  1218  	fpaov, err := ParseOrganization_FieldPathArrayOfValues(pathStr, valuesStr)
  1219  	if err != nil {
  1220  		panic(err)
  1221  	}
  1222  	return fpaov
  1223  }
  1224  
  1225  type Organization_FieldTerminalPathArrayOfValues struct {
  1226  	Organization_FieldTerminalPath
  1227  	values interface{}
  1228  }
  1229  
  1230  var _ Organization_FieldPathArrayOfValues = (*Organization_FieldTerminalPathArrayOfValues)(nil)
  1231  
  1232  func (fpaov *Organization_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1233  	switch fpaov.selector {
  1234  	case Organization_FieldPathSelectorName:
  1235  		for _, v := range fpaov.values.([]*Name) {
  1236  			values = append(values, v)
  1237  		}
  1238  	case Organization_FieldPathSelectorTitle:
  1239  		for _, v := range fpaov.values.([]string) {
  1240  			values = append(values, v)
  1241  		}
  1242  	case Organization_FieldPathSelectorParentOrganization:
  1243  		for _, v := range fpaov.values.([]*Reference) {
  1244  			values = append(values, v)
  1245  		}
  1246  	case Organization_FieldPathSelectorRootOrganization:
  1247  		for _, v := range fpaov.values.([]*Reference) {
  1248  			values = append(values, v)
  1249  		}
  1250  	case Organization_FieldPathSelectorAncestryPath:
  1251  		for _, v := range fpaov.values.([][]*Reference) {
  1252  			values = append(values, v)
  1253  		}
  1254  	case Organization_FieldPathSelectorMetadata:
  1255  		for _, v := range fpaov.values.([]*meta.Meta) {
  1256  			values = append(values, v)
  1257  		}
  1258  	case Organization_FieldPathSelectorMultiRegionPolicy:
  1259  		for _, v := range fpaov.values.([]*multi_region_policy.MultiRegionPolicy) {
  1260  			values = append(values, v)
  1261  		}
  1262  	case Organization_FieldPathSelectorAllowedServices:
  1263  		for _, v := range fpaov.values.([][]*meta_service.Reference) {
  1264  			values = append(values, v)
  1265  		}
  1266  	case Organization_FieldPathSelectorBusinessTier:
  1267  		for _, v := range fpaov.values.([]iam_common.BusinessTier) {
  1268  			values = append(values, v)
  1269  		}
  1270  	case Organization_FieldPathSelectorServiceTiers:
  1271  		for _, v := range fpaov.values.([][]*iam_common.ServiceBusinessTier) {
  1272  			values = append(values, v)
  1273  		}
  1274  	case Organization_FieldPathSelectorServiceErrors:
  1275  		for _, v := range fpaov.values.([]map[string]*iam_common.ServiceErrors) {
  1276  			values = append(values, v)
  1277  		}
  1278  	}
  1279  	return
  1280  }
  1281  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
  1282  	res, ok := fpaov.values.([]*Name)
  1283  	return res, ok
  1284  }
  1285  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsTitleArrayOfValues() ([]string, bool) {
  1286  	res, ok := fpaov.values.([]string)
  1287  	return res, ok
  1288  }
  1289  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsParentOrganizationArrayOfValues() ([]*Reference, bool) {
  1290  	res, ok := fpaov.values.([]*Reference)
  1291  	return res, ok
  1292  }
  1293  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsRootOrganizationArrayOfValues() ([]*Reference, bool) {
  1294  	res, ok := fpaov.values.([]*Reference)
  1295  	return res, ok
  1296  }
  1297  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsAncestryPathArrayOfValues() ([][]*Reference, bool) {
  1298  	res, ok := fpaov.values.([][]*Reference)
  1299  	return res, ok
  1300  }
  1301  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1302  	res, ok := fpaov.values.([]*meta.Meta)
  1303  	return res, ok
  1304  }
  1305  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsMultiRegionPolicyArrayOfValues() ([]*multi_region_policy.MultiRegionPolicy, bool) {
  1306  	res, ok := fpaov.values.([]*multi_region_policy.MultiRegionPolicy)
  1307  	return res, ok
  1308  }
  1309  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsAllowedServicesArrayOfValues() ([][]*meta_service.Reference, bool) {
  1310  	res, ok := fpaov.values.([][]*meta_service.Reference)
  1311  	return res, ok
  1312  }
  1313  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsBusinessTierArrayOfValues() ([]iam_common.BusinessTier, bool) {
  1314  	res, ok := fpaov.values.([]iam_common.BusinessTier)
  1315  	return res, ok
  1316  }
  1317  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsServiceTiersArrayOfValues() ([][]*iam_common.ServiceBusinessTier, bool) {
  1318  	res, ok := fpaov.values.([][]*iam_common.ServiceBusinessTier)
  1319  	return res, ok
  1320  }
  1321  func (fpaov *Organization_FieldTerminalPathArrayOfValues) AsServiceErrorsArrayOfValues() ([]map[string]*iam_common.ServiceErrors, bool) {
  1322  	res, ok := fpaov.values.([]map[string]*iam_common.ServiceErrors)
  1323  	return res, ok
  1324  }
  1325  
  1326  type Organization_FieldPathMapArrayOfValues struct {
  1327  	Organization_FieldPathMap
  1328  	values interface{}
  1329  }
  1330  
  1331  var _ Organization_FieldPathArrayOfValues = (*Organization_FieldPathMapArrayOfValues)(nil)
  1332  
  1333  func (fpmaov *Organization_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  1334  	switch fpmaov.selector {
  1335  	case Organization_FieldPathSelectorServiceErrors:
  1336  		for _, v := range fpmaov.values.([]*iam_common.ServiceErrors) {
  1337  			values = append(values, v)
  1338  		}
  1339  	}
  1340  	return
  1341  }
  1342  func (fpmaov *Organization_FieldPathMapArrayOfValues) AsServiceErrorsArrayOfElementValues() ([]*iam_common.ServiceErrors, bool) {
  1343  	res, ok := fpmaov.values.([]*iam_common.ServiceErrors)
  1344  	return res, ok
  1345  }
  1346  
  1347  type Organization_FieldSubPathArrayOfValues struct {
  1348  	Organization_FieldPath
  1349  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1350  }
  1351  
  1352  var _ Organization_FieldPathArrayOfValues = (*Organization_FieldSubPathArrayOfValues)(nil)
  1353  
  1354  func (fpsaov *Organization_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1355  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1356  }
  1357  func (fpsaov *Organization_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1358  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1359  	return res, ok
  1360  }
  1361  func (fpsaov *Organization_FieldSubPathArrayOfValues) AsMultiRegionPolicyPathArrayOfValues() (multi_region_policy.MultiRegionPolicy_FieldPathArrayOfValues, bool) {
  1362  	res, ok := fpsaov.subPathArrayOfValues.(multi_region_policy.MultiRegionPolicy_FieldPathArrayOfValues)
  1363  	return res, ok
  1364  }
  1365  func (fpsaov *Organization_FieldSubPathArrayOfValues) AsServiceTiersPathArrayOfValues() (iam_common.ServiceBusinessTier_FieldPathArrayOfValues, bool) {
  1366  	res, ok := fpsaov.subPathArrayOfValues.(iam_common.ServiceBusinessTier_FieldPathArrayOfValues)
  1367  	return res, ok
  1368  }