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 }