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