1/* 2Copyright 2018 Google LLC 3 4Licensed under the Apache License, Version 2.0 (the "License"); 5you may not use this file except in compliance with the License. 6You may obtain a copy of the License at 7 8https://www.apache.org/licenses/LICENSE-2.0 9 10Unless required by applicable law or agreed to in writing, software 11distributed under the License is distributed on an "AS IS" BASIS, 12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13See the License for the specific language governing permissions and 14limitations under the License. 15*/ 16 17package meta 18 19import ( 20 "reflect" 21 22 alpha "google.golang.org/api/compute/v0.alpha" 23 beta "google.golang.org/api/compute/v0.beta" 24 ga "google.golang.org/api/compute/v1" 25) 26 27// Version of the API (ga, alpha, beta). 28type Version string 29 30const ( 31 // NoGet prevents the Get() method from being generated. 32 NoGet = 1 << iota 33 // NoList prevents the List() method from being generated. 34 NoList = 1 << iota 35 // NoDelete prevents the Delete() method from being generated. 36 NoDelete = 1 << iota 37 // NoInsert prevents the Insert() method from being generated. 38 NoInsert = 1 << iota 39 // CustomOps specifies that an empty interface xxxOps will be generated to 40 // enable custom method calls to be attached to the generated service 41 // interface. 42 CustomOps = 1 << iota 43 // AggregatedList will generated a method for AggregatedList(). 44 AggregatedList = 1 << iota 45 46 // ReadOnly specifies that the given resource is read-only and should not 47 // have insert() or delete() methods generated for the wrapper. 48 ReadOnly = NoDelete | NoInsert 49 50 // VersionGA is the API version in compute.v1. 51 VersionGA Version = "ga" 52 // VersionAlpha is the API version in computer.v0.alpha. 53 VersionAlpha Version = "alpha" 54 // VersionBeta is the API version in computer.v0.beta. 55 VersionBeta Version = "beta" 56) 57 58// AllVersions is a list of all versions of the GCE API. 59var AllVersions = []Version{ 60 VersionGA, 61 VersionAlpha, 62 VersionBeta, 63} 64 65// AllServices are a list of all the services to generate code for. Keep 66// this list in lexiographical order by object type. 67var AllServices = []*ServiceInfo{ 68 { 69 Object: "Address", 70 Service: "Addresses", 71 Resource: "addresses", 72 keyType: Regional, 73 serviceType: reflect.TypeOf(&ga.AddressesService{}), 74 options: AggregatedList, 75 }, 76 { 77 Object: "Address", 78 Service: "Addresses", 79 Resource: "addresses", 80 version: VersionAlpha, 81 keyType: Regional, 82 serviceType: reflect.TypeOf(&alpha.AddressesService{}), 83 options: AggregatedList, 84 }, 85 { 86 Object: "Address", 87 Service: "Addresses", 88 Resource: "addresses", 89 version: VersionBeta, 90 keyType: Regional, 91 serviceType: reflect.TypeOf(&beta.AddressesService{}), 92 options: AggregatedList, 93 }, 94 { 95 Object: "Address", 96 Service: "GlobalAddresses", 97 Resource: "addresses", 98 version: VersionAlpha, 99 keyType: Global, 100 serviceType: reflect.TypeOf(&alpha.GlobalAddressesService{}), 101 }, 102 { 103 Object: "Address", 104 Service: "GlobalAddresses", 105 Resource: "addresses", 106 keyType: Global, 107 serviceType: reflect.TypeOf(&ga.GlobalAddressesService{}), 108 }, 109 { 110 Object: "BackendService", 111 Service: "BackendServices", 112 Resource: "backendServices", 113 keyType: Global, 114 serviceType: reflect.TypeOf(&ga.BackendServicesService{}), 115 additionalMethods: []string{ 116 "GetHealth", 117 "Patch", 118 "Update", 119 }, 120 }, 121 { 122 Object: "BackendService", 123 Service: "BackendServices", 124 Resource: "backendServices", 125 version: VersionBeta, 126 keyType: Global, 127 serviceType: reflect.TypeOf(&beta.BackendServicesService{}), 128 additionalMethods: []string{ 129 "Update", 130 "SetSecurityPolicy", 131 }, 132 }, 133 { 134 Object: "BackendService", 135 Service: "BackendServices", 136 Resource: "backendServices", 137 version: VersionAlpha, 138 keyType: Global, 139 serviceType: reflect.TypeOf(&alpha.BackendServicesService{}), 140 additionalMethods: []string{ 141 "Update", 142 "SetSecurityPolicy", 143 }, 144 }, 145 { 146 Object: "BackendService", 147 Service: "RegionBackendServices", 148 Resource: "backendServices", 149 version: VersionGA, 150 keyType: Regional, 151 serviceType: reflect.TypeOf(&ga.RegionBackendServicesService{}), 152 additionalMethods: []string{ 153 "GetHealth", 154 "Update", 155 }, 156 }, 157 { 158 Object: "BackendService", 159 Service: "RegionBackendServices", 160 Resource: "backendServices", 161 version: VersionAlpha, 162 keyType: Regional, 163 serviceType: reflect.TypeOf(&alpha.RegionBackendServicesService{}), 164 additionalMethods: []string{ 165 "GetHealth", 166 "Update", 167 }, 168 }, 169 { 170 Object: "BackendService", 171 Service: "RegionBackendServices", 172 Resource: "backendServices", 173 version: VersionBeta, 174 keyType: Regional, 175 serviceType: reflect.TypeOf(&beta.RegionBackendServicesService{}), 176 additionalMethods: []string{ 177 "GetHealth", 178 "Update", 179 }, 180 }, 181 { 182 Object: "Disk", 183 Service: "Disks", 184 Resource: "disks", 185 keyType: Zonal, 186 serviceType: reflect.TypeOf(&ga.DisksService{}), 187 additionalMethods: []string{ 188 "Resize", 189 }, 190 }, 191 { 192 Object: "Disk", 193 Service: "RegionDisks", 194 Resource: "disks", 195 version: VersionGA, 196 keyType: Regional, 197 serviceType: reflect.TypeOf(&ga.RegionDisksService{}), 198 additionalMethods: []string{ 199 "Resize", 200 }, 201 }, 202 { 203 Object: "Firewall", 204 Service: "Firewalls", 205 Resource: "firewalls", 206 version: VersionAlpha, 207 keyType: Global, 208 serviceType: reflect.TypeOf(&alpha.FirewallsService{}), 209 additionalMethods: []string{ 210 "Update", 211 }, 212 }, 213 { 214 Object: "Firewall", 215 Service: "Firewalls", 216 Resource: "firewalls", 217 version: VersionBeta, 218 keyType: Global, 219 serviceType: reflect.TypeOf(&beta.FirewallsService{}), 220 additionalMethods: []string{ 221 "Update", 222 }, 223 }, 224 { 225 Object: "Firewall", 226 Service: "Firewalls", 227 Resource: "firewalls", 228 keyType: Global, 229 serviceType: reflect.TypeOf(&ga.FirewallsService{}), 230 additionalMethods: []string{ 231 "Update", 232 }, 233 }, 234 { 235 Object: "ForwardingRule", 236 Service: "ForwardingRules", 237 Resource: "forwardingRules", 238 keyType: Regional, 239 serviceType: reflect.TypeOf(&ga.ForwardingRulesService{}), 240 additionalMethods: []string{ 241 "SetTarget", 242 }, 243 }, 244 { 245 Object: "ForwardingRule", 246 Service: "ForwardingRules", 247 Resource: "forwardingRules", 248 version: VersionAlpha, 249 keyType: Regional, 250 serviceType: reflect.TypeOf(&alpha.ForwardingRulesService{}), 251 additionalMethods: []string{ 252 "SetTarget", 253 }, 254 }, 255 { 256 Object: "ForwardingRule", 257 Service: "ForwardingRules", 258 Resource: "forwardingRules", 259 version: VersionBeta, 260 keyType: Regional, 261 serviceType: reflect.TypeOf(&beta.ForwardingRulesService{}), 262 additionalMethods: []string{ 263 "SetTarget", 264 }, 265 }, 266 { 267 Object: "ForwardingRule", 268 Service: "GlobalForwardingRules", 269 Resource: "forwardingRules", 270 version: VersionAlpha, 271 keyType: Global, 272 serviceType: reflect.TypeOf(&alpha.GlobalForwardingRulesService{}), 273 additionalMethods: []string{ 274 "SetTarget", 275 }, 276 }, 277 { 278 Object: "ForwardingRule", 279 Service: "GlobalForwardingRules", 280 Resource: "forwardingRules", 281 version: VersionBeta, 282 keyType: Global, 283 serviceType: reflect.TypeOf(&beta.GlobalForwardingRulesService{}), 284 additionalMethods: []string{ 285 "SetTarget", 286 }, 287 }, 288 { 289 Object: "ForwardingRule", 290 Service: "GlobalForwardingRules", 291 Resource: "forwardingRules", 292 keyType: Global, 293 serviceType: reflect.TypeOf(&ga.GlobalForwardingRulesService{}), 294 additionalMethods: []string{ 295 "SetTarget", 296 }, 297 }, 298 { 299 Object: "HealthCheck", 300 Service: "HealthChecks", 301 Resource: "healthChecks", 302 keyType: Global, 303 serviceType: reflect.TypeOf(&ga.HealthChecksService{}), 304 additionalMethods: []string{ 305 "Update", 306 }, 307 }, 308 { 309 Object: "HealthCheck", 310 Service: "HealthChecks", 311 Resource: "healthChecks", 312 version: VersionAlpha, 313 keyType: Global, 314 serviceType: reflect.TypeOf(&alpha.HealthChecksService{}), 315 additionalMethods: []string{ 316 "Update", 317 }, 318 }, 319 { 320 Object: "HealthCheck", 321 Service: "HealthChecks", 322 Resource: "healthChecks", 323 version: VersionBeta, 324 keyType: Global, 325 serviceType: reflect.TypeOf(&beta.HealthChecksService{}), 326 additionalMethods: []string{ 327 "Update", 328 }, 329 }, 330 { 331 Object: "HealthCheck", 332 Service: "RegionHealthChecks", 333 Resource: "healthChecks", 334 version: VersionAlpha, 335 keyType: Regional, 336 serviceType: reflect.TypeOf(&alpha.RegionHealthChecksService{}), 337 additionalMethods: []string{ 338 "Update", 339 }, 340 }, 341 { 342 Object: "HealthCheck", 343 Service: "RegionHealthChecks", 344 Resource: "healthChecks", 345 version: VersionBeta, 346 keyType: Regional, 347 serviceType: reflect.TypeOf(&beta.RegionHealthChecksService{}), 348 additionalMethods: []string{ 349 "Update", 350 }, 351 }, 352 { 353 Object: "HealthCheck", 354 Service: "RegionHealthChecks", 355 Resource: "healthChecks", 356 version: VersionGA, 357 keyType: Regional, 358 serviceType: reflect.TypeOf(&ga.RegionHealthChecksService{}), 359 additionalMethods: []string{ 360 "Update", 361 }, 362 }, 363 { 364 Object: "HttpHealthCheck", 365 Service: "HttpHealthChecks", 366 Resource: "httpHealthChecks", 367 keyType: Global, 368 serviceType: reflect.TypeOf(&ga.HttpHealthChecksService{}), 369 additionalMethods: []string{ 370 "Update", 371 }, 372 }, 373 { 374 Object: "HttpsHealthCheck", 375 Service: "HttpsHealthChecks", 376 Resource: "httpsHealthChecks", 377 keyType: Global, 378 serviceType: reflect.TypeOf(&ga.HttpsHealthChecksService{}), 379 additionalMethods: []string{ 380 "Update", 381 }, 382 }, 383 { 384 Object: "InstanceGroup", 385 Service: "InstanceGroups", 386 Resource: "instanceGroups", 387 keyType: Zonal, 388 serviceType: reflect.TypeOf(&ga.InstanceGroupsService{}), 389 additionalMethods: []string{ 390 "AddInstances", 391 "ListInstances", 392 "RemoveInstances", 393 "SetNamedPorts", 394 }, 395 }, 396 { 397 Object: "Instance", 398 Service: "Instances", 399 Resource: "instances", 400 keyType: Zonal, 401 serviceType: reflect.TypeOf(&ga.InstancesService{}), 402 additionalMethods: []string{ 403 "AttachDisk", 404 "DetachDisk", 405 }, 406 }, 407 { 408 Object: "Instance", 409 Service: "Instances", 410 Resource: "instances", 411 version: VersionBeta, 412 keyType: Zonal, 413 serviceType: reflect.TypeOf(&beta.InstancesService{}), 414 additionalMethods: []string{ 415 "AttachDisk", 416 "DetachDisk", 417 "UpdateNetworkInterface", 418 }, 419 }, 420 { 421 Object: "Instance", 422 Service: "Instances", 423 Resource: "instances", 424 version: VersionAlpha, 425 keyType: Zonal, 426 serviceType: reflect.TypeOf(&alpha.InstancesService{}), 427 additionalMethods: []string{ 428 "AttachDisk", 429 "DetachDisk", 430 "UpdateNetworkInterface", 431 }, 432 }, 433 { 434 Object: "Network", 435 Service: "Networks", 436 Resource: "networks", 437 version: VersionAlpha, 438 keyType: Global, 439 serviceType: reflect.TypeOf(&alpha.NetworksService{}), 440 }, 441 { 442 Object: "Network", 443 Service: "Networks", 444 Resource: "networks", 445 version: VersionBeta, 446 keyType: Global, 447 serviceType: reflect.TypeOf(&alpha.NetworksService{}), 448 }, 449 { 450 Object: "Network", 451 Service: "Networks", 452 Resource: "networks", 453 version: VersionGA, 454 keyType: Global, 455 serviceType: reflect.TypeOf(&alpha.NetworksService{}), 456 }, 457 { 458 Object: "NetworkEndpointGroup", 459 Service: "NetworkEndpointGroups", 460 Resource: "networkEndpointGroups", 461 version: VersionAlpha, 462 keyType: Zonal, 463 serviceType: reflect.TypeOf(&alpha.NetworkEndpointGroupsService{}), 464 additionalMethods: []string{ 465 "AttachNetworkEndpoints", 466 "DetachNetworkEndpoints", 467 "ListNetworkEndpoints", 468 }, 469 options: AggregatedList, 470 }, 471 { 472 Object: "NetworkEndpointGroup", 473 Service: "NetworkEndpointGroups", 474 Resource: "networkEndpointGroups", 475 version: VersionBeta, 476 keyType: Zonal, 477 serviceType: reflect.TypeOf(&beta.NetworkEndpointGroupsService{}), 478 additionalMethods: []string{ 479 "AttachNetworkEndpoints", 480 "DetachNetworkEndpoints", 481 "ListNetworkEndpoints", 482 }, 483 options: AggregatedList, 484 }, 485 { 486 Object: "NetworkEndpointGroup", 487 Service: "NetworkEndpointGroups", 488 Resource: "networkEndpointGroups", 489 version: VersionGA, 490 keyType: Zonal, 491 serviceType: reflect.TypeOf(&ga.NetworkEndpointGroupsService{}), 492 additionalMethods: []string{ 493 "AttachNetworkEndpoints", 494 "DetachNetworkEndpoints", 495 "ListNetworkEndpoints", 496 }, 497 options: AggregatedList, 498 }, 499 { 500 Object: "Project", 501 Service: "Projects", 502 Resource: "projects", 503 keyType: Global, 504 // Generate only the stub with no methods. 505 options: NoGet | NoList | NoInsert | NoDelete | CustomOps, 506 serviceType: reflect.TypeOf(&ga.ProjectsService{}), 507 }, 508 { 509 Object: "Region", 510 Service: "Regions", 511 Resource: "regions", 512 keyType: Global, 513 options: ReadOnly, 514 serviceType: reflect.TypeOf(&ga.RegionsService{}), 515 }, 516 { 517 Object: "Route", 518 Service: "Routes", 519 Resource: "routes", 520 keyType: Global, 521 serviceType: reflect.TypeOf(&ga.RoutesService{}), 522 }, 523 { 524 Object: "SecurityPolicy", 525 Service: "SecurityPolicies", 526 Resource: "securityPolicies", 527 version: VersionBeta, 528 keyType: Global, 529 serviceType: reflect.TypeOf(&beta.SecurityPoliciesService{}), 530 additionalMethods: []string{ 531 "AddRule", 532 "GetRule", 533 "Patch", 534 "PatchRule", 535 "RemoveRule", 536 }, 537 }, 538 { 539 Object: "SslCertificate", 540 Service: "SslCertificates", 541 Resource: "sslCertificates", 542 keyType: Global, 543 serviceType: reflect.TypeOf(&ga.SslCertificatesService{}), 544 }, 545 { 546 Object: "SslCertificate", 547 Service: "SslCertificates", 548 Resource: "sslCertificates", 549 version: VersionBeta, 550 keyType: Global, 551 serviceType: reflect.TypeOf(&beta.SslCertificatesService{}), 552 }, 553 { 554 Object: "SslCertificate", 555 Service: "SslCertificates", 556 Resource: "sslCertificates", 557 version: VersionAlpha, 558 keyType: Global, 559 serviceType: reflect.TypeOf(&alpha.SslCertificatesService{}), 560 }, 561 { 562 Object: "SslCertificate", 563 Service: "RegionSslCertificates", 564 Resource: "sslCertificates", 565 version: VersionAlpha, 566 keyType: Regional, 567 serviceType: reflect.TypeOf(&alpha.RegionSslCertificatesService{}), 568 }, 569 { 570 Object: "SslCertificate", 571 Service: "RegionSslCertificates", 572 Resource: "sslCertificates", 573 version: VersionBeta, 574 keyType: Regional, 575 serviceType: reflect.TypeOf(&beta.RegionSslCertificatesService{}), 576 }, 577 { 578 Object: "SslCertificate", 579 Service: "RegionSslCertificates", 580 Resource: "sslCertificates", 581 version: VersionGA, 582 keyType: Regional, 583 serviceType: reflect.TypeOf(&ga.RegionSslCertificatesService{}), 584 }, 585 { 586 Object: "SslPolicy", 587 Service: "SslPolicies", 588 Resource: "sslPolicies", 589 keyType: Global, 590 serviceType: reflect.TypeOf(&ga.SslPoliciesService{}), 591 options: NoList, // List() naming convention is different in GCE API for this resource 592 }, 593 { 594 Object: "Subnetwork", 595 Service: "Subnetworks", 596 Resource: "subnetworks", 597 version: VersionAlpha, 598 keyType: Regional, 599 serviceType: reflect.TypeOf(&alpha.SubnetworksService{}), 600 }, 601 { 602 Object: "Subnetwork", 603 Service: "Subnetworks", 604 Resource: "subnetworks", 605 version: VersionBeta, 606 keyType: Regional, 607 serviceType: reflect.TypeOf(&alpha.SubnetworksService{}), 608 }, 609 { 610 Object: "Subnetwork", 611 Service: "Subnetworks", 612 Resource: "subnetworks", 613 version: VersionGA, 614 keyType: Regional, 615 serviceType: reflect.TypeOf(&alpha.SubnetworksService{}), 616 }, 617 { 618 Object: "TargetHttpProxy", 619 Service: "TargetHttpProxies", 620 Resource: "targetHttpProxies", 621 version: VersionAlpha, 622 keyType: Global, 623 serviceType: reflect.TypeOf(&alpha.TargetHttpProxiesService{}), 624 additionalMethods: []string{ 625 "SetUrlMap", 626 }, 627 }, 628 { 629 Object: "TargetHttpProxy", 630 Service: "TargetHttpProxies", 631 Resource: "targetHttpProxies", 632 version: VersionBeta, 633 keyType: Global, 634 serviceType: reflect.TypeOf(&beta.TargetHttpProxiesService{}), 635 additionalMethods: []string{ 636 "SetUrlMap", 637 }, 638 }, 639 { 640 Object: "TargetHttpProxy", 641 Service: "TargetHttpProxies", 642 Resource: "targetHttpProxies", 643 keyType: Global, 644 serviceType: reflect.TypeOf(&ga.TargetHttpProxiesService{}), 645 additionalMethods: []string{ 646 "SetUrlMap", 647 }, 648 }, 649 { 650 Object: "TargetHttpProxy", 651 Service: "RegionTargetHttpProxies", 652 Resource: "targetHttpProxies", 653 version: VersionAlpha, 654 keyType: Regional, 655 serviceType: reflect.TypeOf(&alpha.RegionTargetHttpProxiesService{}), 656 additionalMethods: []string{ 657 "SetUrlMap", 658 }, 659 }, 660 { 661 Object: "TargetHttpProxy", 662 Service: "RegionTargetHttpProxies", 663 Resource: "targetHttpProxies", 664 version: VersionBeta, 665 keyType: Regional, 666 serviceType: reflect.TypeOf(&beta.RegionTargetHttpProxiesService{}), 667 additionalMethods: []string{ 668 "SetUrlMap", 669 }, 670 }, 671 { 672 Object: "TargetHttpProxy", 673 Service: "RegionTargetHttpProxies", 674 Resource: "targetHttpProxies", 675 version: VersionGA, 676 keyType: Regional, 677 serviceType: reflect.TypeOf(&ga.RegionTargetHttpProxiesService{}), 678 additionalMethods: []string{ 679 "SetUrlMap", 680 }, 681 }, 682 { 683 Object: "TargetHttpsProxy", 684 Service: "TargetHttpsProxies", 685 Resource: "targetHttpsProxies", 686 keyType: Global, 687 serviceType: reflect.TypeOf(&ga.TargetHttpsProxiesService{}), 688 additionalMethods: []string{ 689 "SetSslCertificates", 690 "SetSslPolicy", 691 "SetUrlMap", 692 }, 693 }, 694 { 695 Object: "TargetHttpsProxy", 696 Service: "TargetHttpsProxies", 697 Resource: "targetHttpsProxies", 698 version: VersionAlpha, 699 keyType: Global, 700 serviceType: reflect.TypeOf(&alpha.TargetHttpsProxiesService{}), 701 additionalMethods: []string{ 702 "SetSslCertificates", 703 "SetSslPolicy", 704 "SetUrlMap", 705 }, 706 }, 707 { 708 Object: "TargetHttpsProxy", 709 Service: "TargetHttpsProxies", 710 Resource: "targetHttpsProxies", 711 version: VersionBeta, 712 keyType: Global, 713 serviceType: reflect.TypeOf(&beta.TargetHttpsProxiesService{}), 714 additionalMethods: []string{ 715 "SetSslCertificates", 716 "SetSslPolicy", 717 "SetUrlMap", 718 }, 719 }, 720 { 721 Object: "TargetHttpsProxy", 722 Service: "RegionTargetHttpsProxies", 723 Resource: "targetHttpsProxies", 724 version: VersionAlpha, 725 keyType: Regional, 726 serviceType: reflect.TypeOf(&alpha.RegionTargetHttpsProxiesService{}), 727 additionalMethods: []string{ 728 "SetSslCertificates", 729 "SetUrlMap", 730 }, 731 }, 732 { 733 Object: "TargetHttpsProxy", 734 Service: "RegionTargetHttpsProxies", 735 Resource: "targetHttpsProxies", 736 version: VersionBeta, 737 keyType: Regional, 738 serviceType: reflect.TypeOf(&beta.RegionTargetHttpsProxiesService{}), 739 additionalMethods: []string{ 740 "SetSslCertificates", 741 "SetUrlMap", 742 }, 743 }, 744 { 745 Object: "TargetHttpsProxy", 746 Service: "RegionTargetHttpsProxies", 747 Resource: "targetHttpsProxies", 748 version: VersionGA, 749 keyType: Regional, 750 serviceType: reflect.TypeOf(&ga.RegionTargetHttpsProxiesService{}), 751 additionalMethods: []string{ 752 "SetSslCertificates", 753 "SetUrlMap", 754 }, 755 }, 756 { 757 Object: "TargetPool", 758 Service: "TargetPools", 759 Resource: "targetPools", 760 keyType: Regional, 761 serviceType: reflect.TypeOf(&ga.TargetPoolsService{}), 762 additionalMethods: []string{ 763 "AddInstance", 764 "RemoveInstance", 765 }, 766 }, 767 { 768 Object: "UrlMap", 769 Service: "UrlMaps", 770 Resource: "urlMaps", 771 version: VersionAlpha, 772 keyType: Global, 773 serviceType: reflect.TypeOf(&alpha.UrlMapsService{}), 774 additionalMethods: []string{ 775 "Update", 776 }, 777 }, 778 { 779 Object: "UrlMap", 780 Service: "UrlMaps", 781 Resource: "urlMaps", 782 version: VersionBeta, 783 keyType: Global, 784 serviceType: reflect.TypeOf(&beta.UrlMapsService{}), 785 additionalMethods: []string{ 786 "Update", 787 }, 788 }, 789 { 790 Object: "UrlMap", 791 Service: "UrlMaps", 792 Resource: "urlMaps", 793 keyType: Global, 794 serviceType: reflect.TypeOf(&ga.UrlMapsService{}), 795 additionalMethods: []string{ 796 "Update", 797 }, 798 }, 799 { 800 Object: "UrlMap", 801 Service: "RegionUrlMaps", 802 Resource: "urlMaps", 803 version: VersionAlpha, 804 keyType: Regional, 805 serviceType: reflect.TypeOf(&alpha.RegionUrlMapsService{}), 806 additionalMethods: []string{ 807 "Update", 808 }, 809 }, 810 { 811 Object: "UrlMap", 812 Service: "RegionUrlMaps", 813 Resource: "urlMaps", 814 version: VersionBeta, 815 keyType: Regional, 816 serviceType: reflect.TypeOf(&beta.RegionUrlMapsService{}), 817 additionalMethods: []string{ 818 "Update", 819 }, 820 }, 821 { 822 Object: "UrlMap", 823 Service: "RegionUrlMaps", 824 Resource: "urlMaps", 825 version: VersionGA, 826 keyType: Regional, 827 serviceType: reflect.TypeOf(&ga.RegionUrlMapsService{}), 828 additionalMethods: []string{ 829 "Update", 830 }, 831 }, 832 { 833 Object: "Zone", 834 Service: "Zones", 835 Resource: "zones", 836 keyType: Global, 837 options: ReadOnly, 838 serviceType: reflect.TypeOf(&ga.ZonesService{}), 839 }, 840} 841