github.com/sacloud/libsacloud/v2@v2.32.3/internal/define/fields.go (about)

     1  // Copyright 2016-2022 The Libsacloud Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package define
    16  
    17  import (
    18  	"github.com/sacloud/libsacloud/v2/internal/dsl"
    19  	"github.com/sacloud/libsacloud/v2/internal/dsl/meta"
    20  	"github.com/sacloud/libsacloud/v2/sacloud/naked"
    21  	"github.com/sacloud/libsacloud/v2/sacloud/types"
    22  )
    23  
    24  func mapConvTag(tag string) *dsl.FieldTags {
    25  	return &dsl.FieldTags{
    26  		MapConv: tag,
    27  	}
    28  }
    29  
    30  type fieldsDef struct{}
    31  
    32  var fields = &fieldsDef{}
    33  
    34  func (f *fieldsDef) Def(name string, t meta.Type, tag ...*dsl.FieldTags) *dsl.FieldDesc {
    35  	desc := &dsl.FieldDesc{
    36  		Name: name,
    37  		Type: t,
    38  	}
    39  	if len(tag) > 0 {
    40  		desc.Tags = tag[0]
    41  	}
    42  	return desc
    43  }
    44  
    45  func (f *fieldsDef) ID() *dsl.FieldDesc {
    46  	return &dsl.FieldDesc{
    47  		Name: "ID",
    48  		Type: meta.TypeID,
    49  		Methods: []*dsl.MethodDesc{
    50  			{
    51  				Name: "SetStringID",
    52  				Arguments: dsl.Arguments{
    53  					{
    54  						Name: "id",
    55  						Type: meta.TypeString,
    56  					},
    57  				},
    58  			},
    59  			{
    60  				Name:        "GetStringID",
    61  				ResultTypes: []meta.Type{meta.TypeString},
    62  			},
    63  			{
    64  				Name: "SetInt64ID",
    65  				Arguments: dsl.Arguments{
    66  					{
    67  						Name: "id",
    68  						Type: meta.TypeInt64,
    69  					},
    70  				},
    71  			},
    72  			{
    73  				Name:        "GetInt64ID",
    74  				ResultTypes: []meta.Type{meta.TypeInt64},
    75  			},
    76  		},
    77  	}
    78  }
    79  
    80  func (f *fieldsDef) Name() *dsl.FieldDesc {
    81  	return &dsl.FieldDesc{
    82  		Name: "Name",
    83  		Type: meta.TypeString,
    84  	}
    85  }
    86  
    87  func (f *fieldsDef) InterfaceDriver() *dsl.FieldDesc {
    88  	return &dsl.FieldDesc{
    89  		Name:         "InterfaceDriver",
    90  		Type:         meta.TypeInterfaceDriver,
    91  		DefaultValue: `types.InterfaceDrivers.VirtIO`,
    92  	}
    93  }
    94  
    95  func (f *fieldsDef) BridgeInfo() *dsl.FieldDesc {
    96  	return &dsl.FieldDesc{
    97  		Name: "BridgeInfo",
    98  		Type: models.bridgeInfoModel(),
    99  		Tags: &dsl.FieldTags{
   100  			MapConv: "Info.[]Switches,recursive",
   101  		},
   102  	}
   103  }
   104  
   105  func (f *fieldsDef) SwitchInZone() *dsl.FieldDesc {
   106  	return &dsl.FieldDesc{
   107  		Name: "SwitchInZone",
   108  		Type: models.switchInZoneModel(),
   109  	}
   110  }
   111  
   112  func (f *fieldsDef) DiskPlanID() *dsl.FieldDesc {
   113  	return &dsl.FieldDesc{
   114  		Name: "DiskPlanID",
   115  		Tags: &dsl.FieldTags{
   116  			MapConv: "Plan.ID",
   117  		},
   118  		Type: meta.TypeID,
   119  	}
   120  }
   121  
   122  func (f *fieldsDef) DiskPlanName() *dsl.FieldDesc {
   123  	return &dsl.FieldDesc{
   124  		Name: "DiskPlanName",
   125  		Tags: &dsl.FieldTags{
   126  			MapConv: "Plan.Name",
   127  		},
   128  		Type: meta.TypeString,
   129  	}
   130  }
   131  
   132  func (f *fieldsDef) DiskPlanStorageClass() *dsl.FieldDesc {
   133  	return &dsl.FieldDesc{
   134  		Name: "DiskPlanStorageClass",
   135  		Tags: &dsl.FieldTags{
   136  			MapConv: "Plan.StorageClass",
   137  		},
   138  		Type: meta.TypeString,
   139  	}
   140  }
   141  
   142  func (f *fieldsDef) CPU() *dsl.FieldDesc {
   143  	return &dsl.FieldDesc{
   144  		Name: "CPU",
   145  		Type: meta.TypeInt,
   146  	}
   147  }
   148  
   149  func (f *fieldsDef) GPU() *dsl.FieldDesc {
   150  	return &dsl.FieldDesc{
   151  		Name: "GPU",
   152  		Type: meta.TypeInt,
   153  	}
   154  }
   155  
   156  /*
   157  func (f *fieldsDef) ServerPlanCPU() *schema.FieldDesc {
   158  	return &schema.FieldDesc{
   159  		Name: "CPU",
   160  		Tags: &schema.FieldTags{
   161  			MapConv: "ServerPlan.CPU",
   162  		},
   163  		Type: meta.TypeInt,
   164  	}
   165  }
   166  */
   167  
   168  func (f *fieldsDef) MemoryMB() *dsl.FieldDesc {
   169  	return &dsl.FieldDesc{
   170  		Name: "MemoryMB",
   171  		Type: meta.TypeInt,
   172  		Methods: []*dsl.MethodDesc{
   173  			{
   174  				Name:        "GetMemoryGB",
   175  				ResultTypes: []meta.Type{meta.TypeInt},
   176  			},
   177  			{
   178  				Name: "SetMemoryGB",
   179  				Arguments: dsl.Arguments{
   180  					{
   181  						Name: "memory",
   182  						Type: meta.TypeInt,
   183  					},
   184  				},
   185  			},
   186  		},
   187  	}
   188  }
   189  
   190  func (f *fieldsDef) Generation() *dsl.FieldDesc {
   191  	return &dsl.FieldDesc{
   192  		Name: "ServerPlanGeneration",
   193  		Tags: &dsl.FieldTags{
   194  			JSON: "Generation,omitempty",
   195  		},
   196  		Type: meta.TypePlanGeneration,
   197  	}
   198  }
   199  
   200  func (f *fieldsDef) Commitment() *dsl.FieldDesc {
   201  	return &dsl.FieldDesc{
   202  		Name: "ServerPlanCommitment",
   203  		Tags: &dsl.FieldTags{
   204  			JSON: "Commitment,omitempty",
   205  		},
   206  		Type:         meta.TypeCommitment,
   207  		DefaultValue: "types.Commitments.Standard",
   208  	}
   209  }
   210  
   211  func (f *fieldsDef) ServerPlanID() *dsl.FieldDesc {
   212  	return &dsl.FieldDesc{
   213  		Name: "ServerPlanID",
   214  		Tags: &dsl.FieldTags{
   215  			MapConv: "ServerPlan.ID",
   216  		},
   217  		Type: meta.TypeID,
   218  	}
   219  }
   220  
   221  func (f *fieldsDef) ServerPlanName() *dsl.FieldDesc {
   222  	return &dsl.FieldDesc{
   223  		Name: "ServerPlanName",
   224  		Tags: &dsl.FieldTags{
   225  			MapConv: "ServerPlan.Name",
   226  		},
   227  		Type: meta.TypeString,
   228  	}
   229  }
   230  
   231  func (f *fieldsDef) ServerPlanCPU() *dsl.FieldDesc {
   232  	return &dsl.FieldDesc{
   233  		Name: "CPU",
   234  		Tags: &dsl.FieldTags{
   235  			MapConv: "ServerPlan.CPU",
   236  		},
   237  		Type: meta.TypeInt,
   238  	}
   239  }
   240  
   241  func (f *fieldsDef) ServerPlanMemoryMB() *dsl.FieldDesc {
   242  	return &dsl.FieldDesc{
   243  		Name: "MemoryMB",
   244  		Tags: &dsl.FieldTags{
   245  			MapConv: "ServerPlan.MemoryMB",
   246  		},
   247  		Type: meta.TypeInt,
   248  		Methods: []*dsl.MethodDesc{
   249  			{
   250  				Name:        "GetMemoryGB",
   251  				ResultTypes: []meta.Type{meta.TypeInt},
   252  			},
   253  		},
   254  	}
   255  }
   256  
   257  func (f *fieldsDef) ServerPlanGPU() *dsl.FieldDesc {
   258  	return &dsl.FieldDesc{
   259  		Name: "GPU",
   260  		Tags: &dsl.FieldTags{
   261  			MapConv: "ServerPlan.GPU",
   262  		},
   263  		Type: meta.TypeInt,
   264  	}
   265  }
   266  
   267  func (f *fieldsDef) ServerPlanGeneration() *dsl.FieldDesc {
   268  	return &dsl.FieldDesc{
   269  		Name: "ServerPlanGeneration",
   270  		Type: meta.TypePlanGeneration,
   271  		Tags: &dsl.FieldTags{
   272  			MapConv: "ServerPlan.Generation",
   273  		},
   274  	}
   275  }
   276  
   277  func (f *fieldsDef) ServerPlanCommitment() *dsl.FieldDesc {
   278  	return &dsl.FieldDesc{
   279  		Name: "ServerPlanCommitment",
   280  		Tags: &dsl.FieldTags{
   281  			MapConv: "ServerPlan.Commitment",
   282  			JSON:    ",omitempty",
   283  		},
   284  		Type:         meta.TypeCommitment,
   285  		DefaultValue: "types.Commitments.Standard",
   286  	}
   287  }
   288  
   289  func (f *fieldsDef) PlanID() *dsl.FieldDesc {
   290  	return &dsl.FieldDesc{
   291  		Name: "PlanID",
   292  		Tags: &dsl.FieldTags{
   293  			MapConv: "Plan.ID",
   294  		},
   295  		Type: meta.TypeID,
   296  	}
   297  }
   298  
   299  func (f *fieldsDef) PlanName() *dsl.FieldDesc {
   300  	return &dsl.FieldDesc{
   301  		Name: "PlanName",
   302  		Tags: &dsl.FieldTags{
   303  			MapConv: "Plan.Name",
   304  		},
   305  		Type: meta.TypeString,
   306  	}
   307  }
   308  
   309  func (f *fieldsDef) ServerConnectedSwitch() *dsl.FieldDesc {
   310  	return &dsl.FieldDesc{
   311  		Name: "ConnectedSwitches",
   312  		Type: &dsl.Model{
   313  			Name: "ConnectedSwitch",
   314  			Fields: []*dsl.FieldDesc{
   315  				fields.ID(),
   316  				fields.Scope(),
   317  			},
   318  			IsArray:   true,
   319  			NakedType: meta.Static(naked.ConnectedSwitch{}),
   320  		},
   321  		Tags: &dsl.FieldTags{
   322  			JSON:    ",omitempty",
   323  			MapConv: "[]ConnectedSwitches,recursive",
   324  		},
   325  	}
   326  }
   327  
   328  func (f *fieldsDef) IconURL() *dsl.FieldDesc {
   329  	return &dsl.FieldDesc{
   330  		Name: "URL",
   331  		Type: meta.TypeString,
   332  	}
   333  }
   334  
   335  func (f *fieldsDef) IconImage() *dsl.FieldDesc {
   336  	return &dsl.FieldDesc{
   337  		Name: "Image",
   338  		Type: meta.TypeString,
   339  	}
   340  }
   341  
   342  func (f *fieldsDef) PublicKey() *dsl.FieldDesc {
   343  	return &dsl.FieldDesc{
   344  		Name: "PublicKey",
   345  		Type: meta.TypeString,
   346  	}
   347  }
   348  
   349  func (f *fieldsDef) PrivateKey() *dsl.FieldDesc {
   350  	return &dsl.FieldDesc{
   351  		Name: "PrivateKey",
   352  		Type: meta.TypeString,
   353  	}
   354  }
   355  
   356  func (f *fieldsDef) Fingerprint() *dsl.FieldDesc {
   357  	return &dsl.FieldDesc{
   358  		Name: "Fingerprint",
   359  		Type: meta.TypeString,
   360  	}
   361  }
   362  
   363  func (f *fieldsDef) PassPhrase() *dsl.FieldDesc {
   364  	return &dsl.FieldDesc{
   365  		Name: "PassPhrase",
   366  		Type: meta.TypeString,
   367  	}
   368  }
   369  
   370  func (f *fieldsDef) SourceDiskID() *dsl.FieldDesc {
   371  	return &dsl.FieldDesc{
   372  		Name: "SourceDiskID",
   373  		Tags: &dsl.FieldTags{
   374  			MapConv: "SourceDisk.ID,omitempty",
   375  		},
   376  		Type: meta.TypeID,
   377  	}
   378  }
   379  
   380  func (f *fieldsDef) SourceDiskAvailability() *dsl.FieldDesc {
   381  	return &dsl.FieldDesc{
   382  		Name: "SourceDiskAvailability",
   383  		Tags: &dsl.FieldTags{
   384  			MapConv: "SourceDisk.Availability,omitempty",
   385  		},
   386  		Type: meta.TypeAvailability,
   387  	}
   388  }
   389  
   390  func (f *fieldsDef) SourceArchiveID() *dsl.FieldDesc {
   391  	return &dsl.FieldDesc{
   392  		Name: "SourceArchiveID",
   393  		Tags: &dsl.FieldTags{
   394  			MapConv: "SourceArchive.ID,omitempty",
   395  		},
   396  		Type: meta.TypeID,
   397  	}
   398  }
   399  
   400  func (f *fieldsDef) SourceArchiveAvailability() *dsl.FieldDesc {
   401  	return &dsl.FieldDesc{
   402  		Name: "SourceArchiveAvailability",
   403  		Tags: &dsl.FieldTags{
   404  			MapConv: "SourceArchive.Availability,omitempty",
   405  		},
   406  		Type: meta.TypeAvailability,
   407  	}
   408  }
   409  
   410  func (f *fieldsDef) OriginalArchiveID() *dsl.FieldDesc {
   411  	return &dsl.FieldDesc{
   412  		Name: "OriginalArchiveID",
   413  		Tags: &dsl.FieldTags{
   414  			MapConv: "OriginalArchive.ID,omitempty",
   415  		},
   416  		Type: meta.TypeID,
   417  	}
   418  }
   419  
   420  func (f *fieldsDef) BridgeID() *dsl.FieldDesc {
   421  	return &dsl.FieldDesc{
   422  		Name: "BridgeID",
   423  		Type: meta.TypeID,
   424  		Tags: &dsl.FieldTags{
   425  			MapConv: "Bridge.ID,omitempty",
   426  		},
   427  	}
   428  }
   429  
   430  func (f *fieldsDef) HybridConnectionID() *dsl.FieldDesc {
   431  	return &dsl.FieldDesc{
   432  		Name: "HybridConnectionID",
   433  		Type: meta.TypeID,
   434  		Tags: &dsl.FieldTags{
   435  			MapConv: "HybridConnection.ID,omitempty",
   436  		},
   437  	}
   438  }
   439  
   440  func (f *fieldsDef) SwitchID() *dsl.FieldDesc {
   441  	return &dsl.FieldDesc{
   442  		Name: "SwitchID",
   443  		Type: meta.TypeID,
   444  		Tags: &dsl.FieldTags{
   445  			MapConv: "Switch.ID,omitempty",
   446  		},
   447  	}
   448  }
   449  
   450  func (f *fieldsDef) SwitchScope() *dsl.FieldDesc {
   451  	return &dsl.FieldDesc{
   452  		Name: "SwitchScope",
   453  		Type: meta.TypeScope,
   454  		Tags: &dsl.FieldTags{
   455  			MapConv: "Switch.Scope,omitempty",
   456  		},
   457  	}
   458  }
   459  
   460  func (f *fieldsDef) PacketFilterID() *dsl.FieldDesc {
   461  	return &dsl.FieldDesc{
   462  		Name: "PacketFilterID",
   463  		Type: meta.TypeID,
   464  		Tags: &dsl.FieldTags{
   465  			MapConv: "PacketFilter.ID,omitempty",
   466  		},
   467  	}
   468  }
   469  
   470  func (f *fieldsDef) ServerID() *dsl.FieldDesc {
   471  	return &dsl.FieldDesc{
   472  		Name: "ServerID",
   473  		Tags: &dsl.FieldTags{
   474  			MapConv: "Server.ID,omitempty",
   475  		},
   476  		Type: meta.TypeID,
   477  	}
   478  }
   479  
   480  func (f *fieldsDef) ServerName() *dsl.FieldDesc {
   481  	return &dsl.FieldDesc{
   482  		Name: "ServerName",
   483  		Tags: &dsl.FieldTags{
   484  			MapConv: "Server.Name,omitempty",
   485  		},
   486  		Type: meta.TypeString,
   487  	}
   488  }
   489  
   490  func (f *fieldsDef) PrivateHostHostName() *dsl.FieldDesc {
   491  	return &dsl.FieldDesc{
   492  		Name: "HostName",
   493  		Type: meta.TypeString,
   494  		Tags: &dsl.FieldTags{
   495  			MapConv: "Host.Name",
   496  		},
   497  	}
   498  }
   499  
   500  func (f *fieldsDef) PrivateHostPlanID() *dsl.FieldDesc {
   501  	return &dsl.FieldDesc{
   502  		Name: "PlanID",
   503  		Tags: &dsl.FieldTags{
   504  			MapConv: "Plan.ID,omitempty",
   505  		},
   506  		Type: meta.TypeID,
   507  	}
   508  }
   509  
   510  func (f *fieldsDef) IconID() *dsl.FieldDesc {
   511  	return &dsl.FieldDesc{
   512  		Name: "IconID",
   513  		Tags: &dsl.FieldTags{
   514  			MapConv: "Icon.ID",
   515  		},
   516  		Type: meta.TypeID,
   517  	}
   518  }
   519  
   520  func (f *fieldsDef) LicenseInfoID() *dsl.FieldDesc {
   521  	return &dsl.FieldDesc{
   522  		Name: "LicenseInfoID",
   523  		Tags: &dsl.FieldTags{
   524  			MapConv: "LicenseInfo.ID",
   525  		},
   526  		Type: meta.TypeID,
   527  	}
   528  }
   529  
   530  func (f *fieldsDef) LicenseInfoName() *dsl.FieldDesc {
   531  	return &dsl.FieldDesc{
   532  		Name: "LicenseInfoName",
   533  		Tags: &dsl.FieldTags{
   534  			MapConv: "LicenseInfo.Name",
   535  		},
   536  		Type: meta.TypeString,
   537  	}
   538  }
   539  
   540  func (f *fieldsDef) ZoneID() *dsl.FieldDesc {
   541  	return &dsl.FieldDesc{
   542  		Name: "ZoneID",
   543  		Type: meta.TypeID,
   544  		Tags: &dsl.FieldTags{
   545  			MapConv: "Zone.ID",
   546  		},
   547  	}
   548  }
   549  
   550  func (f *fieldsDef) ZoneName() *dsl.FieldDesc {
   551  	return &dsl.FieldDesc{
   552  		Name: "ZoneName",
   553  		Type: meta.TypeString,
   554  		Tags: &dsl.FieldTags{
   555  			MapConv: "Zone.Name",
   556  		},
   557  	}
   558  }
   559  
   560  func (f *fieldsDef) CDROMID() *dsl.FieldDesc {
   561  	return &dsl.FieldDesc{
   562  		Name: "CDROMID",
   563  		Type: meta.TypeID,
   564  		Tags: &dsl.FieldTags{
   565  			MapConv: "Instance.CDROM.ID",
   566  		},
   567  	}
   568  }
   569  
   570  func (f *fieldsDef) PrivateHostID() *dsl.FieldDesc {
   571  	return &dsl.FieldDesc{
   572  		Name: "PrivateHostID",
   573  		Type: meta.TypeID,
   574  		Tags: &dsl.FieldTags{
   575  			MapConv: "PrivateHost.ID",
   576  		},
   577  	}
   578  }
   579  
   580  func (f *fieldsDef) PrivateHostName() *dsl.FieldDesc {
   581  	return &dsl.FieldDesc{
   582  		Name: "PrivateHostName",
   583  		Type: meta.TypeString,
   584  		Tags: &dsl.FieldTags{
   585  			MapConv: "PrivateHost.Name",
   586  		},
   587  	}
   588  }
   589  
   590  func (f *fieldsDef) AppliancePlanID() *dsl.FieldDesc {
   591  	return &dsl.FieldDesc{
   592  		Name: "PlanID",
   593  		Tags: &dsl.FieldTags{
   594  			MapConv: "Remark.Plan.ID/Plan.ID",
   595  		},
   596  		Type: meta.TypeID,
   597  	}
   598  }
   599  
   600  func (f *fieldsDef) ApplianceVPCRouterVersion() *dsl.FieldDesc {
   601  	return &dsl.FieldDesc{
   602  		Name: "Version",
   603  		Tags: &dsl.FieldTags{
   604  			MapConv: "Remark.Router.VPCRouterVersion",
   605  		},
   606  		Type:         meta.TypeInt,
   607  		DefaultValue: `2`,
   608  	}
   609  }
   610  
   611  func (f *fieldsDef) ApplianceSwitchID() *dsl.FieldDesc {
   612  	return &dsl.FieldDesc{
   613  		Name: "SwitchID",
   614  		Tags: &dsl.FieldTags{
   615  			MapConv: "Remark.Switch.ID",
   616  		},
   617  		Type: meta.TypeID,
   618  	}
   619  }
   620  
   621  func (f *fieldsDef) ApplianceIPAddress() *dsl.FieldDesc {
   622  	return &dsl.FieldDesc{
   623  		Name: "IPAddress",
   624  		Tags: &dsl.FieldTags{
   625  			MapConv: "Remark.[]Servers.IPAddress",
   626  		},
   627  		Type: meta.TypeString,
   628  	}
   629  }
   630  
   631  func (f *fieldsDef) ApplianceIPAddresses() *dsl.FieldDesc {
   632  	return &dsl.FieldDesc{
   633  		Name: "IPAddresses",
   634  		Type: meta.TypeStringSlice,
   635  		Tags: &dsl.FieldTags{
   636  			MapConv: "Remark.[]Servers.IPAddress",
   637  		},
   638  	}
   639  }
   640  
   641  func (f *fieldsDef) LoadBalancerVIPPort() *dsl.FieldDesc {
   642  	return &dsl.FieldDesc{
   643  		Name: "Port",
   644  		Type: meta.TypeStringNumber,
   645  	}
   646  }
   647  
   648  func (f *fieldsDef) LoadBalancerVIPDelayLoop() *dsl.FieldDesc {
   649  	return &dsl.FieldDesc{
   650  		Name: "DelayLoop",
   651  		Type: meta.TypeStringNumber,
   652  		Tags: &dsl.FieldTags{
   653  			MapConv: ",default=10",
   654  		},
   655  		DefaultValue: "10",
   656  	}
   657  }
   658  
   659  func (f *fieldsDef) LoadBalancerVIPSorryServer() *dsl.FieldDesc {
   660  	return &dsl.FieldDesc{
   661  		Name: "SorryServer",
   662  		Type: meta.TypeString,
   663  	}
   664  }
   665  
   666  func (f *fieldsDef) LoadBalancerServerIPAddress() *dsl.FieldDesc {
   667  	return &dsl.FieldDesc{
   668  		Name: "IPAddress",
   669  		Type: meta.TypeString,
   670  	}
   671  }
   672  func (f *fieldsDef) LoadBalancerServerPort() *dsl.FieldDesc {
   673  	return &dsl.FieldDesc{
   674  		Name: "Port",
   675  		Type: meta.TypeStringNumber,
   676  	}
   677  }
   678  func (f *fieldsDef) LoadBalancerServerEnabled() *dsl.FieldDesc {
   679  	return &dsl.FieldDesc{
   680  		Name: "Enabled",
   681  		Type: meta.TypeStringFlag,
   682  	}
   683  }
   684  func (f *fieldsDef) LoadBalancerServerHealthCheck() *dsl.FieldDesc {
   685  	return &dsl.FieldDesc{
   686  		Name: "HealthCheck",
   687  		Type: &dsl.Model{
   688  			Name: "LoadBalancerServerHealthCheck",
   689  			Fields: []*dsl.FieldDesc{
   690  				{
   691  					Name: "Protocol",
   692  					Type: meta.Static(types.ELoadBalancerHealthCheckProtocol("")),
   693  				},
   694  				{
   695  					Name: "Path",
   696  					Type: meta.TypeString,
   697  				},
   698  				{
   699  					Name: "ResponseCode",
   700  					Type: meta.TypeStringNumber,
   701  					Tags: &dsl.FieldTags{
   702  						MapConv: "Status",
   703  					},
   704  				},
   705  				{Name: "Retry", Type: meta.TypeStringNumber},
   706  				{Name: "ConnectTimeout", Type: meta.TypeStringNumber},
   707  			},
   708  		},
   709  		Tags: &dsl.FieldTags{
   710  			MapConv: "HealthCheck,recursive",
   711  		},
   712  	}
   713  }
   714  
   715  func (f *fieldsDef) LoadBalancerVIPServers() *dsl.FieldDesc {
   716  	return &dsl.FieldDesc{
   717  		Name: "Servers",
   718  		Type: &dsl.Model{
   719  			Name:  "LoadBalancerServer",
   720  			Alias: "LoadBalancerServers",
   721  			Fields: []*dsl.FieldDesc{
   722  				f.LoadBalancerServerIPAddress(),
   723  				f.LoadBalancerServerPort(),
   724  				f.LoadBalancerServerEnabled(),
   725  				f.LoadBalancerServerHealthCheck(),
   726  			},
   727  		},
   728  		Tags: &dsl.FieldTags{
   729  			MapConv: "[]Servers,recursive",
   730  		},
   731  	}
   732  }
   733  
   734  func (f *fieldsDef) LoadBalancerVIPVirtualIPAddress() *dsl.FieldDesc {
   735  	return &dsl.FieldDesc{
   736  		Name: "VirtualIPAddress",
   737  		Type: meta.TypeString,
   738  	}
   739  }
   740  
   741  func (f *fieldsDef) LoadBalancerVIP() *dsl.FieldDesc {
   742  	return &dsl.FieldDesc{
   743  		Name: "VirtualIPAddresses",
   744  		Type: &dsl.Model{
   745  			Name:  "LoadBalancerVirtualIPAddress",
   746  			Alias: "LoadBalancerVirtualIPAddresses",
   747  			Fields: []*dsl.FieldDesc{
   748  				f.LoadBalancerVIPVirtualIPAddress(),
   749  				f.LoadBalancerVIPPort(),
   750  				f.LoadBalancerVIPDelayLoop(),
   751  				f.LoadBalancerVIPSorryServer(),
   752  				f.Description(),
   753  				f.LoadBalancerVIPServers(),
   754  			},
   755  		},
   756  		Tags: &dsl.FieldTags{
   757  			MapConv: "Settings.[]LoadBalancer,recursive",
   758  		},
   759  	}
   760  }
   761  
   762  func (f *fieldsDef) Tags() *dsl.FieldDesc {
   763  	return &dsl.FieldDesc{
   764  		Name: "Tags",
   765  		Type: meta.Static(types.Tags{}),
   766  		Methods: []*dsl.MethodDesc{
   767  			{
   768  				Name:        "HasTag",
   769  				Description: "指定のタグが存在する場合trueを返す",
   770  				Arguments: dsl.Arguments{
   771  					{
   772  						Name: "tag",
   773  						Type: meta.TypeString,
   774  					},
   775  				},
   776  				ResultTypes: []meta.Type{meta.TypeFlag},
   777  			},
   778  			{
   779  				Name:        "AppendTag",
   780  				Description: "指定のタグを追加",
   781  				Arguments: dsl.Arguments{
   782  					{
   783  						Name: "tag",
   784  						Type: meta.TypeString,
   785  					},
   786  				},
   787  			},
   788  			{
   789  				Name:        "RemoveTag",
   790  				Description: "指定のタグを削除",
   791  				Arguments: dsl.Arguments{
   792  					{
   793  						Name: "tag",
   794  						Type: meta.TypeString,
   795  					},
   796  				},
   797  			},
   798  			{
   799  				Name:        "ClearTags",
   800  				Description: "タグを全クリア",
   801  			},
   802  		},
   803  	}
   804  }
   805  
   806  func (f *fieldsDef) Class() *dsl.FieldDesc {
   807  	return &dsl.FieldDesc{
   808  		Name: "Class",
   809  		Type: meta.TypeString,
   810  	}
   811  }
   812  
   813  func (f *fieldsDef) SIMICCID() *dsl.FieldDesc {
   814  	return &dsl.FieldDesc{
   815  		Name: "ICCID",
   816  		Type: meta.TypeString,
   817  		Tags: &dsl.FieldTags{
   818  			MapConv: "Status.ICCID",
   819  		},
   820  	}
   821  }
   822  
   823  func (f *fieldsDef) SIMPassCode() *dsl.FieldDesc {
   824  	return &dsl.FieldDesc{
   825  		Name: "PassCode",
   826  		Type: meta.TypeString,
   827  		Tags: &dsl.FieldTags{
   828  			MapConv: "Remark.PassCode",
   829  		},
   830  	}
   831  }
   832  
   833  func (f *fieldsDef) GSLBFQDN() *dsl.FieldDesc {
   834  	return &dsl.FieldDesc{
   835  		Name: "FQDN",
   836  		Type: meta.TypeString,
   837  		Tags: &dsl.FieldTags{
   838  			MapConv: "Status.FQDN",
   839  		},
   840  	}
   841  }
   842  
   843  func (f *fieldsDef) GSLBHealthCheck() *dsl.FieldDesc {
   844  	return &dsl.FieldDesc{
   845  		Name: "HealthCheck",
   846  		Type: &dsl.Model{
   847  			Name:      "GSLBHealthCheck",
   848  			NakedType: meta.Static(naked.GSLBHealthCheck{}),
   849  			Fields: []*dsl.FieldDesc{
   850  				{
   851  					Name: "Protocol",
   852  					Type: meta.Static(types.EGSLBHealthCheckProtocol("")),
   853  				},
   854  				{
   855  					Name: "HostHeader",
   856  					Type: meta.TypeString,
   857  					Tags: &dsl.FieldTags{
   858  						MapConv: "Host",
   859  					},
   860  				},
   861  				{
   862  					Name: "Path",
   863  					Type: meta.TypeString,
   864  					Tags: &dsl.FieldTags{
   865  						MapConv: "Path",
   866  					},
   867  				},
   868  				{
   869  					Name: "ResponseCode",
   870  					Type: meta.TypeStringNumber,
   871  					Tags: &dsl.FieldTags{
   872  						MapConv: "Status",
   873  					},
   874  				},
   875  				{
   876  					Name: "Port",
   877  					Type: meta.TypeStringNumber,
   878  					Tags: &dsl.FieldTags{
   879  						MapConv: "Port",
   880  					},
   881  				},
   882  			},
   883  		},
   884  		Tags: &dsl.FieldTags{
   885  			MapConv: "Settings.GSLB.HealthCheck,recursive",
   886  		},
   887  	}
   888  }
   889  
   890  func (f *fieldsDef) GSLBDelayLoop() *dsl.FieldDesc {
   891  	return &dsl.FieldDesc{
   892  		Name: "DelayLoop",
   893  		Type: meta.TypeInt,
   894  		Tags: &dsl.FieldTags{
   895  			MapConv: "Settings.GSLB.DelayLoop",
   896  		},
   897  		DefaultValue: "10",
   898  	}
   899  }
   900  
   901  func (f *fieldsDef) GSLBWeighted() *dsl.FieldDesc {
   902  	return &dsl.FieldDesc{
   903  		Name: "Weighted",
   904  		Type: meta.TypeStringFlag,
   905  		Tags: &dsl.FieldTags{
   906  			MapConv: "Settings.GSLB.Weighted",
   907  		},
   908  	}
   909  }
   910  
   911  func (f *fieldsDef) GSLBDestinationServers() *dsl.FieldDesc {
   912  	return &dsl.FieldDesc{
   913  		Name: "DestinationServers",
   914  		Type: &dsl.Model{
   915  			Name:  "GSLBServer",
   916  			Alias: "GSLBServers",
   917  			Fields: []*dsl.FieldDesc{
   918  				{
   919  					Name: "IPAddress",
   920  					Type: meta.TypeString,
   921  				},
   922  				{
   923  					Name: "Enabled",
   924  					Type: meta.TypeStringFlag,
   925  				},
   926  				{
   927  					Name: "Weight",
   928  					Type: meta.TypeStringNumber,
   929  				},
   930  			},
   931  		},
   932  		Tags: &dsl.FieldTags{
   933  			MapConv: "Settings.GSLB.[]Servers,recursive",
   934  		},
   935  	}
   936  }
   937  
   938  func (f *fieldsDef) GSLBSorryServer() *dsl.FieldDesc {
   939  	return &dsl.FieldDesc{
   940  		Name: "SorryServer",
   941  		Type: meta.TypeString,
   942  		Tags: &dsl.FieldTags{
   943  			MapConv: "Settings.GSLB.SorryServer",
   944  		},
   945  	}
   946  }
   947  
   948  func (f *fieldsDef) AutoBackupBackupSpanWeekDays() *dsl.FieldDesc {
   949  	return &dsl.FieldDesc{
   950  		Name: "BackupSpanWeekdays",
   951  		Type: meta.TypeBackupSpanWeekdays,
   952  		Tags: &dsl.FieldTags{
   953  			MapConv: "Settings.Autobackup.BackupSpanWeekdays",
   954  		},
   955  	}
   956  }
   957  
   958  func (f *fieldsDef) AutoBackupMaximumNumberOfArchives() *dsl.FieldDesc {
   959  	return &dsl.FieldDesc{
   960  		Name: "MaximumNumberOfArchives",
   961  		Type: meta.TypeInt,
   962  		Tags: &dsl.FieldTags{
   963  			MapConv: "Settings.Autobackup.MaximumNumberOfArchives",
   964  		},
   965  	}
   966  }
   967  
   968  func (f *fieldsDef) AutoBackupDiskID() *dsl.FieldDesc {
   969  	return &dsl.FieldDesc{
   970  		Name: "DiskID",
   971  		Type: meta.TypeID,
   972  		Tags: &dsl.FieldTags{
   973  			MapConv: "Status.DiskID",
   974  		},
   975  	}
   976  }
   977  
   978  func (f *fieldsDef) AutoBackupAccountID() *dsl.FieldDesc {
   979  	return &dsl.FieldDesc{
   980  		Name: "AccountID",
   981  		Type: meta.TypeID,
   982  		Tags: &dsl.FieldTags{
   983  			MapConv: "Status.AccountID",
   984  		},
   985  	}
   986  }
   987  
   988  func (f *fieldsDef) AutoBackupZoneID() *dsl.FieldDesc {
   989  	return &dsl.FieldDesc{
   990  		Name: "ZoneID",
   991  		Type: meta.TypeID,
   992  		Tags: &dsl.FieldTags{
   993  			MapConv: "Status.ZoneID",
   994  		},
   995  	}
   996  }
   997  
   998  func (f *fieldsDef) AutoBackupZoneName() *dsl.FieldDesc {
   999  	return &dsl.FieldDesc{
  1000  		Name: "ZoneName",
  1001  		Type: meta.TypeString,
  1002  		Tags: &dsl.FieldTags{
  1003  			MapConv: "Status.ZoneName",
  1004  		},
  1005  	}
  1006  }
  1007  
  1008  func (f *fieldsDef) DNSRecords() *dsl.FieldDesc {
  1009  	return &dsl.FieldDesc{
  1010  		Name: "Records",
  1011  		Type: &dsl.Model{
  1012  			Name:  "DNSRecord",
  1013  			Alias: "DNSRecords",
  1014  			Fields: []*dsl.FieldDesc{
  1015  				{
  1016  					Name: "Name",
  1017  					Type: meta.TypeString,
  1018  				},
  1019  				{
  1020  					Name: "Type",
  1021  					Type: meta.TypeDNSRecordType,
  1022  				},
  1023  				{
  1024  					Name: "RData",
  1025  					Type: meta.TypeString,
  1026  				},
  1027  				{
  1028  					Name: "TTL",
  1029  					Type: meta.TypeInt,
  1030  				},
  1031  			},
  1032  		},
  1033  		Tags: &dsl.FieldTags{
  1034  			MapConv: "Settings.DNS.[]ResourceRecordSets,recursive",
  1035  		},
  1036  	}
  1037  }
  1038  
  1039  func (f *fieldsDef) DNSZone() *dsl.FieldDesc {
  1040  	return &dsl.FieldDesc{
  1041  		Name: "DNSZone",
  1042  		Type: meta.TypeString,
  1043  		Tags: &dsl.FieldTags{
  1044  			MapConv: "Status.Zone",
  1045  		},
  1046  	}
  1047  }
  1048  
  1049  func (f *fieldsDef) DNSNameServers() *dsl.FieldDesc {
  1050  	return &dsl.FieldDesc{
  1051  		Name: "DNSNameServers",
  1052  		Type: meta.TypeStringSlice,
  1053  		Tags: &dsl.FieldTags{
  1054  			MapConv: "Status.NS",
  1055  		},
  1056  	}
  1057  }
  1058  
  1059  func (f *fieldsDef) CAStatusCountry() *dsl.FieldDesc {
  1060  	return &dsl.FieldDesc{
  1061  		Name: "Country",
  1062  		Type: meta.TypeString,
  1063  		Tags: &dsl.FieldTags{
  1064  			MapConv: "Status.Country",
  1065  		},
  1066  	}
  1067  }
  1068  
  1069  func (f *fieldsDef) CAStatusOrganization() *dsl.FieldDesc {
  1070  	return &dsl.FieldDesc{
  1071  		Name: "Organization",
  1072  		Type: meta.TypeString,
  1073  		Tags: &dsl.FieldTags{
  1074  			MapConv: "Status.Organization",
  1075  		},
  1076  	}
  1077  }
  1078  
  1079  func (f *fieldsDef) CAStatusOrganizationUnit() *dsl.FieldDesc {
  1080  	return &dsl.FieldDesc{
  1081  		Name: "OrganizationUnit",
  1082  		Type: meta.TypeStringSlice,
  1083  		Tags: &dsl.FieldTags{
  1084  			MapConv: "Status.OrganizationUnit",
  1085  		},
  1086  	}
  1087  }
  1088  
  1089  func (f *fieldsDef) CAStatusCommonName() *dsl.FieldDesc {
  1090  	return &dsl.FieldDesc{
  1091  		Name: "CommonName",
  1092  		Type: meta.TypeString,
  1093  		Tags: &dsl.FieldTags{
  1094  			MapConv: "Status.CommonName",
  1095  		},
  1096  	}
  1097  }
  1098  func (f *fieldsDef) CAStatusNotAfter() *dsl.FieldDesc {
  1099  	return &dsl.FieldDesc{
  1100  		Name: "NotAfter",
  1101  		Type: meta.TypeTime,
  1102  		Tags: &dsl.FieldTags{
  1103  			MapConv: "Status.NotAfter",
  1104  		},
  1105  	}
  1106  }
  1107  
  1108  func (f *fieldsDef) CAStatusSubject() *dsl.FieldDesc {
  1109  	return &dsl.FieldDesc{
  1110  		Name: "Subject",
  1111  		Type: meta.TypeString,
  1112  		Tags: &dsl.FieldTags{
  1113  			MapConv: "Status.Subject",
  1114  		},
  1115  	}
  1116  }
  1117  
  1118  func (f *fieldsDef) SimpleMonitorTarget() *dsl.FieldDesc {
  1119  	return &dsl.FieldDesc{
  1120  		Name: "Target",
  1121  		Type: meta.TypeString,
  1122  		Tags: &dsl.FieldTags{
  1123  			MapConv: "Status.Target",
  1124  		},
  1125  	}
  1126  }
  1127  
  1128  func (f *fieldsDef) SimpleMonitorMaxCheckAttempts() *dsl.FieldDesc {
  1129  	return &dsl.FieldDesc{
  1130  		Name: "MaxCheckAttempts",
  1131  		Type: meta.TypeInt,
  1132  		Tags: &dsl.FieldTags{
  1133  			MapConv: "Settings.SimpleMonitor.MaxCheckAttempts",
  1134  		},
  1135  		DefaultValue: "3",
  1136  	}
  1137  }
  1138  
  1139  func (f *fieldsDef) SimpleMonitorRetryInterval() *dsl.FieldDesc {
  1140  	return &dsl.FieldDesc{
  1141  		Name: "RetryInterval",
  1142  		Type: meta.TypeInt,
  1143  		Tags: &dsl.FieldTags{
  1144  			MapConv: "Settings.SimpleMonitor.RetryInterval",
  1145  		},
  1146  		DefaultValue: "10",
  1147  	}
  1148  }
  1149  
  1150  func (f *fieldsDef) SimpleMonitorDelayLoop() *dsl.FieldDesc {
  1151  	return &dsl.FieldDesc{
  1152  		Name: "DelayLoop",
  1153  		Type: meta.TypeInt,
  1154  		Tags: &dsl.FieldTags{
  1155  			MapConv: "Settings.SimpleMonitor.DelayLoop",
  1156  		},
  1157  		DefaultValue: "60",
  1158  	}
  1159  }
  1160  
  1161  func (f *fieldsDef) SimpleMonitorNotifyInterval() *dsl.FieldDesc {
  1162  	return &dsl.FieldDesc{
  1163  		Name: "NotifyInterval",
  1164  		Type: meta.TypeInt,
  1165  		Tags: &dsl.FieldTags{
  1166  			MapConv: "Settings.SimpleMonitor.NotifyInterval",
  1167  		},
  1168  		DefaultValue: "7200",
  1169  	}
  1170  }
  1171  
  1172  func (f *fieldsDef) SimpleMonitorTimeout() *dsl.FieldDesc {
  1173  	return &dsl.FieldDesc{
  1174  		Name: "Timeout",
  1175  		Type: meta.TypeInt,
  1176  		Tags: &dsl.FieldTags{
  1177  			MapConv: "Settings.SimpleMonitor.Timeout",
  1178  		},
  1179  	}
  1180  }
  1181  
  1182  func (f *fieldsDef) SimpleMonitorEnabled() *dsl.FieldDesc {
  1183  	return &dsl.FieldDesc{
  1184  		Name: "Enabled",
  1185  		Type: meta.TypeStringFlag,
  1186  		Tags: &dsl.FieldTags{
  1187  			MapConv: "Settings.SimpleMonitor.Enabled",
  1188  		},
  1189  	}
  1190  }
  1191  
  1192  func (f *fieldsDef) SimpleMonitorNotifyEmailEnabled() *dsl.FieldDesc {
  1193  	return &dsl.FieldDesc{
  1194  		Name: "NotifyEmailEnabled",
  1195  		Type: meta.TypeStringFlag,
  1196  		Tags: &dsl.FieldTags{
  1197  			MapConv: "Settings.SimpleMonitor.NotifyEmail.Enabled",
  1198  		},
  1199  	}
  1200  }
  1201  
  1202  func (f *fieldsDef) SimpleMonitorNotifyEmailHTML() *dsl.FieldDesc {
  1203  	return &dsl.FieldDesc{
  1204  		Name: "NotifyEmailHTML",
  1205  		Type: meta.TypeStringFlag,
  1206  		Tags: &dsl.FieldTags{
  1207  			MapConv: "Settings.SimpleMonitor.NotifyEmail.HTML",
  1208  		},
  1209  	}
  1210  }
  1211  
  1212  func (f *fieldsDef) SimpleMonitorNotifySlackEnabled() *dsl.FieldDesc {
  1213  	return &dsl.FieldDesc{
  1214  		Name: "NotifySlackEnabled",
  1215  		Type: meta.TypeStringFlag,
  1216  		Tags: &dsl.FieldTags{
  1217  			MapConv: "Settings.SimpleMonitor.NotifySlack.Enabled",
  1218  		},
  1219  	}
  1220  }
  1221  
  1222  func (f *fieldsDef) SimpleMonitorSlackWebhooksURL() *dsl.FieldDesc {
  1223  	return &dsl.FieldDesc{
  1224  		Name: "SlackWebhooksURL",
  1225  		Type: meta.TypeString,
  1226  		Tags: &dsl.FieldTags{
  1227  			MapConv: "Settings.SimpleMonitor.NotifySlack.IncomingWebhooksURL",
  1228  		},
  1229  	}
  1230  }
  1231  
  1232  func (f *fieldsDef) SimpleMonitorHealthCheck() *dsl.FieldDesc {
  1233  	return &dsl.FieldDesc{
  1234  		Name: "HealthCheck",
  1235  		Type: &dsl.Model{
  1236  			Name: "SimpleMonitorHealthCheck",
  1237  			Fields: []*dsl.FieldDesc{
  1238  				{
  1239  					Name: "Protocol",
  1240  					Type: meta.TypeSimpleMonitorHealthCheckProtocol,
  1241  				},
  1242  				{
  1243  					Name: "Port",
  1244  					Type: meta.TypeStringNumber,
  1245  				},
  1246  				{
  1247  					Name: "Path",
  1248  					Type: meta.TypeString,
  1249  				},
  1250  				{
  1251  					Name: "Status",
  1252  					Type: meta.TypeStringNumber,
  1253  				},
  1254  				{
  1255  					Name: "SNI",
  1256  					Type: meta.TypeStringFlag,
  1257  				},
  1258  				{
  1259  					Name: "Host",
  1260  					Type: meta.TypeString,
  1261  				},
  1262  				{
  1263  					Name: "BasicAuthUsername",
  1264  					Type: meta.TypeString,
  1265  				},
  1266  				{
  1267  					Name: "BasicAuthPassword",
  1268  					Type: meta.TypeString,
  1269  				},
  1270  				{
  1271  					Name: "ContainsString",
  1272  					Type: meta.TypeString,
  1273  				},
  1274  				{
  1275  					Name: "QName",
  1276  					Type: meta.TypeString,
  1277  				},
  1278  				{
  1279  					Name: "ExpectedData",
  1280  					Type: meta.TypeString,
  1281  				},
  1282  				{
  1283  					Name: "Community",
  1284  					Type: meta.TypeString,
  1285  				},
  1286  				{
  1287  					Name: "SNMPVersion",
  1288  					Type: meta.TypeString,
  1289  				},
  1290  				{
  1291  					Name: "OID",
  1292  					Type: meta.TypeString,
  1293  				},
  1294  				{
  1295  					Name: "RemainingDays",
  1296  					Type: meta.TypeInt,
  1297  				},
  1298  				{
  1299  					Name: "HTTP2",
  1300  					Type: meta.TypeStringFlag,
  1301  				},
  1302  				{
  1303  					Name: "FTPS",
  1304  					Type: meta.Static(types.ESimpleMonitorFTPS("")),
  1305  				},
  1306  				{
  1307  					Name: "VerifySNI",
  1308  					Type: meta.TypeStringFlag,
  1309  				},
  1310  			},
  1311  		},
  1312  		Tags: &dsl.FieldTags{
  1313  			MapConv: "Settings.SimpleMonitor.HealthCheck,recursive",
  1314  		},
  1315  	}
  1316  }
  1317  
  1318  func (f *fieldsDef) ProxyLBPlan() *dsl.FieldDesc {
  1319  	return &dsl.FieldDesc{
  1320  		Name: "Plan",
  1321  		Type: meta.Static(types.EProxyLBPlan(0)),
  1322  	}
  1323  }
  1324  
  1325  func (f *fieldsDef) ProxyLBUseVIPFailover() *dsl.FieldDesc {
  1326  	return &dsl.FieldDesc{
  1327  		Name: "UseVIPFailover",
  1328  		Type: meta.TypeFlag,
  1329  		Tags: &dsl.FieldTags{
  1330  			MapConv: "Status.UseVIPFailover",
  1331  		},
  1332  	}
  1333  }
  1334  
  1335  func (f *fieldsDef) ProxyLBRegion() *dsl.FieldDesc {
  1336  	return &dsl.FieldDesc{
  1337  		Name: "Region",
  1338  		Type: meta.Static(types.EProxyLBRegion("")),
  1339  		Tags: &dsl.FieldTags{
  1340  			MapConv: "Status.Region",
  1341  		},
  1342  	}
  1343  }
  1344  
  1345  func (f *fieldsDef) ProxyLBProxyNetworks() *dsl.FieldDesc {
  1346  	return &dsl.FieldDesc{
  1347  		Name: "ProxyNetworks",
  1348  		Type: meta.TypeStringSlice,
  1349  		Tags: &dsl.FieldTags{
  1350  			MapConv: "Status.ProxyNetworks",
  1351  		},
  1352  	}
  1353  }
  1354  
  1355  func (f *fieldsDef) ProxyLBFQDN() *dsl.FieldDesc {
  1356  	return &dsl.FieldDesc{
  1357  		Name: "FQDN",
  1358  		Type: meta.TypeString,
  1359  		Tags: &dsl.FieldTags{
  1360  			MapConv: "Status.FQDN",
  1361  		},
  1362  	}
  1363  }
  1364  
  1365  func (f *fieldsDef) ProxyLBVIP() *dsl.FieldDesc {
  1366  	return &dsl.FieldDesc{
  1367  		Name: "VirtualIPAddress",
  1368  		Type: meta.TypeString,
  1369  		Tags: &dsl.FieldTags{
  1370  			MapConv: "Status.VirtualIPAddress",
  1371  		},
  1372  	}
  1373  }
  1374  
  1375  func (f *fieldsDef) ProxyLBHealthCheck() *dsl.FieldDesc {
  1376  	return &dsl.FieldDesc{
  1377  		Name: "HealthCheck",
  1378  		Type: &dsl.Model{
  1379  			Name: "ProxyLBHealthCheck",
  1380  			Fields: []*dsl.FieldDesc{
  1381  				{
  1382  					Name: "Protocol",
  1383  					Type: meta.Static(types.EProxyLBHealthCheckProtocol("")),
  1384  				},
  1385  				{
  1386  					Name: "Path",
  1387  					Type: meta.TypeString,
  1388  				},
  1389  				{
  1390  					Name: "Host",
  1391  					Type: meta.TypeString,
  1392  				},
  1393  				{
  1394  					Name: "DelayLoop",
  1395  					Type: meta.TypeInt,
  1396  				},
  1397  			},
  1398  		},
  1399  		Tags: &dsl.FieldTags{
  1400  			MapConv: "Settings.ProxyLB.HealthCheck,recursive",
  1401  		},
  1402  	}
  1403  }
  1404  
  1405  func (f *fieldsDef) ProxyLBSorryServer() *dsl.FieldDesc {
  1406  	return &dsl.FieldDesc{
  1407  		Name: "SorryServer",
  1408  		Type: &dsl.Model{
  1409  			Name: "ProxyLBSorryServer",
  1410  			Fields: []*dsl.FieldDesc{
  1411  				{
  1412  					Name: "IPAddress",
  1413  					Type: meta.TypeString,
  1414  				},
  1415  				{
  1416  					Name: "Port",
  1417  					Type: meta.TypeInt,
  1418  					Tags: &dsl.FieldTags{
  1419  						MapConv: ",omitempty",
  1420  					},
  1421  				},
  1422  			},
  1423  		},
  1424  		Tags: &dsl.FieldTags{
  1425  			MapConv: "Settings.ProxyLB.SorryServer,recursive",
  1426  		},
  1427  	}
  1428  }
  1429  
  1430  func (f *fieldsDef) ProxyLBBindPorts() *dsl.FieldDesc {
  1431  	return &dsl.FieldDesc{
  1432  		Name: "BindPorts",
  1433  		Type: &dsl.Model{
  1434  			Name:    "ProxyLBBindPort",
  1435  			IsArray: true,
  1436  			Fields: []*dsl.FieldDesc{
  1437  				{
  1438  					Name: "ProxyMode",
  1439  					Type: meta.Static(types.EProxyLBProxyMode("")),
  1440  				},
  1441  				{
  1442  					Name: "Port",
  1443  					Type: meta.TypeInt,
  1444  				},
  1445  				{
  1446  					Name: "RedirectToHTTPS",
  1447  					Type: meta.TypeFlag,
  1448  				},
  1449  				{
  1450  					Name: "SupportHTTP2",
  1451  					Type: meta.TypeFlag,
  1452  				},
  1453  				{
  1454  					Name: "AddResponseHeader",
  1455  					Type: &dsl.Model{
  1456  						Name:    "ProxyLBResponseHeader",
  1457  						IsArray: true,
  1458  						Fields: []*dsl.FieldDesc{
  1459  							fields.Def("Header", meta.TypeString),
  1460  							fields.Def("Value", meta.TypeString),
  1461  						},
  1462  					},
  1463  					Tags: &dsl.FieldTags{
  1464  						MapConv: "[]AddResponseHeader,recursive",
  1465  					},
  1466  				},
  1467  				{
  1468  					Name: "SSLPolicy",
  1469  					Type: meta.TypeString,
  1470  				},
  1471  			},
  1472  		},
  1473  		Tags: &dsl.FieldTags{
  1474  			MapConv: "Settings.ProxyLB.[]BindPorts,recursive",
  1475  		},
  1476  	}
  1477  }
  1478  
  1479  func (f *fieldsDef) ProxyLBServers() *dsl.FieldDesc {
  1480  	return &dsl.FieldDesc{
  1481  		Name: "Servers",
  1482  		Type: &dsl.Model{
  1483  			Name:    "ProxyLBServer",
  1484  			IsArray: true,
  1485  			Fields: []*dsl.FieldDesc{
  1486  				{
  1487  					Name: "IPAddress",
  1488  					Type: meta.TypeString,
  1489  				},
  1490  				{
  1491  					Name: "Port",
  1492  					Type: meta.TypeInt,
  1493  				},
  1494  				{
  1495  					Name: "ServerGroup",
  1496  					Type: meta.TypeString,
  1497  				},
  1498  				{
  1499  					Name: "Enabled",
  1500  					Type: meta.TypeFlag,
  1501  				},
  1502  			},
  1503  		},
  1504  		Tags: &dsl.FieldTags{
  1505  			MapConv: "Settings.ProxyLB.[]Servers,recursive",
  1506  		},
  1507  	}
  1508  }
  1509  
  1510  func (f *fieldsDef) ProxyLBRules() *dsl.FieldDesc {
  1511  	return &dsl.FieldDesc{
  1512  		Name: "Rules",
  1513  		Type: &dsl.Model{
  1514  			Name:    "ProxyLBRule",
  1515  			IsArray: true,
  1516  			Fields: []*dsl.FieldDesc{
  1517  				{
  1518  					Name: "Host",
  1519  					Type: meta.TypeString,
  1520  				},
  1521  				{
  1522  					Name: "Path",
  1523  					Type: meta.TypeString,
  1524  				},
  1525  				{
  1526  					Name: "RequestHeaderName",
  1527  					Type: meta.TypeString,
  1528  				},
  1529  				{
  1530  					Name: "RequestHeaderValue",
  1531  					Type: meta.TypeString,
  1532  				},
  1533  				{
  1534  					Name: "RequestHeaderValueIgnoreCase",
  1535  					Type: meta.TypeFlag,
  1536  				},
  1537  				{
  1538  					Name: "RequestHeaderValueNotMatch",
  1539  					Type: meta.TypeFlag,
  1540  				},
  1541  				{
  1542  					Name: "ServerGroup",
  1543  					Type: meta.TypeString,
  1544  					Tags: &dsl.FieldTags{
  1545  						MapConv: ",omitempty",
  1546  						JSON:    ",omitempty",
  1547  					},
  1548  				},
  1549  				{
  1550  					Name: "Action",
  1551  					Type: meta.Static(types.EProxyLBRuleAction("")),
  1552  					Tags: &dsl.FieldTags{
  1553  						MapConv: ",omitempty",
  1554  						JSON:    ",omitempty",
  1555  					},
  1556  				},
  1557  				{
  1558  					Name: "RedirectLocation",
  1559  					Type: meta.TypeString,
  1560  					Tags: &dsl.FieldTags{
  1561  						MapConv: ",omitempty",
  1562  						JSON:    ",omitempty",
  1563  					},
  1564  				},
  1565  				{
  1566  					Name: "RedirectStatusCode",
  1567  					Type: meta.Static(types.EProxyLBRedirectStatusCode(0)),
  1568  					Tags: &dsl.FieldTags{
  1569  						MapConv: ",omitempty",
  1570  						JSON:    ",omitempty",
  1571  					},
  1572  				},
  1573  				{
  1574  					Name: "FixedStatusCode",
  1575  					Type: meta.Static(types.EProxyLBFixedStatusCode(0)),
  1576  					Tags: &dsl.FieldTags{
  1577  						MapConv: ",omitempty",
  1578  						JSON:    ",omitempty",
  1579  					},
  1580  				},
  1581  				{
  1582  					Name: "FixedContentType",
  1583  					Type: meta.Static(types.EProxyLBFixedContentType("")),
  1584  					Tags: &dsl.FieldTags{
  1585  						MapConv: ",omitempty",
  1586  						JSON:    ",omitempty",
  1587  					},
  1588  				},
  1589  				{
  1590  					Name: "FixedMessageBody",
  1591  					Type: meta.TypeString,
  1592  					Tags: &dsl.FieldTags{
  1593  						MapConv: ",omitempty",
  1594  						JSON:    ",omitempty",
  1595  					},
  1596  				},
  1597  			},
  1598  		},
  1599  		Tags: &dsl.FieldTags{
  1600  			MapConv: "Settings.ProxyLB.[]Rules,recursive",
  1601  		},
  1602  	}
  1603  }
  1604  
  1605  func (f *fieldsDef) ProxyLBLetsEncrypt() *dsl.FieldDesc {
  1606  	return &dsl.FieldDesc{
  1607  		Name: "LetsEncrypt",
  1608  		Type: &dsl.Model{
  1609  			Name: "ProxyLBACMESetting",
  1610  			Fields: []*dsl.FieldDesc{
  1611  				{
  1612  					Name: "CommonName",
  1613  					Type: meta.TypeString,
  1614  				},
  1615  				{
  1616  					Name: "Enabled",
  1617  					Type: meta.TypeFlag,
  1618  				},
  1619  				{
  1620  					Name: "SubjectAltNames",
  1621  					Type: meta.TypeStringSlice,
  1622  					Tags: &dsl.FieldTags{
  1623  						MapConv: ",omitempty",
  1624  						JSON:    ",omitempty",
  1625  					},
  1626  				},
  1627  			},
  1628  		},
  1629  		Tags: &dsl.FieldTags{
  1630  			MapConv: "Settings.ProxyLB.LetsEncrypt,recursive",
  1631  		},
  1632  	}
  1633  }
  1634  
  1635  func (f *fieldsDef) ProxyLBStickySession() *dsl.FieldDesc {
  1636  	return &dsl.FieldDesc{
  1637  		Name: "StickySession",
  1638  		Type: &dsl.Model{
  1639  			Name: "ProxyLBStickySession",
  1640  			Fields: []*dsl.FieldDesc{
  1641  				{
  1642  					Name: "Method",
  1643  					Type: meta.TypeString,
  1644  				},
  1645  				{
  1646  					Name: "Enabled",
  1647  					Type: meta.TypeFlag,
  1648  				},
  1649  			},
  1650  		},
  1651  		Tags: &dsl.FieldTags{
  1652  			MapConv: "Settings.ProxyLB.StickySession,recursive",
  1653  		},
  1654  	}
  1655  }
  1656  
  1657  func (f *fieldsDef) ProxyLBGzip() *dsl.FieldDesc {
  1658  	return &dsl.FieldDesc{
  1659  		Name: "Gzip",
  1660  		Type: &dsl.Model{
  1661  			Name: "ProxyLBGzip",
  1662  			Fields: []*dsl.FieldDesc{
  1663  				{
  1664  					Name: "Enabled",
  1665  					Type: meta.TypeFlag,
  1666  				},
  1667  			},
  1668  		},
  1669  		Tags: &dsl.FieldTags{
  1670  			MapConv: "Settings.ProxyLB.Gzip,recursive",
  1671  		},
  1672  	}
  1673  }
  1674  
  1675  func (f *fieldsDef) ProxyLBProxyProtocol() *dsl.FieldDesc {
  1676  	return &dsl.FieldDesc{
  1677  		Name: "ProxyProtocol",
  1678  		Type: &dsl.Model{
  1679  			Name: "ProxyLBProxyProtocol",
  1680  			Fields: []*dsl.FieldDesc{
  1681  				{
  1682  					Name: "Enabled",
  1683  					Type: meta.TypeFlag,
  1684  				},
  1685  			},
  1686  		},
  1687  		Tags: &dsl.FieldTags{
  1688  			MapConv: "Settings.ProxyLB.ProxyProtocol,recursive",
  1689  		},
  1690  	}
  1691  }
  1692  
  1693  func (f *fieldsDef) ProxyLBSyslog() *dsl.FieldDesc {
  1694  	return &dsl.FieldDesc{
  1695  		Name: "Syslog",
  1696  		Type: &dsl.Model{
  1697  			Name: "ProxyLBSyslog",
  1698  			Fields: []*dsl.FieldDesc{
  1699  				{
  1700  					Name: "Server",
  1701  					Type: meta.TypeString,
  1702  				},
  1703  				{
  1704  					Name:         "Port",
  1705  					Type:         meta.TypeInt,
  1706  					DefaultValue: `514`,
  1707  				},
  1708  			},
  1709  		},
  1710  		Tags: &dsl.FieldTags{
  1711  			MapConv: "Settings.ProxyLB.Syslog,recursive",
  1712  		},
  1713  	}
  1714  }
  1715  
  1716  func (f *fieldsDef) ProxyLBTimeout() *dsl.FieldDesc {
  1717  	return &dsl.FieldDesc{
  1718  		Name: "Timeout",
  1719  		Type: &dsl.Model{
  1720  			Name: "ProxyLBTimeout",
  1721  			Fields: []*dsl.FieldDesc{
  1722  				{
  1723  					Name:         "InactiveSec",
  1724  					Type:         meta.TypeInt,
  1725  					DefaultValue: `10`,
  1726  				},
  1727  			},
  1728  		},
  1729  		Tags: &dsl.FieldTags{
  1730  			MapConv: "Settings.ProxyLB.Timeout,recursive,omitempty",
  1731  			JSON:    ",omitempty",
  1732  		},
  1733  	}
  1734  }
  1735  
  1736  func (f *fieldsDef) LocalRouterSecretKeys() *dsl.FieldDesc {
  1737  	return &dsl.FieldDesc{
  1738  		Name: "SecretKeys",
  1739  		Type: meta.TypeStringSlice,
  1740  		Tags: &dsl.FieldTags{
  1741  			MapConv: "Status.SecretKeys",
  1742  		},
  1743  	}
  1744  }
  1745  
  1746  func (f *fieldsDef) LocalRouterSwitch() *dsl.FieldDesc {
  1747  	return &dsl.FieldDesc{
  1748  		Name: "Switch",
  1749  		Type: &dsl.Model{
  1750  			Name: "LocalRouterSwitch",
  1751  			Fields: []*dsl.FieldDesc{
  1752  				{
  1753  					Name: "Code",
  1754  					Type: meta.TypeString,
  1755  				},
  1756  				{
  1757  					Name: "Category",
  1758  					Type: meta.TypeString,
  1759  				},
  1760  				{
  1761  					Name: "ZoneID",
  1762  					Type: meta.TypeString,
  1763  				},
  1764  			},
  1765  		},
  1766  		Tags: &dsl.FieldTags{
  1767  			MapConv: "Settings.LocalRouter.Switch,recursive",
  1768  		},
  1769  	}
  1770  }
  1771  
  1772  func (f *fieldsDef) LocalRouterInterface() *dsl.FieldDesc {
  1773  	return &dsl.FieldDesc{
  1774  		Name: "Interface",
  1775  		Type: &dsl.Model{
  1776  			Name: "LocalRouterInterface",
  1777  			Fields: []*dsl.FieldDesc{
  1778  				{
  1779  					Name: "VirtualIPAddress",
  1780  					Type: meta.TypeString,
  1781  				},
  1782  				{
  1783  					Name: "IPAddress",
  1784  					Type: meta.TypeStringSlice,
  1785  				},
  1786  				{
  1787  					Name: "NetworkMaskLen",
  1788  					Type: meta.TypeInt,
  1789  				},
  1790  				{
  1791  					Name: "VRID",
  1792  					Type: meta.TypeInt,
  1793  				},
  1794  			},
  1795  		},
  1796  		Tags: &dsl.FieldTags{
  1797  			MapConv: "Settings.LocalRouter.Interface,recursive",
  1798  		},
  1799  	}
  1800  }
  1801  
  1802  func (f *fieldsDef) LocalRouterPeers() *dsl.FieldDesc {
  1803  	return &dsl.FieldDesc{
  1804  		Name: "Peers",
  1805  		Type: &dsl.Model{
  1806  			Name:    "LocalRouterPeer",
  1807  			IsArray: true,
  1808  			Fields: []*dsl.FieldDesc{
  1809  				{
  1810  					Name: "ID",
  1811  					Type: meta.TypeID,
  1812  				},
  1813  				{
  1814  					Name: "SecretKey",
  1815  					Type: meta.TypeString,
  1816  				},
  1817  				{
  1818  					Name: "Enabled",
  1819  					Type: meta.TypeFlag,
  1820  				},
  1821  				{
  1822  					Name: "Description",
  1823  					Type: meta.TypeString,
  1824  				},
  1825  			},
  1826  		},
  1827  		Tags: &dsl.FieldTags{
  1828  			MapConv: "Settings.LocalRouter.[]Peers,recursive",
  1829  		},
  1830  	}
  1831  }
  1832  
  1833  func (f *fieldsDef) LocalRouterStaticRoutes() *dsl.FieldDesc {
  1834  	return &dsl.FieldDesc{
  1835  		Name: "StaticRoutes",
  1836  		Type: &dsl.Model{
  1837  			Name:    "LocalRouterStaticRoute",
  1838  			IsArray: true,
  1839  			Fields: []*dsl.FieldDesc{
  1840  				{
  1841  					Name: "Prefix",
  1842  					Type: meta.TypeString,
  1843  				},
  1844  				{
  1845  					Name: "NextHop",
  1846  					Type: meta.TypeString,
  1847  				},
  1848  			},
  1849  		},
  1850  		Tags: &dsl.FieldTags{
  1851  			MapConv: "Settings.LocalRouter.[]StaticRoutes,recursive",
  1852  		},
  1853  	}
  1854  }
  1855  
  1856  func (f *fieldsDef) EnhancedDBMaxConnections() *dsl.FieldDesc {
  1857  	return &dsl.FieldDesc{
  1858  		Name: "MaxConnections",
  1859  		Type: meta.TypeInt,
  1860  		Tags: &dsl.FieldTags{
  1861  			MapConv: "Settings.EnhancedDB.MaxConnections",
  1862  		},
  1863  	}
  1864  }
  1865  
  1866  func (f *fieldsDef) EnhancedDBDatabaseName() *dsl.FieldDesc {
  1867  	return &dsl.FieldDesc{
  1868  		Name: "DatabaseName",
  1869  		Type: meta.TypeString,
  1870  		Tags: &dsl.FieldTags{
  1871  			MapConv: "Status.DatabaseName",
  1872  		},
  1873  	}
  1874  }
  1875  
  1876  func (f *fieldsDef) EnhancedDBDatabaseType() *dsl.FieldDesc {
  1877  	return &dsl.FieldDesc{
  1878  		Name: "DatabaseType",
  1879  		Type: meta.TypeString,
  1880  		Tags: &dsl.FieldTags{
  1881  			MapConv: "Status.DatabaseType",
  1882  		},
  1883  	}
  1884  }
  1885  
  1886  func (f *fieldsDef) EnhancedDBDatabaseRegion() *dsl.FieldDesc {
  1887  	return &dsl.FieldDesc{
  1888  		Name: "Region",
  1889  		Type: meta.TypeString,
  1890  		Tags: &dsl.FieldTags{
  1891  			MapConv: "Status.Region",
  1892  		},
  1893  	}
  1894  }
  1895  
  1896  func (f *fieldsDef) EnhancedDBDatabaseHostName() *dsl.FieldDesc {
  1897  	return &dsl.FieldDesc{
  1898  		Name: "HostName",
  1899  		Type: meta.TypeString,
  1900  		Tags: &dsl.FieldTags{
  1901  			MapConv: "Status.HostName",
  1902  		},
  1903  	}
  1904  }
  1905  
  1906  func (f *fieldsDef) EnhancedDBDatabasePort() *dsl.FieldDesc {
  1907  	return &dsl.FieldDesc{
  1908  		Name: "Port",
  1909  		Type: meta.TypeInt,
  1910  		Tags: &dsl.FieldTags{
  1911  			MapConv: "Status.Port",
  1912  		},
  1913  	}
  1914  }
  1915  
  1916  func (f *fieldsDef) ContainerRegistrySubDomainLabel() *dsl.FieldDesc {
  1917  	return &dsl.FieldDesc{
  1918  		Name: "SubDomainLabel",
  1919  		Type: meta.TypeString,
  1920  		Tags: &dsl.FieldTags{
  1921  			MapConv: "Status.RegistryName",
  1922  		},
  1923  	}
  1924  }
  1925  
  1926  func (f *fieldsDef) ContainerRegistryFQDN() *dsl.FieldDesc {
  1927  	return &dsl.FieldDesc{
  1928  		Name: "FQDN",
  1929  		Type: meta.TypeString,
  1930  		Tags: &dsl.FieldTags{
  1931  			MapConv: "Status.FQDN",
  1932  		},
  1933  	}
  1934  }
  1935  
  1936  func (f *fieldsDef) ContainerRegistryAccessLevel() *dsl.FieldDesc {
  1937  	return &dsl.FieldDesc{
  1938  		Name: "AccessLevel",
  1939  		Type: meta.Static(types.EContainerRegistryAccessLevel("")),
  1940  		Tags: &dsl.FieldTags{
  1941  			MapConv: "Settings.ContainerRegistry.Public",
  1942  		},
  1943  	}
  1944  }
  1945  
  1946  func (f *fieldsDef) ContainerRegistryVirtualDomain() *dsl.FieldDesc {
  1947  	return &dsl.FieldDesc{
  1948  		Name: "VirtualDomain",
  1949  		Type: meta.TypeString,
  1950  		Tags: &dsl.FieldTags{
  1951  			MapConv: "Settings.ContainerRegistry.VirtualDomain",
  1952  		},
  1953  	}
  1954  }
  1955  
  1956  func (f *fieldsDef) SettingsHash() *dsl.FieldDesc {
  1957  	return &dsl.FieldDesc{
  1958  		Name: "SettingsHash",
  1959  		Type: meta.TypeString,
  1960  		Tags: &dsl.FieldTags{
  1961  			MapConv: ",omitempty",
  1962  			JSON:    ",omitempty",
  1963  		},
  1964  	}
  1965  }
  1966  
  1967  func (f *fieldsDef) InstanceHostName() *dsl.FieldDesc {
  1968  	return &dsl.FieldDesc{
  1969  		Name: "InstanceHostName",
  1970  		Type: meta.TypeString,
  1971  		Tags: &dsl.FieldTags{
  1972  			MapConv: "Instance.Host.Name",
  1973  		},
  1974  	}
  1975  }
  1976  
  1977  func (f *fieldsDef) InstanceHostInfoURL() *dsl.FieldDesc {
  1978  	return &dsl.FieldDesc{
  1979  		Name: "InstanceHostInfoURL",
  1980  		Type: meta.TypeString,
  1981  		Tags: &dsl.FieldTags{
  1982  			MapConv: "Instance.Host.InfoURL",
  1983  		},
  1984  	}
  1985  }
  1986  
  1987  func (f *fieldsDef) InstanceStatus() *dsl.FieldDesc {
  1988  	return &dsl.FieldDesc{
  1989  		Name: "InstanceStatus",
  1990  		Type: meta.TypeInstanceStatus,
  1991  		Tags: &dsl.FieldTags{
  1992  			MapConv: "Instance.Status",
  1993  		},
  1994  	}
  1995  }
  1996  
  1997  func (f *fieldsDef) InstanceBeforeStatus() *dsl.FieldDesc {
  1998  	return &dsl.FieldDesc{
  1999  		Name: "InstanceBeforeStatus",
  2000  		Type: meta.TypeInstanceStatus,
  2001  		Tags: &dsl.FieldTags{
  2002  			MapConv: "Instance.BeforeStatus",
  2003  		},
  2004  	}
  2005  }
  2006  
  2007  func (f *fieldsDef) InstanceStatusChangedAt() *dsl.FieldDesc {
  2008  	return &dsl.FieldDesc{
  2009  		Name: "InstanceStatusChangedAt",
  2010  		Type: meta.TypeTime,
  2011  		Tags: &dsl.FieldTags{
  2012  			MapConv: "Instance.StatusChangedAt",
  2013  		},
  2014  	}
  2015  }
  2016  
  2017  func (f *fieldsDef) InstanceWarnings() *dsl.FieldDesc {
  2018  	return &dsl.FieldDesc{
  2019  		Name: "InstanceWarnings",
  2020  		Type: meta.TypeString,
  2021  		Tags: &dsl.FieldTags{
  2022  			MapConv: "Instance.Warnings",
  2023  		},
  2024  	}
  2025  }
  2026  
  2027  func (f *fieldsDef) InstanceWarningsValue() *dsl.FieldDesc {
  2028  	return &dsl.FieldDesc{
  2029  		Name: "InstanceWarningsValue",
  2030  		Type: meta.TypeInt,
  2031  		Tags: &dsl.FieldTags{
  2032  			MapConv: "Instance.WarningsValue",
  2033  		},
  2034  	}
  2035  }
  2036  
  2037  func (f *fieldsDef) SubnetID() *dsl.FieldDesc {
  2038  	return &dsl.FieldDesc{
  2039  		Name: "SubnetID",
  2040  		Type: meta.TypeID,
  2041  		Tags: &dsl.FieldTags{
  2042  			MapConv: "Subnet.ID,omitempty",
  2043  		},
  2044  	}
  2045  }
  2046  
  2047  func (f *fieldsDef) InterfaceID() *dsl.FieldDesc {
  2048  	return &dsl.FieldDesc{
  2049  		Name: "InterfaceID",
  2050  		Type: meta.TypeID,
  2051  		Tags: &dsl.FieldTags{
  2052  			MapConv: "Interface.ID,omitempty",
  2053  		},
  2054  	}
  2055  }
  2056  
  2057  func (f *fieldsDef) Interfaces() *dsl.FieldDesc {
  2058  	return &dsl.FieldDesc{
  2059  		Name: "Interfaces",
  2060  		Type: models.interfaceModel(),
  2061  		Tags: &dsl.FieldTags{
  2062  			JSON:    ",omitempty",
  2063  			MapConv: "[]Interfaces,recursive,omitempty",
  2064  		},
  2065  	}
  2066  }
  2067  
  2068  func (f *fieldsDef) VPCRouterInterfaces() *dsl.FieldDesc {
  2069  	return &dsl.FieldDesc{
  2070  		Name: "Interfaces",
  2071  		Type: models.vpcRouterInterfaceModel(),
  2072  		Tags: &dsl.FieldTags{
  2073  			JSON:    ",omitempty",
  2074  			MapConv: "[]Interfaces,recursive,omitempty",
  2075  		},
  2076  	}
  2077  }
  2078  
  2079  func (f *fieldsDef) MobileGatewayInterfaces() *dsl.FieldDesc {
  2080  	return &dsl.FieldDesc{
  2081  		Name: "Interfaces",
  2082  		Type: models.mobileGatewayInterfaceModel(),
  2083  		Tags: &dsl.FieldTags{
  2084  			JSON:    ",omitempty",
  2085  			MapConv: "[]Interfaces,recursive,omitempty",
  2086  		},
  2087  	}
  2088  }
  2089  
  2090  func (f *fieldsDef) NoteClass() *dsl.FieldDesc {
  2091  	return &dsl.FieldDesc{
  2092  		Name: "Class",
  2093  		Type: meta.TypeString,
  2094  	}
  2095  }
  2096  
  2097  func (f *fieldsDef) NoteContent() *dsl.FieldDesc {
  2098  	return &dsl.FieldDesc{
  2099  		Name: "Content",
  2100  		Type: meta.TypeString,
  2101  	}
  2102  }
  2103  
  2104  func (f *fieldsDef) Description() *dsl.FieldDesc {
  2105  	return &dsl.FieldDesc{
  2106  		Name: "Description",
  2107  		Type: meta.TypeString,
  2108  	}
  2109  }
  2110  
  2111  func (f *fieldsDef) Availability() *dsl.FieldDesc {
  2112  	return &dsl.FieldDesc{
  2113  		Name: "Availability",
  2114  		Type: meta.TypeAvailability,
  2115  	}
  2116  }
  2117  
  2118  func (f *fieldsDef) Scope() *dsl.FieldDesc {
  2119  	return &dsl.FieldDesc{
  2120  		Name: "Scope",
  2121  		Type: meta.TypeScope,
  2122  	}
  2123  }
  2124  
  2125  func (f *fieldsDef) BandWidthMbps() *dsl.FieldDesc {
  2126  	return &dsl.FieldDesc{
  2127  		Name: "BandWidthMbps",
  2128  		Type: meta.TypeInt,
  2129  	}
  2130  }
  2131  
  2132  func (f *fieldsDef) DiskConnection() *dsl.FieldDesc {
  2133  	return &dsl.FieldDesc{
  2134  		Name: "Connection",
  2135  		Type: meta.TypeDiskConnection,
  2136  		Tags: &dsl.FieldTags{
  2137  			JSON:    ",omitempty",
  2138  			MapConv: ",omitempty",
  2139  		},
  2140  	}
  2141  }
  2142  
  2143  func (f *fieldsDef) DiskConnectionOrder() *dsl.FieldDesc {
  2144  	return &dsl.FieldDesc{
  2145  		Name: "ConnectionOrder",
  2146  		Type: meta.TypeInt,
  2147  	}
  2148  }
  2149  
  2150  func (f *fieldsDef) DiskReinstallCount() *dsl.FieldDesc {
  2151  	return &dsl.FieldDesc{
  2152  		Name: "ReinstallCount",
  2153  		Type: meta.TypeInt,
  2154  	}
  2155  }
  2156  
  2157  func (f *fieldsDef) SizeMB() *dsl.FieldDesc {
  2158  	return &dsl.FieldDesc{
  2159  		Name: "SizeMB",
  2160  		Type: meta.TypeInt,
  2161  		Methods: []*dsl.MethodDesc{
  2162  			{
  2163  				Name:        "GetSizeGB",
  2164  				ResultTypes: []meta.Type{meta.TypeInt},
  2165  			},
  2166  			{
  2167  				Name: "SetSizeGB",
  2168  				Arguments: dsl.Arguments{
  2169  					{
  2170  						Name: "size",
  2171  						Type: meta.TypeInt,
  2172  					},
  2173  				},
  2174  			},
  2175  		},
  2176  	}
  2177  }
  2178  
  2179  func (f *fieldsDef) MigratedMB() *dsl.FieldDesc {
  2180  	return &dsl.FieldDesc{
  2181  		Name: "MigratedMB",
  2182  		Type: meta.TypeInt,
  2183  		Methods: []*dsl.MethodDesc{
  2184  			{
  2185  				Name:        "GetMigratedGB",
  2186  				ResultTypes: []meta.Type{meta.TypeInt},
  2187  			},
  2188  		},
  2189  	}
  2190  }
  2191  
  2192  func (f *fieldsDef) DefaultRoute() *dsl.FieldDesc {
  2193  	return &dsl.FieldDesc{
  2194  		Name: "DefaultRoute",
  2195  		Type: meta.TypeString,
  2196  	}
  2197  }
  2198  
  2199  func (f *fieldsDef) NextHop() *dsl.FieldDesc {
  2200  	return &dsl.FieldDesc{
  2201  		Name: "NextHop",
  2202  		Type: meta.TypeString,
  2203  		Description: `
  2204  			スイッチ+ルータでの追加IPアドレスブロックを示すSubnetの中でのみ設定される項目。
  2205  			この場合DefaultRouteの値は設定されないためNextHopを代用する。
  2206  			StaticRouteと同じ値が設定される。`,
  2207  	}
  2208  }
  2209  
  2210  func (f *fieldsDef) StaticRoute() *dsl.FieldDesc {
  2211  	return &dsl.FieldDesc{
  2212  		Name: "StaticRoute",
  2213  		Type: meta.TypeString,
  2214  		Description: `
  2215  			スイッチ+ルータでの追加IPアドレスブロックを示すSubnetの中でのみ設定される項目。
  2216  			この場合DefaultRouteの値は設定されないためNextHopを代用する。
  2217  			NextHopと同じ値が設定される。`,
  2218  	}
  2219  }
  2220  
  2221  func (f *fieldsDef) NetworkMaskLen() *dsl.FieldDesc {
  2222  	return &dsl.FieldDesc{
  2223  		Name: "NetworkMaskLen",
  2224  		Type: meta.TypeInt,
  2225  	}
  2226  }
  2227  
  2228  func (f *fieldsDef) NetworkAddress() *dsl.FieldDesc {
  2229  	return &dsl.FieldDesc{
  2230  		Name: "NetworkAddress",
  2231  		Type: meta.TypeString,
  2232  	}
  2233  }
  2234  
  2235  func (f *fieldsDef) UserSubnetNetworkMaskLen() *dsl.FieldDesc {
  2236  	return &dsl.FieldDesc{
  2237  		Name: "NetworkMaskLen",
  2238  		Type: meta.TypeInt,
  2239  		Tags: &dsl.FieldTags{
  2240  			MapConv: "UserSubnet.NetworkMaskLen",
  2241  		},
  2242  	}
  2243  }
  2244  
  2245  func (f *fieldsDef) UserSubnetDefaultRoute() *dsl.FieldDesc {
  2246  	return &dsl.FieldDesc{
  2247  		Name: "DefaultRoute",
  2248  		Type: meta.TypeString,
  2249  		Tags: &dsl.FieldTags{
  2250  			MapConv: "UserSubnet.DefaultRoute",
  2251  		},
  2252  	}
  2253  }
  2254  
  2255  func (f *fieldsDef) RemarkNetworkMaskLen() *dsl.FieldDesc {
  2256  	return &dsl.FieldDesc{
  2257  		Name: "NetworkMaskLen",
  2258  		Type: meta.TypeInt,
  2259  		Tags: &dsl.FieldTags{
  2260  			MapConv: "Remark.Network.NetworkMaskLen",
  2261  		},
  2262  	}
  2263  }
  2264  
  2265  func (f *fieldsDef) RemarkZoneID() *dsl.FieldDesc {
  2266  	return &dsl.FieldDesc{
  2267  		Name: "ZoneID",
  2268  		Type: meta.TypeID,
  2269  		Tags: &dsl.FieldTags{
  2270  			MapConv: "Remark.Zone.ID",
  2271  		},
  2272  	}
  2273  }
  2274  
  2275  func (f *fieldsDef) RemarkDefaultRoute() *dsl.FieldDesc {
  2276  	return &dsl.FieldDesc{
  2277  		Name: "DefaultRoute",
  2278  		Type: meta.TypeString,
  2279  		Tags: &dsl.FieldTags{
  2280  			MapConv: "Remark.Network.DefaultRoute",
  2281  		},
  2282  	}
  2283  }
  2284  
  2285  func (f *fieldsDef) RemarkServerIPAddress() *dsl.FieldDesc {
  2286  	return &dsl.FieldDesc{
  2287  		Name: "IPAddresses",
  2288  		Type: meta.TypeStringSlice,
  2289  		Tags: &dsl.FieldTags{
  2290  			MapConv: "Remark.[]Servers.IPAddress",
  2291  		},
  2292  	}
  2293  }
  2294  
  2295  func (f *fieldsDef) RemarkVRID() *dsl.FieldDesc {
  2296  	return &dsl.FieldDesc{
  2297  		Name: "VRID",
  2298  		Type: meta.TypeInt,
  2299  		Tags: &dsl.FieldTags{
  2300  			MapConv: "Remark.VRRP.VRID",
  2301  		},
  2302  	}
  2303  }
  2304  
  2305  func (f *fieldsDef) RemarkDBConf() *dsl.FieldDesc {
  2306  	return &dsl.FieldDesc{
  2307  		Name: "Conf",
  2308  		Type: &dsl.Model{
  2309  			Name:      "DatabaseRemarkDBConfCommon",
  2310  			NakedType: meta.Static(naked.ApplianceRemarkDBConfCommon{}),
  2311  			Fields: []*dsl.FieldDesc{
  2312  				fields.Def("DatabaseName", meta.TypeString),
  2313  				fields.Def("DatabaseVersion", meta.TypeString),
  2314  				fields.Def("DatabaseRevision", meta.TypeString),
  2315  				fields.Def("DefaultUser", meta.TypeString),
  2316  				fields.Def("UserPassword", meta.TypeString),
  2317  			},
  2318  		},
  2319  		Tags: &dsl.FieldTags{
  2320  			MapConv: "Remark.DBConf.Common,recursive",
  2321  		},
  2322  	}
  2323  }
  2324  
  2325  func (f *fieldsDef) RemarkSourceAppliance() *dsl.FieldDesc {
  2326  	return &dsl.FieldDesc{
  2327  		Name: "SourceID",
  2328  		Type: meta.TypeID,
  2329  		Tags: &dsl.FieldTags{
  2330  			MapConv: "Remark.SourceAppliance.ID",
  2331  		},
  2332  	}
  2333  }
  2334  
  2335  func (f *fieldsDef) DatabaseSettingsCommon() *dsl.FieldDesc {
  2336  	return &dsl.FieldDesc{
  2337  		Name: "CommonSetting",
  2338  		Type: &dsl.Model{
  2339  			Name:      "DatabaseSettingCommon",
  2340  			NakedType: meta.Static(naked.DatabaseSettingCommon{}),
  2341  			Fields: []*dsl.FieldDesc{
  2342  				fields.Def("WebUI", meta.Static(types.WebUI(""))),
  2343  				fields.Def("ServicePort", meta.TypeInt),
  2344  				fields.Def("SourceNetwork", meta.TypeStringSlice),
  2345  				fields.Def("DefaultUser", meta.TypeString),
  2346  				fields.Def("UserPassword", meta.TypeString),
  2347  				fields.Def("ReplicaUser", meta.TypeString),
  2348  				fields.Def("ReplicaPassword", meta.TypeString),
  2349  			},
  2350  		},
  2351  		Tags: &dsl.FieldTags{
  2352  			MapConv: "Settings.DBConf.Common,recursive",
  2353  		},
  2354  	}
  2355  }
  2356  
  2357  func (f *fieldsDef) DatabaseSettingsBackup() *dsl.FieldDesc {
  2358  	return &dsl.FieldDesc{
  2359  		Name: "BackupSetting",
  2360  		Type: &dsl.Model{
  2361  			Name:      "DatabaseSettingBackup",
  2362  			NakedType: meta.Static(naked.DatabaseSettingBackup{}),
  2363  			Fields: []*dsl.FieldDesc{
  2364  				fields.Def("Rotate", meta.TypeInt),
  2365  				fields.Def("Time", meta.TypeString),
  2366  				fields.Def("DayOfWeek", meta.Static([]types.EBackupSpanWeekday{})),
  2367  			},
  2368  		},
  2369  		Tags: &dsl.FieldTags{
  2370  			MapConv: "Settings.DBConf.Backup,recursive",
  2371  		},
  2372  	}
  2373  }
  2374  
  2375  func (f *fieldsDef) DatabaseSettingsReplication() *dsl.FieldDesc {
  2376  	return &dsl.FieldDesc{
  2377  		Name: "ReplicationSetting",
  2378  		Type: &dsl.Model{
  2379  			Name:      "DatabaseReplicationSetting",
  2380  			NakedType: meta.Static(naked.DatabaseSettingReplication{}),
  2381  			Fields: []*dsl.FieldDesc{
  2382  				// Model以外はスレーブを作成する際のみ設定する
  2383  				fields.Def("Model", meta.Static(types.EDatabaseReplicationModel(""))),
  2384  				fields.Def("IPAddress", meta.TypeString),
  2385  				fields.Def("Port", meta.TypeInt),
  2386  				fields.Def("User", meta.TypeString),
  2387  				fields.Def("Password", meta.TypeString),
  2388  				{
  2389  					Name: "ApplianceID",
  2390  					Type: meta.TypeID,
  2391  					Tags: &dsl.FieldTags{
  2392  						MapConv: "Appliance.ID",
  2393  					},
  2394  				},
  2395  			},
  2396  		},
  2397  		Tags: &dsl.FieldTags{
  2398  			MapConv: "Settings.DBConf.Replication,recursive",
  2399  		},
  2400  	}
  2401  }
  2402  
  2403  func (f *fieldsDef) RequiredHostVersion() *dsl.FieldDesc {
  2404  	return &dsl.FieldDesc{
  2405  		Name: "RequiredHostVersion",
  2406  		Type: meta.TypeStringNumber,
  2407  	}
  2408  }
  2409  
  2410  func (f *fieldsDef) PacketFilterExpressions() *dsl.FieldDesc {
  2411  	return &dsl.FieldDesc{
  2412  		Name: "Expression",
  2413  		Type: models.packetFilterExpressions(),
  2414  		Tags: &dsl.FieldTags{
  2415  			MapConv: "[]Expression,recursive",
  2416  		},
  2417  	}
  2418  }
  2419  
  2420  func (f *fieldsDef) ExpressionHash() *dsl.FieldDesc {
  2421  	return &dsl.FieldDesc{
  2422  		Name: "ExpressionHash",
  2423  		Type: meta.TypeString,
  2424  	}
  2425  }
  2426  
  2427  func (f *fieldsDef) DisplayOrder() *dsl.FieldDesc {
  2428  	return &dsl.FieldDesc{
  2429  		Name: "DisplayOrder",
  2430  		Type: meta.TypeInt64,
  2431  	}
  2432  }
  2433  
  2434  func (f *fieldsDef) IsDummy() *dsl.FieldDesc {
  2435  	return &dsl.FieldDesc{
  2436  		Name: "IsDummy",
  2437  		Type: meta.TypeFlag,
  2438  	}
  2439  }
  2440  
  2441  func (f *fieldsDef) HostName() *dsl.FieldDesc {
  2442  	return &dsl.FieldDesc{
  2443  		Name: "HostName",
  2444  		Type: meta.TypeString,
  2445  	}
  2446  }
  2447  
  2448  func (f *fieldsDef) IPAddress() *dsl.FieldDesc {
  2449  	return &dsl.FieldDesc{
  2450  		Name: "IPAddress",
  2451  		Type: meta.TypeString,
  2452  	}
  2453  }
  2454  
  2455  func (f *fieldsDef) UserIPAddress() *dsl.FieldDesc {
  2456  	return &dsl.FieldDesc{
  2457  		Name: "UserIPAddress",
  2458  		Type: meta.TypeString,
  2459  	}
  2460  }
  2461  
  2462  func (f *fieldsDef) MACAddress() *dsl.FieldDesc {
  2463  	return &dsl.FieldDesc{
  2464  		Name: "MACAddress",
  2465  		Type: meta.TypeString,
  2466  	}
  2467  }
  2468  
  2469  func (f *fieldsDef) User() *dsl.FieldDesc {
  2470  	return &dsl.FieldDesc{
  2471  		Name: "User",
  2472  		Type: meta.TypeString,
  2473  	}
  2474  }
  2475  func (f *fieldsDef) Password() *dsl.FieldDesc {
  2476  	return &dsl.FieldDesc{
  2477  		Name: "Password",
  2478  		Type: meta.TypeString,
  2479  	}
  2480  }
  2481  
  2482  func (f *fieldsDef) SourceInfo() *dsl.FieldDesc {
  2483  	return &dsl.FieldDesc{
  2484  		Name: "SourceInfo",
  2485  		Type: models.sourceArchiveInfo(),
  2486  		Tags: &dsl.FieldTags{
  2487  			MapConv: ",omitempty,recursive",
  2488  		},
  2489  	}
  2490  }
  2491  
  2492  func (f *fieldsDef) VNCProxy() *dsl.FieldDesc {
  2493  	return &dsl.FieldDesc{
  2494  		Name: "VNCProxy",
  2495  		Type: models.vncProxyModel(),
  2496  		Tags: &dsl.FieldTags{
  2497  			JSON: ",omitempty",
  2498  		},
  2499  	}
  2500  }
  2501  
  2502  func (f *fieldsDef) FTPServer() *dsl.FieldDesc {
  2503  	return &dsl.FieldDesc{
  2504  		Name: "FTPServer",
  2505  		Type: models.ftpServerInfo(),
  2506  		Tags: &dsl.FieldTags{
  2507  			JSON: ",omitempty",
  2508  		},
  2509  	}
  2510  }
  2511  
  2512  func (f *fieldsDef) FTPServerChangePassword() *dsl.FieldDesc {
  2513  	return &dsl.FieldDesc{
  2514  		Name: "ChangePassword",
  2515  		Type: meta.TypeFlag,
  2516  	}
  2517  }
  2518  
  2519  func (f *fieldsDef) Region() *dsl.FieldDesc {
  2520  	return &dsl.FieldDesc{
  2521  		Name: "Region",
  2522  		Type: models.region(),
  2523  		Tags: &dsl.FieldTags{
  2524  			JSON: ",omitempty",
  2525  		},
  2526  	}
  2527  }
  2528  
  2529  func (f *fieldsDef) NameServers() *dsl.FieldDesc {
  2530  	return &dsl.FieldDesc{
  2531  		Name: "NameServers",
  2532  		Type: meta.TypeStringSlice,
  2533  		Tags: &dsl.FieldTags{
  2534  			MapConv: ",omitempty",
  2535  			JSON:    ",omitempty",
  2536  		},
  2537  	}
  2538  }
  2539  
  2540  func (f *fieldsDef) Zone() *dsl.FieldDesc {
  2541  	return &dsl.FieldDesc{
  2542  		Name: "Zone",
  2543  		Type: models.zoneInfoModel(),
  2544  		Tags: &dsl.FieldTags{
  2545  			MapConv: ",omitempty,recursive",
  2546  			JSON:    ",omitempty",
  2547  		},
  2548  	}
  2549  }
  2550  
  2551  func (f *fieldsDef) Storage() *dsl.FieldDesc {
  2552  	return &dsl.FieldDesc{
  2553  		Name: "Storage",
  2554  		Type: models.storageModel(),
  2555  		Tags: &dsl.FieldTags{
  2556  			MapConv: ",omitempty,recursive",
  2557  			JSON:    ",omitempty",
  2558  		},
  2559  	}
  2560  }
  2561  
  2562  func (f *fieldsDef) BundleInfo() *dsl.FieldDesc {
  2563  	return &dsl.FieldDesc{
  2564  		Name: "BundleInfo",
  2565  		Type: models.bundleInfoModel(),
  2566  		Tags: &dsl.FieldTags{
  2567  			MapConv: ",omitempty,recursive",
  2568  			JSON:    ",omitempty",
  2569  		},
  2570  	}
  2571  }
  2572  
  2573  func (f *fieldsDef) CreatedAt() *dsl.FieldDesc {
  2574  	return &dsl.FieldDesc{
  2575  		Name: "CreatedAt",
  2576  		Type: meta.TypeTime,
  2577  	}
  2578  }
  2579  
  2580  func (f *fieldsDef) ModifiedAt() *dsl.FieldDesc {
  2581  	return &dsl.FieldDesc{
  2582  		Name: "ModifiedAt",
  2583  		Type: meta.TypeTime,
  2584  	}
  2585  }
  2586  
  2587  /*
  2588   for monitor
  2589  */
  2590  func (f *fieldsDef) MonitorTime() *dsl.FieldDesc {
  2591  	return &dsl.FieldDesc{
  2592  		Name: "Time",
  2593  		Type: meta.TypeTime,
  2594  		Tags: &dsl.FieldTags{
  2595  			MapConv: ",omitempty",
  2596  		},
  2597  	}
  2598  }
  2599  
  2600  func (f *fieldsDef) MonitorCPUTime() *dsl.FieldDesc {
  2601  	return &dsl.FieldDesc{
  2602  		Name: "CPUTime",
  2603  		Type: meta.TypeFloat64,
  2604  		Tags: &dsl.FieldTags{
  2605  			MapConv: ",omitempty",
  2606  		},
  2607  	}
  2608  }
  2609  
  2610  func (f *fieldsDef) MonitorDiskRead() *dsl.FieldDesc {
  2611  	return &dsl.FieldDesc{
  2612  		Name: "Read",
  2613  		Type: meta.TypeFloat64,
  2614  		Tags: &dsl.FieldTags{
  2615  			MapConv: ",omitempty",
  2616  		},
  2617  	}
  2618  }
  2619  
  2620  func (f *fieldsDef) MonitorDiskWrite() *dsl.FieldDesc {
  2621  	return &dsl.FieldDesc{
  2622  		Name: "Write",
  2623  		Type: meta.TypeFloat64,
  2624  		Tags: &dsl.FieldTags{
  2625  			MapConv: ",omitempty",
  2626  		},
  2627  	}
  2628  }
  2629  
  2630  func (f *fieldsDef) MonitorRouterIn() *dsl.FieldDesc {
  2631  	return &dsl.FieldDesc{
  2632  		Name: "In",
  2633  		Type: meta.TypeFloat64,
  2634  		Tags: &dsl.FieldTags{
  2635  			MapConv: ",omitempty",
  2636  		},
  2637  	}
  2638  }
  2639  
  2640  func (f *fieldsDef) MonitorRouterOut() *dsl.FieldDesc {
  2641  	return &dsl.FieldDesc{
  2642  		Name: "Out",
  2643  		Type: meta.TypeFloat64,
  2644  		Tags: &dsl.FieldTags{
  2645  			MapConv: ",omitempty",
  2646  		},
  2647  	}
  2648  }
  2649  
  2650  func (f *fieldsDef) MonitorInterfaceSend() *dsl.FieldDesc {
  2651  	return &dsl.FieldDesc{
  2652  		Name: "Send",
  2653  		Type: meta.TypeFloat64,
  2654  		Tags: &dsl.FieldTags{
  2655  			MapConv: ",omitempty",
  2656  		},
  2657  	}
  2658  }
  2659  
  2660  func (f *fieldsDef) MonitorInterfaceReceive() *dsl.FieldDesc {
  2661  	return &dsl.FieldDesc{
  2662  		Name: "Receive",
  2663  		Type: meta.TypeFloat64,
  2664  		Tags: &dsl.FieldTags{
  2665  			MapConv: ",omitempty",
  2666  		},
  2667  	}
  2668  }
  2669  
  2670  func (f *fieldsDef) MonitorFreeDiskSize() *dsl.FieldDesc {
  2671  	return &dsl.FieldDesc{
  2672  		Name: "FreeDiskSize",
  2673  		Type: meta.TypeFloat64,
  2674  		Tags: &dsl.FieldTags{
  2675  			MapConv: ",omitempty",
  2676  		},
  2677  	}
  2678  }
  2679  
  2680  func (f *fieldsDef) MonitorDatabaseTotalMemorySize() *dsl.FieldDesc {
  2681  	return &dsl.FieldDesc{
  2682  		Name: "TotalMemorySize ",
  2683  		Type: meta.TypeFloat64,
  2684  		Tags: &dsl.FieldTags{
  2685  			MapConv: ",omitempty",
  2686  		},
  2687  	}
  2688  }
  2689  
  2690  func (f *fieldsDef) MonitorDatabaseUsedMemorySize() *dsl.FieldDesc {
  2691  	return &dsl.FieldDesc{
  2692  		Name: "UsedMemorySize",
  2693  		Type: meta.TypeFloat64,
  2694  		Tags: &dsl.FieldTags{
  2695  			MapConv: ",omitempty",
  2696  		},
  2697  	}
  2698  }
  2699  
  2700  func (f *fieldsDef) MonitorDatabaseTotalDisk1Size() *dsl.FieldDesc {
  2701  	return &dsl.FieldDesc{
  2702  		Name: "TotalDisk1Size",
  2703  		Type: meta.TypeFloat64,
  2704  		Tags: &dsl.FieldTags{
  2705  			MapConv: ",omitempty",
  2706  		},
  2707  	}
  2708  }
  2709  
  2710  func (f *fieldsDef) MonitorDatabaseUsedDisk1Size() *dsl.FieldDesc {
  2711  	return &dsl.FieldDesc{
  2712  		Name: "UsedDisk1Size",
  2713  		Type: meta.TypeFloat64,
  2714  		Tags: &dsl.FieldTags{
  2715  			MapConv: ",omitempty",
  2716  		},
  2717  	}
  2718  }
  2719  
  2720  func (f *fieldsDef) MonitorDatabaseTotalDisk2Size() *dsl.FieldDesc {
  2721  	return &dsl.FieldDesc{
  2722  		Name: "TotalDisk2Size",
  2723  		Type: meta.TypeFloat64,
  2724  		Tags: &dsl.FieldTags{
  2725  			MapConv: ",omitempty",
  2726  		},
  2727  	}
  2728  }
  2729  
  2730  func (f *fieldsDef) MonitorDatabaseUsedDisk2Size() *dsl.FieldDesc {
  2731  	return &dsl.FieldDesc{
  2732  		Name: "UsedDisk2Size",
  2733  		Type: meta.TypeFloat64,
  2734  		Tags: &dsl.FieldTags{
  2735  			MapConv: ",omitempty",
  2736  		},
  2737  	}
  2738  }
  2739  
  2740  func (f *fieldsDef) MonitorDatabaseBinlogUsedSizeKiB() *dsl.FieldDesc {
  2741  	return &dsl.FieldDesc{
  2742  		Name: "BinlogUsedSizeKiB",
  2743  		Type: meta.TypeFloat64,
  2744  		Tags: &dsl.FieldTags{
  2745  			MapConv: ",omitempty",
  2746  		},
  2747  	}
  2748  }
  2749  
  2750  func (f *fieldsDef) MonitorDatabaseDelayTimeSec() *dsl.FieldDesc {
  2751  	return &dsl.FieldDesc{
  2752  		Name: "DelayTimeSec",
  2753  		Type: meta.TypeFloat64,
  2754  		Tags: &dsl.FieldTags{
  2755  			MapConv: ",omitempty",
  2756  		},
  2757  	}
  2758  }
  2759  
  2760  func (f *fieldsDef) MonitorResponseTimeSec() *dsl.FieldDesc {
  2761  	return &dsl.FieldDesc{
  2762  		Name: "ResponseTimeSec",
  2763  		Type: meta.TypeFloat64,
  2764  		Tags: &dsl.FieldTags{
  2765  			MapConv: ",omitempty",
  2766  		},
  2767  	}
  2768  }
  2769  
  2770  func (f *fieldsDef) MonitorUplinkBPS() *dsl.FieldDesc {
  2771  	return &dsl.FieldDesc{
  2772  		Name: "UplinkBPS",
  2773  		Type: meta.TypeFloat64,
  2774  		Tags: &dsl.FieldTags{
  2775  			MapConv: ",omitempty",
  2776  		},
  2777  	}
  2778  }
  2779  
  2780  func (f *fieldsDef) MonitorDownlinkBPS() *dsl.FieldDesc {
  2781  	return &dsl.FieldDesc{
  2782  		Name: "DownlinkBPS",
  2783  		Type: meta.TypeFloat64,
  2784  		Tags: &dsl.FieldTags{
  2785  			MapConv: ",omitempty",
  2786  		},
  2787  	}
  2788  }
  2789  
  2790  func (f *fieldsDef) MonitorActiveConnections() *dsl.FieldDesc {
  2791  	return &dsl.FieldDesc{
  2792  		Name: "ActiveConnections",
  2793  		Type: meta.TypeFloat64,
  2794  		Tags: &dsl.FieldTags{
  2795  			MapConv: ",omitempty",
  2796  		},
  2797  	}
  2798  }
  2799  
  2800  func (f *fieldsDef) MonitorConnectionsPerSec() *dsl.FieldDesc {
  2801  	return &dsl.FieldDesc{
  2802  		Name: "ConnectionsPerSec",
  2803  		Type: meta.TypeFloat64,
  2804  		Tags: &dsl.FieldTags{
  2805  			MapConv: ",omitempty",
  2806  		},
  2807  	}
  2808  }
  2809  
  2810  func (f *fieldsDef) MonitorLocalRouterReceiveBytesPerSec() *dsl.FieldDesc {
  2811  	return &dsl.FieldDesc{
  2812  		Name: "ReceiveBytesPerSec",
  2813  		Type: meta.TypeFloat64,
  2814  		Tags: &dsl.FieldTags{
  2815  			MapConv: ",omitempty",
  2816  		},
  2817  	}
  2818  }
  2819  
  2820  func (f *fieldsDef) MonitorLocalRouterSendBytesPerSec() *dsl.FieldDesc {
  2821  	return &dsl.FieldDesc{
  2822  		Name: "SendBytesPerSec",
  2823  		Type: meta.TypeFloat64,
  2824  		Tags: &dsl.FieldTags{
  2825  			MapConv: ",omitempty",
  2826  		},
  2827  	}
  2828  }