github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1/customized_image/customized_image.pb.fieldmask.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/devices/proto/v1/customized_image.proto
     3  // DO NOT EDIT!!!
     4  
     5  package customized_image
     6  
     7  import (
     8  	"encoding/json"
     9  	"strings"
    10  
    11  	"google.golang.org/grpc/codes"
    12  	"google.golang.org/grpc/status"
    13  	"google.golang.org/protobuf/proto"
    14  	preflect "google.golang.org/protobuf/reflect/protoreflect"
    15  	googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    16  
    17  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    18  )
    19  
    20  // proto imports
    21  import (
    22  	os_version "github.com/cloudwan/edgelq-sdk/devices/resources/v1/os_version"
    23  	project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project"
    24  	iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account"
    25  	iam_service_account_key "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account_key"
    26  	meta "github.com/cloudwan/goten-sdk/types/meta"
    27  )
    28  
    29  // ensure the imports are used
    30  var (
    31  	_ = new(json.Marshaler)
    32  	_ = strings.Builder{}
    33  
    34  	_ = codes.NotFound
    35  	_ = status.Status{}
    36  	_ = new(proto.Message)
    37  	_ = new(preflect.Message)
    38  	_ = googlefieldmaskpb.FieldMask{}
    39  
    40  	_ = new(gotenobject.FieldMask)
    41  )
    42  
    43  // make sure we're using proto imports
    44  var (
    45  	_ = &os_version.OsVersion{}
    46  	_ = &project.Project{}
    47  	_ = &iam_service_account.ServiceAccount{}
    48  	_ = &iam_service_account_key.ServiceAccountKey{}
    49  	_ = &meta.Meta{}
    50  )
    51  
    52  type CustomizedImage_FieldMask struct {
    53  	Paths []CustomizedImage_FieldPath
    54  }
    55  
    56  func FullCustomizedImage_FieldMask() *CustomizedImage_FieldMask {
    57  	res := &CustomizedImage_FieldMask{}
    58  	res.Paths = append(res.Paths, &CustomizedImage_FieldTerminalPath{selector: CustomizedImage_FieldPathSelectorName})
    59  	res.Paths = append(res.Paths, &CustomizedImage_FieldTerminalPath{selector: CustomizedImage_FieldPathSelectorMetadata})
    60  	res.Paths = append(res.Paths, &CustomizedImage_FieldTerminalPath{selector: CustomizedImage_FieldPathSelectorSpec})
    61  	res.Paths = append(res.Paths, &CustomizedImage_FieldTerminalPath{selector: CustomizedImage_FieldPathSelectorStatus})
    62  	return res
    63  }
    64  
    65  func (fieldMask *CustomizedImage_FieldMask) String() string {
    66  	if fieldMask == nil {
    67  		return "<nil>"
    68  	}
    69  	pathsStr := make([]string, 0, len(fieldMask.Paths))
    70  	for _, path := range fieldMask.Paths {
    71  		pathsStr = append(pathsStr, path.String())
    72  	}
    73  	return strings.Join(pathsStr, ", ")
    74  }
    75  
    76  func (fieldMask *CustomizedImage_FieldMask) IsFull() bool {
    77  	if fieldMask == nil {
    78  		return false
    79  	}
    80  	presentSelectors := make([]bool, 4)
    81  	for _, path := range fieldMask.Paths {
    82  		if asFinal, ok := path.(*CustomizedImage_FieldTerminalPath); ok {
    83  			presentSelectors[int(asFinal.selector)] = true
    84  		}
    85  	}
    86  	for _, flag := range presentSelectors {
    87  		if !flag {
    88  			return false
    89  		}
    90  	}
    91  	return true
    92  }
    93  
    94  func (fieldMask *CustomizedImage_FieldMask) ProtoReflect() preflect.Message {
    95  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
    96  		return ParseCustomizedImage_FieldPath(raw)
    97  	})
    98  }
    99  
   100  func (fieldMask *CustomizedImage_FieldMask) ProtoMessage() {}
   101  
   102  func (fieldMask *CustomizedImage_FieldMask) Reset() {
   103  	if fieldMask != nil {
   104  		fieldMask.Paths = nil
   105  	}
   106  }
   107  
   108  func (fieldMask *CustomizedImage_FieldMask) Subtract(other *CustomizedImage_FieldMask) *CustomizedImage_FieldMask {
   109  	result := &CustomizedImage_FieldMask{}
   110  	removedSelectors := make([]bool, 4)
   111  	otherSubMasks := map[CustomizedImage_FieldPathSelector]gotenobject.FieldMask{
   112  		CustomizedImage_FieldPathSelectorMetadata: &meta.Meta_FieldMask{},
   113  		CustomizedImage_FieldPathSelectorSpec:     &CustomizedImage_Spec_FieldMask{},
   114  		CustomizedImage_FieldPathSelectorStatus:   &CustomizedImage_Status_FieldMask{},
   115  	}
   116  	mySubMasks := map[CustomizedImage_FieldPathSelector]gotenobject.FieldMask{
   117  		CustomizedImage_FieldPathSelectorMetadata: &meta.Meta_FieldMask{},
   118  		CustomizedImage_FieldPathSelectorSpec:     &CustomizedImage_Spec_FieldMask{},
   119  		CustomizedImage_FieldPathSelectorStatus:   &CustomizedImage_Status_FieldMask{},
   120  	}
   121  
   122  	for _, path := range other.GetPaths() {
   123  		switch tp := path.(type) {
   124  		case *CustomizedImage_FieldTerminalPath:
   125  			removedSelectors[int(tp.selector)] = true
   126  		case *CustomizedImage_FieldSubPath:
   127  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
   128  		}
   129  	}
   130  	for _, path := range fieldMask.GetPaths() {
   131  		if !removedSelectors[int(path.Selector())] {
   132  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
   133  				if tp, ok := path.(*CustomizedImage_FieldTerminalPath); ok {
   134  					switch tp.selector {
   135  					case CustomizedImage_FieldPathSelectorMetadata:
   136  						mySubMasks[CustomizedImage_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask()
   137  					case CustomizedImage_FieldPathSelectorSpec:
   138  						mySubMasks[CustomizedImage_FieldPathSelectorSpec] = FullCustomizedImage_Spec_FieldMask()
   139  					case CustomizedImage_FieldPathSelectorStatus:
   140  						mySubMasks[CustomizedImage_FieldPathSelectorStatus] = FullCustomizedImage_Status_FieldMask()
   141  					}
   142  				} else if tp, ok := path.(*CustomizedImage_FieldSubPath); ok {
   143  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
   144  				}
   145  			} else {
   146  				result.Paths = append(result.Paths, path)
   147  			}
   148  		}
   149  	}
   150  	for selector, mySubMask := range mySubMasks {
   151  		if mySubMask.PathsCount() > 0 {
   152  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
   153  				result.Paths = append(result.Paths, &CustomizedImage_FieldSubPath{selector: selector, subPath: allowedPath})
   154  			}
   155  		}
   156  	}
   157  
   158  	if len(result.Paths) == 0 {
   159  		return nil
   160  	}
   161  	return result
   162  }
   163  
   164  func (fieldMask *CustomizedImage_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   165  	return fieldMask.Subtract(other.(*CustomizedImage_FieldMask))
   166  }
   167  
   168  // FilterInputFields generates copy of field paths with output_only field paths removed
   169  func (fieldMask *CustomizedImage_FieldMask) FilterInputFields() *CustomizedImage_FieldMask {
   170  	result := &CustomizedImage_FieldMask{}
   171  	for _, path := range fieldMask.Paths {
   172  		switch path.Selector() {
   173  		case CustomizedImage_FieldPathSelectorMetadata:
   174  			if _, ok := path.(*CustomizedImage_FieldTerminalPath); ok {
   175  				for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths {
   176  					result.Paths = append(result.Paths, &CustomizedImage_FieldSubPath{selector: path.Selector(), subPath: subpath})
   177  				}
   178  			} else if sub, ok := path.(*CustomizedImage_FieldSubPath); ok {
   179  				selectedMask := &meta.Meta_FieldMask{
   180  					Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)},
   181  				}
   182  				for _, allowedPath := range selectedMask.FilterInputFields().Paths {
   183  					result.Paths = append(result.Paths, &CustomizedImage_FieldSubPath{selector: CustomizedImage_FieldPathSelectorMetadata, subPath: allowedPath})
   184  				}
   185  			}
   186  		default:
   187  			result.Paths = append(result.Paths, path)
   188  		}
   189  	}
   190  	return result
   191  }
   192  
   193  // ToFieldMask is used for proto conversions
   194  func (fieldMask *CustomizedImage_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   195  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   196  	for _, path := range fieldMask.Paths {
   197  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   198  	}
   199  	return protoFieldMask
   200  }
   201  
   202  func (fieldMask *CustomizedImage_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   203  	if fieldMask == nil {
   204  		return status.Error(codes.Internal, "target field mask is nil")
   205  	}
   206  	fieldMask.Paths = make([]CustomizedImage_FieldPath, 0, len(protoFieldMask.Paths))
   207  	for _, strPath := range protoFieldMask.Paths {
   208  		path, err := ParseCustomizedImage_FieldPath(strPath)
   209  		if err != nil {
   210  			return err
   211  		}
   212  		fieldMask.Paths = append(fieldMask.Paths, path)
   213  	}
   214  	return nil
   215  }
   216  
   217  // implement methods required by customType
   218  func (fieldMask CustomizedImage_FieldMask) Marshal() ([]byte, error) {
   219  	protoFieldMask := fieldMask.ToProtoFieldMask()
   220  	return proto.Marshal(protoFieldMask)
   221  }
   222  
   223  func (fieldMask *CustomizedImage_FieldMask) Unmarshal(data []byte) error {
   224  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   225  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   226  		return err
   227  	}
   228  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   229  		return err
   230  	}
   231  	return nil
   232  }
   233  
   234  func (fieldMask *CustomizedImage_FieldMask) Size() int {
   235  	return proto.Size(fieldMask.ToProtoFieldMask())
   236  }
   237  
   238  func (fieldMask CustomizedImage_FieldMask) MarshalJSON() ([]byte, error) {
   239  	return json.Marshal(fieldMask.ToProtoFieldMask())
   240  }
   241  
   242  func (fieldMask *CustomizedImage_FieldMask) UnmarshalJSON(data []byte) error {
   243  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   244  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   245  		return err
   246  	}
   247  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   248  		return err
   249  	}
   250  	return nil
   251  }
   252  
   253  func (fieldMask *CustomizedImage_FieldMask) AppendPath(path CustomizedImage_FieldPath) {
   254  	fieldMask.Paths = append(fieldMask.Paths, path)
   255  }
   256  
   257  func (fieldMask *CustomizedImage_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   258  	fieldMask.Paths = append(fieldMask.Paths, path.(CustomizedImage_FieldPath))
   259  }
   260  
   261  func (fieldMask *CustomizedImage_FieldMask) GetPaths() []CustomizedImage_FieldPath {
   262  	if fieldMask == nil {
   263  		return nil
   264  	}
   265  	return fieldMask.Paths
   266  }
   267  
   268  func (fieldMask *CustomizedImage_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   269  	if fieldMask == nil {
   270  		return nil
   271  	}
   272  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   273  	for _, path := range fieldMask.Paths {
   274  		rawPaths = append(rawPaths, path)
   275  	}
   276  	return rawPaths
   277  }
   278  
   279  func (fieldMask *CustomizedImage_FieldMask) SetFromCliFlag(raw string) error {
   280  	path, err := ParseCustomizedImage_FieldPath(raw)
   281  	if err != nil {
   282  		return err
   283  	}
   284  	fieldMask.Paths = append(fieldMask.Paths, path)
   285  	return nil
   286  }
   287  
   288  func (fieldMask *CustomizedImage_FieldMask) Set(target, source *CustomizedImage) {
   289  	for _, path := range fieldMask.Paths {
   290  		val, _ := path.GetSingle(source)
   291  		// if val is nil, then field does not exist in source, skip
   292  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   293  		if val != nil {
   294  			path.WithIValue(val).SetTo(&target)
   295  		}
   296  	}
   297  }
   298  
   299  func (fieldMask *CustomizedImage_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   300  	fieldMask.Set(target.(*CustomizedImage), source.(*CustomizedImage))
   301  }
   302  
   303  func (fieldMask *CustomizedImage_FieldMask) Project(source *CustomizedImage) *CustomizedImage {
   304  	if source == nil {
   305  		return nil
   306  	}
   307  	if fieldMask == nil {
   308  		return source
   309  	}
   310  	result := &CustomizedImage{}
   311  	metadataMask := &meta.Meta_FieldMask{}
   312  	wholeMetadataAccepted := false
   313  	specMask := &CustomizedImage_Spec_FieldMask{}
   314  	wholeSpecAccepted := false
   315  	statusMask := &CustomizedImage_Status_FieldMask{}
   316  	wholeStatusAccepted := false
   317  
   318  	for _, p := range fieldMask.Paths {
   319  		switch tp := p.(type) {
   320  		case *CustomizedImage_FieldTerminalPath:
   321  			switch tp.selector {
   322  			case CustomizedImage_FieldPathSelectorName:
   323  				result.Name = source.Name
   324  			case CustomizedImage_FieldPathSelectorMetadata:
   325  				result.Metadata = source.Metadata
   326  				wholeMetadataAccepted = true
   327  			case CustomizedImage_FieldPathSelectorSpec:
   328  				result.Spec = source.Spec
   329  				wholeSpecAccepted = true
   330  			case CustomizedImage_FieldPathSelectorStatus:
   331  				result.Status = source.Status
   332  				wholeStatusAccepted = true
   333  			}
   334  		case *CustomizedImage_FieldSubPath:
   335  			switch tp.selector {
   336  			case CustomizedImage_FieldPathSelectorMetadata:
   337  				metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath))
   338  			case CustomizedImage_FieldPathSelectorSpec:
   339  				specMask.AppendPath(tp.subPath.(CustomizedImageSpec_FieldPath))
   340  			case CustomizedImage_FieldPathSelectorStatus:
   341  				statusMask.AppendPath(tp.subPath.(CustomizedImageStatus_FieldPath))
   342  			}
   343  		}
   344  	}
   345  	if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 {
   346  		result.Metadata = metadataMask.Project(source.GetMetadata())
   347  	}
   348  	if wholeSpecAccepted == false && len(specMask.Paths) > 0 {
   349  		result.Spec = specMask.Project(source.GetSpec())
   350  	}
   351  	if wholeStatusAccepted == false && len(statusMask.Paths) > 0 {
   352  		result.Status = statusMask.Project(source.GetStatus())
   353  	}
   354  	return result
   355  }
   356  
   357  func (fieldMask *CustomizedImage_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   358  	return fieldMask.Project(source.(*CustomizedImage))
   359  }
   360  
   361  func (fieldMask *CustomizedImage_FieldMask) PathsCount() int {
   362  	if fieldMask == nil {
   363  		return 0
   364  	}
   365  	return len(fieldMask.Paths)
   366  }
   367  
   368  type CustomizedImage_Spec_FieldMask struct {
   369  	Paths []CustomizedImageSpec_FieldPath
   370  }
   371  
   372  func FullCustomizedImage_Spec_FieldMask() *CustomizedImage_Spec_FieldMask {
   373  	res := &CustomizedImage_Spec_FieldMask{}
   374  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorVersion})
   375  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorDeviceType})
   376  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorOsVersion})
   377  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorProvisioningPolicy})
   378  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorServiceAccount})
   379  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorServiceAccountKey})
   380  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorPassword})
   381  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorEncryption})
   382  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorEncryptionPassword})
   383  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorDiskMapping})
   384  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorNetworkAgent})
   385  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorNtp})
   386  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorHttpProxy})
   387  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorHttpsProxy})
   388  	res.Paths = append(res.Paths, &CustomizedImageSpec_FieldTerminalPath{selector: CustomizedImageSpec_FieldPathSelectorNoProxy})
   389  	return res
   390  }
   391  
   392  func (fieldMask *CustomizedImage_Spec_FieldMask) String() string {
   393  	if fieldMask == nil {
   394  		return "<nil>"
   395  	}
   396  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   397  	for _, path := range fieldMask.Paths {
   398  		pathsStr = append(pathsStr, path.String())
   399  	}
   400  	return strings.Join(pathsStr, ", ")
   401  }
   402  
   403  func (fieldMask *CustomizedImage_Spec_FieldMask) IsFull() bool {
   404  	if fieldMask == nil {
   405  		return false
   406  	}
   407  	presentSelectors := make([]bool, 15)
   408  	for _, path := range fieldMask.Paths {
   409  		if asFinal, ok := path.(*CustomizedImageSpec_FieldTerminalPath); ok {
   410  			presentSelectors[int(asFinal.selector)] = true
   411  		}
   412  	}
   413  	for _, flag := range presentSelectors {
   414  		if !flag {
   415  			return false
   416  		}
   417  	}
   418  	return true
   419  }
   420  
   421  func (fieldMask *CustomizedImage_Spec_FieldMask) ProtoReflect() preflect.Message {
   422  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   423  		return ParseCustomizedImageSpec_FieldPath(raw)
   424  	})
   425  }
   426  
   427  func (fieldMask *CustomizedImage_Spec_FieldMask) ProtoMessage() {}
   428  
   429  func (fieldMask *CustomizedImage_Spec_FieldMask) Reset() {
   430  	if fieldMask != nil {
   431  		fieldMask.Paths = nil
   432  	}
   433  }
   434  
   435  func (fieldMask *CustomizedImage_Spec_FieldMask) Subtract(other *CustomizedImage_Spec_FieldMask) *CustomizedImage_Spec_FieldMask {
   436  	result := &CustomizedImage_Spec_FieldMask{}
   437  	removedSelectors := make([]bool, 15)
   438  
   439  	for _, path := range other.GetPaths() {
   440  		switch tp := path.(type) {
   441  		case *CustomizedImageSpec_FieldTerminalPath:
   442  			removedSelectors[int(tp.selector)] = true
   443  		}
   444  	}
   445  	for _, path := range fieldMask.GetPaths() {
   446  		if !removedSelectors[int(path.Selector())] {
   447  			result.Paths = append(result.Paths, path)
   448  		}
   449  	}
   450  
   451  	if len(result.Paths) == 0 {
   452  		return nil
   453  	}
   454  	return result
   455  }
   456  
   457  func (fieldMask *CustomizedImage_Spec_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   458  	return fieldMask.Subtract(other.(*CustomizedImage_Spec_FieldMask))
   459  }
   460  
   461  // FilterInputFields generates copy of field paths with output_only field paths removed
   462  func (fieldMask *CustomizedImage_Spec_FieldMask) FilterInputFields() *CustomizedImage_Spec_FieldMask {
   463  	result := &CustomizedImage_Spec_FieldMask{}
   464  	result.Paths = append(result.Paths, fieldMask.Paths...)
   465  	return result
   466  }
   467  
   468  // ToFieldMask is used for proto conversions
   469  func (fieldMask *CustomizedImage_Spec_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   470  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   471  	for _, path := range fieldMask.Paths {
   472  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   473  	}
   474  	return protoFieldMask
   475  }
   476  
   477  func (fieldMask *CustomizedImage_Spec_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   478  	if fieldMask == nil {
   479  		return status.Error(codes.Internal, "target field mask is nil")
   480  	}
   481  	fieldMask.Paths = make([]CustomizedImageSpec_FieldPath, 0, len(protoFieldMask.Paths))
   482  	for _, strPath := range protoFieldMask.Paths {
   483  		path, err := ParseCustomizedImageSpec_FieldPath(strPath)
   484  		if err != nil {
   485  			return err
   486  		}
   487  		fieldMask.Paths = append(fieldMask.Paths, path)
   488  	}
   489  	return nil
   490  }
   491  
   492  // implement methods required by customType
   493  func (fieldMask CustomizedImage_Spec_FieldMask) Marshal() ([]byte, error) {
   494  	protoFieldMask := fieldMask.ToProtoFieldMask()
   495  	return proto.Marshal(protoFieldMask)
   496  }
   497  
   498  func (fieldMask *CustomizedImage_Spec_FieldMask) Unmarshal(data []byte) error {
   499  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   500  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   501  		return err
   502  	}
   503  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   504  		return err
   505  	}
   506  	return nil
   507  }
   508  
   509  func (fieldMask *CustomizedImage_Spec_FieldMask) Size() int {
   510  	return proto.Size(fieldMask.ToProtoFieldMask())
   511  }
   512  
   513  func (fieldMask CustomizedImage_Spec_FieldMask) MarshalJSON() ([]byte, error) {
   514  	return json.Marshal(fieldMask.ToProtoFieldMask())
   515  }
   516  
   517  func (fieldMask *CustomizedImage_Spec_FieldMask) UnmarshalJSON(data []byte) error {
   518  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   519  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   520  		return err
   521  	}
   522  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   523  		return err
   524  	}
   525  	return nil
   526  }
   527  
   528  func (fieldMask *CustomizedImage_Spec_FieldMask) AppendPath(path CustomizedImageSpec_FieldPath) {
   529  	fieldMask.Paths = append(fieldMask.Paths, path)
   530  }
   531  
   532  func (fieldMask *CustomizedImage_Spec_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   533  	fieldMask.Paths = append(fieldMask.Paths, path.(CustomizedImageSpec_FieldPath))
   534  }
   535  
   536  func (fieldMask *CustomizedImage_Spec_FieldMask) GetPaths() []CustomizedImageSpec_FieldPath {
   537  	if fieldMask == nil {
   538  		return nil
   539  	}
   540  	return fieldMask.Paths
   541  }
   542  
   543  func (fieldMask *CustomizedImage_Spec_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   544  	if fieldMask == nil {
   545  		return nil
   546  	}
   547  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   548  	for _, path := range fieldMask.Paths {
   549  		rawPaths = append(rawPaths, path)
   550  	}
   551  	return rawPaths
   552  }
   553  
   554  func (fieldMask *CustomizedImage_Spec_FieldMask) SetFromCliFlag(raw string) error {
   555  	path, err := ParseCustomizedImageSpec_FieldPath(raw)
   556  	if err != nil {
   557  		return err
   558  	}
   559  	fieldMask.Paths = append(fieldMask.Paths, path)
   560  	return nil
   561  }
   562  
   563  func (fieldMask *CustomizedImage_Spec_FieldMask) Set(target, source *CustomizedImage_Spec) {
   564  	for _, path := range fieldMask.Paths {
   565  		val, _ := path.GetSingle(source)
   566  		// if val is nil, then field does not exist in source, skip
   567  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   568  		if val != nil {
   569  			path.WithIValue(val).SetTo(&target)
   570  		}
   571  	}
   572  }
   573  
   574  func (fieldMask *CustomizedImage_Spec_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   575  	fieldMask.Set(target.(*CustomizedImage_Spec), source.(*CustomizedImage_Spec))
   576  }
   577  
   578  func (fieldMask *CustomizedImage_Spec_FieldMask) Project(source *CustomizedImage_Spec) *CustomizedImage_Spec {
   579  	if source == nil {
   580  		return nil
   581  	}
   582  	if fieldMask == nil {
   583  		return source
   584  	}
   585  	result := &CustomizedImage_Spec{}
   586  
   587  	for _, p := range fieldMask.Paths {
   588  		switch tp := p.(type) {
   589  		case *CustomizedImageSpec_FieldTerminalPath:
   590  			switch tp.selector {
   591  			case CustomizedImageSpec_FieldPathSelectorVersion:
   592  				result.Version = source.Version
   593  			case CustomizedImageSpec_FieldPathSelectorDeviceType:
   594  				result.DeviceType = source.DeviceType
   595  			case CustomizedImageSpec_FieldPathSelectorOsVersion:
   596  				result.OsVersion = source.OsVersion
   597  			case CustomizedImageSpec_FieldPathSelectorProvisioningPolicy:
   598  				result.ProvisioningPolicy = source.ProvisioningPolicy
   599  			case CustomizedImageSpec_FieldPathSelectorServiceAccount:
   600  				result.ServiceAccount = source.ServiceAccount
   601  			case CustomizedImageSpec_FieldPathSelectorServiceAccountKey:
   602  				result.ServiceAccountKey = source.ServiceAccountKey
   603  			case CustomizedImageSpec_FieldPathSelectorPassword:
   604  				result.Password = source.Password
   605  			case CustomizedImageSpec_FieldPathSelectorEncryption:
   606  				result.Encryption = source.Encryption
   607  			case CustomizedImageSpec_FieldPathSelectorEncryptionPassword:
   608  				result.EncryptionPassword = source.EncryptionPassword
   609  			case CustomizedImageSpec_FieldPathSelectorDiskMapping:
   610  				result.DiskMapping = source.DiskMapping
   611  			case CustomizedImageSpec_FieldPathSelectorNetworkAgent:
   612  				result.NetworkAgent = source.NetworkAgent
   613  			case CustomizedImageSpec_FieldPathSelectorNtp:
   614  				result.Ntp = source.Ntp
   615  			case CustomizedImageSpec_FieldPathSelectorHttpProxy:
   616  				result.HttpProxy = source.HttpProxy
   617  			case CustomizedImageSpec_FieldPathSelectorHttpsProxy:
   618  				result.HttpsProxy = source.HttpsProxy
   619  			case CustomizedImageSpec_FieldPathSelectorNoProxy:
   620  				result.NoProxy = source.NoProxy
   621  			}
   622  		}
   623  	}
   624  	return result
   625  }
   626  
   627  func (fieldMask *CustomizedImage_Spec_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   628  	return fieldMask.Project(source.(*CustomizedImage_Spec))
   629  }
   630  
   631  func (fieldMask *CustomizedImage_Spec_FieldMask) PathsCount() int {
   632  	if fieldMask == nil {
   633  		return 0
   634  	}
   635  	return len(fieldMask.Paths)
   636  }
   637  
   638  type CustomizedImage_Status_FieldMask struct {
   639  	Paths []CustomizedImageStatus_FieldPath
   640  }
   641  
   642  func FullCustomizedImage_Status_FieldMask() *CustomizedImage_Status_FieldMask {
   643  	res := &CustomizedImage_Status_FieldMask{}
   644  	res.Paths = append(res.Paths, &CustomizedImageStatus_FieldTerminalPath{selector: CustomizedImageStatus_FieldPathSelectorState})
   645  	res.Paths = append(res.Paths, &CustomizedImageStatus_FieldTerminalPath{selector: CustomizedImageStatus_FieldPathSelectorLog})
   646  	res.Paths = append(res.Paths, &CustomizedImageStatus_FieldTerminalPath{selector: CustomizedImageStatus_FieldPathSelectorFile})
   647  	res.Paths = append(res.Paths, &CustomizedImageStatus_FieldTerminalPath{selector: CustomizedImageStatus_FieldPathSelectorMd5Sum})
   648  	return res
   649  }
   650  
   651  func (fieldMask *CustomizedImage_Status_FieldMask) String() string {
   652  	if fieldMask == nil {
   653  		return "<nil>"
   654  	}
   655  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   656  	for _, path := range fieldMask.Paths {
   657  		pathsStr = append(pathsStr, path.String())
   658  	}
   659  	return strings.Join(pathsStr, ", ")
   660  }
   661  
   662  func (fieldMask *CustomizedImage_Status_FieldMask) IsFull() bool {
   663  	if fieldMask == nil {
   664  		return false
   665  	}
   666  	presentSelectors := make([]bool, 4)
   667  	for _, path := range fieldMask.Paths {
   668  		if asFinal, ok := path.(*CustomizedImageStatus_FieldTerminalPath); ok {
   669  			presentSelectors[int(asFinal.selector)] = true
   670  		}
   671  	}
   672  	for _, flag := range presentSelectors {
   673  		if !flag {
   674  			return false
   675  		}
   676  	}
   677  	return true
   678  }
   679  
   680  func (fieldMask *CustomizedImage_Status_FieldMask) ProtoReflect() preflect.Message {
   681  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   682  		return ParseCustomizedImageStatus_FieldPath(raw)
   683  	})
   684  }
   685  
   686  func (fieldMask *CustomizedImage_Status_FieldMask) ProtoMessage() {}
   687  
   688  func (fieldMask *CustomizedImage_Status_FieldMask) Reset() {
   689  	if fieldMask != nil {
   690  		fieldMask.Paths = nil
   691  	}
   692  }
   693  
   694  func (fieldMask *CustomizedImage_Status_FieldMask) Subtract(other *CustomizedImage_Status_FieldMask) *CustomizedImage_Status_FieldMask {
   695  	result := &CustomizedImage_Status_FieldMask{}
   696  	removedSelectors := make([]bool, 4)
   697  
   698  	for _, path := range other.GetPaths() {
   699  		switch tp := path.(type) {
   700  		case *CustomizedImageStatus_FieldTerminalPath:
   701  			removedSelectors[int(tp.selector)] = true
   702  		}
   703  	}
   704  	for _, path := range fieldMask.GetPaths() {
   705  		if !removedSelectors[int(path.Selector())] {
   706  			result.Paths = append(result.Paths, path)
   707  		}
   708  	}
   709  
   710  	if len(result.Paths) == 0 {
   711  		return nil
   712  	}
   713  	return result
   714  }
   715  
   716  func (fieldMask *CustomizedImage_Status_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   717  	return fieldMask.Subtract(other.(*CustomizedImage_Status_FieldMask))
   718  }
   719  
   720  // FilterInputFields generates copy of field paths with output_only field paths removed
   721  func (fieldMask *CustomizedImage_Status_FieldMask) FilterInputFields() *CustomizedImage_Status_FieldMask {
   722  	result := &CustomizedImage_Status_FieldMask{}
   723  	result.Paths = append(result.Paths, fieldMask.Paths...)
   724  	return result
   725  }
   726  
   727  // ToFieldMask is used for proto conversions
   728  func (fieldMask *CustomizedImage_Status_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   729  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   730  	for _, path := range fieldMask.Paths {
   731  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   732  	}
   733  	return protoFieldMask
   734  }
   735  
   736  func (fieldMask *CustomizedImage_Status_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   737  	if fieldMask == nil {
   738  		return status.Error(codes.Internal, "target field mask is nil")
   739  	}
   740  	fieldMask.Paths = make([]CustomizedImageStatus_FieldPath, 0, len(protoFieldMask.Paths))
   741  	for _, strPath := range protoFieldMask.Paths {
   742  		path, err := ParseCustomizedImageStatus_FieldPath(strPath)
   743  		if err != nil {
   744  			return err
   745  		}
   746  		fieldMask.Paths = append(fieldMask.Paths, path)
   747  	}
   748  	return nil
   749  }
   750  
   751  // implement methods required by customType
   752  func (fieldMask CustomizedImage_Status_FieldMask) Marshal() ([]byte, error) {
   753  	protoFieldMask := fieldMask.ToProtoFieldMask()
   754  	return proto.Marshal(protoFieldMask)
   755  }
   756  
   757  func (fieldMask *CustomizedImage_Status_FieldMask) Unmarshal(data []byte) error {
   758  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   759  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   760  		return err
   761  	}
   762  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   763  		return err
   764  	}
   765  	return nil
   766  }
   767  
   768  func (fieldMask *CustomizedImage_Status_FieldMask) Size() int {
   769  	return proto.Size(fieldMask.ToProtoFieldMask())
   770  }
   771  
   772  func (fieldMask CustomizedImage_Status_FieldMask) MarshalJSON() ([]byte, error) {
   773  	return json.Marshal(fieldMask.ToProtoFieldMask())
   774  }
   775  
   776  func (fieldMask *CustomizedImage_Status_FieldMask) UnmarshalJSON(data []byte) error {
   777  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   778  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   779  		return err
   780  	}
   781  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   782  		return err
   783  	}
   784  	return nil
   785  }
   786  
   787  func (fieldMask *CustomizedImage_Status_FieldMask) AppendPath(path CustomizedImageStatus_FieldPath) {
   788  	fieldMask.Paths = append(fieldMask.Paths, path)
   789  }
   790  
   791  func (fieldMask *CustomizedImage_Status_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   792  	fieldMask.Paths = append(fieldMask.Paths, path.(CustomizedImageStatus_FieldPath))
   793  }
   794  
   795  func (fieldMask *CustomizedImage_Status_FieldMask) GetPaths() []CustomizedImageStatus_FieldPath {
   796  	if fieldMask == nil {
   797  		return nil
   798  	}
   799  	return fieldMask.Paths
   800  }
   801  
   802  func (fieldMask *CustomizedImage_Status_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   803  	if fieldMask == nil {
   804  		return nil
   805  	}
   806  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   807  	for _, path := range fieldMask.Paths {
   808  		rawPaths = append(rawPaths, path)
   809  	}
   810  	return rawPaths
   811  }
   812  
   813  func (fieldMask *CustomizedImage_Status_FieldMask) SetFromCliFlag(raw string) error {
   814  	path, err := ParseCustomizedImageStatus_FieldPath(raw)
   815  	if err != nil {
   816  		return err
   817  	}
   818  	fieldMask.Paths = append(fieldMask.Paths, path)
   819  	return nil
   820  }
   821  
   822  func (fieldMask *CustomizedImage_Status_FieldMask) Set(target, source *CustomizedImage_Status) {
   823  	for _, path := range fieldMask.Paths {
   824  		val, _ := path.GetSingle(source)
   825  		// if val is nil, then field does not exist in source, skip
   826  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   827  		if val != nil {
   828  			path.WithIValue(val).SetTo(&target)
   829  		}
   830  	}
   831  }
   832  
   833  func (fieldMask *CustomizedImage_Status_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   834  	fieldMask.Set(target.(*CustomizedImage_Status), source.(*CustomizedImage_Status))
   835  }
   836  
   837  func (fieldMask *CustomizedImage_Status_FieldMask) Project(source *CustomizedImage_Status) *CustomizedImage_Status {
   838  	if source == nil {
   839  		return nil
   840  	}
   841  	if fieldMask == nil {
   842  		return source
   843  	}
   844  	result := &CustomizedImage_Status{}
   845  
   846  	for _, p := range fieldMask.Paths {
   847  		switch tp := p.(type) {
   848  		case *CustomizedImageStatus_FieldTerminalPath:
   849  			switch tp.selector {
   850  			case CustomizedImageStatus_FieldPathSelectorState:
   851  				result.State = source.State
   852  			case CustomizedImageStatus_FieldPathSelectorLog:
   853  				result.Log = source.Log
   854  			case CustomizedImageStatus_FieldPathSelectorFile:
   855  				result.File = source.File
   856  			case CustomizedImageStatus_FieldPathSelectorMd5Sum:
   857  				result.Md5Sum = source.Md5Sum
   858  			}
   859  		}
   860  	}
   861  	return result
   862  }
   863  
   864  func (fieldMask *CustomizedImage_Status_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   865  	return fieldMask.Project(source.(*CustomizedImage_Status))
   866  }
   867  
   868  func (fieldMask *CustomizedImage_Status_FieldMask) PathsCount() int {
   869  	if fieldMask == nil {
   870  		return 0
   871  	}
   872  	return len(fieldMask.Paths)
   873  }