github.com/sacloud/iaas-api-go@v1.12.0/zz_api_ops.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 // generated by 'github.com/sacloud/iaas-api-go/internal/tools/gen-api-op'; DO NOT EDIT 16 17 package iaas 18 19 import ( 20 "context" 21 22 "github.com/sacloud/iaas-api-go/types" 23 "github.com/sacloud/packages-go/mutexkv" 24 ) 25 26 var apiLocker = mutexkv.NewMutexKV() 27 28 func init() { 29 30 SetClientFactoryFunc("Archive", func(caller APICaller) interface{} { 31 return &ArchiveOp{ 32 Client: caller, 33 PathSuffix: "api/cloud/1.1", 34 PathName: "archive", 35 } 36 }) 37 38 SetClientFactoryFunc("AuthStatus", func(caller APICaller) interface{} { 39 return &AuthStatusOp{ 40 Client: caller, 41 PathSuffix: "api/cloud/1.1", 42 PathName: "auth-status", 43 } 44 }) 45 46 SetClientFactoryFunc("AutoBackup", func(caller APICaller) interface{} { 47 return &AutoBackupOp{ 48 Client: caller, 49 PathSuffix: "api/cloud/1.1", 50 PathName: "commonserviceitem", 51 } 52 }) 53 54 SetClientFactoryFunc("AutoScale", func(caller APICaller) interface{} { 55 return &AutoScaleOp{ 56 Client: caller, 57 PathSuffix: "api/cloud/1.1", 58 PathName: "commonserviceitem", 59 } 60 }) 61 62 SetClientFactoryFunc("Bill", func(caller APICaller) interface{} { 63 return &BillOp{ 64 Client: caller, 65 PathSuffix: "api/system/1.0", 66 PathName: "bill", 67 } 68 }) 69 70 SetClientFactoryFunc("Bridge", func(caller APICaller) interface{} { 71 return &BridgeOp{ 72 Client: caller, 73 PathSuffix: "api/cloud/1.1", 74 PathName: "bridge", 75 } 76 }) 77 78 SetClientFactoryFunc("CDROM", func(caller APICaller) interface{} { 79 return &CDROMOp{ 80 Client: caller, 81 PathSuffix: "api/cloud/1.1", 82 PathName: "cdrom", 83 } 84 }) 85 86 SetClientFactoryFunc("CertificateAuthority", func(caller APICaller) interface{} { 87 return &CertificateAuthorityOp{ 88 Client: caller, 89 PathSuffix: "api/cloud/1.1", 90 PathName: "commonserviceitem", 91 } 92 }) 93 94 SetClientFactoryFunc("ContainerRegistry", func(caller APICaller) interface{} { 95 return &ContainerRegistryOp{ 96 Client: caller, 97 PathSuffix: "api/cloud/1.1", 98 PathName: "commonserviceitem", 99 } 100 }) 101 102 SetClientFactoryFunc("Coupon", func(caller APICaller) interface{} { 103 return &CouponOp{ 104 Client: caller, 105 PathSuffix: "api/system/1.0", 106 PathName: "coupon", 107 } 108 }) 109 110 SetClientFactoryFunc("Database", func(caller APICaller) interface{} { 111 return &DatabaseOp{ 112 Client: caller, 113 PathSuffix: "api/cloud/1.1", 114 PathName: "appliance", 115 } 116 }) 117 118 SetClientFactoryFunc("Disk", func(caller APICaller) interface{} { 119 return &DiskOp{ 120 Client: caller, 121 PathSuffix: "api/cloud/1.1", 122 PathName: "disk", 123 } 124 }) 125 126 SetClientFactoryFunc("DiskPlan", func(caller APICaller) interface{} { 127 return &DiskPlanOp{ 128 Client: caller, 129 PathSuffix: "api/cloud/1.1", 130 PathName: "product/disk", 131 } 132 }) 133 134 SetClientFactoryFunc("DNS", func(caller APICaller) interface{} { 135 return &DNSOp{ 136 Client: caller, 137 PathSuffix: "api/cloud/1.1", 138 PathName: "commonserviceitem", 139 } 140 }) 141 142 SetClientFactoryFunc("EnhancedDB", func(caller APICaller) interface{} { 143 return &EnhancedDBOp{ 144 Client: caller, 145 PathSuffix: "api/cloud/1.1", 146 PathName: "commonserviceitem", 147 } 148 }) 149 150 SetClientFactoryFunc("ESME", func(caller APICaller) interface{} { 151 return &ESMEOp{ 152 Client: caller, 153 PathSuffix: "api/cloud/1.1", 154 PathName: "commonserviceitem", 155 } 156 }) 157 158 SetClientFactoryFunc("GSLB", func(caller APICaller) interface{} { 159 return &GSLBOp{ 160 Client: caller, 161 PathSuffix: "api/cloud/1.1", 162 PathName: "commonserviceitem", 163 } 164 }) 165 166 SetClientFactoryFunc("Icon", func(caller APICaller) interface{} { 167 return &IconOp{ 168 Client: caller, 169 PathSuffix: "api/cloud/1.1", 170 PathName: "icon", 171 } 172 }) 173 174 SetClientFactoryFunc("Interface", func(caller APICaller) interface{} { 175 return &InterfaceOp{ 176 Client: caller, 177 PathSuffix: "api/cloud/1.1", 178 PathName: "interface", 179 } 180 }) 181 182 SetClientFactoryFunc("Internet", func(caller APICaller) interface{} { 183 return &InternetOp{ 184 Client: caller, 185 PathSuffix: "api/cloud/1.1", 186 PathName: "internet", 187 } 188 }) 189 190 SetClientFactoryFunc("InternetPlan", func(caller APICaller) interface{} { 191 return &InternetPlanOp{ 192 Client: caller, 193 PathSuffix: "api/cloud/1.1", 194 PathName: "product/internet", 195 } 196 }) 197 198 SetClientFactoryFunc("IPAddress", func(caller APICaller) interface{} { 199 return &IPAddressOp{ 200 Client: caller, 201 PathSuffix: "api/cloud/1.1", 202 PathName: "ipaddress", 203 } 204 }) 205 206 SetClientFactoryFunc("IPv6Net", func(caller APICaller) interface{} { 207 return &IPv6NetOp{ 208 Client: caller, 209 PathSuffix: "api/cloud/1.1", 210 PathName: "ipv6net", 211 } 212 }) 213 214 SetClientFactoryFunc("IPv6Addr", func(caller APICaller) interface{} { 215 return &IPv6AddrOp{ 216 Client: caller, 217 PathSuffix: "api/cloud/1.1", 218 PathName: "ipv6addr", 219 } 220 }) 221 222 SetClientFactoryFunc("License", func(caller APICaller) interface{} { 223 return &LicenseOp{ 224 Client: caller, 225 PathSuffix: "api/cloud/1.1", 226 PathName: "license", 227 } 228 }) 229 230 SetClientFactoryFunc("LicenseInfo", func(caller APICaller) interface{} { 231 return &LicenseInfoOp{ 232 Client: caller, 233 PathSuffix: "api/cloud/1.1", 234 PathName: "product/license", 235 } 236 }) 237 238 SetClientFactoryFunc("LoadBalancer", func(caller APICaller) interface{} { 239 return &LoadBalancerOp{ 240 Client: caller, 241 PathSuffix: "api/cloud/1.1", 242 PathName: "appliance", 243 } 244 }) 245 246 SetClientFactoryFunc("LocalRouter", func(caller APICaller) interface{} { 247 return &LocalRouterOp{ 248 Client: caller, 249 PathSuffix: "api/cloud/1.1", 250 PathName: "commonserviceitem", 251 } 252 }) 253 254 SetClientFactoryFunc("MobileGateway", func(caller APICaller) interface{} { 255 return &MobileGatewayOp{ 256 Client: caller, 257 PathSuffix: "api/cloud/1.1", 258 PathName: "appliance", 259 } 260 }) 261 262 SetClientFactoryFunc("NFS", func(caller APICaller) interface{} { 263 return &NFSOp{ 264 Client: caller, 265 PathSuffix: "api/cloud/1.1", 266 PathName: "appliance", 267 } 268 }) 269 270 SetClientFactoryFunc("Note", func(caller APICaller) interface{} { 271 return &NoteOp{ 272 Client: caller, 273 PathSuffix: "api/cloud/1.1", 274 PathName: "note", 275 } 276 }) 277 278 SetClientFactoryFunc("PacketFilter", func(caller APICaller) interface{} { 279 return &PacketFilterOp{ 280 Client: caller, 281 PathSuffix: "api/cloud/1.1", 282 PathName: "packetfilter", 283 } 284 }) 285 286 SetClientFactoryFunc("PrivateHost", func(caller APICaller) interface{} { 287 return &PrivateHostOp{ 288 Client: caller, 289 PathSuffix: "api/cloud/1.1", 290 PathName: "privatehost", 291 } 292 }) 293 294 SetClientFactoryFunc("PrivateHostPlan", func(caller APICaller) interface{} { 295 return &PrivateHostPlanOp{ 296 Client: caller, 297 PathSuffix: "api/cloud/1.1", 298 PathName: "product/privatehost", 299 } 300 }) 301 302 SetClientFactoryFunc("ProxyLB", func(caller APICaller) interface{} { 303 return &ProxyLBOp{ 304 Client: caller, 305 PathSuffix: "api/cloud/1.1", 306 PathName: "commonserviceitem", 307 } 308 }) 309 310 SetClientFactoryFunc("Region", func(caller APICaller) interface{} { 311 return &RegionOp{ 312 Client: caller, 313 PathSuffix: "api/cloud/1.1", 314 PathName: "region", 315 } 316 }) 317 318 SetClientFactoryFunc("Server", func(caller APICaller) interface{} { 319 return &ServerOp{ 320 Client: caller, 321 PathSuffix: "api/cloud/1.1", 322 PathName: "server", 323 } 324 }) 325 326 SetClientFactoryFunc("ServerPlan", func(caller APICaller) interface{} { 327 return &ServerPlanOp{ 328 Client: caller, 329 PathSuffix: "api/cloud/1.1", 330 PathName: "product/server", 331 } 332 }) 333 334 SetClientFactoryFunc("ServiceClass", func(caller APICaller) interface{} { 335 return &ServiceClassOp{ 336 Client: caller, 337 PathSuffix: "api/cloud/1.1", 338 PathName: "public/price", 339 } 340 }) 341 342 SetClientFactoryFunc("SIM", func(caller APICaller) interface{} { 343 return &SIMOp{ 344 Client: caller, 345 PathSuffix: "api/cloud/1.1", 346 PathName: "commonserviceitem", 347 } 348 }) 349 350 SetClientFactoryFunc("SimpleMonitor", func(caller APICaller) interface{} { 351 return &SimpleMonitorOp{ 352 Client: caller, 353 PathSuffix: "api/cloud/1.1", 354 PathName: "commonserviceitem", 355 } 356 }) 357 358 SetClientFactoryFunc("SSHKey", func(caller APICaller) interface{} { 359 return &SSHKeyOp{ 360 Client: caller, 361 PathSuffix: "api/cloud/1.1", 362 PathName: "sshkey", 363 } 364 }) 365 366 SetClientFactoryFunc("Subnet", func(caller APICaller) interface{} { 367 return &SubnetOp{ 368 Client: caller, 369 PathSuffix: "api/cloud/1.1", 370 PathName: "subnet", 371 } 372 }) 373 374 SetClientFactoryFunc("Switch", func(caller APICaller) interface{} { 375 return &SwitchOp{ 376 Client: caller, 377 PathSuffix: "api/cloud/1.1", 378 PathName: "switch", 379 } 380 }) 381 382 SetClientFactoryFunc("VPCRouter", func(caller APICaller) interface{} { 383 return &VPCRouterOp{ 384 Client: caller, 385 PathSuffix: "api/cloud/1.1", 386 PathName: "appliance", 387 } 388 }) 389 390 SetClientFactoryFunc("Zone", func(caller APICaller) interface{} { 391 return &ZoneOp{ 392 Client: caller, 393 PathSuffix: "api/cloud/1.1", 394 PathName: "zone", 395 } 396 }) 397 } 398 399 /************************************************* 400 * ArchiveOp 401 *************************************************/ 402 403 // ArchiveOp implements ArchiveAPI interface 404 type ArchiveOp struct { 405 // Client APICaller 406 Client APICaller 407 // PathSuffix is used when building URL 408 PathSuffix string 409 // PathName is used when building URL 410 PathName string 411 } 412 413 // NewArchiveOp creates new ArchiveOp instance 414 func NewArchiveOp(caller APICaller) ArchiveAPI { 415 return GetClientFactoryFunc("Archive")(caller).(ArchiveAPI) 416 } 417 418 // Find is API call 419 func (o *ArchiveOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*ArchiveFindResult, error) { 420 // build request URL 421 pathBuildParameter := map[string]interface{}{ 422 "rootURL": SakuraCloudAPIRoot, 423 "pathSuffix": o.PathSuffix, 424 "pathName": o.PathName, 425 "zone": zone, 426 "conditions": conditions, 427 } 428 429 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 430 if err != nil { 431 return nil, err 432 } 433 // build request body 434 var body interface{} 435 v, err := o.transformFindArgs(conditions) 436 if err != nil { 437 return nil, err 438 } 439 body = v 440 441 // do request 442 data, err := o.Client.Do(ctx, "GET", url, body) 443 if err != nil { 444 return nil, err 445 } 446 447 // build results 448 results, err := o.transformFindResults(data) 449 if err != nil { 450 return nil, err 451 } 452 return results, err 453 } 454 455 // Create is API call 456 func (o *ArchiveOp) Create(ctx context.Context, zone string, param *ArchiveCreateRequest) (*Archive, error) { 457 // build request URL 458 pathBuildParameter := map[string]interface{}{ 459 "rootURL": SakuraCloudAPIRoot, 460 "pathSuffix": o.PathSuffix, 461 "pathName": o.PathName, 462 "zone": zone, 463 "param": param, 464 } 465 466 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 467 if err != nil { 468 return nil, err 469 } 470 // build request body 471 var body interface{} 472 v, err := o.transformCreateArgs(param) 473 if err != nil { 474 return nil, err 475 } 476 body = v 477 478 // do request 479 data, err := o.Client.Do(ctx, "POST", url, body) 480 if err != nil { 481 return nil, err 482 } 483 484 // build results 485 results, err := o.transformCreateResults(data) 486 if err != nil { 487 return nil, err 488 } 489 return results.Archive, nil 490 } 491 492 // CreateBlank is API call 493 func (o *ArchiveOp) CreateBlank(ctx context.Context, zone string, param *ArchiveCreateBlankRequest) (*Archive, *FTPServer, error) { 494 // build request URL 495 pathBuildParameter := map[string]interface{}{ 496 "rootURL": SakuraCloudAPIRoot, 497 "pathSuffix": o.PathSuffix, 498 "pathName": o.PathName, 499 "zone": zone, 500 "param": param, 501 } 502 503 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 504 if err != nil { 505 return nil, nil, err 506 } 507 // build request body 508 var body interface{} 509 v, err := o.transformCreateBlankArgs(param) 510 if err != nil { 511 return nil, nil, err 512 } 513 body = v 514 515 // do request 516 data, err := o.Client.Do(ctx, "POST", url, body) 517 if err != nil { 518 return nil, nil, err 519 } 520 521 // build results 522 results, err := o.transformCreateBlankResults(data) 523 if err != nil { 524 return nil, nil, err 525 } 526 return results.Archive, results.FTPServer, nil 527 } 528 529 // Read is API call 530 func (o *ArchiveOp) Read(ctx context.Context, zone string, id types.ID) (*Archive, error) { 531 // build request URL 532 pathBuildParameter := map[string]interface{}{ 533 "rootURL": SakuraCloudAPIRoot, 534 "pathSuffix": o.PathSuffix, 535 "pathName": o.PathName, 536 "zone": zone, 537 "id": id, 538 } 539 540 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 541 if err != nil { 542 return nil, err 543 } 544 // build request body 545 var body interface{} 546 547 // do request 548 data, err := o.Client.Do(ctx, "GET", url, body) 549 if err != nil { 550 return nil, err 551 } 552 553 // build results 554 results, err := o.transformReadResults(data) 555 if err != nil { 556 return nil, err 557 } 558 return results.Archive, nil 559 } 560 561 // Update is API call 562 func (o *ArchiveOp) Update(ctx context.Context, zone string, id types.ID, param *ArchiveUpdateRequest) (*Archive, error) { 563 // build request URL 564 pathBuildParameter := map[string]interface{}{ 565 "rootURL": SakuraCloudAPIRoot, 566 "pathSuffix": o.PathSuffix, 567 "pathName": o.PathName, 568 "zone": zone, 569 "id": id, 570 "param": param, 571 } 572 573 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 574 if err != nil { 575 return nil, err 576 } 577 // build request body 578 var body interface{} 579 v, err := o.transformUpdateArgs(id, param) 580 if err != nil { 581 return nil, err 582 } 583 body = v 584 585 // do request 586 data, err := o.Client.Do(ctx, "PUT", url, body) 587 if err != nil { 588 return nil, err 589 } 590 591 // build results 592 results, err := o.transformUpdateResults(data) 593 if err != nil { 594 return nil, err 595 } 596 return results.Archive, nil 597 } 598 599 // Delete is API call 600 func (o *ArchiveOp) Delete(ctx context.Context, zone string, id types.ID) error { 601 // build request URL 602 pathBuildParameter := map[string]interface{}{ 603 "rootURL": SakuraCloudAPIRoot, 604 "pathSuffix": o.PathSuffix, 605 "pathName": o.PathName, 606 "zone": zone, 607 "id": id, 608 } 609 610 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 611 if err != nil { 612 return err 613 } 614 // build request body 615 var body interface{} 616 617 // do request 618 _, err = o.Client.Do(ctx, "DELETE", url, body) 619 if err != nil { 620 return err 621 } 622 623 // build results 624 625 return nil 626 } 627 628 // OpenFTP is API call 629 func (o *ArchiveOp) OpenFTP(ctx context.Context, zone string, id types.ID, openOption *OpenFTPRequest) (*FTPServer, error) { 630 // build request URL 631 pathBuildParameter := map[string]interface{}{ 632 "rootURL": SakuraCloudAPIRoot, 633 "pathSuffix": o.PathSuffix, 634 "pathName": o.PathName, 635 "zone": zone, 636 "id": id, 637 "openOption": openOption, 638 } 639 640 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ftp", pathBuildParameter) 641 if err != nil { 642 return nil, err 643 } 644 // build request body 645 var body interface{} 646 v, err := o.transformOpenFTPArgs(id, openOption) 647 if err != nil { 648 return nil, err 649 } 650 body = v 651 652 // do request 653 data, err := o.Client.Do(ctx, "PUT", url, body) 654 if err != nil { 655 return nil, err 656 } 657 658 // build results 659 results, err := o.transformOpenFTPResults(data) 660 if err != nil { 661 return nil, err 662 } 663 return results.FTPServer, nil 664 } 665 666 // CloseFTP is API call 667 func (o *ArchiveOp) CloseFTP(ctx context.Context, zone string, id types.ID) error { 668 // build request URL 669 pathBuildParameter := map[string]interface{}{ 670 "rootURL": SakuraCloudAPIRoot, 671 "pathSuffix": o.PathSuffix, 672 "pathName": o.PathName, 673 "zone": zone, 674 "id": id, 675 } 676 677 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ftp", pathBuildParameter) 678 if err != nil { 679 return err 680 } 681 // build request body 682 var body interface{} 683 684 // do request 685 _, err = o.Client.Do(ctx, "DELETE", url, body) 686 if err != nil { 687 return err 688 } 689 690 // build results 691 692 return nil 693 } 694 695 // Share is API call 696 func (o *ArchiveOp) Share(ctx context.Context, zone string, id types.ID) (*ArchiveShareInfo, error) { 697 // build request URL 698 pathBuildParameter := map[string]interface{}{ 699 "rootURL": SakuraCloudAPIRoot, 700 "pathSuffix": o.PathSuffix, 701 "pathName": o.PathName, 702 "zone": zone, 703 "id": id, 704 } 705 706 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ftp", pathBuildParameter) 707 if err != nil { 708 return nil, err 709 } 710 // build request body 711 var body interface{} 712 v, err := o.transformShareArgs(id) 713 if err != nil { 714 return nil, err 715 } 716 body = v 717 718 // do request 719 data, err := o.Client.Do(ctx, "PUT", url, body) 720 if err != nil { 721 return nil, err 722 } 723 724 // build results 725 results, err := o.transformShareResults(data) 726 if err != nil { 727 return nil, err 728 } 729 return results.ArchiveShareInfo, nil 730 } 731 732 // CreateFromShared is API call 733 func (o *ArchiveOp) CreateFromShared(ctx context.Context, zone string, sourceArchiveID types.ID, destZoneID types.ID, param *ArchiveCreateRequestFromShared) (*Archive, error) { 734 // build request URL 735 pathBuildParameter := map[string]interface{}{ 736 "rootURL": SakuraCloudAPIRoot, 737 "pathSuffix": o.PathSuffix, 738 "pathName": o.PathName, 739 "zone": zone, 740 "sourceArchiveID": sourceArchiveID, 741 "destZoneID": destZoneID, 742 "param": param, 743 } 744 745 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.sourceArchiveID}}/to/zone/{{.destZoneID}}", pathBuildParameter) 746 if err != nil { 747 return nil, err 748 } 749 // build request body 750 var body interface{} 751 v, err := o.transformCreateFromSharedArgs(sourceArchiveID, destZoneID, param) 752 if err != nil { 753 return nil, err 754 } 755 body = v 756 757 // do request 758 data, err := o.Client.Do(ctx, "POST", url, body) 759 if err != nil { 760 return nil, err 761 } 762 763 // build results 764 results, err := o.transformCreateFromSharedResults(data) 765 if err != nil { 766 return nil, err 767 } 768 return results.Archive, nil 769 } 770 771 // Transfer is API call 772 func (o *ArchiveOp) Transfer(ctx context.Context, zone string, sourceArchiveID types.ID, destZoneID types.ID, param *ArchiveTransferRequest) (*Archive, error) { 773 // build request URL 774 pathBuildParameter := map[string]interface{}{ 775 "rootURL": SakuraCloudAPIRoot, 776 "pathSuffix": o.PathSuffix, 777 "pathName": o.PathName, 778 "zone": zone, 779 "sourceArchiveID": sourceArchiveID, 780 "destZoneID": destZoneID, 781 "param": param, 782 } 783 784 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.sourceArchiveID}}/to/zone/{{.destZoneID}}", pathBuildParameter) 785 if err != nil { 786 return nil, err 787 } 788 // build request body 789 var body interface{} 790 v, err := o.transformTransferArgs(sourceArchiveID, destZoneID, param) 791 if err != nil { 792 return nil, err 793 } 794 body = v 795 796 // do request 797 data, err := o.Client.Do(ctx, "POST", url, body) 798 if err != nil { 799 return nil, err 800 } 801 802 // build results 803 results, err := o.transformTransferResults(data) 804 if err != nil { 805 return nil, err 806 } 807 return results.Archive, nil 808 } 809 810 /************************************************* 811 * AuthStatusOp 812 *************************************************/ 813 814 // AuthStatusOp implements AuthStatusAPI interface 815 type AuthStatusOp struct { 816 // Client APICaller 817 Client APICaller 818 // PathSuffix is used when building URL 819 PathSuffix string 820 // PathName is used when building URL 821 PathName string 822 } 823 824 // NewAuthStatusOp creates new AuthStatusOp instance 825 func NewAuthStatusOp(caller APICaller) AuthStatusAPI { 826 return GetClientFactoryFunc("AuthStatus")(caller).(AuthStatusAPI) 827 } 828 829 // Read is API call 830 func (o *AuthStatusOp) Read(ctx context.Context) (*AuthStatus, error) { 831 // build request URL 832 pathBuildParameter := map[string]interface{}{ 833 "rootURL": SakuraCloudAPIRoot, 834 "pathSuffix": o.PathSuffix, 835 "pathName": o.PathName, 836 "zone": APIDefaultZone, 837 } 838 839 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 840 if err != nil { 841 return nil, err 842 } 843 // build request body 844 var body interface{} 845 846 // do request 847 data, err := o.Client.Do(ctx, "GET", url, body) 848 if err != nil { 849 return nil, err 850 } 851 852 // build results 853 results, err := o.transformReadResults(data) 854 if err != nil { 855 return nil, err 856 } 857 return results.AuthStatus, nil 858 } 859 860 /************************************************* 861 * AutoBackupOp 862 *************************************************/ 863 864 // AutoBackupOp implements AutoBackupAPI interface 865 type AutoBackupOp struct { 866 // Client APICaller 867 Client APICaller 868 // PathSuffix is used when building URL 869 PathSuffix string 870 // PathName is used when building URL 871 PathName string 872 } 873 874 // NewAutoBackupOp creates new AutoBackupOp instance 875 func NewAutoBackupOp(caller APICaller) AutoBackupAPI { 876 return GetClientFactoryFunc("AutoBackup")(caller).(AutoBackupAPI) 877 } 878 879 // Find is API call 880 func (o *AutoBackupOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*AutoBackupFindResult, error) { 881 // build request URL 882 pathBuildParameter := map[string]interface{}{ 883 "rootURL": SakuraCloudAPIRoot, 884 "pathSuffix": o.PathSuffix, 885 "pathName": o.PathName, 886 "zone": zone, 887 "conditions": conditions, 888 } 889 890 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 891 if err != nil { 892 return nil, err 893 } 894 // build request body 895 var body interface{} 896 v, err := o.transformFindArgs(conditions) 897 if err != nil { 898 return nil, err 899 } 900 body = v 901 902 // do request 903 data, err := o.Client.Do(ctx, "GET", url, body) 904 if err != nil { 905 return nil, err 906 } 907 908 // build results 909 results, err := o.transformFindResults(data) 910 if err != nil { 911 return nil, err 912 } 913 return results, err 914 } 915 916 // Create is API call 917 func (o *AutoBackupOp) Create(ctx context.Context, zone string, param *AutoBackupCreateRequest) (*AutoBackup, error) { 918 // build request URL 919 pathBuildParameter := map[string]interface{}{ 920 "rootURL": SakuraCloudAPIRoot, 921 "pathSuffix": o.PathSuffix, 922 "pathName": o.PathName, 923 "zone": zone, 924 "param": param, 925 } 926 927 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 928 if err != nil { 929 return nil, err 930 } 931 // build request body 932 var body interface{} 933 v, err := o.transformCreateArgs(param) 934 if err != nil { 935 return nil, err 936 } 937 body = v 938 939 // do request 940 data, err := o.Client.Do(ctx, "POST", url, body) 941 if err != nil { 942 return nil, err 943 } 944 945 // build results 946 results, err := o.transformCreateResults(data) 947 if err != nil { 948 return nil, err 949 } 950 return results.AutoBackup, nil 951 } 952 953 // Read is API call 954 func (o *AutoBackupOp) Read(ctx context.Context, zone string, id types.ID) (*AutoBackup, error) { 955 // build request URL 956 pathBuildParameter := map[string]interface{}{ 957 "rootURL": SakuraCloudAPIRoot, 958 "pathSuffix": o.PathSuffix, 959 "pathName": o.PathName, 960 "zone": zone, 961 "id": id, 962 } 963 964 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 965 if err != nil { 966 return nil, err 967 } 968 // build request body 969 var body interface{} 970 971 // do request 972 data, err := o.Client.Do(ctx, "GET", url, body) 973 if err != nil { 974 return nil, err 975 } 976 977 // build results 978 results, err := o.transformReadResults(data) 979 if err != nil { 980 return nil, err 981 } 982 return results.AutoBackup, nil 983 } 984 985 // Update is API call 986 func (o *AutoBackupOp) Update(ctx context.Context, zone string, id types.ID, param *AutoBackupUpdateRequest) (*AutoBackup, error) { 987 // build request URL 988 pathBuildParameter := map[string]interface{}{ 989 "rootURL": SakuraCloudAPIRoot, 990 "pathSuffix": o.PathSuffix, 991 "pathName": o.PathName, 992 "zone": zone, 993 "id": id, 994 "param": param, 995 } 996 997 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 998 if err != nil { 999 return nil, err 1000 } 1001 // build request body 1002 var body interface{} 1003 v, err := o.transformUpdateArgs(id, param) 1004 if err != nil { 1005 return nil, err 1006 } 1007 body = v 1008 1009 // do request 1010 data, err := o.Client.Do(ctx, "PUT", url, body) 1011 if err != nil { 1012 return nil, err 1013 } 1014 1015 // build results 1016 results, err := o.transformUpdateResults(data) 1017 if err != nil { 1018 return nil, err 1019 } 1020 return results.AutoBackup, nil 1021 } 1022 1023 // UpdateSettings is API call 1024 func (o *AutoBackupOp) UpdateSettings(ctx context.Context, zone string, id types.ID, param *AutoBackupUpdateSettingsRequest) (*AutoBackup, error) { 1025 // build request URL 1026 pathBuildParameter := map[string]interface{}{ 1027 "rootURL": SakuraCloudAPIRoot, 1028 "pathSuffix": o.PathSuffix, 1029 "pathName": o.PathName, 1030 "zone": zone, 1031 "id": id, 1032 "param": param, 1033 } 1034 1035 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1036 if err != nil { 1037 return nil, err 1038 } 1039 // build request body 1040 var body interface{} 1041 v, err := o.transformUpdateSettingsArgs(id, param) 1042 if err != nil { 1043 return nil, err 1044 } 1045 body = v 1046 1047 // do request 1048 data, err := o.Client.Do(ctx, "PUT", url, body) 1049 if err != nil { 1050 return nil, err 1051 } 1052 1053 // build results 1054 results, err := o.transformUpdateSettingsResults(data) 1055 if err != nil { 1056 return nil, err 1057 } 1058 return results.AutoBackup, nil 1059 } 1060 1061 // Delete is API call 1062 func (o *AutoBackupOp) Delete(ctx context.Context, zone string, id types.ID) error { 1063 // build request URL 1064 pathBuildParameter := map[string]interface{}{ 1065 "rootURL": SakuraCloudAPIRoot, 1066 "pathSuffix": o.PathSuffix, 1067 "pathName": o.PathName, 1068 "zone": zone, 1069 "id": id, 1070 } 1071 1072 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1073 if err != nil { 1074 return err 1075 } 1076 // build request body 1077 var body interface{} 1078 1079 // do request 1080 _, err = o.Client.Do(ctx, "DELETE", url, body) 1081 if err != nil { 1082 return err 1083 } 1084 1085 // build results 1086 1087 return nil 1088 } 1089 1090 /************************************************* 1091 * AutoScaleOp 1092 *************************************************/ 1093 1094 // AutoScaleOp implements AutoScaleAPI interface 1095 type AutoScaleOp struct { 1096 // Client APICaller 1097 Client APICaller 1098 // PathSuffix is used when building URL 1099 PathSuffix string 1100 // PathName is used when building URL 1101 PathName string 1102 } 1103 1104 // NewAutoScaleOp creates new AutoScaleOp instance 1105 func NewAutoScaleOp(caller APICaller) AutoScaleAPI { 1106 return GetClientFactoryFunc("AutoScale")(caller).(AutoScaleAPI) 1107 } 1108 1109 // Find is API call 1110 func (o *AutoScaleOp) Find(ctx context.Context, conditions *FindCondition) (*AutoScaleFindResult, error) { 1111 // build request URL 1112 pathBuildParameter := map[string]interface{}{ 1113 "rootURL": SakuraCloudAPIRoot, 1114 "pathSuffix": o.PathSuffix, 1115 "pathName": o.PathName, 1116 "zone": APIDefaultZone, 1117 "conditions": conditions, 1118 } 1119 1120 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 1121 if err != nil { 1122 return nil, err 1123 } 1124 // build request body 1125 var body interface{} 1126 v, err := o.transformFindArgs(conditions) 1127 if err != nil { 1128 return nil, err 1129 } 1130 body = v 1131 1132 // do request 1133 data, err := o.Client.Do(ctx, "GET", url, body) 1134 if err != nil { 1135 return nil, err 1136 } 1137 1138 // build results 1139 results, err := o.transformFindResults(data) 1140 if err != nil { 1141 return nil, err 1142 } 1143 return results, err 1144 } 1145 1146 // Create is API call 1147 func (o *AutoScaleOp) Create(ctx context.Context, param *AutoScaleCreateRequest) (*AutoScale, error) { 1148 // build request URL 1149 pathBuildParameter := map[string]interface{}{ 1150 "rootURL": SakuraCloudAPIRoot, 1151 "pathSuffix": o.PathSuffix, 1152 "pathName": o.PathName, 1153 "zone": APIDefaultZone, 1154 "param": param, 1155 } 1156 1157 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 1158 if err != nil { 1159 return nil, err 1160 } 1161 // build request body 1162 var body interface{} 1163 v, err := o.transformCreateArgs(param) 1164 if err != nil { 1165 return nil, err 1166 } 1167 body = v 1168 1169 // do request 1170 data, err := o.Client.Do(ctx, "POST", url, body) 1171 if err != nil { 1172 return nil, err 1173 } 1174 1175 // build results 1176 results, err := o.transformCreateResults(data) 1177 if err != nil { 1178 return nil, err 1179 } 1180 return results.AutoScale, nil 1181 } 1182 1183 // Read is API call 1184 func (o *AutoScaleOp) Read(ctx context.Context, id types.ID) (*AutoScale, error) { 1185 // build request URL 1186 pathBuildParameter := map[string]interface{}{ 1187 "rootURL": SakuraCloudAPIRoot, 1188 "pathSuffix": o.PathSuffix, 1189 "pathName": o.PathName, 1190 "zone": APIDefaultZone, 1191 "id": id, 1192 } 1193 1194 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1195 if err != nil { 1196 return nil, err 1197 } 1198 // build request body 1199 var body interface{} 1200 1201 // do request 1202 data, err := o.Client.Do(ctx, "GET", url, body) 1203 if err != nil { 1204 return nil, err 1205 } 1206 1207 // build results 1208 results, err := o.transformReadResults(data) 1209 if err != nil { 1210 return nil, err 1211 } 1212 return results.AutoScale, nil 1213 } 1214 1215 // Update is API call 1216 func (o *AutoScaleOp) Update(ctx context.Context, id types.ID, param *AutoScaleUpdateRequest) (*AutoScale, error) { 1217 // build request URL 1218 pathBuildParameter := map[string]interface{}{ 1219 "rootURL": SakuraCloudAPIRoot, 1220 "pathSuffix": o.PathSuffix, 1221 "pathName": o.PathName, 1222 "zone": APIDefaultZone, 1223 "id": id, 1224 "param": param, 1225 } 1226 1227 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1228 if err != nil { 1229 return nil, err 1230 } 1231 // build request body 1232 var body interface{} 1233 v, err := o.transformUpdateArgs(id, param) 1234 if err != nil { 1235 return nil, err 1236 } 1237 body = v 1238 1239 // do request 1240 data, err := o.Client.Do(ctx, "PUT", url, body) 1241 if err != nil { 1242 return nil, err 1243 } 1244 1245 // build results 1246 results, err := o.transformUpdateResults(data) 1247 if err != nil { 1248 return nil, err 1249 } 1250 return results.AutoScale, nil 1251 } 1252 1253 // UpdateSettings is API call 1254 func (o *AutoScaleOp) UpdateSettings(ctx context.Context, id types.ID, param *AutoScaleUpdateSettingsRequest) (*AutoScale, error) { 1255 // build request URL 1256 pathBuildParameter := map[string]interface{}{ 1257 "rootURL": SakuraCloudAPIRoot, 1258 "pathSuffix": o.PathSuffix, 1259 "pathName": o.PathName, 1260 "zone": APIDefaultZone, 1261 "id": id, 1262 "param": param, 1263 } 1264 1265 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1266 if err != nil { 1267 return nil, err 1268 } 1269 // build request body 1270 var body interface{} 1271 v, err := o.transformUpdateSettingsArgs(id, param) 1272 if err != nil { 1273 return nil, err 1274 } 1275 body = v 1276 1277 // do request 1278 data, err := o.Client.Do(ctx, "PUT", url, body) 1279 if err != nil { 1280 return nil, err 1281 } 1282 1283 // build results 1284 results, err := o.transformUpdateSettingsResults(data) 1285 if err != nil { 1286 return nil, err 1287 } 1288 return results.AutoScale, nil 1289 } 1290 1291 // Delete is API call 1292 func (o *AutoScaleOp) Delete(ctx context.Context, id types.ID) error { 1293 // build request URL 1294 pathBuildParameter := map[string]interface{}{ 1295 "rootURL": SakuraCloudAPIRoot, 1296 "pathSuffix": o.PathSuffix, 1297 "pathName": o.PathName, 1298 "zone": APIDefaultZone, 1299 "id": id, 1300 } 1301 1302 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1303 if err != nil { 1304 return err 1305 } 1306 // build request body 1307 var body interface{} 1308 1309 // do request 1310 _, err = o.Client.Do(ctx, "DELETE", url, body) 1311 if err != nil { 1312 return err 1313 } 1314 1315 // build results 1316 1317 return nil 1318 } 1319 1320 // Status is API call 1321 func (o *AutoScaleOp) Status(ctx context.Context, id types.ID) (*AutoScaleStatus, error) { 1322 // build request URL 1323 pathBuildParameter := map[string]interface{}{ 1324 "rootURL": SakuraCloudAPIRoot, 1325 "pathSuffix": o.PathSuffix, 1326 "pathName": o.PathName, 1327 "zone": APIDefaultZone, 1328 "id": id, 1329 } 1330 1331 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/autoscale/status", pathBuildParameter) 1332 if err != nil { 1333 return nil, err 1334 } 1335 // build request body 1336 var body interface{} 1337 1338 // do request 1339 data, err := o.Client.Do(ctx, "GET", url, body) 1340 if err != nil { 1341 return nil, err 1342 } 1343 1344 // build results 1345 results, err := o.transformStatusResults(data) 1346 if err != nil { 1347 return nil, err 1348 } 1349 return results.AutoScaleStatus, nil 1350 } 1351 1352 // ScaleUp is API call 1353 func (o *AutoScaleOp) ScaleUp(ctx context.Context, id types.ID) error { 1354 // build request URL 1355 pathBuildParameter := map[string]interface{}{ 1356 "rootURL": SakuraCloudAPIRoot, 1357 "pathSuffix": o.PathSuffix, 1358 "pathName": o.PathName, 1359 "zone": APIDefaultZone, 1360 "id": id, 1361 } 1362 1363 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/autoscale/up", pathBuildParameter) 1364 if err != nil { 1365 return err 1366 } 1367 // build request body 1368 var body interface{} 1369 1370 // do request 1371 _, err = o.Client.Do(ctx, "PUT", url, body) 1372 if err != nil { 1373 return err 1374 } 1375 1376 // build results 1377 1378 return nil 1379 } 1380 1381 // ScaleDown is API call 1382 func (o *AutoScaleOp) ScaleDown(ctx context.Context, id types.ID) error { 1383 // build request URL 1384 pathBuildParameter := map[string]interface{}{ 1385 "rootURL": SakuraCloudAPIRoot, 1386 "pathSuffix": o.PathSuffix, 1387 "pathName": o.PathName, 1388 "zone": APIDefaultZone, 1389 "id": id, 1390 } 1391 1392 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/autoscale/down", pathBuildParameter) 1393 if err != nil { 1394 return err 1395 } 1396 // build request body 1397 var body interface{} 1398 1399 // do request 1400 _, err = o.Client.Do(ctx, "PUT", url, body) 1401 if err != nil { 1402 return err 1403 } 1404 1405 // build results 1406 1407 return nil 1408 } 1409 1410 /************************************************* 1411 * BillOp 1412 *************************************************/ 1413 1414 // BillOp implements BillAPI interface 1415 type BillOp struct { 1416 // Client APICaller 1417 Client APICaller 1418 // PathSuffix is used when building URL 1419 PathSuffix string 1420 // PathName is used when building URL 1421 PathName string 1422 } 1423 1424 // NewBillOp creates new BillOp instance 1425 func NewBillOp(caller APICaller) BillAPI { 1426 return GetClientFactoryFunc("Bill")(caller).(BillAPI) 1427 } 1428 1429 // ByContract is API call 1430 func (o *BillOp) ByContract(ctx context.Context, accountID types.ID) (*BillByContractResult, error) { 1431 // build request URL 1432 pathBuildParameter := map[string]interface{}{ 1433 "rootURL": SakuraCloudAPIRoot, 1434 "pathSuffix": o.PathSuffix, 1435 "pathName": o.PathName, 1436 "zone": APIDefaultZone, 1437 "accountID": accountID, 1438 } 1439 1440 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/by-contract/{{.accountID}}", pathBuildParameter) 1441 if err != nil { 1442 return nil, err 1443 } 1444 // build request body 1445 var body interface{} 1446 1447 // do request 1448 data, err := o.Client.Do(ctx, "GET", url, body) 1449 if err != nil { 1450 return nil, err 1451 } 1452 1453 // build results 1454 results, err := o.transformByContractResults(data) 1455 if err != nil { 1456 return nil, err 1457 } 1458 return results, err 1459 } 1460 1461 // ByContractYear is API call 1462 func (o *BillOp) ByContractYear(ctx context.Context, accountID types.ID, year int) (*BillByContractYearResult, error) { 1463 // build request URL 1464 pathBuildParameter := map[string]interface{}{ 1465 "rootURL": SakuraCloudAPIRoot, 1466 "pathSuffix": o.PathSuffix, 1467 "pathName": o.PathName, 1468 "zone": APIDefaultZone, 1469 "accountID": accountID, 1470 "year": year, 1471 } 1472 1473 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/by-contract/{{.accountID}}/{{.year}}", pathBuildParameter) 1474 if err != nil { 1475 return nil, err 1476 } 1477 // build request body 1478 var body interface{} 1479 1480 // do request 1481 data, err := o.Client.Do(ctx, "GET", url, body) 1482 if err != nil { 1483 return nil, err 1484 } 1485 1486 // build results 1487 results, err := o.transformByContractYearResults(data) 1488 if err != nil { 1489 return nil, err 1490 } 1491 return results, err 1492 } 1493 1494 // ByContractYearMonth is API call 1495 func (o *BillOp) ByContractYearMonth(ctx context.Context, accountID types.ID, year int, month int) (*BillByContractYearMonthResult, error) { 1496 // build request URL 1497 pathBuildParameter := map[string]interface{}{ 1498 "rootURL": SakuraCloudAPIRoot, 1499 "pathSuffix": o.PathSuffix, 1500 "pathName": o.PathName, 1501 "zone": APIDefaultZone, 1502 "accountID": accountID, 1503 "year": year, 1504 "month": month, 1505 } 1506 1507 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/by-contract/{{.accountID}}/{{.year}}/{{.month}}", pathBuildParameter) 1508 if err != nil { 1509 return nil, err 1510 } 1511 // build request body 1512 var body interface{} 1513 1514 // do request 1515 data, err := o.Client.Do(ctx, "GET", url, body) 1516 if err != nil { 1517 return nil, err 1518 } 1519 1520 // build results 1521 results, err := o.transformByContractYearMonthResults(data) 1522 if err != nil { 1523 return nil, err 1524 } 1525 return results, err 1526 } 1527 1528 // Read is API call 1529 func (o *BillOp) Read(ctx context.Context, id types.ID) (*BillReadResult, error) { 1530 // build request URL 1531 pathBuildParameter := map[string]interface{}{ 1532 "rootURL": SakuraCloudAPIRoot, 1533 "pathSuffix": o.PathSuffix, 1534 "pathName": o.PathName, 1535 "zone": APIDefaultZone, 1536 "id": id, 1537 } 1538 1539 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/id/{{.id}}", pathBuildParameter) 1540 if err != nil { 1541 return nil, err 1542 } 1543 // build request body 1544 var body interface{} 1545 1546 // do request 1547 data, err := o.Client.Do(ctx, "GET", url, body) 1548 if err != nil { 1549 return nil, err 1550 } 1551 1552 // build results 1553 results, err := o.transformReadResults(data) 1554 if err != nil { 1555 return nil, err 1556 } 1557 return results, err 1558 } 1559 1560 // Details is API call 1561 func (o *BillOp) Details(ctx context.Context, MemberCode string, id types.ID) (*BillDetailsResult, error) { 1562 // build request URL 1563 pathBuildParameter := map[string]interface{}{ 1564 "rootURL": SakuraCloudAPIRoot, 1565 "pathSuffix": o.PathSuffix, 1566 "pathName": o.PathName, 1567 "zone": APIDefaultZone, 1568 "MemberCode": MemberCode, 1569 "id": id, 1570 } 1571 1572 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}detail/{{.MemberCode}}/{{.id}}", pathBuildParameter) 1573 if err != nil { 1574 return nil, err 1575 } 1576 // build request body 1577 var body interface{} 1578 1579 // do request 1580 data, err := o.Client.Do(ctx, "GET", url, body) 1581 if err != nil { 1582 return nil, err 1583 } 1584 1585 // build results 1586 results, err := o.transformDetailsResults(data) 1587 if err != nil { 1588 return nil, err 1589 } 1590 return results, err 1591 } 1592 1593 // DetailsCSV is API call 1594 func (o *BillOp) DetailsCSV(ctx context.Context, MemberCode string, id types.ID) (*BillDetailCSV, error) { 1595 // build request URL 1596 pathBuildParameter := map[string]interface{}{ 1597 "rootURL": SakuraCloudAPIRoot, 1598 "pathSuffix": o.PathSuffix, 1599 "pathName": o.PathName, 1600 "zone": APIDefaultZone, 1601 "MemberCode": MemberCode, 1602 "id": id, 1603 } 1604 1605 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}detail/{{.MemberCode}}/{{.id}}/csv", pathBuildParameter) 1606 if err != nil { 1607 return nil, err 1608 } 1609 // build request body 1610 var body interface{} 1611 1612 // do request 1613 data, err := o.Client.Do(ctx, "GET", url, body) 1614 if err != nil { 1615 return nil, err 1616 } 1617 1618 // build results 1619 results, err := o.transformDetailsCSVResults(data) 1620 if err != nil { 1621 return nil, err 1622 } 1623 return results.BillDetailCSV, nil 1624 } 1625 1626 /************************************************* 1627 * BridgeOp 1628 *************************************************/ 1629 1630 // BridgeOp implements BridgeAPI interface 1631 type BridgeOp struct { 1632 // Client APICaller 1633 Client APICaller 1634 // PathSuffix is used when building URL 1635 PathSuffix string 1636 // PathName is used when building URL 1637 PathName string 1638 } 1639 1640 // NewBridgeOp creates new BridgeOp instance 1641 func NewBridgeOp(caller APICaller) BridgeAPI { 1642 return GetClientFactoryFunc("Bridge")(caller).(BridgeAPI) 1643 } 1644 1645 // Find is API call 1646 func (o *BridgeOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*BridgeFindResult, error) { 1647 // build request URL 1648 pathBuildParameter := map[string]interface{}{ 1649 "rootURL": SakuraCloudAPIRoot, 1650 "pathSuffix": o.PathSuffix, 1651 "pathName": o.PathName, 1652 "zone": zone, 1653 "conditions": conditions, 1654 } 1655 1656 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 1657 if err != nil { 1658 return nil, err 1659 } 1660 // build request body 1661 var body interface{} 1662 v, err := o.transformFindArgs(conditions) 1663 if err != nil { 1664 return nil, err 1665 } 1666 body = v 1667 1668 // do request 1669 data, err := o.Client.Do(ctx, "GET", url, body) 1670 if err != nil { 1671 return nil, err 1672 } 1673 1674 // build results 1675 results, err := o.transformFindResults(data) 1676 if err != nil { 1677 return nil, err 1678 } 1679 return results, err 1680 } 1681 1682 // Create is API call 1683 func (o *BridgeOp) Create(ctx context.Context, zone string, param *BridgeCreateRequest) (*Bridge, error) { 1684 // build request URL 1685 pathBuildParameter := map[string]interface{}{ 1686 "rootURL": SakuraCloudAPIRoot, 1687 "pathSuffix": o.PathSuffix, 1688 "pathName": o.PathName, 1689 "zone": zone, 1690 "param": param, 1691 } 1692 1693 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 1694 if err != nil { 1695 return nil, err 1696 } 1697 // build request body 1698 var body interface{} 1699 v, err := o.transformCreateArgs(param) 1700 if err != nil { 1701 return nil, err 1702 } 1703 body = v 1704 1705 // do request 1706 data, err := o.Client.Do(ctx, "POST", url, body) 1707 if err != nil { 1708 return nil, err 1709 } 1710 1711 // build results 1712 results, err := o.transformCreateResults(data) 1713 if err != nil { 1714 return nil, err 1715 } 1716 return results.Bridge, nil 1717 } 1718 1719 // Read is API call 1720 func (o *BridgeOp) Read(ctx context.Context, zone string, id types.ID) (*Bridge, error) { 1721 // build request URL 1722 pathBuildParameter := map[string]interface{}{ 1723 "rootURL": SakuraCloudAPIRoot, 1724 "pathSuffix": o.PathSuffix, 1725 "pathName": o.PathName, 1726 "zone": zone, 1727 "id": id, 1728 } 1729 1730 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1731 if err != nil { 1732 return nil, err 1733 } 1734 // build request body 1735 var body interface{} 1736 1737 // do request 1738 data, err := o.Client.Do(ctx, "GET", url, body) 1739 if err != nil { 1740 return nil, err 1741 } 1742 1743 // build results 1744 results, err := o.transformReadResults(data) 1745 if err != nil { 1746 return nil, err 1747 } 1748 return results.Bridge, nil 1749 } 1750 1751 // Update is API call 1752 func (o *BridgeOp) Update(ctx context.Context, zone string, id types.ID, param *BridgeUpdateRequest) (*Bridge, error) { 1753 // build request URL 1754 pathBuildParameter := map[string]interface{}{ 1755 "rootURL": SakuraCloudAPIRoot, 1756 "pathSuffix": o.PathSuffix, 1757 "pathName": o.PathName, 1758 "zone": zone, 1759 "id": id, 1760 "param": param, 1761 } 1762 1763 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1764 if err != nil { 1765 return nil, err 1766 } 1767 // build request body 1768 var body interface{} 1769 v, err := o.transformUpdateArgs(id, param) 1770 if err != nil { 1771 return nil, err 1772 } 1773 body = v 1774 1775 // do request 1776 data, err := o.Client.Do(ctx, "PUT", url, body) 1777 if err != nil { 1778 return nil, err 1779 } 1780 1781 // build results 1782 results, err := o.transformUpdateResults(data) 1783 if err != nil { 1784 return nil, err 1785 } 1786 return results.Bridge, nil 1787 } 1788 1789 // Delete is API call 1790 func (o *BridgeOp) Delete(ctx context.Context, zone string, id types.ID) error { 1791 // build request URL 1792 pathBuildParameter := map[string]interface{}{ 1793 "rootURL": SakuraCloudAPIRoot, 1794 "pathSuffix": o.PathSuffix, 1795 "pathName": o.PathName, 1796 "zone": zone, 1797 "id": id, 1798 } 1799 1800 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1801 if err != nil { 1802 return err 1803 } 1804 // build request body 1805 var body interface{} 1806 1807 // do request 1808 _, err = o.Client.Do(ctx, "DELETE", url, body) 1809 if err != nil { 1810 return err 1811 } 1812 1813 // build results 1814 1815 return nil 1816 } 1817 1818 /************************************************* 1819 * CDROMOp 1820 *************************************************/ 1821 1822 // CDROMOp implements CDROMAPI interface 1823 type CDROMOp struct { 1824 // Client APICaller 1825 Client APICaller 1826 // PathSuffix is used when building URL 1827 PathSuffix string 1828 // PathName is used when building URL 1829 PathName string 1830 } 1831 1832 // NewCDROMOp creates new CDROMOp instance 1833 func NewCDROMOp(caller APICaller) CDROMAPI { 1834 return GetClientFactoryFunc("CDROM")(caller).(CDROMAPI) 1835 } 1836 1837 // Find is API call 1838 func (o *CDROMOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*CDROMFindResult, error) { 1839 // build request URL 1840 pathBuildParameter := map[string]interface{}{ 1841 "rootURL": SakuraCloudAPIRoot, 1842 "pathSuffix": o.PathSuffix, 1843 "pathName": o.PathName, 1844 "zone": zone, 1845 "conditions": conditions, 1846 } 1847 1848 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 1849 if err != nil { 1850 return nil, err 1851 } 1852 // build request body 1853 var body interface{} 1854 v, err := o.transformFindArgs(conditions) 1855 if err != nil { 1856 return nil, err 1857 } 1858 body = v 1859 1860 // do request 1861 data, err := o.Client.Do(ctx, "GET", url, body) 1862 if err != nil { 1863 return nil, err 1864 } 1865 1866 // build results 1867 results, err := o.transformFindResults(data) 1868 if err != nil { 1869 return nil, err 1870 } 1871 return results, err 1872 } 1873 1874 // Create is API call 1875 func (o *CDROMOp) Create(ctx context.Context, zone string, param *CDROMCreateRequest) (*CDROM, *FTPServer, error) { 1876 // build request URL 1877 pathBuildParameter := map[string]interface{}{ 1878 "rootURL": SakuraCloudAPIRoot, 1879 "pathSuffix": o.PathSuffix, 1880 "pathName": o.PathName, 1881 "zone": zone, 1882 "param": param, 1883 } 1884 1885 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 1886 if err != nil { 1887 return nil, nil, err 1888 } 1889 // build request body 1890 var body interface{} 1891 v, err := o.transformCreateArgs(param) 1892 if err != nil { 1893 return nil, nil, err 1894 } 1895 body = v 1896 1897 // do request 1898 data, err := o.Client.Do(ctx, "POST", url, body) 1899 if err != nil { 1900 return nil, nil, err 1901 } 1902 1903 // build results 1904 results, err := o.transformCreateResults(data) 1905 if err != nil { 1906 return nil, nil, err 1907 } 1908 return results.CDROM, results.FTPServer, nil 1909 } 1910 1911 // Read is API call 1912 func (o *CDROMOp) Read(ctx context.Context, zone string, id types.ID) (*CDROM, error) { 1913 // build request URL 1914 pathBuildParameter := map[string]interface{}{ 1915 "rootURL": SakuraCloudAPIRoot, 1916 "pathSuffix": o.PathSuffix, 1917 "pathName": o.PathName, 1918 "zone": zone, 1919 "id": id, 1920 } 1921 1922 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1923 if err != nil { 1924 return nil, err 1925 } 1926 // build request body 1927 var body interface{} 1928 1929 // do request 1930 data, err := o.Client.Do(ctx, "GET", url, body) 1931 if err != nil { 1932 return nil, err 1933 } 1934 1935 // build results 1936 results, err := o.transformReadResults(data) 1937 if err != nil { 1938 return nil, err 1939 } 1940 return results.CDROM, nil 1941 } 1942 1943 // Update is API call 1944 func (o *CDROMOp) Update(ctx context.Context, zone string, id types.ID, param *CDROMUpdateRequest) (*CDROM, error) { 1945 // build request URL 1946 pathBuildParameter := map[string]interface{}{ 1947 "rootURL": SakuraCloudAPIRoot, 1948 "pathSuffix": o.PathSuffix, 1949 "pathName": o.PathName, 1950 "zone": zone, 1951 "id": id, 1952 "param": param, 1953 } 1954 1955 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1956 if err != nil { 1957 return nil, err 1958 } 1959 // build request body 1960 var body interface{} 1961 v, err := o.transformUpdateArgs(id, param) 1962 if err != nil { 1963 return nil, err 1964 } 1965 body = v 1966 1967 // do request 1968 data, err := o.Client.Do(ctx, "PUT", url, body) 1969 if err != nil { 1970 return nil, err 1971 } 1972 1973 // build results 1974 results, err := o.transformUpdateResults(data) 1975 if err != nil { 1976 return nil, err 1977 } 1978 return results.CDROM, nil 1979 } 1980 1981 // Delete is API call 1982 func (o *CDROMOp) Delete(ctx context.Context, zone string, id types.ID) error { 1983 // build request URL 1984 pathBuildParameter := map[string]interface{}{ 1985 "rootURL": SakuraCloudAPIRoot, 1986 "pathSuffix": o.PathSuffix, 1987 "pathName": o.PathName, 1988 "zone": zone, 1989 "id": id, 1990 } 1991 1992 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 1993 if err != nil { 1994 return err 1995 } 1996 // build request body 1997 var body interface{} 1998 1999 // do request 2000 _, err = o.Client.Do(ctx, "DELETE", url, body) 2001 if err != nil { 2002 return err 2003 } 2004 2005 // build results 2006 2007 return nil 2008 } 2009 2010 // OpenFTP is API call 2011 func (o *CDROMOp) OpenFTP(ctx context.Context, zone string, id types.ID, openOption *OpenFTPRequest) (*FTPServer, error) { 2012 // build request URL 2013 pathBuildParameter := map[string]interface{}{ 2014 "rootURL": SakuraCloudAPIRoot, 2015 "pathSuffix": o.PathSuffix, 2016 "pathName": o.PathName, 2017 "zone": zone, 2018 "id": id, 2019 "openOption": openOption, 2020 } 2021 2022 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ftp", pathBuildParameter) 2023 if err != nil { 2024 return nil, err 2025 } 2026 // build request body 2027 var body interface{} 2028 v, err := o.transformOpenFTPArgs(id, openOption) 2029 if err != nil { 2030 return nil, err 2031 } 2032 body = v 2033 2034 // do request 2035 data, err := o.Client.Do(ctx, "PUT", url, body) 2036 if err != nil { 2037 return nil, err 2038 } 2039 2040 // build results 2041 results, err := o.transformOpenFTPResults(data) 2042 if err != nil { 2043 return nil, err 2044 } 2045 return results.FTPServer, nil 2046 } 2047 2048 // CloseFTP is API call 2049 func (o *CDROMOp) CloseFTP(ctx context.Context, zone string, id types.ID) error { 2050 // build request URL 2051 pathBuildParameter := map[string]interface{}{ 2052 "rootURL": SakuraCloudAPIRoot, 2053 "pathSuffix": o.PathSuffix, 2054 "pathName": o.PathName, 2055 "zone": zone, 2056 "id": id, 2057 } 2058 2059 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ftp", pathBuildParameter) 2060 if err != nil { 2061 return err 2062 } 2063 // build request body 2064 var body interface{} 2065 2066 // do request 2067 _, err = o.Client.Do(ctx, "DELETE", url, body) 2068 if err != nil { 2069 return err 2070 } 2071 2072 // build results 2073 2074 return nil 2075 } 2076 2077 /************************************************* 2078 * CertificateAuthorityOp 2079 *************************************************/ 2080 2081 // CertificateAuthorityOp implements CertificateAuthorityAPI interface 2082 type CertificateAuthorityOp struct { 2083 // Client APICaller 2084 Client APICaller 2085 // PathSuffix is used when building URL 2086 PathSuffix string 2087 // PathName is used when building URL 2088 PathName string 2089 } 2090 2091 // NewCertificateAuthorityOp creates new CertificateAuthorityOp instance 2092 func NewCertificateAuthorityOp(caller APICaller) CertificateAuthorityAPI { 2093 return GetClientFactoryFunc("CertificateAuthority")(caller).(CertificateAuthorityAPI) 2094 } 2095 2096 // Find is API call 2097 func (o *CertificateAuthorityOp) Find(ctx context.Context, conditions *FindCondition) (*CertificateAuthorityFindResult, error) { 2098 // build request URL 2099 pathBuildParameter := map[string]interface{}{ 2100 "rootURL": SakuraCloudAPIRoot, 2101 "pathSuffix": o.PathSuffix, 2102 "pathName": o.PathName, 2103 "zone": APIDefaultZone, 2104 "conditions": conditions, 2105 } 2106 2107 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 2108 if err != nil { 2109 return nil, err 2110 } 2111 // build request body 2112 var body interface{} 2113 v, err := o.transformFindArgs(conditions) 2114 if err != nil { 2115 return nil, err 2116 } 2117 body = v 2118 2119 // do request 2120 data, err := o.Client.Do(ctx, "GET", url, body) 2121 if err != nil { 2122 return nil, err 2123 } 2124 2125 // build results 2126 results, err := o.transformFindResults(data) 2127 if err != nil { 2128 return nil, err 2129 } 2130 return results, err 2131 } 2132 2133 // Create is API call 2134 func (o *CertificateAuthorityOp) Create(ctx context.Context, param *CertificateAuthorityCreateRequest) (*CertificateAuthority, error) { 2135 // build request URL 2136 pathBuildParameter := map[string]interface{}{ 2137 "rootURL": SakuraCloudAPIRoot, 2138 "pathSuffix": o.PathSuffix, 2139 "pathName": o.PathName, 2140 "zone": APIDefaultZone, 2141 "param": param, 2142 } 2143 2144 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 2145 if err != nil { 2146 return nil, err 2147 } 2148 // build request body 2149 var body interface{} 2150 v, err := o.transformCreateArgs(param) 2151 if err != nil { 2152 return nil, err 2153 } 2154 body = v 2155 2156 // do request 2157 data, err := o.Client.Do(ctx, "POST", url, body) 2158 if err != nil { 2159 return nil, err 2160 } 2161 2162 // build results 2163 results, err := o.transformCreateResults(data) 2164 if err != nil { 2165 return nil, err 2166 } 2167 return results.CertificateAuthority, nil 2168 } 2169 2170 // Read is API call 2171 func (o *CertificateAuthorityOp) Read(ctx context.Context, id types.ID) (*CertificateAuthority, error) { 2172 // build request URL 2173 pathBuildParameter := map[string]interface{}{ 2174 "rootURL": SakuraCloudAPIRoot, 2175 "pathSuffix": o.PathSuffix, 2176 "pathName": o.PathName, 2177 "zone": APIDefaultZone, 2178 "id": id, 2179 } 2180 2181 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2182 if err != nil { 2183 return nil, err 2184 } 2185 // build request body 2186 var body interface{} 2187 2188 // do request 2189 data, err := o.Client.Do(ctx, "GET", url, body) 2190 if err != nil { 2191 return nil, err 2192 } 2193 2194 // build results 2195 results, err := o.transformReadResults(data) 2196 if err != nil { 2197 return nil, err 2198 } 2199 return results.CertificateAuthority, nil 2200 } 2201 2202 // Update is API call 2203 func (o *CertificateAuthorityOp) Update(ctx context.Context, id types.ID, param *CertificateAuthorityUpdateRequest) (*CertificateAuthority, error) { 2204 // build request URL 2205 pathBuildParameter := map[string]interface{}{ 2206 "rootURL": SakuraCloudAPIRoot, 2207 "pathSuffix": o.PathSuffix, 2208 "pathName": o.PathName, 2209 "zone": APIDefaultZone, 2210 "id": id, 2211 "param": param, 2212 } 2213 2214 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2215 if err != nil { 2216 return nil, err 2217 } 2218 // build request body 2219 var body interface{} 2220 v, err := o.transformUpdateArgs(id, param) 2221 if err != nil { 2222 return nil, err 2223 } 2224 body = v 2225 2226 // do request 2227 data, err := o.Client.Do(ctx, "PUT", url, body) 2228 if err != nil { 2229 return nil, err 2230 } 2231 2232 // build results 2233 results, err := o.transformUpdateResults(data) 2234 if err != nil { 2235 return nil, err 2236 } 2237 return results.CertificateAuthority, nil 2238 } 2239 2240 // Delete is API call 2241 func (o *CertificateAuthorityOp) Delete(ctx context.Context, id types.ID) error { 2242 // build request URL 2243 pathBuildParameter := map[string]interface{}{ 2244 "rootURL": SakuraCloudAPIRoot, 2245 "pathSuffix": o.PathSuffix, 2246 "pathName": o.PathName, 2247 "zone": APIDefaultZone, 2248 "id": id, 2249 } 2250 2251 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2252 if err != nil { 2253 return err 2254 } 2255 // build request body 2256 var body interface{} 2257 2258 // do request 2259 _, err = o.Client.Do(ctx, "DELETE", url, body) 2260 if err != nil { 2261 return err 2262 } 2263 2264 // build results 2265 2266 return nil 2267 } 2268 2269 // Detail is API call 2270 func (o *CertificateAuthorityOp) Detail(ctx context.Context, id types.ID) (*CertificateAuthorityDetail, error) { 2271 // build request URL 2272 pathBuildParameter := map[string]interface{}{ 2273 "rootURL": SakuraCloudAPIRoot, 2274 "pathSuffix": o.PathSuffix, 2275 "pathName": o.PathName, 2276 "zone": APIDefaultZone, 2277 "id": id, 2278 } 2279 2280 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority", pathBuildParameter) 2281 if err != nil { 2282 return nil, err 2283 } 2284 // build request body 2285 var body interface{} 2286 2287 // do request 2288 data, err := o.Client.Do(ctx, "GET", url, body) 2289 if err != nil { 2290 return nil, err 2291 } 2292 2293 // build results 2294 results, err := o.transformDetailResults(data) 2295 if err != nil { 2296 return nil, err 2297 } 2298 return results.CertificateAuthority, nil 2299 } 2300 2301 // AddClient is API call 2302 func (o *CertificateAuthorityOp) AddClient(ctx context.Context, id types.ID, param *CertificateAuthorityAddClientParam) (*CertificateAuthorityAddClientOrServerResult, error) { 2303 // build request URL 2304 pathBuildParameter := map[string]interface{}{ 2305 "rootURL": SakuraCloudAPIRoot, 2306 "pathSuffix": o.PathSuffix, 2307 "pathName": o.PathName, 2308 "zone": APIDefaultZone, 2309 "id": id, 2310 "param": param, 2311 } 2312 2313 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients", pathBuildParameter) 2314 if err != nil { 2315 return nil, err 2316 } 2317 // build request body 2318 var body interface{} 2319 v, err := o.transformAddClientArgs(id, param) 2320 if err != nil { 2321 return nil, err 2322 } 2323 body = v 2324 2325 // do request 2326 data, err := o.Client.Do(ctx, "POST", url, body) 2327 if err != nil { 2328 return nil, err 2329 } 2330 2331 // build results 2332 results, err := o.transformAddClientResults(data) 2333 if err != nil { 2334 return nil, err 2335 } 2336 return results.CertificateAuthority, nil 2337 } 2338 2339 // ListClients is API call 2340 func (o *CertificateAuthorityOp) ListClients(ctx context.Context, id types.ID) (*CertificateAuthorityListClientsResult, error) { 2341 // build request URL 2342 pathBuildParameter := map[string]interface{}{ 2343 "rootURL": SakuraCloudAPIRoot, 2344 "pathSuffix": o.PathSuffix, 2345 "pathName": o.PathName, 2346 "zone": APIDefaultZone, 2347 "id": id, 2348 } 2349 2350 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients", pathBuildParameter) 2351 if err != nil { 2352 return nil, err 2353 } 2354 // build request body 2355 var body interface{} 2356 2357 // do request 2358 data, err := o.Client.Do(ctx, "GET", url, body) 2359 if err != nil { 2360 return nil, err 2361 } 2362 2363 // build results 2364 results, err := o.transformListClientsResults(data) 2365 if err != nil { 2366 return nil, err 2367 } 2368 return results, err 2369 } 2370 2371 // ReadClient is API call 2372 func (o *CertificateAuthorityOp) ReadClient(ctx context.Context, id types.ID, clientID string) (*CertificateAuthorityClient, error) { 2373 // build request URL 2374 pathBuildParameter := map[string]interface{}{ 2375 "rootURL": SakuraCloudAPIRoot, 2376 "pathSuffix": o.PathSuffix, 2377 "pathName": o.PathName, 2378 "zone": APIDefaultZone, 2379 "id": id, 2380 "clientID": clientID, 2381 } 2382 2383 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients/{{.clientID}}", pathBuildParameter) 2384 if err != nil { 2385 return nil, err 2386 } 2387 // build request body 2388 var body interface{} 2389 2390 // do request 2391 data, err := o.Client.Do(ctx, "GET", url, body) 2392 if err != nil { 2393 return nil, err 2394 } 2395 2396 // build results 2397 results, err := o.transformReadClientResults(data) 2398 if err != nil { 2399 return nil, err 2400 } 2401 return results.CertificateAuthority, nil 2402 } 2403 2404 // RevokeClient is API call 2405 func (o *CertificateAuthorityOp) RevokeClient(ctx context.Context, id types.ID, clientID string) error { 2406 // build request URL 2407 pathBuildParameter := map[string]interface{}{ 2408 "rootURL": SakuraCloudAPIRoot, 2409 "pathSuffix": o.PathSuffix, 2410 "pathName": o.PathName, 2411 "zone": APIDefaultZone, 2412 "id": id, 2413 "clientID": clientID, 2414 } 2415 2416 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients/{{.clientID}}/revoke", pathBuildParameter) 2417 if err != nil { 2418 return err 2419 } 2420 // build request body 2421 var body interface{} 2422 2423 // do request 2424 _, err = o.Client.Do(ctx, "PUT", url, body) 2425 if err != nil { 2426 return err 2427 } 2428 2429 // build results 2430 2431 return nil 2432 } 2433 2434 // HoldClient is API call 2435 func (o *CertificateAuthorityOp) HoldClient(ctx context.Context, id types.ID, clientID string) error { 2436 // build request URL 2437 pathBuildParameter := map[string]interface{}{ 2438 "rootURL": SakuraCloudAPIRoot, 2439 "pathSuffix": o.PathSuffix, 2440 "pathName": o.PathName, 2441 "zone": APIDefaultZone, 2442 "id": id, 2443 "clientID": clientID, 2444 } 2445 2446 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients/{{.clientID}}/hold", pathBuildParameter) 2447 if err != nil { 2448 return err 2449 } 2450 // build request body 2451 var body interface{} 2452 2453 // do request 2454 _, err = o.Client.Do(ctx, "PUT", url, body) 2455 if err != nil { 2456 return err 2457 } 2458 2459 // build results 2460 2461 return nil 2462 } 2463 2464 // ResumeClient is API call 2465 func (o *CertificateAuthorityOp) ResumeClient(ctx context.Context, id types.ID, clientID string) error { 2466 // build request URL 2467 pathBuildParameter := map[string]interface{}{ 2468 "rootURL": SakuraCloudAPIRoot, 2469 "pathSuffix": o.PathSuffix, 2470 "pathName": o.PathName, 2471 "zone": APIDefaultZone, 2472 "id": id, 2473 "clientID": clientID, 2474 } 2475 2476 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients/{{.clientID}}/resume", pathBuildParameter) 2477 if err != nil { 2478 return err 2479 } 2480 // build request body 2481 var body interface{} 2482 2483 // do request 2484 _, err = o.Client.Do(ctx, "PUT", url, body) 2485 if err != nil { 2486 return err 2487 } 2488 2489 // build results 2490 2491 return nil 2492 } 2493 2494 // DenyClient is API call 2495 func (o *CertificateAuthorityOp) DenyClient(ctx context.Context, id types.ID, clientID string) error { 2496 // build request URL 2497 pathBuildParameter := map[string]interface{}{ 2498 "rootURL": SakuraCloudAPIRoot, 2499 "pathSuffix": o.PathSuffix, 2500 "pathName": o.PathName, 2501 "zone": APIDefaultZone, 2502 "id": id, 2503 "clientID": clientID, 2504 } 2505 2506 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/clients/{{.clientID}}/deny", pathBuildParameter) 2507 if err != nil { 2508 return err 2509 } 2510 // build request body 2511 var body interface{} 2512 2513 // do request 2514 _, err = o.Client.Do(ctx, "PUT", url, body) 2515 if err != nil { 2516 return err 2517 } 2518 2519 // build results 2520 2521 return nil 2522 } 2523 2524 // AddServer is API call 2525 func (o *CertificateAuthorityOp) AddServer(ctx context.Context, id types.ID, param *CertificateAuthorityAddServerParam) (*CertificateAuthorityAddClientOrServerResult, error) { 2526 // build request URL 2527 pathBuildParameter := map[string]interface{}{ 2528 "rootURL": SakuraCloudAPIRoot, 2529 "pathSuffix": o.PathSuffix, 2530 "pathName": o.PathName, 2531 "zone": APIDefaultZone, 2532 "id": id, 2533 "param": param, 2534 } 2535 2536 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/servers", pathBuildParameter) 2537 if err != nil { 2538 return nil, err 2539 } 2540 // build request body 2541 var body interface{} 2542 v, err := o.transformAddServerArgs(id, param) 2543 if err != nil { 2544 return nil, err 2545 } 2546 body = v 2547 2548 // do request 2549 data, err := o.Client.Do(ctx, "POST", url, body) 2550 if err != nil { 2551 return nil, err 2552 } 2553 2554 // build results 2555 results, err := o.transformAddServerResults(data) 2556 if err != nil { 2557 return nil, err 2558 } 2559 return results.CertificateAuthority, nil 2560 } 2561 2562 // ListServers is API call 2563 func (o *CertificateAuthorityOp) ListServers(ctx context.Context, id types.ID) (*CertificateAuthorityListServersResult, error) { 2564 // build request URL 2565 pathBuildParameter := map[string]interface{}{ 2566 "rootURL": SakuraCloudAPIRoot, 2567 "pathSuffix": o.PathSuffix, 2568 "pathName": o.PathName, 2569 "zone": APIDefaultZone, 2570 "id": id, 2571 } 2572 2573 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/servers", pathBuildParameter) 2574 if err != nil { 2575 return nil, err 2576 } 2577 // build request body 2578 var body interface{} 2579 2580 // do request 2581 data, err := o.Client.Do(ctx, "GET", url, body) 2582 if err != nil { 2583 return nil, err 2584 } 2585 2586 // build results 2587 results, err := o.transformListServersResults(data) 2588 if err != nil { 2589 return nil, err 2590 } 2591 return results, err 2592 } 2593 2594 // ReadServer is API call 2595 func (o *CertificateAuthorityOp) ReadServer(ctx context.Context, id types.ID, serverID string) (*CertificateAuthorityServer, error) { 2596 // build request URL 2597 pathBuildParameter := map[string]interface{}{ 2598 "rootURL": SakuraCloudAPIRoot, 2599 "pathSuffix": o.PathSuffix, 2600 "pathName": o.PathName, 2601 "zone": APIDefaultZone, 2602 "id": id, 2603 "serverID": serverID, 2604 } 2605 2606 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/servers/{{.serverID}}", pathBuildParameter) 2607 if err != nil { 2608 return nil, err 2609 } 2610 // build request body 2611 var body interface{} 2612 2613 // do request 2614 data, err := o.Client.Do(ctx, "GET", url, body) 2615 if err != nil { 2616 return nil, err 2617 } 2618 2619 // build results 2620 results, err := o.transformReadServerResults(data) 2621 if err != nil { 2622 return nil, err 2623 } 2624 return results.CertificateAuthority, nil 2625 } 2626 2627 // RevokeServer is API call 2628 func (o *CertificateAuthorityOp) RevokeServer(ctx context.Context, id types.ID, serverID string) error { 2629 // build request URL 2630 pathBuildParameter := map[string]interface{}{ 2631 "rootURL": SakuraCloudAPIRoot, 2632 "pathSuffix": o.PathSuffix, 2633 "pathName": o.PathName, 2634 "zone": APIDefaultZone, 2635 "id": id, 2636 "serverID": serverID, 2637 } 2638 2639 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/servers/{{.serverID}}/revoke", pathBuildParameter) 2640 if err != nil { 2641 return err 2642 } 2643 // build request body 2644 var body interface{} 2645 2646 // do request 2647 _, err = o.Client.Do(ctx, "PUT", url, body) 2648 if err != nil { 2649 return err 2650 } 2651 2652 // build results 2653 2654 return nil 2655 } 2656 2657 // HoldServer is API call 2658 func (o *CertificateAuthorityOp) HoldServer(ctx context.Context, id types.ID, serverID string) error { 2659 // build request URL 2660 pathBuildParameter := map[string]interface{}{ 2661 "rootURL": SakuraCloudAPIRoot, 2662 "pathSuffix": o.PathSuffix, 2663 "pathName": o.PathName, 2664 "zone": APIDefaultZone, 2665 "id": id, 2666 "serverID": serverID, 2667 } 2668 2669 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/servers/{{.serverID}}/hold", pathBuildParameter) 2670 if err != nil { 2671 return err 2672 } 2673 // build request body 2674 var body interface{} 2675 2676 // do request 2677 _, err = o.Client.Do(ctx, "PUT", url, body) 2678 if err != nil { 2679 return err 2680 } 2681 2682 // build results 2683 2684 return nil 2685 } 2686 2687 // ResumeServer is API call 2688 func (o *CertificateAuthorityOp) ResumeServer(ctx context.Context, id types.ID, serverID string) error { 2689 // build request URL 2690 pathBuildParameter := map[string]interface{}{ 2691 "rootURL": SakuraCloudAPIRoot, 2692 "pathSuffix": o.PathSuffix, 2693 "pathName": o.PathName, 2694 "zone": APIDefaultZone, 2695 "id": id, 2696 "serverID": serverID, 2697 } 2698 2699 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/certificateauthority/servers/{{.serverID}}/resume", pathBuildParameter) 2700 if err != nil { 2701 return err 2702 } 2703 // build request body 2704 var body interface{} 2705 2706 // do request 2707 _, err = o.Client.Do(ctx, "PUT", url, body) 2708 if err != nil { 2709 return err 2710 } 2711 2712 // build results 2713 2714 return nil 2715 } 2716 2717 /************************************************* 2718 * ContainerRegistryOp 2719 *************************************************/ 2720 2721 // ContainerRegistryOp implements ContainerRegistryAPI interface 2722 type ContainerRegistryOp struct { 2723 // Client APICaller 2724 Client APICaller 2725 // PathSuffix is used when building URL 2726 PathSuffix string 2727 // PathName is used when building URL 2728 PathName string 2729 } 2730 2731 // NewContainerRegistryOp creates new ContainerRegistryOp instance 2732 func NewContainerRegistryOp(caller APICaller) ContainerRegistryAPI { 2733 return GetClientFactoryFunc("ContainerRegistry")(caller).(ContainerRegistryAPI) 2734 } 2735 2736 // Find is API call 2737 func (o *ContainerRegistryOp) Find(ctx context.Context, conditions *FindCondition) (*ContainerRegistryFindResult, error) { 2738 // build request URL 2739 pathBuildParameter := map[string]interface{}{ 2740 "rootURL": SakuraCloudAPIRoot, 2741 "pathSuffix": o.PathSuffix, 2742 "pathName": o.PathName, 2743 "zone": APIDefaultZone, 2744 "conditions": conditions, 2745 } 2746 2747 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 2748 if err != nil { 2749 return nil, err 2750 } 2751 // build request body 2752 var body interface{} 2753 v, err := o.transformFindArgs(conditions) 2754 if err != nil { 2755 return nil, err 2756 } 2757 body = v 2758 2759 // do request 2760 data, err := o.Client.Do(ctx, "GET", url, body) 2761 if err != nil { 2762 return nil, err 2763 } 2764 2765 // build results 2766 results, err := o.transformFindResults(data) 2767 if err != nil { 2768 return nil, err 2769 } 2770 return results, err 2771 } 2772 2773 // Create is API call 2774 func (o *ContainerRegistryOp) Create(ctx context.Context, param *ContainerRegistryCreateRequest) (*ContainerRegistry, error) { 2775 // build request URL 2776 pathBuildParameter := map[string]interface{}{ 2777 "rootURL": SakuraCloudAPIRoot, 2778 "pathSuffix": o.PathSuffix, 2779 "pathName": o.PathName, 2780 "zone": APIDefaultZone, 2781 "param": param, 2782 } 2783 2784 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 2785 if err != nil { 2786 return nil, err 2787 } 2788 // build request body 2789 var body interface{} 2790 v, err := o.transformCreateArgs(param) 2791 if err != nil { 2792 return nil, err 2793 } 2794 body = v 2795 2796 // do request 2797 data, err := o.Client.Do(ctx, "POST", url, body) 2798 if err != nil { 2799 return nil, err 2800 } 2801 2802 // build results 2803 results, err := o.transformCreateResults(data) 2804 if err != nil { 2805 return nil, err 2806 } 2807 return results.ContainerRegistry, nil 2808 } 2809 2810 // Read is API call 2811 func (o *ContainerRegistryOp) Read(ctx context.Context, id types.ID) (*ContainerRegistry, error) { 2812 // build request URL 2813 pathBuildParameter := map[string]interface{}{ 2814 "rootURL": SakuraCloudAPIRoot, 2815 "pathSuffix": o.PathSuffix, 2816 "pathName": o.PathName, 2817 "zone": APIDefaultZone, 2818 "id": id, 2819 } 2820 2821 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2822 if err != nil { 2823 return nil, err 2824 } 2825 // build request body 2826 var body interface{} 2827 2828 // do request 2829 data, err := o.Client.Do(ctx, "GET", url, body) 2830 if err != nil { 2831 return nil, err 2832 } 2833 2834 // build results 2835 results, err := o.transformReadResults(data) 2836 if err != nil { 2837 return nil, err 2838 } 2839 return results.ContainerRegistry, nil 2840 } 2841 2842 // Update is API call 2843 func (o *ContainerRegistryOp) Update(ctx context.Context, id types.ID, param *ContainerRegistryUpdateRequest) (*ContainerRegistry, error) { 2844 // build request URL 2845 pathBuildParameter := map[string]interface{}{ 2846 "rootURL": SakuraCloudAPIRoot, 2847 "pathSuffix": o.PathSuffix, 2848 "pathName": o.PathName, 2849 "zone": APIDefaultZone, 2850 "id": id, 2851 "param": param, 2852 } 2853 2854 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2855 if err != nil { 2856 return nil, err 2857 } 2858 // build request body 2859 var body interface{} 2860 v, err := o.transformUpdateArgs(id, param) 2861 if err != nil { 2862 return nil, err 2863 } 2864 body = v 2865 2866 // do request 2867 data, err := o.Client.Do(ctx, "PUT", url, body) 2868 if err != nil { 2869 return nil, err 2870 } 2871 2872 // build results 2873 results, err := o.transformUpdateResults(data) 2874 if err != nil { 2875 return nil, err 2876 } 2877 return results.ContainerRegistry, nil 2878 } 2879 2880 // UpdateSettings is API call 2881 func (o *ContainerRegistryOp) UpdateSettings(ctx context.Context, id types.ID, param *ContainerRegistryUpdateSettingsRequest) (*ContainerRegistry, error) { 2882 // build request URL 2883 pathBuildParameter := map[string]interface{}{ 2884 "rootURL": SakuraCloudAPIRoot, 2885 "pathSuffix": o.PathSuffix, 2886 "pathName": o.PathName, 2887 "zone": APIDefaultZone, 2888 "id": id, 2889 "param": param, 2890 } 2891 2892 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2893 if err != nil { 2894 return nil, err 2895 } 2896 // build request body 2897 var body interface{} 2898 v, err := o.transformUpdateSettingsArgs(id, param) 2899 if err != nil { 2900 return nil, err 2901 } 2902 body = v 2903 2904 // do request 2905 data, err := o.Client.Do(ctx, "PUT", url, body) 2906 if err != nil { 2907 return nil, err 2908 } 2909 2910 // build results 2911 results, err := o.transformUpdateSettingsResults(data) 2912 if err != nil { 2913 return nil, err 2914 } 2915 return results.ContainerRegistry, nil 2916 } 2917 2918 // Delete is API call 2919 func (o *ContainerRegistryOp) Delete(ctx context.Context, id types.ID) error { 2920 // build request URL 2921 pathBuildParameter := map[string]interface{}{ 2922 "rootURL": SakuraCloudAPIRoot, 2923 "pathSuffix": o.PathSuffix, 2924 "pathName": o.PathName, 2925 "zone": APIDefaultZone, 2926 "id": id, 2927 } 2928 2929 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 2930 if err != nil { 2931 return err 2932 } 2933 // build request body 2934 var body interface{} 2935 2936 // do request 2937 _, err = o.Client.Do(ctx, "DELETE", url, body) 2938 if err != nil { 2939 return err 2940 } 2941 2942 // build results 2943 2944 return nil 2945 } 2946 2947 // ListUsers is API call 2948 func (o *ContainerRegistryOp) ListUsers(ctx context.Context, id types.ID) (*ContainerRegistryUsers, error) { 2949 // build request URL 2950 pathBuildParameter := map[string]interface{}{ 2951 "rootURL": SakuraCloudAPIRoot, 2952 "pathSuffix": o.PathSuffix, 2953 "pathName": o.PathName, 2954 "zone": APIDefaultZone, 2955 "id": id, 2956 } 2957 2958 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/containerregistry/users", pathBuildParameter) 2959 if err != nil { 2960 return nil, err 2961 } 2962 // build request body 2963 var body interface{} 2964 2965 // do request 2966 data, err := o.Client.Do(ctx, "GET", url, body) 2967 if err != nil { 2968 return nil, err 2969 } 2970 2971 // build results 2972 results, err := o.transformListUsersResults(data) 2973 if err != nil { 2974 return nil, err 2975 } 2976 return results.ContainerRegistryUsers, nil 2977 } 2978 2979 // AddUser is API call 2980 func (o *ContainerRegistryOp) AddUser(ctx context.Context, id types.ID, param *ContainerRegistryUserCreateRequest) error { 2981 // build request URL 2982 pathBuildParameter := map[string]interface{}{ 2983 "rootURL": SakuraCloudAPIRoot, 2984 "pathSuffix": o.PathSuffix, 2985 "pathName": o.PathName, 2986 "zone": APIDefaultZone, 2987 "id": id, 2988 "param": param, 2989 } 2990 2991 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/containerregistry/users", pathBuildParameter) 2992 if err != nil { 2993 return err 2994 } 2995 // build request body 2996 var body interface{} 2997 v, err := o.transformAddUserArgs(id, param) 2998 if err != nil { 2999 return err 3000 } 3001 body = v 3002 3003 // do request 3004 _, err = o.Client.Do(ctx, "POST", url, body) 3005 if err != nil { 3006 return err 3007 } 3008 3009 // build results 3010 3011 return nil 3012 } 3013 3014 // UpdateUser is API call 3015 func (o *ContainerRegistryOp) UpdateUser(ctx context.Context, id types.ID, username string, param *ContainerRegistryUserUpdateRequest) error { 3016 // build request URL 3017 pathBuildParameter := map[string]interface{}{ 3018 "rootURL": SakuraCloudAPIRoot, 3019 "pathSuffix": o.PathSuffix, 3020 "pathName": o.PathName, 3021 "zone": APIDefaultZone, 3022 "id": id, 3023 "username": username, 3024 "param": param, 3025 } 3026 3027 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/containerregistry/users/{{.username}}", pathBuildParameter) 3028 if err != nil { 3029 return err 3030 } 3031 // build request body 3032 var body interface{} 3033 v, err := o.transformUpdateUserArgs(id, username, param) 3034 if err != nil { 3035 return err 3036 } 3037 body = v 3038 3039 // do request 3040 _, err = o.Client.Do(ctx, "PUT", url, body) 3041 if err != nil { 3042 return err 3043 } 3044 3045 // build results 3046 3047 return nil 3048 } 3049 3050 // DeleteUser is API call 3051 func (o *ContainerRegistryOp) DeleteUser(ctx context.Context, id types.ID, username string) error { 3052 // build request URL 3053 pathBuildParameter := map[string]interface{}{ 3054 "rootURL": SakuraCloudAPIRoot, 3055 "pathSuffix": o.PathSuffix, 3056 "pathName": o.PathName, 3057 "zone": APIDefaultZone, 3058 "id": id, 3059 "username": username, 3060 } 3061 3062 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/containerregistry/users/{{.username}}", pathBuildParameter) 3063 if err != nil { 3064 return err 3065 } 3066 // build request body 3067 var body interface{} 3068 3069 // do request 3070 _, err = o.Client.Do(ctx, "DELETE", url, body) 3071 if err != nil { 3072 return err 3073 } 3074 3075 // build results 3076 3077 return nil 3078 } 3079 3080 /************************************************* 3081 * CouponOp 3082 *************************************************/ 3083 3084 // CouponOp implements CouponAPI interface 3085 type CouponOp struct { 3086 // Client APICaller 3087 Client APICaller 3088 // PathSuffix is used when building URL 3089 PathSuffix string 3090 // PathName is used when building URL 3091 PathName string 3092 } 3093 3094 // NewCouponOp creates new CouponOp instance 3095 func NewCouponOp(caller APICaller) CouponAPI { 3096 return GetClientFactoryFunc("Coupon")(caller).(CouponAPI) 3097 } 3098 3099 // Find is API call 3100 func (o *CouponOp) Find(ctx context.Context, accountID types.ID) (*CouponFindResult, error) { 3101 // build request URL 3102 pathBuildParameter := map[string]interface{}{ 3103 "rootURL": SakuraCloudAPIRoot, 3104 "pathSuffix": o.PathSuffix, 3105 "pathName": o.PathName, 3106 "zone": APIDefaultZone, 3107 "accountID": accountID, 3108 } 3109 3110 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.accountID}}", pathBuildParameter) 3111 if err != nil { 3112 return nil, err 3113 } 3114 // build request body 3115 var body interface{} 3116 3117 // do request 3118 data, err := o.Client.Do(ctx, "GET", url, body) 3119 if err != nil { 3120 return nil, err 3121 } 3122 3123 // build results 3124 results, err := o.transformFindResults(data) 3125 if err != nil { 3126 return nil, err 3127 } 3128 return results, err 3129 } 3130 3131 /************************************************* 3132 * DatabaseOp 3133 *************************************************/ 3134 3135 // DatabaseOp implements DatabaseAPI interface 3136 type DatabaseOp struct { 3137 // Client APICaller 3138 Client APICaller 3139 // PathSuffix is used when building URL 3140 PathSuffix string 3141 // PathName is used when building URL 3142 PathName string 3143 } 3144 3145 // NewDatabaseOp creates new DatabaseOp instance 3146 func NewDatabaseOp(caller APICaller) DatabaseAPI { 3147 return GetClientFactoryFunc("Database")(caller).(DatabaseAPI) 3148 } 3149 3150 // Find is API call 3151 func (o *DatabaseOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*DatabaseFindResult, error) { 3152 // build request URL 3153 pathBuildParameter := map[string]interface{}{ 3154 "rootURL": SakuraCloudAPIRoot, 3155 "pathSuffix": o.PathSuffix, 3156 "pathName": o.PathName, 3157 "zone": zone, 3158 "conditions": conditions, 3159 } 3160 3161 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 3162 if err != nil { 3163 return nil, err 3164 } 3165 // build request body 3166 var body interface{} 3167 v, err := o.transformFindArgs(conditions) 3168 if err != nil { 3169 return nil, err 3170 } 3171 body = v 3172 3173 // do request 3174 data, err := o.Client.Do(ctx, "GET", url, body) 3175 if err != nil { 3176 return nil, err 3177 } 3178 3179 // build results 3180 results, err := o.transformFindResults(data) 3181 if err != nil { 3182 return nil, err 3183 } 3184 return results, err 3185 } 3186 3187 // Create is API call 3188 func (o *DatabaseOp) Create(ctx context.Context, zone string, param *DatabaseCreateRequest) (*Database, error) { 3189 // build request URL 3190 pathBuildParameter := map[string]interface{}{ 3191 "rootURL": SakuraCloudAPIRoot, 3192 "pathSuffix": o.PathSuffix, 3193 "pathName": o.PathName, 3194 "zone": zone, 3195 "param": param, 3196 } 3197 3198 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 3199 if err != nil { 3200 return nil, err 3201 } 3202 // build request body 3203 var body interface{} 3204 v, err := o.transformCreateArgs(param) 3205 if err != nil { 3206 return nil, err 3207 } 3208 body = v 3209 3210 // do request 3211 data, err := o.Client.Do(ctx, "POST", url, body) 3212 if err != nil { 3213 return nil, err 3214 } 3215 3216 // build results 3217 results, err := o.transformCreateResults(data) 3218 if err != nil { 3219 return nil, err 3220 } 3221 return results.Database, nil 3222 } 3223 3224 // Read is API call 3225 func (o *DatabaseOp) Read(ctx context.Context, zone string, id types.ID) (*Database, error) { 3226 // build request URL 3227 pathBuildParameter := map[string]interface{}{ 3228 "rootURL": SakuraCloudAPIRoot, 3229 "pathSuffix": o.PathSuffix, 3230 "pathName": o.PathName, 3231 "zone": zone, 3232 "id": id, 3233 } 3234 3235 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 3236 if err != nil { 3237 return nil, err 3238 } 3239 // build request body 3240 var body interface{} 3241 3242 // do request 3243 data, err := o.Client.Do(ctx, "GET", url, body) 3244 if err != nil { 3245 return nil, err 3246 } 3247 3248 // build results 3249 results, err := o.transformReadResults(data) 3250 if err != nil { 3251 return nil, err 3252 } 3253 return results.Database, nil 3254 } 3255 3256 // Update is API call 3257 func (o *DatabaseOp) Update(ctx context.Context, zone string, id types.ID, param *DatabaseUpdateRequest) (*Database, error) { 3258 // build request URL 3259 pathBuildParameter := map[string]interface{}{ 3260 "rootURL": SakuraCloudAPIRoot, 3261 "pathSuffix": o.PathSuffix, 3262 "pathName": o.PathName, 3263 "zone": zone, 3264 "id": id, 3265 "param": param, 3266 } 3267 3268 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 3269 if err != nil { 3270 return nil, err 3271 } 3272 // build request body 3273 var body interface{} 3274 v, err := o.transformUpdateArgs(id, param) 3275 if err != nil { 3276 return nil, err 3277 } 3278 body = v 3279 3280 // do request 3281 data, err := o.Client.Do(ctx, "PUT", url, body) 3282 if err != nil { 3283 return nil, err 3284 } 3285 3286 // build results 3287 results, err := o.transformUpdateResults(data) 3288 if err != nil { 3289 return nil, err 3290 } 3291 return results.Database, nil 3292 } 3293 3294 // UpdateSettings is API call 3295 func (o *DatabaseOp) UpdateSettings(ctx context.Context, zone string, id types.ID, param *DatabaseUpdateSettingsRequest) (*Database, error) { 3296 // build request URL 3297 pathBuildParameter := map[string]interface{}{ 3298 "rootURL": SakuraCloudAPIRoot, 3299 "pathSuffix": o.PathSuffix, 3300 "pathName": o.PathName, 3301 "zone": zone, 3302 "id": id, 3303 "param": param, 3304 } 3305 3306 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 3307 if err != nil { 3308 return nil, err 3309 } 3310 // build request body 3311 var body interface{} 3312 v, err := o.transformUpdateSettingsArgs(id, param) 3313 if err != nil { 3314 return nil, err 3315 } 3316 body = v 3317 3318 // do request 3319 data, err := o.Client.Do(ctx, "PUT", url, body) 3320 if err != nil { 3321 return nil, err 3322 } 3323 3324 // build results 3325 results, err := o.transformUpdateSettingsResults(data) 3326 if err != nil { 3327 return nil, err 3328 } 3329 return results.Database, nil 3330 } 3331 3332 // Delete is API call 3333 func (o *DatabaseOp) Delete(ctx context.Context, zone string, id types.ID) error { 3334 // build request URL 3335 pathBuildParameter := map[string]interface{}{ 3336 "rootURL": SakuraCloudAPIRoot, 3337 "pathSuffix": o.PathSuffix, 3338 "pathName": o.PathName, 3339 "zone": zone, 3340 "id": id, 3341 } 3342 3343 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 3344 if err != nil { 3345 return err 3346 } 3347 // build request body 3348 var body interface{} 3349 3350 // do request 3351 _, err = o.Client.Do(ctx, "DELETE", url, body) 3352 if err != nil { 3353 return err 3354 } 3355 3356 // build results 3357 3358 return nil 3359 } 3360 3361 // Config is API call 3362 func (o *DatabaseOp) Config(ctx context.Context, zone string, id types.ID) error { 3363 // build request URL 3364 pathBuildParameter := map[string]interface{}{ 3365 "rootURL": SakuraCloudAPIRoot, 3366 "pathSuffix": o.PathSuffix, 3367 "pathName": o.PathName, 3368 "zone": zone, 3369 "id": id, 3370 } 3371 3372 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/config", pathBuildParameter) 3373 if err != nil { 3374 return err 3375 } 3376 // build request body 3377 var body interface{} 3378 3379 // do request 3380 _, err = o.Client.Do(ctx, "PUT", url, body) 3381 if err != nil { 3382 return err 3383 } 3384 3385 // build results 3386 3387 return nil 3388 } 3389 3390 // Boot is API call 3391 func (o *DatabaseOp) Boot(ctx context.Context, zone string, id types.ID) error { 3392 // build request URL 3393 pathBuildParameter := map[string]interface{}{ 3394 "rootURL": SakuraCloudAPIRoot, 3395 "pathSuffix": o.PathSuffix, 3396 "pathName": o.PathName, 3397 "zone": zone, 3398 "id": id, 3399 } 3400 3401 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 3402 if err != nil { 3403 return err 3404 } 3405 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 3406 if err != nil { 3407 return err 3408 } 3409 apiLocker.Lock(lockKey) 3410 defer apiLocker.Unlock(lockKey) 3411 // build request body 3412 var body interface{} 3413 3414 // do request 3415 _, err = o.Client.Do(ctx, "PUT", url, body) 3416 if err != nil { 3417 return err 3418 } 3419 3420 // build results 3421 3422 return nil 3423 } 3424 3425 // Shutdown is API call 3426 func (o *DatabaseOp) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *ShutdownOption) error { 3427 // build request URL 3428 pathBuildParameter := map[string]interface{}{ 3429 "rootURL": SakuraCloudAPIRoot, 3430 "pathSuffix": o.PathSuffix, 3431 "pathName": o.PathName, 3432 "zone": zone, 3433 "id": id, 3434 "shutdownOption": shutdownOption, 3435 } 3436 3437 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 3438 if err != nil { 3439 return err 3440 } 3441 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 3442 if err != nil { 3443 return err 3444 } 3445 apiLocker.Lock(lockKey) 3446 defer apiLocker.Unlock(lockKey) 3447 // build request body 3448 var body interface{} 3449 v, err := o.transformShutdownArgs(id, shutdownOption) 3450 if err != nil { 3451 return err 3452 } 3453 body = v 3454 3455 // do request 3456 _, err = o.Client.Do(ctx, "DELETE", url, body) 3457 if err != nil { 3458 return err 3459 } 3460 3461 // build results 3462 3463 return nil 3464 } 3465 3466 // Reset is API call 3467 func (o *DatabaseOp) Reset(ctx context.Context, zone string, id types.ID) error { 3468 // build request URL 3469 pathBuildParameter := map[string]interface{}{ 3470 "rootURL": SakuraCloudAPIRoot, 3471 "pathSuffix": o.PathSuffix, 3472 "pathName": o.PathName, 3473 "zone": zone, 3474 "id": id, 3475 } 3476 3477 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/reset", pathBuildParameter) 3478 if err != nil { 3479 return err 3480 } 3481 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 3482 if err != nil { 3483 return err 3484 } 3485 apiLocker.Lock(lockKey) 3486 defer apiLocker.Unlock(lockKey) 3487 // build request body 3488 var body interface{} 3489 3490 // do request 3491 _, err = o.Client.Do(ctx, "PUT", url, body) 3492 if err != nil { 3493 return err 3494 } 3495 3496 // build results 3497 3498 return nil 3499 } 3500 3501 // MonitorCPU is API call 3502 func (o *DatabaseOp) MonitorCPU(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*CPUTimeActivity, error) { 3503 // build request URL 3504 pathBuildParameter := map[string]interface{}{ 3505 "rootURL": SakuraCloudAPIRoot, 3506 "pathSuffix": o.PathSuffix, 3507 "pathName": o.PathName, 3508 "zone": zone, 3509 "id": id, 3510 "condition": condition, 3511 } 3512 3513 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/cpu/monitor", pathBuildParameter) 3514 if err != nil { 3515 return nil, err 3516 } 3517 // build request body 3518 var body interface{} 3519 v, err := o.transformMonitorCPUArgs(id, condition) 3520 if err != nil { 3521 return nil, err 3522 } 3523 body = v 3524 3525 // do request 3526 data, err := o.Client.Do(ctx, "GET", url, body) 3527 if err != nil { 3528 return nil, err 3529 } 3530 3531 // build results 3532 results, err := o.transformMonitorCPUResults(data) 3533 if err != nil { 3534 return nil, err 3535 } 3536 return results.CPUTimeActivity, nil 3537 } 3538 3539 // MonitorDisk is API call 3540 func (o *DatabaseOp) MonitorDisk(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*DiskActivity, error) { 3541 // build request URL 3542 pathBuildParameter := map[string]interface{}{ 3543 "rootURL": SakuraCloudAPIRoot, 3544 "pathSuffix": o.PathSuffix, 3545 "pathName": o.PathName, 3546 "zone": zone, 3547 "id": id, 3548 "condition": condition, 3549 } 3550 3551 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/disk/0/monitor", pathBuildParameter) 3552 if err != nil { 3553 return nil, err 3554 } 3555 // build request body 3556 var body interface{} 3557 v, err := o.transformMonitorDiskArgs(id, condition) 3558 if err != nil { 3559 return nil, err 3560 } 3561 body = v 3562 3563 // do request 3564 data, err := o.Client.Do(ctx, "GET", url, body) 3565 if err != nil { 3566 return nil, err 3567 } 3568 3569 // build results 3570 results, err := o.transformMonitorDiskResults(data) 3571 if err != nil { 3572 return nil, err 3573 } 3574 return results.DiskActivity, nil 3575 } 3576 3577 // MonitorInterface is API call 3578 func (o *DatabaseOp) MonitorInterface(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*InterfaceActivity, error) { 3579 // build request URL 3580 pathBuildParameter := map[string]interface{}{ 3581 "rootURL": SakuraCloudAPIRoot, 3582 "pathSuffix": o.PathSuffix, 3583 "pathName": o.PathName, 3584 "zone": zone, 3585 "id": id, 3586 "condition": condition, 3587 } 3588 3589 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/monitor", pathBuildParameter) 3590 if err != nil { 3591 return nil, err 3592 } 3593 // build request body 3594 var body interface{} 3595 v, err := o.transformMonitorInterfaceArgs(id, condition) 3596 if err != nil { 3597 return nil, err 3598 } 3599 body = v 3600 3601 // do request 3602 data, err := o.Client.Do(ctx, "GET", url, body) 3603 if err != nil { 3604 return nil, err 3605 } 3606 3607 // build results 3608 results, err := o.transformMonitorInterfaceResults(data) 3609 if err != nil { 3610 return nil, err 3611 } 3612 return results.InterfaceActivity, nil 3613 } 3614 3615 // MonitorDatabase is API call 3616 func (o *DatabaseOp) MonitorDatabase(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*DatabaseActivity, error) { 3617 // build request URL 3618 pathBuildParameter := map[string]interface{}{ 3619 "rootURL": SakuraCloudAPIRoot, 3620 "pathSuffix": o.PathSuffix, 3621 "pathName": o.PathName, 3622 "zone": zone, 3623 "id": id, 3624 "condition": condition, 3625 } 3626 3627 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/database/monitor", pathBuildParameter) 3628 if err != nil { 3629 return nil, err 3630 } 3631 // build request body 3632 var body interface{} 3633 v, err := o.transformMonitorDatabaseArgs(id, condition) 3634 if err != nil { 3635 return nil, err 3636 } 3637 body = v 3638 3639 // do request 3640 data, err := o.Client.Do(ctx, "GET", url, body) 3641 if err != nil { 3642 return nil, err 3643 } 3644 3645 // build results 3646 results, err := o.transformMonitorDatabaseResults(data) 3647 if err != nil { 3648 return nil, err 3649 } 3650 return results.DatabaseActivity, nil 3651 } 3652 3653 // Status is API call 3654 func (o *DatabaseOp) Status(ctx context.Context, zone string, id types.ID) (*DatabaseStatus, error) { 3655 // build request URL 3656 pathBuildParameter := map[string]interface{}{ 3657 "rootURL": SakuraCloudAPIRoot, 3658 "pathSuffix": o.PathSuffix, 3659 "pathName": o.PathName, 3660 "zone": zone, 3661 "id": id, 3662 } 3663 3664 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/status", pathBuildParameter) 3665 if err != nil { 3666 return nil, err 3667 } 3668 // build request body 3669 var body interface{} 3670 3671 // do request 3672 data, err := o.Client.Do(ctx, "GET", url, body) 3673 if err != nil { 3674 return nil, err 3675 } 3676 3677 // build results 3678 results, err := o.transformStatusResults(data) 3679 if err != nil { 3680 return nil, err 3681 } 3682 return results.DatabaseStatus, nil 3683 } 3684 3685 // GetParameter is API call 3686 func (o *DatabaseOp) GetParameter(ctx context.Context, zone string, id types.ID) (*DatabaseParameter, error) { 3687 // build request URL 3688 pathBuildParameter := map[string]interface{}{ 3689 "rootURL": SakuraCloudAPIRoot, 3690 "pathSuffix": o.PathSuffix, 3691 "pathName": o.PathName, 3692 "zone": zone, 3693 "id": id, 3694 } 3695 3696 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/database/parameter", pathBuildParameter) 3697 if err != nil { 3698 return nil, err 3699 } 3700 // build request body 3701 var body interface{} 3702 3703 // do request 3704 data, err := o.Client.Do(ctx, "GET", url, body) 3705 if err != nil { 3706 return nil, err 3707 } 3708 3709 // build results 3710 results, err := o.transformGetParameterResults(data) 3711 if err != nil { 3712 return nil, err 3713 } 3714 return results.DatabaseParameter, nil 3715 } 3716 3717 // SetParameter is API call 3718 func (o *DatabaseOp) SetParameter(ctx context.Context, zone string, id types.ID, param map[string]interface{}) error { 3719 // build request URL 3720 pathBuildParameter := map[string]interface{}{ 3721 "rootURL": SakuraCloudAPIRoot, 3722 "pathSuffix": o.PathSuffix, 3723 "pathName": o.PathName, 3724 "zone": zone, 3725 "id": id, 3726 "param": param, 3727 } 3728 3729 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/database/parameter", pathBuildParameter) 3730 if err != nil { 3731 return err 3732 } 3733 // build request body 3734 var body interface{} 3735 v, err := o.transformSetParameterArgs(id, param) 3736 if err != nil { 3737 return err 3738 } 3739 body = v 3740 3741 // do request 3742 _, err = o.Client.Do(ctx, "PUT", url, body) 3743 if err != nil { 3744 return err 3745 } 3746 3747 // build results 3748 3749 return nil 3750 } 3751 3752 /************************************************* 3753 * DiskOp 3754 *************************************************/ 3755 3756 // DiskOp implements DiskAPI interface 3757 type DiskOp struct { 3758 // Client APICaller 3759 Client APICaller 3760 // PathSuffix is used when building URL 3761 PathSuffix string 3762 // PathName is used when building URL 3763 PathName string 3764 } 3765 3766 // NewDiskOp creates new DiskOp instance 3767 func NewDiskOp(caller APICaller) DiskAPI { 3768 return GetClientFactoryFunc("Disk")(caller).(DiskAPI) 3769 } 3770 3771 // Find is API call 3772 func (o *DiskOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*DiskFindResult, error) { 3773 // build request URL 3774 pathBuildParameter := map[string]interface{}{ 3775 "rootURL": SakuraCloudAPIRoot, 3776 "pathSuffix": o.PathSuffix, 3777 "pathName": o.PathName, 3778 "zone": zone, 3779 "conditions": conditions, 3780 } 3781 3782 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 3783 if err != nil { 3784 return nil, err 3785 } 3786 // build request body 3787 var body interface{} 3788 v, err := o.transformFindArgs(conditions) 3789 if err != nil { 3790 return nil, err 3791 } 3792 body = v 3793 3794 // do request 3795 data, err := o.Client.Do(ctx, "GET", url, body) 3796 if err != nil { 3797 return nil, err 3798 } 3799 3800 // build results 3801 results, err := o.transformFindResults(data) 3802 if err != nil { 3803 return nil, err 3804 } 3805 return results, err 3806 } 3807 3808 // Create is API call 3809 func (o *DiskOp) Create(ctx context.Context, zone string, createParam *DiskCreateRequest, distantFrom []types.ID) (*Disk, error) { 3810 // build request URL 3811 pathBuildParameter := map[string]interface{}{ 3812 "rootURL": SakuraCloudAPIRoot, 3813 "pathSuffix": o.PathSuffix, 3814 "pathName": o.PathName, 3815 "zone": zone, 3816 "createParam": createParam, 3817 "distantFrom": distantFrom, 3818 } 3819 3820 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 3821 if err != nil { 3822 return nil, err 3823 } 3824 // build request body 3825 var body interface{} 3826 v, err := o.transformCreateArgs(createParam, distantFrom) 3827 if err != nil { 3828 return nil, err 3829 } 3830 body = v 3831 3832 // do request 3833 data, err := o.Client.Do(ctx, "POST", url, body) 3834 if err != nil { 3835 return nil, err 3836 } 3837 3838 // build results 3839 results, err := o.transformCreateResults(data) 3840 if err != nil { 3841 return nil, err 3842 } 3843 return results.Disk, nil 3844 } 3845 3846 // Config is API call 3847 func (o *DiskOp) Config(ctx context.Context, zone string, id types.ID, edit *DiskEditRequest) error { 3848 // build request URL 3849 pathBuildParameter := map[string]interface{}{ 3850 "rootURL": SakuraCloudAPIRoot, 3851 "pathSuffix": o.PathSuffix, 3852 "pathName": o.PathName, 3853 "zone": zone, 3854 "id": id, 3855 "edit": edit, 3856 } 3857 3858 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/config", pathBuildParameter) 3859 if err != nil { 3860 return err 3861 } 3862 // build request body 3863 var body interface{} 3864 v, err := o.transformConfigArgs(id, edit) 3865 if err != nil { 3866 return err 3867 } 3868 body = v 3869 3870 // do request 3871 _, err = o.Client.Do(ctx, "PUT", url, body) 3872 if err != nil { 3873 return err 3874 } 3875 3876 // build results 3877 3878 return nil 3879 } 3880 3881 // CreateWithConfig is API call 3882 func (o *DiskOp) CreateWithConfig(ctx context.Context, zone string, createParam *DiskCreateRequest, editParam *DiskEditRequest, bootAtAvailable bool, distantFrom []types.ID) (*Disk, error) { 3883 // build request URL 3884 pathBuildParameter := map[string]interface{}{ 3885 "rootURL": SakuraCloudAPIRoot, 3886 "pathSuffix": o.PathSuffix, 3887 "pathName": o.PathName, 3888 "zone": zone, 3889 "createParam": createParam, 3890 "editParam": editParam, 3891 "bootAtAvailable": bootAtAvailable, 3892 "distantFrom": distantFrom, 3893 } 3894 3895 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 3896 if err != nil { 3897 return nil, err 3898 } 3899 // build request body 3900 var body interface{} 3901 v, err := o.transformCreateWithConfigArgs(createParam, editParam, bootAtAvailable, distantFrom) 3902 if err != nil { 3903 return nil, err 3904 } 3905 body = v 3906 3907 // do request 3908 data, err := o.Client.Do(ctx, "POST", url, body) 3909 if err != nil { 3910 return nil, err 3911 } 3912 3913 // build results 3914 results, err := o.transformCreateWithConfigResults(data) 3915 if err != nil { 3916 return nil, err 3917 } 3918 return results.Disk, nil 3919 } 3920 3921 // ResizePartition is API call 3922 func (o *DiskOp) ResizePartition(ctx context.Context, zone string, id types.ID, param *DiskResizePartitionRequest) error { 3923 // build request URL 3924 pathBuildParameter := map[string]interface{}{ 3925 "rootURL": SakuraCloudAPIRoot, 3926 "pathSuffix": o.PathSuffix, 3927 "pathName": o.PathName, 3928 "zone": zone, 3929 "id": id, 3930 "param": param, 3931 } 3932 3933 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/resize-partition", pathBuildParameter) 3934 if err != nil { 3935 return err 3936 } 3937 // build request body 3938 var body interface{} 3939 v, err := o.transformResizePartitionArgs(id, param) 3940 if err != nil { 3941 return err 3942 } 3943 body = v 3944 3945 // do request 3946 _, err = o.Client.Do(ctx, "PUT", url, body) 3947 if err != nil { 3948 return err 3949 } 3950 3951 // build results 3952 3953 return nil 3954 } 3955 3956 // ConnectToServer is API call 3957 func (o *DiskOp) ConnectToServer(ctx context.Context, zone string, id types.ID, serverID types.ID) error { 3958 // build request URL 3959 pathBuildParameter := map[string]interface{}{ 3960 "rootURL": SakuraCloudAPIRoot, 3961 "pathSuffix": o.PathSuffix, 3962 "pathName": o.PathName, 3963 "zone": zone, 3964 "id": id, 3965 "serverID": serverID, 3966 } 3967 3968 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/server/{{.serverID}}", pathBuildParameter) 3969 if err != nil { 3970 return err 3971 } 3972 // build request body 3973 var body interface{} 3974 3975 // do request 3976 _, err = o.Client.Do(ctx, "PUT", url, body) 3977 if err != nil { 3978 return err 3979 } 3980 3981 // build results 3982 3983 return nil 3984 } 3985 3986 // DisconnectFromServer is API call 3987 func (o *DiskOp) DisconnectFromServer(ctx context.Context, zone string, id types.ID) error { 3988 // build request URL 3989 pathBuildParameter := map[string]interface{}{ 3990 "rootURL": SakuraCloudAPIRoot, 3991 "pathSuffix": o.PathSuffix, 3992 "pathName": o.PathName, 3993 "zone": zone, 3994 "id": id, 3995 } 3996 3997 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/server", pathBuildParameter) 3998 if err != nil { 3999 return err 4000 } 4001 // build request body 4002 var body interface{} 4003 4004 // do request 4005 _, err = o.Client.Do(ctx, "DELETE", url, body) 4006 if err != nil { 4007 return err 4008 } 4009 4010 // build results 4011 4012 return nil 4013 } 4014 4015 // Read is API call 4016 func (o *DiskOp) Read(ctx context.Context, zone string, id types.ID) (*Disk, error) { 4017 // build request URL 4018 pathBuildParameter := map[string]interface{}{ 4019 "rootURL": SakuraCloudAPIRoot, 4020 "pathSuffix": o.PathSuffix, 4021 "pathName": o.PathName, 4022 "zone": zone, 4023 "id": id, 4024 } 4025 4026 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4027 if err != nil { 4028 return nil, err 4029 } 4030 // build request body 4031 var body interface{} 4032 4033 // do request 4034 data, err := o.Client.Do(ctx, "GET", url, body) 4035 if err != nil { 4036 return nil, err 4037 } 4038 4039 // build results 4040 results, err := o.transformReadResults(data) 4041 if err != nil { 4042 return nil, err 4043 } 4044 return results.Disk, nil 4045 } 4046 4047 // Update is API call 4048 func (o *DiskOp) Update(ctx context.Context, zone string, id types.ID, param *DiskUpdateRequest) (*Disk, error) { 4049 // build request URL 4050 pathBuildParameter := map[string]interface{}{ 4051 "rootURL": SakuraCloudAPIRoot, 4052 "pathSuffix": o.PathSuffix, 4053 "pathName": o.PathName, 4054 "zone": zone, 4055 "id": id, 4056 "param": param, 4057 } 4058 4059 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4060 if err != nil { 4061 return nil, err 4062 } 4063 // build request body 4064 var body interface{} 4065 v, err := o.transformUpdateArgs(id, param) 4066 if err != nil { 4067 return nil, err 4068 } 4069 body = v 4070 4071 // do request 4072 data, err := o.Client.Do(ctx, "PUT", url, body) 4073 if err != nil { 4074 return nil, err 4075 } 4076 4077 // build results 4078 results, err := o.transformUpdateResults(data) 4079 if err != nil { 4080 return nil, err 4081 } 4082 return results.Disk, nil 4083 } 4084 4085 // Delete is API call 4086 func (o *DiskOp) Delete(ctx context.Context, zone string, id types.ID) error { 4087 // build request URL 4088 pathBuildParameter := map[string]interface{}{ 4089 "rootURL": SakuraCloudAPIRoot, 4090 "pathSuffix": o.PathSuffix, 4091 "pathName": o.PathName, 4092 "zone": zone, 4093 "id": id, 4094 } 4095 4096 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4097 if err != nil { 4098 return err 4099 } 4100 // build request body 4101 var body interface{} 4102 4103 // do request 4104 _, err = o.Client.Do(ctx, "DELETE", url, body) 4105 if err != nil { 4106 return err 4107 } 4108 4109 // build results 4110 4111 return nil 4112 } 4113 4114 // Monitor is API call 4115 func (o *DiskOp) Monitor(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*DiskActivity, error) { 4116 // build request URL 4117 pathBuildParameter := map[string]interface{}{ 4118 "rootURL": SakuraCloudAPIRoot, 4119 "pathSuffix": o.PathSuffix, 4120 "pathName": o.PathName, 4121 "zone": zone, 4122 "id": id, 4123 "condition": condition, 4124 } 4125 4126 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 4127 if err != nil { 4128 return nil, err 4129 } 4130 // build request body 4131 var body interface{} 4132 v, err := o.transformMonitorArgs(id, condition) 4133 if err != nil { 4134 return nil, err 4135 } 4136 body = v 4137 4138 // do request 4139 data, err := o.Client.Do(ctx, "GET", url, body) 4140 if err != nil { 4141 return nil, err 4142 } 4143 4144 // build results 4145 results, err := o.transformMonitorResults(data) 4146 if err != nil { 4147 return nil, err 4148 } 4149 return results.DiskActivity, nil 4150 } 4151 4152 // MonitorDisk is API call 4153 func (o *DiskOp) MonitorDisk(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*DiskActivity, error) { 4154 // build request URL 4155 pathBuildParameter := map[string]interface{}{ 4156 "rootURL": SakuraCloudAPIRoot, 4157 "pathSuffix": o.PathSuffix, 4158 "pathName": o.PathName, 4159 "zone": zone, 4160 "id": id, 4161 "condition": condition, 4162 } 4163 4164 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 4165 if err != nil { 4166 return nil, err 4167 } 4168 // build request body 4169 var body interface{} 4170 v, err := o.transformMonitorDiskArgs(id, condition) 4171 if err != nil { 4172 return nil, err 4173 } 4174 body = v 4175 4176 // do request 4177 data, err := o.Client.Do(ctx, "GET", url, body) 4178 if err != nil { 4179 return nil, err 4180 } 4181 4182 // build results 4183 results, err := o.transformMonitorDiskResults(data) 4184 if err != nil { 4185 return nil, err 4186 } 4187 return results.DiskActivity, nil 4188 } 4189 4190 /************************************************* 4191 * DiskPlanOp 4192 *************************************************/ 4193 4194 // DiskPlanOp implements DiskPlanAPI interface 4195 type DiskPlanOp struct { 4196 // Client APICaller 4197 Client APICaller 4198 // PathSuffix is used when building URL 4199 PathSuffix string 4200 // PathName is used when building URL 4201 PathName string 4202 } 4203 4204 // NewDiskPlanOp creates new DiskPlanOp instance 4205 func NewDiskPlanOp(caller APICaller) DiskPlanAPI { 4206 return GetClientFactoryFunc("DiskPlan")(caller).(DiskPlanAPI) 4207 } 4208 4209 // Find is API call 4210 func (o *DiskPlanOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*DiskPlanFindResult, error) { 4211 // build request URL 4212 pathBuildParameter := map[string]interface{}{ 4213 "rootURL": SakuraCloudAPIRoot, 4214 "pathSuffix": o.PathSuffix, 4215 "pathName": o.PathName, 4216 "zone": zone, 4217 "conditions": conditions, 4218 } 4219 4220 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4221 if err != nil { 4222 return nil, err 4223 } 4224 // build request body 4225 var body interface{} 4226 v, err := o.transformFindArgs(conditions) 4227 if err != nil { 4228 return nil, err 4229 } 4230 body = v 4231 4232 // do request 4233 data, err := o.Client.Do(ctx, "GET", url, body) 4234 if err != nil { 4235 return nil, err 4236 } 4237 4238 // build results 4239 results, err := o.transformFindResults(data) 4240 if err != nil { 4241 return nil, err 4242 } 4243 return results, err 4244 } 4245 4246 // Read is API call 4247 func (o *DiskPlanOp) Read(ctx context.Context, zone string, id types.ID) (*DiskPlan, error) { 4248 // build request URL 4249 pathBuildParameter := map[string]interface{}{ 4250 "rootURL": SakuraCloudAPIRoot, 4251 "pathSuffix": o.PathSuffix, 4252 "pathName": o.PathName, 4253 "zone": zone, 4254 "id": id, 4255 } 4256 4257 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4258 if err != nil { 4259 return nil, err 4260 } 4261 // build request body 4262 var body interface{} 4263 4264 // do request 4265 data, err := o.Client.Do(ctx, "GET", url, body) 4266 if err != nil { 4267 return nil, err 4268 } 4269 4270 // build results 4271 results, err := o.transformReadResults(data) 4272 if err != nil { 4273 return nil, err 4274 } 4275 return results.DiskPlan, nil 4276 } 4277 4278 /************************************************* 4279 * DNSOp 4280 *************************************************/ 4281 4282 // DNSOp implements DNSAPI interface 4283 type DNSOp struct { 4284 // Client APICaller 4285 Client APICaller 4286 // PathSuffix is used when building URL 4287 PathSuffix string 4288 // PathName is used when building URL 4289 PathName string 4290 } 4291 4292 // NewDNSOp creates new DNSOp instance 4293 func NewDNSOp(caller APICaller) DNSAPI { 4294 return GetClientFactoryFunc("DNS")(caller).(DNSAPI) 4295 } 4296 4297 // Find is API call 4298 func (o *DNSOp) Find(ctx context.Context, conditions *FindCondition) (*DNSFindResult, error) { 4299 // build request URL 4300 pathBuildParameter := map[string]interface{}{ 4301 "rootURL": SakuraCloudAPIRoot, 4302 "pathSuffix": o.PathSuffix, 4303 "pathName": o.PathName, 4304 "zone": APIDefaultZone, 4305 "conditions": conditions, 4306 } 4307 4308 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4309 if err != nil { 4310 return nil, err 4311 } 4312 // build request body 4313 var body interface{} 4314 v, err := o.transformFindArgs(conditions) 4315 if err != nil { 4316 return nil, err 4317 } 4318 body = v 4319 4320 // do request 4321 data, err := o.Client.Do(ctx, "GET", url, body) 4322 if err != nil { 4323 return nil, err 4324 } 4325 4326 // build results 4327 results, err := o.transformFindResults(data) 4328 if err != nil { 4329 return nil, err 4330 } 4331 return results, err 4332 } 4333 4334 // Create is API call 4335 func (o *DNSOp) Create(ctx context.Context, param *DNSCreateRequest) (*DNS, error) { 4336 // build request URL 4337 pathBuildParameter := map[string]interface{}{ 4338 "rootURL": SakuraCloudAPIRoot, 4339 "pathSuffix": o.PathSuffix, 4340 "pathName": o.PathName, 4341 "zone": APIDefaultZone, 4342 "param": param, 4343 } 4344 4345 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4346 if err != nil { 4347 return nil, err 4348 } 4349 // build request body 4350 var body interface{} 4351 v, err := o.transformCreateArgs(param) 4352 if err != nil { 4353 return nil, err 4354 } 4355 body = v 4356 4357 // do request 4358 data, err := o.Client.Do(ctx, "POST", url, body) 4359 if err != nil { 4360 return nil, err 4361 } 4362 4363 // build results 4364 results, err := o.transformCreateResults(data) 4365 if err != nil { 4366 return nil, err 4367 } 4368 return results.DNS, nil 4369 } 4370 4371 // Read is API call 4372 func (o *DNSOp) Read(ctx context.Context, id types.ID) (*DNS, error) { 4373 // build request URL 4374 pathBuildParameter := map[string]interface{}{ 4375 "rootURL": SakuraCloudAPIRoot, 4376 "pathSuffix": o.PathSuffix, 4377 "pathName": o.PathName, 4378 "zone": APIDefaultZone, 4379 "id": id, 4380 } 4381 4382 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4383 if err != nil { 4384 return nil, err 4385 } 4386 // build request body 4387 var body interface{} 4388 4389 // do request 4390 data, err := o.Client.Do(ctx, "GET", url, body) 4391 if err != nil { 4392 return nil, err 4393 } 4394 4395 // build results 4396 results, err := o.transformReadResults(data) 4397 if err != nil { 4398 return nil, err 4399 } 4400 return results.DNS, nil 4401 } 4402 4403 // Update is API call 4404 func (o *DNSOp) Update(ctx context.Context, id types.ID, param *DNSUpdateRequest) (*DNS, error) { 4405 // build request URL 4406 pathBuildParameter := map[string]interface{}{ 4407 "rootURL": SakuraCloudAPIRoot, 4408 "pathSuffix": o.PathSuffix, 4409 "pathName": o.PathName, 4410 "zone": APIDefaultZone, 4411 "id": id, 4412 "param": param, 4413 } 4414 4415 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4416 if err != nil { 4417 return nil, err 4418 } 4419 // build request body 4420 var body interface{} 4421 v, err := o.transformUpdateArgs(id, param) 4422 if err != nil { 4423 return nil, err 4424 } 4425 body = v 4426 4427 // do request 4428 data, err := o.Client.Do(ctx, "PUT", url, body) 4429 if err != nil { 4430 return nil, err 4431 } 4432 4433 // build results 4434 results, err := o.transformUpdateResults(data) 4435 if err != nil { 4436 return nil, err 4437 } 4438 return results.DNS, nil 4439 } 4440 4441 // UpdateSettings is API call 4442 func (o *DNSOp) UpdateSettings(ctx context.Context, id types.ID, param *DNSUpdateSettingsRequest) (*DNS, error) { 4443 // build request URL 4444 pathBuildParameter := map[string]interface{}{ 4445 "rootURL": SakuraCloudAPIRoot, 4446 "pathSuffix": o.PathSuffix, 4447 "pathName": o.PathName, 4448 "zone": APIDefaultZone, 4449 "id": id, 4450 "param": param, 4451 } 4452 4453 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4454 if err != nil { 4455 return nil, err 4456 } 4457 // build request body 4458 var body interface{} 4459 v, err := o.transformUpdateSettingsArgs(id, param) 4460 if err != nil { 4461 return nil, err 4462 } 4463 body = v 4464 4465 // do request 4466 data, err := o.Client.Do(ctx, "PUT", url, body) 4467 if err != nil { 4468 return nil, err 4469 } 4470 4471 // build results 4472 results, err := o.transformUpdateSettingsResults(data) 4473 if err != nil { 4474 return nil, err 4475 } 4476 return results.DNS, nil 4477 } 4478 4479 // Delete is API call 4480 func (o *DNSOp) Delete(ctx context.Context, id types.ID) error { 4481 // build request URL 4482 pathBuildParameter := map[string]interface{}{ 4483 "rootURL": SakuraCloudAPIRoot, 4484 "pathSuffix": o.PathSuffix, 4485 "pathName": o.PathName, 4486 "zone": APIDefaultZone, 4487 "id": id, 4488 } 4489 4490 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4491 if err != nil { 4492 return err 4493 } 4494 // build request body 4495 var body interface{} 4496 4497 // do request 4498 _, err = o.Client.Do(ctx, "DELETE", url, body) 4499 if err != nil { 4500 return err 4501 } 4502 4503 // build results 4504 4505 return nil 4506 } 4507 4508 /************************************************* 4509 * EnhancedDBOp 4510 *************************************************/ 4511 4512 // EnhancedDBOp implements EnhancedDBAPI interface 4513 type EnhancedDBOp struct { 4514 // Client APICaller 4515 Client APICaller 4516 // PathSuffix is used when building URL 4517 PathSuffix string 4518 // PathName is used when building URL 4519 PathName string 4520 } 4521 4522 // NewEnhancedDBOp creates new EnhancedDBOp instance 4523 func NewEnhancedDBOp(caller APICaller) EnhancedDBAPI { 4524 return GetClientFactoryFunc("EnhancedDB")(caller).(EnhancedDBAPI) 4525 } 4526 4527 // Find is API call 4528 func (o *EnhancedDBOp) Find(ctx context.Context, conditions *FindCondition) (*EnhancedDBFindResult, error) { 4529 // build request URL 4530 pathBuildParameter := map[string]interface{}{ 4531 "rootURL": SakuraCloudAPIRoot, 4532 "pathSuffix": o.PathSuffix, 4533 "pathName": o.PathName, 4534 "zone": APIDefaultZone, 4535 "conditions": conditions, 4536 } 4537 4538 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4539 if err != nil { 4540 return nil, err 4541 } 4542 // build request body 4543 var body interface{} 4544 v, err := o.transformFindArgs(conditions) 4545 if err != nil { 4546 return nil, err 4547 } 4548 body = v 4549 4550 // do request 4551 data, err := o.Client.Do(ctx, "GET", url, body) 4552 if err != nil { 4553 return nil, err 4554 } 4555 4556 // build results 4557 results, err := o.transformFindResults(data) 4558 if err != nil { 4559 return nil, err 4560 } 4561 return results, err 4562 } 4563 4564 // Create is API call 4565 func (o *EnhancedDBOp) Create(ctx context.Context, param *EnhancedDBCreateRequest) (*EnhancedDB, error) { 4566 // build request URL 4567 pathBuildParameter := map[string]interface{}{ 4568 "rootURL": SakuraCloudAPIRoot, 4569 "pathSuffix": o.PathSuffix, 4570 "pathName": o.PathName, 4571 "zone": APIDefaultZone, 4572 "param": param, 4573 } 4574 4575 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4576 if err != nil { 4577 return nil, err 4578 } 4579 // build request body 4580 var body interface{} 4581 v, err := o.transformCreateArgs(param) 4582 if err != nil { 4583 return nil, err 4584 } 4585 body = v 4586 4587 // do request 4588 data, err := o.Client.Do(ctx, "POST", url, body) 4589 if err != nil { 4590 return nil, err 4591 } 4592 4593 // build results 4594 results, err := o.transformCreateResults(data) 4595 if err != nil { 4596 return nil, err 4597 } 4598 return results.EnhancedDB, nil 4599 } 4600 4601 // Read is API call 4602 func (o *EnhancedDBOp) Read(ctx context.Context, id types.ID) (*EnhancedDB, error) { 4603 // build request URL 4604 pathBuildParameter := map[string]interface{}{ 4605 "rootURL": SakuraCloudAPIRoot, 4606 "pathSuffix": o.PathSuffix, 4607 "pathName": o.PathName, 4608 "zone": APIDefaultZone, 4609 "id": id, 4610 } 4611 4612 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4613 if err != nil { 4614 return nil, err 4615 } 4616 // build request body 4617 var body interface{} 4618 4619 // do request 4620 data, err := o.Client.Do(ctx, "GET", url, body) 4621 if err != nil { 4622 return nil, err 4623 } 4624 4625 // build results 4626 results, err := o.transformReadResults(data) 4627 if err != nil { 4628 return nil, err 4629 } 4630 return results.EnhancedDB, nil 4631 } 4632 4633 // Update is API call 4634 func (o *EnhancedDBOp) Update(ctx context.Context, id types.ID, param *EnhancedDBUpdateRequest) (*EnhancedDB, error) { 4635 // build request URL 4636 pathBuildParameter := map[string]interface{}{ 4637 "rootURL": SakuraCloudAPIRoot, 4638 "pathSuffix": o.PathSuffix, 4639 "pathName": o.PathName, 4640 "zone": APIDefaultZone, 4641 "id": id, 4642 "param": param, 4643 } 4644 4645 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4646 if err != nil { 4647 return nil, err 4648 } 4649 // build request body 4650 var body interface{} 4651 v, err := o.transformUpdateArgs(id, param) 4652 if err != nil { 4653 return nil, err 4654 } 4655 body = v 4656 4657 // do request 4658 data, err := o.Client.Do(ctx, "PUT", url, body) 4659 if err != nil { 4660 return nil, err 4661 } 4662 4663 // build results 4664 results, err := o.transformUpdateResults(data) 4665 if err != nil { 4666 return nil, err 4667 } 4668 return results.EnhancedDB, nil 4669 } 4670 4671 // Delete is API call 4672 func (o *EnhancedDBOp) Delete(ctx context.Context, id types.ID) error { 4673 // build request URL 4674 pathBuildParameter := map[string]interface{}{ 4675 "rootURL": SakuraCloudAPIRoot, 4676 "pathSuffix": o.PathSuffix, 4677 "pathName": o.PathName, 4678 "zone": APIDefaultZone, 4679 "id": id, 4680 } 4681 4682 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4683 if err != nil { 4684 return err 4685 } 4686 // build request body 4687 var body interface{} 4688 4689 // do request 4690 _, err = o.Client.Do(ctx, "DELETE", url, body) 4691 if err != nil { 4692 return err 4693 } 4694 4695 // build results 4696 4697 return nil 4698 } 4699 4700 // SetPassword is API call 4701 func (o *EnhancedDBOp) SetPassword(ctx context.Context, id types.ID, param *EnhancedDBSetPasswordRequest) error { 4702 // build request URL 4703 pathBuildParameter := map[string]interface{}{ 4704 "rootURL": SakuraCloudAPIRoot, 4705 "pathSuffix": o.PathSuffix, 4706 "pathName": o.PathName, 4707 "zone": APIDefaultZone, 4708 "id": id, 4709 "param": param, 4710 } 4711 4712 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/enhanceddb/set-password", pathBuildParameter) 4713 if err != nil { 4714 return err 4715 } 4716 // build request body 4717 var body interface{} 4718 v, err := o.transformSetPasswordArgs(id, param) 4719 if err != nil { 4720 return err 4721 } 4722 body = v 4723 4724 // do request 4725 _, err = o.Client.Do(ctx, "PUT", url, body) 4726 if err != nil { 4727 return err 4728 } 4729 4730 // build results 4731 4732 return nil 4733 } 4734 4735 // GetConfig is API call 4736 func (o *EnhancedDBOp) GetConfig(ctx context.Context, id types.ID) (*EnhancedDBConfig, error) { 4737 // build request URL 4738 pathBuildParameter := map[string]interface{}{ 4739 "rootURL": SakuraCloudAPIRoot, 4740 "pathSuffix": o.PathSuffix, 4741 "pathName": o.PathName, 4742 "zone": APIDefaultZone, 4743 "id": id, 4744 } 4745 4746 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/enhanceddb/config", pathBuildParameter) 4747 if err != nil { 4748 return nil, err 4749 } 4750 // build request body 4751 var body interface{} 4752 4753 // do request 4754 data, err := o.Client.Do(ctx, "GET", url, body) 4755 if err != nil { 4756 return nil, err 4757 } 4758 4759 // build results 4760 results, err := o.transformGetConfigResults(data) 4761 if err != nil { 4762 return nil, err 4763 } 4764 return results.EnhancedDBConfig, nil 4765 } 4766 4767 // SetConfig is API call 4768 func (o *EnhancedDBOp) SetConfig(ctx context.Context, id types.ID, param *EnhancedDBSetConfigRequest) error { 4769 // build request URL 4770 pathBuildParameter := map[string]interface{}{ 4771 "rootURL": SakuraCloudAPIRoot, 4772 "pathSuffix": o.PathSuffix, 4773 "pathName": o.PathName, 4774 "zone": APIDefaultZone, 4775 "id": id, 4776 "param": param, 4777 } 4778 4779 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/enhanceddb/config", pathBuildParameter) 4780 if err != nil { 4781 return err 4782 } 4783 // build request body 4784 var body interface{} 4785 v, err := o.transformSetConfigArgs(id, param) 4786 if err != nil { 4787 return err 4788 } 4789 body = v 4790 4791 // do request 4792 _, err = o.Client.Do(ctx, "PUT", url, body) 4793 if err != nil { 4794 return err 4795 } 4796 4797 // build results 4798 4799 return nil 4800 } 4801 4802 /************************************************* 4803 * ESMEOp 4804 *************************************************/ 4805 4806 // ESMEOp implements ESMEAPI interface 4807 type ESMEOp struct { 4808 // Client APICaller 4809 Client APICaller 4810 // PathSuffix is used when building URL 4811 PathSuffix string 4812 // PathName is used when building URL 4813 PathName string 4814 } 4815 4816 // NewESMEOp creates new ESMEOp instance 4817 func NewESMEOp(caller APICaller) ESMEAPI { 4818 return GetClientFactoryFunc("ESME")(caller).(ESMEAPI) 4819 } 4820 4821 // Find is API call 4822 func (o *ESMEOp) Find(ctx context.Context, conditions *FindCondition) (*ESMEFindResult, error) { 4823 // build request URL 4824 pathBuildParameter := map[string]interface{}{ 4825 "rootURL": SakuraCloudAPIRoot, 4826 "pathSuffix": o.PathSuffix, 4827 "pathName": o.PathName, 4828 "zone": APIDefaultZone, 4829 "conditions": conditions, 4830 } 4831 4832 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4833 if err != nil { 4834 return nil, err 4835 } 4836 // build request body 4837 var body interface{} 4838 v, err := o.transformFindArgs(conditions) 4839 if err != nil { 4840 return nil, err 4841 } 4842 body = v 4843 4844 // do request 4845 data, err := o.Client.Do(ctx, "GET", url, body) 4846 if err != nil { 4847 return nil, err 4848 } 4849 4850 // build results 4851 results, err := o.transformFindResults(data) 4852 if err != nil { 4853 return nil, err 4854 } 4855 return results, err 4856 } 4857 4858 // Create is API call 4859 func (o *ESMEOp) Create(ctx context.Context, param *ESMECreateRequest) (*ESME, error) { 4860 // build request URL 4861 pathBuildParameter := map[string]interface{}{ 4862 "rootURL": SakuraCloudAPIRoot, 4863 "pathSuffix": o.PathSuffix, 4864 "pathName": o.PathName, 4865 "zone": APIDefaultZone, 4866 "param": param, 4867 } 4868 4869 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 4870 if err != nil { 4871 return nil, err 4872 } 4873 // build request body 4874 var body interface{} 4875 v, err := o.transformCreateArgs(param) 4876 if err != nil { 4877 return nil, err 4878 } 4879 body = v 4880 4881 // do request 4882 data, err := o.Client.Do(ctx, "POST", url, body) 4883 if err != nil { 4884 return nil, err 4885 } 4886 4887 // build results 4888 results, err := o.transformCreateResults(data) 4889 if err != nil { 4890 return nil, err 4891 } 4892 return results.ESME, nil 4893 } 4894 4895 // Read is API call 4896 func (o *ESMEOp) Read(ctx context.Context, id types.ID) (*ESME, error) { 4897 // build request URL 4898 pathBuildParameter := map[string]interface{}{ 4899 "rootURL": SakuraCloudAPIRoot, 4900 "pathSuffix": o.PathSuffix, 4901 "pathName": o.PathName, 4902 "zone": APIDefaultZone, 4903 "id": id, 4904 } 4905 4906 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4907 if err != nil { 4908 return nil, err 4909 } 4910 // build request body 4911 var body interface{} 4912 4913 // do request 4914 data, err := o.Client.Do(ctx, "GET", url, body) 4915 if err != nil { 4916 return nil, err 4917 } 4918 4919 // build results 4920 results, err := o.transformReadResults(data) 4921 if err != nil { 4922 return nil, err 4923 } 4924 return results.ESME, nil 4925 } 4926 4927 // Update is API call 4928 func (o *ESMEOp) Update(ctx context.Context, id types.ID, param *ESMEUpdateRequest) (*ESME, error) { 4929 // build request URL 4930 pathBuildParameter := map[string]interface{}{ 4931 "rootURL": SakuraCloudAPIRoot, 4932 "pathSuffix": o.PathSuffix, 4933 "pathName": o.PathName, 4934 "zone": APIDefaultZone, 4935 "id": id, 4936 "param": param, 4937 } 4938 4939 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4940 if err != nil { 4941 return nil, err 4942 } 4943 // build request body 4944 var body interface{} 4945 v, err := o.transformUpdateArgs(id, param) 4946 if err != nil { 4947 return nil, err 4948 } 4949 body = v 4950 4951 // do request 4952 data, err := o.Client.Do(ctx, "PUT", url, body) 4953 if err != nil { 4954 return nil, err 4955 } 4956 4957 // build results 4958 results, err := o.transformUpdateResults(data) 4959 if err != nil { 4960 return nil, err 4961 } 4962 return results.ESME, nil 4963 } 4964 4965 // Delete is API call 4966 func (o *ESMEOp) Delete(ctx context.Context, id types.ID) error { 4967 // build request URL 4968 pathBuildParameter := map[string]interface{}{ 4969 "rootURL": SakuraCloudAPIRoot, 4970 "pathSuffix": o.PathSuffix, 4971 "pathName": o.PathName, 4972 "zone": APIDefaultZone, 4973 "id": id, 4974 } 4975 4976 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 4977 if err != nil { 4978 return err 4979 } 4980 // build request body 4981 var body interface{} 4982 4983 // do request 4984 _, err = o.Client.Do(ctx, "DELETE", url, body) 4985 if err != nil { 4986 return err 4987 } 4988 4989 // build results 4990 4991 return nil 4992 } 4993 4994 // SendMessageWithGeneratedOTP is API call 4995 func (o *ESMEOp) SendMessageWithGeneratedOTP(ctx context.Context, id types.ID, param *ESMESendMessageWithGeneratedOTPRequest) (*ESMESendMessageResult, error) { 4996 // build request URL 4997 pathBuildParameter := map[string]interface{}{ 4998 "rootURL": SakuraCloudAPIRoot, 4999 "pathSuffix": o.PathSuffix, 5000 "pathName": o.PathName, 5001 "zone": APIDefaultZone, 5002 "id": id, 5003 "param": param, 5004 } 5005 5006 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/esme/2fa/otp", pathBuildParameter) 5007 if err != nil { 5008 return nil, err 5009 } 5010 // build request body 5011 var body interface{} 5012 v, err := o.transformSendMessageWithGeneratedOTPArgs(id, param) 5013 if err != nil { 5014 return nil, err 5015 } 5016 body = v 5017 5018 // do request 5019 data, err := o.Client.Do(ctx, "PUT", url, body) 5020 if err != nil { 5021 return nil, err 5022 } 5023 5024 // build results 5025 results, err := o.transformSendMessageWithGeneratedOTPResults(data) 5026 if err != nil { 5027 return nil, err 5028 } 5029 return results.ESMESendMessageResult, nil 5030 } 5031 5032 // SendMessageWithInputtedOTP is API call 5033 func (o *ESMEOp) SendMessageWithInputtedOTP(ctx context.Context, id types.ID, param *ESMESendMessageWithInputtedOTPRequest) (*ESMESendMessageResult, error) { 5034 // build request URL 5035 pathBuildParameter := map[string]interface{}{ 5036 "rootURL": SakuraCloudAPIRoot, 5037 "pathSuffix": o.PathSuffix, 5038 "pathName": o.PathName, 5039 "zone": APIDefaultZone, 5040 "id": id, 5041 "param": param, 5042 } 5043 5044 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/esme/2fa", pathBuildParameter) 5045 if err != nil { 5046 return nil, err 5047 } 5048 // build request body 5049 var body interface{} 5050 v, err := o.transformSendMessageWithInputtedOTPArgs(id, param) 5051 if err != nil { 5052 return nil, err 5053 } 5054 body = v 5055 5056 // do request 5057 data, err := o.Client.Do(ctx, "PUT", url, body) 5058 if err != nil { 5059 return nil, err 5060 } 5061 5062 // build results 5063 results, err := o.transformSendMessageWithInputtedOTPResults(data) 5064 if err != nil { 5065 return nil, err 5066 } 5067 return results.ESMESendMessageResult, nil 5068 } 5069 5070 // Logs is API call 5071 func (o *ESMEOp) Logs(ctx context.Context, id types.ID) ([]*ESMELogs, error) { 5072 // build request URL 5073 pathBuildParameter := map[string]interface{}{ 5074 "rootURL": SakuraCloudAPIRoot, 5075 "pathSuffix": o.PathSuffix, 5076 "pathName": o.PathName, 5077 "zone": APIDefaultZone, 5078 "id": id, 5079 } 5080 5081 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/esme/logs", pathBuildParameter) 5082 if err != nil { 5083 return nil, err 5084 } 5085 // build request body 5086 var body interface{} 5087 5088 // do request 5089 data, err := o.Client.Do(ctx, "GET", url, body) 5090 if err != nil { 5091 return nil, err 5092 } 5093 5094 // build results 5095 results, err := o.transformLogsResults(data) 5096 if err != nil { 5097 return nil, err 5098 } 5099 return results.Logs, nil 5100 } 5101 5102 /************************************************* 5103 * GSLBOp 5104 *************************************************/ 5105 5106 // GSLBOp implements GSLBAPI interface 5107 type GSLBOp struct { 5108 // Client APICaller 5109 Client APICaller 5110 // PathSuffix is used when building URL 5111 PathSuffix string 5112 // PathName is used when building URL 5113 PathName string 5114 } 5115 5116 // NewGSLBOp creates new GSLBOp instance 5117 func NewGSLBOp(caller APICaller) GSLBAPI { 5118 return GetClientFactoryFunc("GSLB")(caller).(GSLBAPI) 5119 } 5120 5121 // Find is API call 5122 func (o *GSLBOp) Find(ctx context.Context, conditions *FindCondition) (*GSLBFindResult, error) { 5123 // build request URL 5124 pathBuildParameter := map[string]interface{}{ 5125 "rootURL": SakuraCloudAPIRoot, 5126 "pathSuffix": o.PathSuffix, 5127 "pathName": o.PathName, 5128 "zone": APIDefaultZone, 5129 "conditions": conditions, 5130 } 5131 5132 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5133 if err != nil { 5134 return nil, err 5135 } 5136 // build request body 5137 var body interface{} 5138 v, err := o.transformFindArgs(conditions) 5139 if err != nil { 5140 return nil, err 5141 } 5142 body = v 5143 5144 // do request 5145 data, err := o.Client.Do(ctx, "GET", url, body) 5146 if err != nil { 5147 return nil, err 5148 } 5149 5150 // build results 5151 results, err := o.transformFindResults(data) 5152 if err != nil { 5153 return nil, err 5154 } 5155 return results, err 5156 } 5157 5158 // Create is API call 5159 func (o *GSLBOp) Create(ctx context.Context, param *GSLBCreateRequest) (*GSLB, error) { 5160 // build request URL 5161 pathBuildParameter := map[string]interface{}{ 5162 "rootURL": SakuraCloudAPIRoot, 5163 "pathSuffix": o.PathSuffix, 5164 "pathName": o.PathName, 5165 "zone": APIDefaultZone, 5166 "param": param, 5167 } 5168 5169 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5170 if err != nil { 5171 return nil, err 5172 } 5173 // build request body 5174 var body interface{} 5175 v, err := o.transformCreateArgs(param) 5176 if err != nil { 5177 return nil, err 5178 } 5179 body = v 5180 5181 // do request 5182 data, err := o.Client.Do(ctx, "POST", url, body) 5183 if err != nil { 5184 return nil, err 5185 } 5186 5187 // build results 5188 results, err := o.transformCreateResults(data) 5189 if err != nil { 5190 return nil, err 5191 } 5192 return results.GSLB, nil 5193 } 5194 5195 // Read is API call 5196 func (o *GSLBOp) Read(ctx context.Context, id types.ID) (*GSLB, error) { 5197 // build request URL 5198 pathBuildParameter := map[string]interface{}{ 5199 "rootURL": SakuraCloudAPIRoot, 5200 "pathSuffix": o.PathSuffix, 5201 "pathName": o.PathName, 5202 "zone": APIDefaultZone, 5203 "id": id, 5204 } 5205 5206 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5207 if err != nil { 5208 return nil, err 5209 } 5210 // build request body 5211 var body interface{} 5212 5213 // do request 5214 data, err := o.Client.Do(ctx, "GET", url, body) 5215 if err != nil { 5216 return nil, err 5217 } 5218 5219 // build results 5220 results, err := o.transformReadResults(data) 5221 if err != nil { 5222 return nil, err 5223 } 5224 return results.GSLB, nil 5225 } 5226 5227 // Update is API call 5228 func (o *GSLBOp) Update(ctx context.Context, id types.ID, param *GSLBUpdateRequest) (*GSLB, error) { 5229 // build request URL 5230 pathBuildParameter := map[string]interface{}{ 5231 "rootURL": SakuraCloudAPIRoot, 5232 "pathSuffix": o.PathSuffix, 5233 "pathName": o.PathName, 5234 "zone": APIDefaultZone, 5235 "id": id, 5236 "param": param, 5237 } 5238 5239 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5240 if err != nil { 5241 return nil, err 5242 } 5243 // build request body 5244 var body interface{} 5245 v, err := o.transformUpdateArgs(id, param) 5246 if err != nil { 5247 return nil, err 5248 } 5249 body = v 5250 5251 // do request 5252 data, err := o.Client.Do(ctx, "PUT", url, body) 5253 if err != nil { 5254 return nil, err 5255 } 5256 5257 // build results 5258 results, err := o.transformUpdateResults(data) 5259 if err != nil { 5260 return nil, err 5261 } 5262 return results.GSLB, nil 5263 } 5264 5265 // UpdateSettings is API call 5266 func (o *GSLBOp) UpdateSettings(ctx context.Context, id types.ID, param *GSLBUpdateSettingsRequest) (*GSLB, error) { 5267 // build request URL 5268 pathBuildParameter := map[string]interface{}{ 5269 "rootURL": SakuraCloudAPIRoot, 5270 "pathSuffix": o.PathSuffix, 5271 "pathName": o.PathName, 5272 "zone": APIDefaultZone, 5273 "id": id, 5274 "param": param, 5275 } 5276 5277 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5278 if err != nil { 5279 return nil, err 5280 } 5281 // build request body 5282 var body interface{} 5283 v, err := o.transformUpdateSettingsArgs(id, param) 5284 if err != nil { 5285 return nil, err 5286 } 5287 body = v 5288 5289 // do request 5290 data, err := o.Client.Do(ctx, "PUT", url, body) 5291 if err != nil { 5292 return nil, err 5293 } 5294 5295 // build results 5296 results, err := o.transformUpdateSettingsResults(data) 5297 if err != nil { 5298 return nil, err 5299 } 5300 return results.GSLB, nil 5301 } 5302 5303 // Delete is API call 5304 func (o *GSLBOp) Delete(ctx context.Context, id types.ID) error { 5305 // build request URL 5306 pathBuildParameter := map[string]interface{}{ 5307 "rootURL": SakuraCloudAPIRoot, 5308 "pathSuffix": o.PathSuffix, 5309 "pathName": o.PathName, 5310 "zone": APIDefaultZone, 5311 "id": id, 5312 } 5313 5314 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5315 if err != nil { 5316 return err 5317 } 5318 // build request body 5319 var body interface{} 5320 5321 // do request 5322 _, err = o.Client.Do(ctx, "DELETE", url, body) 5323 if err != nil { 5324 return err 5325 } 5326 5327 // build results 5328 5329 return nil 5330 } 5331 5332 /************************************************* 5333 * IconOp 5334 *************************************************/ 5335 5336 // IconOp implements IconAPI interface 5337 type IconOp struct { 5338 // Client APICaller 5339 Client APICaller 5340 // PathSuffix is used when building URL 5341 PathSuffix string 5342 // PathName is used when building URL 5343 PathName string 5344 } 5345 5346 // NewIconOp creates new IconOp instance 5347 func NewIconOp(caller APICaller) IconAPI { 5348 return GetClientFactoryFunc("Icon")(caller).(IconAPI) 5349 } 5350 5351 // Find is API call 5352 func (o *IconOp) Find(ctx context.Context, conditions *FindCondition) (*IconFindResult, error) { 5353 // build request URL 5354 pathBuildParameter := map[string]interface{}{ 5355 "rootURL": SakuraCloudAPIRoot, 5356 "pathSuffix": o.PathSuffix, 5357 "pathName": o.PathName, 5358 "zone": APIDefaultZone, 5359 "conditions": conditions, 5360 } 5361 5362 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5363 if err != nil { 5364 return nil, err 5365 } 5366 // build request body 5367 var body interface{} 5368 v, err := o.transformFindArgs(conditions) 5369 if err != nil { 5370 return nil, err 5371 } 5372 body = v 5373 5374 // do request 5375 data, err := o.Client.Do(ctx, "GET", url, body) 5376 if err != nil { 5377 return nil, err 5378 } 5379 5380 // build results 5381 results, err := o.transformFindResults(data) 5382 if err != nil { 5383 return nil, err 5384 } 5385 return results, err 5386 } 5387 5388 // Create is API call 5389 func (o *IconOp) Create(ctx context.Context, param *IconCreateRequest) (*Icon, error) { 5390 // build request URL 5391 pathBuildParameter := map[string]interface{}{ 5392 "rootURL": SakuraCloudAPIRoot, 5393 "pathSuffix": o.PathSuffix, 5394 "pathName": o.PathName, 5395 "zone": APIDefaultZone, 5396 "param": param, 5397 } 5398 5399 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5400 if err != nil { 5401 return nil, err 5402 } 5403 // build request body 5404 var body interface{} 5405 v, err := o.transformCreateArgs(param) 5406 if err != nil { 5407 return nil, err 5408 } 5409 body = v 5410 5411 // do request 5412 data, err := o.Client.Do(ctx, "POST", url, body) 5413 if err != nil { 5414 return nil, err 5415 } 5416 5417 // build results 5418 results, err := o.transformCreateResults(data) 5419 if err != nil { 5420 return nil, err 5421 } 5422 return results.Icon, nil 5423 } 5424 5425 // Read is API call 5426 func (o *IconOp) Read(ctx context.Context, id types.ID) (*Icon, error) { 5427 // build request URL 5428 pathBuildParameter := map[string]interface{}{ 5429 "rootURL": SakuraCloudAPIRoot, 5430 "pathSuffix": o.PathSuffix, 5431 "pathName": o.PathName, 5432 "zone": APIDefaultZone, 5433 "id": id, 5434 } 5435 5436 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5437 if err != nil { 5438 return nil, err 5439 } 5440 // build request body 5441 var body interface{} 5442 5443 // do request 5444 data, err := o.Client.Do(ctx, "GET", url, body) 5445 if err != nil { 5446 return nil, err 5447 } 5448 5449 // build results 5450 results, err := o.transformReadResults(data) 5451 if err != nil { 5452 return nil, err 5453 } 5454 return results.Icon, nil 5455 } 5456 5457 // Update is API call 5458 func (o *IconOp) Update(ctx context.Context, id types.ID, param *IconUpdateRequest) (*Icon, error) { 5459 // build request URL 5460 pathBuildParameter := map[string]interface{}{ 5461 "rootURL": SakuraCloudAPIRoot, 5462 "pathSuffix": o.PathSuffix, 5463 "pathName": o.PathName, 5464 "zone": APIDefaultZone, 5465 "id": id, 5466 "param": param, 5467 } 5468 5469 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5470 if err != nil { 5471 return nil, err 5472 } 5473 // build request body 5474 var body interface{} 5475 v, err := o.transformUpdateArgs(id, param) 5476 if err != nil { 5477 return nil, err 5478 } 5479 body = v 5480 5481 // do request 5482 data, err := o.Client.Do(ctx, "PUT", url, body) 5483 if err != nil { 5484 return nil, err 5485 } 5486 5487 // build results 5488 results, err := o.transformUpdateResults(data) 5489 if err != nil { 5490 return nil, err 5491 } 5492 return results.Icon, nil 5493 } 5494 5495 // Delete is API call 5496 func (o *IconOp) Delete(ctx context.Context, id types.ID) error { 5497 // build request URL 5498 pathBuildParameter := map[string]interface{}{ 5499 "rootURL": SakuraCloudAPIRoot, 5500 "pathSuffix": o.PathSuffix, 5501 "pathName": o.PathName, 5502 "zone": APIDefaultZone, 5503 "id": id, 5504 } 5505 5506 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5507 if err != nil { 5508 return err 5509 } 5510 // build request body 5511 var body interface{} 5512 5513 // do request 5514 _, err = o.Client.Do(ctx, "DELETE", url, body) 5515 if err != nil { 5516 return err 5517 } 5518 5519 // build results 5520 5521 return nil 5522 } 5523 5524 /************************************************* 5525 * InterfaceOp 5526 *************************************************/ 5527 5528 // InterfaceOp implements InterfaceAPI interface 5529 type InterfaceOp struct { 5530 // Client APICaller 5531 Client APICaller 5532 // PathSuffix is used when building URL 5533 PathSuffix string 5534 // PathName is used when building URL 5535 PathName string 5536 } 5537 5538 // NewInterfaceOp creates new InterfaceOp instance 5539 func NewInterfaceOp(caller APICaller) InterfaceAPI { 5540 return GetClientFactoryFunc("Interface")(caller).(InterfaceAPI) 5541 } 5542 5543 // Find is API call 5544 func (o *InterfaceOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*InterfaceFindResult, error) { 5545 // build request URL 5546 pathBuildParameter := map[string]interface{}{ 5547 "rootURL": SakuraCloudAPIRoot, 5548 "pathSuffix": o.PathSuffix, 5549 "pathName": o.PathName, 5550 "zone": zone, 5551 "conditions": conditions, 5552 } 5553 5554 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5555 if err != nil { 5556 return nil, err 5557 } 5558 // build request body 5559 var body interface{} 5560 v, err := o.transformFindArgs(conditions) 5561 if err != nil { 5562 return nil, err 5563 } 5564 body = v 5565 5566 // do request 5567 data, err := o.Client.Do(ctx, "GET", url, body) 5568 if err != nil { 5569 return nil, err 5570 } 5571 5572 // build results 5573 results, err := o.transformFindResults(data) 5574 if err != nil { 5575 return nil, err 5576 } 5577 return results, err 5578 } 5579 5580 // Create is API call 5581 func (o *InterfaceOp) Create(ctx context.Context, zone string, param *InterfaceCreateRequest) (*Interface, error) { 5582 // build request URL 5583 pathBuildParameter := map[string]interface{}{ 5584 "rootURL": SakuraCloudAPIRoot, 5585 "pathSuffix": o.PathSuffix, 5586 "pathName": o.PathName, 5587 "zone": zone, 5588 "param": param, 5589 } 5590 5591 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5592 if err != nil { 5593 return nil, err 5594 } 5595 // build request body 5596 var body interface{} 5597 v, err := o.transformCreateArgs(param) 5598 if err != nil { 5599 return nil, err 5600 } 5601 body = v 5602 5603 // do request 5604 data, err := o.Client.Do(ctx, "POST", url, body) 5605 if err != nil { 5606 return nil, err 5607 } 5608 5609 // build results 5610 results, err := o.transformCreateResults(data) 5611 if err != nil { 5612 return nil, err 5613 } 5614 return results.Interface, nil 5615 } 5616 5617 // Read is API call 5618 func (o *InterfaceOp) Read(ctx context.Context, zone string, id types.ID) (*Interface, error) { 5619 // build request URL 5620 pathBuildParameter := map[string]interface{}{ 5621 "rootURL": SakuraCloudAPIRoot, 5622 "pathSuffix": o.PathSuffix, 5623 "pathName": o.PathName, 5624 "zone": zone, 5625 "id": id, 5626 } 5627 5628 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5629 if err != nil { 5630 return nil, err 5631 } 5632 // build request body 5633 var body interface{} 5634 5635 // do request 5636 data, err := o.Client.Do(ctx, "GET", url, body) 5637 if err != nil { 5638 return nil, err 5639 } 5640 5641 // build results 5642 results, err := o.transformReadResults(data) 5643 if err != nil { 5644 return nil, err 5645 } 5646 return results.Interface, nil 5647 } 5648 5649 // Update is API call 5650 func (o *InterfaceOp) Update(ctx context.Context, zone string, id types.ID, param *InterfaceUpdateRequest) (*Interface, error) { 5651 // build request URL 5652 pathBuildParameter := map[string]interface{}{ 5653 "rootURL": SakuraCloudAPIRoot, 5654 "pathSuffix": o.PathSuffix, 5655 "pathName": o.PathName, 5656 "zone": zone, 5657 "id": id, 5658 "param": param, 5659 } 5660 5661 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5662 if err != nil { 5663 return nil, err 5664 } 5665 // build request body 5666 var body interface{} 5667 v, err := o.transformUpdateArgs(id, param) 5668 if err != nil { 5669 return nil, err 5670 } 5671 body = v 5672 5673 // do request 5674 data, err := o.Client.Do(ctx, "PUT", url, body) 5675 if err != nil { 5676 return nil, err 5677 } 5678 5679 // build results 5680 results, err := o.transformUpdateResults(data) 5681 if err != nil { 5682 return nil, err 5683 } 5684 return results.Interface, nil 5685 } 5686 5687 // Delete is API call 5688 func (o *InterfaceOp) Delete(ctx context.Context, zone string, id types.ID) error { 5689 // build request URL 5690 pathBuildParameter := map[string]interface{}{ 5691 "rootURL": SakuraCloudAPIRoot, 5692 "pathSuffix": o.PathSuffix, 5693 "pathName": o.PathName, 5694 "zone": zone, 5695 "id": id, 5696 } 5697 5698 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 5699 if err != nil { 5700 return err 5701 } 5702 // build request body 5703 var body interface{} 5704 5705 // do request 5706 _, err = o.Client.Do(ctx, "DELETE", url, body) 5707 if err != nil { 5708 return err 5709 } 5710 5711 // build results 5712 5713 return nil 5714 } 5715 5716 // Monitor is API call 5717 func (o *InterfaceOp) Monitor(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*InterfaceActivity, error) { 5718 // build request URL 5719 pathBuildParameter := map[string]interface{}{ 5720 "rootURL": SakuraCloudAPIRoot, 5721 "pathSuffix": o.PathSuffix, 5722 "pathName": o.PathName, 5723 "zone": zone, 5724 "id": id, 5725 "condition": condition, 5726 } 5727 5728 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 5729 if err != nil { 5730 return nil, err 5731 } 5732 // build request body 5733 var body interface{} 5734 v, err := o.transformMonitorArgs(id, condition) 5735 if err != nil { 5736 return nil, err 5737 } 5738 body = v 5739 5740 // do request 5741 data, err := o.Client.Do(ctx, "GET", url, body) 5742 if err != nil { 5743 return nil, err 5744 } 5745 5746 // build results 5747 results, err := o.transformMonitorResults(data) 5748 if err != nil { 5749 return nil, err 5750 } 5751 return results.InterfaceActivity, nil 5752 } 5753 5754 // ConnectToSharedSegment is API call 5755 func (o *InterfaceOp) ConnectToSharedSegment(ctx context.Context, zone string, id types.ID) error { 5756 // build request URL 5757 pathBuildParameter := map[string]interface{}{ 5758 "rootURL": SakuraCloudAPIRoot, 5759 "pathSuffix": o.PathSuffix, 5760 "pathName": o.PathName, 5761 "zone": zone, 5762 "id": id, 5763 } 5764 5765 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/switch/shared", pathBuildParameter) 5766 if err != nil { 5767 return err 5768 } 5769 // build request body 5770 var body interface{} 5771 5772 // do request 5773 _, err = o.Client.Do(ctx, "PUT", url, body) 5774 if err != nil { 5775 return err 5776 } 5777 5778 // build results 5779 5780 return nil 5781 } 5782 5783 // ConnectToSwitch is API call 5784 func (o *InterfaceOp) ConnectToSwitch(ctx context.Context, zone string, id types.ID, switchID types.ID) error { 5785 // build request URL 5786 pathBuildParameter := map[string]interface{}{ 5787 "rootURL": SakuraCloudAPIRoot, 5788 "pathSuffix": o.PathSuffix, 5789 "pathName": o.PathName, 5790 "zone": zone, 5791 "id": id, 5792 "switchID": switchID, 5793 } 5794 5795 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/switch/{{.switchID}}", pathBuildParameter) 5796 if err != nil { 5797 return err 5798 } 5799 // build request body 5800 var body interface{} 5801 5802 // do request 5803 _, err = o.Client.Do(ctx, "PUT", url, body) 5804 if err != nil { 5805 return err 5806 } 5807 5808 // build results 5809 5810 return nil 5811 } 5812 5813 // DisconnectFromSwitch is API call 5814 func (o *InterfaceOp) DisconnectFromSwitch(ctx context.Context, zone string, id types.ID) error { 5815 // build request URL 5816 pathBuildParameter := map[string]interface{}{ 5817 "rootURL": SakuraCloudAPIRoot, 5818 "pathSuffix": o.PathSuffix, 5819 "pathName": o.PathName, 5820 "zone": zone, 5821 "id": id, 5822 } 5823 5824 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/switch", pathBuildParameter) 5825 if err != nil { 5826 return err 5827 } 5828 // build request body 5829 var body interface{} 5830 5831 // do request 5832 _, err = o.Client.Do(ctx, "DELETE", url, body) 5833 if err != nil { 5834 return err 5835 } 5836 5837 // build results 5838 5839 return nil 5840 } 5841 5842 // ConnectToPacketFilter is API call 5843 func (o *InterfaceOp) ConnectToPacketFilter(ctx context.Context, zone string, id types.ID, packetFilterID types.ID) error { 5844 // build request URL 5845 pathBuildParameter := map[string]interface{}{ 5846 "rootURL": SakuraCloudAPIRoot, 5847 "pathSuffix": o.PathSuffix, 5848 "pathName": o.PathName, 5849 "zone": zone, 5850 "id": id, 5851 "packetFilterID": packetFilterID, 5852 } 5853 5854 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/packetfilter/{{.packetFilterID}}", pathBuildParameter) 5855 if err != nil { 5856 return err 5857 } 5858 // build request body 5859 var body interface{} 5860 5861 // do request 5862 _, err = o.Client.Do(ctx, "PUT", url, body) 5863 if err != nil { 5864 return err 5865 } 5866 5867 // build results 5868 5869 return nil 5870 } 5871 5872 // DisconnectFromPacketFilter is API call 5873 func (o *InterfaceOp) DisconnectFromPacketFilter(ctx context.Context, zone string, id types.ID) error { 5874 // build request URL 5875 pathBuildParameter := map[string]interface{}{ 5876 "rootURL": SakuraCloudAPIRoot, 5877 "pathSuffix": o.PathSuffix, 5878 "pathName": o.PathName, 5879 "zone": zone, 5880 "id": id, 5881 } 5882 5883 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/packetfilter", pathBuildParameter) 5884 if err != nil { 5885 return err 5886 } 5887 // build request body 5888 var body interface{} 5889 5890 // do request 5891 _, err = o.Client.Do(ctx, "DELETE", url, body) 5892 if err != nil { 5893 return err 5894 } 5895 5896 // build results 5897 5898 return nil 5899 } 5900 5901 /************************************************* 5902 * InternetOp 5903 *************************************************/ 5904 5905 // InternetOp implements InternetAPI interface 5906 type InternetOp struct { 5907 // Client APICaller 5908 Client APICaller 5909 // PathSuffix is used when building URL 5910 PathSuffix string 5911 // PathName is used when building URL 5912 PathName string 5913 } 5914 5915 // NewInternetOp creates new InternetOp instance 5916 func NewInternetOp(caller APICaller) InternetAPI { 5917 return GetClientFactoryFunc("Internet")(caller).(InternetAPI) 5918 } 5919 5920 // Find is API call 5921 func (o *InternetOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*InternetFindResult, error) { 5922 // build request URL 5923 pathBuildParameter := map[string]interface{}{ 5924 "rootURL": SakuraCloudAPIRoot, 5925 "pathSuffix": o.PathSuffix, 5926 "pathName": o.PathName, 5927 "zone": zone, 5928 "conditions": conditions, 5929 } 5930 5931 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5932 if err != nil { 5933 return nil, err 5934 } 5935 // build request body 5936 var body interface{} 5937 v, err := o.transformFindArgs(conditions) 5938 if err != nil { 5939 return nil, err 5940 } 5941 body = v 5942 5943 // do request 5944 data, err := o.Client.Do(ctx, "GET", url, body) 5945 if err != nil { 5946 return nil, err 5947 } 5948 5949 // build results 5950 results, err := o.transformFindResults(data) 5951 if err != nil { 5952 return nil, err 5953 } 5954 return results, err 5955 } 5956 5957 // Create is API call 5958 func (o *InternetOp) Create(ctx context.Context, zone string, param *InternetCreateRequest) (*Internet, error) { 5959 // build request URL 5960 pathBuildParameter := map[string]interface{}{ 5961 "rootURL": SakuraCloudAPIRoot, 5962 "pathSuffix": o.PathSuffix, 5963 "pathName": o.PathName, 5964 "zone": zone, 5965 "param": param, 5966 } 5967 5968 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 5969 if err != nil { 5970 return nil, err 5971 } 5972 // build request body 5973 var body interface{} 5974 v, err := o.transformCreateArgs(param) 5975 if err != nil { 5976 return nil, err 5977 } 5978 body = v 5979 5980 // do request 5981 data, err := o.Client.Do(ctx, "POST", url, body) 5982 if err != nil { 5983 return nil, err 5984 } 5985 5986 // build results 5987 results, err := o.transformCreateResults(data) 5988 if err != nil { 5989 return nil, err 5990 } 5991 return results.Internet, nil 5992 } 5993 5994 // Read is API call 5995 func (o *InternetOp) Read(ctx context.Context, zone string, id types.ID) (*Internet, error) { 5996 // build request URL 5997 pathBuildParameter := map[string]interface{}{ 5998 "rootURL": SakuraCloudAPIRoot, 5999 "pathSuffix": o.PathSuffix, 6000 "pathName": o.PathName, 6001 "zone": zone, 6002 "id": id, 6003 } 6004 6005 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6006 if err != nil { 6007 return nil, err 6008 } 6009 // build request body 6010 var body interface{} 6011 6012 // do request 6013 data, err := o.Client.Do(ctx, "GET", url, body) 6014 if err != nil { 6015 return nil, err 6016 } 6017 6018 // build results 6019 results, err := o.transformReadResults(data) 6020 if err != nil { 6021 return nil, err 6022 } 6023 return results.Internet, nil 6024 } 6025 6026 // Update is API call 6027 func (o *InternetOp) Update(ctx context.Context, zone string, id types.ID, param *InternetUpdateRequest) (*Internet, error) { 6028 // build request URL 6029 pathBuildParameter := map[string]interface{}{ 6030 "rootURL": SakuraCloudAPIRoot, 6031 "pathSuffix": o.PathSuffix, 6032 "pathName": o.PathName, 6033 "zone": zone, 6034 "id": id, 6035 "param": param, 6036 } 6037 6038 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6039 if err != nil { 6040 return nil, err 6041 } 6042 // build request body 6043 var body interface{} 6044 v, err := o.transformUpdateArgs(id, param) 6045 if err != nil { 6046 return nil, err 6047 } 6048 body = v 6049 6050 // do request 6051 data, err := o.Client.Do(ctx, "PUT", url, body) 6052 if err != nil { 6053 return nil, err 6054 } 6055 6056 // build results 6057 results, err := o.transformUpdateResults(data) 6058 if err != nil { 6059 return nil, err 6060 } 6061 return results.Internet, nil 6062 } 6063 6064 // Delete is API call 6065 func (o *InternetOp) Delete(ctx context.Context, zone string, id types.ID) error { 6066 // build request URL 6067 pathBuildParameter := map[string]interface{}{ 6068 "rootURL": SakuraCloudAPIRoot, 6069 "pathSuffix": o.PathSuffix, 6070 "pathName": o.PathName, 6071 "zone": zone, 6072 "id": id, 6073 } 6074 6075 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6076 if err != nil { 6077 return err 6078 } 6079 // build request body 6080 var body interface{} 6081 6082 // do request 6083 _, err = o.Client.Do(ctx, "DELETE", url, body) 6084 if err != nil { 6085 return err 6086 } 6087 6088 // build results 6089 6090 return nil 6091 } 6092 6093 // UpdateBandWidth is API call 6094 func (o *InternetOp) UpdateBandWidth(ctx context.Context, zone string, id types.ID, param *InternetUpdateBandWidthRequest) (*Internet, error) { 6095 // build request URL 6096 pathBuildParameter := map[string]interface{}{ 6097 "rootURL": SakuraCloudAPIRoot, 6098 "pathSuffix": o.PathSuffix, 6099 "pathName": o.PathName, 6100 "zone": zone, 6101 "id": id, 6102 "param": param, 6103 } 6104 6105 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/bandwidth", pathBuildParameter) 6106 if err != nil { 6107 return nil, err 6108 } 6109 // build request body 6110 var body interface{} 6111 v, err := o.transformUpdateBandWidthArgs(id, param) 6112 if err != nil { 6113 return nil, err 6114 } 6115 body = v 6116 6117 // do request 6118 data, err := o.Client.Do(ctx, "PUT", url, body) 6119 if err != nil { 6120 return nil, err 6121 } 6122 6123 // build results 6124 results, err := o.transformUpdateBandWidthResults(data) 6125 if err != nil { 6126 return nil, err 6127 } 6128 return results.Internet, nil 6129 } 6130 6131 // AddSubnet is API call 6132 func (o *InternetOp) AddSubnet(ctx context.Context, zone string, id types.ID, param *InternetAddSubnetRequest) (*InternetSubnetOperationResult, error) { 6133 // build request URL 6134 pathBuildParameter := map[string]interface{}{ 6135 "rootURL": SakuraCloudAPIRoot, 6136 "pathSuffix": o.PathSuffix, 6137 "pathName": o.PathName, 6138 "zone": zone, 6139 "id": id, 6140 "param": param, 6141 } 6142 6143 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/subnet", pathBuildParameter) 6144 if err != nil { 6145 return nil, err 6146 } 6147 // build request body 6148 var body interface{} 6149 v, err := o.transformAddSubnetArgs(id, param) 6150 if err != nil { 6151 return nil, err 6152 } 6153 body = v 6154 6155 // do request 6156 data, err := o.Client.Do(ctx, "POST", url, body) 6157 if err != nil { 6158 return nil, err 6159 } 6160 6161 // build results 6162 results, err := o.transformAddSubnetResults(data) 6163 if err != nil { 6164 return nil, err 6165 } 6166 return results.Subnet, nil 6167 } 6168 6169 // UpdateSubnet is API call 6170 func (o *InternetOp) UpdateSubnet(ctx context.Context, zone string, id types.ID, subnetID types.ID, param *InternetUpdateSubnetRequest) (*InternetSubnetOperationResult, error) { 6171 // build request URL 6172 pathBuildParameter := map[string]interface{}{ 6173 "rootURL": SakuraCloudAPIRoot, 6174 "pathSuffix": o.PathSuffix, 6175 "pathName": o.PathName, 6176 "zone": zone, 6177 "id": id, 6178 "subnetID": subnetID, 6179 "param": param, 6180 } 6181 6182 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/subnet/{{.subnetID}}", pathBuildParameter) 6183 if err != nil { 6184 return nil, err 6185 } 6186 // build request body 6187 var body interface{} 6188 v, err := o.transformUpdateSubnetArgs(id, subnetID, param) 6189 if err != nil { 6190 return nil, err 6191 } 6192 body = v 6193 6194 // do request 6195 data, err := o.Client.Do(ctx, "PUT", url, body) 6196 if err != nil { 6197 return nil, err 6198 } 6199 6200 // build results 6201 results, err := o.transformUpdateSubnetResults(data) 6202 if err != nil { 6203 return nil, err 6204 } 6205 return results.Subnet, nil 6206 } 6207 6208 // DeleteSubnet is API call 6209 func (o *InternetOp) DeleteSubnet(ctx context.Context, zone string, id types.ID, subnetID types.ID) error { 6210 // build request URL 6211 pathBuildParameter := map[string]interface{}{ 6212 "rootURL": SakuraCloudAPIRoot, 6213 "pathSuffix": o.PathSuffix, 6214 "pathName": o.PathName, 6215 "zone": zone, 6216 "id": id, 6217 "subnetID": subnetID, 6218 } 6219 6220 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/subnet/{{.subnetID}}", pathBuildParameter) 6221 if err != nil { 6222 return err 6223 } 6224 // build request body 6225 var body interface{} 6226 6227 // do request 6228 _, err = o.Client.Do(ctx, "DELETE", url, body) 6229 if err != nil { 6230 return err 6231 } 6232 6233 // build results 6234 6235 return nil 6236 } 6237 6238 // Monitor is API call 6239 func (o *InternetOp) Monitor(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*RouterActivity, error) { 6240 // build request URL 6241 pathBuildParameter := map[string]interface{}{ 6242 "rootURL": SakuraCloudAPIRoot, 6243 "pathSuffix": o.PathSuffix, 6244 "pathName": o.PathName, 6245 "zone": zone, 6246 "id": id, 6247 "condition": condition, 6248 } 6249 6250 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 6251 if err != nil { 6252 return nil, err 6253 } 6254 // build request body 6255 var body interface{} 6256 v, err := o.transformMonitorArgs(id, condition) 6257 if err != nil { 6258 return nil, err 6259 } 6260 body = v 6261 6262 // do request 6263 data, err := o.Client.Do(ctx, "GET", url, body) 6264 if err != nil { 6265 return nil, err 6266 } 6267 6268 // build results 6269 results, err := o.transformMonitorResults(data) 6270 if err != nil { 6271 return nil, err 6272 } 6273 return results.RouterActivity, nil 6274 } 6275 6276 // MonitorRouter is API call 6277 func (o *InternetOp) MonitorRouter(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*RouterActivity, error) { 6278 // build request URL 6279 pathBuildParameter := map[string]interface{}{ 6280 "rootURL": SakuraCloudAPIRoot, 6281 "pathSuffix": o.PathSuffix, 6282 "pathName": o.PathName, 6283 "zone": zone, 6284 "id": id, 6285 "condition": condition, 6286 } 6287 6288 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 6289 if err != nil { 6290 return nil, err 6291 } 6292 // build request body 6293 var body interface{} 6294 v, err := o.transformMonitorRouterArgs(id, condition) 6295 if err != nil { 6296 return nil, err 6297 } 6298 body = v 6299 6300 // do request 6301 data, err := o.Client.Do(ctx, "GET", url, body) 6302 if err != nil { 6303 return nil, err 6304 } 6305 6306 // build results 6307 results, err := o.transformMonitorRouterResults(data) 6308 if err != nil { 6309 return nil, err 6310 } 6311 return results.RouterActivity, nil 6312 } 6313 6314 // EnableIPv6 is API call 6315 func (o *InternetOp) EnableIPv6(ctx context.Context, zone string, id types.ID) (*IPv6NetInfo, error) { 6316 // build request URL 6317 pathBuildParameter := map[string]interface{}{ 6318 "rootURL": SakuraCloudAPIRoot, 6319 "pathSuffix": o.PathSuffix, 6320 "pathName": o.PathName, 6321 "zone": zone, 6322 "id": id, 6323 } 6324 6325 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ipv6net", pathBuildParameter) 6326 if err != nil { 6327 return nil, err 6328 } 6329 // build request body 6330 var body interface{} 6331 6332 // do request 6333 data, err := o.Client.Do(ctx, "POST", url, body) 6334 if err != nil { 6335 return nil, err 6336 } 6337 6338 // build results 6339 results, err := o.transformEnableIPv6Results(data) 6340 if err != nil { 6341 return nil, err 6342 } 6343 return results.IPv6Net, nil 6344 } 6345 6346 // DisableIPv6 is API call 6347 func (o *InternetOp) DisableIPv6(ctx context.Context, zone string, id types.ID, ipv6netID types.ID) error { 6348 // build request URL 6349 pathBuildParameter := map[string]interface{}{ 6350 "rootURL": SakuraCloudAPIRoot, 6351 "pathSuffix": o.PathSuffix, 6352 "pathName": o.PathName, 6353 "zone": zone, 6354 "id": id, 6355 "ipv6netID": ipv6netID, 6356 } 6357 6358 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/ipv6net/{{.ipv6netID}}", pathBuildParameter) 6359 if err != nil { 6360 return err 6361 } 6362 // build request body 6363 var body interface{} 6364 6365 // do request 6366 _, err = o.Client.Do(ctx, "DELETE", url, body) 6367 if err != nil { 6368 return err 6369 } 6370 6371 // build results 6372 6373 return nil 6374 } 6375 6376 /************************************************* 6377 * InternetPlanOp 6378 *************************************************/ 6379 6380 // InternetPlanOp implements InternetPlanAPI interface 6381 type InternetPlanOp struct { 6382 // Client APICaller 6383 Client APICaller 6384 // PathSuffix is used when building URL 6385 PathSuffix string 6386 // PathName is used when building URL 6387 PathName string 6388 } 6389 6390 // NewInternetPlanOp creates new InternetPlanOp instance 6391 func NewInternetPlanOp(caller APICaller) InternetPlanAPI { 6392 return GetClientFactoryFunc("InternetPlan")(caller).(InternetPlanAPI) 6393 } 6394 6395 // Find is API call 6396 func (o *InternetPlanOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*InternetPlanFindResult, error) { 6397 // build request URL 6398 pathBuildParameter := map[string]interface{}{ 6399 "rootURL": SakuraCloudAPIRoot, 6400 "pathSuffix": o.PathSuffix, 6401 "pathName": o.PathName, 6402 "zone": zone, 6403 "conditions": conditions, 6404 } 6405 6406 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6407 if err != nil { 6408 return nil, err 6409 } 6410 // build request body 6411 var body interface{} 6412 v, err := o.transformFindArgs(conditions) 6413 if err != nil { 6414 return nil, err 6415 } 6416 body = v 6417 6418 // do request 6419 data, err := o.Client.Do(ctx, "GET", url, body) 6420 if err != nil { 6421 return nil, err 6422 } 6423 6424 // build results 6425 results, err := o.transformFindResults(data) 6426 if err != nil { 6427 return nil, err 6428 } 6429 return results, err 6430 } 6431 6432 // Read is API call 6433 func (o *InternetPlanOp) Read(ctx context.Context, zone string, id types.ID) (*InternetPlan, error) { 6434 // build request URL 6435 pathBuildParameter := map[string]interface{}{ 6436 "rootURL": SakuraCloudAPIRoot, 6437 "pathSuffix": o.PathSuffix, 6438 "pathName": o.PathName, 6439 "zone": zone, 6440 "id": id, 6441 } 6442 6443 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6444 if err != nil { 6445 return nil, err 6446 } 6447 // build request body 6448 var body interface{} 6449 6450 // do request 6451 data, err := o.Client.Do(ctx, "GET", url, body) 6452 if err != nil { 6453 return nil, err 6454 } 6455 6456 // build results 6457 results, err := o.transformReadResults(data) 6458 if err != nil { 6459 return nil, err 6460 } 6461 return results.InternetPlan, nil 6462 } 6463 6464 /************************************************* 6465 * IPAddressOp 6466 *************************************************/ 6467 6468 // IPAddressOp implements IPAddressAPI interface 6469 type IPAddressOp struct { 6470 // Client APICaller 6471 Client APICaller 6472 // PathSuffix is used when building URL 6473 PathSuffix string 6474 // PathName is used when building URL 6475 PathName string 6476 } 6477 6478 // NewIPAddressOp creates new IPAddressOp instance 6479 func NewIPAddressOp(caller APICaller) IPAddressAPI { 6480 return GetClientFactoryFunc("IPAddress")(caller).(IPAddressAPI) 6481 } 6482 6483 // List is API call 6484 func (o *IPAddressOp) List(ctx context.Context, zone string) (*IPAddressListResult, error) { 6485 // build request URL 6486 pathBuildParameter := map[string]interface{}{ 6487 "rootURL": SakuraCloudAPIRoot, 6488 "pathSuffix": o.PathSuffix, 6489 "pathName": o.PathName, 6490 "zone": zone, 6491 } 6492 6493 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6494 if err != nil { 6495 return nil, err 6496 } 6497 // build request body 6498 var body interface{} 6499 6500 // do request 6501 data, err := o.Client.Do(ctx, "GET", url, body) 6502 if err != nil { 6503 return nil, err 6504 } 6505 6506 // build results 6507 results, err := o.transformListResults(data) 6508 if err != nil { 6509 return nil, err 6510 } 6511 return results, err 6512 } 6513 6514 // Read is API call 6515 func (o *IPAddressOp) Read(ctx context.Context, zone string, ipAddress string) (*IPAddress, error) { 6516 // build request URL 6517 pathBuildParameter := map[string]interface{}{ 6518 "rootURL": SakuraCloudAPIRoot, 6519 "pathSuffix": o.PathSuffix, 6520 "pathName": o.PathName, 6521 "zone": zone, 6522 "ipAddress": ipAddress, 6523 } 6524 6525 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.ipAddress}}", pathBuildParameter) 6526 if err != nil { 6527 return nil, err 6528 } 6529 // build request body 6530 var body interface{} 6531 6532 // do request 6533 data, err := o.Client.Do(ctx, "GET", url, body) 6534 if err != nil { 6535 return nil, err 6536 } 6537 6538 // build results 6539 results, err := o.transformReadResults(data) 6540 if err != nil { 6541 return nil, err 6542 } 6543 return results.IPAddress, nil 6544 } 6545 6546 // UpdateHostName is API call 6547 func (o *IPAddressOp) UpdateHostName(ctx context.Context, zone string, ipAddress string, hostName string) (*IPAddress, error) { 6548 // build request URL 6549 pathBuildParameter := map[string]interface{}{ 6550 "rootURL": SakuraCloudAPIRoot, 6551 "pathSuffix": o.PathSuffix, 6552 "pathName": o.PathName, 6553 "zone": zone, 6554 "ipAddress": ipAddress, 6555 "hostName": hostName, 6556 } 6557 6558 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.ipAddress}}", pathBuildParameter) 6559 if err != nil { 6560 return nil, err 6561 } 6562 // build request body 6563 var body interface{} 6564 v, err := o.transformUpdateHostNameArgs(ipAddress, hostName) 6565 if err != nil { 6566 return nil, err 6567 } 6568 body = v 6569 6570 // do request 6571 data, err := o.Client.Do(ctx, "PUT", url, body) 6572 if err != nil { 6573 return nil, err 6574 } 6575 6576 // build results 6577 results, err := o.transformUpdateHostNameResults(data) 6578 if err != nil { 6579 return nil, err 6580 } 6581 return results.IPAddress, nil 6582 } 6583 6584 /************************************************* 6585 * IPv6NetOp 6586 *************************************************/ 6587 6588 // IPv6NetOp implements IPv6NetAPI interface 6589 type IPv6NetOp struct { 6590 // Client APICaller 6591 Client APICaller 6592 // PathSuffix is used when building URL 6593 PathSuffix string 6594 // PathName is used when building URL 6595 PathName string 6596 } 6597 6598 // NewIPv6NetOp creates new IPv6NetOp instance 6599 func NewIPv6NetOp(caller APICaller) IPv6NetAPI { 6600 return GetClientFactoryFunc("IPv6Net")(caller).(IPv6NetAPI) 6601 } 6602 6603 // List is API call 6604 func (o *IPv6NetOp) List(ctx context.Context, zone string) (*IPv6NetListResult, error) { 6605 // build request URL 6606 pathBuildParameter := map[string]interface{}{ 6607 "rootURL": SakuraCloudAPIRoot, 6608 "pathSuffix": o.PathSuffix, 6609 "pathName": o.PathName, 6610 "zone": zone, 6611 } 6612 6613 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6614 if err != nil { 6615 return nil, err 6616 } 6617 // build request body 6618 var body interface{} 6619 6620 // do request 6621 data, err := o.Client.Do(ctx, "GET", url, body) 6622 if err != nil { 6623 return nil, err 6624 } 6625 6626 // build results 6627 results, err := o.transformListResults(data) 6628 if err != nil { 6629 return nil, err 6630 } 6631 return results, err 6632 } 6633 6634 // Find is API call 6635 func (o *IPv6NetOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*IPv6NetFindResult, error) { 6636 // build request URL 6637 pathBuildParameter := map[string]interface{}{ 6638 "rootURL": SakuraCloudAPIRoot, 6639 "pathSuffix": o.PathSuffix, 6640 "pathName": o.PathName, 6641 "zone": zone, 6642 "conditions": conditions, 6643 } 6644 6645 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6646 if err != nil { 6647 return nil, err 6648 } 6649 // build request body 6650 var body interface{} 6651 v, err := o.transformFindArgs(conditions) 6652 if err != nil { 6653 return nil, err 6654 } 6655 body = v 6656 6657 // do request 6658 data, err := o.Client.Do(ctx, "GET", url, body) 6659 if err != nil { 6660 return nil, err 6661 } 6662 6663 // build results 6664 results, err := o.transformFindResults(data) 6665 if err != nil { 6666 return nil, err 6667 } 6668 return results, err 6669 } 6670 6671 // Read is API call 6672 func (o *IPv6NetOp) Read(ctx context.Context, zone string, id types.ID) (*IPv6Net, error) { 6673 // build request URL 6674 pathBuildParameter := map[string]interface{}{ 6675 "rootURL": SakuraCloudAPIRoot, 6676 "pathSuffix": o.PathSuffix, 6677 "pathName": o.PathName, 6678 "zone": zone, 6679 "id": id, 6680 } 6681 6682 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6683 if err != nil { 6684 return nil, err 6685 } 6686 // build request body 6687 var body interface{} 6688 6689 // do request 6690 data, err := o.Client.Do(ctx, "GET", url, body) 6691 if err != nil { 6692 return nil, err 6693 } 6694 6695 // build results 6696 results, err := o.transformReadResults(data) 6697 if err != nil { 6698 return nil, err 6699 } 6700 return results.IPv6Net, nil 6701 } 6702 6703 /************************************************* 6704 * IPv6AddrOp 6705 *************************************************/ 6706 6707 // IPv6AddrOp implements IPv6AddrAPI interface 6708 type IPv6AddrOp struct { 6709 // Client APICaller 6710 Client APICaller 6711 // PathSuffix is used when building URL 6712 PathSuffix string 6713 // PathName is used when building URL 6714 PathName string 6715 } 6716 6717 // NewIPv6AddrOp creates new IPv6AddrOp instance 6718 func NewIPv6AddrOp(caller APICaller) IPv6AddrAPI { 6719 return GetClientFactoryFunc("IPv6Addr")(caller).(IPv6AddrAPI) 6720 } 6721 6722 // Find is API call 6723 func (o *IPv6AddrOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*IPv6AddrFindResult, error) { 6724 // build request URL 6725 pathBuildParameter := map[string]interface{}{ 6726 "rootURL": SakuraCloudAPIRoot, 6727 "pathSuffix": o.PathSuffix, 6728 "pathName": o.PathName, 6729 "zone": zone, 6730 "conditions": conditions, 6731 } 6732 6733 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6734 if err != nil { 6735 return nil, err 6736 } 6737 // build request body 6738 var body interface{} 6739 v, err := o.transformFindArgs(conditions) 6740 if err != nil { 6741 return nil, err 6742 } 6743 body = v 6744 6745 // do request 6746 data, err := o.Client.Do(ctx, "GET", url, body) 6747 if err != nil { 6748 return nil, err 6749 } 6750 6751 // build results 6752 results, err := o.transformFindResults(data) 6753 if err != nil { 6754 return nil, err 6755 } 6756 return results, err 6757 } 6758 6759 // Create is API call 6760 func (o *IPv6AddrOp) Create(ctx context.Context, zone string, param *IPv6AddrCreateRequest) (*IPv6Addr, error) { 6761 // build request URL 6762 pathBuildParameter := map[string]interface{}{ 6763 "rootURL": SakuraCloudAPIRoot, 6764 "pathSuffix": o.PathSuffix, 6765 "pathName": o.PathName, 6766 "zone": zone, 6767 "param": param, 6768 } 6769 6770 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6771 if err != nil { 6772 return nil, err 6773 } 6774 // build request body 6775 var body interface{} 6776 v, err := o.transformCreateArgs(param) 6777 if err != nil { 6778 return nil, err 6779 } 6780 body = v 6781 6782 // do request 6783 data, err := o.Client.Do(ctx, "POST", url, body) 6784 if err != nil { 6785 return nil, err 6786 } 6787 6788 // build results 6789 results, err := o.transformCreateResults(data) 6790 if err != nil { 6791 return nil, err 6792 } 6793 return results.IPv6Addr, nil 6794 } 6795 6796 // Read is API call 6797 func (o *IPv6AddrOp) Read(ctx context.Context, zone string, ipv6addr string) (*IPv6Addr, error) { 6798 // build request URL 6799 pathBuildParameter := map[string]interface{}{ 6800 "rootURL": SakuraCloudAPIRoot, 6801 "pathSuffix": o.PathSuffix, 6802 "pathName": o.PathName, 6803 "zone": zone, 6804 "id": ipv6addr, 6805 } 6806 6807 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6808 if err != nil { 6809 return nil, err 6810 } 6811 // build request body 6812 var body interface{} 6813 6814 // do request 6815 data, err := o.Client.Do(ctx, "GET", url, body) 6816 if err != nil { 6817 return nil, err 6818 } 6819 6820 // build results 6821 results, err := o.transformReadResults(data) 6822 if err != nil { 6823 return nil, err 6824 } 6825 return results.IPv6Addr, nil 6826 } 6827 6828 // Update is API call 6829 func (o *IPv6AddrOp) Update(ctx context.Context, zone string, ipv6addr string, param *IPv6AddrUpdateRequest) (*IPv6Addr, error) { 6830 // build request URL 6831 pathBuildParameter := map[string]interface{}{ 6832 "rootURL": SakuraCloudAPIRoot, 6833 "pathSuffix": o.PathSuffix, 6834 "pathName": o.PathName, 6835 "zone": zone, 6836 "id": ipv6addr, 6837 "param": param, 6838 } 6839 6840 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6841 if err != nil { 6842 return nil, err 6843 } 6844 // build request body 6845 var body interface{} 6846 v, err := o.transformUpdateArgs(ipv6addr, param) 6847 if err != nil { 6848 return nil, err 6849 } 6850 body = v 6851 6852 // do request 6853 data, err := o.Client.Do(ctx, "PUT", url, body) 6854 if err != nil { 6855 return nil, err 6856 } 6857 6858 // build results 6859 results, err := o.transformUpdateResults(data) 6860 if err != nil { 6861 return nil, err 6862 } 6863 return results.IPv6Addr, nil 6864 } 6865 6866 // Delete is API call 6867 func (o *IPv6AddrOp) Delete(ctx context.Context, zone string, ipv6addr string) error { 6868 // build request URL 6869 pathBuildParameter := map[string]interface{}{ 6870 "rootURL": SakuraCloudAPIRoot, 6871 "pathSuffix": o.PathSuffix, 6872 "pathName": o.PathName, 6873 "zone": zone, 6874 "id": ipv6addr, 6875 } 6876 6877 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 6878 if err != nil { 6879 return err 6880 } 6881 // build request body 6882 var body interface{} 6883 6884 // do request 6885 _, err = o.Client.Do(ctx, "DELETE", url, body) 6886 if err != nil { 6887 return err 6888 } 6889 6890 // build results 6891 6892 return nil 6893 } 6894 6895 /************************************************* 6896 * LicenseOp 6897 *************************************************/ 6898 6899 // LicenseOp implements LicenseAPI interface 6900 type LicenseOp struct { 6901 // Client APICaller 6902 Client APICaller 6903 // PathSuffix is used when building URL 6904 PathSuffix string 6905 // PathName is used when building URL 6906 PathName string 6907 } 6908 6909 // NewLicenseOp creates new LicenseOp instance 6910 func NewLicenseOp(caller APICaller) LicenseAPI { 6911 return GetClientFactoryFunc("License")(caller).(LicenseAPI) 6912 } 6913 6914 // Find is API call 6915 func (o *LicenseOp) Find(ctx context.Context, conditions *FindCondition) (*LicenseFindResult, error) { 6916 // build request URL 6917 pathBuildParameter := map[string]interface{}{ 6918 "rootURL": SakuraCloudAPIRoot, 6919 "pathSuffix": o.PathSuffix, 6920 "pathName": o.PathName, 6921 "zone": APIDefaultZone, 6922 "conditions": conditions, 6923 } 6924 6925 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6926 if err != nil { 6927 return nil, err 6928 } 6929 // build request body 6930 var body interface{} 6931 v, err := o.transformFindArgs(conditions) 6932 if err != nil { 6933 return nil, err 6934 } 6935 body = v 6936 6937 // do request 6938 data, err := o.Client.Do(ctx, "GET", url, body) 6939 if err != nil { 6940 return nil, err 6941 } 6942 6943 // build results 6944 results, err := o.transformFindResults(data) 6945 if err != nil { 6946 return nil, err 6947 } 6948 return results, err 6949 } 6950 6951 // Create is API call 6952 func (o *LicenseOp) Create(ctx context.Context, param *LicenseCreateRequest) (*License, error) { 6953 // build request URL 6954 pathBuildParameter := map[string]interface{}{ 6955 "rootURL": SakuraCloudAPIRoot, 6956 "pathSuffix": o.PathSuffix, 6957 "pathName": o.PathName, 6958 "zone": APIDefaultZone, 6959 "param": param, 6960 } 6961 6962 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 6963 if err != nil { 6964 return nil, err 6965 } 6966 // build request body 6967 var body interface{} 6968 v, err := o.transformCreateArgs(param) 6969 if err != nil { 6970 return nil, err 6971 } 6972 body = v 6973 6974 // do request 6975 data, err := o.Client.Do(ctx, "POST", url, body) 6976 if err != nil { 6977 return nil, err 6978 } 6979 6980 // build results 6981 results, err := o.transformCreateResults(data) 6982 if err != nil { 6983 return nil, err 6984 } 6985 return results.License, nil 6986 } 6987 6988 // Read is API call 6989 func (o *LicenseOp) Read(ctx context.Context, id types.ID) (*License, error) { 6990 // build request URL 6991 pathBuildParameter := map[string]interface{}{ 6992 "rootURL": SakuraCloudAPIRoot, 6993 "pathSuffix": o.PathSuffix, 6994 "pathName": o.PathName, 6995 "zone": APIDefaultZone, 6996 "id": id, 6997 } 6998 6999 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7000 if err != nil { 7001 return nil, err 7002 } 7003 // build request body 7004 var body interface{} 7005 7006 // do request 7007 data, err := o.Client.Do(ctx, "GET", url, body) 7008 if err != nil { 7009 return nil, err 7010 } 7011 7012 // build results 7013 results, err := o.transformReadResults(data) 7014 if err != nil { 7015 return nil, err 7016 } 7017 return results.License, nil 7018 } 7019 7020 // Update is API call 7021 func (o *LicenseOp) Update(ctx context.Context, id types.ID, param *LicenseUpdateRequest) (*License, error) { 7022 // build request URL 7023 pathBuildParameter := map[string]interface{}{ 7024 "rootURL": SakuraCloudAPIRoot, 7025 "pathSuffix": o.PathSuffix, 7026 "pathName": o.PathName, 7027 "zone": APIDefaultZone, 7028 "id": id, 7029 "param": param, 7030 } 7031 7032 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7033 if err != nil { 7034 return nil, err 7035 } 7036 // build request body 7037 var body interface{} 7038 v, err := o.transformUpdateArgs(id, param) 7039 if err != nil { 7040 return nil, err 7041 } 7042 body = v 7043 7044 // do request 7045 data, err := o.Client.Do(ctx, "PUT", url, body) 7046 if err != nil { 7047 return nil, err 7048 } 7049 7050 // build results 7051 results, err := o.transformUpdateResults(data) 7052 if err != nil { 7053 return nil, err 7054 } 7055 return results.License, nil 7056 } 7057 7058 // Delete is API call 7059 func (o *LicenseOp) Delete(ctx context.Context, id types.ID) error { 7060 // build request URL 7061 pathBuildParameter := map[string]interface{}{ 7062 "rootURL": SakuraCloudAPIRoot, 7063 "pathSuffix": o.PathSuffix, 7064 "pathName": o.PathName, 7065 "zone": APIDefaultZone, 7066 "id": id, 7067 } 7068 7069 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7070 if err != nil { 7071 return err 7072 } 7073 // build request body 7074 var body interface{} 7075 7076 // do request 7077 _, err = o.Client.Do(ctx, "DELETE", url, body) 7078 if err != nil { 7079 return err 7080 } 7081 7082 // build results 7083 7084 return nil 7085 } 7086 7087 /************************************************* 7088 * LicenseInfoOp 7089 *************************************************/ 7090 7091 // LicenseInfoOp implements LicenseInfoAPI interface 7092 type LicenseInfoOp struct { 7093 // Client APICaller 7094 Client APICaller 7095 // PathSuffix is used when building URL 7096 PathSuffix string 7097 // PathName is used when building URL 7098 PathName string 7099 } 7100 7101 // NewLicenseInfoOp creates new LicenseInfoOp instance 7102 func NewLicenseInfoOp(caller APICaller) LicenseInfoAPI { 7103 return GetClientFactoryFunc("LicenseInfo")(caller).(LicenseInfoAPI) 7104 } 7105 7106 // Find is API call 7107 func (o *LicenseInfoOp) Find(ctx context.Context, conditions *FindCondition) (*LicenseInfoFindResult, error) { 7108 // build request URL 7109 pathBuildParameter := map[string]interface{}{ 7110 "rootURL": SakuraCloudAPIRoot, 7111 "pathSuffix": o.PathSuffix, 7112 "pathName": o.PathName, 7113 "zone": APIDefaultZone, 7114 "conditions": conditions, 7115 } 7116 7117 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 7118 if err != nil { 7119 return nil, err 7120 } 7121 // build request body 7122 var body interface{} 7123 v, err := o.transformFindArgs(conditions) 7124 if err != nil { 7125 return nil, err 7126 } 7127 body = v 7128 7129 // do request 7130 data, err := o.Client.Do(ctx, "GET", url, body) 7131 if err != nil { 7132 return nil, err 7133 } 7134 7135 // build results 7136 results, err := o.transformFindResults(data) 7137 if err != nil { 7138 return nil, err 7139 } 7140 return results, err 7141 } 7142 7143 // Read is API call 7144 func (o *LicenseInfoOp) Read(ctx context.Context, id types.ID) (*LicenseInfo, error) { 7145 // build request URL 7146 pathBuildParameter := map[string]interface{}{ 7147 "rootURL": SakuraCloudAPIRoot, 7148 "pathSuffix": o.PathSuffix, 7149 "pathName": o.PathName, 7150 "zone": APIDefaultZone, 7151 "id": id, 7152 } 7153 7154 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7155 if err != nil { 7156 return nil, err 7157 } 7158 // build request body 7159 var body interface{} 7160 7161 // do request 7162 data, err := o.Client.Do(ctx, "GET", url, body) 7163 if err != nil { 7164 return nil, err 7165 } 7166 7167 // build results 7168 results, err := o.transformReadResults(data) 7169 if err != nil { 7170 return nil, err 7171 } 7172 return results.LicenseInfo, nil 7173 } 7174 7175 /************************************************* 7176 * LoadBalancerOp 7177 *************************************************/ 7178 7179 // LoadBalancerOp implements LoadBalancerAPI interface 7180 type LoadBalancerOp struct { 7181 // Client APICaller 7182 Client APICaller 7183 // PathSuffix is used when building URL 7184 PathSuffix string 7185 // PathName is used when building URL 7186 PathName string 7187 } 7188 7189 // NewLoadBalancerOp creates new LoadBalancerOp instance 7190 func NewLoadBalancerOp(caller APICaller) LoadBalancerAPI { 7191 return GetClientFactoryFunc("LoadBalancer")(caller).(LoadBalancerAPI) 7192 } 7193 7194 // Find is API call 7195 func (o *LoadBalancerOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*LoadBalancerFindResult, error) { 7196 // build request URL 7197 pathBuildParameter := map[string]interface{}{ 7198 "rootURL": SakuraCloudAPIRoot, 7199 "pathSuffix": o.PathSuffix, 7200 "pathName": o.PathName, 7201 "zone": zone, 7202 "conditions": conditions, 7203 } 7204 7205 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 7206 if err != nil { 7207 return nil, err 7208 } 7209 // build request body 7210 var body interface{} 7211 v, err := o.transformFindArgs(conditions) 7212 if err != nil { 7213 return nil, err 7214 } 7215 body = v 7216 7217 // do request 7218 data, err := o.Client.Do(ctx, "GET", url, body) 7219 if err != nil { 7220 return nil, err 7221 } 7222 7223 // build results 7224 results, err := o.transformFindResults(data) 7225 if err != nil { 7226 return nil, err 7227 } 7228 return results, err 7229 } 7230 7231 // Create is API call 7232 func (o *LoadBalancerOp) Create(ctx context.Context, zone string, param *LoadBalancerCreateRequest) (*LoadBalancer, error) { 7233 // build request URL 7234 pathBuildParameter := map[string]interface{}{ 7235 "rootURL": SakuraCloudAPIRoot, 7236 "pathSuffix": o.PathSuffix, 7237 "pathName": o.PathName, 7238 "zone": zone, 7239 "param": param, 7240 } 7241 7242 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 7243 if err != nil { 7244 return nil, err 7245 } 7246 // build request body 7247 var body interface{} 7248 v, err := o.transformCreateArgs(param) 7249 if err != nil { 7250 return nil, err 7251 } 7252 body = v 7253 7254 // do request 7255 data, err := o.Client.Do(ctx, "POST", url, body) 7256 if err != nil { 7257 return nil, err 7258 } 7259 7260 // build results 7261 results, err := o.transformCreateResults(data) 7262 if err != nil { 7263 return nil, err 7264 } 7265 return results.LoadBalancer, nil 7266 } 7267 7268 // Read is API call 7269 func (o *LoadBalancerOp) Read(ctx context.Context, zone string, id types.ID) (*LoadBalancer, error) { 7270 // build request URL 7271 pathBuildParameter := map[string]interface{}{ 7272 "rootURL": SakuraCloudAPIRoot, 7273 "pathSuffix": o.PathSuffix, 7274 "pathName": o.PathName, 7275 "zone": zone, 7276 "id": id, 7277 } 7278 7279 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7280 if err != nil { 7281 return nil, err 7282 } 7283 // build request body 7284 var body interface{} 7285 7286 // do request 7287 data, err := o.Client.Do(ctx, "GET", url, body) 7288 if err != nil { 7289 return nil, err 7290 } 7291 7292 // build results 7293 results, err := o.transformReadResults(data) 7294 if err != nil { 7295 return nil, err 7296 } 7297 return results.LoadBalancer, nil 7298 } 7299 7300 // Update is API call 7301 func (o *LoadBalancerOp) Update(ctx context.Context, zone string, id types.ID, param *LoadBalancerUpdateRequest) (*LoadBalancer, error) { 7302 // build request URL 7303 pathBuildParameter := map[string]interface{}{ 7304 "rootURL": SakuraCloudAPIRoot, 7305 "pathSuffix": o.PathSuffix, 7306 "pathName": o.PathName, 7307 "zone": zone, 7308 "id": id, 7309 "param": param, 7310 } 7311 7312 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7313 if err != nil { 7314 return nil, err 7315 } 7316 // build request body 7317 var body interface{} 7318 v, err := o.transformUpdateArgs(id, param) 7319 if err != nil { 7320 return nil, err 7321 } 7322 body = v 7323 7324 // do request 7325 data, err := o.Client.Do(ctx, "PUT", url, body) 7326 if err != nil { 7327 return nil, err 7328 } 7329 7330 // build results 7331 results, err := o.transformUpdateResults(data) 7332 if err != nil { 7333 return nil, err 7334 } 7335 return results.LoadBalancer, nil 7336 } 7337 7338 // UpdateSettings is API call 7339 func (o *LoadBalancerOp) UpdateSettings(ctx context.Context, zone string, id types.ID, param *LoadBalancerUpdateSettingsRequest) (*LoadBalancer, error) { 7340 // build request URL 7341 pathBuildParameter := map[string]interface{}{ 7342 "rootURL": SakuraCloudAPIRoot, 7343 "pathSuffix": o.PathSuffix, 7344 "pathName": o.PathName, 7345 "zone": zone, 7346 "id": id, 7347 "param": param, 7348 } 7349 7350 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7351 if err != nil { 7352 return nil, err 7353 } 7354 // build request body 7355 var body interface{} 7356 v, err := o.transformUpdateSettingsArgs(id, param) 7357 if err != nil { 7358 return nil, err 7359 } 7360 body = v 7361 7362 // do request 7363 data, err := o.Client.Do(ctx, "PUT", url, body) 7364 if err != nil { 7365 return nil, err 7366 } 7367 7368 // build results 7369 results, err := o.transformUpdateSettingsResults(data) 7370 if err != nil { 7371 return nil, err 7372 } 7373 return results.LoadBalancer, nil 7374 } 7375 7376 // Delete is API call 7377 func (o *LoadBalancerOp) Delete(ctx context.Context, zone string, id types.ID) error { 7378 // build request URL 7379 pathBuildParameter := map[string]interface{}{ 7380 "rootURL": SakuraCloudAPIRoot, 7381 "pathSuffix": o.PathSuffix, 7382 "pathName": o.PathName, 7383 "zone": zone, 7384 "id": id, 7385 } 7386 7387 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7388 if err != nil { 7389 return err 7390 } 7391 // build request body 7392 var body interface{} 7393 7394 // do request 7395 _, err = o.Client.Do(ctx, "DELETE", url, body) 7396 if err != nil { 7397 return err 7398 } 7399 7400 // build results 7401 7402 return nil 7403 } 7404 7405 // Config is API call 7406 func (o *LoadBalancerOp) Config(ctx context.Context, zone string, id types.ID) error { 7407 // build request URL 7408 pathBuildParameter := map[string]interface{}{ 7409 "rootURL": SakuraCloudAPIRoot, 7410 "pathSuffix": o.PathSuffix, 7411 "pathName": o.PathName, 7412 "zone": zone, 7413 "id": id, 7414 } 7415 7416 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/config", pathBuildParameter) 7417 if err != nil { 7418 return err 7419 } 7420 // build request body 7421 var body interface{} 7422 7423 // do request 7424 _, err = o.Client.Do(ctx, "PUT", url, body) 7425 if err != nil { 7426 return err 7427 } 7428 7429 // build results 7430 7431 return nil 7432 } 7433 7434 // Boot is API call 7435 func (o *LoadBalancerOp) Boot(ctx context.Context, zone string, id types.ID) error { 7436 // build request URL 7437 pathBuildParameter := map[string]interface{}{ 7438 "rootURL": SakuraCloudAPIRoot, 7439 "pathSuffix": o.PathSuffix, 7440 "pathName": o.PathName, 7441 "zone": zone, 7442 "id": id, 7443 } 7444 7445 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 7446 if err != nil { 7447 return err 7448 } 7449 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 7450 if err != nil { 7451 return err 7452 } 7453 apiLocker.Lock(lockKey) 7454 defer apiLocker.Unlock(lockKey) 7455 // build request body 7456 var body interface{} 7457 7458 // do request 7459 _, err = o.Client.Do(ctx, "PUT", url, body) 7460 if err != nil { 7461 return err 7462 } 7463 7464 // build results 7465 7466 return nil 7467 } 7468 7469 // Shutdown is API call 7470 func (o *LoadBalancerOp) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *ShutdownOption) error { 7471 // build request URL 7472 pathBuildParameter := map[string]interface{}{ 7473 "rootURL": SakuraCloudAPIRoot, 7474 "pathSuffix": o.PathSuffix, 7475 "pathName": o.PathName, 7476 "zone": zone, 7477 "id": id, 7478 "shutdownOption": shutdownOption, 7479 } 7480 7481 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 7482 if err != nil { 7483 return err 7484 } 7485 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 7486 if err != nil { 7487 return err 7488 } 7489 apiLocker.Lock(lockKey) 7490 defer apiLocker.Unlock(lockKey) 7491 // build request body 7492 var body interface{} 7493 v, err := o.transformShutdownArgs(id, shutdownOption) 7494 if err != nil { 7495 return err 7496 } 7497 body = v 7498 7499 // do request 7500 _, err = o.Client.Do(ctx, "DELETE", url, body) 7501 if err != nil { 7502 return err 7503 } 7504 7505 // build results 7506 7507 return nil 7508 } 7509 7510 // Reset is API call 7511 func (o *LoadBalancerOp) Reset(ctx context.Context, zone string, id types.ID) error { 7512 // build request URL 7513 pathBuildParameter := map[string]interface{}{ 7514 "rootURL": SakuraCloudAPIRoot, 7515 "pathSuffix": o.PathSuffix, 7516 "pathName": o.PathName, 7517 "zone": zone, 7518 "id": id, 7519 } 7520 7521 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/reset", pathBuildParameter) 7522 if err != nil { 7523 return err 7524 } 7525 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 7526 if err != nil { 7527 return err 7528 } 7529 apiLocker.Lock(lockKey) 7530 defer apiLocker.Unlock(lockKey) 7531 // build request body 7532 var body interface{} 7533 7534 // do request 7535 _, err = o.Client.Do(ctx, "PUT", url, body) 7536 if err != nil { 7537 return err 7538 } 7539 7540 // build results 7541 7542 return nil 7543 } 7544 7545 // MonitorCPU is API call 7546 func (o *LoadBalancerOp) MonitorCPU(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*CPUTimeActivity, error) { 7547 // build request URL 7548 pathBuildParameter := map[string]interface{}{ 7549 "rootURL": SakuraCloudAPIRoot, 7550 "pathSuffix": o.PathSuffix, 7551 "pathName": o.PathName, 7552 "zone": zone, 7553 "id": id, 7554 "condition": condition, 7555 } 7556 7557 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/cpu/monitor", pathBuildParameter) 7558 if err != nil { 7559 return nil, err 7560 } 7561 // build request body 7562 var body interface{} 7563 v, err := o.transformMonitorCPUArgs(id, condition) 7564 if err != nil { 7565 return nil, err 7566 } 7567 body = v 7568 7569 // do request 7570 data, err := o.Client.Do(ctx, "GET", url, body) 7571 if err != nil { 7572 return nil, err 7573 } 7574 7575 // build results 7576 results, err := o.transformMonitorCPUResults(data) 7577 if err != nil { 7578 return nil, err 7579 } 7580 return results.CPUTimeActivity, nil 7581 } 7582 7583 // MonitorInterface is API call 7584 func (o *LoadBalancerOp) MonitorInterface(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*InterfaceActivity, error) { 7585 // build request URL 7586 pathBuildParameter := map[string]interface{}{ 7587 "rootURL": SakuraCloudAPIRoot, 7588 "pathSuffix": o.PathSuffix, 7589 "pathName": o.PathName, 7590 "zone": zone, 7591 "id": id, 7592 "condition": condition, 7593 } 7594 7595 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/monitor", pathBuildParameter) 7596 if err != nil { 7597 return nil, err 7598 } 7599 // build request body 7600 var body interface{} 7601 v, err := o.transformMonitorInterfaceArgs(id, condition) 7602 if err != nil { 7603 return nil, err 7604 } 7605 body = v 7606 7607 // do request 7608 data, err := o.Client.Do(ctx, "GET", url, body) 7609 if err != nil { 7610 return nil, err 7611 } 7612 7613 // build results 7614 results, err := o.transformMonitorInterfaceResults(data) 7615 if err != nil { 7616 return nil, err 7617 } 7618 return results.InterfaceActivity, nil 7619 } 7620 7621 // Status is API call 7622 func (o *LoadBalancerOp) Status(ctx context.Context, zone string, id types.ID) (*LoadBalancerStatusResult, error) { 7623 // build request URL 7624 pathBuildParameter := map[string]interface{}{ 7625 "rootURL": SakuraCloudAPIRoot, 7626 "pathSuffix": o.PathSuffix, 7627 "pathName": o.PathName, 7628 "zone": zone, 7629 "id": id, 7630 } 7631 7632 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/status", pathBuildParameter) 7633 if err != nil { 7634 return nil, err 7635 } 7636 // build request body 7637 var body interface{} 7638 7639 // do request 7640 data, err := o.Client.Do(ctx, "GET", url, body) 7641 if err != nil { 7642 return nil, err 7643 } 7644 7645 // build results 7646 results, err := o.transformStatusResults(data) 7647 if err != nil { 7648 return nil, err 7649 } 7650 return results, err 7651 } 7652 7653 /************************************************* 7654 * LocalRouterOp 7655 *************************************************/ 7656 7657 // LocalRouterOp implements LocalRouterAPI interface 7658 type LocalRouterOp struct { 7659 // Client APICaller 7660 Client APICaller 7661 // PathSuffix is used when building URL 7662 PathSuffix string 7663 // PathName is used when building URL 7664 PathName string 7665 } 7666 7667 // NewLocalRouterOp creates new LocalRouterOp instance 7668 func NewLocalRouterOp(caller APICaller) LocalRouterAPI { 7669 return GetClientFactoryFunc("LocalRouter")(caller).(LocalRouterAPI) 7670 } 7671 7672 // Find is API call 7673 func (o *LocalRouterOp) Find(ctx context.Context, conditions *FindCondition) (*LocalRouterFindResult, error) { 7674 // build request URL 7675 pathBuildParameter := map[string]interface{}{ 7676 "rootURL": SakuraCloudAPIRoot, 7677 "pathSuffix": o.PathSuffix, 7678 "pathName": o.PathName, 7679 "zone": APIDefaultZone, 7680 "conditions": conditions, 7681 } 7682 7683 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 7684 if err != nil { 7685 return nil, err 7686 } 7687 // build request body 7688 var body interface{} 7689 v, err := o.transformFindArgs(conditions) 7690 if err != nil { 7691 return nil, err 7692 } 7693 body = v 7694 7695 // do request 7696 data, err := o.Client.Do(ctx, "GET", url, body) 7697 if err != nil { 7698 return nil, err 7699 } 7700 7701 // build results 7702 results, err := o.transformFindResults(data) 7703 if err != nil { 7704 return nil, err 7705 } 7706 return results, err 7707 } 7708 7709 // Create is API call 7710 func (o *LocalRouterOp) Create(ctx context.Context, param *LocalRouterCreateRequest) (*LocalRouter, error) { 7711 // build request URL 7712 pathBuildParameter := map[string]interface{}{ 7713 "rootURL": SakuraCloudAPIRoot, 7714 "pathSuffix": o.PathSuffix, 7715 "pathName": o.PathName, 7716 "zone": APIDefaultZone, 7717 "param": param, 7718 } 7719 7720 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 7721 if err != nil { 7722 return nil, err 7723 } 7724 // build request body 7725 var body interface{} 7726 v, err := o.transformCreateArgs(param) 7727 if err != nil { 7728 return nil, err 7729 } 7730 body = v 7731 7732 // do request 7733 data, err := o.Client.Do(ctx, "POST", url, body) 7734 if err != nil { 7735 return nil, err 7736 } 7737 7738 // build results 7739 results, err := o.transformCreateResults(data) 7740 if err != nil { 7741 return nil, err 7742 } 7743 return results.LocalRouter, nil 7744 } 7745 7746 // Read is API call 7747 func (o *LocalRouterOp) Read(ctx context.Context, id types.ID) (*LocalRouter, error) { 7748 // build request URL 7749 pathBuildParameter := map[string]interface{}{ 7750 "rootURL": SakuraCloudAPIRoot, 7751 "pathSuffix": o.PathSuffix, 7752 "pathName": o.PathName, 7753 "zone": APIDefaultZone, 7754 "id": id, 7755 } 7756 7757 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7758 if err != nil { 7759 return nil, err 7760 } 7761 // build request body 7762 var body interface{} 7763 7764 // do request 7765 data, err := o.Client.Do(ctx, "GET", url, body) 7766 if err != nil { 7767 return nil, err 7768 } 7769 7770 // build results 7771 results, err := o.transformReadResults(data) 7772 if err != nil { 7773 return nil, err 7774 } 7775 return results.LocalRouter, nil 7776 } 7777 7778 // Update is API call 7779 func (o *LocalRouterOp) Update(ctx context.Context, id types.ID, param *LocalRouterUpdateRequest) (*LocalRouter, error) { 7780 // build request URL 7781 pathBuildParameter := map[string]interface{}{ 7782 "rootURL": SakuraCloudAPIRoot, 7783 "pathSuffix": o.PathSuffix, 7784 "pathName": o.PathName, 7785 "zone": APIDefaultZone, 7786 "id": id, 7787 "param": param, 7788 } 7789 7790 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7791 if err != nil { 7792 return nil, err 7793 } 7794 // build request body 7795 var body interface{} 7796 v, err := o.transformUpdateArgs(id, param) 7797 if err != nil { 7798 return nil, err 7799 } 7800 body = v 7801 7802 // do request 7803 data, err := o.Client.Do(ctx, "PUT", url, body) 7804 if err != nil { 7805 return nil, err 7806 } 7807 7808 // build results 7809 results, err := o.transformUpdateResults(data) 7810 if err != nil { 7811 return nil, err 7812 } 7813 return results.LocalRouter, nil 7814 } 7815 7816 // UpdateSettings is API call 7817 func (o *LocalRouterOp) UpdateSettings(ctx context.Context, id types.ID, param *LocalRouterUpdateSettingsRequest) (*LocalRouter, error) { 7818 // build request URL 7819 pathBuildParameter := map[string]interface{}{ 7820 "rootURL": SakuraCloudAPIRoot, 7821 "pathSuffix": o.PathSuffix, 7822 "pathName": o.PathName, 7823 "zone": APIDefaultZone, 7824 "id": id, 7825 "param": param, 7826 } 7827 7828 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7829 if err != nil { 7830 return nil, err 7831 } 7832 // build request body 7833 var body interface{} 7834 v, err := o.transformUpdateSettingsArgs(id, param) 7835 if err != nil { 7836 return nil, err 7837 } 7838 body = v 7839 7840 // do request 7841 data, err := o.Client.Do(ctx, "PUT", url, body) 7842 if err != nil { 7843 return nil, err 7844 } 7845 7846 // build results 7847 results, err := o.transformUpdateSettingsResults(data) 7848 if err != nil { 7849 return nil, err 7850 } 7851 return results.LocalRouter, nil 7852 } 7853 7854 // Delete is API call 7855 func (o *LocalRouterOp) Delete(ctx context.Context, id types.ID) error { 7856 // build request URL 7857 pathBuildParameter := map[string]interface{}{ 7858 "rootURL": SakuraCloudAPIRoot, 7859 "pathSuffix": o.PathSuffix, 7860 "pathName": o.PathName, 7861 "zone": APIDefaultZone, 7862 "id": id, 7863 } 7864 7865 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 7866 if err != nil { 7867 return err 7868 } 7869 // build request body 7870 var body interface{} 7871 7872 // do request 7873 _, err = o.Client.Do(ctx, "DELETE", url, body) 7874 if err != nil { 7875 return err 7876 } 7877 7878 // build results 7879 7880 return nil 7881 } 7882 7883 // HealthStatus is API call 7884 func (o *LocalRouterOp) HealthStatus(ctx context.Context, id types.ID) (*LocalRouterHealth, error) { 7885 // build request URL 7886 pathBuildParameter := map[string]interface{}{ 7887 "rootURL": SakuraCloudAPIRoot, 7888 "pathSuffix": o.PathSuffix, 7889 "pathName": o.PathName, 7890 "zone": APIDefaultZone, 7891 "id": id, 7892 } 7893 7894 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/health", pathBuildParameter) 7895 if err != nil { 7896 return nil, err 7897 } 7898 // build request body 7899 var body interface{} 7900 7901 // do request 7902 data, err := o.Client.Do(ctx, "GET", url, body) 7903 if err != nil { 7904 return nil, err 7905 } 7906 7907 // build results 7908 results, err := o.transformHealthStatusResults(data) 7909 if err != nil { 7910 return nil, err 7911 } 7912 return results.LocalRouterHealth, nil 7913 } 7914 7915 // MonitorLocalRouter is API call 7916 func (o *LocalRouterOp) MonitorLocalRouter(ctx context.Context, id types.ID, condition *MonitorCondition) (*LocalRouterActivity, error) { 7917 // build request URL 7918 pathBuildParameter := map[string]interface{}{ 7919 "rootURL": SakuraCloudAPIRoot, 7920 "pathSuffix": o.PathSuffix, 7921 "pathName": o.PathName, 7922 "zone": APIDefaultZone, 7923 "id": id, 7924 "condition": condition, 7925 } 7926 7927 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/activity/localrouter/monitor", pathBuildParameter) 7928 if err != nil { 7929 return nil, err 7930 } 7931 // build request body 7932 var body interface{} 7933 v, err := o.transformMonitorLocalRouterArgs(id, condition) 7934 if err != nil { 7935 return nil, err 7936 } 7937 body = v 7938 7939 // do request 7940 data, err := o.Client.Do(ctx, "GET", url, body) 7941 if err != nil { 7942 return nil, err 7943 } 7944 7945 // build results 7946 results, err := o.transformMonitorLocalRouterResults(data) 7947 if err != nil { 7948 return nil, err 7949 } 7950 return results.LocalRouterActivity, nil 7951 } 7952 7953 /************************************************* 7954 * MobileGatewayOp 7955 *************************************************/ 7956 7957 // MobileGatewayOp implements MobileGatewayAPI interface 7958 type MobileGatewayOp struct { 7959 // Client APICaller 7960 Client APICaller 7961 // PathSuffix is used when building URL 7962 PathSuffix string 7963 // PathName is used when building URL 7964 PathName string 7965 } 7966 7967 // NewMobileGatewayOp creates new MobileGatewayOp instance 7968 func NewMobileGatewayOp(caller APICaller) MobileGatewayAPI { 7969 return GetClientFactoryFunc("MobileGateway")(caller).(MobileGatewayAPI) 7970 } 7971 7972 // Find is API call 7973 func (o *MobileGatewayOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*MobileGatewayFindResult, error) { 7974 // build request URL 7975 pathBuildParameter := map[string]interface{}{ 7976 "rootURL": SakuraCloudAPIRoot, 7977 "pathSuffix": o.PathSuffix, 7978 "pathName": o.PathName, 7979 "zone": zone, 7980 "conditions": conditions, 7981 } 7982 7983 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 7984 if err != nil { 7985 return nil, err 7986 } 7987 // build request body 7988 var body interface{} 7989 v, err := o.transformFindArgs(conditions) 7990 if err != nil { 7991 return nil, err 7992 } 7993 body = v 7994 7995 // do request 7996 data, err := o.Client.Do(ctx, "GET", url, body) 7997 if err != nil { 7998 return nil, err 7999 } 8000 8001 // build results 8002 results, err := o.transformFindResults(data) 8003 if err != nil { 8004 return nil, err 8005 } 8006 return results, err 8007 } 8008 8009 // Create is API call 8010 func (o *MobileGatewayOp) Create(ctx context.Context, zone string, param *MobileGatewayCreateRequest) (*MobileGateway, error) { 8011 // build request URL 8012 pathBuildParameter := map[string]interface{}{ 8013 "rootURL": SakuraCloudAPIRoot, 8014 "pathSuffix": o.PathSuffix, 8015 "pathName": o.PathName, 8016 "zone": zone, 8017 "param": param, 8018 } 8019 8020 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 8021 if err != nil { 8022 return nil, err 8023 } 8024 // build request body 8025 var body interface{} 8026 v, err := o.transformCreateArgs(param) 8027 if err != nil { 8028 return nil, err 8029 } 8030 body = v 8031 8032 // do request 8033 data, err := o.Client.Do(ctx, "POST", url, body) 8034 if err != nil { 8035 return nil, err 8036 } 8037 8038 // build results 8039 results, err := o.transformCreateResults(data) 8040 if err != nil { 8041 return nil, err 8042 } 8043 return results.MobileGateway, nil 8044 } 8045 8046 // Read is API call 8047 func (o *MobileGatewayOp) Read(ctx context.Context, zone string, id types.ID) (*MobileGateway, error) { 8048 // build request URL 8049 pathBuildParameter := map[string]interface{}{ 8050 "rootURL": SakuraCloudAPIRoot, 8051 "pathSuffix": o.PathSuffix, 8052 "pathName": o.PathName, 8053 "zone": zone, 8054 "id": id, 8055 } 8056 8057 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8058 if err != nil { 8059 return nil, err 8060 } 8061 // build request body 8062 var body interface{} 8063 8064 // do request 8065 data, err := o.Client.Do(ctx, "GET", url, body) 8066 if err != nil { 8067 return nil, err 8068 } 8069 8070 // build results 8071 results, err := o.transformReadResults(data) 8072 if err != nil { 8073 return nil, err 8074 } 8075 return results.MobileGateway, nil 8076 } 8077 8078 // Update is API call 8079 func (o *MobileGatewayOp) Update(ctx context.Context, zone string, id types.ID, param *MobileGatewayUpdateRequest) (*MobileGateway, error) { 8080 // build request URL 8081 pathBuildParameter := map[string]interface{}{ 8082 "rootURL": SakuraCloudAPIRoot, 8083 "pathSuffix": o.PathSuffix, 8084 "pathName": o.PathName, 8085 "zone": zone, 8086 "id": id, 8087 "param": param, 8088 } 8089 8090 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8091 if err != nil { 8092 return nil, err 8093 } 8094 // build request body 8095 var body interface{} 8096 v, err := o.transformUpdateArgs(id, param) 8097 if err != nil { 8098 return nil, err 8099 } 8100 body = v 8101 8102 // do request 8103 data, err := o.Client.Do(ctx, "PUT", url, body) 8104 if err != nil { 8105 return nil, err 8106 } 8107 8108 // build results 8109 results, err := o.transformUpdateResults(data) 8110 if err != nil { 8111 return nil, err 8112 } 8113 return results.MobileGateway, nil 8114 } 8115 8116 // UpdateSettings is API call 8117 func (o *MobileGatewayOp) UpdateSettings(ctx context.Context, zone string, id types.ID, param *MobileGatewayUpdateSettingsRequest) (*MobileGateway, error) { 8118 // build request URL 8119 pathBuildParameter := map[string]interface{}{ 8120 "rootURL": SakuraCloudAPIRoot, 8121 "pathSuffix": o.PathSuffix, 8122 "pathName": o.PathName, 8123 "zone": zone, 8124 "id": id, 8125 "param": param, 8126 } 8127 8128 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8129 if err != nil { 8130 return nil, err 8131 } 8132 // build request body 8133 var body interface{} 8134 v, err := o.transformUpdateSettingsArgs(id, param) 8135 if err != nil { 8136 return nil, err 8137 } 8138 body = v 8139 8140 // do request 8141 data, err := o.Client.Do(ctx, "PUT", url, body) 8142 if err != nil { 8143 return nil, err 8144 } 8145 8146 // build results 8147 results, err := o.transformUpdateSettingsResults(data) 8148 if err != nil { 8149 return nil, err 8150 } 8151 return results.MobileGateway, nil 8152 } 8153 8154 // Delete is API call 8155 func (o *MobileGatewayOp) Delete(ctx context.Context, zone string, id types.ID) error { 8156 // build request URL 8157 pathBuildParameter := map[string]interface{}{ 8158 "rootURL": SakuraCloudAPIRoot, 8159 "pathSuffix": o.PathSuffix, 8160 "pathName": o.PathName, 8161 "zone": zone, 8162 "id": id, 8163 } 8164 8165 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8166 if err != nil { 8167 return err 8168 } 8169 // build request body 8170 var body interface{} 8171 8172 // do request 8173 _, err = o.Client.Do(ctx, "DELETE", url, body) 8174 if err != nil { 8175 return err 8176 } 8177 8178 // build results 8179 8180 return nil 8181 } 8182 8183 // Config is API call 8184 func (o *MobileGatewayOp) Config(ctx context.Context, zone string, id types.ID) error { 8185 // build request URL 8186 pathBuildParameter := map[string]interface{}{ 8187 "rootURL": SakuraCloudAPIRoot, 8188 "pathSuffix": o.PathSuffix, 8189 "pathName": o.PathName, 8190 "zone": zone, 8191 "id": id, 8192 } 8193 8194 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/config", pathBuildParameter) 8195 if err != nil { 8196 return err 8197 } 8198 // build request body 8199 var body interface{} 8200 8201 // do request 8202 _, err = o.Client.Do(ctx, "PUT", url, body) 8203 if err != nil { 8204 return err 8205 } 8206 8207 // build results 8208 8209 return nil 8210 } 8211 8212 // Boot is API call 8213 func (o *MobileGatewayOp) Boot(ctx context.Context, zone string, id types.ID) error { 8214 // build request URL 8215 pathBuildParameter := map[string]interface{}{ 8216 "rootURL": SakuraCloudAPIRoot, 8217 "pathSuffix": o.PathSuffix, 8218 "pathName": o.PathName, 8219 "zone": zone, 8220 "id": id, 8221 } 8222 8223 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 8224 if err != nil { 8225 return err 8226 } 8227 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 8228 if err != nil { 8229 return err 8230 } 8231 apiLocker.Lock(lockKey) 8232 defer apiLocker.Unlock(lockKey) 8233 // build request body 8234 var body interface{} 8235 8236 // do request 8237 _, err = o.Client.Do(ctx, "PUT", url, body) 8238 if err != nil { 8239 return err 8240 } 8241 8242 // build results 8243 8244 return nil 8245 } 8246 8247 // Shutdown is API call 8248 func (o *MobileGatewayOp) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *ShutdownOption) error { 8249 // build request URL 8250 pathBuildParameter := map[string]interface{}{ 8251 "rootURL": SakuraCloudAPIRoot, 8252 "pathSuffix": o.PathSuffix, 8253 "pathName": o.PathName, 8254 "zone": zone, 8255 "id": id, 8256 "shutdownOption": shutdownOption, 8257 } 8258 8259 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 8260 if err != nil { 8261 return err 8262 } 8263 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 8264 if err != nil { 8265 return err 8266 } 8267 apiLocker.Lock(lockKey) 8268 defer apiLocker.Unlock(lockKey) 8269 // build request body 8270 var body interface{} 8271 v, err := o.transformShutdownArgs(id, shutdownOption) 8272 if err != nil { 8273 return err 8274 } 8275 body = v 8276 8277 // do request 8278 _, err = o.Client.Do(ctx, "DELETE", url, body) 8279 if err != nil { 8280 return err 8281 } 8282 8283 // build results 8284 8285 return nil 8286 } 8287 8288 // Reset is API call 8289 func (o *MobileGatewayOp) Reset(ctx context.Context, zone string, id types.ID) error { 8290 // build request URL 8291 pathBuildParameter := map[string]interface{}{ 8292 "rootURL": SakuraCloudAPIRoot, 8293 "pathSuffix": o.PathSuffix, 8294 "pathName": o.PathName, 8295 "zone": zone, 8296 "id": id, 8297 } 8298 8299 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/reset", pathBuildParameter) 8300 if err != nil { 8301 return err 8302 } 8303 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 8304 if err != nil { 8305 return err 8306 } 8307 apiLocker.Lock(lockKey) 8308 defer apiLocker.Unlock(lockKey) 8309 // build request body 8310 var body interface{} 8311 8312 // do request 8313 _, err = o.Client.Do(ctx, "PUT", url, body) 8314 if err != nil { 8315 return err 8316 } 8317 8318 // build results 8319 8320 return nil 8321 } 8322 8323 // ConnectToSwitch is API call 8324 func (o *MobileGatewayOp) ConnectToSwitch(ctx context.Context, zone string, id types.ID, switchID types.ID) error { 8325 // build request URL 8326 pathBuildParameter := map[string]interface{}{ 8327 "rootURL": SakuraCloudAPIRoot, 8328 "pathSuffix": o.PathSuffix, 8329 "pathName": o.PathName, 8330 "zone": zone, 8331 "id": id, 8332 "switchID": switchID, 8333 } 8334 8335 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/1/to/switch/{{.switchID}}", pathBuildParameter) 8336 if err != nil { 8337 return err 8338 } 8339 // build request body 8340 var body interface{} 8341 8342 // do request 8343 _, err = o.Client.Do(ctx, "PUT", url, body) 8344 if err != nil { 8345 return err 8346 } 8347 8348 // build results 8349 8350 return nil 8351 } 8352 8353 // DisconnectFromSwitch is API call 8354 func (o *MobileGatewayOp) DisconnectFromSwitch(ctx context.Context, zone string, id types.ID) error { 8355 // build request URL 8356 pathBuildParameter := map[string]interface{}{ 8357 "rootURL": SakuraCloudAPIRoot, 8358 "pathSuffix": o.PathSuffix, 8359 "pathName": o.PathName, 8360 "zone": zone, 8361 "id": id, 8362 } 8363 8364 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/1/to/switch", pathBuildParameter) 8365 if err != nil { 8366 return err 8367 } 8368 // build request body 8369 var body interface{} 8370 8371 // do request 8372 _, err = o.Client.Do(ctx, "DELETE", url, body) 8373 if err != nil { 8374 return err 8375 } 8376 8377 // build results 8378 8379 return nil 8380 } 8381 8382 // GetDNS is API call 8383 func (o *MobileGatewayOp) GetDNS(ctx context.Context, zone string, id types.ID) (*MobileGatewayDNSSetting, error) { 8384 // build request URL 8385 pathBuildParameter := map[string]interface{}{ 8386 "rootURL": SakuraCloudAPIRoot, 8387 "pathSuffix": o.PathSuffix, 8388 "pathName": o.PathName, 8389 "zone": zone, 8390 "id": id, 8391 } 8392 8393 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/dnsresolver", pathBuildParameter) 8394 if err != nil { 8395 return nil, err 8396 } 8397 // build request body 8398 var body interface{} 8399 8400 // do request 8401 data, err := o.Client.Do(ctx, "GET", url, body) 8402 if err != nil { 8403 return nil, err 8404 } 8405 8406 // build results 8407 results, err := o.transformGetDNSResults(data) 8408 if err != nil { 8409 return nil, err 8410 } 8411 return results.SIMGroup, nil 8412 } 8413 8414 // SetDNS is API call 8415 func (o *MobileGatewayOp) SetDNS(ctx context.Context, zone string, id types.ID, param *MobileGatewayDNSSetting) error { 8416 // build request URL 8417 pathBuildParameter := map[string]interface{}{ 8418 "rootURL": SakuraCloudAPIRoot, 8419 "pathSuffix": o.PathSuffix, 8420 "pathName": o.PathName, 8421 "zone": zone, 8422 "id": id, 8423 "param": param, 8424 } 8425 8426 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/dnsresolver", pathBuildParameter) 8427 if err != nil { 8428 return err 8429 } 8430 // build request body 8431 var body interface{} 8432 v, err := o.transformSetDNSArgs(id, param) 8433 if err != nil { 8434 return err 8435 } 8436 body = v 8437 8438 // do request 8439 _, err = o.Client.Do(ctx, "PUT", url, body) 8440 if err != nil { 8441 return err 8442 } 8443 8444 // build results 8445 8446 return nil 8447 } 8448 8449 // GetSIMRoutes is API call 8450 func (o *MobileGatewayOp) GetSIMRoutes(ctx context.Context, zone string, id types.ID) (MobileGatewaySIMRoutes, error) { 8451 // build request URL 8452 pathBuildParameter := map[string]interface{}{ 8453 "rootURL": SakuraCloudAPIRoot, 8454 "pathSuffix": o.PathSuffix, 8455 "pathName": o.PathName, 8456 "zone": zone, 8457 "id": id, 8458 } 8459 8460 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/simroutes", pathBuildParameter) 8461 if err != nil { 8462 return nil, err 8463 } 8464 // build request body 8465 var body interface{} 8466 8467 // do request 8468 data, err := o.Client.Do(ctx, "GET", url, body) 8469 if err != nil { 8470 return nil, err 8471 } 8472 8473 // build results 8474 results, err := o.transformGetSIMRoutesResults(data) 8475 if err != nil { 8476 return nil, err 8477 } 8478 return results.SIMRoutes, nil 8479 } 8480 8481 // SetSIMRoutes is API call 8482 func (o *MobileGatewayOp) SetSIMRoutes(ctx context.Context, zone string, id types.ID, param []*MobileGatewaySIMRouteParam) error { 8483 // build request URL 8484 pathBuildParameter := map[string]interface{}{ 8485 "rootURL": SakuraCloudAPIRoot, 8486 "pathSuffix": o.PathSuffix, 8487 "pathName": o.PathName, 8488 "zone": zone, 8489 "id": id, 8490 "param": param, 8491 } 8492 8493 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/simroutes", pathBuildParameter) 8494 if err != nil { 8495 return err 8496 } 8497 // build request body 8498 var body interface{} 8499 v, err := o.transformSetSIMRoutesArgs(id, param) 8500 if err != nil { 8501 return err 8502 } 8503 body = v 8504 8505 // do request 8506 _, err = o.Client.Do(ctx, "PUT", url, body) 8507 if err != nil { 8508 return err 8509 } 8510 8511 // build results 8512 8513 return nil 8514 } 8515 8516 // ListSIM is API call 8517 func (o *MobileGatewayOp) ListSIM(ctx context.Context, zone string, id types.ID) (MobileGatewaySIMs, error) { 8518 // build request URL 8519 pathBuildParameter := map[string]interface{}{ 8520 "rootURL": SakuraCloudAPIRoot, 8521 "pathSuffix": o.PathSuffix, 8522 "pathName": o.PathName, 8523 "zone": zone, 8524 "id": id, 8525 } 8526 8527 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/sims", pathBuildParameter) 8528 if err != nil { 8529 return nil, err 8530 } 8531 // build request body 8532 var body interface{} 8533 8534 // do request 8535 data, err := o.Client.Do(ctx, "GET", url, body) 8536 if err != nil { 8537 return nil, err 8538 } 8539 8540 // build results 8541 results, err := o.transformListSIMResults(data) 8542 if err != nil { 8543 return nil, err 8544 } 8545 return results.SIM, nil 8546 } 8547 8548 // AddSIM is API call 8549 func (o *MobileGatewayOp) AddSIM(ctx context.Context, zone string, id types.ID, param *MobileGatewayAddSIMRequest) error { 8550 // build request URL 8551 pathBuildParameter := map[string]interface{}{ 8552 "rootURL": SakuraCloudAPIRoot, 8553 "pathSuffix": o.PathSuffix, 8554 "pathName": o.PathName, 8555 "zone": zone, 8556 "id": id, 8557 "param": param, 8558 } 8559 8560 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/sims", pathBuildParameter) 8561 if err != nil { 8562 return err 8563 } 8564 // build request body 8565 var body interface{} 8566 v, err := o.transformAddSIMArgs(id, param) 8567 if err != nil { 8568 return err 8569 } 8570 body = v 8571 8572 // do request 8573 _, err = o.Client.Do(ctx, "POST", url, body) 8574 if err != nil { 8575 return err 8576 } 8577 8578 // build results 8579 8580 return nil 8581 } 8582 8583 // DeleteSIM is API call 8584 func (o *MobileGatewayOp) DeleteSIM(ctx context.Context, zone string, id types.ID, simID types.ID) error { 8585 // build request URL 8586 pathBuildParameter := map[string]interface{}{ 8587 "rootURL": SakuraCloudAPIRoot, 8588 "pathSuffix": o.PathSuffix, 8589 "pathName": o.PathName, 8590 "zone": zone, 8591 "id": id, 8592 "simID": simID, 8593 } 8594 8595 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/sims/{{.simID}}", pathBuildParameter) 8596 if err != nil { 8597 return err 8598 } 8599 // build request body 8600 var body interface{} 8601 8602 // do request 8603 _, err = o.Client.Do(ctx, "DELETE", url, body) 8604 if err != nil { 8605 return err 8606 } 8607 8608 // build results 8609 8610 return nil 8611 } 8612 8613 // Logs is API call 8614 func (o *MobileGatewayOp) Logs(ctx context.Context, zone string, id types.ID) ([]*MobileGatewaySIMLogs, error) { 8615 // build request URL 8616 pathBuildParameter := map[string]interface{}{ 8617 "rootURL": SakuraCloudAPIRoot, 8618 "pathSuffix": o.PathSuffix, 8619 "pathName": o.PathName, 8620 "zone": zone, 8621 "id": id, 8622 } 8623 8624 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/sessionlog", pathBuildParameter) 8625 if err != nil { 8626 return nil, err 8627 } 8628 // build request body 8629 var body interface{} 8630 8631 // do request 8632 data, err := o.Client.Do(ctx, "GET", url, body) 8633 if err != nil { 8634 return nil, err 8635 } 8636 8637 // build results 8638 results, err := o.transformLogsResults(data) 8639 if err != nil { 8640 return nil, err 8641 } 8642 return results.Logs, nil 8643 } 8644 8645 // GetTrafficConfig is API call 8646 func (o *MobileGatewayOp) GetTrafficConfig(ctx context.Context, zone string, id types.ID) (*MobileGatewayTrafficControl, error) { 8647 // build request URL 8648 pathBuildParameter := map[string]interface{}{ 8649 "rootURL": SakuraCloudAPIRoot, 8650 "pathSuffix": o.PathSuffix, 8651 "pathName": o.PathName, 8652 "zone": zone, 8653 "id": id, 8654 } 8655 8656 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/traffic_monitoring", pathBuildParameter) 8657 if err != nil { 8658 return nil, err 8659 } 8660 // build request body 8661 var body interface{} 8662 8663 // do request 8664 data, err := o.Client.Do(ctx, "GET", url, body) 8665 if err != nil { 8666 return nil, err 8667 } 8668 8669 // build results 8670 results, err := o.transformGetTrafficConfigResults(data) 8671 if err != nil { 8672 return nil, err 8673 } 8674 return results.TrafficMonitoring, nil 8675 } 8676 8677 // SetTrafficConfig is API call 8678 func (o *MobileGatewayOp) SetTrafficConfig(ctx context.Context, zone string, id types.ID, param *MobileGatewayTrafficControl) error { 8679 // build request URL 8680 pathBuildParameter := map[string]interface{}{ 8681 "rootURL": SakuraCloudAPIRoot, 8682 "pathSuffix": o.PathSuffix, 8683 "pathName": o.PathName, 8684 "zone": zone, 8685 "id": id, 8686 "param": param, 8687 } 8688 8689 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/traffic_monitoring", pathBuildParameter) 8690 if err != nil { 8691 return err 8692 } 8693 // build request body 8694 var body interface{} 8695 v, err := o.transformSetTrafficConfigArgs(id, param) 8696 if err != nil { 8697 return err 8698 } 8699 body = v 8700 8701 // do request 8702 _, err = o.Client.Do(ctx, "PUT", url, body) 8703 if err != nil { 8704 return err 8705 } 8706 8707 // build results 8708 8709 return nil 8710 } 8711 8712 // DeleteTrafficConfig is API call 8713 func (o *MobileGatewayOp) DeleteTrafficConfig(ctx context.Context, zone string, id types.ID) error { 8714 // build request URL 8715 pathBuildParameter := map[string]interface{}{ 8716 "rootURL": SakuraCloudAPIRoot, 8717 "pathSuffix": o.PathSuffix, 8718 "pathName": o.PathName, 8719 "zone": zone, 8720 "id": id, 8721 } 8722 8723 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/traffic_monitoring", pathBuildParameter) 8724 if err != nil { 8725 return err 8726 } 8727 // build request body 8728 var body interface{} 8729 8730 // do request 8731 _, err = o.Client.Do(ctx, "DELETE", url, body) 8732 if err != nil { 8733 return err 8734 } 8735 8736 // build results 8737 8738 return nil 8739 } 8740 8741 // TrafficStatus is API call 8742 func (o *MobileGatewayOp) TrafficStatus(ctx context.Context, zone string, id types.ID) (*MobileGatewayTrafficStatus, error) { 8743 // build request URL 8744 pathBuildParameter := map[string]interface{}{ 8745 "rootURL": SakuraCloudAPIRoot, 8746 "pathSuffix": o.PathSuffix, 8747 "pathName": o.PathName, 8748 "zone": zone, 8749 "id": id, 8750 } 8751 8752 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/mobilegateway/traffic_status", pathBuildParameter) 8753 if err != nil { 8754 return nil, err 8755 } 8756 // build request body 8757 var body interface{} 8758 8759 // do request 8760 data, err := o.Client.Do(ctx, "GET", url, body) 8761 if err != nil { 8762 return nil, err 8763 } 8764 8765 // build results 8766 results, err := o.transformTrafficStatusResults(data) 8767 if err != nil { 8768 return nil, err 8769 } 8770 return results.TrafficStatus, nil 8771 } 8772 8773 // MonitorInterface is API call 8774 func (o *MobileGatewayOp) MonitorInterface(ctx context.Context, zone string, id types.ID, index int, condition *MonitorCondition) (*InterfaceActivity, error) { 8775 // build request URL 8776 pathBuildParameter := map[string]interface{}{ 8777 "rootURL": SakuraCloudAPIRoot, 8778 "pathSuffix": o.PathSuffix, 8779 "pathName": o.PathName, 8780 "zone": zone, 8781 "id": id, 8782 "index": index, 8783 "condition": condition, 8784 } 8785 8786 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface{{if ne .index 0}}/{{.index}}{{end}}/monitor", pathBuildParameter) 8787 if err != nil { 8788 return nil, err 8789 } 8790 // build request body 8791 var body interface{} 8792 v, err := o.transformMonitorInterfaceArgs(id, index, condition) 8793 if err != nil { 8794 return nil, err 8795 } 8796 body = v 8797 8798 // do request 8799 data, err := o.Client.Do(ctx, "GET", url, body) 8800 if err != nil { 8801 return nil, err 8802 } 8803 8804 // build results 8805 results, err := o.transformMonitorInterfaceResults(data) 8806 if err != nil { 8807 return nil, err 8808 } 8809 return results.InterfaceActivity, nil 8810 } 8811 8812 /************************************************* 8813 * NFSOp 8814 *************************************************/ 8815 8816 // NFSOp implements NFSAPI interface 8817 type NFSOp struct { 8818 // Client APICaller 8819 Client APICaller 8820 // PathSuffix is used when building URL 8821 PathSuffix string 8822 // PathName is used when building URL 8823 PathName string 8824 } 8825 8826 // NewNFSOp creates new NFSOp instance 8827 func NewNFSOp(caller APICaller) NFSAPI { 8828 return GetClientFactoryFunc("NFS")(caller).(NFSAPI) 8829 } 8830 8831 // Find is API call 8832 func (o *NFSOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*NFSFindResult, error) { 8833 // build request URL 8834 pathBuildParameter := map[string]interface{}{ 8835 "rootURL": SakuraCloudAPIRoot, 8836 "pathSuffix": o.PathSuffix, 8837 "pathName": o.PathName, 8838 "zone": zone, 8839 "conditions": conditions, 8840 } 8841 8842 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 8843 if err != nil { 8844 return nil, err 8845 } 8846 // build request body 8847 var body interface{} 8848 v, err := o.transformFindArgs(conditions) 8849 if err != nil { 8850 return nil, err 8851 } 8852 body = v 8853 8854 // do request 8855 data, err := o.Client.Do(ctx, "GET", url, body) 8856 if err != nil { 8857 return nil, err 8858 } 8859 8860 // build results 8861 results, err := o.transformFindResults(data) 8862 if err != nil { 8863 return nil, err 8864 } 8865 return results, err 8866 } 8867 8868 // Create is API call 8869 func (o *NFSOp) Create(ctx context.Context, zone string, param *NFSCreateRequest) (*NFS, error) { 8870 // build request URL 8871 pathBuildParameter := map[string]interface{}{ 8872 "rootURL": SakuraCloudAPIRoot, 8873 "pathSuffix": o.PathSuffix, 8874 "pathName": o.PathName, 8875 "zone": zone, 8876 "param": param, 8877 } 8878 8879 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 8880 if err != nil { 8881 return nil, err 8882 } 8883 // build request body 8884 var body interface{} 8885 v, err := o.transformCreateArgs(param) 8886 if err != nil { 8887 return nil, err 8888 } 8889 body = v 8890 8891 // do request 8892 data, err := o.Client.Do(ctx, "POST", url, body) 8893 if err != nil { 8894 return nil, err 8895 } 8896 8897 // build results 8898 results, err := o.transformCreateResults(data) 8899 if err != nil { 8900 return nil, err 8901 } 8902 return results.NFS, nil 8903 } 8904 8905 // Read is API call 8906 func (o *NFSOp) Read(ctx context.Context, zone string, id types.ID) (*NFS, error) { 8907 // build request URL 8908 pathBuildParameter := map[string]interface{}{ 8909 "rootURL": SakuraCloudAPIRoot, 8910 "pathSuffix": o.PathSuffix, 8911 "pathName": o.PathName, 8912 "zone": zone, 8913 "id": id, 8914 } 8915 8916 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8917 if err != nil { 8918 return nil, err 8919 } 8920 // build request body 8921 var body interface{} 8922 8923 // do request 8924 data, err := o.Client.Do(ctx, "GET", url, body) 8925 if err != nil { 8926 return nil, err 8927 } 8928 8929 // build results 8930 results, err := o.transformReadResults(data) 8931 if err != nil { 8932 return nil, err 8933 } 8934 return results.NFS, nil 8935 } 8936 8937 // Update is API call 8938 func (o *NFSOp) Update(ctx context.Context, zone string, id types.ID, param *NFSUpdateRequest) (*NFS, error) { 8939 // build request URL 8940 pathBuildParameter := map[string]interface{}{ 8941 "rootURL": SakuraCloudAPIRoot, 8942 "pathSuffix": o.PathSuffix, 8943 "pathName": o.PathName, 8944 "zone": zone, 8945 "id": id, 8946 "param": param, 8947 } 8948 8949 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8950 if err != nil { 8951 return nil, err 8952 } 8953 // build request body 8954 var body interface{} 8955 v, err := o.transformUpdateArgs(id, param) 8956 if err != nil { 8957 return nil, err 8958 } 8959 body = v 8960 8961 // do request 8962 data, err := o.Client.Do(ctx, "PUT", url, body) 8963 if err != nil { 8964 return nil, err 8965 } 8966 8967 // build results 8968 results, err := o.transformUpdateResults(data) 8969 if err != nil { 8970 return nil, err 8971 } 8972 return results.NFS, nil 8973 } 8974 8975 // Delete is API call 8976 func (o *NFSOp) Delete(ctx context.Context, zone string, id types.ID) error { 8977 // build request URL 8978 pathBuildParameter := map[string]interface{}{ 8979 "rootURL": SakuraCloudAPIRoot, 8980 "pathSuffix": o.PathSuffix, 8981 "pathName": o.PathName, 8982 "zone": zone, 8983 "id": id, 8984 } 8985 8986 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 8987 if err != nil { 8988 return err 8989 } 8990 // build request body 8991 var body interface{} 8992 8993 // do request 8994 _, err = o.Client.Do(ctx, "DELETE", url, body) 8995 if err != nil { 8996 return err 8997 } 8998 8999 // build results 9000 9001 return nil 9002 } 9003 9004 // Boot is API call 9005 func (o *NFSOp) Boot(ctx context.Context, zone string, id types.ID) error { 9006 // build request URL 9007 pathBuildParameter := map[string]interface{}{ 9008 "rootURL": SakuraCloudAPIRoot, 9009 "pathSuffix": o.PathSuffix, 9010 "pathName": o.PathName, 9011 "zone": zone, 9012 "id": id, 9013 } 9014 9015 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 9016 if err != nil { 9017 return err 9018 } 9019 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 9020 if err != nil { 9021 return err 9022 } 9023 apiLocker.Lock(lockKey) 9024 defer apiLocker.Unlock(lockKey) 9025 // build request body 9026 var body interface{} 9027 9028 // do request 9029 _, err = o.Client.Do(ctx, "PUT", url, body) 9030 if err != nil { 9031 return err 9032 } 9033 9034 // build results 9035 9036 return nil 9037 } 9038 9039 // Shutdown is API call 9040 func (o *NFSOp) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *ShutdownOption) error { 9041 // build request URL 9042 pathBuildParameter := map[string]interface{}{ 9043 "rootURL": SakuraCloudAPIRoot, 9044 "pathSuffix": o.PathSuffix, 9045 "pathName": o.PathName, 9046 "zone": zone, 9047 "id": id, 9048 "shutdownOption": shutdownOption, 9049 } 9050 9051 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 9052 if err != nil { 9053 return err 9054 } 9055 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 9056 if err != nil { 9057 return err 9058 } 9059 apiLocker.Lock(lockKey) 9060 defer apiLocker.Unlock(lockKey) 9061 // build request body 9062 var body interface{} 9063 v, err := o.transformShutdownArgs(id, shutdownOption) 9064 if err != nil { 9065 return err 9066 } 9067 body = v 9068 9069 // do request 9070 _, err = o.Client.Do(ctx, "DELETE", url, body) 9071 if err != nil { 9072 return err 9073 } 9074 9075 // build results 9076 9077 return nil 9078 } 9079 9080 // Reset is API call 9081 func (o *NFSOp) Reset(ctx context.Context, zone string, id types.ID) error { 9082 // build request URL 9083 pathBuildParameter := map[string]interface{}{ 9084 "rootURL": SakuraCloudAPIRoot, 9085 "pathSuffix": o.PathSuffix, 9086 "pathName": o.PathName, 9087 "zone": zone, 9088 "id": id, 9089 } 9090 9091 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/reset", pathBuildParameter) 9092 if err != nil { 9093 return err 9094 } 9095 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 9096 if err != nil { 9097 return err 9098 } 9099 apiLocker.Lock(lockKey) 9100 defer apiLocker.Unlock(lockKey) 9101 // build request body 9102 var body interface{} 9103 9104 // do request 9105 _, err = o.Client.Do(ctx, "PUT", url, body) 9106 if err != nil { 9107 return err 9108 } 9109 9110 // build results 9111 9112 return nil 9113 } 9114 9115 // MonitorCPU is API call 9116 func (o *NFSOp) MonitorCPU(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*CPUTimeActivity, error) { 9117 // build request URL 9118 pathBuildParameter := map[string]interface{}{ 9119 "rootURL": SakuraCloudAPIRoot, 9120 "pathSuffix": o.PathSuffix, 9121 "pathName": o.PathName, 9122 "zone": zone, 9123 "id": id, 9124 "condition": condition, 9125 } 9126 9127 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/cpu/monitor", pathBuildParameter) 9128 if err != nil { 9129 return nil, err 9130 } 9131 // build request body 9132 var body interface{} 9133 v, err := o.transformMonitorCPUArgs(id, condition) 9134 if err != nil { 9135 return nil, err 9136 } 9137 body = v 9138 9139 // do request 9140 data, err := o.Client.Do(ctx, "GET", url, body) 9141 if err != nil { 9142 return nil, err 9143 } 9144 9145 // build results 9146 results, err := o.transformMonitorCPUResults(data) 9147 if err != nil { 9148 return nil, err 9149 } 9150 return results.CPUTimeActivity, nil 9151 } 9152 9153 // MonitorFreeDiskSize is API call 9154 func (o *NFSOp) MonitorFreeDiskSize(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*FreeDiskSizeActivity, error) { 9155 // build request URL 9156 pathBuildParameter := map[string]interface{}{ 9157 "rootURL": SakuraCloudAPIRoot, 9158 "pathSuffix": o.PathSuffix, 9159 "pathName": o.PathName, 9160 "zone": zone, 9161 "id": id, 9162 "condition": condition, 9163 } 9164 9165 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/database/monitor", pathBuildParameter) 9166 if err != nil { 9167 return nil, err 9168 } 9169 // build request body 9170 var body interface{} 9171 v, err := o.transformMonitorFreeDiskSizeArgs(id, condition) 9172 if err != nil { 9173 return nil, err 9174 } 9175 body = v 9176 9177 // do request 9178 data, err := o.Client.Do(ctx, "GET", url, body) 9179 if err != nil { 9180 return nil, err 9181 } 9182 9183 // build results 9184 results, err := o.transformMonitorFreeDiskSizeResults(data) 9185 if err != nil { 9186 return nil, err 9187 } 9188 return results.FreeDiskSizeActivity, nil 9189 } 9190 9191 // MonitorInterface is API call 9192 func (o *NFSOp) MonitorInterface(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*InterfaceActivity, error) { 9193 // build request URL 9194 pathBuildParameter := map[string]interface{}{ 9195 "rootURL": SakuraCloudAPIRoot, 9196 "pathSuffix": o.PathSuffix, 9197 "pathName": o.PathName, 9198 "zone": zone, 9199 "id": id, 9200 "condition": condition, 9201 } 9202 9203 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/monitor", pathBuildParameter) 9204 if err != nil { 9205 return nil, err 9206 } 9207 // build request body 9208 var body interface{} 9209 v, err := o.transformMonitorInterfaceArgs(id, condition) 9210 if err != nil { 9211 return nil, err 9212 } 9213 body = v 9214 9215 // do request 9216 data, err := o.Client.Do(ctx, "GET", url, body) 9217 if err != nil { 9218 return nil, err 9219 } 9220 9221 // build results 9222 results, err := o.transformMonitorInterfaceResults(data) 9223 if err != nil { 9224 return nil, err 9225 } 9226 return results.InterfaceActivity, nil 9227 } 9228 9229 /************************************************* 9230 * NoteOp 9231 *************************************************/ 9232 9233 // NoteOp implements NoteAPI interface 9234 type NoteOp struct { 9235 // Client APICaller 9236 Client APICaller 9237 // PathSuffix is used when building URL 9238 PathSuffix string 9239 // PathName is used when building URL 9240 PathName string 9241 } 9242 9243 // NewNoteOp creates new NoteOp instance 9244 func NewNoteOp(caller APICaller) NoteAPI { 9245 return GetClientFactoryFunc("Note")(caller).(NoteAPI) 9246 } 9247 9248 // Find is API call 9249 func (o *NoteOp) Find(ctx context.Context, conditions *FindCondition) (*NoteFindResult, error) { 9250 // build request URL 9251 pathBuildParameter := map[string]interface{}{ 9252 "rootURL": SakuraCloudAPIRoot, 9253 "pathSuffix": o.PathSuffix, 9254 "pathName": o.PathName, 9255 "zone": APIDefaultZone, 9256 "conditions": conditions, 9257 } 9258 9259 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9260 if err != nil { 9261 return nil, err 9262 } 9263 // build request body 9264 var body interface{} 9265 v, err := o.transformFindArgs(conditions) 9266 if err != nil { 9267 return nil, err 9268 } 9269 body = v 9270 9271 // do request 9272 data, err := o.Client.Do(ctx, "GET", url, body) 9273 if err != nil { 9274 return nil, err 9275 } 9276 9277 // build results 9278 results, err := o.transformFindResults(data) 9279 if err != nil { 9280 return nil, err 9281 } 9282 return results, err 9283 } 9284 9285 // Create is API call 9286 func (o *NoteOp) Create(ctx context.Context, param *NoteCreateRequest) (*Note, error) { 9287 // build request URL 9288 pathBuildParameter := map[string]interface{}{ 9289 "rootURL": SakuraCloudAPIRoot, 9290 "pathSuffix": o.PathSuffix, 9291 "pathName": o.PathName, 9292 "zone": APIDefaultZone, 9293 "param": param, 9294 } 9295 9296 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9297 if err != nil { 9298 return nil, err 9299 } 9300 // build request body 9301 var body interface{} 9302 v, err := o.transformCreateArgs(param) 9303 if err != nil { 9304 return nil, err 9305 } 9306 body = v 9307 9308 // do request 9309 data, err := o.Client.Do(ctx, "POST", url, body) 9310 if err != nil { 9311 return nil, err 9312 } 9313 9314 // build results 9315 results, err := o.transformCreateResults(data) 9316 if err != nil { 9317 return nil, err 9318 } 9319 return results.Note, nil 9320 } 9321 9322 // Read is API call 9323 func (o *NoteOp) Read(ctx context.Context, id types.ID) (*Note, error) { 9324 // build request URL 9325 pathBuildParameter := map[string]interface{}{ 9326 "rootURL": SakuraCloudAPIRoot, 9327 "pathSuffix": o.PathSuffix, 9328 "pathName": o.PathName, 9329 "zone": APIDefaultZone, 9330 "id": id, 9331 } 9332 9333 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9334 if err != nil { 9335 return nil, err 9336 } 9337 // build request body 9338 var body interface{} 9339 9340 // do request 9341 data, err := o.Client.Do(ctx, "GET", url, body) 9342 if err != nil { 9343 return nil, err 9344 } 9345 9346 // build results 9347 results, err := o.transformReadResults(data) 9348 if err != nil { 9349 return nil, err 9350 } 9351 return results.Note, nil 9352 } 9353 9354 // Update is API call 9355 func (o *NoteOp) Update(ctx context.Context, id types.ID, param *NoteUpdateRequest) (*Note, error) { 9356 // build request URL 9357 pathBuildParameter := map[string]interface{}{ 9358 "rootURL": SakuraCloudAPIRoot, 9359 "pathSuffix": o.PathSuffix, 9360 "pathName": o.PathName, 9361 "zone": APIDefaultZone, 9362 "id": id, 9363 "param": param, 9364 } 9365 9366 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9367 if err != nil { 9368 return nil, err 9369 } 9370 // build request body 9371 var body interface{} 9372 v, err := o.transformUpdateArgs(id, param) 9373 if err != nil { 9374 return nil, err 9375 } 9376 body = v 9377 9378 // do request 9379 data, err := o.Client.Do(ctx, "PUT", url, body) 9380 if err != nil { 9381 return nil, err 9382 } 9383 9384 // build results 9385 results, err := o.transformUpdateResults(data) 9386 if err != nil { 9387 return nil, err 9388 } 9389 return results.Note, nil 9390 } 9391 9392 // Delete is API call 9393 func (o *NoteOp) Delete(ctx context.Context, id types.ID) error { 9394 // build request URL 9395 pathBuildParameter := map[string]interface{}{ 9396 "rootURL": SakuraCloudAPIRoot, 9397 "pathSuffix": o.PathSuffix, 9398 "pathName": o.PathName, 9399 "zone": APIDefaultZone, 9400 "id": id, 9401 } 9402 9403 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9404 if err != nil { 9405 return err 9406 } 9407 // build request body 9408 var body interface{} 9409 9410 // do request 9411 _, err = o.Client.Do(ctx, "DELETE", url, body) 9412 if err != nil { 9413 return err 9414 } 9415 9416 // build results 9417 9418 return nil 9419 } 9420 9421 /************************************************* 9422 * PacketFilterOp 9423 *************************************************/ 9424 9425 // PacketFilterOp implements PacketFilterAPI interface 9426 type PacketFilterOp struct { 9427 // Client APICaller 9428 Client APICaller 9429 // PathSuffix is used when building URL 9430 PathSuffix string 9431 // PathName is used when building URL 9432 PathName string 9433 } 9434 9435 // NewPacketFilterOp creates new PacketFilterOp instance 9436 func NewPacketFilterOp(caller APICaller) PacketFilterAPI { 9437 return GetClientFactoryFunc("PacketFilter")(caller).(PacketFilterAPI) 9438 } 9439 9440 // Find is API call 9441 func (o *PacketFilterOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*PacketFilterFindResult, error) { 9442 // build request URL 9443 pathBuildParameter := map[string]interface{}{ 9444 "rootURL": SakuraCloudAPIRoot, 9445 "pathSuffix": o.PathSuffix, 9446 "pathName": o.PathName, 9447 "zone": zone, 9448 "conditions": conditions, 9449 } 9450 9451 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9452 if err != nil { 9453 return nil, err 9454 } 9455 // build request body 9456 var body interface{} 9457 v, err := o.transformFindArgs(conditions) 9458 if err != nil { 9459 return nil, err 9460 } 9461 body = v 9462 9463 // do request 9464 data, err := o.Client.Do(ctx, "GET", url, body) 9465 if err != nil { 9466 return nil, err 9467 } 9468 9469 // build results 9470 results, err := o.transformFindResults(data) 9471 if err != nil { 9472 return nil, err 9473 } 9474 return results, err 9475 } 9476 9477 // Create is API call 9478 func (o *PacketFilterOp) Create(ctx context.Context, zone string, param *PacketFilterCreateRequest) (*PacketFilter, error) { 9479 // build request URL 9480 pathBuildParameter := map[string]interface{}{ 9481 "rootURL": SakuraCloudAPIRoot, 9482 "pathSuffix": o.PathSuffix, 9483 "pathName": o.PathName, 9484 "zone": zone, 9485 "param": param, 9486 } 9487 9488 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9489 if err != nil { 9490 return nil, err 9491 } 9492 // build request body 9493 var body interface{} 9494 v, err := o.transformCreateArgs(param) 9495 if err != nil { 9496 return nil, err 9497 } 9498 body = v 9499 9500 // do request 9501 data, err := o.Client.Do(ctx, "POST", url, body) 9502 if err != nil { 9503 return nil, err 9504 } 9505 9506 // build results 9507 results, err := o.transformCreateResults(data) 9508 if err != nil { 9509 return nil, err 9510 } 9511 return results.PacketFilter, nil 9512 } 9513 9514 // Read is API call 9515 func (o *PacketFilterOp) Read(ctx context.Context, zone string, id types.ID) (*PacketFilter, error) { 9516 // build request URL 9517 pathBuildParameter := map[string]interface{}{ 9518 "rootURL": SakuraCloudAPIRoot, 9519 "pathSuffix": o.PathSuffix, 9520 "pathName": o.PathName, 9521 "zone": zone, 9522 "id": id, 9523 } 9524 9525 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9526 if err != nil { 9527 return nil, err 9528 } 9529 // build request body 9530 var body interface{} 9531 9532 // do request 9533 data, err := o.Client.Do(ctx, "GET", url, body) 9534 if err != nil { 9535 return nil, err 9536 } 9537 9538 // build results 9539 results, err := o.transformReadResults(data) 9540 if err != nil { 9541 return nil, err 9542 } 9543 return results.PacketFilter, nil 9544 } 9545 9546 // Update is API call 9547 func (o *PacketFilterOp) Update(ctx context.Context, zone string, id types.ID, updateParam *PacketFilterUpdateRequest, originalExpressionHash string) (*PacketFilter, error) { 9548 // build request URL 9549 pathBuildParameter := map[string]interface{}{ 9550 "rootURL": SakuraCloudAPIRoot, 9551 "pathSuffix": o.PathSuffix, 9552 "pathName": o.PathName, 9553 "zone": zone, 9554 "id": id, 9555 "updateParam": updateParam, 9556 "originalExpressionHash": originalExpressionHash, 9557 } 9558 9559 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9560 if err != nil { 9561 return nil, err 9562 } 9563 // build request body 9564 var body interface{} 9565 v, err := o.transformUpdateArgs(id, updateParam, originalExpressionHash) 9566 if err != nil { 9567 return nil, err 9568 } 9569 body = v 9570 9571 // do request 9572 data, err := o.Client.Do(ctx, "PUT", url, body) 9573 if err != nil { 9574 return nil, err 9575 } 9576 9577 // build results 9578 results, err := o.transformUpdateResults(data) 9579 if err != nil { 9580 return nil, err 9581 } 9582 return results.PacketFilter, nil 9583 } 9584 9585 // Delete is API call 9586 func (o *PacketFilterOp) Delete(ctx context.Context, zone string, id types.ID) error { 9587 // build request URL 9588 pathBuildParameter := map[string]interface{}{ 9589 "rootURL": SakuraCloudAPIRoot, 9590 "pathSuffix": o.PathSuffix, 9591 "pathName": o.PathName, 9592 "zone": zone, 9593 "id": id, 9594 } 9595 9596 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9597 if err != nil { 9598 return err 9599 } 9600 // build request body 9601 var body interface{} 9602 9603 // do request 9604 _, err = o.Client.Do(ctx, "DELETE", url, body) 9605 if err != nil { 9606 return err 9607 } 9608 9609 // build results 9610 9611 return nil 9612 } 9613 9614 /************************************************* 9615 * PrivateHostOp 9616 *************************************************/ 9617 9618 // PrivateHostOp implements PrivateHostAPI interface 9619 type PrivateHostOp struct { 9620 // Client APICaller 9621 Client APICaller 9622 // PathSuffix is used when building URL 9623 PathSuffix string 9624 // PathName is used when building URL 9625 PathName string 9626 } 9627 9628 // NewPrivateHostOp creates new PrivateHostOp instance 9629 func NewPrivateHostOp(caller APICaller) PrivateHostAPI { 9630 return GetClientFactoryFunc("PrivateHost")(caller).(PrivateHostAPI) 9631 } 9632 9633 // Find is API call 9634 func (o *PrivateHostOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*PrivateHostFindResult, error) { 9635 // build request URL 9636 pathBuildParameter := map[string]interface{}{ 9637 "rootURL": SakuraCloudAPIRoot, 9638 "pathSuffix": o.PathSuffix, 9639 "pathName": o.PathName, 9640 "zone": zone, 9641 "conditions": conditions, 9642 } 9643 9644 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9645 if err != nil { 9646 return nil, err 9647 } 9648 // build request body 9649 var body interface{} 9650 v, err := o.transformFindArgs(conditions) 9651 if err != nil { 9652 return nil, err 9653 } 9654 body = v 9655 9656 // do request 9657 data, err := o.Client.Do(ctx, "GET", url, body) 9658 if err != nil { 9659 return nil, err 9660 } 9661 9662 // build results 9663 results, err := o.transformFindResults(data) 9664 if err != nil { 9665 return nil, err 9666 } 9667 return results, err 9668 } 9669 9670 // Create is API call 9671 func (o *PrivateHostOp) Create(ctx context.Context, zone string, param *PrivateHostCreateRequest) (*PrivateHost, error) { 9672 // build request URL 9673 pathBuildParameter := map[string]interface{}{ 9674 "rootURL": SakuraCloudAPIRoot, 9675 "pathSuffix": o.PathSuffix, 9676 "pathName": o.PathName, 9677 "zone": zone, 9678 "param": param, 9679 } 9680 9681 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9682 if err != nil { 9683 return nil, err 9684 } 9685 // build request body 9686 var body interface{} 9687 v, err := o.transformCreateArgs(param) 9688 if err != nil { 9689 return nil, err 9690 } 9691 body = v 9692 9693 // do request 9694 data, err := o.Client.Do(ctx, "POST", url, body) 9695 if err != nil { 9696 return nil, err 9697 } 9698 9699 // build results 9700 results, err := o.transformCreateResults(data) 9701 if err != nil { 9702 return nil, err 9703 } 9704 return results.PrivateHost, nil 9705 } 9706 9707 // Read is API call 9708 func (o *PrivateHostOp) Read(ctx context.Context, zone string, id types.ID) (*PrivateHost, error) { 9709 // build request URL 9710 pathBuildParameter := map[string]interface{}{ 9711 "rootURL": SakuraCloudAPIRoot, 9712 "pathSuffix": o.PathSuffix, 9713 "pathName": o.PathName, 9714 "zone": zone, 9715 "id": id, 9716 } 9717 9718 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9719 if err != nil { 9720 return nil, err 9721 } 9722 // build request body 9723 var body interface{} 9724 9725 // do request 9726 data, err := o.Client.Do(ctx, "GET", url, body) 9727 if err != nil { 9728 return nil, err 9729 } 9730 9731 // build results 9732 results, err := o.transformReadResults(data) 9733 if err != nil { 9734 return nil, err 9735 } 9736 return results.PrivateHost, nil 9737 } 9738 9739 // Update is API call 9740 func (o *PrivateHostOp) Update(ctx context.Context, zone string, id types.ID, param *PrivateHostUpdateRequest) (*PrivateHost, error) { 9741 // build request URL 9742 pathBuildParameter := map[string]interface{}{ 9743 "rootURL": SakuraCloudAPIRoot, 9744 "pathSuffix": o.PathSuffix, 9745 "pathName": o.PathName, 9746 "zone": zone, 9747 "id": id, 9748 "param": param, 9749 } 9750 9751 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9752 if err != nil { 9753 return nil, err 9754 } 9755 // build request body 9756 var body interface{} 9757 v, err := o.transformUpdateArgs(id, param) 9758 if err != nil { 9759 return nil, err 9760 } 9761 body = v 9762 9763 // do request 9764 data, err := o.Client.Do(ctx, "PUT", url, body) 9765 if err != nil { 9766 return nil, err 9767 } 9768 9769 // build results 9770 results, err := o.transformUpdateResults(data) 9771 if err != nil { 9772 return nil, err 9773 } 9774 return results.PrivateHost, nil 9775 } 9776 9777 // Delete is API call 9778 func (o *PrivateHostOp) Delete(ctx context.Context, zone string, id types.ID) error { 9779 // build request URL 9780 pathBuildParameter := map[string]interface{}{ 9781 "rootURL": SakuraCloudAPIRoot, 9782 "pathSuffix": o.PathSuffix, 9783 "pathName": o.PathName, 9784 "zone": zone, 9785 "id": id, 9786 } 9787 9788 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9789 if err != nil { 9790 return err 9791 } 9792 // build request body 9793 var body interface{} 9794 9795 // do request 9796 _, err = o.Client.Do(ctx, "DELETE", url, body) 9797 if err != nil { 9798 return err 9799 } 9800 9801 // build results 9802 9803 return nil 9804 } 9805 9806 /************************************************* 9807 * PrivateHostPlanOp 9808 *************************************************/ 9809 9810 // PrivateHostPlanOp implements PrivateHostPlanAPI interface 9811 type PrivateHostPlanOp struct { 9812 // Client APICaller 9813 Client APICaller 9814 // PathSuffix is used when building URL 9815 PathSuffix string 9816 // PathName is used when building URL 9817 PathName string 9818 } 9819 9820 // NewPrivateHostPlanOp creates new PrivateHostPlanOp instance 9821 func NewPrivateHostPlanOp(caller APICaller) PrivateHostPlanAPI { 9822 return GetClientFactoryFunc("PrivateHostPlan")(caller).(PrivateHostPlanAPI) 9823 } 9824 9825 // Find is API call 9826 func (o *PrivateHostPlanOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*PrivateHostPlanFindResult, error) { 9827 // build request URL 9828 pathBuildParameter := map[string]interface{}{ 9829 "rootURL": SakuraCloudAPIRoot, 9830 "pathSuffix": o.PathSuffix, 9831 "pathName": o.PathName, 9832 "zone": zone, 9833 "conditions": conditions, 9834 } 9835 9836 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9837 if err != nil { 9838 return nil, err 9839 } 9840 // build request body 9841 var body interface{} 9842 v, err := o.transformFindArgs(conditions) 9843 if err != nil { 9844 return nil, err 9845 } 9846 body = v 9847 9848 // do request 9849 data, err := o.Client.Do(ctx, "GET", url, body) 9850 if err != nil { 9851 return nil, err 9852 } 9853 9854 // build results 9855 results, err := o.transformFindResults(data) 9856 if err != nil { 9857 return nil, err 9858 } 9859 return results, err 9860 } 9861 9862 // Read is API call 9863 func (o *PrivateHostPlanOp) Read(ctx context.Context, zone string, id types.ID) (*PrivateHostPlan, error) { 9864 // build request URL 9865 pathBuildParameter := map[string]interface{}{ 9866 "rootURL": SakuraCloudAPIRoot, 9867 "pathSuffix": o.PathSuffix, 9868 "pathName": o.PathName, 9869 "zone": zone, 9870 "id": id, 9871 } 9872 9873 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9874 if err != nil { 9875 return nil, err 9876 } 9877 // build request body 9878 var body interface{} 9879 9880 // do request 9881 data, err := o.Client.Do(ctx, "GET", url, body) 9882 if err != nil { 9883 return nil, err 9884 } 9885 9886 // build results 9887 results, err := o.transformReadResults(data) 9888 if err != nil { 9889 return nil, err 9890 } 9891 return results.PrivateHostPlan, nil 9892 } 9893 9894 /************************************************* 9895 * ProxyLBOp 9896 *************************************************/ 9897 9898 // ProxyLBOp implements ProxyLBAPI interface 9899 type ProxyLBOp struct { 9900 // Client APICaller 9901 Client APICaller 9902 // PathSuffix is used when building URL 9903 PathSuffix string 9904 // PathName is used when building URL 9905 PathName string 9906 } 9907 9908 // NewProxyLBOp creates new ProxyLBOp instance 9909 func NewProxyLBOp(caller APICaller) ProxyLBAPI { 9910 return GetClientFactoryFunc("ProxyLB")(caller).(ProxyLBAPI) 9911 } 9912 9913 // Find is API call 9914 func (o *ProxyLBOp) Find(ctx context.Context, conditions *FindCondition) (*ProxyLBFindResult, error) { 9915 // build request URL 9916 pathBuildParameter := map[string]interface{}{ 9917 "rootURL": SakuraCloudAPIRoot, 9918 "pathSuffix": o.PathSuffix, 9919 "pathName": o.PathName, 9920 "zone": APIDefaultZone, 9921 "conditions": conditions, 9922 } 9923 9924 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9925 if err != nil { 9926 return nil, err 9927 } 9928 // build request body 9929 var body interface{} 9930 v, err := o.transformFindArgs(conditions) 9931 if err != nil { 9932 return nil, err 9933 } 9934 body = v 9935 9936 // do request 9937 data, err := o.Client.Do(ctx, "GET", url, body) 9938 if err != nil { 9939 return nil, err 9940 } 9941 9942 // build results 9943 results, err := o.transformFindResults(data) 9944 if err != nil { 9945 return nil, err 9946 } 9947 return results, err 9948 } 9949 9950 // Create is API call 9951 func (o *ProxyLBOp) Create(ctx context.Context, param *ProxyLBCreateRequest) (*ProxyLB, error) { 9952 // build request URL 9953 pathBuildParameter := map[string]interface{}{ 9954 "rootURL": SakuraCloudAPIRoot, 9955 "pathSuffix": o.PathSuffix, 9956 "pathName": o.PathName, 9957 "zone": APIDefaultZone, 9958 "param": param, 9959 } 9960 9961 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 9962 if err != nil { 9963 return nil, err 9964 } 9965 // build request body 9966 var body interface{} 9967 v, err := o.transformCreateArgs(param) 9968 if err != nil { 9969 return nil, err 9970 } 9971 body = v 9972 9973 // do request 9974 data, err := o.Client.Do(ctx, "POST", url, body) 9975 if err != nil { 9976 return nil, err 9977 } 9978 9979 // build results 9980 results, err := o.transformCreateResults(data) 9981 if err != nil { 9982 return nil, err 9983 } 9984 return results.ProxyLB, nil 9985 } 9986 9987 // Read is API call 9988 func (o *ProxyLBOp) Read(ctx context.Context, id types.ID) (*ProxyLB, error) { 9989 // build request URL 9990 pathBuildParameter := map[string]interface{}{ 9991 "rootURL": SakuraCloudAPIRoot, 9992 "pathSuffix": o.PathSuffix, 9993 "pathName": o.PathName, 9994 "zone": APIDefaultZone, 9995 "id": id, 9996 } 9997 9998 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 9999 if err != nil { 10000 return nil, err 10001 } 10002 // build request body 10003 var body interface{} 10004 10005 // do request 10006 data, err := o.Client.Do(ctx, "GET", url, body) 10007 if err != nil { 10008 return nil, err 10009 } 10010 10011 // build results 10012 results, err := o.transformReadResults(data) 10013 if err != nil { 10014 return nil, err 10015 } 10016 return results.ProxyLB, nil 10017 } 10018 10019 // Update is API call 10020 func (o *ProxyLBOp) Update(ctx context.Context, id types.ID, param *ProxyLBUpdateRequest) (*ProxyLB, error) { 10021 // build request URL 10022 pathBuildParameter := map[string]interface{}{ 10023 "rootURL": SakuraCloudAPIRoot, 10024 "pathSuffix": o.PathSuffix, 10025 "pathName": o.PathName, 10026 "zone": APIDefaultZone, 10027 "id": id, 10028 "param": param, 10029 } 10030 10031 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10032 if err != nil { 10033 return nil, err 10034 } 10035 // build request body 10036 var body interface{} 10037 v, err := o.transformUpdateArgs(id, param) 10038 if err != nil { 10039 return nil, err 10040 } 10041 body = v 10042 10043 // do request 10044 data, err := o.Client.Do(ctx, "PUT", url, body) 10045 if err != nil { 10046 return nil, err 10047 } 10048 10049 // build results 10050 results, err := o.transformUpdateResults(data) 10051 if err != nil { 10052 return nil, err 10053 } 10054 return results.ProxyLB, nil 10055 } 10056 10057 // UpdateSettings is API call 10058 func (o *ProxyLBOp) UpdateSettings(ctx context.Context, id types.ID, param *ProxyLBUpdateSettingsRequest) (*ProxyLB, error) { 10059 // build request URL 10060 pathBuildParameter := map[string]interface{}{ 10061 "rootURL": SakuraCloudAPIRoot, 10062 "pathSuffix": o.PathSuffix, 10063 "pathName": o.PathName, 10064 "zone": APIDefaultZone, 10065 "id": id, 10066 "param": param, 10067 } 10068 10069 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10070 if err != nil { 10071 return nil, err 10072 } 10073 // build request body 10074 var body interface{} 10075 v, err := o.transformUpdateSettingsArgs(id, param) 10076 if err != nil { 10077 return nil, err 10078 } 10079 body = v 10080 10081 // do request 10082 data, err := o.Client.Do(ctx, "PUT", url, body) 10083 if err != nil { 10084 return nil, err 10085 } 10086 10087 // build results 10088 results, err := o.transformUpdateSettingsResults(data) 10089 if err != nil { 10090 return nil, err 10091 } 10092 return results.ProxyLB, nil 10093 } 10094 10095 // Delete is API call 10096 func (o *ProxyLBOp) Delete(ctx context.Context, id types.ID) error { 10097 // build request URL 10098 pathBuildParameter := map[string]interface{}{ 10099 "rootURL": SakuraCloudAPIRoot, 10100 "pathSuffix": o.PathSuffix, 10101 "pathName": o.PathName, 10102 "zone": APIDefaultZone, 10103 "id": id, 10104 } 10105 10106 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10107 if err != nil { 10108 return err 10109 } 10110 // build request body 10111 var body interface{} 10112 10113 // do request 10114 _, err = o.Client.Do(ctx, "DELETE", url, body) 10115 if err != nil { 10116 return err 10117 } 10118 10119 // build results 10120 10121 return nil 10122 } 10123 10124 // ChangePlan is API call 10125 func (o *ProxyLBOp) ChangePlan(ctx context.Context, id types.ID, param *ProxyLBChangePlanRequest) (*ProxyLB, error) { 10126 // build request URL 10127 pathBuildParameter := map[string]interface{}{ 10128 "rootURL": SakuraCloudAPIRoot, 10129 "pathSuffix": o.PathSuffix, 10130 "pathName": o.PathName, 10131 "zone": APIDefaultZone, 10132 "id": id, 10133 "param": param, 10134 } 10135 10136 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/plan", pathBuildParameter) 10137 if err != nil { 10138 return nil, err 10139 } 10140 // build request body 10141 var body interface{} 10142 v, err := o.transformChangePlanArgs(id, param) 10143 if err != nil { 10144 return nil, err 10145 } 10146 body = v 10147 10148 // do request 10149 data, err := o.Client.Do(ctx, "PUT", url, body) 10150 if err != nil { 10151 return nil, err 10152 } 10153 10154 // build results 10155 results, err := o.transformChangePlanResults(data) 10156 if err != nil { 10157 return nil, err 10158 } 10159 return results.ProxyLB, nil 10160 } 10161 10162 // GetCertificates is API call 10163 func (o *ProxyLBOp) GetCertificates(ctx context.Context, id types.ID) (*ProxyLBCertificates, error) { 10164 // build request URL 10165 pathBuildParameter := map[string]interface{}{ 10166 "rootURL": SakuraCloudAPIRoot, 10167 "pathSuffix": o.PathSuffix, 10168 "pathName": o.PathName, 10169 "zone": APIDefaultZone, 10170 "id": id, 10171 } 10172 10173 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/proxylb/sslcertificate", pathBuildParameter) 10174 if err != nil { 10175 return nil, err 10176 } 10177 // build request body 10178 var body interface{} 10179 10180 // do request 10181 data, err := o.Client.Do(ctx, "GET", url, body) 10182 if err != nil { 10183 return nil, err 10184 } 10185 10186 // build results 10187 results, err := o.transformGetCertificatesResults(data) 10188 if err != nil { 10189 return nil, err 10190 } 10191 return results.ProxyLBCertificates, nil 10192 } 10193 10194 // SetCertificates is API call 10195 func (o *ProxyLBOp) SetCertificates(ctx context.Context, id types.ID, param *ProxyLBSetCertificatesRequest) (*ProxyLBCertificates, error) { 10196 // build request URL 10197 pathBuildParameter := map[string]interface{}{ 10198 "rootURL": SakuraCloudAPIRoot, 10199 "pathSuffix": o.PathSuffix, 10200 "pathName": o.PathName, 10201 "zone": APIDefaultZone, 10202 "id": id, 10203 "param": param, 10204 } 10205 10206 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/proxylb/sslcertificate", pathBuildParameter) 10207 if err != nil { 10208 return nil, err 10209 } 10210 // build request body 10211 var body interface{} 10212 v, err := o.transformSetCertificatesArgs(id, param) 10213 if err != nil { 10214 return nil, err 10215 } 10216 body = v 10217 10218 // do request 10219 data, err := o.Client.Do(ctx, "PUT", url, body) 10220 if err != nil { 10221 return nil, err 10222 } 10223 10224 // build results 10225 results, err := o.transformSetCertificatesResults(data) 10226 if err != nil { 10227 return nil, err 10228 } 10229 return results.ProxyLBCertificates, nil 10230 } 10231 10232 // DeleteCertificates is API call 10233 func (o *ProxyLBOp) DeleteCertificates(ctx context.Context, id types.ID) error { 10234 // build request URL 10235 pathBuildParameter := map[string]interface{}{ 10236 "rootURL": SakuraCloudAPIRoot, 10237 "pathSuffix": o.PathSuffix, 10238 "pathName": o.PathName, 10239 "zone": APIDefaultZone, 10240 "id": id, 10241 } 10242 10243 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/proxylb/sslcertificate", pathBuildParameter) 10244 if err != nil { 10245 return err 10246 } 10247 // build request body 10248 var body interface{} 10249 10250 // do request 10251 _, err = o.Client.Do(ctx, "DELETE", url, body) 10252 if err != nil { 10253 return err 10254 } 10255 10256 // build results 10257 10258 return nil 10259 } 10260 10261 // RenewLetsEncryptCert is API call 10262 func (o *ProxyLBOp) RenewLetsEncryptCert(ctx context.Context, id types.ID) error { 10263 // build request URL 10264 pathBuildParameter := map[string]interface{}{ 10265 "rootURL": SakuraCloudAPIRoot, 10266 "pathSuffix": o.PathSuffix, 10267 "pathName": o.PathName, 10268 "zone": APIDefaultZone, 10269 "id": id, 10270 } 10271 10272 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/proxylb/letsencryptrenew", pathBuildParameter) 10273 if err != nil { 10274 return err 10275 } 10276 // build request body 10277 var body interface{} 10278 10279 // do request 10280 _, err = o.Client.Do(ctx, "PUT", url, body) 10281 if err != nil { 10282 return err 10283 } 10284 10285 // build results 10286 10287 return nil 10288 } 10289 10290 // HealthStatus is API call 10291 func (o *ProxyLBOp) HealthStatus(ctx context.Context, id types.ID) (*ProxyLBHealth, error) { 10292 // build request URL 10293 pathBuildParameter := map[string]interface{}{ 10294 "rootURL": SakuraCloudAPIRoot, 10295 "pathSuffix": o.PathSuffix, 10296 "pathName": o.PathName, 10297 "zone": APIDefaultZone, 10298 "id": id, 10299 } 10300 10301 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/health", pathBuildParameter) 10302 if err != nil { 10303 return nil, err 10304 } 10305 // build request body 10306 var body interface{} 10307 10308 // do request 10309 data, err := o.Client.Do(ctx, "GET", url, body) 10310 if err != nil { 10311 return nil, err 10312 } 10313 10314 // build results 10315 results, err := o.transformHealthStatusResults(data) 10316 if err != nil { 10317 return nil, err 10318 } 10319 return results.ProxyLBHealth, nil 10320 } 10321 10322 // MonitorConnection is API call 10323 func (o *ProxyLBOp) MonitorConnection(ctx context.Context, id types.ID, condition *MonitorCondition) (*ConnectionActivity, error) { 10324 // build request URL 10325 pathBuildParameter := map[string]interface{}{ 10326 "rootURL": SakuraCloudAPIRoot, 10327 "pathSuffix": o.PathSuffix, 10328 "pathName": o.PathName, 10329 "zone": APIDefaultZone, 10330 "id": id, 10331 "condition": condition, 10332 } 10333 10334 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/activity/proxylb/monitor", pathBuildParameter) 10335 if err != nil { 10336 return nil, err 10337 } 10338 // build request body 10339 var body interface{} 10340 v, err := o.transformMonitorConnectionArgs(id, condition) 10341 if err != nil { 10342 return nil, err 10343 } 10344 body = v 10345 10346 // do request 10347 data, err := o.Client.Do(ctx, "GET", url, body) 10348 if err != nil { 10349 return nil, err 10350 } 10351 10352 // build results 10353 results, err := o.transformMonitorConnectionResults(data) 10354 if err != nil { 10355 return nil, err 10356 } 10357 return results.ConnectionActivity, nil 10358 } 10359 10360 /************************************************* 10361 * RegionOp 10362 *************************************************/ 10363 10364 // RegionOp implements RegionAPI interface 10365 type RegionOp struct { 10366 // Client APICaller 10367 Client APICaller 10368 // PathSuffix is used when building URL 10369 PathSuffix string 10370 // PathName is used when building URL 10371 PathName string 10372 } 10373 10374 // NewRegionOp creates new RegionOp instance 10375 func NewRegionOp(caller APICaller) RegionAPI { 10376 return GetClientFactoryFunc("Region")(caller).(RegionAPI) 10377 } 10378 10379 // Find is API call 10380 func (o *RegionOp) Find(ctx context.Context, conditions *FindCondition) (*RegionFindResult, error) { 10381 // build request URL 10382 pathBuildParameter := map[string]interface{}{ 10383 "rootURL": SakuraCloudAPIRoot, 10384 "pathSuffix": o.PathSuffix, 10385 "pathName": o.PathName, 10386 "zone": APIDefaultZone, 10387 "conditions": conditions, 10388 } 10389 10390 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 10391 if err != nil { 10392 return nil, err 10393 } 10394 // build request body 10395 var body interface{} 10396 v, err := o.transformFindArgs(conditions) 10397 if err != nil { 10398 return nil, err 10399 } 10400 body = v 10401 10402 // do request 10403 data, err := o.Client.Do(ctx, "GET", url, body) 10404 if err != nil { 10405 return nil, err 10406 } 10407 10408 // build results 10409 results, err := o.transformFindResults(data) 10410 if err != nil { 10411 return nil, err 10412 } 10413 return results, err 10414 } 10415 10416 // Read is API call 10417 func (o *RegionOp) Read(ctx context.Context, id types.ID) (*Region, error) { 10418 // build request URL 10419 pathBuildParameter := map[string]interface{}{ 10420 "rootURL": SakuraCloudAPIRoot, 10421 "pathSuffix": o.PathSuffix, 10422 "pathName": o.PathName, 10423 "zone": APIDefaultZone, 10424 "id": id, 10425 } 10426 10427 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10428 if err != nil { 10429 return nil, err 10430 } 10431 // build request body 10432 var body interface{} 10433 10434 // do request 10435 data, err := o.Client.Do(ctx, "GET", url, body) 10436 if err != nil { 10437 return nil, err 10438 } 10439 10440 // build results 10441 results, err := o.transformReadResults(data) 10442 if err != nil { 10443 return nil, err 10444 } 10445 return results.Region, nil 10446 } 10447 10448 /************************************************* 10449 * ServerOp 10450 *************************************************/ 10451 10452 // ServerOp implements ServerAPI interface 10453 type ServerOp struct { 10454 // Client APICaller 10455 Client APICaller 10456 // PathSuffix is used when building URL 10457 PathSuffix string 10458 // PathName is used when building URL 10459 PathName string 10460 } 10461 10462 // NewServerOp creates new ServerOp instance 10463 func NewServerOp(caller APICaller) ServerAPI { 10464 return GetClientFactoryFunc("Server")(caller).(ServerAPI) 10465 } 10466 10467 // Find is API call 10468 func (o *ServerOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*ServerFindResult, error) { 10469 // build request URL 10470 pathBuildParameter := map[string]interface{}{ 10471 "rootURL": SakuraCloudAPIRoot, 10472 "pathSuffix": o.PathSuffix, 10473 "pathName": o.PathName, 10474 "zone": zone, 10475 "conditions": conditions, 10476 } 10477 10478 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 10479 if err != nil { 10480 return nil, err 10481 } 10482 // build request body 10483 var body interface{} 10484 v, err := o.transformFindArgs(conditions) 10485 if err != nil { 10486 return nil, err 10487 } 10488 body = v 10489 10490 // do request 10491 data, err := o.Client.Do(ctx, "GET", url, body) 10492 if err != nil { 10493 return nil, err 10494 } 10495 10496 // build results 10497 results, err := o.transformFindResults(data) 10498 if err != nil { 10499 return nil, err 10500 } 10501 return results, err 10502 } 10503 10504 // Create is API call 10505 func (o *ServerOp) Create(ctx context.Context, zone string, param *ServerCreateRequest) (*Server, error) { 10506 // build request URL 10507 pathBuildParameter := map[string]interface{}{ 10508 "rootURL": SakuraCloudAPIRoot, 10509 "pathSuffix": o.PathSuffix, 10510 "pathName": o.PathName, 10511 "zone": zone, 10512 "param": param, 10513 } 10514 10515 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 10516 if err != nil { 10517 return nil, err 10518 } 10519 // build request body 10520 var body interface{} 10521 v, err := o.transformCreateArgs(param) 10522 if err != nil { 10523 return nil, err 10524 } 10525 body = v 10526 10527 // do request 10528 data, err := o.Client.Do(ctx, "POST", url, body) 10529 if err != nil { 10530 return nil, err 10531 } 10532 10533 // build results 10534 results, err := o.transformCreateResults(data) 10535 if err != nil { 10536 return nil, err 10537 } 10538 return results.Server, nil 10539 } 10540 10541 // Read is API call 10542 func (o *ServerOp) Read(ctx context.Context, zone string, id types.ID) (*Server, error) { 10543 // build request URL 10544 pathBuildParameter := map[string]interface{}{ 10545 "rootURL": SakuraCloudAPIRoot, 10546 "pathSuffix": o.PathSuffix, 10547 "pathName": o.PathName, 10548 "zone": zone, 10549 "id": id, 10550 } 10551 10552 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10553 if err != nil { 10554 return nil, err 10555 } 10556 // build request body 10557 var body interface{} 10558 10559 // do request 10560 data, err := o.Client.Do(ctx, "GET", url, body) 10561 if err != nil { 10562 return nil, err 10563 } 10564 10565 // build results 10566 results, err := o.transformReadResults(data) 10567 if err != nil { 10568 return nil, err 10569 } 10570 return results.Server, nil 10571 } 10572 10573 // Update is API call 10574 func (o *ServerOp) Update(ctx context.Context, zone string, id types.ID, param *ServerUpdateRequest) (*Server, error) { 10575 // build request URL 10576 pathBuildParameter := map[string]interface{}{ 10577 "rootURL": SakuraCloudAPIRoot, 10578 "pathSuffix": o.PathSuffix, 10579 "pathName": o.PathName, 10580 "zone": zone, 10581 "id": id, 10582 "param": param, 10583 } 10584 10585 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10586 if err != nil { 10587 return nil, err 10588 } 10589 // build request body 10590 var body interface{} 10591 v, err := o.transformUpdateArgs(id, param) 10592 if err != nil { 10593 return nil, err 10594 } 10595 body = v 10596 10597 // do request 10598 data, err := o.Client.Do(ctx, "PUT", url, body) 10599 if err != nil { 10600 return nil, err 10601 } 10602 10603 // build results 10604 results, err := o.transformUpdateResults(data) 10605 if err != nil { 10606 return nil, err 10607 } 10608 return results.Server, nil 10609 } 10610 10611 // Delete is API call 10612 func (o *ServerOp) Delete(ctx context.Context, zone string, id types.ID) error { 10613 // build request URL 10614 pathBuildParameter := map[string]interface{}{ 10615 "rootURL": SakuraCloudAPIRoot, 10616 "pathSuffix": o.PathSuffix, 10617 "pathName": o.PathName, 10618 "zone": zone, 10619 "id": id, 10620 } 10621 10622 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10623 if err != nil { 10624 return err 10625 } 10626 // build request body 10627 var body interface{} 10628 10629 // do request 10630 _, err = o.Client.Do(ctx, "DELETE", url, body) 10631 if err != nil { 10632 return err 10633 } 10634 10635 // build results 10636 10637 return nil 10638 } 10639 10640 // DeleteWithDisks is API call 10641 func (o *ServerOp) DeleteWithDisks(ctx context.Context, zone string, id types.ID, disks *ServerDeleteWithDisksRequest) error { 10642 // build request URL 10643 pathBuildParameter := map[string]interface{}{ 10644 "rootURL": SakuraCloudAPIRoot, 10645 "pathSuffix": o.PathSuffix, 10646 "pathName": o.PathName, 10647 "zone": zone, 10648 "id": id, 10649 "disks": disks, 10650 } 10651 10652 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 10653 if err != nil { 10654 return err 10655 } 10656 // build request body 10657 var body interface{} 10658 v, err := o.transformDeleteWithDisksArgs(id, disks) 10659 if err != nil { 10660 return err 10661 } 10662 body = v 10663 10664 // do request 10665 _, err = o.Client.Do(ctx, "DELETE", url, body) 10666 if err != nil { 10667 return err 10668 } 10669 10670 // build results 10671 10672 return nil 10673 } 10674 10675 // ChangePlan is API call 10676 func (o *ServerOp) ChangePlan(ctx context.Context, zone string, id types.ID, plan *ServerChangePlanRequest) (*Server, error) { 10677 // build request URL 10678 pathBuildParameter := map[string]interface{}{ 10679 "rootURL": SakuraCloudAPIRoot, 10680 "pathSuffix": o.PathSuffix, 10681 "pathName": o.PathName, 10682 "zone": zone, 10683 "id": id, 10684 "plan": plan, 10685 } 10686 10687 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/plan", pathBuildParameter) 10688 if err != nil { 10689 return nil, err 10690 } 10691 // build request body 10692 var body interface{} 10693 v, err := o.transformChangePlanArgs(id, plan) 10694 if err != nil { 10695 return nil, err 10696 } 10697 body = v 10698 10699 // do request 10700 data, err := o.Client.Do(ctx, "PUT", url, body) 10701 if err != nil { 10702 return nil, err 10703 } 10704 10705 // build results 10706 results, err := o.transformChangePlanResults(data) 10707 if err != nil { 10708 return nil, err 10709 } 10710 return results.Server, nil 10711 } 10712 10713 // InsertCDROM is API call 10714 func (o *ServerOp) InsertCDROM(ctx context.Context, zone string, id types.ID, insertParam *InsertCDROMRequest) error { 10715 // build request URL 10716 pathBuildParameter := map[string]interface{}{ 10717 "rootURL": SakuraCloudAPIRoot, 10718 "pathSuffix": o.PathSuffix, 10719 "pathName": o.PathName, 10720 "zone": zone, 10721 "id": id, 10722 "insertParam": insertParam, 10723 } 10724 10725 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/cdrom", pathBuildParameter) 10726 if err != nil { 10727 return err 10728 } 10729 // build request body 10730 var body interface{} 10731 v, err := o.transformInsertCDROMArgs(id, insertParam) 10732 if err != nil { 10733 return err 10734 } 10735 body = v 10736 10737 // do request 10738 _, err = o.Client.Do(ctx, "PUT", url, body) 10739 if err != nil { 10740 return err 10741 } 10742 10743 // build results 10744 10745 return nil 10746 } 10747 10748 // EjectCDROM is API call 10749 func (o *ServerOp) EjectCDROM(ctx context.Context, zone string, id types.ID, ejectParam *EjectCDROMRequest) error { 10750 // build request URL 10751 pathBuildParameter := map[string]interface{}{ 10752 "rootURL": SakuraCloudAPIRoot, 10753 "pathSuffix": o.PathSuffix, 10754 "pathName": o.PathName, 10755 "zone": zone, 10756 "id": id, 10757 "ejectParam": ejectParam, 10758 } 10759 10760 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/cdrom", pathBuildParameter) 10761 if err != nil { 10762 return err 10763 } 10764 // build request body 10765 var body interface{} 10766 v, err := o.transformEjectCDROMArgs(id, ejectParam) 10767 if err != nil { 10768 return err 10769 } 10770 body = v 10771 10772 // do request 10773 _, err = o.Client.Do(ctx, "DELETE", url, body) 10774 if err != nil { 10775 return err 10776 } 10777 10778 // build results 10779 10780 return nil 10781 } 10782 10783 // Boot is API call 10784 func (o *ServerOp) Boot(ctx context.Context, zone string, id types.ID) error { 10785 // build request URL 10786 pathBuildParameter := map[string]interface{}{ 10787 "rootURL": SakuraCloudAPIRoot, 10788 "pathSuffix": o.PathSuffix, 10789 "pathName": o.PathName, 10790 "zone": zone, 10791 "id": id, 10792 } 10793 10794 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 10795 if err != nil { 10796 return err 10797 } 10798 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 10799 if err != nil { 10800 return err 10801 } 10802 apiLocker.Lock(lockKey) 10803 defer apiLocker.Unlock(lockKey) 10804 // build request body 10805 var body interface{} 10806 10807 // do request 10808 _, err = o.Client.Do(ctx, "PUT", url, body) 10809 if err != nil { 10810 return err 10811 } 10812 10813 // build results 10814 10815 return nil 10816 } 10817 10818 // Shutdown is API call 10819 func (o *ServerOp) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *ShutdownOption) error { 10820 // build request URL 10821 pathBuildParameter := map[string]interface{}{ 10822 "rootURL": SakuraCloudAPIRoot, 10823 "pathSuffix": o.PathSuffix, 10824 "pathName": o.PathName, 10825 "zone": zone, 10826 "id": id, 10827 "shutdownOption": shutdownOption, 10828 } 10829 10830 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 10831 if err != nil { 10832 return err 10833 } 10834 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 10835 if err != nil { 10836 return err 10837 } 10838 apiLocker.Lock(lockKey) 10839 defer apiLocker.Unlock(lockKey) 10840 // build request body 10841 var body interface{} 10842 v, err := o.transformShutdownArgs(id, shutdownOption) 10843 if err != nil { 10844 return err 10845 } 10846 body = v 10847 10848 // do request 10849 _, err = o.Client.Do(ctx, "DELETE", url, body) 10850 if err != nil { 10851 return err 10852 } 10853 10854 // build results 10855 10856 return nil 10857 } 10858 10859 // Reset is API call 10860 func (o *ServerOp) Reset(ctx context.Context, zone string, id types.ID) error { 10861 // build request URL 10862 pathBuildParameter := map[string]interface{}{ 10863 "rootURL": SakuraCloudAPIRoot, 10864 "pathSuffix": o.PathSuffix, 10865 "pathName": o.PathName, 10866 "zone": zone, 10867 "id": id, 10868 } 10869 10870 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/reset", pathBuildParameter) 10871 if err != nil { 10872 return err 10873 } 10874 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 10875 if err != nil { 10876 return err 10877 } 10878 apiLocker.Lock(lockKey) 10879 defer apiLocker.Unlock(lockKey) 10880 // build request body 10881 var body interface{} 10882 10883 // do request 10884 _, err = o.Client.Do(ctx, "PUT", url, body) 10885 if err != nil { 10886 return err 10887 } 10888 10889 // build results 10890 10891 return nil 10892 } 10893 10894 // BootWithVariables is API call 10895 func (o *ServerOp) BootWithVariables(ctx context.Context, zone string, id types.ID, param *ServerBootVariables) error { 10896 // build request URL 10897 pathBuildParameter := map[string]interface{}{ 10898 "rootURL": SakuraCloudAPIRoot, 10899 "pathSuffix": o.PathSuffix, 10900 "pathName": o.PathName, 10901 "zone": zone, 10902 "id": id, 10903 "param": param, 10904 } 10905 10906 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 10907 if err != nil { 10908 return err 10909 } 10910 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 10911 if err != nil { 10912 return err 10913 } 10914 apiLocker.Lock(lockKey) 10915 defer apiLocker.Unlock(lockKey) 10916 // build request body 10917 var body interface{} 10918 v, err := o.transformBootWithVariablesArgs(id, param) 10919 if err != nil { 10920 return err 10921 } 10922 body = v 10923 10924 // do request 10925 _, err = o.Client.Do(ctx, "PUT", url, body) 10926 if err != nil { 10927 return err 10928 } 10929 10930 // build results 10931 10932 return nil 10933 } 10934 10935 // SendKey is API call 10936 func (o *ServerOp) SendKey(ctx context.Context, zone string, id types.ID, keyboardParam *SendKeyRequest) error { 10937 // build request URL 10938 pathBuildParameter := map[string]interface{}{ 10939 "rootURL": SakuraCloudAPIRoot, 10940 "pathSuffix": o.PathSuffix, 10941 "pathName": o.PathName, 10942 "zone": zone, 10943 "id": id, 10944 "keyboardParam": keyboardParam, 10945 } 10946 10947 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/keyboard", pathBuildParameter) 10948 if err != nil { 10949 return err 10950 } 10951 // build request body 10952 var body interface{} 10953 v, err := o.transformSendKeyArgs(id, keyboardParam) 10954 if err != nil { 10955 return err 10956 } 10957 body = v 10958 10959 // do request 10960 _, err = o.Client.Do(ctx, "PUT", url, body) 10961 if err != nil { 10962 return err 10963 } 10964 10965 // build results 10966 10967 return nil 10968 } 10969 10970 // SendNMI is API call 10971 func (o *ServerOp) SendNMI(ctx context.Context, zone string, id types.ID) error { 10972 // build request URL 10973 pathBuildParameter := map[string]interface{}{ 10974 "rootURL": SakuraCloudAPIRoot, 10975 "pathSuffix": o.PathSuffix, 10976 "pathName": o.PathName, 10977 "zone": zone, 10978 "id": id, 10979 } 10980 10981 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/qemu/nmi", pathBuildParameter) 10982 if err != nil { 10983 return err 10984 } 10985 // build request body 10986 var body interface{} 10987 10988 // do request 10989 _, err = o.Client.Do(ctx, "PUT", url, body) 10990 if err != nil { 10991 return err 10992 } 10993 10994 // build results 10995 10996 return nil 10997 } 10998 10999 // GetVNCProxy is API call 11000 func (o *ServerOp) GetVNCProxy(ctx context.Context, zone string, id types.ID) (*VNCProxyInfo, error) { 11001 // build request URL 11002 pathBuildParameter := map[string]interface{}{ 11003 "rootURL": SakuraCloudAPIRoot, 11004 "pathSuffix": o.PathSuffix, 11005 "pathName": o.PathName, 11006 "zone": zone, 11007 "id": id, 11008 } 11009 11010 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/vnc/proxy", pathBuildParameter) 11011 if err != nil { 11012 return nil, err 11013 } 11014 // build request body 11015 var body interface{} 11016 11017 // do request 11018 data, err := o.Client.Do(ctx, "GET", url, body) 11019 if err != nil { 11020 return nil, err 11021 } 11022 11023 // build results 11024 results, err := o.transformGetVNCProxyResults(data) 11025 if err != nil { 11026 return nil, err 11027 } 11028 return results.VNCProxyInfo, nil 11029 } 11030 11031 // Monitor is API call 11032 func (o *ServerOp) Monitor(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*CPUTimeActivity, error) { 11033 // build request URL 11034 pathBuildParameter := map[string]interface{}{ 11035 "rootURL": SakuraCloudAPIRoot, 11036 "pathSuffix": o.PathSuffix, 11037 "pathName": o.PathName, 11038 "zone": zone, 11039 "id": id, 11040 "condition": condition, 11041 } 11042 11043 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 11044 if err != nil { 11045 return nil, err 11046 } 11047 // build request body 11048 var body interface{} 11049 v, err := o.transformMonitorArgs(id, condition) 11050 if err != nil { 11051 return nil, err 11052 } 11053 body = v 11054 11055 // do request 11056 data, err := o.Client.Do(ctx, "GET", url, body) 11057 if err != nil { 11058 return nil, err 11059 } 11060 11061 // build results 11062 results, err := o.transformMonitorResults(data) 11063 if err != nil { 11064 return nil, err 11065 } 11066 return results.CPUTimeActivity, nil 11067 } 11068 11069 // MonitorCPU is API call 11070 func (o *ServerOp) MonitorCPU(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*CPUTimeActivity, error) { 11071 // build request URL 11072 pathBuildParameter := map[string]interface{}{ 11073 "rootURL": SakuraCloudAPIRoot, 11074 "pathSuffix": o.PathSuffix, 11075 "pathName": o.PathName, 11076 "zone": zone, 11077 "id": id, 11078 "condition": condition, 11079 } 11080 11081 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/monitor", pathBuildParameter) 11082 if err != nil { 11083 return nil, err 11084 } 11085 // build request body 11086 var body interface{} 11087 v, err := o.transformMonitorCPUArgs(id, condition) 11088 if err != nil { 11089 return nil, err 11090 } 11091 body = v 11092 11093 // do request 11094 data, err := o.Client.Do(ctx, "GET", url, body) 11095 if err != nil { 11096 return nil, err 11097 } 11098 11099 // build results 11100 results, err := o.transformMonitorCPUResults(data) 11101 if err != nil { 11102 return nil, err 11103 } 11104 return results.CPUTimeActivity, nil 11105 } 11106 11107 /************************************************* 11108 * ServerPlanOp 11109 *************************************************/ 11110 11111 // ServerPlanOp implements ServerPlanAPI interface 11112 type ServerPlanOp struct { 11113 // Client APICaller 11114 Client APICaller 11115 // PathSuffix is used when building URL 11116 PathSuffix string 11117 // PathName is used when building URL 11118 PathName string 11119 } 11120 11121 // NewServerPlanOp creates new ServerPlanOp instance 11122 func NewServerPlanOp(caller APICaller) ServerPlanAPI { 11123 return GetClientFactoryFunc("ServerPlan")(caller).(ServerPlanAPI) 11124 } 11125 11126 // Find is API call 11127 func (o *ServerPlanOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*ServerPlanFindResult, error) { 11128 // build request URL 11129 pathBuildParameter := map[string]interface{}{ 11130 "rootURL": SakuraCloudAPIRoot, 11131 "pathSuffix": o.PathSuffix, 11132 "pathName": o.PathName, 11133 "zone": zone, 11134 "conditions": conditions, 11135 } 11136 11137 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 11138 if err != nil { 11139 return nil, err 11140 } 11141 // build request body 11142 var body interface{} 11143 v, err := o.transformFindArgs(conditions) 11144 if err != nil { 11145 return nil, err 11146 } 11147 body = v 11148 11149 // do request 11150 data, err := o.Client.Do(ctx, "GET", url, body) 11151 if err != nil { 11152 return nil, err 11153 } 11154 11155 // build results 11156 results, err := o.transformFindResults(data) 11157 if err != nil { 11158 return nil, err 11159 } 11160 return results, err 11161 } 11162 11163 // Read is API call 11164 func (o *ServerPlanOp) Read(ctx context.Context, zone string, id types.ID) (*ServerPlan, error) { 11165 // build request URL 11166 pathBuildParameter := map[string]interface{}{ 11167 "rootURL": SakuraCloudAPIRoot, 11168 "pathSuffix": o.PathSuffix, 11169 "pathName": o.PathName, 11170 "zone": zone, 11171 "id": id, 11172 } 11173 11174 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11175 if err != nil { 11176 return nil, err 11177 } 11178 // build request body 11179 var body interface{} 11180 11181 // do request 11182 data, err := o.Client.Do(ctx, "GET", url, body) 11183 if err != nil { 11184 return nil, err 11185 } 11186 11187 // build results 11188 results, err := o.transformReadResults(data) 11189 if err != nil { 11190 return nil, err 11191 } 11192 return results.ServerPlan, nil 11193 } 11194 11195 /************************************************* 11196 * ServiceClassOp 11197 *************************************************/ 11198 11199 // ServiceClassOp implements ServiceClassAPI interface 11200 type ServiceClassOp struct { 11201 // Client APICaller 11202 Client APICaller 11203 // PathSuffix is used when building URL 11204 PathSuffix string 11205 // PathName is used when building URL 11206 PathName string 11207 } 11208 11209 // NewServiceClassOp creates new ServiceClassOp instance 11210 func NewServiceClassOp(caller APICaller) ServiceClassAPI { 11211 return GetClientFactoryFunc("ServiceClass")(caller).(ServiceClassAPI) 11212 } 11213 11214 // Find is API call 11215 func (o *ServiceClassOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*ServiceClassFindResult, error) { 11216 // build request URL 11217 pathBuildParameter := map[string]interface{}{ 11218 "rootURL": SakuraCloudAPIRoot, 11219 "pathSuffix": o.PathSuffix, 11220 "pathName": o.PathName, 11221 "zone": zone, 11222 "conditions": conditions, 11223 } 11224 11225 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 11226 if err != nil { 11227 return nil, err 11228 } 11229 // build request body 11230 var body interface{} 11231 v, err := o.transformFindArgs(conditions) 11232 if err != nil { 11233 return nil, err 11234 } 11235 body = v 11236 11237 // do request 11238 data, err := o.Client.Do(ctx, "GET", url, body) 11239 if err != nil { 11240 return nil, err 11241 } 11242 11243 // build results 11244 results, err := o.transformFindResults(data) 11245 if err != nil { 11246 return nil, err 11247 } 11248 return results, err 11249 } 11250 11251 /************************************************* 11252 * SIMOp 11253 *************************************************/ 11254 11255 // SIMOp implements SIMAPI interface 11256 type SIMOp struct { 11257 // Client APICaller 11258 Client APICaller 11259 // PathSuffix is used when building URL 11260 PathSuffix string 11261 // PathName is used when building URL 11262 PathName string 11263 } 11264 11265 // NewSIMOp creates new SIMOp instance 11266 func NewSIMOp(caller APICaller) SIMAPI { 11267 return GetClientFactoryFunc("SIM")(caller).(SIMAPI) 11268 } 11269 11270 // Find is API call 11271 func (o *SIMOp) Find(ctx context.Context, conditions *FindCondition) (*SIMFindResult, error) { 11272 // build request URL 11273 pathBuildParameter := map[string]interface{}{ 11274 "rootURL": SakuraCloudAPIRoot, 11275 "pathSuffix": o.PathSuffix, 11276 "pathName": o.PathName, 11277 "zone": APIDefaultZone, 11278 "conditions": conditions, 11279 } 11280 11281 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 11282 if err != nil { 11283 return nil, err 11284 } 11285 // build request body 11286 var body interface{} 11287 v, err := o.transformFindArgs(conditions) 11288 if err != nil { 11289 return nil, err 11290 } 11291 body = v 11292 11293 // do request 11294 data, err := o.Client.Do(ctx, "GET", url, body) 11295 if err != nil { 11296 return nil, err 11297 } 11298 11299 // build results 11300 results, err := o.transformFindResults(data) 11301 if err != nil { 11302 return nil, err 11303 } 11304 return results, err 11305 } 11306 11307 // Create is API call 11308 func (o *SIMOp) Create(ctx context.Context, param *SIMCreateRequest) (*SIM, error) { 11309 // build request URL 11310 pathBuildParameter := map[string]interface{}{ 11311 "rootURL": SakuraCloudAPIRoot, 11312 "pathSuffix": o.PathSuffix, 11313 "pathName": o.PathName, 11314 "zone": APIDefaultZone, 11315 "param": param, 11316 } 11317 11318 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 11319 if err != nil { 11320 return nil, err 11321 } 11322 // build request body 11323 var body interface{} 11324 v, err := o.transformCreateArgs(param) 11325 if err != nil { 11326 return nil, err 11327 } 11328 body = v 11329 11330 // do request 11331 data, err := o.Client.Do(ctx, "POST", url, body) 11332 if err != nil { 11333 return nil, err 11334 } 11335 11336 // build results 11337 results, err := o.transformCreateResults(data) 11338 if err != nil { 11339 return nil, err 11340 } 11341 return results.SIM, nil 11342 } 11343 11344 // Read is API call 11345 func (o *SIMOp) Read(ctx context.Context, id types.ID) (*SIM, error) { 11346 // build request URL 11347 pathBuildParameter := map[string]interface{}{ 11348 "rootURL": SakuraCloudAPIRoot, 11349 "pathSuffix": o.PathSuffix, 11350 "pathName": o.PathName, 11351 "zone": APIDefaultZone, 11352 "id": id, 11353 } 11354 11355 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11356 if err != nil { 11357 return nil, err 11358 } 11359 // build request body 11360 var body interface{} 11361 11362 // do request 11363 data, err := o.Client.Do(ctx, "GET", url, body) 11364 if err != nil { 11365 return nil, err 11366 } 11367 11368 // build results 11369 results, err := o.transformReadResults(data) 11370 if err != nil { 11371 return nil, err 11372 } 11373 return results.SIM, nil 11374 } 11375 11376 // Update is API call 11377 func (o *SIMOp) Update(ctx context.Context, id types.ID, param *SIMUpdateRequest) (*SIM, error) { 11378 // build request URL 11379 pathBuildParameter := map[string]interface{}{ 11380 "rootURL": SakuraCloudAPIRoot, 11381 "pathSuffix": o.PathSuffix, 11382 "pathName": o.PathName, 11383 "zone": APIDefaultZone, 11384 "id": id, 11385 "param": param, 11386 } 11387 11388 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11389 if err != nil { 11390 return nil, err 11391 } 11392 // build request body 11393 var body interface{} 11394 v, err := o.transformUpdateArgs(id, param) 11395 if err != nil { 11396 return nil, err 11397 } 11398 body = v 11399 11400 // do request 11401 data, err := o.Client.Do(ctx, "PUT", url, body) 11402 if err != nil { 11403 return nil, err 11404 } 11405 11406 // build results 11407 results, err := o.transformUpdateResults(data) 11408 if err != nil { 11409 return nil, err 11410 } 11411 return results.SIM, nil 11412 } 11413 11414 // Delete is API call 11415 func (o *SIMOp) Delete(ctx context.Context, id types.ID) error { 11416 // build request URL 11417 pathBuildParameter := map[string]interface{}{ 11418 "rootURL": SakuraCloudAPIRoot, 11419 "pathSuffix": o.PathSuffix, 11420 "pathName": o.PathName, 11421 "zone": APIDefaultZone, 11422 "id": id, 11423 } 11424 11425 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11426 if err != nil { 11427 return err 11428 } 11429 // build request body 11430 var body interface{} 11431 11432 // do request 11433 _, err = o.Client.Do(ctx, "DELETE", url, body) 11434 if err != nil { 11435 return err 11436 } 11437 11438 // build results 11439 11440 return nil 11441 } 11442 11443 // Activate is API call 11444 func (o *SIMOp) Activate(ctx context.Context, id types.ID) error { 11445 // build request URL 11446 pathBuildParameter := map[string]interface{}{ 11447 "rootURL": SakuraCloudAPIRoot, 11448 "pathSuffix": o.PathSuffix, 11449 "pathName": o.PathName, 11450 "zone": APIDefaultZone, 11451 "id": id, 11452 } 11453 11454 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/activate", pathBuildParameter) 11455 if err != nil { 11456 return err 11457 } 11458 // build request body 11459 var body interface{} 11460 11461 // do request 11462 _, err = o.Client.Do(ctx, "PUT", url, body) 11463 if err != nil { 11464 return err 11465 } 11466 11467 // build results 11468 11469 return nil 11470 } 11471 11472 // Deactivate is API call 11473 func (o *SIMOp) Deactivate(ctx context.Context, id types.ID) error { 11474 // build request URL 11475 pathBuildParameter := map[string]interface{}{ 11476 "rootURL": SakuraCloudAPIRoot, 11477 "pathSuffix": o.PathSuffix, 11478 "pathName": o.PathName, 11479 "zone": APIDefaultZone, 11480 "id": id, 11481 } 11482 11483 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/deactivate", pathBuildParameter) 11484 if err != nil { 11485 return err 11486 } 11487 // build request body 11488 var body interface{} 11489 11490 // do request 11491 _, err = o.Client.Do(ctx, "PUT", url, body) 11492 if err != nil { 11493 return err 11494 } 11495 11496 // build results 11497 11498 return nil 11499 } 11500 11501 // AssignIP is API call 11502 func (o *SIMOp) AssignIP(ctx context.Context, id types.ID, param *SIMAssignIPRequest) error { 11503 // build request URL 11504 pathBuildParameter := map[string]interface{}{ 11505 "rootURL": SakuraCloudAPIRoot, 11506 "pathSuffix": o.PathSuffix, 11507 "pathName": o.PathName, 11508 "zone": APIDefaultZone, 11509 "id": id, 11510 "param": param, 11511 } 11512 11513 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/ip", pathBuildParameter) 11514 if err != nil { 11515 return err 11516 } 11517 // build request body 11518 var body interface{} 11519 v, err := o.transformAssignIPArgs(id, param) 11520 if err != nil { 11521 return err 11522 } 11523 body = v 11524 11525 // do request 11526 _, err = o.Client.Do(ctx, "PUT", url, body) 11527 if err != nil { 11528 return err 11529 } 11530 11531 // build results 11532 11533 return nil 11534 } 11535 11536 // ClearIP is API call 11537 func (o *SIMOp) ClearIP(ctx context.Context, id types.ID) error { 11538 // build request URL 11539 pathBuildParameter := map[string]interface{}{ 11540 "rootURL": SakuraCloudAPIRoot, 11541 "pathSuffix": o.PathSuffix, 11542 "pathName": o.PathName, 11543 "zone": APIDefaultZone, 11544 "id": id, 11545 } 11546 11547 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/ip", pathBuildParameter) 11548 if err != nil { 11549 return err 11550 } 11551 // build request body 11552 var body interface{} 11553 11554 // do request 11555 _, err = o.Client.Do(ctx, "DELETE", url, body) 11556 if err != nil { 11557 return err 11558 } 11559 11560 // build results 11561 11562 return nil 11563 } 11564 11565 // IMEILock is API call 11566 func (o *SIMOp) IMEILock(ctx context.Context, id types.ID, param *SIMIMEILockRequest) error { 11567 // build request URL 11568 pathBuildParameter := map[string]interface{}{ 11569 "rootURL": SakuraCloudAPIRoot, 11570 "pathSuffix": o.PathSuffix, 11571 "pathName": o.PathName, 11572 "zone": APIDefaultZone, 11573 "id": id, 11574 "param": param, 11575 } 11576 11577 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/imeilock", pathBuildParameter) 11578 if err != nil { 11579 return err 11580 } 11581 // build request body 11582 var body interface{} 11583 v, err := o.transformIMEILockArgs(id, param) 11584 if err != nil { 11585 return err 11586 } 11587 body = v 11588 11589 // do request 11590 _, err = o.Client.Do(ctx, "PUT", url, body) 11591 if err != nil { 11592 return err 11593 } 11594 11595 // build results 11596 11597 return nil 11598 } 11599 11600 // IMEIUnlock is API call 11601 func (o *SIMOp) IMEIUnlock(ctx context.Context, id types.ID) error { 11602 // build request URL 11603 pathBuildParameter := map[string]interface{}{ 11604 "rootURL": SakuraCloudAPIRoot, 11605 "pathSuffix": o.PathSuffix, 11606 "pathName": o.PathName, 11607 "zone": APIDefaultZone, 11608 "id": id, 11609 } 11610 11611 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/imeilock", pathBuildParameter) 11612 if err != nil { 11613 return err 11614 } 11615 // build request body 11616 var body interface{} 11617 11618 // do request 11619 _, err = o.Client.Do(ctx, "DELETE", url, body) 11620 if err != nil { 11621 return err 11622 } 11623 11624 // build results 11625 11626 return nil 11627 } 11628 11629 // Logs is API call 11630 func (o *SIMOp) Logs(ctx context.Context, id types.ID) (*SIMLogsResult, error) { 11631 // build request URL 11632 pathBuildParameter := map[string]interface{}{ 11633 "rootURL": SakuraCloudAPIRoot, 11634 "pathSuffix": o.PathSuffix, 11635 "pathName": o.PathName, 11636 "zone": APIDefaultZone, 11637 "id": id, 11638 } 11639 11640 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/sessionlog", pathBuildParameter) 11641 if err != nil { 11642 return nil, err 11643 } 11644 // build request body 11645 var body interface{} 11646 11647 // do request 11648 data, err := o.Client.Do(ctx, "GET", url, body) 11649 if err != nil { 11650 return nil, err 11651 } 11652 11653 // build results 11654 results, err := o.transformLogsResults(data) 11655 if err != nil { 11656 return nil, err 11657 } 11658 return results, err 11659 } 11660 11661 // GetNetworkOperator is API call 11662 func (o *SIMOp) GetNetworkOperator(ctx context.Context, id types.ID) ([]*SIMNetworkOperatorConfig, error) { 11663 // build request URL 11664 pathBuildParameter := map[string]interface{}{ 11665 "rootURL": SakuraCloudAPIRoot, 11666 "pathSuffix": o.PathSuffix, 11667 "pathName": o.PathName, 11668 "zone": APIDefaultZone, 11669 "id": id, 11670 } 11671 11672 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/network_operator_config", pathBuildParameter) 11673 if err != nil { 11674 return nil, err 11675 } 11676 // build request body 11677 var body interface{} 11678 11679 // do request 11680 data, err := o.Client.Do(ctx, "GET", url, body) 11681 if err != nil { 11682 return nil, err 11683 } 11684 11685 // build results 11686 results, err := o.transformGetNetworkOperatorResults(data) 11687 if err != nil { 11688 return nil, err 11689 } 11690 return results.Configs, nil 11691 } 11692 11693 // SetNetworkOperator is API call 11694 func (o *SIMOp) SetNetworkOperator(ctx context.Context, id types.ID, configs []*SIMNetworkOperatorConfig) error { 11695 // build request URL 11696 pathBuildParameter := map[string]interface{}{ 11697 "rootURL": SakuraCloudAPIRoot, 11698 "pathSuffix": o.PathSuffix, 11699 "pathName": o.PathName, 11700 "zone": APIDefaultZone, 11701 "id": id, 11702 "configs": configs, 11703 } 11704 11705 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/network_operator_config", pathBuildParameter) 11706 if err != nil { 11707 return err 11708 } 11709 // build request body 11710 var body interface{} 11711 v, err := o.transformSetNetworkOperatorArgs(id, configs) 11712 if err != nil { 11713 return err 11714 } 11715 body = v 11716 11717 // do request 11718 _, err = o.Client.Do(ctx, "PUT", url, body) 11719 if err != nil { 11720 return err 11721 } 11722 11723 // build results 11724 11725 return nil 11726 } 11727 11728 // MonitorSIM is API call 11729 func (o *SIMOp) MonitorSIM(ctx context.Context, id types.ID, condition *MonitorCondition) (*LinkActivity, error) { 11730 // build request URL 11731 pathBuildParameter := map[string]interface{}{ 11732 "rootURL": SakuraCloudAPIRoot, 11733 "pathSuffix": o.PathSuffix, 11734 "pathName": o.PathName, 11735 "zone": APIDefaultZone, 11736 "id": id, 11737 "condition": condition, 11738 } 11739 11740 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/metrics/monitor", pathBuildParameter) 11741 if err != nil { 11742 return nil, err 11743 } 11744 // build request body 11745 var body interface{} 11746 v, err := o.transformMonitorSIMArgs(id, condition) 11747 if err != nil { 11748 return nil, err 11749 } 11750 body = v 11751 11752 // do request 11753 data, err := o.Client.Do(ctx, "GET", url, body) 11754 if err != nil { 11755 return nil, err 11756 } 11757 11758 // build results 11759 results, err := o.transformMonitorSIMResults(data) 11760 if err != nil { 11761 return nil, err 11762 } 11763 return results.LinkActivity, nil 11764 } 11765 11766 // Status is API call 11767 func (o *SIMOp) Status(ctx context.Context, id types.ID) (*SIMInfo, error) { 11768 // build request URL 11769 pathBuildParameter := map[string]interface{}{ 11770 "rootURL": SakuraCloudAPIRoot, 11771 "pathSuffix": o.PathSuffix, 11772 "pathName": o.PathName, 11773 "zone": APIDefaultZone, 11774 "id": id, 11775 } 11776 11777 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/sim/status", pathBuildParameter) 11778 if err != nil { 11779 return nil, err 11780 } 11781 // build request body 11782 var body interface{} 11783 11784 // do request 11785 data, err := o.Client.Do(ctx, "GET", url, body) 11786 if err != nil { 11787 return nil, err 11788 } 11789 11790 // build results 11791 results, err := o.transformStatusResults(data) 11792 if err != nil { 11793 return nil, err 11794 } 11795 return results.SIM, nil 11796 } 11797 11798 /************************************************* 11799 * SimpleMonitorOp 11800 *************************************************/ 11801 11802 // SimpleMonitorOp implements SimpleMonitorAPI interface 11803 type SimpleMonitorOp struct { 11804 // Client APICaller 11805 Client APICaller 11806 // PathSuffix is used when building URL 11807 PathSuffix string 11808 // PathName is used when building URL 11809 PathName string 11810 } 11811 11812 // NewSimpleMonitorOp creates new SimpleMonitorOp instance 11813 func NewSimpleMonitorOp(caller APICaller) SimpleMonitorAPI { 11814 return GetClientFactoryFunc("SimpleMonitor")(caller).(SimpleMonitorAPI) 11815 } 11816 11817 // Find is API call 11818 func (o *SimpleMonitorOp) Find(ctx context.Context, conditions *FindCondition) (*SimpleMonitorFindResult, error) { 11819 // build request URL 11820 pathBuildParameter := map[string]interface{}{ 11821 "rootURL": SakuraCloudAPIRoot, 11822 "pathSuffix": o.PathSuffix, 11823 "pathName": o.PathName, 11824 "zone": APIDefaultZone, 11825 "conditions": conditions, 11826 } 11827 11828 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 11829 if err != nil { 11830 return nil, err 11831 } 11832 // build request body 11833 var body interface{} 11834 v, err := o.transformFindArgs(conditions) 11835 if err != nil { 11836 return nil, err 11837 } 11838 body = v 11839 11840 // do request 11841 data, err := o.Client.Do(ctx, "GET", url, body) 11842 if err != nil { 11843 return nil, err 11844 } 11845 11846 // build results 11847 results, err := o.transformFindResults(data) 11848 if err != nil { 11849 return nil, err 11850 } 11851 return results, err 11852 } 11853 11854 // Create is API call 11855 func (o *SimpleMonitorOp) Create(ctx context.Context, param *SimpleMonitorCreateRequest) (*SimpleMonitor, error) { 11856 // build request URL 11857 pathBuildParameter := map[string]interface{}{ 11858 "rootURL": SakuraCloudAPIRoot, 11859 "pathSuffix": o.PathSuffix, 11860 "pathName": o.PathName, 11861 "zone": APIDefaultZone, 11862 "param": param, 11863 } 11864 11865 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 11866 if err != nil { 11867 return nil, err 11868 } 11869 // build request body 11870 var body interface{} 11871 v, err := o.transformCreateArgs(param) 11872 if err != nil { 11873 return nil, err 11874 } 11875 body = v 11876 11877 // do request 11878 data, err := o.Client.Do(ctx, "POST", url, body) 11879 if err != nil { 11880 return nil, err 11881 } 11882 11883 // build results 11884 results, err := o.transformCreateResults(data) 11885 if err != nil { 11886 return nil, err 11887 } 11888 return results.SimpleMonitor, nil 11889 } 11890 11891 // Read is API call 11892 func (o *SimpleMonitorOp) Read(ctx context.Context, id types.ID) (*SimpleMonitor, error) { 11893 // build request URL 11894 pathBuildParameter := map[string]interface{}{ 11895 "rootURL": SakuraCloudAPIRoot, 11896 "pathSuffix": o.PathSuffix, 11897 "pathName": o.PathName, 11898 "zone": APIDefaultZone, 11899 "id": id, 11900 } 11901 11902 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11903 if err != nil { 11904 return nil, err 11905 } 11906 // build request body 11907 var body interface{} 11908 11909 // do request 11910 data, err := o.Client.Do(ctx, "GET", url, body) 11911 if err != nil { 11912 return nil, err 11913 } 11914 11915 // build results 11916 results, err := o.transformReadResults(data) 11917 if err != nil { 11918 return nil, err 11919 } 11920 return results.SimpleMonitor, nil 11921 } 11922 11923 // Update is API call 11924 func (o *SimpleMonitorOp) Update(ctx context.Context, id types.ID, param *SimpleMonitorUpdateRequest) (*SimpleMonitor, error) { 11925 // build request URL 11926 pathBuildParameter := map[string]interface{}{ 11927 "rootURL": SakuraCloudAPIRoot, 11928 "pathSuffix": o.PathSuffix, 11929 "pathName": o.PathName, 11930 "zone": APIDefaultZone, 11931 "id": id, 11932 "param": param, 11933 } 11934 11935 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11936 if err != nil { 11937 return nil, err 11938 } 11939 // build request body 11940 var body interface{} 11941 v, err := o.transformUpdateArgs(id, param) 11942 if err != nil { 11943 return nil, err 11944 } 11945 body = v 11946 11947 // do request 11948 data, err := o.Client.Do(ctx, "PUT", url, body) 11949 if err != nil { 11950 return nil, err 11951 } 11952 11953 // build results 11954 results, err := o.transformUpdateResults(data) 11955 if err != nil { 11956 return nil, err 11957 } 11958 return results.SimpleMonitor, nil 11959 } 11960 11961 // UpdateSettings is API call 11962 func (o *SimpleMonitorOp) UpdateSettings(ctx context.Context, id types.ID, param *SimpleMonitorUpdateSettingsRequest) (*SimpleMonitor, error) { 11963 // build request URL 11964 pathBuildParameter := map[string]interface{}{ 11965 "rootURL": SakuraCloudAPIRoot, 11966 "pathSuffix": o.PathSuffix, 11967 "pathName": o.PathName, 11968 "zone": APIDefaultZone, 11969 "id": id, 11970 "param": param, 11971 } 11972 11973 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 11974 if err != nil { 11975 return nil, err 11976 } 11977 // build request body 11978 var body interface{} 11979 v, err := o.transformUpdateSettingsArgs(id, param) 11980 if err != nil { 11981 return nil, err 11982 } 11983 body = v 11984 11985 // do request 11986 data, err := o.Client.Do(ctx, "PUT", url, body) 11987 if err != nil { 11988 return nil, err 11989 } 11990 11991 // build results 11992 results, err := o.transformUpdateSettingsResults(data) 11993 if err != nil { 11994 return nil, err 11995 } 11996 return results.SimpleMonitor, nil 11997 } 11998 11999 // Delete is API call 12000 func (o *SimpleMonitorOp) Delete(ctx context.Context, id types.ID) error { 12001 // build request URL 12002 pathBuildParameter := map[string]interface{}{ 12003 "rootURL": SakuraCloudAPIRoot, 12004 "pathSuffix": o.PathSuffix, 12005 "pathName": o.PathName, 12006 "zone": APIDefaultZone, 12007 "id": id, 12008 } 12009 12010 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12011 if err != nil { 12012 return err 12013 } 12014 // build request body 12015 var body interface{} 12016 12017 // do request 12018 _, err = o.Client.Do(ctx, "DELETE", url, body) 12019 if err != nil { 12020 return err 12021 } 12022 12023 // build results 12024 12025 return nil 12026 } 12027 12028 // MonitorResponseTime is API call 12029 func (o *SimpleMonitorOp) MonitorResponseTime(ctx context.Context, id types.ID, condition *MonitorCondition) (*ResponseTimeSecActivity, error) { 12030 // build request URL 12031 pathBuildParameter := map[string]interface{}{ 12032 "rootURL": SakuraCloudAPIRoot, 12033 "pathSuffix": o.PathSuffix, 12034 "pathName": o.PathName, 12035 "zone": APIDefaultZone, 12036 "id": id, 12037 "condition": condition, 12038 } 12039 12040 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}//activity/responsetimesec/monitor", pathBuildParameter) 12041 if err != nil { 12042 return nil, err 12043 } 12044 // build request body 12045 var body interface{} 12046 v, err := o.transformMonitorResponseTimeArgs(id, condition) 12047 if err != nil { 12048 return nil, err 12049 } 12050 body = v 12051 12052 // do request 12053 data, err := o.Client.Do(ctx, "GET", url, body) 12054 if err != nil { 12055 return nil, err 12056 } 12057 12058 // build results 12059 results, err := o.transformMonitorResponseTimeResults(data) 12060 if err != nil { 12061 return nil, err 12062 } 12063 return results.ResponseTimeSecActivity, nil 12064 } 12065 12066 // HealthStatus is API call 12067 func (o *SimpleMonitorOp) HealthStatus(ctx context.Context, id types.ID) (*SimpleMonitorHealthStatus, error) { 12068 // build request URL 12069 pathBuildParameter := map[string]interface{}{ 12070 "rootURL": SakuraCloudAPIRoot, 12071 "pathSuffix": o.PathSuffix, 12072 "pathName": o.PathName, 12073 "zone": APIDefaultZone, 12074 "id": id, 12075 } 12076 12077 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/health", pathBuildParameter) 12078 if err != nil { 12079 return nil, err 12080 } 12081 // build request body 12082 var body interface{} 12083 12084 // do request 12085 data, err := o.Client.Do(ctx, "GET", url, body) 12086 if err != nil { 12087 return nil, err 12088 } 12089 12090 // build results 12091 results, err := o.transformHealthStatusResults(data) 12092 if err != nil { 12093 return nil, err 12094 } 12095 return results.SimpleMonitorHealthStatus, nil 12096 } 12097 12098 /************************************************* 12099 * SSHKeyOp 12100 *************************************************/ 12101 12102 // SSHKeyOp implements SSHKeyAPI interface 12103 type SSHKeyOp struct { 12104 // Client APICaller 12105 Client APICaller 12106 // PathSuffix is used when building URL 12107 PathSuffix string 12108 // PathName is used when building URL 12109 PathName string 12110 } 12111 12112 // NewSSHKeyOp creates new SSHKeyOp instance 12113 func NewSSHKeyOp(caller APICaller) SSHKeyAPI { 12114 return GetClientFactoryFunc("SSHKey")(caller).(SSHKeyAPI) 12115 } 12116 12117 // Find is API call 12118 func (o *SSHKeyOp) Find(ctx context.Context, conditions *FindCondition) (*SSHKeyFindResult, error) { 12119 // build request URL 12120 pathBuildParameter := map[string]interface{}{ 12121 "rootURL": SakuraCloudAPIRoot, 12122 "pathSuffix": o.PathSuffix, 12123 "pathName": o.PathName, 12124 "zone": APIDefaultZone, 12125 "conditions": conditions, 12126 } 12127 12128 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12129 if err != nil { 12130 return nil, err 12131 } 12132 // build request body 12133 var body interface{} 12134 v, err := o.transformFindArgs(conditions) 12135 if err != nil { 12136 return nil, err 12137 } 12138 body = v 12139 12140 // do request 12141 data, err := o.Client.Do(ctx, "GET", url, body) 12142 if err != nil { 12143 return nil, err 12144 } 12145 12146 // build results 12147 results, err := o.transformFindResults(data) 12148 if err != nil { 12149 return nil, err 12150 } 12151 return results, err 12152 } 12153 12154 // Create is API call 12155 func (o *SSHKeyOp) Create(ctx context.Context, param *SSHKeyCreateRequest) (*SSHKey, error) { 12156 // build request URL 12157 pathBuildParameter := map[string]interface{}{ 12158 "rootURL": SakuraCloudAPIRoot, 12159 "pathSuffix": o.PathSuffix, 12160 "pathName": o.PathName, 12161 "zone": APIDefaultZone, 12162 "param": param, 12163 } 12164 12165 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12166 if err != nil { 12167 return nil, err 12168 } 12169 // build request body 12170 var body interface{} 12171 v, err := o.transformCreateArgs(param) 12172 if err != nil { 12173 return nil, err 12174 } 12175 body = v 12176 12177 // do request 12178 data, err := o.Client.Do(ctx, "POST", url, body) 12179 if err != nil { 12180 return nil, err 12181 } 12182 12183 // build results 12184 results, err := o.transformCreateResults(data) 12185 if err != nil { 12186 return nil, err 12187 } 12188 return results.SSHKey, nil 12189 } 12190 12191 // Generate is API call 12192 func (o *SSHKeyOp) Generate(ctx context.Context, param *SSHKeyGenerateRequest) (*SSHKeyGenerated, error) { 12193 // build request URL 12194 pathBuildParameter := map[string]interface{}{ 12195 "rootURL": SakuraCloudAPIRoot, 12196 "pathSuffix": o.PathSuffix, 12197 "pathName": o.PathName, 12198 "zone": APIDefaultZone, 12199 "param": param, 12200 } 12201 12202 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/generate", pathBuildParameter) 12203 if err != nil { 12204 return nil, err 12205 } 12206 // build request body 12207 var body interface{} 12208 v, err := o.transformGenerateArgs(param) 12209 if err != nil { 12210 return nil, err 12211 } 12212 body = v 12213 12214 // do request 12215 data, err := o.Client.Do(ctx, "POST", url, body) 12216 if err != nil { 12217 return nil, err 12218 } 12219 12220 // build results 12221 results, err := o.transformGenerateResults(data) 12222 if err != nil { 12223 return nil, err 12224 } 12225 return results.SSHKeyGenerated, nil 12226 } 12227 12228 // Read is API call 12229 func (o *SSHKeyOp) Read(ctx context.Context, id types.ID) (*SSHKey, error) { 12230 // build request URL 12231 pathBuildParameter := map[string]interface{}{ 12232 "rootURL": SakuraCloudAPIRoot, 12233 "pathSuffix": o.PathSuffix, 12234 "pathName": o.PathName, 12235 "zone": APIDefaultZone, 12236 "id": id, 12237 } 12238 12239 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12240 if err != nil { 12241 return nil, err 12242 } 12243 // build request body 12244 var body interface{} 12245 12246 // do request 12247 data, err := o.Client.Do(ctx, "GET", url, body) 12248 if err != nil { 12249 return nil, err 12250 } 12251 12252 // build results 12253 results, err := o.transformReadResults(data) 12254 if err != nil { 12255 return nil, err 12256 } 12257 return results.SSHKey, nil 12258 } 12259 12260 // Update is API call 12261 func (o *SSHKeyOp) Update(ctx context.Context, id types.ID, param *SSHKeyUpdateRequest) (*SSHKey, error) { 12262 // build request URL 12263 pathBuildParameter := map[string]interface{}{ 12264 "rootURL": SakuraCloudAPIRoot, 12265 "pathSuffix": o.PathSuffix, 12266 "pathName": o.PathName, 12267 "zone": APIDefaultZone, 12268 "id": id, 12269 "param": param, 12270 } 12271 12272 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12273 if err != nil { 12274 return nil, err 12275 } 12276 // build request body 12277 var body interface{} 12278 v, err := o.transformUpdateArgs(id, param) 12279 if err != nil { 12280 return nil, err 12281 } 12282 body = v 12283 12284 // do request 12285 data, err := o.Client.Do(ctx, "PUT", url, body) 12286 if err != nil { 12287 return nil, err 12288 } 12289 12290 // build results 12291 results, err := o.transformUpdateResults(data) 12292 if err != nil { 12293 return nil, err 12294 } 12295 return results.SSHKey, nil 12296 } 12297 12298 // Delete is API call 12299 func (o *SSHKeyOp) Delete(ctx context.Context, id types.ID) error { 12300 // build request URL 12301 pathBuildParameter := map[string]interface{}{ 12302 "rootURL": SakuraCloudAPIRoot, 12303 "pathSuffix": o.PathSuffix, 12304 "pathName": o.PathName, 12305 "zone": APIDefaultZone, 12306 "id": id, 12307 } 12308 12309 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12310 if err != nil { 12311 return err 12312 } 12313 // build request body 12314 var body interface{} 12315 12316 // do request 12317 _, err = o.Client.Do(ctx, "DELETE", url, body) 12318 if err != nil { 12319 return err 12320 } 12321 12322 // build results 12323 12324 return nil 12325 } 12326 12327 /************************************************* 12328 * SubnetOp 12329 *************************************************/ 12330 12331 // SubnetOp implements SubnetAPI interface 12332 type SubnetOp struct { 12333 // Client APICaller 12334 Client APICaller 12335 // PathSuffix is used when building URL 12336 PathSuffix string 12337 // PathName is used when building URL 12338 PathName string 12339 } 12340 12341 // NewSubnetOp creates new SubnetOp instance 12342 func NewSubnetOp(caller APICaller) SubnetAPI { 12343 return GetClientFactoryFunc("Subnet")(caller).(SubnetAPI) 12344 } 12345 12346 // Find is API call 12347 func (o *SubnetOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*SubnetFindResult, error) { 12348 // build request URL 12349 pathBuildParameter := map[string]interface{}{ 12350 "rootURL": SakuraCloudAPIRoot, 12351 "pathSuffix": o.PathSuffix, 12352 "pathName": o.PathName, 12353 "zone": zone, 12354 "conditions": conditions, 12355 } 12356 12357 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12358 if err != nil { 12359 return nil, err 12360 } 12361 // build request body 12362 var body interface{} 12363 v, err := o.transformFindArgs(conditions) 12364 if err != nil { 12365 return nil, err 12366 } 12367 body = v 12368 12369 // do request 12370 data, err := o.Client.Do(ctx, "GET", url, body) 12371 if err != nil { 12372 return nil, err 12373 } 12374 12375 // build results 12376 results, err := o.transformFindResults(data) 12377 if err != nil { 12378 return nil, err 12379 } 12380 return results, err 12381 } 12382 12383 // Read is API call 12384 func (o *SubnetOp) Read(ctx context.Context, zone string, id types.ID) (*Subnet, error) { 12385 // build request URL 12386 pathBuildParameter := map[string]interface{}{ 12387 "rootURL": SakuraCloudAPIRoot, 12388 "pathSuffix": o.PathSuffix, 12389 "pathName": o.PathName, 12390 "zone": zone, 12391 "id": id, 12392 } 12393 12394 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12395 if err != nil { 12396 return nil, err 12397 } 12398 // build request body 12399 var body interface{} 12400 12401 // do request 12402 data, err := o.Client.Do(ctx, "GET", url, body) 12403 if err != nil { 12404 return nil, err 12405 } 12406 12407 // build results 12408 results, err := o.transformReadResults(data) 12409 if err != nil { 12410 return nil, err 12411 } 12412 return results.Subnet, nil 12413 } 12414 12415 /************************************************* 12416 * SwitchOp 12417 *************************************************/ 12418 12419 // SwitchOp implements SwitchAPI interface 12420 type SwitchOp struct { 12421 // Client APICaller 12422 Client APICaller 12423 // PathSuffix is used when building URL 12424 PathSuffix string 12425 // PathName is used when building URL 12426 PathName string 12427 } 12428 12429 // NewSwitchOp creates new SwitchOp instance 12430 func NewSwitchOp(caller APICaller) SwitchAPI { 12431 return GetClientFactoryFunc("Switch")(caller).(SwitchAPI) 12432 } 12433 12434 // Find is API call 12435 func (o *SwitchOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*SwitchFindResult, error) { 12436 // build request URL 12437 pathBuildParameter := map[string]interface{}{ 12438 "rootURL": SakuraCloudAPIRoot, 12439 "pathSuffix": o.PathSuffix, 12440 "pathName": o.PathName, 12441 "zone": zone, 12442 "conditions": conditions, 12443 } 12444 12445 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12446 if err != nil { 12447 return nil, err 12448 } 12449 // build request body 12450 var body interface{} 12451 v, err := o.transformFindArgs(conditions) 12452 if err != nil { 12453 return nil, err 12454 } 12455 body = v 12456 12457 // do request 12458 data, err := o.Client.Do(ctx, "GET", url, body) 12459 if err != nil { 12460 return nil, err 12461 } 12462 12463 // build results 12464 results, err := o.transformFindResults(data) 12465 if err != nil { 12466 return nil, err 12467 } 12468 return results, err 12469 } 12470 12471 // Create is API call 12472 func (o *SwitchOp) Create(ctx context.Context, zone string, param *SwitchCreateRequest) (*Switch, error) { 12473 // build request URL 12474 pathBuildParameter := map[string]interface{}{ 12475 "rootURL": SakuraCloudAPIRoot, 12476 "pathSuffix": o.PathSuffix, 12477 "pathName": o.PathName, 12478 "zone": zone, 12479 "param": param, 12480 } 12481 12482 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12483 if err != nil { 12484 return nil, err 12485 } 12486 // build request body 12487 var body interface{} 12488 v, err := o.transformCreateArgs(param) 12489 if err != nil { 12490 return nil, err 12491 } 12492 body = v 12493 12494 // do request 12495 data, err := o.Client.Do(ctx, "POST", url, body) 12496 if err != nil { 12497 return nil, err 12498 } 12499 12500 // build results 12501 results, err := o.transformCreateResults(data) 12502 if err != nil { 12503 return nil, err 12504 } 12505 return results.Switch, nil 12506 } 12507 12508 // Read is API call 12509 func (o *SwitchOp) Read(ctx context.Context, zone string, id types.ID) (*Switch, error) { 12510 // build request URL 12511 pathBuildParameter := map[string]interface{}{ 12512 "rootURL": SakuraCloudAPIRoot, 12513 "pathSuffix": o.PathSuffix, 12514 "pathName": o.PathName, 12515 "zone": zone, 12516 "id": id, 12517 } 12518 12519 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12520 if err != nil { 12521 return nil, err 12522 } 12523 // build request body 12524 var body interface{} 12525 12526 // do request 12527 data, err := o.Client.Do(ctx, "GET", url, body) 12528 if err != nil { 12529 return nil, err 12530 } 12531 12532 // build results 12533 results, err := o.transformReadResults(data) 12534 if err != nil { 12535 return nil, err 12536 } 12537 return results.Switch, nil 12538 } 12539 12540 // Update is API call 12541 func (o *SwitchOp) Update(ctx context.Context, zone string, id types.ID, param *SwitchUpdateRequest) (*Switch, error) { 12542 // build request URL 12543 pathBuildParameter := map[string]interface{}{ 12544 "rootURL": SakuraCloudAPIRoot, 12545 "pathSuffix": o.PathSuffix, 12546 "pathName": o.PathName, 12547 "zone": zone, 12548 "id": id, 12549 "param": param, 12550 } 12551 12552 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12553 if err != nil { 12554 return nil, err 12555 } 12556 // build request body 12557 var body interface{} 12558 v, err := o.transformUpdateArgs(id, param) 12559 if err != nil { 12560 return nil, err 12561 } 12562 body = v 12563 12564 // do request 12565 data, err := o.Client.Do(ctx, "PUT", url, body) 12566 if err != nil { 12567 return nil, err 12568 } 12569 12570 // build results 12571 results, err := o.transformUpdateResults(data) 12572 if err != nil { 12573 return nil, err 12574 } 12575 return results.Switch, nil 12576 } 12577 12578 // Delete is API call 12579 func (o *SwitchOp) Delete(ctx context.Context, zone string, id types.ID) error { 12580 // build request URL 12581 pathBuildParameter := map[string]interface{}{ 12582 "rootURL": SakuraCloudAPIRoot, 12583 "pathSuffix": o.PathSuffix, 12584 "pathName": o.PathName, 12585 "zone": zone, 12586 "id": id, 12587 } 12588 12589 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12590 if err != nil { 12591 return err 12592 } 12593 // build request body 12594 var body interface{} 12595 12596 // do request 12597 _, err = o.Client.Do(ctx, "DELETE", url, body) 12598 if err != nil { 12599 return err 12600 } 12601 12602 // build results 12603 12604 return nil 12605 } 12606 12607 // ConnectToBridge is API call 12608 func (o *SwitchOp) ConnectToBridge(ctx context.Context, zone string, id types.ID, bridgeID types.ID) error { 12609 // build request URL 12610 pathBuildParameter := map[string]interface{}{ 12611 "rootURL": SakuraCloudAPIRoot, 12612 "pathSuffix": o.PathSuffix, 12613 "pathName": o.PathName, 12614 "zone": zone, 12615 "id": id, 12616 "bridgeID": bridgeID, 12617 } 12618 12619 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/bridge/{{.bridgeID}}", pathBuildParameter) 12620 if err != nil { 12621 return err 12622 } 12623 // build request body 12624 var body interface{} 12625 12626 // do request 12627 _, err = o.Client.Do(ctx, "PUT", url, body) 12628 if err != nil { 12629 return err 12630 } 12631 12632 // build results 12633 12634 return nil 12635 } 12636 12637 // DisconnectFromBridge is API call 12638 func (o *SwitchOp) DisconnectFromBridge(ctx context.Context, zone string, id types.ID) error { 12639 // build request URL 12640 pathBuildParameter := map[string]interface{}{ 12641 "rootURL": SakuraCloudAPIRoot, 12642 "pathSuffix": o.PathSuffix, 12643 "pathName": o.PathName, 12644 "zone": zone, 12645 "id": id, 12646 } 12647 12648 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/to/bridge/", pathBuildParameter) 12649 if err != nil { 12650 return err 12651 } 12652 // build request body 12653 var body interface{} 12654 12655 // do request 12656 _, err = o.Client.Do(ctx, "DELETE", url, body) 12657 if err != nil { 12658 return err 12659 } 12660 12661 // build results 12662 12663 return nil 12664 } 12665 12666 // GetServers is API call 12667 func (o *SwitchOp) GetServers(ctx context.Context, zone string, id types.ID) (*SwitchGetServersResult, error) { 12668 // build request URL 12669 pathBuildParameter := map[string]interface{}{ 12670 "rootURL": SakuraCloudAPIRoot, 12671 "pathSuffix": o.PathSuffix, 12672 "pathName": o.PathName, 12673 "zone": zone, 12674 "id": id, 12675 } 12676 12677 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/server", pathBuildParameter) 12678 if err != nil { 12679 return nil, err 12680 } 12681 // build request body 12682 var body interface{} 12683 12684 // do request 12685 data, err := o.Client.Do(ctx, "GET", url, body) 12686 if err != nil { 12687 return nil, err 12688 } 12689 12690 // build results 12691 results, err := o.transformGetServersResults(data) 12692 if err != nil { 12693 return nil, err 12694 } 12695 return results, err 12696 } 12697 12698 /************************************************* 12699 * VPCRouterOp 12700 *************************************************/ 12701 12702 // VPCRouterOp implements VPCRouterAPI interface 12703 type VPCRouterOp struct { 12704 // Client APICaller 12705 Client APICaller 12706 // PathSuffix is used when building URL 12707 PathSuffix string 12708 // PathName is used when building URL 12709 PathName string 12710 } 12711 12712 // NewVPCRouterOp creates new VPCRouterOp instance 12713 func NewVPCRouterOp(caller APICaller) VPCRouterAPI { 12714 return GetClientFactoryFunc("VPCRouter")(caller).(VPCRouterAPI) 12715 } 12716 12717 // Find is API call 12718 func (o *VPCRouterOp) Find(ctx context.Context, zone string, conditions *FindCondition) (*VPCRouterFindResult, error) { 12719 // build request URL 12720 pathBuildParameter := map[string]interface{}{ 12721 "rootURL": SakuraCloudAPIRoot, 12722 "pathSuffix": o.PathSuffix, 12723 "pathName": o.PathName, 12724 "zone": zone, 12725 "conditions": conditions, 12726 } 12727 12728 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12729 if err != nil { 12730 return nil, err 12731 } 12732 // build request body 12733 var body interface{} 12734 v, err := o.transformFindArgs(conditions) 12735 if err != nil { 12736 return nil, err 12737 } 12738 body = v 12739 12740 // do request 12741 data, err := o.Client.Do(ctx, "GET", url, body) 12742 if err != nil { 12743 return nil, err 12744 } 12745 12746 // build results 12747 results, err := o.transformFindResults(data) 12748 if err != nil { 12749 return nil, err 12750 } 12751 return results, err 12752 } 12753 12754 // Create is API call 12755 func (o *VPCRouterOp) Create(ctx context.Context, zone string, param *VPCRouterCreateRequest) (*VPCRouter, error) { 12756 // build request URL 12757 pathBuildParameter := map[string]interface{}{ 12758 "rootURL": SakuraCloudAPIRoot, 12759 "pathSuffix": o.PathSuffix, 12760 "pathName": o.PathName, 12761 "zone": zone, 12762 "param": param, 12763 } 12764 12765 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 12766 if err != nil { 12767 return nil, err 12768 } 12769 // build request body 12770 var body interface{} 12771 v, err := o.transformCreateArgs(param) 12772 if err != nil { 12773 return nil, err 12774 } 12775 body = v 12776 12777 // do request 12778 data, err := o.Client.Do(ctx, "POST", url, body) 12779 if err != nil { 12780 return nil, err 12781 } 12782 12783 // build results 12784 results, err := o.transformCreateResults(data) 12785 if err != nil { 12786 return nil, err 12787 } 12788 return results.VPCRouter, nil 12789 } 12790 12791 // Read is API call 12792 func (o *VPCRouterOp) Read(ctx context.Context, zone string, id types.ID) (*VPCRouter, error) { 12793 // build request URL 12794 pathBuildParameter := map[string]interface{}{ 12795 "rootURL": SakuraCloudAPIRoot, 12796 "pathSuffix": o.PathSuffix, 12797 "pathName": o.PathName, 12798 "zone": zone, 12799 "id": id, 12800 } 12801 12802 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12803 if err != nil { 12804 return nil, err 12805 } 12806 // build request body 12807 var body interface{} 12808 12809 // do request 12810 data, err := o.Client.Do(ctx, "GET", url, body) 12811 if err != nil { 12812 return nil, err 12813 } 12814 12815 // build results 12816 results, err := o.transformReadResults(data) 12817 if err != nil { 12818 return nil, err 12819 } 12820 return results.VPCRouter, nil 12821 } 12822 12823 // Update is API call 12824 func (o *VPCRouterOp) Update(ctx context.Context, zone string, id types.ID, param *VPCRouterUpdateRequest) (*VPCRouter, error) { 12825 // build request URL 12826 pathBuildParameter := map[string]interface{}{ 12827 "rootURL": SakuraCloudAPIRoot, 12828 "pathSuffix": o.PathSuffix, 12829 "pathName": o.PathName, 12830 "zone": zone, 12831 "id": id, 12832 "param": param, 12833 } 12834 12835 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12836 if err != nil { 12837 return nil, err 12838 } 12839 // build request body 12840 var body interface{} 12841 v, err := o.transformUpdateArgs(id, param) 12842 if err != nil { 12843 return nil, err 12844 } 12845 body = v 12846 12847 // do request 12848 data, err := o.Client.Do(ctx, "PUT", url, body) 12849 if err != nil { 12850 return nil, err 12851 } 12852 12853 // build results 12854 results, err := o.transformUpdateResults(data) 12855 if err != nil { 12856 return nil, err 12857 } 12858 return results.VPCRouter, nil 12859 } 12860 12861 // UpdateSettings is API call 12862 func (o *VPCRouterOp) UpdateSettings(ctx context.Context, zone string, id types.ID, param *VPCRouterUpdateSettingsRequest) (*VPCRouter, error) { 12863 // build request URL 12864 pathBuildParameter := map[string]interface{}{ 12865 "rootURL": SakuraCloudAPIRoot, 12866 "pathSuffix": o.PathSuffix, 12867 "pathName": o.PathName, 12868 "zone": zone, 12869 "id": id, 12870 "param": param, 12871 } 12872 12873 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12874 if err != nil { 12875 return nil, err 12876 } 12877 // build request body 12878 var body interface{} 12879 v, err := o.transformUpdateSettingsArgs(id, param) 12880 if err != nil { 12881 return nil, err 12882 } 12883 body = v 12884 12885 // do request 12886 data, err := o.Client.Do(ctx, "PUT", url, body) 12887 if err != nil { 12888 return nil, err 12889 } 12890 12891 // build results 12892 results, err := o.transformUpdateSettingsResults(data) 12893 if err != nil { 12894 return nil, err 12895 } 12896 return results.VPCRouter, nil 12897 } 12898 12899 // Delete is API call 12900 func (o *VPCRouterOp) Delete(ctx context.Context, zone string, id types.ID) error { 12901 // build request URL 12902 pathBuildParameter := map[string]interface{}{ 12903 "rootURL": SakuraCloudAPIRoot, 12904 "pathSuffix": o.PathSuffix, 12905 "pathName": o.PathName, 12906 "zone": zone, 12907 "id": id, 12908 } 12909 12910 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 12911 if err != nil { 12912 return err 12913 } 12914 // build request body 12915 var body interface{} 12916 12917 // do request 12918 _, err = o.Client.Do(ctx, "DELETE", url, body) 12919 if err != nil { 12920 return err 12921 } 12922 12923 // build results 12924 12925 return nil 12926 } 12927 12928 // Config is API call 12929 func (o *VPCRouterOp) Config(ctx context.Context, zone string, id types.ID) error { 12930 // build request URL 12931 pathBuildParameter := map[string]interface{}{ 12932 "rootURL": SakuraCloudAPIRoot, 12933 "pathSuffix": o.PathSuffix, 12934 "pathName": o.PathName, 12935 "zone": zone, 12936 "id": id, 12937 } 12938 12939 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/config", pathBuildParameter) 12940 if err != nil { 12941 return err 12942 } 12943 // build request body 12944 var body interface{} 12945 12946 // do request 12947 _, err = o.Client.Do(ctx, "PUT", url, body) 12948 if err != nil { 12949 return err 12950 } 12951 12952 // build results 12953 12954 return nil 12955 } 12956 12957 // Boot is API call 12958 func (o *VPCRouterOp) Boot(ctx context.Context, zone string, id types.ID) error { 12959 // build request URL 12960 pathBuildParameter := map[string]interface{}{ 12961 "rootURL": SakuraCloudAPIRoot, 12962 "pathSuffix": o.PathSuffix, 12963 "pathName": o.PathName, 12964 "zone": zone, 12965 "id": id, 12966 } 12967 12968 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 12969 if err != nil { 12970 return err 12971 } 12972 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 12973 if err != nil { 12974 return err 12975 } 12976 apiLocker.Lock(lockKey) 12977 defer apiLocker.Unlock(lockKey) 12978 // build request body 12979 var body interface{} 12980 12981 // do request 12982 _, err = o.Client.Do(ctx, "PUT", url, body) 12983 if err != nil { 12984 return err 12985 } 12986 12987 // build results 12988 12989 return nil 12990 } 12991 12992 // Shutdown is API call 12993 func (o *VPCRouterOp) Shutdown(ctx context.Context, zone string, id types.ID, shutdownOption *ShutdownOption) error { 12994 // build request URL 12995 pathBuildParameter := map[string]interface{}{ 12996 "rootURL": SakuraCloudAPIRoot, 12997 "pathSuffix": o.PathSuffix, 12998 "pathName": o.PathName, 12999 "zone": zone, 13000 "id": id, 13001 "shutdownOption": shutdownOption, 13002 } 13003 13004 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/power", pathBuildParameter) 13005 if err != nil { 13006 return err 13007 } 13008 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 13009 if err != nil { 13010 return err 13011 } 13012 apiLocker.Lock(lockKey) 13013 defer apiLocker.Unlock(lockKey) 13014 // build request body 13015 var body interface{} 13016 v, err := o.transformShutdownArgs(id, shutdownOption) 13017 if err != nil { 13018 return err 13019 } 13020 body = v 13021 13022 // do request 13023 _, err = o.Client.Do(ctx, "DELETE", url, body) 13024 if err != nil { 13025 return err 13026 } 13027 13028 // build results 13029 13030 return nil 13031 } 13032 13033 // Reset is API call 13034 func (o *VPCRouterOp) Reset(ctx context.Context, zone string, id types.ID) error { 13035 // build request URL 13036 pathBuildParameter := map[string]interface{}{ 13037 "rootURL": SakuraCloudAPIRoot, 13038 "pathSuffix": o.PathSuffix, 13039 "pathName": o.PathName, 13040 "zone": zone, 13041 "id": id, 13042 } 13043 13044 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/reset", pathBuildParameter) 13045 if err != nil { 13046 return err 13047 } 13048 lockKey, err := buildURL("GlobalLock", pathBuildParameter) 13049 if err != nil { 13050 return err 13051 } 13052 apiLocker.Lock(lockKey) 13053 defer apiLocker.Unlock(lockKey) 13054 // build request body 13055 var body interface{} 13056 13057 // do request 13058 _, err = o.Client.Do(ctx, "PUT", url, body) 13059 if err != nil { 13060 return err 13061 } 13062 13063 // build results 13064 13065 return nil 13066 } 13067 13068 // ConnectToSwitch is API call 13069 func (o *VPCRouterOp) ConnectToSwitch(ctx context.Context, zone string, id types.ID, nicIndex int, switchID types.ID) error { 13070 // build request URL 13071 pathBuildParameter := map[string]interface{}{ 13072 "rootURL": SakuraCloudAPIRoot, 13073 "pathSuffix": o.PathSuffix, 13074 "pathName": o.PathName, 13075 "zone": zone, 13076 "id": id, 13077 "nicIndex": nicIndex, 13078 "switchID": switchID, 13079 } 13080 13081 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/{{.nicIndex}}/to/switch/{{.switchID}}", pathBuildParameter) 13082 if err != nil { 13083 return err 13084 } 13085 // build request body 13086 var body interface{} 13087 13088 // do request 13089 _, err = o.Client.Do(ctx, "PUT", url, body) 13090 if err != nil { 13091 return err 13092 } 13093 13094 // build results 13095 13096 return nil 13097 } 13098 13099 // DisconnectFromSwitch is API call 13100 func (o *VPCRouterOp) DisconnectFromSwitch(ctx context.Context, zone string, id types.ID, nicIndex int) error { 13101 // build request URL 13102 pathBuildParameter := map[string]interface{}{ 13103 "rootURL": SakuraCloudAPIRoot, 13104 "pathSuffix": o.PathSuffix, 13105 "pathName": o.PathName, 13106 "zone": zone, 13107 "id": id, 13108 "nicIndex": nicIndex, 13109 } 13110 13111 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface/{{.nicIndex}}/to/switch", pathBuildParameter) 13112 if err != nil { 13113 return err 13114 } 13115 // build request body 13116 var body interface{} 13117 13118 // do request 13119 _, err = o.Client.Do(ctx, "DELETE", url, body) 13120 if err != nil { 13121 return err 13122 } 13123 13124 // build results 13125 13126 return nil 13127 } 13128 13129 // MonitorCPU is API call 13130 func (o *VPCRouterOp) MonitorCPU(ctx context.Context, zone string, id types.ID, condition *MonitorCondition) (*CPUTimeActivity, error) { 13131 // build request URL 13132 pathBuildParameter := map[string]interface{}{ 13133 "rootURL": SakuraCloudAPIRoot, 13134 "pathSuffix": o.PathSuffix, 13135 "pathName": o.PathName, 13136 "zone": zone, 13137 "id": id, 13138 "condition": condition, 13139 } 13140 13141 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/cpu/monitor", pathBuildParameter) 13142 if err != nil { 13143 return nil, err 13144 } 13145 // build request body 13146 var body interface{} 13147 v, err := o.transformMonitorCPUArgs(id, condition) 13148 if err != nil { 13149 return nil, err 13150 } 13151 body = v 13152 13153 // do request 13154 data, err := o.Client.Do(ctx, "GET", url, body) 13155 if err != nil { 13156 return nil, err 13157 } 13158 13159 // build results 13160 results, err := o.transformMonitorCPUResults(data) 13161 if err != nil { 13162 return nil, err 13163 } 13164 return results.CPUTimeActivity, nil 13165 } 13166 13167 // MonitorInterface is API call 13168 func (o *VPCRouterOp) MonitorInterface(ctx context.Context, zone string, id types.ID, index int, condition *MonitorCondition) (*InterfaceActivity, error) { 13169 // build request URL 13170 pathBuildParameter := map[string]interface{}{ 13171 "rootURL": SakuraCloudAPIRoot, 13172 "pathSuffix": o.PathSuffix, 13173 "pathName": o.PathName, 13174 "zone": zone, 13175 "id": id, 13176 "index": index, 13177 "condition": condition, 13178 } 13179 13180 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/interface{{if ne .index 0}}/{{.index}}{{end}}/monitor", pathBuildParameter) 13181 if err != nil { 13182 return nil, err 13183 } 13184 // build request body 13185 var body interface{} 13186 v, err := o.transformMonitorInterfaceArgs(id, index, condition) 13187 if err != nil { 13188 return nil, err 13189 } 13190 body = v 13191 13192 // do request 13193 data, err := o.Client.Do(ctx, "GET", url, body) 13194 if err != nil { 13195 return nil, err 13196 } 13197 13198 // build results 13199 results, err := o.transformMonitorInterfaceResults(data) 13200 if err != nil { 13201 return nil, err 13202 } 13203 return results.InterfaceActivity, nil 13204 } 13205 13206 // Status is API call 13207 func (o *VPCRouterOp) Status(ctx context.Context, zone string, id types.ID) (*VPCRouterStatus, error) { 13208 // build request URL 13209 pathBuildParameter := map[string]interface{}{ 13210 "rootURL": SakuraCloudAPIRoot, 13211 "pathSuffix": o.PathSuffix, 13212 "pathName": o.PathName, 13213 "zone": zone, 13214 "id": id, 13215 } 13216 13217 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/status", pathBuildParameter) 13218 if err != nil { 13219 return nil, err 13220 } 13221 // build request body 13222 var body interface{} 13223 13224 // do request 13225 data, err := o.Client.Do(ctx, "GET", url, body) 13226 if err != nil { 13227 return nil, err 13228 } 13229 13230 // build results 13231 results, err := o.transformStatusResults(data) 13232 if err != nil { 13233 return nil, err 13234 } 13235 return results.VPCRouterStatus, nil 13236 } 13237 13238 // Logs is API call 13239 func (o *VPCRouterOp) Logs(ctx context.Context, zone string, id types.ID) (*VPCRouterLog, error) { 13240 // build request URL 13241 pathBuildParameter := map[string]interface{}{ 13242 "rootURL": SakuraCloudAPIRoot, 13243 "pathSuffix": o.PathSuffix, 13244 "pathName": o.PathName, 13245 "zone": zone, 13246 "id": id, 13247 } 13248 13249 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/download/log/VPNLogs", pathBuildParameter) 13250 if err != nil { 13251 return nil, err 13252 } 13253 // build request body 13254 var body interface{} 13255 13256 // do request 13257 data, err := o.Client.Do(ctx, "GET", url, body) 13258 if err != nil { 13259 return nil, err 13260 } 13261 13262 // build results 13263 results, err := o.transformLogsResults(data) 13264 if err != nil { 13265 return nil, err 13266 } 13267 return results.VPCRouterLog, nil 13268 } 13269 13270 // Ping is API call 13271 func (o *VPCRouterOp) Ping(ctx context.Context, zone string, id types.ID, destination string) (*VPCRouterPingResults, error) { 13272 // build request URL 13273 pathBuildParameter := map[string]interface{}{ 13274 "rootURL": SakuraCloudAPIRoot, 13275 "pathSuffix": o.PathSuffix, 13276 "pathName": o.PathName, 13277 "zone": zone, 13278 "id": id, 13279 "destination": destination, 13280 } 13281 13282 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}/vpcrouter/ping/{{.destination}}", pathBuildParameter) 13283 if err != nil { 13284 return nil, err 13285 } 13286 // build request body 13287 var body interface{} 13288 13289 // do request 13290 data, err := o.Client.Do(ctx, "POST", url, body) 13291 if err != nil { 13292 return nil, err 13293 } 13294 13295 // build results 13296 results, err := o.transformPingResults(data) 13297 if err != nil { 13298 return nil, err 13299 } 13300 return results.VPCRouterPingResults, nil 13301 } 13302 13303 /************************************************* 13304 * ZoneOp 13305 *************************************************/ 13306 13307 // ZoneOp implements ZoneAPI interface 13308 type ZoneOp struct { 13309 // Client APICaller 13310 Client APICaller 13311 // PathSuffix is used when building URL 13312 PathSuffix string 13313 // PathName is used when building URL 13314 PathName string 13315 } 13316 13317 // NewZoneOp creates new ZoneOp instance 13318 func NewZoneOp(caller APICaller) ZoneAPI { 13319 return GetClientFactoryFunc("Zone")(caller).(ZoneAPI) 13320 } 13321 13322 // Find is API call 13323 func (o *ZoneOp) Find(ctx context.Context, conditions *FindCondition) (*ZoneFindResult, error) { 13324 // build request URL 13325 pathBuildParameter := map[string]interface{}{ 13326 "rootURL": SakuraCloudAPIRoot, 13327 "pathSuffix": o.PathSuffix, 13328 "pathName": o.PathName, 13329 "zone": APIDefaultZone, 13330 "conditions": conditions, 13331 } 13332 13333 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}", pathBuildParameter) 13334 if err != nil { 13335 return nil, err 13336 } 13337 // build request body 13338 var body interface{} 13339 v, err := o.transformFindArgs(conditions) 13340 if err != nil { 13341 return nil, err 13342 } 13343 body = v 13344 13345 // do request 13346 data, err := o.Client.Do(ctx, "GET", url, body) 13347 if err != nil { 13348 return nil, err 13349 } 13350 13351 // build results 13352 results, err := o.transformFindResults(data) 13353 if err != nil { 13354 return nil, err 13355 } 13356 return results, err 13357 } 13358 13359 // Read is API call 13360 func (o *ZoneOp) Read(ctx context.Context, id types.ID) (*Zone, error) { 13361 // build request URL 13362 pathBuildParameter := map[string]interface{}{ 13363 "rootURL": SakuraCloudAPIRoot, 13364 "pathSuffix": o.PathSuffix, 13365 "pathName": o.PathName, 13366 "zone": APIDefaultZone, 13367 "id": id, 13368 } 13369 13370 url, err := buildURL("{{.rootURL}}/{{.zone}}/{{.pathSuffix}}/{{.pathName}}/{{.id}}", pathBuildParameter) 13371 if err != nil { 13372 return nil, err 13373 } 13374 // build request body 13375 var body interface{} 13376 13377 // do request 13378 data, err := o.Client.Do(ctx, "GET", url, body) 13379 if err != nil { 13380 return nil, err 13381 } 13382 13383 // build results 13384 results, err := o.transformReadResults(data) 13385 if err != nil { 13386 return nil, err 13387 } 13388 return results.Zone, nil 13389 }