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

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