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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/member_assignment.proto
     3  // DO NOT EDIT!!!
     4  
     5  package member_assignment
     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/v1/common"
    27  	organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization"
    28  	role_binding "github.com/cloudwan/edgelq-sdk/iam/resources/v1/role_binding"
    29  	meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    30  	meta "github.com/cloudwan/goten-sdk/types/meta"
    31  )
    32  
    33  // ensure the imports are used
    34  var (
    35  	_ = new(json.Marshaler)
    36  	_ = new(fmt.Stringer)
    37  	_ = reflect.DeepEqual
    38  	_ = strings.Builder{}
    39  	_ = time.Second
    40  
    41  	_ = strcase.ToLowerCamel
    42  	_ = codes.NotFound
    43  	_ = status.Status{}
    44  	_ = protojson.UnmarshalOptions{}
    45  	_ = new(proto.Message)
    46  	_ = protoregistry.GlobalTypes
    47  
    48  	_ = new(gotenobject.FieldPath)
    49  )
    50  
    51  // make sure we're using proto imports
    52  var (
    53  	_ = &iam_common.PCR{}
    54  	_ = &organization.Organization{}
    55  	_ = &role_binding.RoleBinding{}
    56  	_ = &meta_service.Service{}
    57  	_ = &meta.Meta{}
    58  )
    59  
    60  // FieldPath provides implementation to handle
    61  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    62  type MemberAssignment_FieldPath interface {
    63  	gotenobject.FieldPath
    64  	Selector() MemberAssignment_FieldPathSelector
    65  	Get(source *MemberAssignment) []interface{}
    66  	GetSingle(source *MemberAssignment) (interface{}, bool)
    67  	ClearValue(item *MemberAssignment)
    68  
    69  	// Those methods build corresponding MemberAssignment_FieldPathValue
    70  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    71  	WithIValue(value interface{}) MemberAssignment_FieldPathValue
    72  	WithIArrayOfValues(values interface{}) MemberAssignment_FieldPathArrayOfValues
    73  	WithIArrayItemValue(value interface{}) MemberAssignment_FieldPathArrayItemValue
    74  }
    75  
    76  type MemberAssignment_FieldPathSelector int32
    77  
    78  const (
    79  	MemberAssignment_FieldPathSelectorName                      MemberAssignment_FieldPathSelector = 0
    80  	MemberAssignment_FieldPathSelectorMetadata                  MemberAssignment_FieldPathSelector = 1
    81  	MemberAssignment_FieldPathSelectorScope                     MemberAssignment_FieldPathSelector = 2
    82  	MemberAssignment_FieldPathSelectorScopeTitle                MemberAssignment_FieldPathSelector = 3
    83  	MemberAssignment_FieldPathSelectorParentOrganization        MemberAssignment_FieldPathSelector = 4
    84  	MemberAssignment_FieldPathSelectorScopeMetadata             MemberAssignment_FieldPathSelector = 5
    85  	MemberAssignment_FieldPathSelectorMultiRegionControlRegion  MemberAssignment_FieldPathSelector = 6
    86  	MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions MemberAssignment_FieldPathSelector = 7
    87  	MemberAssignment_FieldPathSelectorScopeServices             MemberAssignment_FieldPathSelector = 8
    88  	MemberAssignment_FieldPathSelectorBusinessTier              MemberAssignment_FieldPathSelector = 9
    89  	MemberAssignment_FieldPathSelectorMember                    MemberAssignment_FieldPathSelector = 10
    90  	MemberAssignment_FieldPathSelectorMemberRegion              MemberAssignment_FieldPathSelector = 11
    91  	MemberAssignment_FieldPathSelectorCtrlStatus                MemberAssignment_FieldPathSelector = 12
    92  )
    93  
    94  func (s MemberAssignment_FieldPathSelector) String() string {
    95  	switch s {
    96  	case MemberAssignment_FieldPathSelectorName:
    97  		return "name"
    98  	case MemberAssignment_FieldPathSelectorMetadata:
    99  		return "metadata"
   100  	case MemberAssignment_FieldPathSelectorScope:
   101  		return "scope"
   102  	case MemberAssignment_FieldPathSelectorScopeTitle:
   103  		return "scope_title"
   104  	case MemberAssignment_FieldPathSelectorParentOrganization:
   105  		return "parent_organization"
   106  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   107  		return "scope_metadata"
   108  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   109  		return "multi_region_control_region"
   110  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   111  		return "multi_region_enabled_regions"
   112  	case MemberAssignment_FieldPathSelectorScopeServices:
   113  		return "scope_services"
   114  	case MemberAssignment_FieldPathSelectorBusinessTier:
   115  		return "business_tier"
   116  	case MemberAssignment_FieldPathSelectorMember:
   117  		return "member"
   118  	case MemberAssignment_FieldPathSelectorMemberRegion:
   119  		return "member_region"
   120  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   121  		return "ctrl_status"
   122  	default:
   123  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", s))
   124  	}
   125  }
   126  
   127  func BuildMemberAssignment_FieldPath(fp gotenobject.RawFieldPath) (MemberAssignment_FieldPath, error) {
   128  	if len(fp) == 0 {
   129  		return nil, status.Error(codes.InvalidArgument, "empty field path for object MemberAssignment")
   130  	}
   131  	if len(fp) == 1 {
   132  		switch fp[0] {
   133  		case "name":
   134  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorName}, nil
   135  		case "metadata":
   136  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMetadata}, nil
   137  		case "scope":
   138  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScope}, nil
   139  		case "scope_title", "scopeTitle", "scope-title":
   140  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScopeTitle}, nil
   141  		case "parent_organization", "parentOrganization", "parent-organization":
   142  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorParentOrganization}, nil
   143  		case "scope_metadata", "scopeMetadata", "scope-metadata":
   144  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScopeMetadata}, nil
   145  		case "multi_region_control_region", "multiRegionControlRegion", "multi-region-control-region":
   146  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMultiRegionControlRegion}, nil
   147  		case "multi_region_enabled_regions", "multiRegionEnabledRegions", "multi-region-enabled-regions":
   148  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions}, nil
   149  		case "scope_services", "scopeServices", "scope-services":
   150  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScopeServices}, nil
   151  		case "business_tier", "businessTier", "business-tier":
   152  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorBusinessTier}, nil
   153  		case "member":
   154  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMember}, nil
   155  		case "member_region", "memberRegion", "member-region":
   156  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMemberRegion}, nil
   157  		case "ctrl_status", "ctrlStatus", "ctrl-status":
   158  			return &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorCtrlStatus}, nil
   159  		}
   160  	} else {
   161  		switch fp[0] {
   162  		case "metadata":
   163  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   164  				return nil, err
   165  			} else {
   166  				return &MemberAssignment_FieldSubPath{selector: MemberAssignment_FieldPathSelectorMetadata, subPath: subpath}, nil
   167  			}
   168  		case "scope_metadata", "scopeMetadata", "scope-metadata":
   169  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   170  				return nil, err
   171  			} else {
   172  				return &MemberAssignment_FieldSubPath{selector: MemberAssignment_FieldPathSelectorScopeMetadata, subPath: subpath}, nil
   173  			}
   174  		case "ctrl_status", "ctrlStatus", "ctrl-status":
   175  			if subpath, err := BuildMemberAssignmentWorkStatus_FieldPath(fp[1:]); err != nil {
   176  				return nil, err
   177  			} else {
   178  				return &MemberAssignment_FieldSubPath{selector: MemberAssignment_FieldPathSelectorCtrlStatus, subPath: subpath}, nil
   179  			}
   180  		}
   181  	}
   182  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object MemberAssignment", fp)
   183  }
   184  
   185  func ParseMemberAssignment_FieldPath(rawField string) (MemberAssignment_FieldPath, error) {
   186  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   187  	if err != nil {
   188  		return nil, err
   189  	}
   190  	return BuildMemberAssignment_FieldPath(fp)
   191  }
   192  
   193  func MustParseMemberAssignment_FieldPath(rawField string) MemberAssignment_FieldPath {
   194  	fp, err := ParseMemberAssignment_FieldPath(rawField)
   195  	if err != nil {
   196  		panic(err)
   197  	}
   198  	return fp
   199  }
   200  
   201  type MemberAssignment_FieldTerminalPath struct {
   202  	selector MemberAssignment_FieldPathSelector
   203  }
   204  
   205  var _ MemberAssignment_FieldPath = (*MemberAssignment_FieldTerminalPath)(nil)
   206  
   207  func (fp *MemberAssignment_FieldTerminalPath) Selector() MemberAssignment_FieldPathSelector {
   208  	return fp.selector
   209  }
   210  
   211  // String returns path representation in proto convention
   212  func (fp *MemberAssignment_FieldTerminalPath) String() string {
   213  	return fp.selector.String()
   214  }
   215  
   216  // JSONString returns path representation is JSON convention
   217  func (fp *MemberAssignment_FieldTerminalPath) JSONString() string {
   218  	return strcase.ToLowerCamel(fp.String())
   219  }
   220  
   221  // Get returns all values pointed by specific field from source MemberAssignment
   222  func (fp *MemberAssignment_FieldTerminalPath) Get(source *MemberAssignment) (values []interface{}) {
   223  	if source != nil {
   224  		switch fp.selector {
   225  		case MemberAssignment_FieldPathSelectorName:
   226  			if source.Name != nil {
   227  				values = append(values, source.Name)
   228  			}
   229  		case MemberAssignment_FieldPathSelectorMetadata:
   230  			if source.Metadata != nil {
   231  				values = append(values, source.Metadata)
   232  			}
   233  		case MemberAssignment_FieldPathSelectorScope:
   234  			if source.Scope != nil {
   235  				values = append(values, source.Scope)
   236  			}
   237  		case MemberAssignment_FieldPathSelectorScopeTitle:
   238  			values = append(values, source.ScopeTitle)
   239  		case MemberAssignment_FieldPathSelectorParentOrganization:
   240  			if source.ParentOrganization != nil {
   241  				values = append(values, source.ParentOrganization)
   242  			}
   243  		case MemberAssignment_FieldPathSelectorScopeMetadata:
   244  			if source.ScopeMetadata != nil {
   245  				values = append(values, source.ScopeMetadata)
   246  			}
   247  		case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   248  			values = append(values, source.MultiRegionControlRegion)
   249  		case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   250  			for _, value := range source.GetMultiRegionEnabledRegions() {
   251  				values = append(values, value)
   252  			}
   253  		case MemberAssignment_FieldPathSelectorScopeServices:
   254  			for _, value := range source.GetScopeServices() {
   255  				values = append(values, value)
   256  			}
   257  		case MemberAssignment_FieldPathSelectorBusinessTier:
   258  			values = append(values, source.BusinessTier)
   259  		case MemberAssignment_FieldPathSelectorMember:
   260  			values = append(values, source.Member)
   261  		case MemberAssignment_FieldPathSelectorMemberRegion:
   262  			values = append(values, source.MemberRegion)
   263  		case MemberAssignment_FieldPathSelectorCtrlStatus:
   264  			if source.CtrlStatus != nil {
   265  				values = append(values, source.CtrlStatus)
   266  			}
   267  		default:
   268  			panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   269  		}
   270  	}
   271  	return
   272  }
   273  
   274  func (fp *MemberAssignment_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   275  	return fp.Get(source.(*MemberAssignment))
   276  }
   277  
   278  // GetSingle returns value pointed by specific field of from source MemberAssignment
   279  func (fp *MemberAssignment_FieldTerminalPath) GetSingle(source *MemberAssignment) (interface{}, bool) {
   280  	switch fp.selector {
   281  	case MemberAssignment_FieldPathSelectorName:
   282  		res := source.GetName()
   283  		return res, res != nil
   284  	case MemberAssignment_FieldPathSelectorMetadata:
   285  		res := source.GetMetadata()
   286  		return res, res != nil
   287  	case MemberAssignment_FieldPathSelectorScope:
   288  		res := source.GetScope()
   289  		return res, res != nil
   290  	case MemberAssignment_FieldPathSelectorScopeTitle:
   291  		return source.GetScopeTitle(), source != nil
   292  	case MemberAssignment_FieldPathSelectorParentOrganization:
   293  		res := source.GetParentOrganization()
   294  		return res, res != nil
   295  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   296  		res := source.GetScopeMetadata()
   297  		return res, res != nil
   298  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   299  		return source.GetMultiRegionControlRegion(), source != nil
   300  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   301  		res := source.GetMultiRegionEnabledRegions()
   302  		return res, res != nil
   303  	case MemberAssignment_FieldPathSelectorScopeServices:
   304  		res := source.GetScopeServices()
   305  		return res, res != nil
   306  	case MemberAssignment_FieldPathSelectorBusinessTier:
   307  		return source.GetBusinessTier(), source != nil
   308  	case MemberAssignment_FieldPathSelectorMember:
   309  		return source.GetMember(), source != nil
   310  	case MemberAssignment_FieldPathSelectorMemberRegion:
   311  		return source.GetMemberRegion(), source != nil
   312  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   313  		res := source.GetCtrlStatus()
   314  		return res, res != nil
   315  	default:
   316  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   317  	}
   318  }
   319  
   320  func (fp *MemberAssignment_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   321  	return fp.GetSingle(source.(*MemberAssignment))
   322  }
   323  
   324  // GetDefault returns a default value of the field type
   325  func (fp *MemberAssignment_FieldTerminalPath) GetDefault() interface{} {
   326  	switch fp.selector {
   327  	case MemberAssignment_FieldPathSelectorName:
   328  		return (*Name)(nil)
   329  	case MemberAssignment_FieldPathSelectorMetadata:
   330  		return (*meta.Meta)(nil)
   331  	case MemberAssignment_FieldPathSelectorScope:
   332  		return (*role_binding.ParentName)(nil)
   333  	case MemberAssignment_FieldPathSelectorScopeTitle:
   334  		return ""
   335  	case MemberAssignment_FieldPathSelectorParentOrganization:
   336  		return (*organization.Name)(nil)
   337  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   338  		return (*meta.Meta)(nil)
   339  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   340  		return ""
   341  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   342  		return ([]string)(nil)
   343  	case MemberAssignment_FieldPathSelectorScopeServices:
   344  		return ([]*meta_service.Name)(nil)
   345  	case MemberAssignment_FieldPathSelectorBusinessTier:
   346  		return iam_common.BusinessTier_UNDEFINED
   347  	case MemberAssignment_FieldPathSelectorMember:
   348  		return ""
   349  	case MemberAssignment_FieldPathSelectorMemberRegion:
   350  		return ""
   351  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   352  		return (*MemberAssignment_WorkStatus)(nil)
   353  	default:
   354  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   355  	}
   356  }
   357  
   358  func (fp *MemberAssignment_FieldTerminalPath) ClearValue(item *MemberAssignment) {
   359  	if item != nil {
   360  		switch fp.selector {
   361  		case MemberAssignment_FieldPathSelectorName:
   362  			item.Name = nil
   363  		case MemberAssignment_FieldPathSelectorMetadata:
   364  			item.Metadata = nil
   365  		case MemberAssignment_FieldPathSelectorScope:
   366  			item.Scope = nil
   367  		case MemberAssignment_FieldPathSelectorScopeTitle:
   368  			item.ScopeTitle = ""
   369  		case MemberAssignment_FieldPathSelectorParentOrganization:
   370  			item.ParentOrganization = nil
   371  		case MemberAssignment_FieldPathSelectorScopeMetadata:
   372  			item.ScopeMetadata = nil
   373  		case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   374  			item.MultiRegionControlRegion = ""
   375  		case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   376  			item.MultiRegionEnabledRegions = nil
   377  		case MemberAssignment_FieldPathSelectorScopeServices:
   378  			item.ScopeServices = nil
   379  		case MemberAssignment_FieldPathSelectorBusinessTier:
   380  			item.BusinessTier = iam_common.BusinessTier_UNDEFINED
   381  		case MemberAssignment_FieldPathSelectorMember:
   382  			item.Member = ""
   383  		case MemberAssignment_FieldPathSelectorMemberRegion:
   384  			item.MemberRegion = ""
   385  		case MemberAssignment_FieldPathSelectorCtrlStatus:
   386  			item.CtrlStatus = nil
   387  		default:
   388  			panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   389  		}
   390  	}
   391  }
   392  
   393  func (fp *MemberAssignment_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   394  	fp.ClearValue(item.(*MemberAssignment))
   395  }
   396  
   397  // IsLeaf - whether field path is holds simple value
   398  func (fp *MemberAssignment_FieldTerminalPath) IsLeaf() bool {
   399  	return fp.selector == MemberAssignment_FieldPathSelectorName ||
   400  		fp.selector == MemberAssignment_FieldPathSelectorScope ||
   401  		fp.selector == MemberAssignment_FieldPathSelectorScopeTitle ||
   402  		fp.selector == MemberAssignment_FieldPathSelectorParentOrganization ||
   403  		fp.selector == MemberAssignment_FieldPathSelectorMultiRegionControlRegion ||
   404  		fp.selector == MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions ||
   405  		fp.selector == MemberAssignment_FieldPathSelectorScopeServices ||
   406  		fp.selector == MemberAssignment_FieldPathSelectorBusinessTier ||
   407  		fp.selector == MemberAssignment_FieldPathSelectorMember ||
   408  		fp.selector == MemberAssignment_FieldPathSelectorMemberRegion
   409  }
   410  
   411  func (fp *MemberAssignment_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   412  	return []gotenobject.FieldPath{fp}
   413  }
   414  
   415  func (fp *MemberAssignment_FieldTerminalPath) WithIValue(value interface{}) MemberAssignment_FieldPathValue {
   416  	switch fp.selector {
   417  	case MemberAssignment_FieldPathSelectorName:
   418  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*Name)}
   419  	case MemberAssignment_FieldPathSelectorMetadata:
   420  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   421  	case MemberAssignment_FieldPathSelectorScope:
   422  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*role_binding.ParentName)}
   423  	case MemberAssignment_FieldPathSelectorScopeTitle:
   424  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(string)}
   425  	case MemberAssignment_FieldPathSelectorParentOrganization:
   426  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*organization.Name)}
   427  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   428  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   429  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   430  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(string)}
   431  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   432  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.([]string)}
   433  	case MemberAssignment_FieldPathSelectorScopeServices:
   434  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.([]*meta_service.Name)}
   435  	case MemberAssignment_FieldPathSelectorBusinessTier:
   436  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(iam_common.BusinessTier)}
   437  	case MemberAssignment_FieldPathSelectorMember:
   438  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(string)}
   439  	case MemberAssignment_FieldPathSelectorMemberRegion:
   440  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(string)}
   441  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   442  		return &MemberAssignment_FieldTerminalPathValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*MemberAssignment_WorkStatus)}
   443  	default:
   444  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   445  	}
   446  }
   447  
   448  func (fp *MemberAssignment_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   449  	return fp.WithIValue(value)
   450  }
   451  
   452  func (fp *MemberAssignment_FieldTerminalPath) WithIArrayOfValues(values interface{}) MemberAssignment_FieldPathArrayOfValues {
   453  	fpaov := &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp}
   454  	switch fp.selector {
   455  	case MemberAssignment_FieldPathSelectorName:
   456  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]*Name)}
   457  	case MemberAssignment_FieldPathSelectorMetadata:
   458  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   459  	case MemberAssignment_FieldPathSelectorScope:
   460  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]*role_binding.ParentName)}
   461  	case MemberAssignment_FieldPathSelectorScopeTitle:
   462  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]string)}
   463  	case MemberAssignment_FieldPathSelectorParentOrganization:
   464  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]*organization.Name)}
   465  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   466  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   467  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   468  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]string)}
   469  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   470  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([][]string)}
   471  	case MemberAssignment_FieldPathSelectorScopeServices:
   472  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([][]*meta_service.Name)}
   473  	case MemberAssignment_FieldPathSelectorBusinessTier:
   474  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]iam_common.BusinessTier)}
   475  	case MemberAssignment_FieldPathSelectorMember:
   476  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]string)}
   477  	case MemberAssignment_FieldPathSelectorMemberRegion:
   478  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]string)}
   479  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   480  		return &MemberAssignment_FieldTerminalPathArrayOfValues{MemberAssignment_FieldTerminalPath: *fp, values: values.([]*MemberAssignment_WorkStatus)}
   481  	default:
   482  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   483  	}
   484  	return fpaov
   485  }
   486  
   487  func (fp *MemberAssignment_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   488  	return fp.WithIArrayOfValues(values)
   489  }
   490  
   491  func (fp *MemberAssignment_FieldTerminalPath) WithIArrayItemValue(value interface{}) MemberAssignment_FieldPathArrayItemValue {
   492  	switch fp.selector {
   493  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   494  		return &MemberAssignment_FieldTerminalPathArrayItemValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(string)}
   495  	case MemberAssignment_FieldPathSelectorScopeServices:
   496  		return &MemberAssignment_FieldTerminalPathArrayItemValue{MemberAssignment_FieldTerminalPath: *fp, value: value.(*meta_service.Name)}
   497  	default:
   498  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fp.selector))
   499  	}
   500  }
   501  
   502  func (fp *MemberAssignment_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   503  	return fp.WithIArrayItemValue(value)
   504  }
   505  
   506  type MemberAssignment_FieldSubPath struct {
   507  	selector MemberAssignment_FieldPathSelector
   508  	subPath  gotenobject.FieldPath
   509  }
   510  
   511  var _ MemberAssignment_FieldPath = (*MemberAssignment_FieldSubPath)(nil)
   512  
   513  func (fps *MemberAssignment_FieldSubPath) Selector() MemberAssignment_FieldPathSelector {
   514  	return fps.selector
   515  }
   516  func (fps *MemberAssignment_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   517  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   518  	return res, ok
   519  }
   520  func (fps *MemberAssignment_FieldSubPath) AsScopeMetadataSubPath() (meta.Meta_FieldPath, bool) {
   521  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   522  	return res, ok
   523  }
   524  func (fps *MemberAssignment_FieldSubPath) AsCtrlStatusSubPath() (MemberAssignmentWorkStatus_FieldPath, bool) {
   525  	res, ok := fps.subPath.(MemberAssignmentWorkStatus_FieldPath)
   526  	return res, ok
   527  }
   528  
   529  // String returns path representation in proto convention
   530  func (fps *MemberAssignment_FieldSubPath) String() string {
   531  	return fps.selector.String() + "." + fps.subPath.String()
   532  }
   533  
   534  // JSONString returns path representation is JSON convention
   535  func (fps *MemberAssignment_FieldSubPath) JSONString() string {
   536  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   537  }
   538  
   539  // Get returns all values pointed by selected field from source MemberAssignment
   540  func (fps *MemberAssignment_FieldSubPath) Get(source *MemberAssignment) (values []interface{}) {
   541  	switch fps.selector {
   542  	case MemberAssignment_FieldPathSelectorMetadata:
   543  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   544  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   545  		values = append(values, fps.subPath.GetRaw(source.GetScopeMetadata())...)
   546  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   547  		values = append(values, fps.subPath.GetRaw(source.GetCtrlStatus())...)
   548  	default:
   549  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fps.selector))
   550  	}
   551  	return
   552  }
   553  
   554  func (fps *MemberAssignment_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   555  	return fps.Get(source.(*MemberAssignment))
   556  }
   557  
   558  // GetSingle returns value of selected field from source MemberAssignment
   559  func (fps *MemberAssignment_FieldSubPath) GetSingle(source *MemberAssignment) (interface{}, bool) {
   560  	switch fps.selector {
   561  	case MemberAssignment_FieldPathSelectorMetadata:
   562  		if source.GetMetadata() == nil {
   563  			return nil, false
   564  		}
   565  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   566  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   567  		if source.GetScopeMetadata() == nil {
   568  			return nil, false
   569  		}
   570  		return fps.subPath.GetSingleRaw(source.GetScopeMetadata())
   571  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   572  		if source.GetCtrlStatus() == nil {
   573  			return nil, false
   574  		}
   575  		return fps.subPath.GetSingleRaw(source.GetCtrlStatus())
   576  	default:
   577  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fps.selector))
   578  	}
   579  }
   580  
   581  func (fps *MemberAssignment_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   582  	return fps.GetSingle(source.(*MemberAssignment))
   583  }
   584  
   585  // GetDefault returns a default value of the field type
   586  func (fps *MemberAssignment_FieldSubPath) GetDefault() interface{} {
   587  	return fps.subPath.GetDefault()
   588  }
   589  
   590  func (fps *MemberAssignment_FieldSubPath) ClearValue(item *MemberAssignment) {
   591  	if item != nil {
   592  		switch fps.selector {
   593  		case MemberAssignment_FieldPathSelectorMetadata:
   594  			fps.subPath.ClearValueRaw(item.Metadata)
   595  		case MemberAssignment_FieldPathSelectorScopeMetadata:
   596  			fps.subPath.ClearValueRaw(item.ScopeMetadata)
   597  		case MemberAssignment_FieldPathSelectorCtrlStatus:
   598  			fps.subPath.ClearValueRaw(item.CtrlStatus)
   599  		default:
   600  			panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fps.selector))
   601  		}
   602  	}
   603  }
   604  
   605  func (fps *MemberAssignment_FieldSubPath) ClearValueRaw(item proto.Message) {
   606  	fps.ClearValue(item.(*MemberAssignment))
   607  }
   608  
   609  // IsLeaf - whether field path is holds simple value
   610  func (fps *MemberAssignment_FieldSubPath) IsLeaf() bool {
   611  	return fps.subPath.IsLeaf()
   612  }
   613  
   614  func (fps *MemberAssignment_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   615  	iPaths := []gotenobject.FieldPath{&MemberAssignment_FieldTerminalPath{selector: fps.selector}}
   616  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   617  	return iPaths
   618  }
   619  
   620  func (fps *MemberAssignment_FieldSubPath) WithIValue(value interface{}) MemberAssignment_FieldPathValue {
   621  	return &MemberAssignment_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   622  }
   623  
   624  func (fps *MemberAssignment_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   625  	return fps.WithIValue(value)
   626  }
   627  
   628  func (fps *MemberAssignment_FieldSubPath) WithIArrayOfValues(values interface{}) MemberAssignment_FieldPathArrayOfValues {
   629  	return &MemberAssignment_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   630  }
   631  
   632  func (fps *MemberAssignment_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   633  	return fps.WithIArrayOfValues(values)
   634  }
   635  
   636  func (fps *MemberAssignment_FieldSubPath) WithIArrayItemValue(value interface{}) MemberAssignment_FieldPathArrayItemValue {
   637  	return &MemberAssignment_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   638  }
   639  
   640  func (fps *MemberAssignment_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   641  	return fps.WithIArrayItemValue(value)
   642  }
   643  
   644  // MemberAssignment_FieldPathValue allows storing values for MemberAssignment fields according to their type
   645  type MemberAssignment_FieldPathValue interface {
   646  	MemberAssignment_FieldPath
   647  	gotenobject.FieldPathValue
   648  	SetTo(target **MemberAssignment)
   649  	CompareWith(*MemberAssignment) (cmp int, comparable bool)
   650  }
   651  
   652  func ParseMemberAssignment_FieldPathValue(pathStr, valueStr string) (MemberAssignment_FieldPathValue, error) {
   653  	fp, err := ParseMemberAssignment_FieldPath(pathStr)
   654  	if err != nil {
   655  		return nil, err
   656  	}
   657  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   658  	if err != nil {
   659  		return nil, status.Errorf(codes.InvalidArgument, "error parsing MemberAssignment field path value from %s: %v", valueStr, err)
   660  	}
   661  	return fpv.(MemberAssignment_FieldPathValue), nil
   662  }
   663  
   664  func MustParseMemberAssignment_FieldPathValue(pathStr, valueStr string) MemberAssignment_FieldPathValue {
   665  	fpv, err := ParseMemberAssignment_FieldPathValue(pathStr, valueStr)
   666  	if err != nil {
   667  		panic(err)
   668  	}
   669  	return fpv
   670  }
   671  
   672  type MemberAssignment_FieldTerminalPathValue struct {
   673  	MemberAssignment_FieldTerminalPath
   674  	value interface{}
   675  }
   676  
   677  var _ MemberAssignment_FieldPathValue = (*MemberAssignment_FieldTerminalPathValue)(nil)
   678  
   679  // GetRawValue returns raw value stored under selected path for 'MemberAssignment' as interface{}
   680  func (fpv *MemberAssignment_FieldTerminalPathValue) GetRawValue() interface{} {
   681  	return fpv.value
   682  }
   683  func (fpv *MemberAssignment_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   684  	res, ok := fpv.value.(*Name)
   685  	return res, ok
   686  }
   687  func (fpv *MemberAssignment_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   688  	res, ok := fpv.value.(*meta.Meta)
   689  	return res, ok
   690  }
   691  func (fpv *MemberAssignment_FieldTerminalPathValue) AsScopeValue() (*role_binding.ParentName, bool) {
   692  	res, ok := fpv.value.(*role_binding.ParentName)
   693  	return res, ok
   694  }
   695  func (fpv *MemberAssignment_FieldTerminalPathValue) AsScopeTitleValue() (string, bool) {
   696  	res, ok := fpv.value.(string)
   697  	return res, ok
   698  }
   699  func (fpv *MemberAssignment_FieldTerminalPathValue) AsParentOrganizationValue() (*organization.Name, bool) {
   700  	res, ok := fpv.value.(*organization.Name)
   701  	return res, ok
   702  }
   703  func (fpv *MemberAssignment_FieldTerminalPathValue) AsScopeMetadataValue() (*meta.Meta, bool) {
   704  	res, ok := fpv.value.(*meta.Meta)
   705  	return res, ok
   706  }
   707  func (fpv *MemberAssignment_FieldTerminalPathValue) AsMultiRegionControlRegionValue() (string, bool) {
   708  	res, ok := fpv.value.(string)
   709  	return res, ok
   710  }
   711  func (fpv *MemberAssignment_FieldTerminalPathValue) AsMultiRegionEnabledRegionsValue() ([]string, bool) {
   712  	res, ok := fpv.value.([]string)
   713  	return res, ok
   714  }
   715  func (fpv *MemberAssignment_FieldTerminalPathValue) AsScopeServicesValue() ([]*meta_service.Name, bool) {
   716  	res, ok := fpv.value.([]*meta_service.Name)
   717  	return res, ok
   718  }
   719  func (fpv *MemberAssignment_FieldTerminalPathValue) AsBusinessTierValue() (iam_common.BusinessTier, bool) {
   720  	res, ok := fpv.value.(iam_common.BusinessTier)
   721  	return res, ok
   722  }
   723  func (fpv *MemberAssignment_FieldTerminalPathValue) AsMemberValue() (string, bool) {
   724  	res, ok := fpv.value.(string)
   725  	return res, ok
   726  }
   727  func (fpv *MemberAssignment_FieldTerminalPathValue) AsMemberRegionValue() (string, bool) {
   728  	res, ok := fpv.value.(string)
   729  	return res, ok
   730  }
   731  func (fpv *MemberAssignment_FieldTerminalPathValue) AsCtrlStatusValue() (*MemberAssignment_WorkStatus, bool) {
   732  	res, ok := fpv.value.(*MemberAssignment_WorkStatus)
   733  	return res, ok
   734  }
   735  
   736  // SetTo stores value for selected field for object MemberAssignment
   737  func (fpv *MemberAssignment_FieldTerminalPathValue) SetTo(target **MemberAssignment) {
   738  	if *target == nil {
   739  		*target = new(MemberAssignment)
   740  	}
   741  	switch fpv.selector {
   742  	case MemberAssignment_FieldPathSelectorName:
   743  		(*target).Name = fpv.value.(*Name)
   744  	case MemberAssignment_FieldPathSelectorMetadata:
   745  		(*target).Metadata = fpv.value.(*meta.Meta)
   746  	case MemberAssignment_FieldPathSelectorScope:
   747  		(*target).Scope = fpv.value.(*role_binding.ParentName)
   748  	case MemberAssignment_FieldPathSelectorScopeTitle:
   749  		(*target).ScopeTitle = fpv.value.(string)
   750  	case MemberAssignment_FieldPathSelectorParentOrganization:
   751  		(*target).ParentOrganization = fpv.value.(*organization.Name)
   752  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   753  		(*target).ScopeMetadata = fpv.value.(*meta.Meta)
   754  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   755  		(*target).MultiRegionControlRegion = fpv.value.(string)
   756  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   757  		(*target).MultiRegionEnabledRegions = fpv.value.([]string)
   758  	case MemberAssignment_FieldPathSelectorScopeServices:
   759  		(*target).ScopeServices = fpv.value.([]*meta_service.Name)
   760  	case MemberAssignment_FieldPathSelectorBusinessTier:
   761  		(*target).BusinessTier = fpv.value.(iam_common.BusinessTier)
   762  	case MemberAssignment_FieldPathSelectorMember:
   763  		(*target).Member = fpv.value.(string)
   764  	case MemberAssignment_FieldPathSelectorMemberRegion:
   765  		(*target).MemberRegion = fpv.value.(string)
   766  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   767  		(*target).CtrlStatus = fpv.value.(*MemberAssignment_WorkStatus)
   768  	default:
   769  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fpv.selector))
   770  	}
   771  }
   772  
   773  func (fpv *MemberAssignment_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   774  	typedObject := target.(*MemberAssignment)
   775  	fpv.SetTo(&typedObject)
   776  }
   777  
   778  // CompareWith compares value in the 'MemberAssignment_FieldTerminalPathValue' with the value under path in 'MemberAssignment'.
   779  func (fpv *MemberAssignment_FieldTerminalPathValue) CompareWith(source *MemberAssignment) (int, bool) {
   780  	switch fpv.selector {
   781  	case MemberAssignment_FieldPathSelectorName:
   782  		leftValue := fpv.value.(*Name)
   783  		rightValue := source.GetName()
   784  		if leftValue == nil {
   785  			if rightValue != nil {
   786  				return -1, true
   787  			}
   788  			return 0, true
   789  		}
   790  		if rightValue == nil {
   791  			return 1, true
   792  		}
   793  		if leftValue.String() == rightValue.String() {
   794  			return 0, true
   795  		} else if leftValue.String() < rightValue.String() {
   796  			return -1, true
   797  		} else {
   798  			return 1, true
   799  		}
   800  	case MemberAssignment_FieldPathSelectorMetadata:
   801  		return 0, false
   802  	case MemberAssignment_FieldPathSelectorScope:
   803  		leftValue := fpv.value.(*role_binding.ParentName)
   804  		rightValue := source.GetScope()
   805  		if leftValue == nil {
   806  			if rightValue != nil {
   807  				return -1, true
   808  			}
   809  			return 0, true
   810  		}
   811  		if rightValue == nil {
   812  			return 1, true
   813  		}
   814  		if leftValue.String() == rightValue.String() {
   815  			return 0, true
   816  		} else if leftValue.String() < rightValue.String() {
   817  			return -1, true
   818  		} else {
   819  			return 1, true
   820  		}
   821  	case MemberAssignment_FieldPathSelectorScopeTitle:
   822  		leftValue := fpv.value.(string)
   823  		rightValue := source.GetScopeTitle()
   824  		if (leftValue) == (rightValue) {
   825  			return 0, true
   826  		} else if (leftValue) < (rightValue) {
   827  			return -1, true
   828  		} else {
   829  			return 1, true
   830  		}
   831  	case MemberAssignment_FieldPathSelectorParentOrganization:
   832  		leftValue := fpv.value.(*organization.Name)
   833  		rightValue := source.GetParentOrganization()
   834  		if leftValue == nil {
   835  			if rightValue != nil {
   836  				return -1, true
   837  			}
   838  			return 0, true
   839  		}
   840  		if rightValue == nil {
   841  			return 1, true
   842  		}
   843  		if leftValue.String() == rightValue.String() {
   844  			return 0, true
   845  		} else if leftValue.String() < rightValue.String() {
   846  			return -1, true
   847  		} else {
   848  			return 1, true
   849  		}
   850  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   851  		return 0, false
   852  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
   853  		leftValue := fpv.value.(string)
   854  		rightValue := source.GetMultiRegionControlRegion()
   855  		if (leftValue) == (rightValue) {
   856  			return 0, true
   857  		} else if (leftValue) < (rightValue) {
   858  			return -1, true
   859  		} else {
   860  			return 1, true
   861  		}
   862  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
   863  		return 0, false
   864  	case MemberAssignment_FieldPathSelectorScopeServices:
   865  		return 0, false
   866  	case MemberAssignment_FieldPathSelectorBusinessTier:
   867  		leftValue := fpv.value.(iam_common.BusinessTier)
   868  		rightValue := source.GetBusinessTier()
   869  		if (leftValue) == (rightValue) {
   870  			return 0, true
   871  		} else if (leftValue) < (rightValue) {
   872  			return -1, true
   873  		} else {
   874  			return 1, true
   875  		}
   876  	case MemberAssignment_FieldPathSelectorMember:
   877  		leftValue := fpv.value.(string)
   878  		rightValue := source.GetMember()
   879  		if (leftValue) == (rightValue) {
   880  			return 0, true
   881  		} else if (leftValue) < (rightValue) {
   882  			return -1, true
   883  		} else {
   884  			return 1, true
   885  		}
   886  	case MemberAssignment_FieldPathSelectorMemberRegion:
   887  		leftValue := fpv.value.(string)
   888  		rightValue := source.GetMemberRegion()
   889  		if (leftValue) == (rightValue) {
   890  			return 0, true
   891  		} else if (leftValue) < (rightValue) {
   892  			return -1, true
   893  		} else {
   894  			return 1, true
   895  		}
   896  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   897  		return 0, false
   898  	default:
   899  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fpv.selector))
   900  	}
   901  }
   902  
   903  func (fpv *MemberAssignment_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   904  	return fpv.CompareWith(source.(*MemberAssignment))
   905  }
   906  
   907  type MemberAssignment_FieldSubPathValue struct {
   908  	MemberAssignment_FieldPath
   909  	subPathValue gotenobject.FieldPathValue
   910  }
   911  
   912  var _ MemberAssignment_FieldPathValue = (*MemberAssignment_FieldSubPathValue)(nil)
   913  
   914  func (fpvs *MemberAssignment_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   915  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   916  	return res, ok
   917  }
   918  func (fpvs *MemberAssignment_FieldSubPathValue) AsScopeMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   919  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   920  	return res, ok
   921  }
   922  func (fpvs *MemberAssignment_FieldSubPathValue) AsCtrlStatusPathValue() (MemberAssignmentWorkStatus_FieldPathValue, bool) {
   923  	res, ok := fpvs.subPathValue.(MemberAssignmentWorkStatus_FieldPathValue)
   924  	return res, ok
   925  }
   926  
   927  func (fpvs *MemberAssignment_FieldSubPathValue) SetTo(target **MemberAssignment) {
   928  	if *target == nil {
   929  		*target = new(MemberAssignment)
   930  	}
   931  	switch fpvs.Selector() {
   932  	case MemberAssignment_FieldPathSelectorMetadata:
   933  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   934  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   935  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).ScopeMetadata)
   936  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   937  		fpvs.subPathValue.(MemberAssignmentWorkStatus_FieldPathValue).SetTo(&(*target).CtrlStatus)
   938  	default:
   939  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fpvs.Selector()))
   940  	}
   941  }
   942  
   943  func (fpvs *MemberAssignment_FieldSubPathValue) SetToRaw(target proto.Message) {
   944  	typedObject := target.(*MemberAssignment)
   945  	fpvs.SetTo(&typedObject)
   946  }
   947  
   948  func (fpvs *MemberAssignment_FieldSubPathValue) GetRawValue() interface{} {
   949  	return fpvs.subPathValue.GetRawValue()
   950  }
   951  
   952  func (fpvs *MemberAssignment_FieldSubPathValue) CompareWith(source *MemberAssignment) (int, bool) {
   953  	switch fpvs.Selector() {
   954  	case MemberAssignment_FieldPathSelectorMetadata:
   955  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   956  	case MemberAssignment_FieldPathSelectorScopeMetadata:
   957  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetScopeMetadata())
   958  	case MemberAssignment_FieldPathSelectorCtrlStatus:
   959  		return fpvs.subPathValue.(MemberAssignmentWorkStatus_FieldPathValue).CompareWith(source.GetCtrlStatus())
   960  	default:
   961  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fpvs.Selector()))
   962  	}
   963  }
   964  
   965  func (fpvs *MemberAssignment_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   966  	return fpvs.CompareWith(source.(*MemberAssignment))
   967  }
   968  
   969  // MemberAssignment_FieldPathArrayItemValue allows storing single item in Path-specific values for MemberAssignment according to their type
   970  // Present only for array (repeated) types.
   971  type MemberAssignment_FieldPathArrayItemValue interface {
   972  	gotenobject.FieldPathArrayItemValue
   973  	MemberAssignment_FieldPath
   974  	ContainsValue(*MemberAssignment) bool
   975  }
   976  
   977  // ParseMemberAssignment_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   978  func ParseMemberAssignment_FieldPathArrayItemValue(pathStr, valueStr string) (MemberAssignment_FieldPathArrayItemValue, error) {
   979  	fp, err := ParseMemberAssignment_FieldPath(pathStr)
   980  	if err != nil {
   981  		return nil, err
   982  	}
   983  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   984  	if err != nil {
   985  		return nil, status.Errorf(codes.InvalidArgument, "error parsing MemberAssignment field path array item value from %s: %v", valueStr, err)
   986  	}
   987  	return fpaiv.(MemberAssignment_FieldPathArrayItemValue), nil
   988  }
   989  
   990  func MustParseMemberAssignment_FieldPathArrayItemValue(pathStr, valueStr string) MemberAssignment_FieldPathArrayItemValue {
   991  	fpaiv, err := ParseMemberAssignment_FieldPathArrayItemValue(pathStr, valueStr)
   992  	if err != nil {
   993  		panic(err)
   994  	}
   995  	return fpaiv
   996  }
   997  
   998  type MemberAssignment_FieldTerminalPathArrayItemValue struct {
   999  	MemberAssignment_FieldTerminalPath
  1000  	value interface{}
  1001  }
  1002  
  1003  var _ MemberAssignment_FieldPathArrayItemValue = (*MemberAssignment_FieldTerminalPathArrayItemValue)(nil)
  1004  
  1005  // GetRawValue returns stored element value for array in object MemberAssignment as interface{}
  1006  func (fpaiv *MemberAssignment_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1007  	return fpaiv.value
  1008  }
  1009  func (fpaiv *MemberAssignment_FieldTerminalPathArrayItemValue) AsMultiRegionEnabledRegionsItemValue() (string, bool) {
  1010  	res, ok := fpaiv.value.(string)
  1011  	return res, ok
  1012  }
  1013  func (fpaiv *MemberAssignment_FieldTerminalPathArrayItemValue) AsScopeServicesItemValue() (*meta_service.Name, bool) {
  1014  	res, ok := fpaiv.value.(*meta_service.Name)
  1015  	return res, ok
  1016  }
  1017  
  1018  func (fpaiv *MemberAssignment_FieldTerminalPathArrayItemValue) GetSingle(source *MemberAssignment) (interface{}, bool) {
  1019  	return nil, false
  1020  }
  1021  
  1022  func (fpaiv *MemberAssignment_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1023  	return fpaiv.GetSingle(source.(*MemberAssignment))
  1024  }
  1025  
  1026  // Contains returns a boolean indicating if value that is being held is present in given 'MemberAssignment'
  1027  func (fpaiv *MemberAssignment_FieldTerminalPathArrayItemValue) ContainsValue(source *MemberAssignment) bool {
  1028  	slice := fpaiv.MemberAssignment_FieldTerminalPath.Get(source)
  1029  	for _, v := range slice {
  1030  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1031  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1032  				return true
  1033  			}
  1034  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1035  			return true
  1036  		}
  1037  	}
  1038  	return false
  1039  }
  1040  
  1041  type MemberAssignment_FieldSubPathArrayItemValue struct {
  1042  	MemberAssignment_FieldPath
  1043  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1044  }
  1045  
  1046  // GetRawValue returns stored array item value
  1047  func (fpaivs *MemberAssignment_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1048  	return fpaivs.subPathItemValue.GetRawItemValue()
  1049  }
  1050  func (fpaivs *MemberAssignment_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
  1051  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
  1052  	return res, ok
  1053  }
  1054  func (fpaivs *MemberAssignment_FieldSubPathArrayItemValue) AsScopeMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
  1055  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
  1056  	return res, ok
  1057  }
  1058  func (fpaivs *MemberAssignment_FieldSubPathArrayItemValue) AsCtrlStatusPathItemValue() (MemberAssignmentWorkStatus_FieldPathArrayItemValue, bool) {
  1059  	res, ok := fpaivs.subPathItemValue.(MemberAssignmentWorkStatus_FieldPathArrayItemValue)
  1060  	return res, ok
  1061  }
  1062  
  1063  // Contains returns a boolean indicating if value that is being held is present in given 'MemberAssignment'
  1064  func (fpaivs *MemberAssignment_FieldSubPathArrayItemValue) ContainsValue(source *MemberAssignment) bool {
  1065  	switch fpaivs.Selector() {
  1066  	case MemberAssignment_FieldPathSelectorMetadata:
  1067  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
  1068  	case MemberAssignment_FieldPathSelectorScopeMetadata:
  1069  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetScopeMetadata())
  1070  	case MemberAssignment_FieldPathSelectorCtrlStatus:
  1071  		return fpaivs.subPathItemValue.(MemberAssignmentWorkStatus_FieldPathArrayItemValue).ContainsValue(source.GetCtrlStatus())
  1072  	default:
  1073  		panic(fmt.Sprintf("Invalid selector for MemberAssignment: %d", fpaivs.Selector()))
  1074  	}
  1075  }
  1076  
  1077  // MemberAssignment_FieldPathArrayOfValues allows storing slice of values for MemberAssignment fields according to their type
  1078  type MemberAssignment_FieldPathArrayOfValues interface {
  1079  	gotenobject.FieldPathArrayOfValues
  1080  	MemberAssignment_FieldPath
  1081  }
  1082  
  1083  func ParseMemberAssignment_FieldPathArrayOfValues(pathStr, valuesStr string) (MemberAssignment_FieldPathArrayOfValues, error) {
  1084  	fp, err := ParseMemberAssignment_FieldPath(pathStr)
  1085  	if err != nil {
  1086  		return nil, err
  1087  	}
  1088  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1089  	if err != nil {
  1090  		return nil, status.Errorf(codes.InvalidArgument, "error parsing MemberAssignment field path array of values from %s: %v", valuesStr, err)
  1091  	}
  1092  	return fpaov.(MemberAssignment_FieldPathArrayOfValues), nil
  1093  }
  1094  
  1095  func MustParseMemberAssignment_FieldPathArrayOfValues(pathStr, valuesStr string) MemberAssignment_FieldPathArrayOfValues {
  1096  	fpaov, err := ParseMemberAssignment_FieldPathArrayOfValues(pathStr, valuesStr)
  1097  	if err != nil {
  1098  		panic(err)
  1099  	}
  1100  	return fpaov
  1101  }
  1102  
  1103  type MemberAssignment_FieldTerminalPathArrayOfValues struct {
  1104  	MemberAssignment_FieldTerminalPath
  1105  	values interface{}
  1106  }
  1107  
  1108  var _ MemberAssignment_FieldPathArrayOfValues = (*MemberAssignment_FieldTerminalPathArrayOfValues)(nil)
  1109  
  1110  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1111  	switch fpaov.selector {
  1112  	case MemberAssignment_FieldPathSelectorName:
  1113  		for _, v := range fpaov.values.([]*Name) {
  1114  			values = append(values, v)
  1115  		}
  1116  	case MemberAssignment_FieldPathSelectorMetadata:
  1117  		for _, v := range fpaov.values.([]*meta.Meta) {
  1118  			values = append(values, v)
  1119  		}
  1120  	case MemberAssignment_FieldPathSelectorScope:
  1121  		for _, v := range fpaov.values.([]*role_binding.ParentName) {
  1122  			values = append(values, v)
  1123  		}
  1124  	case MemberAssignment_FieldPathSelectorScopeTitle:
  1125  		for _, v := range fpaov.values.([]string) {
  1126  			values = append(values, v)
  1127  		}
  1128  	case MemberAssignment_FieldPathSelectorParentOrganization:
  1129  		for _, v := range fpaov.values.([]*organization.Name) {
  1130  			values = append(values, v)
  1131  		}
  1132  	case MemberAssignment_FieldPathSelectorScopeMetadata:
  1133  		for _, v := range fpaov.values.([]*meta.Meta) {
  1134  			values = append(values, v)
  1135  		}
  1136  	case MemberAssignment_FieldPathSelectorMultiRegionControlRegion:
  1137  		for _, v := range fpaov.values.([]string) {
  1138  			values = append(values, v)
  1139  		}
  1140  	case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions:
  1141  		for _, v := range fpaov.values.([][]string) {
  1142  			values = append(values, v)
  1143  		}
  1144  	case MemberAssignment_FieldPathSelectorScopeServices:
  1145  		for _, v := range fpaov.values.([][]*meta_service.Name) {
  1146  			values = append(values, v)
  1147  		}
  1148  	case MemberAssignment_FieldPathSelectorBusinessTier:
  1149  		for _, v := range fpaov.values.([]iam_common.BusinessTier) {
  1150  			values = append(values, v)
  1151  		}
  1152  	case MemberAssignment_FieldPathSelectorMember:
  1153  		for _, v := range fpaov.values.([]string) {
  1154  			values = append(values, v)
  1155  		}
  1156  	case MemberAssignment_FieldPathSelectorMemberRegion:
  1157  		for _, v := range fpaov.values.([]string) {
  1158  			values = append(values, v)
  1159  		}
  1160  	case MemberAssignment_FieldPathSelectorCtrlStatus:
  1161  		for _, v := range fpaov.values.([]*MemberAssignment_WorkStatus) {
  1162  			values = append(values, v)
  1163  		}
  1164  	}
  1165  	return
  1166  }
  1167  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
  1168  	res, ok := fpaov.values.([]*Name)
  1169  	return res, ok
  1170  }
  1171  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1172  	res, ok := fpaov.values.([]*meta.Meta)
  1173  	return res, ok
  1174  }
  1175  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsScopeArrayOfValues() ([]*role_binding.ParentName, bool) {
  1176  	res, ok := fpaov.values.([]*role_binding.ParentName)
  1177  	return res, ok
  1178  }
  1179  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsScopeTitleArrayOfValues() ([]string, bool) {
  1180  	res, ok := fpaov.values.([]string)
  1181  	return res, ok
  1182  }
  1183  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsParentOrganizationArrayOfValues() ([]*organization.Name, bool) {
  1184  	res, ok := fpaov.values.([]*organization.Name)
  1185  	return res, ok
  1186  }
  1187  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsScopeMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1188  	res, ok := fpaov.values.([]*meta.Meta)
  1189  	return res, ok
  1190  }
  1191  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsMultiRegionControlRegionArrayOfValues() ([]string, bool) {
  1192  	res, ok := fpaov.values.([]string)
  1193  	return res, ok
  1194  }
  1195  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsMultiRegionEnabledRegionsArrayOfValues() ([][]string, bool) {
  1196  	res, ok := fpaov.values.([][]string)
  1197  	return res, ok
  1198  }
  1199  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsScopeServicesArrayOfValues() ([][]*meta_service.Name, bool) {
  1200  	res, ok := fpaov.values.([][]*meta_service.Name)
  1201  	return res, ok
  1202  }
  1203  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsBusinessTierArrayOfValues() ([]iam_common.BusinessTier, bool) {
  1204  	res, ok := fpaov.values.([]iam_common.BusinessTier)
  1205  	return res, ok
  1206  }
  1207  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsMemberArrayOfValues() ([]string, bool) {
  1208  	res, ok := fpaov.values.([]string)
  1209  	return res, ok
  1210  }
  1211  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsMemberRegionArrayOfValues() ([]string, bool) {
  1212  	res, ok := fpaov.values.([]string)
  1213  	return res, ok
  1214  }
  1215  func (fpaov *MemberAssignment_FieldTerminalPathArrayOfValues) AsCtrlStatusArrayOfValues() ([]*MemberAssignment_WorkStatus, bool) {
  1216  	res, ok := fpaov.values.([]*MemberAssignment_WorkStatus)
  1217  	return res, ok
  1218  }
  1219  
  1220  type MemberAssignment_FieldSubPathArrayOfValues struct {
  1221  	MemberAssignment_FieldPath
  1222  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1223  }
  1224  
  1225  var _ MemberAssignment_FieldPathArrayOfValues = (*MemberAssignment_FieldSubPathArrayOfValues)(nil)
  1226  
  1227  func (fpsaov *MemberAssignment_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1228  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1229  }
  1230  func (fpsaov *MemberAssignment_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1231  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1232  	return res, ok
  1233  }
  1234  func (fpsaov *MemberAssignment_FieldSubPathArrayOfValues) AsScopeMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1235  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1236  	return res, ok
  1237  }
  1238  func (fpsaov *MemberAssignment_FieldSubPathArrayOfValues) AsCtrlStatusPathArrayOfValues() (MemberAssignmentWorkStatus_FieldPathArrayOfValues, bool) {
  1239  	res, ok := fpsaov.subPathArrayOfValues.(MemberAssignmentWorkStatus_FieldPathArrayOfValues)
  1240  	return res, ok
  1241  }
  1242  
  1243  // FieldPath provides implementation to handle
  1244  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1245  type MemberAssignmentWorkStatus_FieldPath interface {
  1246  	gotenobject.FieldPath
  1247  	Selector() MemberAssignmentWorkStatus_FieldPathSelector
  1248  	Get(source *MemberAssignment_WorkStatus) []interface{}
  1249  	GetSingle(source *MemberAssignment_WorkStatus) (interface{}, bool)
  1250  	ClearValue(item *MemberAssignment_WorkStatus)
  1251  
  1252  	// Those methods build corresponding MemberAssignmentWorkStatus_FieldPathValue
  1253  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1254  	WithIValue(value interface{}) MemberAssignmentWorkStatus_FieldPathValue
  1255  	WithIArrayOfValues(values interface{}) MemberAssignmentWorkStatus_FieldPathArrayOfValues
  1256  	WithIArrayItemValue(value interface{}) MemberAssignmentWorkStatus_FieldPathArrayItemValue
  1257  }
  1258  
  1259  type MemberAssignmentWorkStatus_FieldPathSelector int32
  1260  
  1261  const (
  1262  	MemberAssignmentWorkStatus_FieldPathSelectorPending         MemberAssignmentWorkStatus_FieldPathSelector = 0
  1263  	MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion MemberAssignmentWorkStatus_FieldPathSelector = 1
  1264  )
  1265  
  1266  func (s MemberAssignmentWorkStatus_FieldPathSelector) String() string {
  1267  	switch s {
  1268  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1269  		return "pending"
  1270  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1271  		return "pending_deletion"
  1272  	default:
  1273  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", s))
  1274  	}
  1275  }
  1276  
  1277  func BuildMemberAssignmentWorkStatus_FieldPath(fp gotenobject.RawFieldPath) (MemberAssignmentWorkStatus_FieldPath, error) {
  1278  	if len(fp) == 0 {
  1279  		return nil, status.Error(codes.InvalidArgument, "empty field path for object MemberAssignment_WorkStatus")
  1280  	}
  1281  	if len(fp) == 1 {
  1282  		switch fp[0] {
  1283  		case "pending":
  1284  			return &MemberAssignmentWorkStatus_FieldTerminalPath{selector: MemberAssignmentWorkStatus_FieldPathSelectorPending}, nil
  1285  		case "pending_deletion", "pendingDeletion", "pending-deletion":
  1286  			return &MemberAssignmentWorkStatus_FieldTerminalPath{selector: MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion}, nil
  1287  		}
  1288  	}
  1289  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object MemberAssignment_WorkStatus", fp)
  1290  }
  1291  
  1292  func ParseMemberAssignmentWorkStatus_FieldPath(rawField string) (MemberAssignmentWorkStatus_FieldPath, error) {
  1293  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1294  	if err != nil {
  1295  		return nil, err
  1296  	}
  1297  	return BuildMemberAssignmentWorkStatus_FieldPath(fp)
  1298  }
  1299  
  1300  func MustParseMemberAssignmentWorkStatus_FieldPath(rawField string) MemberAssignmentWorkStatus_FieldPath {
  1301  	fp, err := ParseMemberAssignmentWorkStatus_FieldPath(rawField)
  1302  	if err != nil {
  1303  		panic(err)
  1304  	}
  1305  	return fp
  1306  }
  1307  
  1308  type MemberAssignmentWorkStatus_FieldTerminalPath struct {
  1309  	selector MemberAssignmentWorkStatus_FieldPathSelector
  1310  }
  1311  
  1312  var _ MemberAssignmentWorkStatus_FieldPath = (*MemberAssignmentWorkStatus_FieldTerminalPath)(nil)
  1313  
  1314  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) Selector() MemberAssignmentWorkStatus_FieldPathSelector {
  1315  	return fp.selector
  1316  }
  1317  
  1318  // String returns path representation in proto convention
  1319  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) String() string {
  1320  	return fp.selector.String()
  1321  }
  1322  
  1323  // JSONString returns path representation is JSON convention
  1324  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) JSONString() string {
  1325  	return strcase.ToLowerCamel(fp.String())
  1326  }
  1327  
  1328  // Get returns all values pointed by specific field from source MemberAssignment_WorkStatus
  1329  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) Get(source *MemberAssignment_WorkStatus) (values []interface{}) {
  1330  	if source != nil {
  1331  		switch fp.selector {
  1332  		case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1333  			values = append(values, source.Pending)
  1334  		case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1335  			values = append(values, source.PendingDeletion)
  1336  		default:
  1337  			panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1338  		}
  1339  	}
  1340  	return
  1341  }
  1342  
  1343  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1344  	return fp.Get(source.(*MemberAssignment_WorkStatus))
  1345  }
  1346  
  1347  // GetSingle returns value pointed by specific field of from source MemberAssignment_WorkStatus
  1348  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) GetSingle(source *MemberAssignment_WorkStatus) (interface{}, bool) {
  1349  	switch fp.selector {
  1350  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1351  		return source.GetPending(), source != nil
  1352  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1353  		return source.GetPendingDeletion(), source != nil
  1354  	default:
  1355  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1356  	}
  1357  }
  1358  
  1359  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1360  	return fp.GetSingle(source.(*MemberAssignment_WorkStatus))
  1361  }
  1362  
  1363  // GetDefault returns a default value of the field type
  1364  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) GetDefault() interface{} {
  1365  	switch fp.selector {
  1366  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1367  		return false
  1368  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1369  		return false
  1370  	default:
  1371  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1372  	}
  1373  }
  1374  
  1375  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) ClearValue(item *MemberAssignment_WorkStatus) {
  1376  	if item != nil {
  1377  		switch fp.selector {
  1378  		case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1379  			item.Pending = false
  1380  		case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1381  			item.PendingDeletion = false
  1382  		default:
  1383  			panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1384  		}
  1385  	}
  1386  }
  1387  
  1388  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1389  	fp.ClearValue(item.(*MemberAssignment_WorkStatus))
  1390  }
  1391  
  1392  // IsLeaf - whether field path is holds simple value
  1393  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) IsLeaf() bool {
  1394  	return fp.selector == MemberAssignmentWorkStatus_FieldPathSelectorPending ||
  1395  		fp.selector == MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion
  1396  }
  1397  
  1398  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1399  	return []gotenobject.FieldPath{fp}
  1400  }
  1401  
  1402  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) WithIValue(value interface{}) MemberAssignmentWorkStatus_FieldPathValue {
  1403  	switch fp.selector {
  1404  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1405  		return &MemberAssignmentWorkStatus_FieldTerminalPathValue{MemberAssignmentWorkStatus_FieldTerminalPath: *fp, value: value.(bool)}
  1406  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1407  		return &MemberAssignmentWorkStatus_FieldTerminalPathValue{MemberAssignmentWorkStatus_FieldTerminalPath: *fp, value: value.(bool)}
  1408  	default:
  1409  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1410  	}
  1411  }
  1412  
  1413  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1414  	return fp.WithIValue(value)
  1415  }
  1416  
  1417  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) WithIArrayOfValues(values interface{}) MemberAssignmentWorkStatus_FieldPathArrayOfValues {
  1418  	fpaov := &MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues{MemberAssignmentWorkStatus_FieldTerminalPath: *fp}
  1419  	switch fp.selector {
  1420  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1421  		return &MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues{MemberAssignmentWorkStatus_FieldTerminalPath: *fp, values: values.([]bool)}
  1422  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1423  		return &MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues{MemberAssignmentWorkStatus_FieldTerminalPath: *fp, values: values.([]bool)}
  1424  	default:
  1425  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1426  	}
  1427  	return fpaov
  1428  }
  1429  
  1430  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1431  	return fp.WithIArrayOfValues(values)
  1432  }
  1433  
  1434  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) WithIArrayItemValue(value interface{}) MemberAssignmentWorkStatus_FieldPathArrayItemValue {
  1435  	switch fp.selector {
  1436  	default:
  1437  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fp.selector))
  1438  	}
  1439  }
  1440  
  1441  func (fp *MemberAssignmentWorkStatus_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1442  	return fp.WithIArrayItemValue(value)
  1443  }
  1444  
  1445  // MemberAssignmentWorkStatus_FieldPathValue allows storing values for WorkStatus fields according to their type
  1446  type MemberAssignmentWorkStatus_FieldPathValue interface {
  1447  	MemberAssignmentWorkStatus_FieldPath
  1448  	gotenobject.FieldPathValue
  1449  	SetTo(target **MemberAssignment_WorkStatus)
  1450  	CompareWith(*MemberAssignment_WorkStatus) (cmp int, comparable bool)
  1451  }
  1452  
  1453  func ParseMemberAssignmentWorkStatus_FieldPathValue(pathStr, valueStr string) (MemberAssignmentWorkStatus_FieldPathValue, error) {
  1454  	fp, err := ParseMemberAssignmentWorkStatus_FieldPath(pathStr)
  1455  	if err != nil {
  1456  		return nil, err
  1457  	}
  1458  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1459  	if err != nil {
  1460  		return nil, status.Errorf(codes.InvalidArgument, "error parsing WorkStatus field path value from %s: %v", valueStr, err)
  1461  	}
  1462  	return fpv.(MemberAssignmentWorkStatus_FieldPathValue), nil
  1463  }
  1464  
  1465  func MustParseMemberAssignmentWorkStatus_FieldPathValue(pathStr, valueStr string) MemberAssignmentWorkStatus_FieldPathValue {
  1466  	fpv, err := ParseMemberAssignmentWorkStatus_FieldPathValue(pathStr, valueStr)
  1467  	if err != nil {
  1468  		panic(err)
  1469  	}
  1470  	return fpv
  1471  }
  1472  
  1473  type MemberAssignmentWorkStatus_FieldTerminalPathValue struct {
  1474  	MemberAssignmentWorkStatus_FieldTerminalPath
  1475  	value interface{}
  1476  }
  1477  
  1478  var _ MemberAssignmentWorkStatus_FieldPathValue = (*MemberAssignmentWorkStatus_FieldTerminalPathValue)(nil)
  1479  
  1480  // GetRawValue returns raw value stored under selected path for 'WorkStatus' as interface{}
  1481  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) GetRawValue() interface{} {
  1482  	return fpv.value
  1483  }
  1484  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) AsPendingValue() (bool, bool) {
  1485  	res, ok := fpv.value.(bool)
  1486  	return res, ok
  1487  }
  1488  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) AsPendingDeletionValue() (bool, bool) {
  1489  	res, ok := fpv.value.(bool)
  1490  	return res, ok
  1491  }
  1492  
  1493  // SetTo stores value for selected field for object WorkStatus
  1494  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) SetTo(target **MemberAssignment_WorkStatus) {
  1495  	if *target == nil {
  1496  		*target = new(MemberAssignment_WorkStatus)
  1497  	}
  1498  	switch fpv.selector {
  1499  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1500  		(*target).Pending = fpv.value.(bool)
  1501  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1502  		(*target).PendingDeletion = fpv.value.(bool)
  1503  	default:
  1504  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fpv.selector))
  1505  	}
  1506  }
  1507  
  1508  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1509  	typedObject := target.(*MemberAssignment_WorkStatus)
  1510  	fpv.SetTo(&typedObject)
  1511  }
  1512  
  1513  // CompareWith compares value in the 'MemberAssignmentWorkStatus_FieldTerminalPathValue' with the value under path in 'MemberAssignment_WorkStatus'.
  1514  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) CompareWith(source *MemberAssignment_WorkStatus) (int, bool) {
  1515  	switch fpv.selector {
  1516  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1517  		leftValue := fpv.value.(bool)
  1518  		rightValue := source.GetPending()
  1519  		if (leftValue) == (rightValue) {
  1520  			return 0, true
  1521  		} else if !(leftValue) && (rightValue) {
  1522  			return -1, true
  1523  		} else {
  1524  			return 1, true
  1525  		}
  1526  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1527  		leftValue := fpv.value.(bool)
  1528  		rightValue := source.GetPendingDeletion()
  1529  		if (leftValue) == (rightValue) {
  1530  			return 0, true
  1531  		} else if !(leftValue) && (rightValue) {
  1532  			return -1, true
  1533  		} else {
  1534  			return 1, true
  1535  		}
  1536  	default:
  1537  		panic(fmt.Sprintf("Invalid selector for MemberAssignment_WorkStatus: %d", fpv.selector))
  1538  	}
  1539  }
  1540  
  1541  func (fpv *MemberAssignmentWorkStatus_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1542  	return fpv.CompareWith(source.(*MemberAssignment_WorkStatus))
  1543  }
  1544  
  1545  // MemberAssignmentWorkStatus_FieldPathArrayItemValue allows storing single item in Path-specific values for WorkStatus according to their type
  1546  // Present only for array (repeated) types.
  1547  type MemberAssignmentWorkStatus_FieldPathArrayItemValue interface {
  1548  	gotenobject.FieldPathArrayItemValue
  1549  	MemberAssignmentWorkStatus_FieldPath
  1550  	ContainsValue(*MemberAssignment_WorkStatus) bool
  1551  }
  1552  
  1553  // ParseMemberAssignmentWorkStatus_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1554  func ParseMemberAssignmentWorkStatus_FieldPathArrayItemValue(pathStr, valueStr string) (MemberAssignmentWorkStatus_FieldPathArrayItemValue, error) {
  1555  	fp, err := ParseMemberAssignmentWorkStatus_FieldPath(pathStr)
  1556  	if err != nil {
  1557  		return nil, err
  1558  	}
  1559  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1560  	if err != nil {
  1561  		return nil, status.Errorf(codes.InvalidArgument, "error parsing WorkStatus field path array item value from %s: %v", valueStr, err)
  1562  	}
  1563  	return fpaiv.(MemberAssignmentWorkStatus_FieldPathArrayItemValue), nil
  1564  }
  1565  
  1566  func MustParseMemberAssignmentWorkStatus_FieldPathArrayItemValue(pathStr, valueStr string) MemberAssignmentWorkStatus_FieldPathArrayItemValue {
  1567  	fpaiv, err := ParseMemberAssignmentWorkStatus_FieldPathArrayItemValue(pathStr, valueStr)
  1568  	if err != nil {
  1569  		panic(err)
  1570  	}
  1571  	return fpaiv
  1572  }
  1573  
  1574  type MemberAssignmentWorkStatus_FieldTerminalPathArrayItemValue struct {
  1575  	MemberAssignmentWorkStatus_FieldTerminalPath
  1576  	value interface{}
  1577  }
  1578  
  1579  var _ MemberAssignmentWorkStatus_FieldPathArrayItemValue = (*MemberAssignmentWorkStatus_FieldTerminalPathArrayItemValue)(nil)
  1580  
  1581  // GetRawValue returns stored element value for array in object MemberAssignment_WorkStatus as interface{}
  1582  func (fpaiv *MemberAssignmentWorkStatus_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1583  	return fpaiv.value
  1584  }
  1585  
  1586  func (fpaiv *MemberAssignmentWorkStatus_FieldTerminalPathArrayItemValue) GetSingle(source *MemberAssignment_WorkStatus) (interface{}, bool) {
  1587  	return nil, false
  1588  }
  1589  
  1590  func (fpaiv *MemberAssignmentWorkStatus_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1591  	return fpaiv.GetSingle(source.(*MemberAssignment_WorkStatus))
  1592  }
  1593  
  1594  // Contains returns a boolean indicating if value that is being held is present in given 'WorkStatus'
  1595  func (fpaiv *MemberAssignmentWorkStatus_FieldTerminalPathArrayItemValue) ContainsValue(source *MemberAssignment_WorkStatus) bool {
  1596  	slice := fpaiv.MemberAssignmentWorkStatus_FieldTerminalPath.Get(source)
  1597  	for _, v := range slice {
  1598  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1599  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1600  				return true
  1601  			}
  1602  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1603  			return true
  1604  		}
  1605  	}
  1606  	return false
  1607  }
  1608  
  1609  // MemberAssignmentWorkStatus_FieldPathArrayOfValues allows storing slice of values for WorkStatus fields according to their type
  1610  type MemberAssignmentWorkStatus_FieldPathArrayOfValues interface {
  1611  	gotenobject.FieldPathArrayOfValues
  1612  	MemberAssignmentWorkStatus_FieldPath
  1613  }
  1614  
  1615  func ParseMemberAssignmentWorkStatus_FieldPathArrayOfValues(pathStr, valuesStr string) (MemberAssignmentWorkStatus_FieldPathArrayOfValues, error) {
  1616  	fp, err := ParseMemberAssignmentWorkStatus_FieldPath(pathStr)
  1617  	if err != nil {
  1618  		return nil, err
  1619  	}
  1620  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1621  	if err != nil {
  1622  		return nil, status.Errorf(codes.InvalidArgument, "error parsing WorkStatus field path array of values from %s: %v", valuesStr, err)
  1623  	}
  1624  	return fpaov.(MemberAssignmentWorkStatus_FieldPathArrayOfValues), nil
  1625  }
  1626  
  1627  func MustParseMemberAssignmentWorkStatus_FieldPathArrayOfValues(pathStr, valuesStr string) MemberAssignmentWorkStatus_FieldPathArrayOfValues {
  1628  	fpaov, err := ParseMemberAssignmentWorkStatus_FieldPathArrayOfValues(pathStr, valuesStr)
  1629  	if err != nil {
  1630  		panic(err)
  1631  	}
  1632  	return fpaov
  1633  }
  1634  
  1635  type MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues struct {
  1636  	MemberAssignmentWorkStatus_FieldTerminalPath
  1637  	values interface{}
  1638  }
  1639  
  1640  var _ MemberAssignmentWorkStatus_FieldPathArrayOfValues = (*MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues)(nil)
  1641  
  1642  func (fpaov *MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1643  	switch fpaov.selector {
  1644  	case MemberAssignmentWorkStatus_FieldPathSelectorPending:
  1645  		for _, v := range fpaov.values.([]bool) {
  1646  			values = append(values, v)
  1647  		}
  1648  	case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion:
  1649  		for _, v := range fpaov.values.([]bool) {
  1650  			values = append(values, v)
  1651  		}
  1652  	}
  1653  	return
  1654  }
  1655  func (fpaov *MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues) AsPendingArrayOfValues() ([]bool, bool) {
  1656  	res, ok := fpaov.values.([]bool)
  1657  	return res, ok
  1658  }
  1659  func (fpaov *MemberAssignmentWorkStatus_FieldTerminalPathArrayOfValues) AsPendingDeletionArrayOfValues() ([]bool, bool) {
  1660  	res, ok := fpaov.values.([]bool)
  1661  	return res, ok
  1662  }