"Fossies" - the Fresh Open Source Software Archive

Member "cells-3.0.3/vendor/google.golang.org/api/compute/v1/compute-gen.go" (30 Nov 2021, 2201447 Bytes) of package /linux/misc/pydio-cells-3.0.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Go source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 // Package compute provides access to the Compute Engine API.
    2 //
    3 // See https://developers.google.com/compute/docs/reference/latest/
    4 //
    5 // Usage example:
    6 //
    7 //   import "google.golang.org/api/compute/v1"
    8 //   ...
    9 //   computeService, err := compute.New(oauthHttpClient)
   10 package compute // import "google.golang.org/api/compute/v1"
   11 
   12 import (
   13     "bytes"
   14     "encoding/json"
   15     "errors"
   16     "fmt"
   17     context "golang.org/x/net/context"
   18     ctxhttp "golang.org/x/net/context/ctxhttp"
   19     gensupport "google.golang.org/api/gensupport"
   20     googleapi "google.golang.org/api/googleapi"
   21     "io"
   22     "net/http"
   23     "net/url"
   24     "strconv"
   25     "strings"
   26 )
   27 
   28 // Always reference these packages, just in case the auto-generated code
   29 // below doesn't.
   30 var _ = bytes.NewBuffer
   31 var _ = strconv.Itoa
   32 var _ = fmt.Sprintf
   33 var _ = json.NewDecoder
   34 var _ = io.Copy
   35 var _ = url.Parse
   36 var _ = gensupport.MarshalJSON
   37 var _ = googleapi.Version
   38 var _ = errors.New
   39 var _ = strings.Replace
   40 var _ = context.Canceled
   41 var _ = ctxhttp.Do
   42 
   43 const apiId = "compute:v1"
   44 const apiName = "compute"
   45 const apiVersion = "v1"
   46 const basePath = "https://www.googleapis.com/compute/v1/projects/"
   47 
   48 // OAuth2 scopes used by this API.
   49 const (
   50     // View and manage your data across Google Cloud Platform services
   51     CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   52 
   53     // View and manage your Google Compute Engine resources
   54     ComputeScope = "https://www.googleapis.com/auth/compute"
   55 
   56     // View your Google Compute Engine resources
   57     ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
   58 
   59     // Manage your data and permissions in Google Cloud Storage
   60     DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
   61 
   62     // View your data in Google Cloud Storage
   63     DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
   64 
   65     // Manage your data in Google Cloud Storage
   66     DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
   67 )
   68 
   69 func New(client *http.Client) (*Service, error) {
   70     if client == nil {
   71         return nil, errors.New("client is nil")
   72     }
   73     s := &Service{client: client, BasePath: basePath}
   74     s.Addresses = NewAddressesService(s)
   75     s.Autoscalers = NewAutoscalersService(s)
   76     s.BackendServices = NewBackendServicesService(s)
   77     s.DiskTypes = NewDiskTypesService(s)
   78     s.Disks = NewDisksService(s)
   79     s.Firewalls = NewFirewallsService(s)
   80     s.ForwardingRules = NewForwardingRulesService(s)
   81     s.GlobalAddresses = NewGlobalAddressesService(s)
   82     s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
   83     s.GlobalOperations = NewGlobalOperationsService(s)
   84     s.HealthChecks = NewHealthChecksService(s)
   85     s.HttpHealthChecks = NewHttpHealthChecksService(s)
   86     s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
   87     s.Images = NewImagesService(s)
   88     s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
   89     s.InstanceGroups = NewInstanceGroupsService(s)
   90     s.InstanceTemplates = NewInstanceTemplatesService(s)
   91     s.Instances = NewInstancesService(s)
   92     s.Licenses = NewLicensesService(s)
   93     s.MachineTypes = NewMachineTypesService(s)
   94     s.Networks = NewNetworksService(s)
   95     s.Projects = NewProjectsService(s)
   96     s.RegionAutoscalers = NewRegionAutoscalersService(s)
   97     s.RegionBackendServices = NewRegionBackendServicesService(s)
   98     s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
   99     s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
  100     s.RegionOperations = NewRegionOperationsService(s)
  101     s.Regions = NewRegionsService(s)
  102     s.Routers = NewRoutersService(s)
  103     s.Routes = NewRoutesService(s)
  104     s.Snapshots = NewSnapshotsService(s)
  105     s.SslCertificates = NewSslCertificatesService(s)
  106     s.Subnetworks = NewSubnetworksService(s)
  107     s.TargetHttpProxies = NewTargetHttpProxiesService(s)
  108     s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
  109     s.TargetInstances = NewTargetInstancesService(s)
  110     s.TargetPools = NewTargetPoolsService(s)
  111     s.TargetSslProxies = NewTargetSslProxiesService(s)
  112     s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
  113     s.UrlMaps = NewUrlMapsService(s)
  114     s.VpnTunnels = NewVpnTunnelsService(s)
  115     s.ZoneOperations = NewZoneOperationsService(s)
  116     s.Zones = NewZonesService(s)
  117     return s, nil
  118 }
  119 
  120 type Service struct {
  121     client    *http.Client
  122     BasePath  string // API endpoint base URL
  123     UserAgent string // optional additional User-Agent fragment
  124 
  125     Addresses *AddressesService
  126 
  127     Autoscalers *AutoscalersService
  128 
  129     BackendServices *BackendServicesService
  130 
  131     DiskTypes *DiskTypesService
  132 
  133     Disks *DisksService
  134 
  135     Firewalls *FirewallsService
  136 
  137     ForwardingRules *ForwardingRulesService
  138 
  139     GlobalAddresses *GlobalAddressesService
  140 
  141     GlobalForwardingRules *GlobalForwardingRulesService
  142 
  143     GlobalOperations *GlobalOperationsService
  144 
  145     HealthChecks *HealthChecksService
  146 
  147     HttpHealthChecks *HttpHealthChecksService
  148 
  149     HttpsHealthChecks *HttpsHealthChecksService
  150 
  151     Images *ImagesService
  152 
  153     InstanceGroupManagers *InstanceGroupManagersService
  154 
  155     InstanceGroups *InstanceGroupsService
  156 
  157     InstanceTemplates *InstanceTemplatesService
  158 
  159     Instances *InstancesService
  160 
  161     Licenses *LicensesService
  162 
  163     MachineTypes *MachineTypesService
  164 
  165     Networks *NetworksService
  166 
  167     Projects *ProjectsService
  168 
  169     RegionAutoscalers *RegionAutoscalersService
  170 
  171     RegionBackendServices *RegionBackendServicesService
  172 
  173     RegionInstanceGroupManagers *RegionInstanceGroupManagersService
  174 
  175     RegionInstanceGroups *RegionInstanceGroupsService
  176 
  177     RegionOperations *RegionOperationsService
  178 
  179     Regions *RegionsService
  180 
  181     Routers *RoutersService
  182 
  183     Routes *RoutesService
  184 
  185     Snapshots *SnapshotsService
  186 
  187     SslCertificates *SslCertificatesService
  188 
  189     Subnetworks *SubnetworksService
  190 
  191     TargetHttpProxies *TargetHttpProxiesService
  192 
  193     TargetHttpsProxies *TargetHttpsProxiesService
  194 
  195     TargetInstances *TargetInstancesService
  196 
  197     TargetPools *TargetPoolsService
  198 
  199     TargetSslProxies *TargetSslProxiesService
  200 
  201     TargetVpnGateways *TargetVpnGatewaysService
  202 
  203     UrlMaps *UrlMapsService
  204 
  205     VpnTunnels *VpnTunnelsService
  206 
  207     ZoneOperations *ZoneOperationsService
  208 
  209     Zones *ZonesService
  210 }
  211 
  212 func (s *Service) userAgent() string {
  213     if s.UserAgent == "" {
  214         return googleapi.UserAgent
  215     }
  216     return googleapi.UserAgent + " " + s.UserAgent
  217 }
  218 
  219 func NewAddressesService(s *Service) *AddressesService {
  220     rs := &AddressesService{s: s}
  221     return rs
  222 }
  223 
  224 type AddressesService struct {
  225     s *Service
  226 }
  227 
  228 func NewAutoscalersService(s *Service) *AutoscalersService {
  229     rs := &AutoscalersService{s: s}
  230     return rs
  231 }
  232 
  233 type AutoscalersService struct {
  234     s *Service
  235 }
  236 
  237 func NewBackendServicesService(s *Service) *BackendServicesService {
  238     rs := &BackendServicesService{s: s}
  239     return rs
  240 }
  241 
  242 type BackendServicesService struct {
  243     s *Service
  244 }
  245 
  246 func NewDiskTypesService(s *Service) *DiskTypesService {
  247     rs := &DiskTypesService{s: s}
  248     return rs
  249 }
  250 
  251 type DiskTypesService struct {
  252     s *Service
  253 }
  254 
  255 func NewDisksService(s *Service) *DisksService {
  256     rs := &DisksService{s: s}
  257     return rs
  258 }
  259 
  260 type DisksService struct {
  261     s *Service
  262 }
  263 
  264 func NewFirewallsService(s *Service) *FirewallsService {
  265     rs := &FirewallsService{s: s}
  266     return rs
  267 }
  268 
  269 type FirewallsService struct {
  270     s *Service
  271 }
  272 
  273 func NewForwardingRulesService(s *Service) *ForwardingRulesService {
  274     rs := &ForwardingRulesService{s: s}
  275     return rs
  276 }
  277 
  278 type ForwardingRulesService struct {
  279     s *Service
  280 }
  281 
  282 func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
  283     rs := &GlobalAddressesService{s: s}
  284     return rs
  285 }
  286 
  287 type GlobalAddressesService struct {
  288     s *Service
  289 }
  290 
  291 func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
  292     rs := &GlobalForwardingRulesService{s: s}
  293     return rs
  294 }
  295 
  296 type GlobalForwardingRulesService struct {
  297     s *Service
  298 }
  299 
  300 func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
  301     rs := &GlobalOperationsService{s: s}
  302     return rs
  303 }
  304 
  305 type GlobalOperationsService struct {
  306     s *Service
  307 }
  308 
  309 func NewHealthChecksService(s *Service) *HealthChecksService {
  310     rs := &HealthChecksService{s: s}
  311     return rs
  312 }
  313 
  314 type HealthChecksService struct {
  315     s *Service
  316 }
  317 
  318 func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
  319     rs := &HttpHealthChecksService{s: s}
  320     return rs
  321 }
  322 
  323 type HttpHealthChecksService struct {
  324     s *Service
  325 }
  326 
  327 func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
  328     rs := &HttpsHealthChecksService{s: s}
  329     return rs
  330 }
  331 
  332 type HttpsHealthChecksService struct {
  333     s *Service
  334 }
  335 
  336 func NewImagesService(s *Service) *ImagesService {
  337     rs := &ImagesService{s: s}
  338     return rs
  339 }
  340 
  341 type ImagesService struct {
  342     s *Service
  343 }
  344 
  345 func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
  346     rs := &InstanceGroupManagersService{s: s}
  347     return rs
  348 }
  349 
  350 type InstanceGroupManagersService struct {
  351     s *Service
  352 }
  353 
  354 func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
  355     rs := &InstanceGroupsService{s: s}
  356     return rs
  357 }
  358 
  359 type InstanceGroupsService struct {
  360     s *Service
  361 }
  362 
  363 func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
  364     rs := &InstanceTemplatesService{s: s}
  365     return rs
  366 }
  367 
  368 type InstanceTemplatesService struct {
  369     s *Service
  370 }
  371 
  372 func NewInstancesService(s *Service) *InstancesService {
  373     rs := &InstancesService{s: s}
  374     return rs
  375 }
  376 
  377 type InstancesService struct {
  378     s *Service
  379 }
  380 
  381 func NewLicensesService(s *Service) *LicensesService {
  382     rs := &LicensesService{s: s}
  383     return rs
  384 }
  385 
  386 type LicensesService struct {
  387     s *Service
  388 }
  389 
  390 func NewMachineTypesService(s *Service) *MachineTypesService {
  391     rs := &MachineTypesService{s: s}
  392     return rs
  393 }
  394 
  395 type MachineTypesService struct {
  396     s *Service
  397 }
  398 
  399 func NewNetworksService(s *Service) *NetworksService {
  400     rs := &NetworksService{s: s}
  401     return rs
  402 }
  403 
  404 type NetworksService struct {
  405     s *Service
  406 }
  407 
  408 func NewProjectsService(s *Service) *ProjectsService {
  409     rs := &ProjectsService{s: s}
  410     return rs
  411 }
  412 
  413 type ProjectsService struct {
  414     s *Service
  415 }
  416 
  417 func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
  418     rs := &RegionAutoscalersService{s: s}
  419     return rs
  420 }
  421 
  422 type RegionAutoscalersService struct {
  423     s *Service
  424 }
  425 
  426 func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
  427     rs := &RegionBackendServicesService{s: s}
  428     return rs
  429 }
  430 
  431 type RegionBackendServicesService struct {
  432     s *Service
  433 }
  434 
  435 func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
  436     rs := &RegionInstanceGroupManagersService{s: s}
  437     return rs
  438 }
  439 
  440 type RegionInstanceGroupManagersService struct {
  441     s *Service
  442 }
  443 
  444 func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
  445     rs := &RegionInstanceGroupsService{s: s}
  446     return rs
  447 }
  448 
  449 type RegionInstanceGroupsService struct {
  450     s *Service
  451 }
  452 
  453 func NewRegionOperationsService(s *Service) *RegionOperationsService {
  454     rs := &RegionOperationsService{s: s}
  455     return rs
  456 }
  457 
  458 type RegionOperationsService struct {
  459     s *Service
  460 }
  461 
  462 func NewRegionsService(s *Service) *RegionsService {
  463     rs := &RegionsService{s: s}
  464     return rs
  465 }
  466 
  467 type RegionsService struct {
  468     s *Service
  469 }
  470 
  471 func NewRoutersService(s *Service) *RoutersService {
  472     rs := &RoutersService{s: s}
  473     return rs
  474 }
  475 
  476 type RoutersService struct {
  477     s *Service
  478 }
  479 
  480 func NewRoutesService(s *Service) *RoutesService {
  481     rs := &RoutesService{s: s}
  482     return rs
  483 }
  484 
  485 type RoutesService struct {
  486     s *Service
  487 }
  488 
  489 func NewSnapshotsService(s *Service) *SnapshotsService {
  490     rs := &SnapshotsService{s: s}
  491     return rs
  492 }
  493 
  494 type SnapshotsService struct {
  495     s *Service
  496 }
  497 
  498 func NewSslCertificatesService(s *Service) *SslCertificatesService {
  499     rs := &SslCertificatesService{s: s}
  500     return rs
  501 }
  502 
  503 type SslCertificatesService struct {
  504     s *Service
  505 }
  506 
  507 func NewSubnetworksService(s *Service) *SubnetworksService {
  508     rs := &SubnetworksService{s: s}
  509     return rs
  510 }
  511 
  512 type SubnetworksService struct {
  513     s *Service
  514 }
  515 
  516 func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
  517     rs := &TargetHttpProxiesService{s: s}
  518     return rs
  519 }
  520 
  521 type TargetHttpProxiesService struct {
  522     s *Service
  523 }
  524 
  525 func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
  526     rs := &TargetHttpsProxiesService{s: s}
  527     return rs
  528 }
  529 
  530 type TargetHttpsProxiesService struct {
  531     s *Service
  532 }
  533 
  534 func NewTargetInstancesService(s *Service) *TargetInstancesService {
  535     rs := &TargetInstancesService{s: s}
  536     return rs
  537 }
  538 
  539 type TargetInstancesService struct {
  540     s *Service
  541 }
  542 
  543 func NewTargetPoolsService(s *Service) *TargetPoolsService {
  544     rs := &TargetPoolsService{s: s}
  545     return rs
  546 }
  547 
  548 type TargetPoolsService struct {
  549     s *Service
  550 }
  551 
  552 func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
  553     rs := &TargetSslProxiesService{s: s}
  554     return rs
  555 }
  556 
  557 type TargetSslProxiesService struct {
  558     s *Service
  559 }
  560 
  561 func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
  562     rs := &TargetVpnGatewaysService{s: s}
  563     return rs
  564 }
  565 
  566 type TargetVpnGatewaysService struct {
  567     s *Service
  568 }
  569 
  570 func NewUrlMapsService(s *Service) *UrlMapsService {
  571     rs := &UrlMapsService{s: s}
  572     return rs
  573 }
  574 
  575 type UrlMapsService struct {
  576     s *Service
  577 }
  578 
  579 func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
  580     rs := &VpnTunnelsService{s: s}
  581     return rs
  582 }
  583 
  584 type VpnTunnelsService struct {
  585     s *Service
  586 }
  587 
  588 func NewZoneOperationsService(s *Service) *ZoneOperationsService {
  589     rs := &ZoneOperationsService{s: s}
  590     return rs
  591 }
  592 
  593 type ZoneOperationsService struct {
  594     s *Service
  595 }
  596 
  597 func NewZonesService(s *Service) *ZonesService {
  598     rs := &ZonesService{s: s}
  599     return rs
  600 }
  601 
  602 type ZonesService struct {
  603     s *Service
  604 }
  605 
  606 // AccessConfig: An access configuration attached to an instance's
  607 // network interface. Only one access config per instance is supported.
  608 type AccessConfig struct {
  609     // Kind: [Output Only] Type of the resource. Always compute#accessConfig
  610     // for access configs.
  611     Kind string `json:"kind,omitempty"`
  612 
  613     // Name: Name of this access configuration.
  614     Name string `json:"name,omitempty"`
  615 
  616     // NatIP: An external IP address associated with this instance. Specify
  617     // an unused static external IP address available to the project or
  618     // leave this field undefined to use an IP from a shared ephemeral IP
  619     // address pool. If you specify a static external IP address, it must
  620     // live in the same region as the zone of the instance.
  621     NatIP string `json:"natIP,omitempty"`
  622 
  623     // Type: The type of configuration. The default and only option is
  624     // ONE_TO_ONE_NAT.
  625     //
  626     // Possible values:
  627     //   "ONE_TO_ONE_NAT" (default)
  628     Type string `json:"type,omitempty"`
  629 
  630     // ForceSendFields is a list of field names (e.g. "Kind") to
  631     // unconditionally include in API requests. By default, fields with
  632     // empty values are omitted from API requests. However, any non-pointer,
  633     // non-interface field appearing in ForceSendFields will be sent to the
  634     // server regardless of whether the field is empty or not. This may be
  635     // used to include empty fields in Patch requests.
  636     ForceSendFields []string `json:"-"`
  637 
  638     // NullFields is a list of field names (e.g. "Kind") to include in API
  639     // requests with the JSON null value. By default, fields with empty
  640     // values are omitted from API requests. However, any field with an
  641     // empty value appearing in NullFields will be sent to the server as
  642     // null. It is an error if a field in this list has a non-empty value.
  643     // This may be used to include null fields in Patch requests.
  644     NullFields []string `json:"-"`
  645 }
  646 
  647 func (s *AccessConfig) MarshalJSON() ([]byte, error) {
  648     type noMethod AccessConfig
  649     raw := noMethod(*s)
  650     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  651 }
  652 
  653 // Address: A reserved address resource.
  654 type Address struct {
  655     // Address: The static external IP address represented by this resource.
  656     Address string `json:"address,omitempty"`
  657 
  658     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
  659     // format.
  660     CreationTimestamp string `json:"creationTimestamp,omitempty"`
  661 
  662     // Description: An optional description of this resource. Provide this
  663     // property when you create the resource.
  664     Description string `json:"description,omitempty"`
  665 
  666     // Id: [Output Only] The unique identifier for the resource. This
  667     // identifier is defined by the server.
  668     Id uint64 `json:"id,omitempty,string"`
  669 
  670     // Kind: [Output Only] Type of the resource. Always compute#address for
  671     // addresses.
  672     Kind string `json:"kind,omitempty"`
  673 
  674     // Name: Name of the resource. Provided by the client when the resource
  675     // is created. The name must be 1-63 characters long, and comply with
  676     // RFC1035. Specifically, the name must be 1-63 characters long and
  677     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
  678     // the first character must be a lowercase letter, and all following
  679     // characters must be a dash, lowercase letter, or digit, except the
  680     // last character, which cannot be a dash.
  681     Name string `json:"name,omitempty"`
  682 
  683     // Region: [Output Only] URL of the region where the regional address
  684     // resides. This field is not applicable to global addresses.
  685     Region string `json:"region,omitempty"`
  686 
  687     // SelfLink: [Output Only] Server-defined URL for the resource.
  688     SelfLink string `json:"selfLink,omitempty"`
  689 
  690     // Status: [Output Only] The status of the address, which can be either
  691     // IN_USE or RESERVED. An address that is RESERVED is currently reserved
  692     // and available to use. An IN_USE address is currently being used by
  693     // another resource and is not available.
  694     //
  695     // Possible values:
  696     //   "IN_USE"
  697     //   "RESERVED"
  698     Status string `json:"status,omitempty"`
  699 
  700     // Users: [Output Only] The URLs of the resources that are using this
  701     // address.
  702     Users []string `json:"users,omitempty"`
  703 
  704     // ServerResponse contains the HTTP response code and headers from the
  705     // server.
  706     googleapi.ServerResponse `json:"-"`
  707 
  708     // ForceSendFields is a list of field names (e.g. "Address") to
  709     // unconditionally include in API requests. By default, fields with
  710     // empty values are omitted from API requests. However, any non-pointer,
  711     // non-interface field appearing in ForceSendFields will be sent to the
  712     // server regardless of whether the field is empty or not. This may be
  713     // used to include empty fields in Patch requests.
  714     ForceSendFields []string `json:"-"`
  715 
  716     // NullFields is a list of field names (e.g. "Address") to include in
  717     // API requests with the JSON null value. By default, fields with empty
  718     // values are omitted from API requests. However, any field with an
  719     // empty value appearing in NullFields will be sent to the server as
  720     // null. It is an error if a field in this list has a non-empty value.
  721     // This may be used to include null fields in Patch requests.
  722     NullFields []string `json:"-"`
  723 }
  724 
  725 func (s *Address) MarshalJSON() ([]byte, error) {
  726     type noMethod Address
  727     raw := noMethod(*s)
  728     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  729 }
  730 
  731 type AddressAggregatedList struct {
  732     // Id: [Output Only] Unique identifier for the resource; defined by the
  733     // server.
  734     Id string `json:"id,omitempty"`
  735 
  736     // Items: [Output Only] A map of scoped address lists.
  737     Items map[string]AddressesScopedList `json:"items,omitempty"`
  738 
  739     // Kind: [Output Only] Type of resource. Always
  740     // compute#addressAggregatedList for aggregated lists of addresses.
  741     Kind string `json:"kind,omitempty"`
  742 
  743     // NextPageToken: [Output Only] This token allows you to get the next
  744     // page of results for list requests. If the number of results is larger
  745     // than maxResults, use the nextPageToken as a value for the query
  746     // parameter pageToken in the next list request. Subsequent list
  747     // requests will have their own nextPageToken to continue paging through
  748     // the results.
  749     NextPageToken string `json:"nextPageToken,omitempty"`
  750 
  751     // SelfLink: [Output Only] Server-defined URL for this resource.
  752     SelfLink string `json:"selfLink,omitempty"`
  753 
  754     // ServerResponse contains the HTTP response code and headers from the
  755     // server.
  756     googleapi.ServerResponse `json:"-"`
  757 
  758     // ForceSendFields is a list of field names (e.g. "Id") to
  759     // unconditionally include in API requests. By default, fields with
  760     // empty values are omitted from API requests. However, any non-pointer,
  761     // non-interface field appearing in ForceSendFields will be sent to the
  762     // server regardless of whether the field is empty or not. This may be
  763     // used to include empty fields in Patch requests.
  764     ForceSendFields []string `json:"-"`
  765 
  766     // NullFields is a list of field names (e.g. "Id") to include in API
  767     // requests with the JSON null value. By default, fields with empty
  768     // values are omitted from API requests. However, any field with an
  769     // empty value appearing in NullFields will be sent to the server as
  770     // null. It is an error if a field in this list has a non-empty value.
  771     // This may be used to include null fields in Patch requests.
  772     NullFields []string `json:"-"`
  773 }
  774 
  775 func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
  776     type noMethod AddressAggregatedList
  777     raw := noMethod(*s)
  778     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  779 }
  780 
  781 // AddressList: Contains a list of addresses.
  782 type AddressList struct {
  783     // Id: [Output Only] The unique identifier for the resource. This
  784     // identifier is defined by the server.
  785     Id string `json:"id,omitempty"`
  786 
  787     // Items: [Output Only] A list of addresses.
  788     Items []*Address `json:"items,omitempty"`
  789 
  790     // Kind: [Output Only] Type of resource. Always compute#addressList for
  791     // lists of addresses.
  792     Kind string `json:"kind,omitempty"`
  793 
  794     // NextPageToken: [Output Only] This token allows you to get the next
  795     // page of results for list requests. If the number of results is larger
  796     // than maxResults, use the nextPageToken as a value for the query
  797     // parameter pageToken in the next list request. Subsequent list
  798     // requests will have their own nextPageToken to continue paging through
  799     // the results.
  800     NextPageToken string `json:"nextPageToken,omitempty"`
  801 
  802     // SelfLink: [Output Only] Server-defined URL for the resource.
  803     SelfLink string `json:"selfLink,omitempty"`
  804 
  805     // ServerResponse contains the HTTP response code and headers from the
  806     // server.
  807     googleapi.ServerResponse `json:"-"`
  808 
  809     // ForceSendFields is a list of field names (e.g. "Id") to
  810     // unconditionally include in API requests. By default, fields with
  811     // empty values are omitted from API requests. However, any non-pointer,
  812     // non-interface field appearing in ForceSendFields will be sent to the
  813     // server regardless of whether the field is empty or not. This may be
  814     // used to include empty fields in Patch requests.
  815     ForceSendFields []string `json:"-"`
  816 
  817     // NullFields is a list of field names (e.g. "Id") to include in API
  818     // requests with the JSON null value. By default, fields with empty
  819     // values are omitted from API requests. However, any field with an
  820     // empty value appearing in NullFields will be sent to the server as
  821     // null. It is an error if a field in this list has a non-empty value.
  822     // This may be used to include null fields in Patch requests.
  823     NullFields []string `json:"-"`
  824 }
  825 
  826 func (s *AddressList) MarshalJSON() ([]byte, error) {
  827     type noMethod AddressList
  828     raw := noMethod(*s)
  829     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  830 }
  831 
  832 type AddressesScopedList struct {
  833     // Addresses: [Output Only] List of addresses contained in this scope.
  834     Addresses []*Address `json:"addresses,omitempty"`
  835 
  836     // Warning: [Output Only] Informational warning which replaces the list
  837     // of addresses when the list is empty.
  838     Warning *AddressesScopedListWarning `json:"warning,omitempty"`
  839 
  840     // ForceSendFields is a list of field names (e.g. "Addresses") to
  841     // unconditionally include in API requests. By default, fields with
  842     // empty values are omitted from API requests. However, any non-pointer,
  843     // non-interface field appearing in ForceSendFields will be sent to the
  844     // server regardless of whether the field is empty or not. This may be
  845     // used to include empty fields in Patch requests.
  846     ForceSendFields []string `json:"-"`
  847 
  848     // NullFields is a list of field names (e.g. "Addresses") to include in
  849     // API requests with the JSON null value. By default, fields with empty
  850     // values are omitted from API requests. However, any field with an
  851     // empty value appearing in NullFields will be sent to the server as
  852     // null. It is an error if a field in this list has a non-empty value.
  853     // This may be used to include null fields in Patch requests.
  854     NullFields []string `json:"-"`
  855 }
  856 
  857 func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
  858     type noMethod AddressesScopedList
  859     raw := noMethod(*s)
  860     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  861 }
  862 
  863 // AddressesScopedListWarning: [Output Only] Informational warning which
  864 // replaces the list of addresses when the list is empty.
  865 type AddressesScopedListWarning struct {
  866     // Code: [Output Only] A warning code, if applicable. For example,
  867     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
  868     // the response.
  869     //
  870     // Possible values:
  871     //   "CLEANUP_FAILED"
  872     //   "DEPRECATED_RESOURCE_USED"
  873     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
  874     //   "FIELD_VALUE_OVERRIDEN"
  875     //   "INJECTED_KERNELS_DEPRECATED"
  876     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
  877     //   "NEXT_HOP_CANNOT_IP_FORWARD"
  878     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
  879     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
  880     //   "NEXT_HOP_NOT_RUNNING"
  881     //   "NOT_CRITICAL_ERROR"
  882     //   "NO_RESULTS_ON_PAGE"
  883     //   "REQUIRED_TOS_AGREEMENT"
  884     //   "RESOURCE_NOT_DELETED"
  885     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
  886     //   "UNREACHABLE"
  887     Code string `json:"code,omitempty"`
  888 
  889     // Data: [Output Only] Metadata about this warning in key: value format.
  890     // For example:
  891     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
  892     Data []*AddressesScopedListWarningData `json:"data,omitempty"`
  893 
  894     // Message: [Output Only] A human-readable description of the warning
  895     // code.
  896     Message string `json:"message,omitempty"`
  897 
  898     // ForceSendFields is a list of field names (e.g. "Code") to
  899     // unconditionally include in API requests. By default, fields with
  900     // empty values are omitted from API requests. However, any non-pointer,
  901     // non-interface field appearing in ForceSendFields will be sent to the
  902     // server regardless of whether the field is empty or not. This may be
  903     // used to include empty fields in Patch requests.
  904     ForceSendFields []string `json:"-"`
  905 
  906     // NullFields is a list of field names (e.g. "Code") to include in API
  907     // requests with the JSON null value. By default, fields with empty
  908     // values are omitted from API requests. However, any field with an
  909     // empty value appearing in NullFields will be sent to the server as
  910     // null. It is an error if a field in this list has a non-empty value.
  911     // This may be used to include null fields in Patch requests.
  912     NullFields []string `json:"-"`
  913 }
  914 
  915 func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
  916     type noMethod AddressesScopedListWarning
  917     raw := noMethod(*s)
  918     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  919 }
  920 
  921 type AddressesScopedListWarningData struct {
  922     // Key: [Output Only] A key that provides more detail on the warning
  923     // being returned. For example, for warnings where there are no results
  924     // in a list request for a particular zone, this key might be scope and
  925     // the key value might be the zone name. Other examples might be a key
  926     // indicating a deprecated resource and a suggested replacement, or a
  927     // warning about invalid network settings (for example, if an instance
  928     // attempts to perform IP forwarding but is not enabled for IP
  929     // forwarding).
  930     Key string `json:"key,omitempty"`
  931 
  932     // Value: [Output Only] A warning data value corresponding to the key.
  933     Value string `json:"value,omitempty"`
  934 
  935     // ForceSendFields is a list of field names (e.g. "Key") to
  936     // unconditionally include in API requests. By default, fields with
  937     // empty values are omitted from API requests. However, any non-pointer,
  938     // non-interface field appearing in ForceSendFields will be sent to the
  939     // server regardless of whether the field is empty or not. This may be
  940     // used to include empty fields in Patch requests.
  941     ForceSendFields []string `json:"-"`
  942 
  943     // NullFields is a list of field names (e.g. "Key") to include in API
  944     // requests with the JSON null value. By default, fields with empty
  945     // values are omitted from API requests. However, any field with an
  946     // empty value appearing in NullFields will be sent to the server as
  947     // null. It is an error if a field in this list has a non-empty value.
  948     // This may be used to include null fields in Patch requests.
  949     NullFields []string `json:"-"`
  950 }
  951 
  952 func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
  953     type noMethod AddressesScopedListWarningData
  954     raw := noMethod(*s)
  955     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  956 }
  957 
  958 // AttachedDisk: An instance-attached disk resource.
  959 type AttachedDisk struct {
  960     // AutoDelete: Specifies whether the disk will be auto-deleted when the
  961     // instance is deleted (but not when the disk is detached from the
  962     // instance).
  963     AutoDelete bool `json:"autoDelete,omitempty"`
  964 
  965     // Boot: Indicates that this is a boot disk. The virtual machine will
  966     // use the first partition of the disk for its root filesystem.
  967     Boot bool `json:"boot,omitempty"`
  968 
  969     // DeviceName: Specifies a unique device name of your choice that is
  970     // reflected into the /dev/disk/by-id/google-* tree of a Linux operating
  971     // system running within the instance. This name can be used to
  972     // reference the device for mounting, resizing, and so on, from within
  973     // the instance.
  974     //
  975     // If not specified, the server chooses a default device name to apply
  976     // to this disk, in the form persistent-disks-x, where x is a number
  977     // assigned by Google Compute Engine. This field is only applicable for
  978     // persistent disks.
  979     DeviceName string `json:"deviceName,omitempty"`
  980 
  981     // DiskEncryptionKey: Encrypts or decrypts a disk using a
  982     // customer-supplied encryption key.
  983     //
  984     // If you are creating a new disk, this field encrypts the new disk
  985     // using an encryption key that you provide. If you are attaching an
  986     // existing disk that is already encrypted, this field decrypts the disk
  987     // using the customer-supplied encryption key.
  988     //
  989     // If you encrypt a disk using a customer-supplied key, you must provide
  990     // the same key again when you attempt to use this resource at a later
  991     // time. For example, you must provide the key when you create a
  992     // snapshot or an image from the disk or when you attach the disk to a
  993     // virtual machine instance.
  994     //
  995     // If you do not provide an encryption key, then the disk will be
  996     // encrypted using an automatically generated key and you do not need to
  997     // provide a key to use the disk later.
  998     //
  999     // Instance templates do not store customer-supplied encryption keys, so
 1000     // you cannot use your own keys to encrypt disks in a managed instance
 1001     // group.
 1002     DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
 1003 
 1004     // Index: Assigns a zero-based index to this disk, where 0 is reserved
 1005     // for the boot disk. For example, if you have many disks attached to an
 1006     // instance, each disk would have a unique index number. If not
 1007     // specified, the server will choose an appropriate value.
 1008     Index int64 `json:"index,omitempty"`
 1009 
 1010     // InitializeParams: [Input Only] Specifies the parameters for a new
 1011     // disk that will be created alongside the new instance. Use
 1012     // initialization parameters to create boot disks or local SSDs attached
 1013     // to the new instance.
 1014     //
 1015     // This property is mutually exclusive with the source property; you can
 1016     // only define one or the other, but not both.
 1017     InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
 1018 
 1019     // Interface: Specifies the disk interface to use for attaching this
 1020     // disk, which is either SCSI or NVME. The default is SCSI. Persistent
 1021     // disks must always use SCSI and the request will fail if you attempt
 1022     // to attach a persistent disk in any other format than SCSI. Local SSDs
 1023     // can use either NVME or SCSI. For performance characteristics of SCSI
 1024     // over NVMe, see Local SSD performance.
 1025     //
 1026     // Possible values:
 1027     //   "NVME"
 1028     //   "SCSI"
 1029     Interface string `json:"interface,omitempty"`
 1030 
 1031     // Kind: [Output Only] Type of the resource. Always compute#attachedDisk
 1032     // for attached disks.
 1033     Kind string `json:"kind,omitempty"`
 1034 
 1035     // Licenses: [Output Only] Any valid publicly visible licenses.
 1036     Licenses []string `json:"licenses,omitempty"`
 1037 
 1038     // Mode: The mode in which to attach this disk, either READ_WRITE or
 1039     // READ_ONLY. If not specified, the default is to attach the disk in
 1040     // READ_WRITE mode.
 1041     //
 1042     // Possible values:
 1043     //   "READ_ONLY"
 1044     //   "READ_WRITE"
 1045     Mode string `json:"mode,omitempty"`
 1046 
 1047     // Source: Specifies a valid partial or full URL to an existing
 1048     // Persistent Disk resource. When creating a new instance, one of
 1049     // initializeParams.sourceImage or disks.source is required.
 1050     //
 1051     // If desired, you can also attach existing non-root persistent disks
 1052     // using this property. This field is only applicable for persistent
 1053     // disks.
 1054     //
 1055     // Note that for InstanceTemplate, specify the disk name, not the URL
 1056     // for the disk.
 1057     Source string `json:"source,omitempty"`
 1058 
 1059     // Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
 1060     // If not specified, the default is PERSISTENT.
 1061     //
 1062     // Possible values:
 1063     //   "PERSISTENT"
 1064     //   "SCRATCH"
 1065     Type string `json:"type,omitempty"`
 1066 
 1067     // ForceSendFields is a list of field names (e.g. "AutoDelete") to
 1068     // unconditionally include in API requests. By default, fields with
 1069     // empty values are omitted from API requests. However, any non-pointer,
 1070     // non-interface field appearing in ForceSendFields will be sent to the
 1071     // server regardless of whether the field is empty or not. This may be
 1072     // used to include empty fields in Patch requests.
 1073     ForceSendFields []string `json:"-"`
 1074 
 1075     // NullFields is a list of field names (e.g. "AutoDelete") to include in
 1076     // API requests with the JSON null value. By default, fields with empty
 1077     // values are omitted from API requests. However, any field with an
 1078     // empty value appearing in NullFields will be sent to the server as
 1079     // null. It is an error if a field in this list has a non-empty value.
 1080     // This may be used to include null fields in Patch requests.
 1081     NullFields []string `json:"-"`
 1082 }
 1083 
 1084 func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
 1085     type noMethod AttachedDisk
 1086     raw := noMethod(*s)
 1087     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1088 }
 1089 
 1090 // AttachedDiskInitializeParams: [Input Only] Specifies the parameters
 1091 // for a new disk that will be created alongside the new instance. Use
 1092 // initialization parameters to create boot disks or local SSDs attached
 1093 // to the new instance.
 1094 //
 1095 // This property is mutually exclusive with the source property; you can
 1096 // only define one or the other, but not both.
 1097 type AttachedDiskInitializeParams struct {
 1098     // DiskName: Specifies the disk name. If not specified, the default is
 1099     // to use the name of the instance.
 1100     DiskName string `json:"diskName,omitempty"`
 1101 
 1102     // DiskSizeGb: Specifies the size of the disk in base-2 GB.
 1103     DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
 1104 
 1105     // DiskType: Specifies the disk type to use to create the instance. If
 1106     // not specified, the default is pd-standard, specified using the full
 1107     // URL. For
 1108     // example:
 1109     //
 1110     // https://www.googleapis.com/compute/v1/projects/project/zones
 1111     // /zone/diskTypes/pd-standard
 1112     //
 1113     // Other values include pd-ssd and local-ssd. If you define this field,
 1114     // you can provide either the full or partial URL. For example, the
 1115     // following are valid values:
 1116     // -
 1117     // https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
 1118     // - projects/project/zones/zone/diskTypes/diskType
 1119     // - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
 1120     // is the name of the disk type, not URL.
 1121     DiskType string `json:"diskType,omitempty"`
 1122 
 1123     // SourceImage: The source image to create this disk. When creating a
 1124     // new instance, one of initializeParams.sourceImage or disks.source is
 1125     // required.
 1126     //
 1127     // To create a disk with one of the public operating system images,
 1128     // specify the image by its family name. For example, specify
 1129     // family/debian-8 to use the latest Debian 8
 1130     // image:
 1131     //
 1132     // projects/debian-cloud/global/images/family/debian-8
 1133     //
 1134     // Alternatively, use a specific version of a public operating system
 1135     // image:
 1136     //
 1137     // projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
 1138     //
 1139     // To create a disk with a private image that you created, specify the
 1140     // image name in the following format:
 1141     //
 1142     // global/images/my-private-image
 1143     //
 1144     // You can also specify a private image by its image family, which
 1145     // returns the latest version of the image in that family. Replace the
 1146     // image name with
 1147     // family/family-name:
 1148     //
 1149     // global/images/family/my-private-family
 1150     //
 1151     // If the source image is deleted later, this field will not be set.
 1152     SourceImage string `json:"sourceImage,omitempty"`
 1153 
 1154     // SourceImageEncryptionKey: The customer-supplied encryption key of the
 1155     // source image. Required if the source image is protected by a
 1156     // customer-supplied encryption key.
 1157     //
 1158     // Instance templates do not store customer-supplied encryption keys, so
 1159     // you cannot create disks for instances in a managed instance group if
 1160     // the source images are encrypted with your own keys.
 1161     SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
 1162 
 1163     // ForceSendFields is a list of field names (e.g. "DiskName") to
 1164     // unconditionally include in API requests. By default, fields with
 1165     // empty values are omitted from API requests. However, any non-pointer,
 1166     // non-interface field appearing in ForceSendFields will be sent to the
 1167     // server regardless of whether the field is empty or not. This may be
 1168     // used to include empty fields in Patch requests.
 1169     ForceSendFields []string `json:"-"`
 1170 
 1171     // NullFields is a list of field names (e.g. "DiskName") to include in
 1172     // API requests with the JSON null value. By default, fields with empty
 1173     // values are omitted from API requests. However, any field with an
 1174     // empty value appearing in NullFields will be sent to the server as
 1175     // null. It is an error if a field in this list has a non-empty value.
 1176     // This may be used to include null fields in Patch requests.
 1177     NullFields []string `json:"-"`
 1178 }
 1179 
 1180 func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
 1181     type noMethod AttachedDiskInitializeParams
 1182     raw := noMethod(*s)
 1183     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1184 }
 1185 
 1186 // Autoscaler: Represents an Autoscaler resource. Autoscalers allow you
 1187 // to automatically scale virtual machine instances in managed instance
 1188 // groups according to an autoscaling policy that you define. For more
 1189 // information, read Autoscaling Groups of Instances.
 1190 type Autoscaler struct {
 1191     // AutoscalingPolicy: The configuration parameters for the autoscaling
 1192     // algorithm. You can define one or more of the policies for an
 1193     // autoscaler: cpuUtilization, customMetricUtilizations, and
 1194     // loadBalancingUtilization.
 1195     //
 1196     // If none of these are specified, the default will be to autoscale
 1197     // based on cpuUtilization to 0.6 or 60%.
 1198     AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
 1199 
 1200     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 1201     // format.
 1202     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 1203 
 1204     // Description: An optional description of this resource. Provide this
 1205     // property when you create the resource.
 1206     Description string `json:"description,omitempty"`
 1207 
 1208     // Id: [Output Only] The unique identifier for the resource. This
 1209     // identifier is defined by the server.
 1210     Id uint64 `json:"id,omitempty,string"`
 1211 
 1212     // Kind: [Output Only] Type of the resource. Always compute#autoscaler
 1213     // for autoscalers.
 1214     Kind string `json:"kind,omitempty"`
 1215 
 1216     // Name: Name of the resource. Provided by the client when the resource
 1217     // is created. The name must be 1-63 characters long, and comply with
 1218     // RFC1035. Specifically, the name must be 1-63 characters long and
 1219     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 1220     // the first character must be a lowercase letter, and all following
 1221     // characters must be a dash, lowercase letter, or digit, except the
 1222     // last character, which cannot be a dash.
 1223     Name string `json:"name,omitempty"`
 1224 
 1225     // Region: [Output Only] URL of the region where the instance group
 1226     // resides (for autoscalers living in regional scope).
 1227     Region string `json:"region,omitempty"`
 1228 
 1229     // SelfLink: [Output Only] Server-defined URL for the resource.
 1230     SelfLink string `json:"selfLink,omitempty"`
 1231 
 1232     // Target: URL of the managed instance group that this autoscaler will
 1233     // scale.
 1234     Target string `json:"target,omitempty"`
 1235 
 1236     // Zone: [Output Only] URL of the zone where the instance group resides
 1237     // (for autoscalers living in zonal scope).
 1238     Zone string `json:"zone,omitempty"`
 1239 
 1240     // ServerResponse contains the HTTP response code and headers from the
 1241     // server.
 1242     googleapi.ServerResponse `json:"-"`
 1243 
 1244     // ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
 1245     // to unconditionally include in API requests. By default, fields with
 1246     // empty values are omitted from API requests. However, any non-pointer,
 1247     // non-interface field appearing in ForceSendFields will be sent to the
 1248     // server regardless of whether the field is empty or not. This may be
 1249     // used to include empty fields in Patch requests.
 1250     ForceSendFields []string `json:"-"`
 1251 
 1252     // NullFields is a list of field names (e.g. "AutoscalingPolicy") to
 1253     // include in API requests with the JSON null value. By default, fields
 1254     // with empty values are omitted from API requests. However, any field
 1255     // with an empty value appearing in NullFields will be sent to the
 1256     // server as null. It is an error if a field in this list has a
 1257     // non-empty value. This may be used to include null fields in Patch
 1258     // requests.
 1259     NullFields []string `json:"-"`
 1260 }
 1261 
 1262 func (s *Autoscaler) MarshalJSON() ([]byte, error) {
 1263     type noMethod Autoscaler
 1264     raw := noMethod(*s)
 1265     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1266 }
 1267 
 1268 type AutoscalerAggregatedList struct {
 1269     // Id: [Output Only] The unique identifier for the resource. This
 1270     // identifier is defined by the server.
 1271     Id string `json:"id,omitempty"`
 1272 
 1273     // Items: A map of scoped autoscaler lists.
 1274     Items map[string]AutoscalersScopedList `json:"items,omitempty"`
 1275 
 1276     // Kind: [Output Only] Type of resource. Always
 1277     // compute#autoscalerAggregatedList for aggregated lists of autoscalers.
 1278     Kind string `json:"kind,omitempty"`
 1279 
 1280     // NextPageToken: [Output Only] This token allows you to get the next
 1281     // page of results for list requests. If the number of results is larger
 1282     // than maxResults, use the nextPageToken as a value for the query
 1283     // parameter pageToken in the next list request. Subsequent list
 1284     // requests will have their own nextPageToken to continue paging through
 1285     // the results.
 1286     NextPageToken string `json:"nextPageToken,omitempty"`
 1287 
 1288     // SelfLink: [Output Only] Server-defined URL for this resource.
 1289     SelfLink string `json:"selfLink,omitempty"`
 1290 
 1291     // ServerResponse contains the HTTP response code and headers from the
 1292     // server.
 1293     googleapi.ServerResponse `json:"-"`
 1294 
 1295     // ForceSendFields is a list of field names (e.g. "Id") to
 1296     // unconditionally include in API requests. By default, fields with
 1297     // empty values are omitted from API requests. However, any non-pointer,
 1298     // non-interface field appearing in ForceSendFields will be sent to the
 1299     // server regardless of whether the field is empty or not. This may be
 1300     // used to include empty fields in Patch requests.
 1301     ForceSendFields []string `json:"-"`
 1302 
 1303     // NullFields is a list of field names (e.g. "Id") to include in API
 1304     // requests with the JSON null value. By default, fields with empty
 1305     // values are omitted from API requests. However, any field with an
 1306     // empty value appearing in NullFields will be sent to the server as
 1307     // null. It is an error if a field in this list has a non-empty value.
 1308     // This may be used to include null fields in Patch requests.
 1309     NullFields []string `json:"-"`
 1310 }
 1311 
 1312 func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
 1313     type noMethod AutoscalerAggregatedList
 1314     raw := noMethod(*s)
 1315     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1316 }
 1317 
 1318 // AutoscalerList: Contains a list of Autoscaler resources.
 1319 type AutoscalerList struct {
 1320     // Id: [Output Only] The unique identifier for the resource. This
 1321     // identifier is defined by the server.
 1322     Id string `json:"id,omitempty"`
 1323 
 1324     // Items: A list of Autoscaler resources.
 1325     Items []*Autoscaler `json:"items,omitempty"`
 1326 
 1327     // Kind: [Output Only] Type of resource. Always compute#autoscalerList
 1328     // for lists of autoscalers.
 1329     Kind string `json:"kind,omitempty"`
 1330 
 1331     // NextPageToken: [Output Only] This token allows you to get the next
 1332     // page of results for list requests. If the number of results is larger
 1333     // than maxResults, use the nextPageToken as a value for the query
 1334     // parameter pageToken in the next list request. Subsequent list
 1335     // requests will have their own nextPageToken to continue paging through
 1336     // the results.
 1337     NextPageToken string `json:"nextPageToken,omitempty"`
 1338 
 1339     // SelfLink: [Output Only] Server-defined URL for this resource.
 1340     SelfLink string `json:"selfLink,omitempty"`
 1341 
 1342     // ServerResponse contains the HTTP response code and headers from the
 1343     // server.
 1344     googleapi.ServerResponse `json:"-"`
 1345 
 1346     // ForceSendFields is a list of field names (e.g. "Id") to
 1347     // unconditionally include in API requests. By default, fields with
 1348     // empty values are omitted from API requests. However, any non-pointer,
 1349     // non-interface field appearing in ForceSendFields will be sent to the
 1350     // server regardless of whether the field is empty or not. This may be
 1351     // used to include empty fields in Patch requests.
 1352     ForceSendFields []string `json:"-"`
 1353 
 1354     // NullFields is a list of field names (e.g. "Id") to include in API
 1355     // requests with the JSON null value. By default, fields with empty
 1356     // values are omitted from API requests. However, any field with an
 1357     // empty value appearing in NullFields will be sent to the server as
 1358     // null. It is an error if a field in this list has a non-empty value.
 1359     // This may be used to include null fields in Patch requests.
 1360     NullFields []string `json:"-"`
 1361 }
 1362 
 1363 func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
 1364     type noMethod AutoscalerList
 1365     raw := noMethod(*s)
 1366     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1367 }
 1368 
 1369 type AutoscalersScopedList struct {
 1370     // Autoscalers: [Output Only] List of autoscalers contained in this
 1371     // scope.
 1372     Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
 1373 
 1374     // Warning: [Output Only] Informational warning which replaces the list
 1375     // of autoscalers when the list is empty.
 1376     Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
 1377 
 1378     // ForceSendFields is a list of field names (e.g. "Autoscalers") to
 1379     // unconditionally include in API requests. By default, fields with
 1380     // empty values are omitted from API requests. However, any non-pointer,
 1381     // non-interface field appearing in ForceSendFields will be sent to the
 1382     // server regardless of whether the field is empty or not. This may be
 1383     // used to include empty fields in Patch requests.
 1384     ForceSendFields []string `json:"-"`
 1385 
 1386     // NullFields is a list of field names (e.g. "Autoscalers") to include
 1387     // in API requests with the JSON null value. By default, fields with
 1388     // empty values are omitted from API requests. However, any field with
 1389     // an empty value appearing in NullFields will be sent to the server as
 1390     // null. It is an error if a field in this list has a non-empty value.
 1391     // This may be used to include null fields in Patch requests.
 1392     NullFields []string `json:"-"`
 1393 }
 1394 
 1395 func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
 1396     type noMethod AutoscalersScopedList
 1397     raw := noMethod(*s)
 1398     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1399 }
 1400 
 1401 // AutoscalersScopedListWarning: [Output Only] Informational warning
 1402 // which replaces the list of autoscalers when the list is empty.
 1403 type AutoscalersScopedListWarning struct {
 1404     // Code: [Output Only] A warning code, if applicable. For example,
 1405     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 1406     // the response.
 1407     //
 1408     // Possible values:
 1409     //   "CLEANUP_FAILED"
 1410     //   "DEPRECATED_RESOURCE_USED"
 1411     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 1412     //   "FIELD_VALUE_OVERRIDEN"
 1413     //   "INJECTED_KERNELS_DEPRECATED"
 1414     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 1415     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 1416     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 1417     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 1418     //   "NEXT_HOP_NOT_RUNNING"
 1419     //   "NOT_CRITICAL_ERROR"
 1420     //   "NO_RESULTS_ON_PAGE"
 1421     //   "REQUIRED_TOS_AGREEMENT"
 1422     //   "RESOURCE_NOT_DELETED"
 1423     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 1424     //   "UNREACHABLE"
 1425     Code string `json:"code,omitempty"`
 1426 
 1427     // Data: [Output Only] Metadata about this warning in key: value format.
 1428     // For example:
 1429     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 1430     Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
 1431 
 1432     // Message: [Output Only] A human-readable description of the warning
 1433     // code.
 1434     Message string `json:"message,omitempty"`
 1435 
 1436     // ForceSendFields is a list of field names (e.g. "Code") to
 1437     // unconditionally include in API requests. By default, fields with
 1438     // empty values are omitted from API requests. However, any non-pointer,
 1439     // non-interface field appearing in ForceSendFields will be sent to the
 1440     // server regardless of whether the field is empty or not. This may be
 1441     // used to include empty fields in Patch requests.
 1442     ForceSendFields []string `json:"-"`
 1443 
 1444     // NullFields is a list of field names (e.g. "Code") to include in API
 1445     // requests with the JSON null value. By default, fields with empty
 1446     // values are omitted from API requests. However, any field with an
 1447     // empty value appearing in NullFields will be sent to the server as
 1448     // null. It is an error if a field in this list has a non-empty value.
 1449     // This may be used to include null fields in Patch requests.
 1450     NullFields []string `json:"-"`
 1451 }
 1452 
 1453 func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
 1454     type noMethod AutoscalersScopedListWarning
 1455     raw := noMethod(*s)
 1456     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1457 }
 1458 
 1459 type AutoscalersScopedListWarningData struct {
 1460     // Key: [Output Only] A key that provides more detail on the warning
 1461     // being returned. For example, for warnings where there are no results
 1462     // in a list request for a particular zone, this key might be scope and
 1463     // the key value might be the zone name. Other examples might be a key
 1464     // indicating a deprecated resource and a suggested replacement, or a
 1465     // warning about invalid network settings (for example, if an instance
 1466     // attempts to perform IP forwarding but is not enabled for IP
 1467     // forwarding).
 1468     Key string `json:"key,omitempty"`
 1469 
 1470     // Value: [Output Only] A warning data value corresponding to the key.
 1471     Value string `json:"value,omitempty"`
 1472 
 1473     // ForceSendFields is a list of field names (e.g. "Key") to
 1474     // unconditionally include in API requests. By default, fields with
 1475     // empty values are omitted from API requests. However, any non-pointer,
 1476     // non-interface field appearing in ForceSendFields will be sent to the
 1477     // server regardless of whether the field is empty or not. This may be
 1478     // used to include empty fields in Patch requests.
 1479     ForceSendFields []string `json:"-"`
 1480 
 1481     // NullFields is a list of field names (e.g. "Key") to include in API
 1482     // requests with the JSON null value. By default, fields with empty
 1483     // values are omitted from API requests. However, any field with an
 1484     // empty value appearing in NullFields will be sent to the server as
 1485     // null. It is an error if a field in this list has a non-empty value.
 1486     // This may be used to include null fields in Patch requests.
 1487     NullFields []string `json:"-"`
 1488 }
 1489 
 1490 func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
 1491     type noMethod AutoscalersScopedListWarningData
 1492     raw := noMethod(*s)
 1493     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1494 }
 1495 
 1496 // AutoscalingPolicy: Cloud Autoscaler policy.
 1497 type AutoscalingPolicy struct {
 1498     // CoolDownPeriodSec: The number of seconds that the autoscaler should
 1499     // wait before it starts collecting information from a new instance.
 1500     // This prevents the autoscaler from collecting information when the
 1501     // instance is initializing, during which the collected usage would not
 1502     // be reliable. The default time autoscaler waits is 60
 1503     // seconds.
 1504     //
 1505     // Virtual machine initialization times might vary because of numerous
 1506     // factors. We recommend that you test how long an instance may take to
 1507     // initialize. To do this, create an instance and time the startup
 1508     // process.
 1509     CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
 1510 
 1511     // CpuUtilization: Defines the CPU utilization policy that allows the
 1512     // autoscaler to scale based on the average CPU utilization of a managed
 1513     // instance group.
 1514     CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
 1515 
 1516     // CustomMetricUtilizations: Configuration parameters of autoscaling
 1517     // based on a custom metric.
 1518     CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
 1519 
 1520     // LoadBalancingUtilization: Configuration parameters of autoscaling
 1521     // based on load balancer.
 1522     LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
 1523 
 1524     // MaxNumReplicas: The maximum number of instances that the autoscaler
 1525     // can scale up to. This is required when creating or updating an
 1526     // autoscaler. The maximum number of replicas should not be lower than
 1527     // minimal number of replicas.
 1528     MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
 1529 
 1530     // MinNumReplicas: The minimum number of replicas that the autoscaler
 1531     // can scale down to. This cannot be less than 0. If not provided,
 1532     // autoscaler will choose a default value depending on maximum number of
 1533     // instances allowed.
 1534     MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
 1535 
 1536     // ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
 1537     // to unconditionally include in API requests. By default, fields with
 1538     // empty values are omitted from API requests. However, any non-pointer,
 1539     // non-interface field appearing in ForceSendFields will be sent to the
 1540     // server regardless of whether the field is empty or not. This may be
 1541     // used to include empty fields in Patch requests.
 1542     ForceSendFields []string `json:"-"`
 1543 
 1544     // NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
 1545     // include in API requests with the JSON null value. By default, fields
 1546     // with empty values are omitted from API requests. However, any field
 1547     // with an empty value appearing in NullFields will be sent to the
 1548     // server as null. It is an error if a field in this list has a
 1549     // non-empty value. This may be used to include null fields in Patch
 1550     // requests.
 1551     NullFields []string `json:"-"`
 1552 }
 1553 
 1554 func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
 1555     type noMethod AutoscalingPolicy
 1556     raw := noMethod(*s)
 1557     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1558 }
 1559 
 1560 // AutoscalingPolicyCpuUtilization: CPU utilization policy.
 1561 type AutoscalingPolicyCpuUtilization struct {
 1562     // UtilizationTarget: The target CPU utilization that the autoscaler
 1563     // should maintain. Must be a float value in the range (0, 1]. If not
 1564     // specified, the default is 0.6.
 1565     //
 1566     // If the CPU level is below the target utilization, the autoscaler
 1567     // scales down the number of instances until it reaches the minimum
 1568     // number of instances you specified or until the average CPU of your
 1569     // instances reaches the target utilization.
 1570     //
 1571     // If the average CPU is above the target utilization, the autoscaler
 1572     // scales up until it reaches the maximum number of instances you
 1573     // specified or until the average utilization reaches the target
 1574     // utilization.
 1575     UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
 1576 
 1577     // ForceSendFields is a list of field names (e.g. "UtilizationTarget")
 1578     // to unconditionally include in API requests. By default, fields with
 1579     // empty values are omitted from API requests. However, any non-pointer,
 1580     // non-interface field appearing in ForceSendFields will be sent to the
 1581     // server regardless of whether the field is empty or not. This may be
 1582     // used to include empty fields in Patch requests.
 1583     ForceSendFields []string `json:"-"`
 1584 
 1585     // NullFields is a list of field names (e.g. "UtilizationTarget") to
 1586     // include in API requests with the JSON null value. By default, fields
 1587     // with empty values are omitted from API requests. However, any field
 1588     // with an empty value appearing in NullFields will be sent to the
 1589     // server as null. It is an error if a field in this list has a
 1590     // non-empty value. This may be used to include null fields in Patch
 1591     // requests.
 1592     NullFields []string `json:"-"`
 1593 }
 1594 
 1595 func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
 1596     type noMethod AutoscalingPolicyCpuUtilization
 1597     raw := noMethod(*s)
 1598     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1599 }
 1600 
 1601 // AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
 1602 // policy.
 1603 type AutoscalingPolicyCustomMetricUtilization struct {
 1604     // Metric: The identifier of the Stackdriver Monitoring metric. The
 1605     // metric cannot have negative values and should be a utilization
 1606     // metric, which means that the number of virtual machines handling
 1607     // requests should increase or decrease proportionally to the metric.
 1608     // The metric must also have a label of
 1609     // compute.googleapis.com/resource_id with the value of the instance's
 1610     // unique ID, although this alone does not guarantee that the metric is
 1611     // valid.
 1612     //
 1613     // For example, the following is a valid
 1614     // metric:
 1615     // compute.googleapis.com/instance/network/received_bytes_count
 1616     // T
 1617     // he following is not a valid metric because it does not increase or
 1618     // decrease based on
 1619     // usage:
 1620     // compute.googleapis.com/instance/cpu/reserved_cores
 1621     Metric string `json:"metric,omitempty"`
 1622 
 1623     // UtilizationTarget: Target value of the metric which autoscaler should
 1624     // maintain. Must be a positive value.
 1625     UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
 1626 
 1627     // UtilizationTargetType: Defines how target utilization value is
 1628     // expressed for a Stackdriver Monitoring metric. Either GAUGE,
 1629     // DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default
 1630     // is GAUGE.
 1631     //
 1632     // Possible values:
 1633     //   "DELTA_PER_MINUTE"
 1634     //   "DELTA_PER_SECOND"
 1635     //   "GAUGE"
 1636     UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
 1637 
 1638     // ForceSendFields is a list of field names (e.g. "Metric") to
 1639     // unconditionally include in API requests. By default, fields with
 1640     // empty values are omitted from API requests. However, any non-pointer,
 1641     // non-interface field appearing in ForceSendFields will be sent to the
 1642     // server regardless of whether the field is empty or not. This may be
 1643     // used to include empty fields in Patch requests.
 1644     ForceSendFields []string `json:"-"`
 1645 
 1646     // NullFields is a list of field names (e.g. "Metric") to include in API
 1647     // requests with the JSON null value. By default, fields with empty
 1648     // values are omitted from API requests. However, any field with an
 1649     // empty value appearing in NullFields will be sent to the server as
 1650     // null. It is an error if a field in this list has a non-empty value.
 1651     // This may be used to include null fields in Patch requests.
 1652     NullFields []string `json:"-"`
 1653 }
 1654 
 1655 func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
 1656     type noMethod AutoscalingPolicyCustomMetricUtilization
 1657     raw := noMethod(*s)
 1658     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1659 }
 1660 
 1661 // AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
 1662 // of autoscaling based on load balancing.
 1663 type AutoscalingPolicyLoadBalancingUtilization struct {
 1664     // UtilizationTarget: Fraction of backend capacity utilization (set in
 1665     // HTTP(s) load balancing configuration) that autoscaler should
 1666     // maintain. Must be a positive float value. If not defined, the default
 1667     // is 0.8.
 1668     UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
 1669 
 1670     // ForceSendFields is a list of field names (e.g. "UtilizationTarget")
 1671     // to unconditionally include in API requests. By default, fields with
 1672     // empty values are omitted from API requests. However, any non-pointer,
 1673     // non-interface field appearing in ForceSendFields will be sent to the
 1674     // server regardless of whether the field is empty or not. This may be
 1675     // used to include empty fields in Patch requests.
 1676     ForceSendFields []string `json:"-"`
 1677 
 1678     // NullFields is a list of field names (e.g. "UtilizationTarget") to
 1679     // include in API requests with the JSON null value. By default, fields
 1680     // with empty values are omitted from API requests. However, any field
 1681     // with an empty value appearing in NullFields will be sent to the
 1682     // server as null. It is an error if a field in this list has a
 1683     // non-empty value. This may be used to include null fields in Patch
 1684     // requests.
 1685     NullFields []string `json:"-"`
 1686 }
 1687 
 1688 func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
 1689     type noMethod AutoscalingPolicyLoadBalancingUtilization
 1690     raw := noMethod(*s)
 1691     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1692 }
 1693 
 1694 // Backend: Message containing information of one individual backend.
 1695 type Backend struct {
 1696     // BalancingMode: Specifies the balancing mode for this backend. For
 1697     // global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION.
 1698     // Valid values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for
 1699     // TCP/SSL).
 1700     //
 1701     // This cannot be used for internal load balancing.
 1702     //
 1703     // Possible values:
 1704     //   "CONNECTION"
 1705     //   "RATE"
 1706     //   "UTILIZATION"
 1707     BalancingMode string `json:"balancingMode,omitempty"`
 1708 
 1709     // CapacityScaler: A multiplier applied to the group's maximum servicing
 1710     // capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
 1711     // 1, which means the group will serve up to 100% of its configured
 1712     // capacity (depending on balancingMode). A setting of 0 means the group
 1713     // is completely drained, offering 0% of its available Capacity. Valid
 1714     // range is [0.0,1.0].
 1715     //
 1716     // This cannot be used for internal load balancing.
 1717     CapacityScaler float64 `json:"capacityScaler,omitempty"`
 1718 
 1719     // Description: An optional description of this resource. Provide this
 1720     // property when you create the resource.
 1721     Description string `json:"description,omitempty"`
 1722 
 1723     // Group: The fully-qualified URL of a zonal Instance Group resource.
 1724     // This instance group defines the list of instances that serve traffic.
 1725     // Member virtual machine instances from each instance group must live
 1726     // in the same zone as the instance group itself. No two backends in a
 1727     // backend service are allowed to use same Instance Group
 1728     // resource.
 1729     //
 1730     // Note that you must specify an Instance Group resource using the
 1731     // fully-qualified URL, rather than a partial URL.
 1732     //
 1733     // When the BackendService has load balancing scheme INTERNAL, the
 1734     // instance group must be in a zone within the same region as the
 1735     // BackendService.
 1736     Group string `json:"group,omitempty"`
 1737 
 1738     // MaxConnections: The max number of simultaneous connections for the
 1739     // group. Can be used with either CONNECTION or UTILIZATION balancing
 1740     // modes. For CONNECTION mode, either maxConnections or
 1741     // maxConnectionsPerInstance must be set.
 1742     //
 1743     // This cannot be used for internal load balancing.
 1744     MaxConnections int64 `json:"maxConnections,omitempty"`
 1745 
 1746     // MaxConnectionsPerInstance: The max number of simultaneous connections
 1747     // that a single backend instance can handle. This is used to calculate
 1748     // the capacity of the group. Can be used in either CONNECTION or
 1749     // UTILIZATION balancing modes. For CONNECTION mode, either
 1750     // maxConnections or maxConnectionsPerInstance must be set.
 1751     //
 1752     // This cannot be used for internal load balancing.
 1753     MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
 1754 
 1755     // MaxRate: The max requests per second (RPS) of the group. Can be used
 1756     // with either RATE or UTILIZATION balancing modes, but required if RATE
 1757     // mode. For RATE mode, either maxRate or maxRatePerInstance must be
 1758     // set.
 1759     //
 1760     // This cannot be used for internal load balancing.
 1761     MaxRate int64 `json:"maxRate,omitempty"`
 1762 
 1763     // MaxRatePerInstance: The max requests per second (RPS) that a single
 1764     // backend instance can handle.This is used to calculate the capacity of
 1765     // the group. Can be used in either balancing mode. For RATE mode,
 1766     // either maxRate or maxRatePerInstance must be set.
 1767     //
 1768     // This cannot be used for internal load balancing.
 1769     MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
 1770 
 1771     // MaxUtilization: Used when balancingMode is UTILIZATION. This ratio
 1772     // defines the CPU utilization target for the group. The default is 0.8.
 1773     // Valid range is [0.0, 1.0].
 1774     //
 1775     // This cannot be used for internal load balancing.
 1776     MaxUtilization float64 `json:"maxUtilization,omitempty"`
 1777 
 1778     // ForceSendFields is a list of field names (e.g. "BalancingMode") to
 1779     // unconditionally include in API requests. By default, fields with
 1780     // empty values are omitted from API requests. However, any non-pointer,
 1781     // non-interface field appearing in ForceSendFields will be sent to the
 1782     // server regardless of whether the field is empty or not. This may be
 1783     // used to include empty fields in Patch requests.
 1784     ForceSendFields []string `json:"-"`
 1785 
 1786     // NullFields is a list of field names (e.g. "BalancingMode") to include
 1787     // in API requests with the JSON null value. By default, fields with
 1788     // empty values are omitted from API requests. However, any field with
 1789     // an empty value appearing in NullFields will be sent to the server as
 1790     // null. It is an error if a field in this list has a non-empty value.
 1791     // This may be used to include null fields in Patch requests.
 1792     NullFields []string `json:"-"`
 1793 }
 1794 
 1795 func (s *Backend) MarshalJSON() ([]byte, error) {
 1796     type noMethod Backend
 1797     raw := noMethod(*s)
 1798     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1799 }
 1800 
 1801 // BackendService: A BackendService resource. This resource defines a
 1802 // group of backend virtual machines and their serving capacity.
 1803 type BackendService struct {
 1804     // AffinityCookieTtlSec: Lifetime of cookies in seconds if
 1805     // session_affinity is GENERATED_COOKIE. If set to 0, the cookie is
 1806     // non-persistent and lasts only until the end of the browser session
 1807     // (or equivalent). The maximum allowed value for TTL is one day.
 1808     //
 1809     // When the load balancing scheme is INTERNAL, this field is not used.
 1810     AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
 1811 
 1812     // Backends: The list of backends that serve this BackendService.
 1813     Backends []*Backend `json:"backends,omitempty"`
 1814 
 1815     ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
 1816 
 1817     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 1818     // format.
 1819     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 1820 
 1821     // Description: An optional description of this resource. Provide this
 1822     // property when you create the resource.
 1823     Description string `json:"description,omitempty"`
 1824 
 1825     // EnableCDN: If true, enable Cloud CDN for this BackendService.
 1826     //
 1827     // When the load balancing scheme is INTERNAL, this field is not used.
 1828     EnableCDN bool `json:"enableCDN,omitempty"`
 1829 
 1830     // Fingerprint: Fingerprint of this resource. A hash of the contents
 1831     // stored in this object. This field is used in optimistic locking. This
 1832     // field will be ignored when inserting a BackendService. An up-to-date
 1833     // fingerprint must be provided in order to update the BackendService.
 1834     Fingerprint string `json:"fingerprint,omitempty"`
 1835 
 1836     // HealthChecks: The list of URLs to the HttpHealthCheck or
 1837     // HttpsHealthCheck resource for health checking this BackendService.
 1838     // Currently at most one health check can be specified, and a health
 1839     // check is required.
 1840     //
 1841     // For internal load balancing, a URL to a HealthCheck resource must be
 1842     // specified instead.
 1843     HealthChecks []string `json:"healthChecks,omitempty"`
 1844 
 1845     // Id: [Output Only] The unique identifier for the resource. This
 1846     // identifier is defined by the server.
 1847     Id uint64 `json:"id,omitempty,string"`
 1848 
 1849     // Kind: [Output Only] Type of resource. Always compute#backendService
 1850     // for backend services.
 1851     Kind string `json:"kind,omitempty"`
 1852 
 1853     // Possible values:
 1854     //   "EXTERNAL"
 1855     //   "INTERNAL"
 1856     //   "INVALID_LOAD_BALANCING_SCHEME"
 1857     LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
 1858 
 1859     // Name: Name of the resource. Provided by the client when the resource
 1860     // is created. The name must be 1-63 characters long, and comply with
 1861     // RFC1035. Specifically, the name must be 1-63 characters long and
 1862     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 1863     // the first character must be a lowercase letter, and all following
 1864     // characters must be a dash, lowercase letter, or digit, except the
 1865     // last character, which cannot be a dash.
 1866     Name string `json:"name,omitempty"`
 1867 
 1868     // Port: Deprecated in favor of portName. The TCP port to connect on the
 1869     // backend. The default value is 80.
 1870     //
 1871     // This cannot be used for internal load balancing.
 1872     Port int64 `json:"port,omitempty"`
 1873 
 1874     // PortName: Name of backend port. The same name should appear in the
 1875     // instance groups referenced by this service. Required when the load
 1876     // balancing scheme is EXTERNAL.
 1877     //
 1878     // When the load balancing scheme is INTERNAL, this field is not used.
 1879     PortName string `json:"portName,omitempty"`
 1880 
 1881     // Protocol: The protocol this BackendService uses to communicate with
 1882     // backends.
 1883     //
 1884     // Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is
 1885     // HTTP.
 1886     //
 1887     // For internal load balancing, the possible values are TCP and UDP, and
 1888     // the default is TCP.
 1889     //
 1890     // Possible values:
 1891     //   "HTTP"
 1892     //   "HTTPS"
 1893     //   "SSL"
 1894     //   "TCP"
 1895     //   "UDP"
 1896     Protocol string `json:"protocol,omitempty"`
 1897 
 1898     // Region: [Output Only] URL of the region where the regional backend
 1899     // service resides. This field is not applicable to global backend
 1900     // services.
 1901     Region string `json:"region,omitempty"`
 1902 
 1903     // SelfLink: [Output Only] Server-defined URL for the resource.
 1904     SelfLink string `json:"selfLink,omitempty"`
 1905 
 1906     // SessionAffinity: Type of session affinity to use. The default is
 1907     // NONE.
 1908     //
 1909     // When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP,
 1910     // or GENERATED_COOKIE.
 1911     //
 1912     // When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
 1913     // CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
 1914     //
 1915     // When the protocol is UDP, this field is not used.
 1916     //
 1917     // Possible values:
 1918     //   "CLIENT_IP"
 1919     //   "CLIENT_IP_PORT_PROTO"
 1920     //   "CLIENT_IP_PROTO"
 1921     //   "GENERATED_COOKIE"
 1922     //   "NONE"
 1923     SessionAffinity string `json:"sessionAffinity,omitempty"`
 1924 
 1925     // TimeoutSec: How many seconds to wait for the backend before
 1926     // considering it a failed request. Default is 30 seconds.
 1927     TimeoutSec int64 `json:"timeoutSec,omitempty"`
 1928 
 1929     // ServerResponse contains the HTTP response code and headers from the
 1930     // server.
 1931     googleapi.ServerResponse `json:"-"`
 1932 
 1933     // ForceSendFields is a list of field names (e.g.
 1934     // "AffinityCookieTtlSec") to unconditionally include in API requests.
 1935     // By default, fields with empty values are omitted from API requests.
 1936     // However, any non-pointer, non-interface field appearing in
 1937     // ForceSendFields will be sent to the server regardless of whether the
 1938     // field is empty or not. This may be used to include empty fields in
 1939     // Patch requests.
 1940     ForceSendFields []string `json:"-"`
 1941 
 1942     // NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
 1943     // include in API requests with the JSON null value. By default, fields
 1944     // with empty values are omitted from API requests. However, any field
 1945     // with an empty value appearing in NullFields will be sent to the
 1946     // server as null. It is an error if a field in this list has a
 1947     // non-empty value. This may be used to include null fields in Patch
 1948     // requests.
 1949     NullFields []string `json:"-"`
 1950 }
 1951 
 1952 func (s *BackendService) MarshalJSON() ([]byte, error) {
 1953     type noMethod BackendService
 1954     raw := noMethod(*s)
 1955     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 1956 }
 1957 
 1958 // BackendServiceAggregatedList: Contains a list of
 1959 // BackendServicesScopedList.
 1960 type BackendServiceAggregatedList struct {
 1961     // Id: [Output Only] Unique identifier for the resource; defined by the
 1962     // server.
 1963     Id string `json:"id,omitempty"`
 1964 
 1965     // Items: A map of scoped BackendService lists.
 1966     Items map[string]BackendServicesScopedList `json:"items,omitempty"`
 1967 
 1968     // Kind: Type of resource.
 1969     Kind string `json:"kind,omitempty"`
 1970 
 1971     // NextPageToken: [Output Only] A token used to continue a truncated
 1972     // list request.
 1973     NextPageToken string `json:"nextPageToken,omitempty"`
 1974 
 1975     // SelfLink: [Output Only] Server-defined URL for this resource.
 1976     SelfLink string `json:"selfLink,omitempty"`
 1977 
 1978     // ServerResponse contains the HTTP response code and headers from the
 1979     // server.
 1980     googleapi.ServerResponse `json:"-"`
 1981 
 1982     // ForceSendFields is a list of field names (e.g. "Id") to
 1983     // unconditionally include in API requests. By default, fields with
 1984     // empty values are omitted from API requests. However, any non-pointer,
 1985     // non-interface field appearing in ForceSendFields will be sent to the
 1986     // server regardless of whether the field is empty or not. This may be
 1987     // used to include empty fields in Patch requests.
 1988     ForceSendFields []string `json:"-"`
 1989 
 1990     // NullFields is a list of field names (e.g. "Id") to include in API
 1991     // requests with the JSON null value. By default, fields with empty
 1992     // values are omitted from API requests. However, any field with an
 1993     // empty value appearing in NullFields will be sent to the server as
 1994     // null. It is an error if a field in this list has a non-empty value.
 1995     // This may be used to include null fields in Patch requests.
 1996     NullFields []string `json:"-"`
 1997 }
 1998 
 1999 func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
 2000     type noMethod BackendServiceAggregatedList
 2001     raw := noMethod(*s)
 2002     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2003 }
 2004 
 2005 type BackendServiceGroupHealth struct {
 2006     HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
 2007 
 2008     // Kind: [Output Only] Type of resource. Always
 2009     // compute#backendServiceGroupHealth for the health of backend services.
 2010     Kind string `json:"kind,omitempty"`
 2011 
 2012     // ServerResponse contains the HTTP response code and headers from the
 2013     // server.
 2014     googleapi.ServerResponse `json:"-"`
 2015 
 2016     // ForceSendFields is a list of field names (e.g. "HealthStatus") to
 2017     // unconditionally include in API requests. By default, fields with
 2018     // empty values are omitted from API requests. However, any non-pointer,
 2019     // non-interface field appearing in ForceSendFields will be sent to the
 2020     // server regardless of whether the field is empty or not. This may be
 2021     // used to include empty fields in Patch requests.
 2022     ForceSendFields []string `json:"-"`
 2023 
 2024     // NullFields is a list of field names (e.g. "HealthStatus") to include
 2025     // in API requests with the JSON null value. By default, fields with
 2026     // empty values are omitted from API requests. However, any field with
 2027     // an empty value appearing in NullFields will be sent to the server as
 2028     // null. It is an error if a field in this list has a non-empty value.
 2029     // This may be used to include null fields in Patch requests.
 2030     NullFields []string `json:"-"`
 2031 }
 2032 
 2033 func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
 2034     type noMethod BackendServiceGroupHealth
 2035     raw := noMethod(*s)
 2036     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2037 }
 2038 
 2039 // BackendServiceList: Contains a list of BackendService resources.
 2040 type BackendServiceList struct {
 2041     // Id: [Output Only] Unique identifier for the resource; defined by the
 2042     // server.
 2043     Id string `json:"id,omitempty"`
 2044 
 2045     // Items: A list of BackendService resources.
 2046     Items []*BackendService `json:"items,omitempty"`
 2047 
 2048     // Kind: [Output Only] Type of resource. Always
 2049     // compute#backendServiceList for lists of backend services.
 2050     Kind string `json:"kind,omitempty"`
 2051 
 2052     // NextPageToken: [Output Only] A token used to continue a truncated
 2053     // list request.
 2054     NextPageToken string `json:"nextPageToken,omitempty"`
 2055 
 2056     // SelfLink: [Output Only] Server-defined URL for this resource.
 2057     SelfLink string `json:"selfLink,omitempty"`
 2058 
 2059     // ServerResponse contains the HTTP response code and headers from the
 2060     // server.
 2061     googleapi.ServerResponse `json:"-"`
 2062 
 2063     // ForceSendFields is a list of field names (e.g. "Id") to
 2064     // unconditionally include in API requests. By default, fields with
 2065     // empty values are omitted from API requests. However, any non-pointer,
 2066     // non-interface field appearing in ForceSendFields will be sent to the
 2067     // server regardless of whether the field is empty or not. This may be
 2068     // used to include empty fields in Patch requests.
 2069     ForceSendFields []string `json:"-"`
 2070 
 2071     // NullFields is a list of field names (e.g. "Id") to include in API
 2072     // requests with the JSON null value. By default, fields with empty
 2073     // values are omitted from API requests. However, any field with an
 2074     // empty value appearing in NullFields will be sent to the server as
 2075     // null. It is an error if a field in this list has a non-empty value.
 2076     // This may be used to include null fields in Patch requests.
 2077     NullFields []string `json:"-"`
 2078 }
 2079 
 2080 func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
 2081     type noMethod BackendServiceList
 2082     raw := noMethod(*s)
 2083     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2084 }
 2085 
 2086 type BackendServicesScopedList struct {
 2087     // BackendServices: List of BackendServices contained in this scope.
 2088     BackendServices []*BackendService `json:"backendServices,omitempty"`
 2089 
 2090     // Warning: Informational warning which replaces the list of backend
 2091     // services when the list is empty.
 2092     Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
 2093 
 2094     // ForceSendFields is a list of field names (e.g. "BackendServices") to
 2095     // unconditionally include in API requests. By default, fields with
 2096     // empty values are omitted from API requests. However, any non-pointer,
 2097     // non-interface field appearing in ForceSendFields will be sent to the
 2098     // server regardless of whether the field is empty or not. This may be
 2099     // used to include empty fields in Patch requests.
 2100     ForceSendFields []string `json:"-"`
 2101 
 2102     // NullFields is a list of field names (e.g. "BackendServices") to
 2103     // include in API requests with the JSON null value. By default, fields
 2104     // with empty values are omitted from API requests. However, any field
 2105     // with an empty value appearing in NullFields will be sent to the
 2106     // server as null. It is an error if a field in this list has a
 2107     // non-empty value. This may be used to include null fields in Patch
 2108     // requests.
 2109     NullFields []string `json:"-"`
 2110 }
 2111 
 2112 func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
 2113     type noMethod BackendServicesScopedList
 2114     raw := noMethod(*s)
 2115     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2116 }
 2117 
 2118 // BackendServicesScopedListWarning: Informational warning which
 2119 // replaces the list of backend services when the list is empty.
 2120 type BackendServicesScopedListWarning struct {
 2121     // Code: [Output Only] A warning code, if applicable. For example,
 2122     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 2123     // the response.
 2124     //
 2125     // Possible values:
 2126     //   "CLEANUP_FAILED"
 2127     //   "DEPRECATED_RESOURCE_USED"
 2128     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 2129     //   "FIELD_VALUE_OVERRIDEN"
 2130     //   "INJECTED_KERNELS_DEPRECATED"
 2131     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 2132     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 2133     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 2134     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 2135     //   "NEXT_HOP_NOT_RUNNING"
 2136     //   "NOT_CRITICAL_ERROR"
 2137     //   "NO_RESULTS_ON_PAGE"
 2138     //   "REQUIRED_TOS_AGREEMENT"
 2139     //   "RESOURCE_NOT_DELETED"
 2140     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 2141     //   "UNREACHABLE"
 2142     Code string `json:"code,omitempty"`
 2143 
 2144     // Data: [Output Only] Metadata about this warning in key: value format.
 2145     // For example:
 2146     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 2147     Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
 2148 
 2149     // Message: [Output Only] A human-readable description of the warning
 2150     // code.
 2151     Message string `json:"message,omitempty"`
 2152 
 2153     // ForceSendFields is a list of field names (e.g. "Code") to
 2154     // unconditionally include in API requests. By default, fields with
 2155     // empty values are omitted from API requests. However, any non-pointer,
 2156     // non-interface field appearing in ForceSendFields will be sent to the
 2157     // server regardless of whether the field is empty or not. This may be
 2158     // used to include empty fields in Patch requests.
 2159     ForceSendFields []string `json:"-"`
 2160 
 2161     // NullFields is a list of field names (e.g. "Code") to include in API
 2162     // requests with the JSON null value. By default, fields with empty
 2163     // values are omitted from API requests. However, any field with an
 2164     // empty value appearing in NullFields will be sent to the server as
 2165     // null. It is an error if a field in this list has a non-empty value.
 2166     // This may be used to include null fields in Patch requests.
 2167     NullFields []string `json:"-"`
 2168 }
 2169 
 2170 func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
 2171     type noMethod BackendServicesScopedListWarning
 2172     raw := noMethod(*s)
 2173     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2174 }
 2175 
 2176 type BackendServicesScopedListWarningData struct {
 2177     // Key: [Output Only] A key that provides more detail on the warning
 2178     // being returned. For example, for warnings where there are no results
 2179     // in a list request for a particular zone, this key might be scope and
 2180     // the key value might be the zone name. Other examples might be a key
 2181     // indicating a deprecated resource and a suggested replacement, or a
 2182     // warning about invalid network settings (for example, if an instance
 2183     // attempts to perform IP forwarding but is not enabled for IP
 2184     // forwarding).
 2185     Key string `json:"key,omitempty"`
 2186 
 2187     // Value: [Output Only] A warning data value corresponding to the key.
 2188     Value string `json:"value,omitempty"`
 2189 
 2190     // ForceSendFields is a list of field names (e.g. "Key") to
 2191     // unconditionally include in API requests. By default, fields with
 2192     // empty values are omitted from API requests. However, any non-pointer,
 2193     // non-interface field appearing in ForceSendFields will be sent to the
 2194     // server regardless of whether the field is empty or not. This may be
 2195     // used to include empty fields in Patch requests.
 2196     ForceSendFields []string `json:"-"`
 2197 
 2198     // NullFields is a list of field names (e.g. "Key") to include in API
 2199     // requests with the JSON null value. By default, fields with empty
 2200     // values are omitted from API requests. However, any field with an
 2201     // empty value appearing in NullFields will be sent to the server as
 2202     // null. It is an error if a field in this list has a non-empty value.
 2203     // This may be used to include null fields in Patch requests.
 2204     NullFields []string `json:"-"`
 2205 }
 2206 
 2207 func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
 2208     type noMethod BackendServicesScopedListWarningData
 2209     raw := noMethod(*s)
 2210     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2211 }
 2212 
 2213 type CacheInvalidationRule struct {
 2214     Path string `json:"path,omitempty"`
 2215 
 2216     // ForceSendFields is a list of field names (e.g. "Path") to
 2217     // unconditionally include in API requests. By default, fields with
 2218     // empty values are omitted from API requests. However, any non-pointer,
 2219     // non-interface field appearing in ForceSendFields will be sent to the
 2220     // server regardless of whether the field is empty or not. This may be
 2221     // used to include empty fields in Patch requests.
 2222     ForceSendFields []string `json:"-"`
 2223 
 2224     // NullFields is a list of field names (e.g. "Path") to include in API
 2225     // requests with the JSON null value. By default, fields with empty
 2226     // values are omitted from API requests. However, any field with an
 2227     // empty value appearing in NullFields will be sent to the server as
 2228     // null. It is an error if a field in this list has a non-empty value.
 2229     // This may be used to include null fields in Patch requests.
 2230     NullFields []string `json:"-"`
 2231 }
 2232 
 2233 func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
 2234     type noMethod CacheInvalidationRule
 2235     raw := noMethod(*s)
 2236     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2237 }
 2238 
 2239 // ConnectionDraining: Message containing connection draining
 2240 // configuration.
 2241 type ConnectionDraining struct {
 2242     // DrainingTimeoutSec: Time for which instance will be drained (not
 2243     // accept new connections, but still work to finish started).
 2244     DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
 2245 
 2246     // ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
 2247     // to unconditionally include in API requests. By default, fields with
 2248     // empty values are omitted from API requests. However, any non-pointer,
 2249     // non-interface field appearing in ForceSendFields will be sent to the
 2250     // server regardless of whether the field is empty or not. This may be
 2251     // used to include empty fields in Patch requests.
 2252     ForceSendFields []string `json:"-"`
 2253 
 2254     // NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
 2255     // include in API requests with the JSON null value. By default, fields
 2256     // with empty values are omitted from API requests. However, any field
 2257     // with an empty value appearing in NullFields will be sent to the
 2258     // server as null. It is an error if a field in this list has a
 2259     // non-empty value. This may be used to include null fields in Patch
 2260     // requests.
 2261     NullFields []string `json:"-"`
 2262 }
 2263 
 2264 func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
 2265     type noMethod ConnectionDraining
 2266     raw := noMethod(*s)
 2267     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2268 }
 2269 
 2270 // CustomerEncryptionKey: Represents a customer-supplied encryption key
 2271 type CustomerEncryptionKey struct {
 2272     // RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
 2273     // in RFC 4648 base64 to either encrypt or decrypt this resource.
 2274     RawKey string `json:"rawKey,omitempty"`
 2275 
 2276     // Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
 2277     // customer-supplied encryption key that protects this resource.
 2278     Sha256 string `json:"sha256,omitempty"`
 2279 
 2280     // ForceSendFields is a list of field names (e.g. "RawKey") to
 2281     // unconditionally include in API requests. By default, fields with
 2282     // empty values are omitted from API requests. However, any non-pointer,
 2283     // non-interface field appearing in ForceSendFields will be sent to the
 2284     // server regardless of whether the field is empty or not. This may be
 2285     // used to include empty fields in Patch requests.
 2286     ForceSendFields []string `json:"-"`
 2287 
 2288     // NullFields is a list of field names (e.g. "RawKey") to include in API
 2289     // requests with the JSON null value. By default, fields with empty
 2290     // values are omitted from API requests. However, any field with an
 2291     // empty value appearing in NullFields will be sent to the server as
 2292     // null. It is an error if a field in this list has a non-empty value.
 2293     // This may be used to include null fields in Patch requests.
 2294     NullFields []string `json:"-"`
 2295 }
 2296 
 2297 func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
 2298     type noMethod CustomerEncryptionKey
 2299     raw := noMethod(*s)
 2300     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2301 }
 2302 
 2303 type CustomerEncryptionKeyProtectedDisk struct {
 2304     // DiskEncryptionKey: Decrypts data associated with the disk with a
 2305     // customer-supplied encryption key.
 2306     DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
 2307 
 2308     // Source: Specifies a valid partial or full URL to an existing
 2309     // Persistent Disk resource. This field is only applicable for
 2310     // persistent disks.
 2311     Source string `json:"source,omitempty"`
 2312 
 2313     // ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
 2314     // to unconditionally include in API requests. By default, fields with
 2315     // empty values are omitted from API requests. However, any non-pointer,
 2316     // non-interface field appearing in ForceSendFields will be sent to the
 2317     // server regardless of whether the field is empty or not. This may be
 2318     // used to include empty fields in Patch requests.
 2319     ForceSendFields []string `json:"-"`
 2320 
 2321     // NullFields is a list of field names (e.g. "DiskEncryptionKey") to
 2322     // include in API requests with the JSON null value. By default, fields
 2323     // with empty values are omitted from API requests. However, any field
 2324     // with an empty value appearing in NullFields will be sent to the
 2325     // server as null. It is an error if a field in this list has a
 2326     // non-empty value. This may be used to include null fields in Patch
 2327     // requests.
 2328     NullFields []string `json:"-"`
 2329 }
 2330 
 2331 func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
 2332     type noMethod CustomerEncryptionKeyProtectedDisk
 2333     raw := noMethod(*s)
 2334     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2335 }
 2336 
 2337 // DeprecationStatus: Deprecation status for a public resource.
 2338 type DeprecationStatus struct {
 2339     // Deleted: An optional RFC3339 timestamp on or after which the state of
 2340     // this resource is intended to change to DELETED. This is only
 2341     // informational and the status will not change unless the client
 2342     // explicitly changes it.
 2343     Deleted string `json:"deleted,omitempty"`
 2344 
 2345     // Deprecated: An optional RFC3339 timestamp on or after which the state
 2346     // of this resource is intended to change to DEPRECATED. This is only
 2347     // informational and the status will not change unless the client
 2348     // explicitly changes it.
 2349     Deprecated string `json:"deprecated,omitempty"`
 2350 
 2351     // Obsolete: An optional RFC3339 timestamp on or after which the state
 2352     // of this resource is intended to change to OBSOLETE. This is only
 2353     // informational and the status will not change unless the client
 2354     // explicitly changes it.
 2355     Obsolete string `json:"obsolete,omitempty"`
 2356 
 2357     // Replacement: The URL of the suggested replacement for a deprecated
 2358     // resource. The suggested replacement resource must be the same kind of
 2359     // resource as the deprecated resource.
 2360     Replacement string `json:"replacement,omitempty"`
 2361 
 2362     // State: The deprecation state of this resource. This can be
 2363     // DEPRECATED, OBSOLETE, or DELETED. Operations which create a new
 2364     // resource using a DEPRECATED resource will return successfully, but
 2365     // with a warning indicating the deprecated resource and recommending
 2366     // its replacement. Operations which use OBSOLETE or DELETED resources
 2367     // will be rejected and result in an error.
 2368     //
 2369     // Possible values:
 2370     //   "DELETED"
 2371     //   "DEPRECATED"
 2372     //   "OBSOLETE"
 2373     State string `json:"state,omitempty"`
 2374 
 2375     // ForceSendFields is a list of field names (e.g. "Deleted") to
 2376     // unconditionally include in API requests. By default, fields with
 2377     // empty values are omitted from API requests. However, any non-pointer,
 2378     // non-interface field appearing in ForceSendFields will be sent to the
 2379     // server regardless of whether the field is empty or not. This may be
 2380     // used to include empty fields in Patch requests.
 2381     ForceSendFields []string `json:"-"`
 2382 
 2383     // NullFields is a list of field names (e.g. "Deleted") to include in
 2384     // API requests with the JSON null value. By default, fields with empty
 2385     // values are omitted from API requests. However, any field with an
 2386     // empty value appearing in NullFields will be sent to the server as
 2387     // null. It is an error if a field in this list has a non-empty value.
 2388     // This may be used to include null fields in Patch requests.
 2389     NullFields []string `json:"-"`
 2390 }
 2391 
 2392 func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
 2393     type noMethod DeprecationStatus
 2394     raw := noMethod(*s)
 2395     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2396 }
 2397 
 2398 // Disk: A Disk resource.
 2399 type Disk struct {
 2400     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 2401     // format.
 2402     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 2403 
 2404     // Description: An optional description of this resource. Provide this
 2405     // property when you create the resource.
 2406     Description string `json:"description,omitempty"`
 2407 
 2408     // DiskEncryptionKey: Encrypts the disk using a customer-supplied
 2409     // encryption key.
 2410     //
 2411     // After you encrypt a disk with a customer-supplied key, you must
 2412     // provide the same key if you use the disk later (e.g. to create a disk
 2413     // snapshot or an image, or to attach the disk to a virtual
 2414     // machine).
 2415     //
 2416     // Customer-supplied encryption keys do not protect access to metadata
 2417     // of the disk.
 2418     //
 2419     // If you do not provide an encryption key when creating the disk, then
 2420     // the disk will be encrypted using an automatically generated key and
 2421     // you do not need to provide a key to use the disk later.
 2422     DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
 2423 
 2424     // Id: [Output Only] The unique identifier for the resource. This
 2425     // identifier is defined by the server.
 2426     Id uint64 `json:"id,omitempty,string"`
 2427 
 2428     // Kind: [Output Only] Type of the resource. Always compute#disk for
 2429     // disks.
 2430     Kind string `json:"kind,omitempty"`
 2431 
 2432     // LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
 2433     // text format.
 2434     LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
 2435 
 2436     // LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
 2437     // text format.
 2438     LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
 2439 
 2440     // Licenses: Any applicable publicly visible licenses.
 2441     Licenses []string `json:"licenses,omitempty"`
 2442 
 2443     // Name: Name of the resource. Provided by the client when the resource
 2444     // is created. The name must be 1-63 characters long, and comply with
 2445     // RFC1035. Specifically, the name must be 1-63 characters long and
 2446     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 2447     // the first character must be a lowercase letter, and all following
 2448     // characters must be a dash, lowercase letter, or digit, except the
 2449     // last character, which cannot be a dash.
 2450     Name string `json:"name,omitempty"`
 2451 
 2452     // Options: Internal use only.
 2453     Options string `json:"options,omitempty"`
 2454 
 2455     // SelfLink: [Output Only] Server-defined fully-qualified URL for this
 2456     // resource.
 2457     SelfLink string `json:"selfLink,omitempty"`
 2458 
 2459     // SizeGb: Size of the persistent disk, specified in GB. You can specify
 2460     // this field when creating a persistent disk using the sourceImage or
 2461     // sourceSnapshot parameter, or specify it alone to create an empty
 2462     // persistent disk.
 2463     //
 2464     // If you specify this field along with sourceImage or sourceSnapshot,
 2465     // the value of sizeGb must not be less than the size of the sourceImage
 2466     // or the size of the snapshot.
 2467     SizeGb int64 `json:"sizeGb,omitempty,string"`
 2468 
 2469     // SourceImage: The source image used to create this disk. If the source
 2470     // image is deleted, this field will not be set.
 2471     //
 2472     // To create a disk with one of the public operating system images,
 2473     // specify the image by its family name. For example, specify
 2474     // family/debian-8 to use the latest Debian 8
 2475     // image:
 2476     //
 2477     // projects/debian-cloud/global/images/family/debian-8
 2478     //
 2479     // Alternatively, use a specific version of a public operating system
 2480     // image:
 2481     //
 2482     // projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
 2483     //
 2484     // To create a disk with a private image that you created, specify the
 2485     // image name in the following format:
 2486     //
 2487     // global/images/my-private-image
 2488     //
 2489     // You can also specify a private image by its image family, which
 2490     // returns the latest version of the image in that family. Replace the
 2491     // image name with
 2492     // family/family-name:
 2493     //
 2494     // global/images/family/my-private-family
 2495     SourceImage string `json:"sourceImage,omitempty"`
 2496 
 2497     // SourceImageEncryptionKey: The customer-supplied encryption key of the
 2498     // source image. Required if the source image is protected by a
 2499     // customer-supplied encryption key.
 2500     SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
 2501 
 2502     // SourceImageId: [Output Only] The ID value of the image used to create
 2503     // this disk. This value identifies the exact image that was used to
 2504     // create this persistent disk. For example, if you created the
 2505     // persistent disk from an image that was later deleted and recreated
 2506     // under the same name, the source image ID would identify the exact
 2507     // version of the image that was used.
 2508     SourceImageId string `json:"sourceImageId,omitempty"`
 2509 
 2510     // SourceSnapshot: The source snapshot used to create this disk. You can
 2511     // provide this as a partial or full URL to the resource. For example,
 2512     // the following are valid values:
 2513     // -
 2514     // https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
 2515     // - projects/project/global/snapshots/snapshot
 2516     // - global/snapshots/snapshot
 2517     SourceSnapshot string `json:"sourceSnapshot,omitempty"`
 2518 
 2519     // SourceSnapshotEncryptionKey: The customer-supplied encryption key of
 2520     // the source snapshot. Required if the source snapshot is protected by
 2521     // a customer-supplied encryption key.
 2522     SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
 2523 
 2524     // SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
 2525     // create this disk. This value identifies the exact snapshot that was
 2526     // used to create this persistent disk. For example, if you created the
 2527     // persistent disk from a snapshot that was later deleted and recreated
 2528     // under the same name, the source snapshot ID would identify the exact
 2529     // version of the snapshot that was used.
 2530     SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
 2531 
 2532     // Status: [Output Only] The status of disk creation.
 2533     //
 2534     // Possible values:
 2535     //   "CREATING"
 2536     //   "FAILED"
 2537     //   "READY"
 2538     //   "RESTORING"
 2539     Status string `json:"status,omitempty"`
 2540 
 2541     // Type: URL of the disk type resource describing which disk type to use
 2542     // to create the disk. Provide this when creating the disk.
 2543     Type string `json:"type,omitempty"`
 2544 
 2545     // Users: [Output Only] Links to the users of the disk (attached
 2546     // instances) in form: project/zones/zone/instances/instance
 2547     Users []string `json:"users,omitempty"`
 2548 
 2549     // Zone: [Output Only] URL of the zone where the disk resides.
 2550     Zone string `json:"zone,omitempty"`
 2551 
 2552     // ServerResponse contains the HTTP response code and headers from the
 2553     // server.
 2554     googleapi.ServerResponse `json:"-"`
 2555 
 2556     // ForceSendFields is a list of field names (e.g. "CreationTimestamp")
 2557     // to unconditionally include in API requests. By default, fields with
 2558     // empty values are omitted from API requests. However, any non-pointer,
 2559     // non-interface field appearing in ForceSendFields will be sent to the
 2560     // server regardless of whether the field is empty or not. This may be
 2561     // used to include empty fields in Patch requests.
 2562     ForceSendFields []string `json:"-"`
 2563 
 2564     // NullFields is a list of field names (e.g. "CreationTimestamp") to
 2565     // include in API requests with the JSON null value. By default, fields
 2566     // with empty values are omitted from API requests. However, any field
 2567     // with an empty value appearing in NullFields will be sent to the
 2568     // server as null. It is an error if a field in this list has a
 2569     // non-empty value. This may be used to include null fields in Patch
 2570     // requests.
 2571     NullFields []string `json:"-"`
 2572 }
 2573 
 2574 func (s *Disk) MarshalJSON() ([]byte, error) {
 2575     type noMethod Disk
 2576     raw := noMethod(*s)
 2577     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2578 }
 2579 
 2580 type DiskAggregatedList struct {
 2581     // Id: [Output Only] The unique identifier for the resource. This
 2582     // identifier is defined by the server.
 2583     Id string `json:"id,omitempty"`
 2584 
 2585     // Items: [Output Only] A map of scoped disk lists.
 2586     Items map[string]DisksScopedList `json:"items,omitempty"`
 2587 
 2588     // Kind: [Output Only] Type of resource. Always
 2589     // compute#diskAggregatedList for aggregated lists of persistent disks.
 2590     Kind string `json:"kind,omitempty"`
 2591 
 2592     // NextPageToken: [Output Only] This token allows you to get the next
 2593     // page of results for list requests. If the number of results is larger
 2594     // than maxResults, use the nextPageToken as a value for the query
 2595     // parameter pageToken in the next list request. Subsequent list
 2596     // requests will have their own nextPageToken to continue paging through
 2597     // the results.
 2598     NextPageToken string `json:"nextPageToken,omitempty"`
 2599 
 2600     // SelfLink: [Output Only] Server-defined URL for this resource.
 2601     SelfLink string `json:"selfLink,omitempty"`
 2602 
 2603     // ServerResponse contains the HTTP response code and headers from the
 2604     // server.
 2605     googleapi.ServerResponse `json:"-"`
 2606 
 2607     // ForceSendFields is a list of field names (e.g. "Id") to
 2608     // unconditionally include in API requests. By default, fields with
 2609     // empty values are omitted from API requests. However, any non-pointer,
 2610     // non-interface field appearing in ForceSendFields will be sent to the
 2611     // server regardless of whether the field is empty or not. This may be
 2612     // used to include empty fields in Patch requests.
 2613     ForceSendFields []string `json:"-"`
 2614 
 2615     // NullFields is a list of field names (e.g. "Id") to include in API
 2616     // requests with the JSON null value. By default, fields with empty
 2617     // values are omitted from API requests. However, any field with an
 2618     // empty value appearing in NullFields will be sent to the server as
 2619     // null. It is an error if a field in this list has a non-empty value.
 2620     // This may be used to include null fields in Patch requests.
 2621     NullFields []string `json:"-"`
 2622 }
 2623 
 2624 func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
 2625     type noMethod DiskAggregatedList
 2626     raw := noMethod(*s)
 2627     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2628 }
 2629 
 2630 // DiskList: A list of Disk resources.
 2631 type DiskList struct {
 2632     // Id: [Output Only] The unique identifier for the resource. This
 2633     // identifier is defined by the server.
 2634     Id string `json:"id,omitempty"`
 2635 
 2636     // Items: [Output Only] A list of persistent disks.
 2637     Items []*Disk `json:"items,omitempty"`
 2638 
 2639     // Kind: [Output Only] Type of resource. Always compute#diskList for
 2640     // lists of disks.
 2641     Kind string `json:"kind,omitempty"`
 2642 
 2643     // NextPageToken: [Output Only] This token allows you to get the next
 2644     // page of results for list requests. If the number of results is larger
 2645     // than maxResults, use the nextPageToken as a value for the query
 2646     // parameter pageToken in the next list request. Subsequent list
 2647     // requests will have their own nextPageToken to continue paging through
 2648     // the results.
 2649     NextPageToken string `json:"nextPageToken,omitempty"`
 2650 
 2651     // SelfLink: [Output Only] Server-defined URL for this resource.
 2652     SelfLink string `json:"selfLink,omitempty"`
 2653 
 2654     // ServerResponse contains the HTTP response code and headers from the
 2655     // server.
 2656     googleapi.ServerResponse `json:"-"`
 2657 
 2658     // ForceSendFields is a list of field names (e.g. "Id") to
 2659     // unconditionally include in API requests. By default, fields with
 2660     // empty values are omitted from API requests. However, any non-pointer,
 2661     // non-interface field appearing in ForceSendFields will be sent to the
 2662     // server regardless of whether the field is empty or not. This may be
 2663     // used to include empty fields in Patch requests.
 2664     ForceSendFields []string `json:"-"`
 2665 
 2666     // NullFields is a list of field names (e.g. "Id") to include in API
 2667     // requests with the JSON null value. By default, fields with empty
 2668     // values are omitted from API requests. However, any field with an
 2669     // empty value appearing in NullFields will be sent to the server as
 2670     // null. It is an error if a field in this list has a non-empty value.
 2671     // This may be used to include null fields in Patch requests.
 2672     NullFields []string `json:"-"`
 2673 }
 2674 
 2675 func (s *DiskList) MarshalJSON() ([]byte, error) {
 2676     type noMethod DiskList
 2677     raw := noMethod(*s)
 2678     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2679 }
 2680 
 2681 type DiskMoveRequest struct {
 2682     // DestinationZone: The URL of the destination zone to move the disk.
 2683     // This can be a full or partial URL. For example, the following are all
 2684     // valid URLs to a zone:
 2685     // - https://www.googleapis.com/compute/v1/projects/project/zones/zone
 2686     //
 2687     // - projects/project/zones/zone
 2688     // - zones/zone
 2689     DestinationZone string `json:"destinationZone,omitempty"`
 2690 
 2691     // TargetDisk: The URL of the target disk to move. This can be a full or
 2692     // partial URL. For example, the following are all valid URLs to a disk:
 2693     //
 2694     // -
 2695     // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
 2696     // - projects/project/zones/zone/disks/disk
 2697     // - zones/zone/disks/disk
 2698     TargetDisk string `json:"targetDisk,omitempty"`
 2699 
 2700     // ForceSendFields is a list of field names (e.g. "DestinationZone") to
 2701     // unconditionally include in API requests. By default, fields with
 2702     // empty values are omitted from API requests. However, any non-pointer,
 2703     // non-interface field appearing in ForceSendFields will be sent to the
 2704     // server regardless of whether the field is empty or not. This may be
 2705     // used to include empty fields in Patch requests.
 2706     ForceSendFields []string `json:"-"`
 2707 
 2708     // NullFields is a list of field names (e.g. "DestinationZone") to
 2709     // include in API requests with the JSON null value. By default, fields
 2710     // with empty values are omitted from API requests. However, any field
 2711     // with an empty value appearing in NullFields will be sent to the
 2712     // server as null. It is an error if a field in this list has a
 2713     // non-empty value. This may be used to include null fields in Patch
 2714     // requests.
 2715     NullFields []string `json:"-"`
 2716 }
 2717 
 2718 func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
 2719     type noMethod DiskMoveRequest
 2720     raw := noMethod(*s)
 2721     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2722 }
 2723 
 2724 // DiskType: A DiskType resource.
 2725 type DiskType struct {
 2726     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 2727     // format.
 2728     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 2729 
 2730     // DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
 2731     // GB.
 2732     DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
 2733 
 2734     // Deprecated: [Output Only] The deprecation status associated with this
 2735     // disk type.
 2736     Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
 2737 
 2738     // Description: [Output Only] An optional description of this resource.
 2739     Description string `json:"description,omitempty"`
 2740 
 2741     // Id: [Output Only] The unique identifier for the resource. This
 2742     // identifier is defined by the server.
 2743     Id uint64 `json:"id,omitempty,string"`
 2744 
 2745     // Kind: [Output Only] Type of the resource. Always compute#diskType for
 2746     // disk types.
 2747     Kind string `json:"kind,omitempty"`
 2748 
 2749     // Name: [Output Only] Name of the resource.
 2750     Name string `json:"name,omitempty"`
 2751 
 2752     // SelfLink: [Output Only] Server-defined URL for the resource.
 2753     SelfLink string `json:"selfLink,omitempty"`
 2754 
 2755     // ValidDiskSize: [Output Only] An optional textual description of the
 2756     // valid disk size, such as "10GB-10TB".
 2757     ValidDiskSize string `json:"validDiskSize,omitempty"`
 2758 
 2759     // Zone: [Output Only] URL of the zone where the disk type resides.
 2760     Zone string `json:"zone,omitempty"`
 2761 
 2762     // ServerResponse contains the HTTP response code and headers from the
 2763     // server.
 2764     googleapi.ServerResponse `json:"-"`
 2765 
 2766     // ForceSendFields is a list of field names (e.g. "CreationTimestamp")
 2767     // to unconditionally include in API requests. By default, fields with
 2768     // empty values are omitted from API requests. However, any non-pointer,
 2769     // non-interface field appearing in ForceSendFields will be sent to the
 2770     // server regardless of whether the field is empty or not. This may be
 2771     // used to include empty fields in Patch requests.
 2772     ForceSendFields []string `json:"-"`
 2773 
 2774     // NullFields is a list of field names (e.g. "CreationTimestamp") to
 2775     // include in API requests with the JSON null value. By default, fields
 2776     // with empty values are omitted from API requests. However, any field
 2777     // with an empty value appearing in NullFields will be sent to the
 2778     // server as null. It is an error if a field in this list has a
 2779     // non-empty value. This may be used to include null fields in Patch
 2780     // requests.
 2781     NullFields []string `json:"-"`
 2782 }
 2783 
 2784 func (s *DiskType) MarshalJSON() ([]byte, error) {
 2785     type noMethod DiskType
 2786     raw := noMethod(*s)
 2787     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2788 }
 2789 
 2790 type DiskTypeAggregatedList struct {
 2791     // Id: [Output Only] The unique identifier for the resource. This
 2792     // identifier is defined by the server.
 2793     Id string `json:"id,omitempty"`
 2794 
 2795     // Items: [Output Only] A map of scoped disk type lists.
 2796     Items map[string]DiskTypesScopedList `json:"items,omitempty"`
 2797 
 2798     // Kind: [Output Only] Type of resource. Always
 2799     // compute#diskTypeAggregatedList.
 2800     Kind string `json:"kind,omitempty"`
 2801 
 2802     // NextPageToken: [Output Only] This token allows you to get the next
 2803     // page of results for list requests. If the number of results is larger
 2804     // than maxResults, use the nextPageToken as a value for the query
 2805     // parameter pageToken in the next list request. Subsequent list
 2806     // requests will have their own nextPageToken to continue paging through
 2807     // the results.
 2808     NextPageToken string `json:"nextPageToken,omitempty"`
 2809 
 2810     // SelfLink: [Output Only] Server-defined URL for this resource.
 2811     SelfLink string `json:"selfLink,omitempty"`
 2812 
 2813     // ServerResponse contains the HTTP response code and headers from the
 2814     // server.
 2815     googleapi.ServerResponse `json:"-"`
 2816 
 2817     // ForceSendFields is a list of field names (e.g. "Id") to
 2818     // unconditionally include in API requests. By default, fields with
 2819     // empty values are omitted from API requests. However, any non-pointer,
 2820     // non-interface field appearing in ForceSendFields will be sent to the
 2821     // server regardless of whether the field is empty or not. This may be
 2822     // used to include empty fields in Patch requests.
 2823     ForceSendFields []string `json:"-"`
 2824 
 2825     // NullFields is a list of field names (e.g. "Id") to include in API
 2826     // requests with the JSON null value. By default, fields with empty
 2827     // values are omitted from API requests. However, any field with an
 2828     // empty value appearing in NullFields will be sent to the server as
 2829     // null. It is an error if a field in this list has a non-empty value.
 2830     // This may be used to include null fields in Patch requests.
 2831     NullFields []string `json:"-"`
 2832 }
 2833 
 2834 func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
 2835     type noMethod DiskTypeAggregatedList
 2836     raw := noMethod(*s)
 2837     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2838 }
 2839 
 2840 // DiskTypeList: Contains a list of disk types.
 2841 type DiskTypeList struct {
 2842     // Id: [Output Only] The unique identifier for the resource. This
 2843     // identifier is defined by the server.
 2844     Id string `json:"id,omitempty"`
 2845 
 2846     // Items: [Output Only] A list of Disk Type resources.
 2847     Items []*DiskType `json:"items,omitempty"`
 2848 
 2849     // Kind: [Output Only] Type of resource. Always compute#diskTypeList for
 2850     // disk types.
 2851     Kind string `json:"kind,omitempty"`
 2852 
 2853     // NextPageToken: [Output Only] This token allows you to get the next
 2854     // page of results for list requests. If the number of results is larger
 2855     // than maxResults, use the nextPageToken as a value for the query
 2856     // parameter pageToken in the next list request. Subsequent list
 2857     // requests will have their own nextPageToken to continue paging through
 2858     // the results.
 2859     NextPageToken string `json:"nextPageToken,omitempty"`
 2860 
 2861     // SelfLink: [Output Only] Server-defined URL for this resource.
 2862     SelfLink string `json:"selfLink,omitempty"`
 2863 
 2864     // ServerResponse contains the HTTP response code and headers from the
 2865     // server.
 2866     googleapi.ServerResponse `json:"-"`
 2867 
 2868     // ForceSendFields is a list of field names (e.g. "Id") to
 2869     // unconditionally include in API requests. By default, fields with
 2870     // empty values are omitted from API requests. However, any non-pointer,
 2871     // non-interface field appearing in ForceSendFields will be sent to the
 2872     // server regardless of whether the field is empty or not. This may be
 2873     // used to include empty fields in Patch requests.
 2874     ForceSendFields []string `json:"-"`
 2875 
 2876     // NullFields is a list of field names (e.g. "Id") to include in API
 2877     // requests with the JSON null value. By default, fields with empty
 2878     // values are omitted from API requests. However, any field with an
 2879     // empty value appearing in NullFields will be sent to the server as
 2880     // null. It is an error if a field in this list has a non-empty value.
 2881     // This may be used to include null fields in Patch requests.
 2882     NullFields []string `json:"-"`
 2883 }
 2884 
 2885 func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
 2886     type noMethod DiskTypeList
 2887     raw := noMethod(*s)
 2888     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2889 }
 2890 
 2891 type DiskTypesScopedList struct {
 2892     // DiskTypes: [Output Only] List of disk types contained in this scope.
 2893     DiskTypes []*DiskType `json:"diskTypes,omitempty"`
 2894 
 2895     // Warning: [Output Only] Informational warning which replaces the list
 2896     // of disk types when the list is empty.
 2897     Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
 2898 
 2899     // ForceSendFields is a list of field names (e.g. "DiskTypes") to
 2900     // unconditionally include in API requests. By default, fields with
 2901     // empty values are omitted from API requests. However, any non-pointer,
 2902     // non-interface field appearing in ForceSendFields will be sent to the
 2903     // server regardless of whether the field is empty or not. This may be
 2904     // used to include empty fields in Patch requests.
 2905     ForceSendFields []string `json:"-"`
 2906 
 2907     // NullFields is a list of field names (e.g. "DiskTypes") to include in
 2908     // API requests with the JSON null value. By default, fields with empty
 2909     // values are omitted from API requests. However, any field with an
 2910     // empty value appearing in NullFields will be sent to the server as
 2911     // null. It is an error if a field in this list has a non-empty value.
 2912     // This may be used to include null fields in Patch requests.
 2913     NullFields []string `json:"-"`
 2914 }
 2915 
 2916 func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
 2917     type noMethod DiskTypesScopedList
 2918     raw := noMethod(*s)
 2919     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2920 }
 2921 
 2922 // DiskTypesScopedListWarning: [Output Only] Informational warning which
 2923 // replaces the list of disk types when the list is empty.
 2924 type DiskTypesScopedListWarning struct {
 2925     // Code: [Output Only] A warning code, if applicable. For example,
 2926     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 2927     // the response.
 2928     //
 2929     // Possible values:
 2930     //   "CLEANUP_FAILED"
 2931     //   "DEPRECATED_RESOURCE_USED"
 2932     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 2933     //   "FIELD_VALUE_OVERRIDEN"
 2934     //   "INJECTED_KERNELS_DEPRECATED"
 2935     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 2936     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 2937     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 2938     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 2939     //   "NEXT_HOP_NOT_RUNNING"
 2940     //   "NOT_CRITICAL_ERROR"
 2941     //   "NO_RESULTS_ON_PAGE"
 2942     //   "REQUIRED_TOS_AGREEMENT"
 2943     //   "RESOURCE_NOT_DELETED"
 2944     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 2945     //   "UNREACHABLE"
 2946     Code string `json:"code,omitempty"`
 2947 
 2948     // Data: [Output Only] Metadata about this warning in key: value format.
 2949     // For example:
 2950     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 2951     Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
 2952 
 2953     // Message: [Output Only] A human-readable description of the warning
 2954     // code.
 2955     Message string `json:"message,omitempty"`
 2956 
 2957     // ForceSendFields is a list of field names (e.g. "Code") to
 2958     // unconditionally include in API requests. By default, fields with
 2959     // empty values are omitted from API requests. However, any non-pointer,
 2960     // non-interface field appearing in ForceSendFields will be sent to the
 2961     // server regardless of whether the field is empty or not. This may be
 2962     // used to include empty fields in Patch requests.
 2963     ForceSendFields []string `json:"-"`
 2964 
 2965     // NullFields is a list of field names (e.g. "Code") to include in API
 2966     // requests with the JSON null value. By default, fields with empty
 2967     // values are omitted from API requests. However, any field with an
 2968     // empty value appearing in NullFields will be sent to the server as
 2969     // null. It is an error if a field in this list has a non-empty value.
 2970     // This may be used to include null fields in Patch requests.
 2971     NullFields []string `json:"-"`
 2972 }
 2973 
 2974 func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
 2975     type noMethod DiskTypesScopedListWarning
 2976     raw := noMethod(*s)
 2977     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 2978 }
 2979 
 2980 type DiskTypesScopedListWarningData struct {
 2981     // Key: [Output Only] A key that provides more detail on the warning
 2982     // being returned. For example, for warnings where there are no results
 2983     // in a list request for a particular zone, this key might be scope and
 2984     // the key value might be the zone name. Other examples might be a key
 2985     // indicating a deprecated resource and a suggested replacement, or a
 2986     // warning about invalid network settings (for example, if an instance
 2987     // attempts to perform IP forwarding but is not enabled for IP
 2988     // forwarding).
 2989     Key string `json:"key,omitempty"`
 2990 
 2991     // Value: [Output Only] A warning data value corresponding to the key.
 2992     Value string `json:"value,omitempty"`
 2993 
 2994     // ForceSendFields is a list of field names (e.g. "Key") to
 2995     // unconditionally include in API requests. By default, fields with
 2996     // empty values are omitted from API requests. However, any non-pointer,
 2997     // non-interface field appearing in ForceSendFields will be sent to the
 2998     // server regardless of whether the field is empty or not. This may be
 2999     // used to include empty fields in Patch requests.
 3000     ForceSendFields []string `json:"-"`
 3001 
 3002     // NullFields is a list of field names (e.g. "Key") to include in API
 3003     // requests with the JSON null value. By default, fields with empty
 3004     // values are omitted from API requests. However, any field with an
 3005     // empty value appearing in NullFields will be sent to the server as
 3006     // null. It is an error if a field in this list has a non-empty value.
 3007     // This may be used to include null fields in Patch requests.
 3008     NullFields []string `json:"-"`
 3009 }
 3010 
 3011 func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
 3012     type noMethod DiskTypesScopedListWarningData
 3013     raw := noMethod(*s)
 3014     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3015 }
 3016 
 3017 type DisksResizeRequest struct {
 3018     // SizeGb: The new size of the persistent disk, which is specified in
 3019     // GB.
 3020     SizeGb int64 `json:"sizeGb,omitempty,string"`
 3021 
 3022     // ForceSendFields is a list of field names (e.g. "SizeGb") to
 3023     // unconditionally include in API requests. By default, fields with
 3024     // empty values are omitted from API requests. However, any non-pointer,
 3025     // non-interface field appearing in ForceSendFields will be sent to the
 3026     // server regardless of whether the field is empty or not. This may be
 3027     // used to include empty fields in Patch requests.
 3028     ForceSendFields []string `json:"-"`
 3029 
 3030     // NullFields is a list of field names (e.g. "SizeGb") to include in API
 3031     // requests with the JSON null value. By default, fields with empty
 3032     // values are omitted from API requests. However, any field with an
 3033     // empty value appearing in NullFields will be sent to the server as
 3034     // null. It is an error if a field in this list has a non-empty value.
 3035     // This may be used to include null fields in Patch requests.
 3036     NullFields []string `json:"-"`
 3037 }
 3038 
 3039 func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
 3040     type noMethod DisksResizeRequest
 3041     raw := noMethod(*s)
 3042     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3043 }
 3044 
 3045 type DisksScopedList struct {
 3046     // Disks: [Output Only] List of disks contained in this scope.
 3047     Disks []*Disk `json:"disks,omitempty"`
 3048 
 3049     // Warning: [Output Only] Informational warning which replaces the list
 3050     // of disks when the list is empty.
 3051     Warning *DisksScopedListWarning `json:"warning,omitempty"`
 3052 
 3053     // ForceSendFields is a list of field names (e.g. "Disks") to
 3054     // unconditionally include in API requests. By default, fields with
 3055     // empty values are omitted from API requests. However, any non-pointer,
 3056     // non-interface field appearing in ForceSendFields will be sent to the
 3057     // server regardless of whether the field is empty or not. This may be
 3058     // used to include empty fields in Patch requests.
 3059     ForceSendFields []string `json:"-"`
 3060 
 3061     // NullFields is a list of field names (e.g. "Disks") to include in API
 3062     // requests with the JSON null value. By default, fields with empty
 3063     // values are omitted from API requests. However, any field with an
 3064     // empty value appearing in NullFields will be sent to the server as
 3065     // null. It is an error if a field in this list has a non-empty value.
 3066     // This may be used to include null fields in Patch requests.
 3067     NullFields []string `json:"-"`
 3068 }
 3069 
 3070 func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
 3071     type noMethod DisksScopedList
 3072     raw := noMethod(*s)
 3073     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3074 }
 3075 
 3076 // DisksScopedListWarning: [Output Only] Informational warning which
 3077 // replaces the list of disks when the list is empty.
 3078 type DisksScopedListWarning struct {
 3079     // Code: [Output Only] A warning code, if applicable. For example,
 3080     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 3081     // the response.
 3082     //
 3083     // Possible values:
 3084     //   "CLEANUP_FAILED"
 3085     //   "DEPRECATED_RESOURCE_USED"
 3086     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 3087     //   "FIELD_VALUE_OVERRIDEN"
 3088     //   "INJECTED_KERNELS_DEPRECATED"
 3089     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 3090     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 3091     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 3092     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 3093     //   "NEXT_HOP_NOT_RUNNING"
 3094     //   "NOT_CRITICAL_ERROR"
 3095     //   "NO_RESULTS_ON_PAGE"
 3096     //   "REQUIRED_TOS_AGREEMENT"
 3097     //   "RESOURCE_NOT_DELETED"
 3098     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 3099     //   "UNREACHABLE"
 3100     Code string `json:"code,omitempty"`
 3101 
 3102     // Data: [Output Only] Metadata about this warning in key: value format.
 3103     // For example:
 3104     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 3105     Data []*DisksScopedListWarningData `json:"data,omitempty"`
 3106 
 3107     // Message: [Output Only] A human-readable description of the warning
 3108     // code.
 3109     Message string `json:"message,omitempty"`
 3110 
 3111     // ForceSendFields is a list of field names (e.g. "Code") to
 3112     // unconditionally include in API requests. By default, fields with
 3113     // empty values are omitted from API requests. However, any non-pointer,
 3114     // non-interface field appearing in ForceSendFields will be sent to the
 3115     // server regardless of whether the field is empty or not. This may be
 3116     // used to include empty fields in Patch requests.
 3117     ForceSendFields []string `json:"-"`
 3118 
 3119     // NullFields is a list of field names (e.g. "Code") to include in API
 3120     // requests with the JSON null value. By default, fields with empty
 3121     // values are omitted from API requests. However, any field with an
 3122     // empty value appearing in NullFields will be sent to the server as
 3123     // null. It is an error if a field in this list has a non-empty value.
 3124     // This may be used to include null fields in Patch requests.
 3125     NullFields []string `json:"-"`
 3126 }
 3127 
 3128 func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
 3129     type noMethod DisksScopedListWarning
 3130     raw := noMethod(*s)
 3131     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3132 }
 3133 
 3134 type DisksScopedListWarningData struct {
 3135     // Key: [Output Only] A key that provides more detail on the warning
 3136     // being returned. For example, for warnings where there are no results
 3137     // in a list request for a particular zone, this key might be scope and
 3138     // the key value might be the zone name. Other examples might be a key
 3139     // indicating a deprecated resource and a suggested replacement, or a
 3140     // warning about invalid network settings (for example, if an instance
 3141     // attempts to perform IP forwarding but is not enabled for IP
 3142     // forwarding).
 3143     Key string `json:"key,omitempty"`
 3144 
 3145     // Value: [Output Only] A warning data value corresponding to the key.
 3146     Value string `json:"value,omitempty"`
 3147 
 3148     // ForceSendFields is a list of field names (e.g. "Key") to
 3149     // unconditionally include in API requests. By default, fields with
 3150     // empty values are omitted from API requests. However, any non-pointer,
 3151     // non-interface field appearing in ForceSendFields will be sent to the
 3152     // server regardless of whether the field is empty or not. This may be
 3153     // used to include empty fields in Patch requests.
 3154     ForceSendFields []string `json:"-"`
 3155 
 3156     // NullFields is a list of field names (e.g. "Key") to include in API
 3157     // requests with the JSON null value. By default, fields with empty
 3158     // values are omitted from API requests. However, any field with an
 3159     // empty value appearing in NullFields will be sent to the server as
 3160     // null. It is an error if a field in this list has a non-empty value.
 3161     // This may be used to include null fields in Patch requests.
 3162     NullFields []string `json:"-"`
 3163 }
 3164 
 3165 func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
 3166     type noMethod DisksScopedListWarningData
 3167     raw := noMethod(*s)
 3168     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3169 }
 3170 
 3171 // Firewall: Represents a Firewall resource.
 3172 type Firewall struct {
 3173     // Allowed: The list of ALLOW rules specified by this firewall. Each
 3174     // rule specifies a protocol and port-range tuple that describes a
 3175     // permitted connection.
 3176     Allowed []*FirewallAllowed `json:"allowed,omitempty"`
 3177 
 3178     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 3179     // format.
 3180     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 3181 
 3182     // Description: An optional description of this resource. Provide this
 3183     // property when you create the resource.
 3184     Description string `json:"description,omitempty"`
 3185 
 3186     // Id: [Output Only] The unique identifier for the resource. This
 3187     // identifier is defined by the server.
 3188     Id uint64 `json:"id,omitempty,string"`
 3189 
 3190     // Kind: [Output Ony] Type of the resource. Always compute#firewall for
 3191     // firewall rules.
 3192     Kind string `json:"kind,omitempty"`
 3193 
 3194     // Name: Name of the resource; provided by the client when the resource
 3195     // is created. The name must be 1-63 characters long, and comply with
 3196     // RFC1035. Specifically, the name must be 1-63 characters long and
 3197     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 3198     // the first character must be a lowercase letter, and all following
 3199     // characters must be a dash, lowercase letter, or digit, except the
 3200     // last character, which cannot be a dash.
 3201     Name string `json:"name,omitempty"`
 3202 
 3203     // Network: URL of the network resource for this firewall rule. If not
 3204     // specified when creating a firewall rule, the default network is
 3205     // used:
 3206     // global/networks/default
 3207     // If you choose to specify this property, you can specify the network
 3208     // as a full or partial URL. For example, the following are all valid
 3209     // URLs:
 3210     // -
 3211     // https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
 3212     // - projects/myproject/global/networks/my-network
 3213     // - global/networks/default
 3214     Network string `json:"network,omitempty"`
 3215 
 3216     // SelfLink: [Output Only] Server-defined URL for the resource.
 3217     SelfLink string `json:"selfLink,omitempty"`
 3218 
 3219     // SourceRanges: If source ranges are specified, the firewall will apply
 3220     // only to traffic that has source IP address in these ranges. These
 3221     // ranges must be expressed in CIDR format. One or both of sourceRanges
 3222     // and sourceTags may be set. If both properties are set, the firewall
 3223     // will apply to traffic that has source IP address within sourceRanges
 3224     // OR the source IP that belongs to a tag listed in the sourceTags
 3225     // property. The connection does not need to match both properties for
 3226     // the firewall to apply.
 3227     SourceRanges []string `json:"sourceRanges,omitempty"`
 3228 
 3229     // SourceTags: If source tags are specified, the firewall will apply
 3230     // only to traffic with source IP that belongs to a tag listed in source
 3231     // tags. Source tags cannot be used to control traffic to an instance's
 3232     // external IP address. Because tags are associated with an instance,
 3233     // not an IP address. One or both of sourceRanges and sourceTags may be
 3234     // set. If both properties are set, the firewall will apply to traffic
 3235     // that has source IP address within sourceRanges OR the source IP that
 3236     // belongs to a tag listed in the sourceTags property. The connection
 3237     // does not need to match both properties for the firewall to apply.
 3238     SourceTags []string `json:"sourceTags,omitempty"`
 3239 
 3240     // TargetTags: A list of instance tags indicating sets of instances
 3241     // located in the network that may make network connections as specified
 3242     // in allowed[]. If no targetTags are specified, the firewall rule
 3243     // applies to all instances on the specified network.
 3244     TargetTags []string `json:"targetTags,omitempty"`
 3245 
 3246     // ServerResponse contains the HTTP response code and headers from the
 3247     // server.
 3248     googleapi.ServerResponse `json:"-"`
 3249 
 3250     // ForceSendFields is a list of field names (e.g. "Allowed") to
 3251     // unconditionally include in API requests. By default, fields with
 3252     // empty values are omitted from API requests. However, any non-pointer,
 3253     // non-interface field appearing in ForceSendFields will be sent to the
 3254     // server regardless of whether the field is empty or not. This may be
 3255     // used to include empty fields in Patch requests.
 3256     ForceSendFields []string `json:"-"`
 3257 
 3258     // NullFields is a list of field names (e.g. "Allowed") to include in
 3259     // API requests with the JSON null value. By default, fields with empty
 3260     // values are omitted from API requests. However, any field with an
 3261     // empty value appearing in NullFields will be sent to the server as
 3262     // null. It is an error if a field in this list has a non-empty value.
 3263     // This may be used to include null fields in Patch requests.
 3264     NullFields []string `json:"-"`
 3265 }
 3266 
 3267 func (s *Firewall) MarshalJSON() ([]byte, error) {
 3268     type noMethod Firewall
 3269     raw := noMethod(*s)
 3270     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3271 }
 3272 
 3273 type FirewallAllowed struct {
 3274     // IPProtocol: The IP protocol to which this rule applies. The protocol
 3275     // type is required when creating a firewall rule. This value can either
 3276     // be one of the following well known protocol strings (tcp, udp, icmp,
 3277     // esp, ah, sctp), or the IP protocol number.
 3278     IPProtocol string `json:"IPProtocol,omitempty"`
 3279 
 3280     // Ports: An optional list of ports to which this rule applies. This
 3281     // field is only applicable for UDP or TCP protocol. Each entry must be
 3282     // either an integer or a range. If not specified, this rule applies to
 3283     // connections through any port.
 3284     //
 3285     // Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
 3286     Ports []string `json:"ports,omitempty"`
 3287 
 3288     // ForceSendFields is a list of field names (e.g. "IPProtocol") to
 3289     // unconditionally include in API requests. By default, fields with
 3290     // empty values are omitted from API requests. However, any non-pointer,
 3291     // non-interface field appearing in ForceSendFields will be sent to the
 3292     // server regardless of whether the field is empty or not. This may be
 3293     // used to include empty fields in Patch requests.
 3294     ForceSendFields []string `json:"-"`
 3295 
 3296     // NullFields is a list of field names (e.g. "IPProtocol") to include in
 3297     // API requests with the JSON null value. By default, fields with empty
 3298     // values are omitted from API requests. However, any field with an
 3299     // empty value appearing in NullFields will be sent to the server as
 3300     // null. It is an error if a field in this list has a non-empty value.
 3301     // This may be used to include null fields in Patch requests.
 3302     NullFields []string `json:"-"`
 3303 }
 3304 
 3305 func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
 3306     type noMethod FirewallAllowed
 3307     raw := noMethod(*s)
 3308     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3309 }
 3310 
 3311 // FirewallList: Contains a list of firewalls.
 3312 type FirewallList struct {
 3313     // Id: [Output Only] The unique identifier for the resource. This
 3314     // identifier is defined by the server.
 3315     Id string `json:"id,omitempty"`
 3316 
 3317     // Items: [Output Only] A list of Firewall resources.
 3318     Items []*Firewall `json:"items,omitempty"`
 3319 
 3320     // Kind: [Output Only] Type of resource. Always compute#firewallList for
 3321     // lists of firewalls.
 3322     Kind string `json:"kind,omitempty"`
 3323 
 3324     // NextPageToken: [Output Only] This token allows you to get the next
 3325     // page of results for list requests. If the number of results is larger
 3326     // than maxResults, use the nextPageToken as a value for the query
 3327     // parameter pageToken in the next list request. Subsequent list
 3328     // requests will have their own nextPageToken to continue paging through
 3329     // the results.
 3330     NextPageToken string `json:"nextPageToken,omitempty"`
 3331 
 3332     // SelfLink: [Output Only] Server-defined URL for this resource.
 3333     SelfLink string `json:"selfLink,omitempty"`
 3334 
 3335     // ServerResponse contains the HTTP response code and headers from the
 3336     // server.
 3337     googleapi.ServerResponse `json:"-"`
 3338 
 3339     // ForceSendFields is a list of field names (e.g. "Id") to
 3340     // unconditionally include in API requests. By default, fields with
 3341     // empty values are omitted from API requests. However, any non-pointer,
 3342     // non-interface field appearing in ForceSendFields will be sent to the
 3343     // server regardless of whether the field is empty or not. This may be
 3344     // used to include empty fields in Patch requests.
 3345     ForceSendFields []string `json:"-"`
 3346 
 3347     // NullFields is a list of field names (e.g. "Id") to include in API
 3348     // requests with the JSON null value. By default, fields with empty
 3349     // values are omitted from API requests. However, any field with an
 3350     // empty value appearing in NullFields will be sent to the server as
 3351     // null. It is an error if a field in this list has a non-empty value.
 3352     // This may be used to include null fields in Patch requests.
 3353     NullFields []string `json:"-"`
 3354 }
 3355 
 3356 func (s *FirewallList) MarshalJSON() ([]byte, error) {
 3357     type noMethod FirewallList
 3358     raw := noMethod(*s)
 3359     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3360 }
 3361 
 3362 // ForwardingRule: A ForwardingRule resource. A ForwardingRule resource
 3363 // specifies which pool of target virtual machines to forward a packet
 3364 // to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
 3365 type ForwardingRule struct {
 3366     // IPAddress: The IP address that this forwarding rule is serving on
 3367     // behalf of.
 3368     //
 3369     // For global forwarding rules, the address must be a global IP; for
 3370     // regional forwarding rules, the address must live in the same region
 3371     // as the forwarding rule. By default, this field is empty and an
 3372     // ephemeral IP from the same scope (global or regional) will be
 3373     // assigned.
 3374     //
 3375     // When the load balancing scheme is INTERNAL, this can only be an RFC
 3376     // 1918 IP address belonging to the network/subnetwork configured for
 3377     // the forwarding rule. A reserved address cannot be used. If the field
 3378     // is empty, the IP address will be automatically allocated from the
 3379     // internal IP range of the subnetwork or network configured for this
 3380     // forwarding rule.
 3381     IPAddress string `json:"IPAddress,omitempty"`
 3382 
 3383     // IPProtocol: The IP protocol to which this rule applies. Valid options
 3384     // are TCP, UDP, ESP, AH, SCTP or ICMP.
 3385     //
 3386     // When the load balancing scheme is INTERNAL</code, only TCP and UDP
 3387     // are valid.
 3388     //
 3389     // Possible values:
 3390     //   "AH"
 3391     //   "ESP"
 3392     //   "SCTP"
 3393     //   "TCP"
 3394     //   "UDP"
 3395     IPProtocol string `json:"IPProtocol,omitempty"`
 3396 
 3397     // BackendService: This field is not used for external load
 3398     // balancing.
 3399     //
 3400     // For internal load balancing, this field identifies the BackendService
 3401     // resource to receive the matched traffic.
 3402     BackendService string `json:"backendService,omitempty"`
 3403 
 3404     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 3405     // format.
 3406     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 3407 
 3408     // Description: An optional description of this resource. Provide this
 3409     // property when you create the resource.
 3410     Description string `json:"description,omitempty"`
 3411 
 3412     // Id: [Output Only] The unique identifier for the resource. This
 3413     // identifier is defined by the server.
 3414     Id uint64 `json:"id,omitempty,string"`
 3415 
 3416     // Kind: [Output Only] Type of the resource. Always
 3417     // compute#forwardingRule for Forwarding Rule resources.
 3418     Kind string `json:"kind,omitempty"`
 3419 
 3420     // LoadBalancingScheme: This signifies what the ForwardingRule will be
 3421     // used for and can only take the following values: INTERNAL EXTERNAL
 3422     // The value of INTERNAL means that this will be used for Internal
 3423     // Network Load Balancing (TCP, UDP). The value of EXTERNAL means that
 3424     // this will be used for External Load Balancing (HTTP(S) LB, External
 3425     // TCP/UDP LB, SSL Proxy)
 3426     //
 3427     // Possible values:
 3428     //   "EXTERNAL"
 3429     //   "INTERNAL"
 3430     //   "INVALID"
 3431     LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
 3432 
 3433     // Name: Name of the resource; provided by the client when the resource
 3434     // is created. The name must be 1-63 characters long, and comply with
 3435     // RFC1035. Specifically, the name must be 1-63 characters long and
 3436     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 3437     // the first character must be a lowercase letter, and all following
 3438     // characters must be a dash, lowercase letter, or digit, except the
 3439     // last character, which cannot be a dash.
 3440     Name string `json:"name,omitempty"`
 3441 
 3442     // Network: This field is not used for external load balancing.
 3443     //
 3444     // For internal load balancing, this field identifies the network that
 3445     // the load balanced IP should belong to for this Forwarding Rule. If
 3446     // this field is not specified, the default network will be used.
 3447     Network string `json:"network,omitempty"`
 3448 
 3449     // PortRange: Applicable only when IPProtocol is TCP, UDP, or SCTP, only
 3450     // packets addressed to ports in the specified range will be forwarded
 3451     // to target. Forwarding rules with the same [IPAddress, IPProtocol]
 3452     // pair must have disjoint port ranges.
 3453     //
 3454     // This field is not used for internal load balancing.
 3455     PortRange string `json:"portRange,omitempty"`
 3456 
 3457     // Ports: This field is not used for external load balancing.
 3458     //
 3459     // When the load balancing scheme is INTERNAL, a single port or a comma
 3460     // separated list of ports can be configured. Only packets addressed to
 3461     // these ports will be forwarded to the backends configured with this
 3462     // forwarding rule. If the port list is not provided then all ports are
 3463     // allowed to pass through.
 3464     //
 3465     // You may specify a maximum of up to 5 ports.
 3466     Ports []string `json:"ports,omitempty"`
 3467 
 3468     // Region: [Output Only] URL of the region where the regional forwarding
 3469     // rule resides. This field is not applicable to global forwarding
 3470     // rules.
 3471     Region string `json:"region,omitempty"`
 3472 
 3473     // SelfLink: [Output Only] Server-defined URL for the resource.
 3474     SelfLink string `json:"selfLink,omitempty"`
 3475 
 3476     // Subnetwork: This field is not used for external load balancing.
 3477     //
 3478     // For internal load balancing, this field identifies the subnetwork
 3479     // that the load balanced IP should belong to for this Forwarding
 3480     // Rule.
 3481     //
 3482     // If the network specified is in auto subnet mode, this field is
 3483     // optional. However, if the network is in custom subnet mode, a
 3484     // subnetwork must be specified.
 3485     Subnetwork string `json:"subnetwork,omitempty"`
 3486 
 3487     // Target: The URL of the target resource to receive the matched
 3488     // traffic. For regional forwarding rules, this target must live in the
 3489     // same region as the forwarding rule. For global forwarding rules, this
 3490     // target must be a global TargetHttpProxy or TargetHttpsProxy resource.
 3491     // The forwarded traffic must be of a type appropriate to the target
 3492     // object. For example, TargetHttpProxy requires HTTP traffic, and
 3493     // TargetHttpsProxy requires HTTPS traffic.
 3494     //
 3495     // This field is not used for internal load balancing.
 3496     Target string `json:"target,omitempty"`
 3497 
 3498     // ServerResponse contains the HTTP response code and headers from the
 3499     // server.
 3500     googleapi.ServerResponse `json:"-"`
 3501 
 3502     // ForceSendFields is a list of field names (e.g. "IPAddress") to
 3503     // unconditionally include in API requests. By default, fields with
 3504     // empty values are omitted from API requests. However, any non-pointer,
 3505     // non-interface field appearing in ForceSendFields will be sent to the
 3506     // server regardless of whether the field is empty or not. This may be
 3507     // used to include empty fields in Patch requests.
 3508     ForceSendFields []string `json:"-"`
 3509 
 3510     // NullFields is a list of field names (e.g. "IPAddress") to include in
 3511     // API requests with the JSON null value. By default, fields with empty
 3512     // values are omitted from API requests. However, any field with an
 3513     // empty value appearing in NullFields will be sent to the server as
 3514     // null. It is an error if a field in this list has a non-empty value.
 3515     // This may be used to include null fields in Patch requests.
 3516     NullFields []string `json:"-"`
 3517 }
 3518 
 3519 func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
 3520     type noMethod ForwardingRule
 3521     raw := noMethod(*s)
 3522     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3523 }
 3524 
 3525 type ForwardingRuleAggregatedList struct {
 3526     // Id: [Output Only] The unique identifier for the resource. This
 3527     // identifier is defined by the server.
 3528     Id string `json:"id,omitempty"`
 3529 
 3530     // Items: A map of scoped forwarding rule lists.
 3531     Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
 3532 
 3533     // Kind: [Output Only] Type of resource. Always
 3534     // compute#forwardingRuleAggregatedList for lists of forwarding rules.
 3535     Kind string `json:"kind,omitempty"`
 3536 
 3537     // NextPageToken: [Output Only] This token allows you to get the next
 3538     // page of results for list requests. If the number of results is larger
 3539     // than maxResults, use the nextPageToken as a value for the query
 3540     // parameter pageToken in the next list request. Subsequent list
 3541     // requests will have their own nextPageToken to continue paging through
 3542     // the results.
 3543     NextPageToken string `json:"nextPageToken,omitempty"`
 3544 
 3545     // SelfLink: [Output Only] Server-defined URL for this resource.
 3546     SelfLink string `json:"selfLink,omitempty"`
 3547 
 3548     // ServerResponse contains the HTTP response code and headers from the
 3549     // server.
 3550     googleapi.ServerResponse `json:"-"`
 3551 
 3552     // ForceSendFields is a list of field names (e.g. "Id") to
 3553     // unconditionally include in API requests. By default, fields with
 3554     // empty values are omitted from API requests. However, any non-pointer,
 3555     // non-interface field appearing in ForceSendFields will be sent to the
 3556     // server regardless of whether the field is empty or not. This may be
 3557     // used to include empty fields in Patch requests.
 3558     ForceSendFields []string `json:"-"`
 3559 
 3560     // NullFields is a list of field names (e.g. "Id") to include in API
 3561     // requests with the JSON null value. By default, fields with empty
 3562     // values are omitted from API requests. However, any field with an
 3563     // empty value appearing in NullFields will be sent to the server as
 3564     // null. It is an error if a field in this list has a non-empty value.
 3565     // This may be used to include null fields in Patch requests.
 3566     NullFields []string `json:"-"`
 3567 }
 3568 
 3569 func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
 3570     type noMethod ForwardingRuleAggregatedList
 3571     raw := noMethod(*s)
 3572     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3573 }
 3574 
 3575 // ForwardingRuleList: Contains a list of ForwardingRule resources.
 3576 type ForwardingRuleList struct {
 3577     // Id: [Output Only] Unique identifier for the resource. Set by the
 3578     // server.
 3579     Id string `json:"id,omitempty"`
 3580 
 3581     // Items: A list of ForwardingRule resources.
 3582     Items []*ForwardingRule `json:"items,omitempty"`
 3583 
 3584     // Kind: Type of resource.
 3585     Kind string `json:"kind,omitempty"`
 3586 
 3587     // NextPageToken: [Output Only] This token allows you to get the next
 3588     // page of results for list requests. If the number of results is larger
 3589     // than maxResults, use the nextPageToken as a value for the query
 3590     // parameter pageToken in the next list request. Subsequent list
 3591     // requests will have their own nextPageToken to continue paging through
 3592     // the results.
 3593     NextPageToken string `json:"nextPageToken,omitempty"`
 3594 
 3595     // SelfLink: [Output Only] Server-defined URL for this resource.
 3596     SelfLink string `json:"selfLink,omitempty"`
 3597 
 3598     // ServerResponse contains the HTTP response code and headers from the
 3599     // server.
 3600     googleapi.ServerResponse `json:"-"`
 3601 
 3602     // ForceSendFields is a list of field names (e.g. "Id") to
 3603     // unconditionally include in API requests. By default, fields with
 3604     // empty values are omitted from API requests. However, any non-pointer,
 3605     // non-interface field appearing in ForceSendFields will be sent to the
 3606     // server regardless of whether the field is empty or not. This may be
 3607     // used to include empty fields in Patch requests.
 3608     ForceSendFields []string `json:"-"`
 3609 
 3610     // NullFields is a list of field names (e.g. "Id") to include in API
 3611     // requests with the JSON null value. By default, fields with empty
 3612     // values are omitted from API requests. However, any field with an
 3613     // empty value appearing in NullFields will be sent to the server as
 3614     // null. It is an error if a field in this list has a non-empty value.
 3615     // This may be used to include null fields in Patch requests.
 3616     NullFields []string `json:"-"`
 3617 }
 3618 
 3619 func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
 3620     type noMethod ForwardingRuleList
 3621     raw := noMethod(*s)
 3622     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3623 }
 3624 
 3625 type ForwardingRulesScopedList struct {
 3626     // ForwardingRules: List of forwarding rules contained in this scope.
 3627     ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
 3628 
 3629     // Warning: Informational warning which replaces the list of forwarding
 3630     // rules when the list is empty.
 3631     Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
 3632 
 3633     // ForceSendFields is a list of field names (e.g. "ForwardingRules") to
 3634     // unconditionally include in API requests. By default, fields with
 3635     // empty values are omitted from API requests. However, any non-pointer,
 3636     // non-interface field appearing in ForceSendFields will be sent to the
 3637     // server regardless of whether the field is empty or not. This may be
 3638     // used to include empty fields in Patch requests.
 3639     ForceSendFields []string `json:"-"`
 3640 
 3641     // NullFields is a list of field names (e.g. "ForwardingRules") to
 3642     // include in API requests with the JSON null value. By default, fields
 3643     // with empty values are omitted from API requests. However, any field
 3644     // with an empty value appearing in NullFields will be sent to the
 3645     // server as null. It is an error if a field in this list has a
 3646     // non-empty value. This may be used to include null fields in Patch
 3647     // requests.
 3648     NullFields []string `json:"-"`
 3649 }
 3650 
 3651 func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
 3652     type noMethod ForwardingRulesScopedList
 3653     raw := noMethod(*s)
 3654     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3655 }
 3656 
 3657 // ForwardingRulesScopedListWarning: Informational warning which
 3658 // replaces the list of forwarding rules when the list is empty.
 3659 type ForwardingRulesScopedListWarning struct {
 3660     // Code: [Output Only] A warning code, if applicable. For example,
 3661     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 3662     // the response.
 3663     //
 3664     // Possible values:
 3665     //   "CLEANUP_FAILED"
 3666     //   "DEPRECATED_RESOURCE_USED"
 3667     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 3668     //   "FIELD_VALUE_OVERRIDEN"
 3669     //   "INJECTED_KERNELS_DEPRECATED"
 3670     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 3671     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 3672     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 3673     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 3674     //   "NEXT_HOP_NOT_RUNNING"
 3675     //   "NOT_CRITICAL_ERROR"
 3676     //   "NO_RESULTS_ON_PAGE"
 3677     //   "REQUIRED_TOS_AGREEMENT"
 3678     //   "RESOURCE_NOT_DELETED"
 3679     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 3680     //   "UNREACHABLE"
 3681     Code string `json:"code,omitempty"`
 3682 
 3683     // Data: [Output Only] Metadata about this warning in key: value format.
 3684     // For example:
 3685     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 3686     Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
 3687 
 3688     // Message: [Output Only] A human-readable description of the warning
 3689     // code.
 3690     Message string `json:"message,omitempty"`
 3691 
 3692     // ForceSendFields is a list of field names (e.g. "Code") to
 3693     // unconditionally include in API requests. By default, fields with
 3694     // empty values are omitted from API requests. However, any non-pointer,
 3695     // non-interface field appearing in ForceSendFields will be sent to the
 3696     // server regardless of whether the field is empty or not. This may be
 3697     // used to include empty fields in Patch requests.
 3698     ForceSendFields []string `json:"-"`
 3699 
 3700     // NullFields is a list of field names (e.g. "Code") to include in API
 3701     // requests with the JSON null value. By default, fields with empty
 3702     // values are omitted from API requests. However, any field with an
 3703     // empty value appearing in NullFields will be sent to the server as
 3704     // null. It is an error if a field in this list has a non-empty value.
 3705     // This may be used to include null fields in Patch requests.
 3706     NullFields []string `json:"-"`
 3707 }
 3708 
 3709 func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
 3710     type noMethod ForwardingRulesScopedListWarning
 3711     raw := noMethod(*s)
 3712     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3713 }
 3714 
 3715 type ForwardingRulesScopedListWarningData struct {
 3716     // Key: [Output Only] A key that provides more detail on the warning
 3717     // being returned. For example, for warnings where there are no results
 3718     // in a list request for a particular zone, this key might be scope and
 3719     // the key value might be the zone name. Other examples might be a key
 3720     // indicating a deprecated resource and a suggested replacement, or a
 3721     // warning about invalid network settings (for example, if an instance
 3722     // attempts to perform IP forwarding but is not enabled for IP
 3723     // forwarding).
 3724     Key string `json:"key,omitempty"`
 3725 
 3726     // Value: [Output Only] A warning data value corresponding to the key.
 3727     Value string `json:"value,omitempty"`
 3728 
 3729     // ForceSendFields is a list of field names (e.g. "Key") to
 3730     // unconditionally include in API requests. By default, fields with
 3731     // empty values are omitted from API requests. However, any non-pointer,
 3732     // non-interface field appearing in ForceSendFields will be sent to the
 3733     // server regardless of whether the field is empty or not. This may be
 3734     // used to include empty fields in Patch requests.
 3735     ForceSendFields []string `json:"-"`
 3736 
 3737     // NullFields is a list of field names (e.g. "Key") to include in API
 3738     // requests with the JSON null value. By default, fields with empty
 3739     // values are omitted from API requests. However, any field with an
 3740     // empty value appearing in NullFields will be sent to the server as
 3741     // null. It is an error if a field in this list has a non-empty value.
 3742     // This may be used to include null fields in Patch requests.
 3743     NullFields []string `json:"-"`
 3744 }
 3745 
 3746 func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
 3747     type noMethod ForwardingRulesScopedListWarningData
 3748     raw := noMethod(*s)
 3749     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3750 }
 3751 
 3752 // GuestOsFeature: Guest OS features.
 3753 type GuestOsFeature struct {
 3754     // Type: The type of supported feature. Currenty only
 3755     // VIRTIO_SCSI_MULTIQUEUE is supported. For newer Windows images, the
 3756     // server might also populate this property with the value WINDOWS to
 3757     // indicate that this is a Windows image. This value is purely
 3758     // informational and does not enable or disable any features.
 3759     //
 3760     // Possible values:
 3761     //   "FEATURE_TYPE_UNSPECIFIED"
 3762     //   "VIRTIO_SCSI_MULTIQUEUE"
 3763     //   "WINDOWS"
 3764     Type string `json:"type,omitempty"`
 3765 
 3766     // ForceSendFields is a list of field names (e.g. "Type") to
 3767     // unconditionally include in API requests. By default, fields with
 3768     // empty values are omitted from API requests. However, any non-pointer,
 3769     // non-interface field appearing in ForceSendFields will be sent to the
 3770     // server regardless of whether the field is empty or not. This may be
 3771     // used to include empty fields in Patch requests.
 3772     ForceSendFields []string `json:"-"`
 3773 
 3774     // NullFields is a list of field names (e.g. "Type") to include in API
 3775     // requests with the JSON null value. By default, fields with empty
 3776     // values are omitted from API requests. However, any field with an
 3777     // empty value appearing in NullFields will be sent to the server as
 3778     // null. It is an error if a field in this list has a non-empty value.
 3779     // This may be used to include null fields in Patch requests.
 3780     NullFields []string `json:"-"`
 3781 }
 3782 
 3783 func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
 3784     type noMethod GuestOsFeature
 3785     raw := noMethod(*s)
 3786     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3787 }
 3788 
 3789 type HTTPHealthCheck struct {
 3790     // Host: The value of the host header in the HTTP health check request.
 3791     // If left empty (default value), the IP on behalf of which this health
 3792     // check is performed will be used.
 3793     Host string `json:"host,omitempty"`
 3794 
 3795     // Port: The TCP port number for the health check request. The default
 3796     // value is 80.
 3797     Port int64 `json:"port,omitempty"`
 3798 
 3799     // PortName: Port name as defined in InstanceGroup#NamedPort#name. If
 3800     // both port and port_name are defined, port takes precedence.
 3801     PortName string `json:"portName,omitempty"`
 3802 
 3803     // ProxyHeader: Specifies the type of proxy header to append before
 3804     // sending data to the backend, either NONE or PROXY_V1. The default is
 3805     // NONE.
 3806     //
 3807     // Possible values:
 3808     //   "NONE"
 3809     //   "PROXY_V1"
 3810     ProxyHeader string `json:"proxyHeader,omitempty"`
 3811 
 3812     // RequestPath: The request path of the HTTP health check request. The
 3813     // default value is /.
 3814     RequestPath string `json:"requestPath,omitempty"`
 3815 
 3816     // ForceSendFields is a list of field names (e.g. "Host") to
 3817     // unconditionally include in API requests. By default, fields with
 3818     // empty values are omitted from API requests. However, any non-pointer,
 3819     // non-interface field appearing in ForceSendFields will be sent to the
 3820     // server regardless of whether the field is empty or not. This may be
 3821     // used to include empty fields in Patch requests.
 3822     ForceSendFields []string `json:"-"`
 3823 
 3824     // NullFields is a list of field names (e.g. "Host") to include in API
 3825     // requests with the JSON null value. By default, fields with empty
 3826     // values are omitted from API requests. However, any field with an
 3827     // empty value appearing in NullFields will be sent to the server as
 3828     // null. It is an error if a field in this list has a non-empty value.
 3829     // This may be used to include null fields in Patch requests.
 3830     NullFields []string `json:"-"`
 3831 }
 3832 
 3833 func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
 3834     type noMethod HTTPHealthCheck
 3835     raw := noMethod(*s)
 3836     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3837 }
 3838 
 3839 type HTTPSHealthCheck struct {
 3840     // Host: The value of the host header in the HTTPS health check request.
 3841     // If left empty (default value), the IP on behalf of which this health
 3842     // check is performed will be used.
 3843     Host string `json:"host,omitempty"`
 3844 
 3845     // Port: The TCP port number for the health check request. The default
 3846     // value is 443.
 3847     Port int64 `json:"port,omitempty"`
 3848 
 3849     // PortName: Port name as defined in InstanceGroup#NamedPort#name. If
 3850     // both port and port_name are defined, port takes precedence.
 3851     PortName string `json:"portName,omitempty"`
 3852 
 3853     // ProxyHeader: Specifies the type of proxy header to append before
 3854     // sending data to the backend, either NONE or PROXY_V1. The default is
 3855     // NONE.
 3856     //
 3857     // Possible values:
 3858     //   "NONE"
 3859     //   "PROXY_V1"
 3860     ProxyHeader string `json:"proxyHeader,omitempty"`
 3861 
 3862     // RequestPath: The request path of the HTTPS health check request. The
 3863     // default value is /.
 3864     RequestPath string `json:"requestPath,omitempty"`
 3865 
 3866     // ForceSendFields is a list of field names (e.g. "Host") to
 3867     // unconditionally include in API requests. By default, fields with
 3868     // empty values are omitted from API requests. However, any non-pointer,
 3869     // non-interface field appearing in ForceSendFields will be sent to the
 3870     // server regardless of whether the field is empty or not. This may be
 3871     // used to include empty fields in Patch requests.
 3872     ForceSendFields []string `json:"-"`
 3873 
 3874     // NullFields is a list of field names (e.g. "Host") to include in API
 3875     // requests with the JSON null value. By default, fields with empty
 3876     // values are omitted from API requests. However, any field with an
 3877     // empty value appearing in NullFields will be sent to the server as
 3878     // null. It is an error if a field in this list has a non-empty value.
 3879     // This may be used to include null fields in Patch requests.
 3880     NullFields []string `json:"-"`
 3881 }
 3882 
 3883 func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
 3884     type noMethod HTTPSHealthCheck
 3885     raw := noMethod(*s)
 3886     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3887 }
 3888 
 3889 // HealthCheck: An HealthCheck resource. This resource defines a
 3890 // template for how individual virtual machines should be checked for
 3891 // health, via one of the supported protocols.
 3892 type HealthCheck struct {
 3893     // CheckIntervalSec: How often (in seconds) to send a health check. The
 3894     // default value is 5 seconds.
 3895     CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
 3896 
 3897     // CreationTimestamp: [Output Only] Creation timestamp in 3339 text
 3898     // format.
 3899     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 3900 
 3901     // Description: An optional description of this resource. Provide this
 3902     // property when you create the resource.
 3903     Description string `json:"description,omitempty"`
 3904 
 3905     // HealthyThreshold: A so-far unhealthy instance will be marked healthy
 3906     // after this many consecutive successes. The default value is 2.
 3907     HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
 3908 
 3909     HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
 3910 
 3911     HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
 3912 
 3913     // Id: [Output Only] The unique identifier for the resource. This
 3914     // identifier is defined by the server.
 3915     Id uint64 `json:"id,omitempty,string"`
 3916 
 3917     // Kind: Type of the resource.
 3918     Kind string `json:"kind,omitempty"`
 3919 
 3920     // Name: Name of the resource. Provided by the client when the resource
 3921     // is created. The name must be 1-63 characters long, and comply with
 3922     // RFC1035. Specifically, the name must be 1-63 characters long and
 3923     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 3924     // the first character must be a lowercase letter, and all following
 3925     // characters must be a dash, lowercase letter, or digit, except the
 3926     // last character, which cannot be a dash.
 3927     Name string `json:"name,omitempty"`
 3928 
 3929     // SelfLink: [Output Only] Server-defined URL for the resource.
 3930     SelfLink string `json:"selfLink,omitempty"`
 3931 
 3932     SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
 3933 
 3934     TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
 3935 
 3936     // TimeoutSec: How long (in seconds) to wait before claiming failure.
 3937     // The default value is 5 seconds. It is invalid for timeoutSec to have
 3938     // greater value than checkIntervalSec.
 3939     TimeoutSec int64 `json:"timeoutSec,omitempty"`
 3940 
 3941     // Type: Specifies the type of the healthCheck, either TCP, UDP, SSL,
 3942     // HTTP, HTTPS or HTTP2. If not specified, the default is TCP. Exactly
 3943     // one of the protocol-specific health check field must be specified,
 3944     // which must match type field.
 3945     //
 3946     // Possible values:
 3947     //   "HTTP"
 3948     //   "HTTPS"
 3949     //   "INVALID"
 3950     //   "SSL"
 3951     //   "TCP"
 3952     Type string `json:"type,omitempty"`
 3953 
 3954     // UnhealthyThreshold: A so-far healthy instance will be marked
 3955     // unhealthy after this many consecutive failures. The default value is
 3956     // 2.
 3957     UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
 3958 
 3959     // ServerResponse contains the HTTP response code and headers from the
 3960     // server.
 3961     googleapi.ServerResponse `json:"-"`
 3962 
 3963     // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
 3964     // unconditionally include in API requests. By default, fields with
 3965     // empty values are omitted from API requests. However, any non-pointer,
 3966     // non-interface field appearing in ForceSendFields will be sent to the
 3967     // server regardless of whether the field is empty or not. This may be
 3968     // used to include empty fields in Patch requests.
 3969     ForceSendFields []string `json:"-"`
 3970 
 3971     // NullFields is a list of field names (e.g. "CheckIntervalSec") to
 3972     // include in API requests with the JSON null value. By default, fields
 3973     // with empty values are omitted from API requests. However, any field
 3974     // with an empty value appearing in NullFields will be sent to the
 3975     // server as null. It is an error if a field in this list has a
 3976     // non-empty value. This may be used to include null fields in Patch
 3977     // requests.
 3978     NullFields []string `json:"-"`
 3979 }
 3980 
 3981 func (s *HealthCheck) MarshalJSON() ([]byte, error) {
 3982     type noMethod HealthCheck
 3983     raw := noMethod(*s)
 3984     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 3985 }
 3986 
 3987 // HealthCheckList: Contains a list of HealthCheck resources.
 3988 type HealthCheckList struct {
 3989     // Id: [Output Only] The unique identifier for the resource. This
 3990     // identifier is defined by the server.
 3991     Id string `json:"id,omitempty"`
 3992 
 3993     // Items: A list of HealthCheck resources.
 3994     Items []*HealthCheck `json:"items,omitempty"`
 3995 
 3996     // Kind: Type of resource.
 3997     Kind string `json:"kind,omitempty"`
 3998 
 3999     // NextPageToken: [Output Only] This token allows you to get the next
 4000     // page of results for list requests. If the number of results is larger
 4001     // than maxResults, use the nextPageToken as a value for the query
 4002     // parameter pageToken in the next list request. Subsequent list
 4003     // requests will have their own nextPageToken to continue paging through
 4004     // the results.
 4005     NextPageToken string `json:"nextPageToken,omitempty"`
 4006 
 4007     // SelfLink: [Output Only] Server-defined URL for this resource.
 4008     SelfLink string `json:"selfLink,omitempty"`
 4009 
 4010     // ServerResponse contains the HTTP response code and headers from the
 4011     // server.
 4012     googleapi.ServerResponse `json:"-"`
 4013 
 4014     // ForceSendFields is a list of field names (e.g. "Id") to
 4015     // unconditionally include in API requests. By default, fields with
 4016     // empty values are omitted from API requests. However, any non-pointer,
 4017     // non-interface field appearing in ForceSendFields will be sent to the
 4018     // server regardless of whether the field is empty or not. This may be
 4019     // used to include empty fields in Patch requests.
 4020     ForceSendFields []string `json:"-"`
 4021 
 4022     // NullFields is a list of field names (e.g. "Id") to include in API
 4023     // requests with the JSON null value. By default, fields with empty
 4024     // values are omitted from API requests. However, any field with an
 4025     // empty value appearing in NullFields will be sent to the server as
 4026     // null. It is an error if a field in this list has a non-empty value.
 4027     // This may be used to include null fields in Patch requests.
 4028     NullFields []string `json:"-"`
 4029 }
 4030 
 4031 func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
 4032     type noMethod HealthCheckList
 4033     raw := noMethod(*s)
 4034     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4035 }
 4036 
 4037 // HealthCheckReference: A full or valid partial URL to a health check.
 4038 // For example, the following are valid URLs:
 4039 // -
 4040 // https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
 4041 // - projects/project-id/global/httpHealthChecks/health-check
 4042 // - global/httpHealthChecks/health-check
 4043 type HealthCheckReference struct {
 4044     HealthCheck string `json:"healthCheck,omitempty"`
 4045 
 4046     // ForceSendFields is a list of field names (e.g. "HealthCheck") to
 4047     // unconditionally include in API requests. By default, fields with
 4048     // empty values are omitted from API requests. However, any non-pointer,
 4049     // non-interface field appearing in ForceSendFields will be sent to the
 4050     // server regardless of whether the field is empty or not. This may be
 4051     // used to include empty fields in Patch requests.
 4052     ForceSendFields []string `json:"-"`
 4053 
 4054     // NullFields is a list of field names (e.g. "HealthCheck") to include
 4055     // in API requests with the JSON null value. By default, fields with
 4056     // empty values are omitted from API requests. However, any field with
 4057     // an empty value appearing in NullFields will be sent to the server as
 4058     // null. It is an error if a field in this list has a non-empty value.
 4059     // This may be used to include null fields in Patch requests.
 4060     NullFields []string `json:"-"`
 4061 }
 4062 
 4063 func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
 4064     type noMethod HealthCheckReference
 4065     raw := noMethod(*s)
 4066     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4067 }
 4068 
 4069 type HealthStatus struct {
 4070     // HealthState: Health state of the instance.
 4071     //
 4072     // Possible values:
 4073     //   "HEALTHY"
 4074     //   "UNHEALTHY"
 4075     HealthState string `json:"healthState,omitempty"`
 4076 
 4077     // Instance: URL of the instance resource.
 4078     Instance string `json:"instance,omitempty"`
 4079 
 4080     // IpAddress: The IP address represented by this resource.
 4081     IpAddress string `json:"ipAddress,omitempty"`
 4082 
 4083     // Port: The port on the instance.
 4084     Port int64 `json:"port,omitempty"`
 4085 
 4086     // ForceSendFields is a list of field names (e.g. "HealthState") to
 4087     // unconditionally include in API requests. By default, fields with
 4088     // empty values are omitted from API requests. However, any non-pointer,
 4089     // non-interface field appearing in ForceSendFields will be sent to the
 4090     // server regardless of whether the field is empty or not. This may be
 4091     // used to include empty fields in Patch requests.
 4092     ForceSendFields []string `json:"-"`
 4093 
 4094     // NullFields is a list of field names (e.g. "HealthState") to include
 4095     // in API requests with the JSON null value. By default, fields with
 4096     // empty values are omitted from API requests. However, any field with
 4097     // an empty value appearing in NullFields will be sent to the server as
 4098     // null. It is an error if a field in this list has a non-empty value.
 4099     // This may be used to include null fields in Patch requests.
 4100     NullFields []string `json:"-"`
 4101 }
 4102 
 4103 func (s *HealthStatus) MarshalJSON() ([]byte, error) {
 4104     type noMethod HealthStatus
 4105     raw := noMethod(*s)
 4106     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4107 }
 4108 
 4109 // HostRule: UrlMaps A host-matching rule for a URL. If matched, will
 4110 // use the named PathMatcher to select the BackendService.
 4111 type HostRule struct {
 4112     // Description: An optional description of this resource. Provide this
 4113     // property when you create the resource.
 4114     Description string `json:"description,omitempty"`
 4115 
 4116     // Hosts: The list of host patterns to match. They must be valid
 4117     // hostnames, except * will match any string of ([a-z0-9-.]*). In that
 4118     // case, * must be the first character and must be followed in the
 4119     // pattern by either - or ..
 4120     Hosts []string `json:"hosts,omitempty"`
 4121 
 4122     // PathMatcher: The name of the PathMatcher to use to match the path
 4123     // portion of the URL if the hostRule matches the URL's host portion.
 4124     PathMatcher string `json:"pathMatcher,omitempty"`
 4125 
 4126     // ForceSendFields is a list of field names (e.g. "Description") to
 4127     // unconditionally include in API requests. By default, fields with
 4128     // empty values are omitted from API requests. However, any non-pointer,
 4129     // non-interface field appearing in ForceSendFields will be sent to the
 4130     // server regardless of whether the field is empty or not. This may be
 4131     // used to include empty fields in Patch requests.
 4132     ForceSendFields []string `json:"-"`
 4133 
 4134     // NullFields is a list of field names (e.g. "Description") to include
 4135     // in API requests with the JSON null value. By default, fields with
 4136     // empty values are omitted from API requests. However, any field with
 4137     // an empty value appearing in NullFields will be sent to the server as
 4138     // null. It is an error if a field in this list has a non-empty value.
 4139     // This may be used to include null fields in Patch requests.
 4140     NullFields []string `json:"-"`
 4141 }
 4142 
 4143 func (s *HostRule) MarshalJSON() ([]byte, error) {
 4144     type noMethod HostRule
 4145     raw := noMethod(*s)
 4146     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4147 }
 4148 
 4149 // HttpHealthCheck: An HttpHealthCheck resource. This resource defines a
 4150 // template for how individual instances should be checked for health,
 4151 // via HTTP.
 4152 type HttpHealthCheck struct {
 4153     // CheckIntervalSec: How often (in seconds) to send a health check. The
 4154     // default value is 5 seconds.
 4155     CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
 4156 
 4157     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 4158     // format.
 4159     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 4160 
 4161     // Description: An optional description of this resource. Provide this
 4162     // property when you create the resource.
 4163     Description string `json:"description,omitempty"`
 4164 
 4165     // HealthyThreshold: A so-far unhealthy instance will be marked healthy
 4166     // after this many consecutive successes. The default value is 2.
 4167     HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
 4168 
 4169     // Host: The value of the host header in the HTTP health check request.
 4170     // If left empty (default value), the public IP on behalf of which this
 4171     // health check is performed will be used.
 4172     Host string `json:"host,omitempty"`
 4173 
 4174     // Id: [Output Only] The unique identifier for the resource. This
 4175     // identifier is defined by the server.
 4176     Id uint64 `json:"id,omitempty,string"`
 4177 
 4178     // Kind: [Output Only] Type of the resource. Always
 4179     // compute#httpHealthCheck for HTTP health checks.
 4180     Kind string `json:"kind,omitempty"`
 4181 
 4182     // Name: Name of the resource. Provided by the client when the resource
 4183     // is created. The name must be 1-63 characters long, and comply with
 4184     // RFC1035. Specifically, the name must be 1-63 characters long and
 4185     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 4186     // the first character must be a lowercase letter, and all following
 4187     // characters must be a dash, lowercase letter, or digit, except the
 4188     // last character, which cannot be a dash.
 4189     Name string `json:"name,omitempty"`
 4190 
 4191     // Port: The TCP port number for the HTTP health check request. The
 4192     // default value is 80.
 4193     Port int64 `json:"port,omitempty"`
 4194 
 4195     // RequestPath: The request path of the HTTP health check request. The
 4196     // default value is /.
 4197     RequestPath string `json:"requestPath,omitempty"`
 4198 
 4199     // SelfLink: [Output Only] Server-defined URL for the resource.
 4200     SelfLink string `json:"selfLink,omitempty"`
 4201 
 4202     // TimeoutSec: How long (in seconds) to wait before claiming failure.
 4203     // The default value is 5 seconds. It is invalid for timeoutSec to have
 4204     // greater value than checkIntervalSec.
 4205     TimeoutSec int64 `json:"timeoutSec,omitempty"`
 4206 
 4207     // UnhealthyThreshold: A so-far healthy instance will be marked
 4208     // unhealthy after this many consecutive failures. The default value is
 4209     // 2.
 4210     UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
 4211 
 4212     // ServerResponse contains the HTTP response code and headers from the
 4213     // server.
 4214     googleapi.ServerResponse `json:"-"`
 4215 
 4216     // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
 4217     // unconditionally include in API requests. By default, fields with
 4218     // empty values are omitted from API requests. However, any non-pointer,
 4219     // non-interface field appearing in ForceSendFields will be sent to the
 4220     // server regardless of whether the field is empty or not. This may be
 4221     // used to include empty fields in Patch requests.
 4222     ForceSendFields []string `json:"-"`
 4223 
 4224     // NullFields is a list of field names (e.g. "CheckIntervalSec") to
 4225     // include in API requests with the JSON null value. By default, fields
 4226     // with empty values are omitted from API requests. However, any field
 4227     // with an empty value appearing in NullFields will be sent to the
 4228     // server as null. It is an error if a field in this list has a
 4229     // non-empty value. This may be used to include null fields in Patch
 4230     // requests.
 4231     NullFields []string `json:"-"`
 4232 }
 4233 
 4234 func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
 4235     type noMethod HttpHealthCheck
 4236     raw := noMethod(*s)
 4237     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4238 }
 4239 
 4240 // HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
 4241 type HttpHealthCheckList struct {
 4242     // Id: [Output Only] Unique identifier for the resource. Defined by the
 4243     // server.
 4244     Id string `json:"id,omitempty"`
 4245 
 4246     // Items: A list of HttpHealthCheck resources.
 4247     Items []*HttpHealthCheck `json:"items,omitempty"`
 4248 
 4249     // Kind: Type of resource.
 4250     Kind string `json:"kind,omitempty"`
 4251 
 4252     // NextPageToken: [Output Only] This token allows you to get the next
 4253     // page of results for list requests. If the number of results is larger
 4254     // than maxResults, use the nextPageToken as a value for the query
 4255     // parameter pageToken in the next list request. Subsequent list
 4256     // requests will have their own nextPageToken to continue paging through
 4257     // the results.
 4258     NextPageToken string `json:"nextPageToken,omitempty"`
 4259 
 4260     // SelfLink: [Output Only] Server-defined URL for this resource.
 4261     SelfLink string `json:"selfLink,omitempty"`
 4262 
 4263     // ServerResponse contains the HTTP response code and headers from the
 4264     // server.
 4265     googleapi.ServerResponse `json:"-"`
 4266 
 4267     // ForceSendFields is a list of field names (e.g. "Id") to
 4268     // unconditionally include in API requests. By default, fields with
 4269     // empty values are omitted from API requests. However, any non-pointer,
 4270     // non-interface field appearing in ForceSendFields will be sent to the
 4271     // server regardless of whether the field is empty or not. This may be
 4272     // used to include empty fields in Patch requests.
 4273     ForceSendFields []string `json:"-"`
 4274 
 4275     // NullFields is a list of field names (e.g. "Id") to include in API
 4276     // requests with the JSON null value. By default, fields with empty
 4277     // values are omitted from API requests. However, any field with an
 4278     // empty value appearing in NullFields will be sent to the server as
 4279     // null. It is an error if a field in this list has a non-empty value.
 4280     // This may be used to include null fields in Patch requests.
 4281     NullFields []string `json:"-"`
 4282 }
 4283 
 4284 func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
 4285     type noMethod HttpHealthCheckList
 4286     raw := noMethod(*s)
 4287     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4288 }
 4289 
 4290 // HttpsHealthCheck: An HttpsHealthCheck resource. This resource defines
 4291 // a template for how individual instances should be checked for health,
 4292 // via HTTPS.
 4293 type HttpsHealthCheck struct {
 4294     // CheckIntervalSec: How often (in seconds) to send a health check. The
 4295     // default value is 5 seconds.
 4296     CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
 4297 
 4298     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 4299     // format.
 4300     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 4301 
 4302     // Description: An optional description of this resource. Provide this
 4303     // property when you create the resource.
 4304     Description string `json:"description,omitempty"`
 4305 
 4306     // HealthyThreshold: A so-far unhealthy instance will be marked healthy
 4307     // after this many consecutive successes. The default value is 2.
 4308     HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
 4309 
 4310     // Host: The value of the host header in the HTTPS health check request.
 4311     // If left empty (default value), the public IP on behalf of which this
 4312     // health check is performed will be used.
 4313     Host string `json:"host,omitempty"`
 4314 
 4315     // Id: [Output Only] The unique identifier for the resource. This
 4316     // identifier is defined by the server.
 4317     Id uint64 `json:"id,omitempty,string"`
 4318 
 4319     // Kind: Type of the resource.
 4320     Kind string `json:"kind,omitempty"`
 4321 
 4322     // Name: Name of the resource. Provided by the client when the resource
 4323     // is created. The name must be 1-63 characters long, and comply with
 4324     // RFC1035. Specifically, the name must be 1-63 characters long and
 4325     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 4326     // the first character must be a lowercase letter, and all following
 4327     // characters must be a dash, lowercase letter, or digit, except the
 4328     // last character, which cannot be a dash.
 4329     Name string `json:"name,omitempty"`
 4330 
 4331     // Port: The TCP port number for the HTTPS health check request. The
 4332     // default value is 443.
 4333     Port int64 `json:"port,omitempty"`
 4334 
 4335     // RequestPath: The request path of the HTTPS health check request. The
 4336     // default value is "/".
 4337     RequestPath string `json:"requestPath,omitempty"`
 4338 
 4339     // SelfLink: [Output Only] Server-defined URL for the resource.
 4340     SelfLink string `json:"selfLink,omitempty"`
 4341 
 4342     // TimeoutSec: How long (in seconds) to wait before claiming failure.
 4343     // The default value is 5 seconds. It is invalid for timeoutSec to have
 4344     // a greater value than checkIntervalSec.
 4345     TimeoutSec int64 `json:"timeoutSec,omitempty"`
 4346 
 4347     // UnhealthyThreshold: A so-far healthy instance will be marked
 4348     // unhealthy after this many consecutive failures. The default value is
 4349     // 2.
 4350     UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
 4351 
 4352     // ServerResponse contains the HTTP response code and headers from the
 4353     // server.
 4354     googleapi.ServerResponse `json:"-"`
 4355 
 4356     // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
 4357     // unconditionally include in API requests. By default, fields with
 4358     // empty values are omitted from API requests. However, any non-pointer,
 4359     // non-interface field appearing in ForceSendFields will be sent to the
 4360     // server regardless of whether the field is empty or not. This may be
 4361     // used to include empty fields in Patch requests.
 4362     ForceSendFields []string `json:"-"`
 4363 
 4364     // NullFields is a list of field names (e.g. "CheckIntervalSec") to
 4365     // include in API requests with the JSON null value. By default, fields
 4366     // with empty values are omitted from API requests. However, any field
 4367     // with an empty value appearing in NullFields will be sent to the
 4368     // server as null. It is an error if a field in this list has a
 4369     // non-empty value. This may be used to include null fields in Patch
 4370     // requests.
 4371     NullFields []string `json:"-"`
 4372 }
 4373 
 4374 func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
 4375     type noMethod HttpsHealthCheck
 4376     raw := noMethod(*s)
 4377     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4378 }
 4379 
 4380 // HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
 4381 type HttpsHealthCheckList struct {
 4382     // Id: [Output Only] Unique identifier for the resource; defined by the
 4383     // server.
 4384     Id string `json:"id,omitempty"`
 4385 
 4386     // Items: A list of HttpsHealthCheck resources.
 4387     Items []*HttpsHealthCheck `json:"items,omitempty"`
 4388 
 4389     // Kind: Type of resource.
 4390     Kind string `json:"kind,omitempty"`
 4391 
 4392     // NextPageToken: [Output Only] This token allows you to get the next
 4393     // page of results for list requests. If the number of results is larger
 4394     // than maxResults, use the nextPageToken as a value for the query
 4395     // parameter pageToken in the next list request. Subsequent list
 4396     // requests will have their own nextPageToken to continue paging through
 4397     // the results.
 4398     NextPageToken string `json:"nextPageToken,omitempty"`
 4399 
 4400     // SelfLink: [Output Only] Server-defined URL for this resource.
 4401     SelfLink string `json:"selfLink,omitempty"`
 4402 
 4403     // ServerResponse contains the HTTP response code and headers from the
 4404     // server.
 4405     googleapi.ServerResponse `json:"-"`
 4406 
 4407     // ForceSendFields is a list of field names (e.g. "Id") to
 4408     // unconditionally include in API requests. By default, fields with
 4409     // empty values are omitted from API requests. However, any non-pointer,
 4410     // non-interface field appearing in ForceSendFields will be sent to the
 4411     // server regardless of whether the field is empty or not. This may be
 4412     // used to include empty fields in Patch requests.
 4413     ForceSendFields []string `json:"-"`
 4414 
 4415     // NullFields is a list of field names (e.g. "Id") to include in API
 4416     // requests with the JSON null value. By default, fields with empty
 4417     // values are omitted from API requests. However, any field with an
 4418     // empty value appearing in NullFields will be sent to the server as
 4419     // null. It is an error if a field in this list has a non-empty value.
 4420     // This may be used to include null fields in Patch requests.
 4421     NullFields []string `json:"-"`
 4422 }
 4423 
 4424 func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
 4425     type noMethod HttpsHealthCheckList
 4426     raw := noMethod(*s)
 4427     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4428 }
 4429 
 4430 // Image: An Image resource.
 4431 type Image struct {
 4432     // ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
 4433     // Cloud Storage (in bytes).
 4434     ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
 4435 
 4436     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 4437     // format.
 4438     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 4439 
 4440     // Deprecated: The deprecation status associated with this image.
 4441     Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
 4442 
 4443     // Description: An optional description of this resource. Provide this
 4444     // property when you create the resource.
 4445     Description string `json:"description,omitempty"`
 4446 
 4447     // DiskSizeGb: Size of the image when restored onto a persistent disk
 4448     // (in GB).
 4449     DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
 4450 
 4451     // Family: The name of the image family to which this image belongs. You
 4452     // can create disks by specifying an image family instead of a specific
 4453     // image name. The image family always returns its latest image that is
 4454     // not deprecated. The name of the image family must comply with
 4455     // RFC1035.
 4456     Family string `json:"family,omitempty"`
 4457 
 4458     // GuestOsFeatures: A list of features to enable on the guest OS.
 4459     // Applicable for bootable images only. Currently, only one feature can
 4460     // be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to
 4461     // have its own queue. For Windows images, you can only enable
 4462     // VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or
 4463     // higher. Linux images with kernel versions 3.17 and higher will
 4464     // support VIRTIO_SCSCI_MULTIQUEUE.
 4465     //
 4466     // For new Windows images, the server might also populate this field
 4467     // with the value WINDOWS, to indicate that this is a Windows image.
 4468     // This value is purely informational and does not enable or disable any
 4469     // features.
 4470     GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
 4471 
 4472     // Id: [Output Only] The unique identifier for the resource. This
 4473     // identifier is defined by the server.
 4474     Id uint64 `json:"id,omitempty,string"`
 4475 
 4476     // ImageEncryptionKey: Encrypts the image using a customer-supplied
 4477     // encryption key.
 4478     //
 4479     // After you encrypt an image with a customer-supplied key, you must
 4480     // provide the same key if you use the image later (e.g. to create a
 4481     // disk from the image).
 4482     //
 4483     // Customer-supplied encryption keys do not protect access to metadata
 4484     // of the disk.
 4485     //
 4486     // If you do not provide an encryption key when creating the image, then
 4487     // the disk will be encrypted using an automatically generated key and
 4488     // you do not need to provide a key to use the image later.
 4489     ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
 4490 
 4491     // Kind: [Output Only] Type of the resource. Always compute#image for
 4492     // images.
 4493     Kind string `json:"kind,omitempty"`
 4494 
 4495     // Licenses: Any applicable license URI.
 4496     Licenses []string `json:"licenses,omitempty"`
 4497 
 4498     // Name: Name of the resource; provided by the client when the resource
 4499     // is created. The name must be 1-63 characters long, and comply with
 4500     // RFC1035. Specifically, the name must be 1-63 characters long and
 4501     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 4502     // the first character must be a lowercase letter, and all following
 4503     // characters must be a dash, lowercase letter, or digit, except the
 4504     // last character, which cannot be a dash.
 4505     Name string `json:"name,omitempty"`
 4506 
 4507     // RawDisk: The parameters of the raw disk image.
 4508     RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
 4509 
 4510     // SelfLink: [Output Only] Server-defined URL for the resource.
 4511     SelfLink string `json:"selfLink,omitempty"`
 4512 
 4513     // SourceDisk: URL of the source disk used to create this image. This
 4514     // can be a full or valid partial URL. You must provide either this
 4515     // property or the rawDisk.source property but not both to create an
 4516     // image. For example, the following are valid values:
 4517     // -
 4518     // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
 4519     // - projects/project/zones/zone/disks/disk
 4520     // - zones/zone/disks/disk
 4521     SourceDisk string `json:"sourceDisk,omitempty"`
 4522 
 4523     // SourceDiskEncryptionKey: The customer-supplied encryption key of the
 4524     // source disk. Required if the source disk is protected by a
 4525     // customer-supplied encryption key.
 4526     SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
 4527 
 4528     // SourceDiskId: The ID value of the disk used to create this image.
 4529     // This value may be used to determine whether the image was taken from
 4530     // the current or a previous instance of a given disk name.
 4531     SourceDiskId string `json:"sourceDiskId,omitempty"`
 4532 
 4533     // SourceType: The type of the image used to create this disk. The
 4534     // default and only value is RAW
 4535     //
 4536     // Possible values:
 4537     //   "RAW" (default)
 4538     SourceType string `json:"sourceType,omitempty"`
 4539 
 4540     // Status: [Output Only] The status of the image. An image can be used
 4541     // to create other resources, such as instances, only after the image
 4542     // has been successfully created and the status is set to READY.
 4543     // Possible values are FAILED, PENDING, or READY.
 4544     //
 4545     // Possible values:
 4546     //   "FAILED"
 4547     //   "PENDING"
 4548     //   "READY"
 4549     Status string `json:"status,omitempty"`
 4550 
 4551     // ServerResponse contains the HTTP response code and headers from the
 4552     // server.
 4553     googleapi.ServerResponse `json:"-"`
 4554 
 4555     // ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
 4556     // unconditionally include in API requests. By default, fields with
 4557     // empty values are omitted from API requests. However, any non-pointer,
 4558     // non-interface field appearing in ForceSendFields will be sent to the
 4559     // server regardless of whether the field is empty or not. This may be
 4560     // used to include empty fields in Patch requests.
 4561     ForceSendFields []string `json:"-"`
 4562 
 4563     // NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
 4564     // include in API requests with the JSON null value. By default, fields
 4565     // with empty values are omitted from API requests. However, any field
 4566     // with an empty value appearing in NullFields will be sent to the
 4567     // server as null. It is an error if a field in this list has a
 4568     // non-empty value. This may be used to include null fields in Patch
 4569     // requests.
 4570     NullFields []string `json:"-"`
 4571 }
 4572 
 4573 func (s *Image) MarshalJSON() ([]byte, error) {
 4574     type noMethod Image
 4575     raw := noMethod(*s)
 4576     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4577 }
 4578 
 4579 // ImageRawDisk: The parameters of the raw disk image.
 4580 type ImageRawDisk struct {
 4581     // ContainerType: The format used to encode and transmit the block
 4582     // device, which should be TAR. This is just a container and
 4583     // transmission format and not a runtime format. Provided by the client
 4584     // when the disk image is created.
 4585     //
 4586     // Possible values:
 4587     //   "TAR"
 4588     ContainerType string `json:"containerType,omitempty"`
 4589 
 4590     // Sha1Checksum: An optional SHA1 checksum of the disk image before
 4591     // unpackaging; provided by the client when the disk image is created.
 4592     Sha1Checksum string `json:"sha1Checksum,omitempty"`
 4593 
 4594     // Source: The full Google Cloud Storage URL where the disk image is
 4595     // stored. You must provide either this property or the sourceDisk
 4596     // property but not both.
 4597     Source string `json:"source,omitempty"`
 4598 
 4599     // ForceSendFields is a list of field names (e.g. "ContainerType") to
 4600     // unconditionally include in API requests. By default, fields with
 4601     // empty values are omitted from API requests. However, any non-pointer,
 4602     // non-interface field appearing in ForceSendFields will be sent to the
 4603     // server regardless of whether the field is empty or not. This may be
 4604     // used to include empty fields in Patch requests.
 4605     ForceSendFields []string `json:"-"`
 4606 
 4607     // NullFields is a list of field names (e.g. "ContainerType") to include
 4608     // in API requests with the JSON null value. By default, fields with
 4609     // empty values are omitted from API requests. However, any field with
 4610     // an empty value appearing in NullFields will be sent to the server as
 4611     // null. It is an error if a field in this list has a non-empty value.
 4612     // This may be used to include null fields in Patch requests.
 4613     NullFields []string `json:"-"`
 4614 }
 4615 
 4616 func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
 4617     type noMethod ImageRawDisk
 4618     raw := noMethod(*s)
 4619     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4620 }
 4621 
 4622 // ImageList: Contains a list of images.
 4623 type ImageList struct {
 4624     // Id: [Output Only] The unique identifier for the resource. This
 4625     // identifier is defined by the server.
 4626     Id string `json:"id,omitempty"`
 4627 
 4628     // Items: [Output Only] A list of Image resources.
 4629     Items []*Image `json:"items,omitempty"`
 4630 
 4631     // Kind: Type of resource.
 4632     Kind string `json:"kind,omitempty"`
 4633 
 4634     // NextPageToken: [Output Only] This token allows you to get the next
 4635     // page of results for list requests. If the number of results is larger
 4636     // than maxResults, use the nextPageToken as a value for the query
 4637     // parameter pageToken in the next list request. Subsequent list
 4638     // requests will have their own nextPageToken to continue paging through
 4639     // the results.
 4640     NextPageToken string `json:"nextPageToken,omitempty"`
 4641 
 4642     // SelfLink: [Output Only] Server-defined URL for this resource.
 4643     SelfLink string `json:"selfLink,omitempty"`
 4644 
 4645     // ServerResponse contains the HTTP response code and headers from the
 4646     // server.
 4647     googleapi.ServerResponse `json:"-"`
 4648 
 4649     // ForceSendFields is a list of field names (e.g. "Id") to
 4650     // unconditionally include in API requests. By default, fields with
 4651     // empty values are omitted from API requests. However, any non-pointer,
 4652     // non-interface field appearing in ForceSendFields will be sent to the
 4653     // server regardless of whether the field is empty or not. This may be
 4654     // used to include empty fields in Patch requests.
 4655     ForceSendFields []string `json:"-"`
 4656 
 4657     // NullFields is a list of field names (e.g. "Id") to include in API
 4658     // requests with the JSON null value. By default, fields with empty
 4659     // values are omitted from API requests. However, any field with an
 4660     // empty value appearing in NullFields will be sent to the server as
 4661     // null. It is an error if a field in this list has a non-empty value.
 4662     // This may be used to include null fields in Patch requests.
 4663     NullFields []string `json:"-"`
 4664 }
 4665 
 4666 func (s *ImageList) MarshalJSON() ([]byte, error) {
 4667     type noMethod ImageList
 4668     raw := noMethod(*s)
 4669     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4670 }
 4671 
 4672 // Instance: An Instance resource.
 4673 type Instance struct {
 4674     // CanIpForward: Allows this instance to send and receive packets with
 4675     // non-matching destination or source IPs. This is required if you plan
 4676     // to use this instance to forward routes. For more information, see
 4677     // Enabling IP Forwarding.
 4678     CanIpForward bool `json:"canIpForward,omitempty"`
 4679 
 4680     // CpuPlatform: [Output Only] The CPU platform used by this instance.
 4681     CpuPlatform string `json:"cpuPlatform,omitempty"`
 4682 
 4683     // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
 4684     // format.
 4685     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 4686 
 4687     // Description: An optional description of this resource. Provide this
 4688     // property when you create the resource.
 4689     Description string `json:"description,omitempty"`
 4690 
 4691     // Disks: Array of disks associated with this instance. Persistent disks
 4692     // must be created before you can assign them.
 4693     Disks []*AttachedDisk `json:"disks,omitempty"`
 4694 
 4695     // Id: [Output Only] The unique identifier for the resource. This
 4696     // identifier is defined by the server.
 4697     Id uint64 `json:"id,omitempty,string"`
 4698 
 4699     // Kind: [Output Only] Type of the resource. Always compute#instance for
 4700     // instances.
 4701     Kind string `json:"kind,omitempty"`
 4702 
 4703     // MachineType: Full or partial URL of the machine type resource to use
 4704     // for this instance, in the format:
 4705     // zones/zone/machineTypes/machine-type. This is provided by the client
 4706     // when the instance is created. For example, the following is a valid
 4707     // partial url to a predefined machine
 4708     // type:
 4709     //
 4710     // zones/us-central1-f/machineTypes/n1-standard-1
 4711     //
 4712     // To create a custom machine type, provide a URL to a machine type in
 4713     // the following format, where CPUS is 1 or an even number up to 32 (2,
 4714     // 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
 4715     // Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
 4716     // 5 GB of memory is 5120
 4717     // MB):
 4718     //
 4719     // zones/zone/machineTypes/custom-CPUS-MEMORY
 4720     //
 4721     // For example: zones/us-central1-f/machineTypes/custom-4-5120
 4722     //
 4723     // For a full list of restrictions, read the Specifications for custom
 4724     // machine types.
 4725     MachineType string `json:"machineType,omitempty"`
 4726 
 4727     // Metadata: The metadata key/value pairs assigned to this instance.
 4728     // This includes custom metadata and predefined keys.
 4729     Metadata *Metadata `json:"metadata,omitempty"`
 4730 
 4731     // Name: The name of the resource, provided by the client when initially
 4732     // creating the resource. The resource name must be 1-63 characters
 4733     // long, and comply with RFC1035. Specifically, the name must be 1-63
 4734     // characters long and match the regular expression
 4735     // [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a
 4736     // lowercase letter, and all following characters must be a dash,
 4737     // lowercase letter, or digit, except the last character, which cannot
 4738     // be a dash.
 4739     Name string `json:"name,omitempty"`
 4740 
 4741     // NetworkInterfaces: An array of configurations for this interface.
 4742     // This specifies how this interface is configured to interact with
 4743     // other network services, such as connecting to the internet. Only one
 4744     // interface is supported per instance.
 4745     NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 4746 
 4747     // Scheduling: Scheduling options for this instance.
 4748     Scheduling *Scheduling `json:"scheduling,omitempty"`
 4749 
 4750     // SelfLink: [Output Only] Server-defined URL for this resource.
 4751     SelfLink string `json:"selfLink,omitempty"`
 4752 
 4753     // ServiceAccounts: A list of service accounts, with their specified
 4754     // scopes, authorized for this instance. Service accounts generate
 4755     // access tokens that can be accessed through the metadata server and
 4756     // used to authenticate applications on the instance. See Service
 4757     // Accounts for more information.
 4758     ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
 4759 
 4760     // Status: [Output Only] The status of the instance. One of the
 4761     // following values: PROVISIONING, STAGING, RUNNING, STOPPING,
 4762     // SUSPENDING, SUSPENDED, and TERMINATED.
 4763     //
 4764     // Possible values:
 4765     //   "PROVISIONING"
 4766     //   "RUNNING"
 4767     //   "STAGING"
 4768     //   "STOPPED"
 4769     //   "STOPPING"
 4770     //   "SUSPENDED"
 4771     //   "SUSPENDING"
 4772     //   "TERMINATED"
 4773     Status string `json:"status,omitempty"`
 4774 
 4775     // StatusMessage: [Output Only] An optional, human-readable explanation
 4776     // of the status.
 4777     StatusMessage string `json:"statusMessage,omitempty"`
 4778 
 4779     // Tags: A list of tags to apply to this instance. Tags are used to
 4780     // identify valid sources or targets for network firewalls and are
 4781     // specified by the client during instance creation. The tags can be
 4782     // later modified by the setTags method. Each tag within the list must
 4783     // comply with RFC1035.
 4784     Tags *Tags `json:"tags,omitempty"`
 4785 
 4786     // Zone: [Output Only] URL of the zone where the instance resides.
 4787     Zone string `json:"zone,omitempty"`
 4788 
 4789     // ServerResponse contains the HTTP response code and headers from the
 4790     // server.
 4791     googleapi.ServerResponse `json:"-"`
 4792 
 4793     // ForceSendFields is a list of field names (e.g. "CanIpForward") to
 4794     // unconditionally include in API requests. By default, fields with
 4795     // empty values are omitted from API requests. However, any non-pointer,
 4796     // non-interface field appearing in ForceSendFields will be sent to the
 4797     // server regardless of whether the field is empty or not. This may be
 4798     // used to include empty fields in Patch requests.
 4799     ForceSendFields []string `json:"-"`
 4800 
 4801     // NullFields is a list of field names (e.g. "CanIpForward") to include
 4802     // in API requests with the JSON null value. By default, fields with
 4803     // empty values are omitted from API requests. However, any field with
 4804     // an empty value appearing in NullFields will be sent to the server as
 4805     // null. It is an error if a field in this list has a non-empty value.
 4806     // This may be used to include null fields in Patch requests.
 4807     NullFields []string `json:"-"`
 4808 }
 4809 
 4810 func (s *Instance) MarshalJSON() ([]byte, error) {
 4811     type noMethod Instance
 4812     raw := noMethod(*s)
 4813     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4814 }
 4815 
 4816 type InstanceAggregatedList struct {
 4817     // Id: [Output Only] The unique identifier for the resource. This
 4818     // identifier is defined by the server.
 4819     Id string `json:"id,omitempty"`
 4820 
 4821     // Items: [Output Only] A map of scoped instance lists.
 4822     Items map[string]InstancesScopedList `json:"items,omitempty"`
 4823 
 4824     // Kind: [Output Only] Type of resource. Always
 4825     // compute#instanceAggregatedList for aggregated lists of Instance
 4826     // resources.
 4827     Kind string `json:"kind,omitempty"`
 4828 
 4829     // NextPageToken: [Output Only] This token allows you to get the next
 4830     // page of results for list requests. If the number of results is larger
 4831     // than maxResults, use the nextPageToken as a value for the query
 4832     // parameter pageToken in the next list request. Subsequent list
 4833     // requests will have their own nextPageToken to continue paging through
 4834     // the results.
 4835     NextPageToken string `json:"nextPageToken,omitempty"`
 4836 
 4837     // SelfLink: [Output Only] Server-defined URL for this resource.
 4838     SelfLink string `json:"selfLink,omitempty"`
 4839 
 4840     // ServerResponse contains the HTTP response code and headers from the
 4841     // server.
 4842     googleapi.ServerResponse `json:"-"`
 4843 
 4844     // ForceSendFields is a list of field names (e.g. "Id") to
 4845     // unconditionally include in API requests. By default, fields with
 4846     // empty values are omitted from API requests. However, any non-pointer,
 4847     // non-interface field appearing in ForceSendFields will be sent to the
 4848     // server regardless of whether the field is empty or not. This may be
 4849     // used to include empty fields in Patch requests.
 4850     ForceSendFields []string `json:"-"`
 4851 
 4852     // NullFields is a list of field names (e.g. "Id") to include in API
 4853     // requests with the JSON null value. By default, fields with empty
 4854     // values are omitted from API requests. However, any field with an
 4855     // empty value appearing in NullFields will be sent to the server as
 4856     // null. It is an error if a field in this list has a non-empty value.
 4857     // This may be used to include null fields in Patch requests.
 4858     NullFields []string `json:"-"`
 4859 }
 4860 
 4861 func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
 4862     type noMethod InstanceAggregatedList
 4863     raw := noMethod(*s)
 4864     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4865 }
 4866 
 4867 type InstanceGroup struct {
 4868     // CreationTimestamp: [Output Only] The creation timestamp for this
 4869     // instance group in RFC3339 text format.
 4870     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 4871 
 4872     // Description: An optional description of this resource. Provide this
 4873     // property when you create the resource.
 4874     Description string `json:"description,omitempty"`
 4875 
 4876     // Fingerprint: [Output Only] The fingerprint of the named ports. The
 4877     // system uses this fingerprint to detect conflicts when multiple users
 4878     // change the named ports concurrently.
 4879     Fingerprint string `json:"fingerprint,omitempty"`
 4880 
 4881     // Id: [Output Only] A unique identifier for this instance group,
 4882     // generated by the server.
 4883     Id uint64 `json:"id,omitempty,string"`
 4884 
 4885     // Kind: [Output Only] The resource type, which is always
 4886     // compute#instanceGroup for instance groups.
 4887     Kind string `json:"kind,omitempty"`
 4888 
 4889     // Name: The name of the instance group. The name must be 1-63
 4890     // characters long, and comply with RFC1035.
 4891     Name string `json:"name,omitempty"`
 4892 
 4893     // NamedPorts: Assigns a name to a port number. For example: {name:
 4894     // "http", port: 80}
 4895     //
 4896     // This allows the system to reference ports by the assigned name
 4897     // instead of a port number. Named ports can also contain multiple
 4898     // ports. For example: [{name: "http", port: 80},{name: "http", port:
 4899     // 8080}]
 4900     //
 4901     // Named ports apply to all instances in this instance group.
 4902     NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
 4903 
 4904     // Network: The URL of the network to which all instances in the
 4905     // instance group belong.
 4906     Network string `json:"network,omitempty"`
 4907 
 4908     // Region: The URL of the region where the instance group is located
 4909     // (for regional resources).
 4910     Region string `json:"region,omitempty"`
 4911 
 4912     // SelfLink: [Output Only] The URL for this instance group. The server
 4913     // generates this URL.
 4914     SelfLink string `json:"selfLink,omitempty"`
 4915 
 4916     // Size: [Output Only] The total number of instances in the instance
 4917     // group.
 4918     Size int64 `json:"size,omitempty"`
 4919 
 4920     // Subnetwork: The URL of the subnetwork to which all instances in the
 4921     // instance group belong.
 4922     Subnetwork string `json:"subnetwork,omitempty"`
 4923 
 4924     // Zone: [Output Only] The URL of the zone where the instance group is
 4925     // located (for zonal resources).
 4926     Zone string `json:"zone,omitempty"`
 4927 
 4928     // ServerResponse contains the HTTP response code and headers from the
 4929     // server.
 4930     googleapi.ServerResponse `json:"-"`
 4931 
 4932     // ForceSendFields is a list of field names (e.g. "CreationTimestamp")
 4933     // to unconditionally include in API requests. By default, fields with
 4934     // empty values are omitted from API requests. However, any non-pointer,
 4935     // non-interface field appearing in ForceSendFields will be sent to the
 4936     // server regardless of whether the field is empty or not. This may be
 4937     // used to include empty fields in Patch requests.
 4938     ForceSendFields []string `json:"-"`
 4939 
 4940     // NullFields is a list of field names (e.g. "CreationTimestamp") to
 4941     // include in API requests with the JSON null value. By default, fields
 4942     // with empty values are omitted from API requests. However, any field
 4943     // with an empty value appearing in NullFields will be sent to the
 4944     // server as null. It is an error if a field in this list has a
 4945     // non-empty value. This may be used to include null fields in Patch
 4946     // requests.
 4947     NullFields []string `json:"-"`
 4948 }
 4949 
 4950 func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
 4951     type noMethod InstanceGroup
 4952     raw := noMethod(*s)
 4953     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 4954 }
 4955 
 4956 type InstanceGroupAggregatedList struct {
 4957     // Id: [Output Only] A unique identifier for this aggregated list of
 4958     // instance groups. The server generates this identifier.
 4959     Id string `json:"id,omitempty"`
 4960 
 4961     // Items: A map of scoped instance group lists.
 4962     Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
 4963 
 4964     // Kind: [Output Only] The resource type, which is always
 4965     // compute#instanceGroupAggregatedList for aggregated lists of instance
 4966     // groups.
 4967     Kind string `json:"kind,omitempty"`
 4968 
 4969     // NextPageToken: [Output Only] This token allows you to get the next
 4970     // page of results for list requests. If the number of results is larger
 4971     // than maxResults, use the nextPageToken as a value for the query
 4972     // parameter pageToken in the next list request. Subsequent list
 4973     // requests will have their own nextPageToken to continue paging through
 4974     // the results.
 4975     NextPageToken string `json:"nextPageToken,omitempty"`
 4976 
 4977     // SelfLink: [Output Only] The URL for this resource type. The server
 4978     // generates this URL.
 4979     SelfLink string `json:"selfLink,omitempty"`
 4980 
 4981     // ServerResponse contains the HTTP response code and headers from the
 4982     // server.
 4983     googleapi.ServerResponse `json:"-"`
 4984 
 4985     // ForceSendFields is a list of field names (e.g. "Id") to
 4986     // unconditionally include in API requests. By default, fields with
 4987     // empty values are omitted from API requests. However, any non-pointer,
 4988     // non-interface field appearing in ForceSendFields will be sent to the
 4989     // server regardless of whether the field is empty or not. This may be
 4990     // used to include empty fields in Patch requests.
 4991     ForceSendFields []string `json:"-"`
 4992 
 4993     // NullFields is a list of field names (e.g. "Id") to include in API
 4994     // requests with the JSON null value. By default, fields with empty
 4995     // values are omitted from API requests. However, any field with an
 4996     // empty value appearing in NullFields will be sent to the server as
 4997     // null. It is an error if a field in this list has a non-empty value.
 4998     // This may be used to include null fields in Patch requests.
 4999     NullFields []string `json:"-"`
 5000 }
 5001 
 5002 func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
 5003     type noMethod InstanceGroupAggregatedList
 5004     raw := noMethod(*s)
 5005     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5006 }
 5007 
 5008 // InstanceGroupList: A list of InstanceGroup resources.
 5009 type InstanceGroupList struct {
 5010     // Id: [Output Only] A unique identifier for this list of instance
 5011     // groups. The server generates this identifier.
 5012     Id string `json:"id,omitempty"`
 5013 
 5014     // Items: A list of instance groups.
 5015     Items []*InstanceGroup `json:"items,omitempty"`
 5016 
 5017     // Kind: [Output Only] The resource type, which is always
 5018     // compute#instanceGroupList for instance group lists.
 5019     Kind string `json:"kind,omitempty"`
 5020 
 5021     // NextPageToken: [Output Only] This token allows you to get the next
 5022     // page of results for list requests. If the number of results is larger
 5023     // than maxResults, use the nextPageToken as a value for the query
 5024     // parameter pageToken in the next list request. Subsequent list
 5025     // requests will have their own nextPageToken to continue paging through
 5026     // the results.
 5027     NextPageToken string `json:"nextPageToken,omitempty"`
 5028 
 5029     // SelfLink: [Output Only] The URL for this resource type. The server
 5030     // generates this URL.
 5031     SelfLink string `json:"selfLink,omitempty"`
 5032 
 5033     // ServerResponse contains the HTTP response code and headers from the
 5034     // server.
 5035     googleapi.ServerResponse `json:"-"`
 5036 
 5037     // ForceSendFields is a list of field names (e.g. "Id") to
 5038     // unconditionally include in API requests. By default, fields with
 5039     // empty values are omitted from API requests. However, any non-pointer,
 5040     // non-interface field appearing in ForceSendFields will be sent to the
 5041     // server regardless of whether the field is empty or not. This may be
 5042     // used to include empty fields in Patch requests.
 5043     ForceSendFields []string `json:"-"`
 5044 
 5045     // NullFields is a list of field names (e.g. "Id") to include in API
 5046     // requests with the JSON null value. By default, fields with empty
 5047     // values are omitted from API requests. However, any field with an
 5048     // empty value appearing in NullFields will be sent to the server as
 5049     // null. It is an error if a field in this list has a non-empty value.
 5050     // This may be used to include null fields in Patch requests.
 5051     NullFields []string `json:"-"`
 5052 }
 5053 
 5054 func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
 5055     type noMethod InstanceGroupList
 5056     raw := noMethod(*s)
 5057     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5058 }
 5059 
 5060 // InstanceGroupManager: An Instance Group Manager resource.
 5061 type InstanceGroupManager struct {
 5062     // BaseInstanceName: The base instance name to use for instances in this
 5063     // group. The value must be 1-58 characters long. Instances are named by
 5064     // appending a hyphen and a random four-character string to the base
 5065     // instance name. The base instance name must comply with RFC1035.
 5066     BaseInstanceName string `json:"baseInstanceName,omitempty"`
 5067 
 5068     // CreationTimestamp: [Output Only] The creation timestamp for this
 5069     // managed instance group in RFC3339 text format.
 5070     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 5071 
 5072     // CurrentActions: [Output Only] The list of instance actions and the
 5073     // number of instances in this managed instance group that are scheduled
 5074     // for each of those actions.
 5075     CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
 5076 
 5077     // Description: An optional description of this resource. Provide this
 5078     // property when you create the resource.
 5079     Description string `json:"description,omitempty"`
 5080 
 5081     // Fingerprint: [Output Only] The fingerprint of the resource data. You
 5082     // can use this optional field for optimistic locking when you update
 5083     // the resource.
 5084     Fingerprint string `json:"fingerprint,omitempty"`
 5085 
 5086     // Id: [Output Only] A unique identifier for this resource type. The
 5087     // server generates this identifier.
 5088     Id uint64 `json:"id,omitempty,string"`
 5089 
 5090     // InstanceGroup: [Output Only] The URL of the Instance Group resource.
 5091     InstanceGroup string `json:"instanceGroup,omitempty"`
 5092 
 5093     // InstanceTemplate: The URL of the instance template that is specified
 5094     // for this managed instance group. The group uses this template to
 5095     // create all new instances in the managed instance group.
 5096     InstanceTemplate string `json:"instanceTemplate,omitempty"`
 5097 
 5098     // Kind: [Output Only] The resource type, which is always
 5099     // compute#instanceGroupManager for managed instance groups.
 5100     Kind string `json:"kind,omitempty"`
 5101 
 5102     // Name: The name of the managed instance group. The name must be 1-63
 5103     // characters long, and comply with RFC1035.
 5104     Name string `json:"name,omitempty"`
 5105 
 5106     // NamedPorts: Named ports configured for the Instance Groups
 5107     // complementary to this Instance Group Manager.
 5108     NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
 5109 
 5110     // Region: [Output Only] The URL of the region where the managed
 5111     // instance group resides (for regional resources).
 5112     Region string `json:"region,omitempty"`
 5113 
 5114     // SelfLink: [Output Only] The URL for this managed instance group. The
 5115     // server defines this URL.
 5116     SelfLink string `json:"selfLink,omitempty"`
 5117 
 5118     // TargetPools: The URLs for all TargetPool resources to which instances
 5119     // in the instanceGroup field are added. The target pools automatically
 5120     // apply to all of the instances in the managed instance group.
 5121     TargetPools []string `json:"targetPools,omitempty"`
 5122 
 5123     // TargetSize: The target number of running instances for this managed
 5124     // instance group. Deleting or abandoning instances reduces this number.
 5125     // Resizing the group changes this number.
 5126     TargetSize int64 `json:"targetSize,omitempty"`
 5127 
 5128     // Zone: [Output Only] The URL of the zone where the managed instance
 5129     // group is located (for zonal resources).
 5130     Zone string `json:"zone,omitempty"`
 5131 
 5132     // ServerResponse contains the HTTP response code and headers from the
 5133     // server.
 5134     googleapi.ServerResponse `json:"-"`
 5135 
 5136     // ForceSendFields is a list of field names (e.g. "BaseInstanceName") to
 5137     // unconditionally include in API requests. By default, fields with
 5138     // empty values are omitted from API requests. However, any non-pointer,
 5139     // non-interface field appearing in ForceSendFields will be sent to the
 5140     // server regardless of whether the field is empty or not. This may be
 5141     // used to include empty fields in Patch requests.
 5142     ForceSendFields []string `json:"-"`
 5143 
 5144     // NullFields is a list of field names (e.g. "BaseInstanceName") to
 5145     // include in API requests with the JSON null value. By default, fields
 5146     // with empty values are omitted from API requests. However, any field
 5147     // with an empty value appearing in NullFields will be sent to the
 5148     // server as null. It is an error if a field in this list has a
 5149     // non-empty value. This may be used to include null fields in Patch
 5150     // requests.
 5151     NullFields []string `json:"-"`
 5152 }
 5153 
 5154 func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
 5155     type noMethod InstanceGroupManager
 5156     raw := noMethod(*s)
 5157     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5158 }
 5159 
 5160 type InstanceGroupManagerActionsSummary struct {
 5161     // Abandoning: [Output Only] The total number of instances in the
 5162     // managed instance group that are scheduled to be abandoned. Abandoning
 5163     // an instance removes it from the managed instance group without
 5164     // deleting it.
 5165     Abandoning int64 `json:"abandoning,omitempty"`
 5166 
 5167     // Creating: [Output Only] The number of instances in the managed
 5168     // instance group that are scheduled to be created or are currently
 5169     // being created. If the group fails to create any of these instances,
 5170     // it tries again until it creates the instance successfully.
 5171     //
 5172     // If you have disabled creation retries, this field will not be
 5173     // populated; instead, the creatingWithoutRetries field will be
 5174     // populated.
 5175     Creating int64 `json:"creating,omitempty"`
 5176 
 5177     // CreatingWithoutRetries: [Output Only] The number of instances that
 5178     // the managed instance group will attempt to create. The group attempts
 5179     // to create each instance only once. If the group fails to create any
 5180     // of these instances, it decreases the group's targetSize value
 5181     // accordingly.
 5182     CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
 5183 
 5184     // Deleting: [Output Only] The number of instances in the managed
 5185     // instance group that are scheduled to be deleted or are currently
 5186     // being deleted.
 5187     Deleting int64 `json:"deleting,omitempty"`
 5188 
 5189     // None: [Output Only] The number of instances in the managed instance
 5190     // group that are running and have no scheduled actions.
 5191     None int64 `json:"none,omitempty"`
 5192 
 5193     // Recreating: [Output Only] The number of instances in the managed
 5194     // instance group that are scheduled to be recreated or are currently
 5195     // being being recreated. Recreating an instance deletes the existing
 5196     // root persistent disk and creates a new disk from the image that is
 5197     // defined in the instance template.
 5198     Recreating int64 `json:"recreating,omitempty"`
 5199 
 5200     // Refreshing: [Output Only] The number of instances in the managed
 5201     // instance group that are being reconfigured with properties that do
 5202     // not require a restart or a recreate action. For example, setting or
 5203     // removing target pools for the instance.
 5204     Refreshing int64 `json:"refreshing,omitempty"`
 5205 
 5206     // Restarting: [Output Only] The number of instances in the managed
 5207     // instance group that are scheduled to be restarted or are currently
 5208     // being restarted.
 5209     Restarting int64 `json:"restarting,omitempty"`
 5210 
 5211     // ForceSendFields is a list of field names (e.g. "Abandoning") to
 5212     // unconditionally include in API requests. By default, fields with
 5213     // empty values are omitted from API requests. However, any non-pointer,
 5214     // non-interface field appearing in ForceSendFields will be sent to the
 5215     // server regardless of whether the field is empty or not. This may be
 5216     // used to include empty fields in Patch requests.
 5217     ForceSendFields []string `json:"-"`
 5218 
 5219     // NullFields is a list of field names (e.g. "Abandoning") to include in
 5220     // API requests with the JSON null value. By default, fields with empty
 5221     // values are omitted from API requests. However, any field with an
 5222     // empty value appearing in NullFields will be sent to the server as
 5223     // null. It is an error if a field in this list has a non-empty value.
 5224     // This may be used to include null fields in Patch requests.
 5225     NullFields []string `json:"-"`
 5226 }
 5227 
 5228 func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
 5229     type noMethod InstanceGroupManagerActionsSummary
 5230     raw := noMethod(*s)
 5231     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5232 }
 5233 
 5234 type InstanceGroupManagerAggregatedList struct {
 5235     // Id: [Output Only] A unique identifier for this aggregated list of
 5236     // managed instance groups. The server generates this identifier.
 5237     Id string `json:"id,omitempty"`
 5238 
 5239     // Items: [Output Only] A map of filtered managed instance group lists.
 5240     Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
 5241 
 5242     // Kind: [Output Only] The resource type, which is always
 5243     // compute#instanceGroupManagerAggregatedList for an aggregated list of
 5244     // managed instance groups.
 5245     Kind string `json:"kind,omitempty"`
 5246 
 5247     // NextPageToken: [Output Only] This token allows you to get the next
 5248     // page of results for list requests. If the number of results is larger
 5249     // than maxResults, use the nextPageToken as a value for the query
 5250     // parameter pageToken in the next list request. Subsequent list
 5251     // requests will have their own nextPageToken to continue paging through
 5252     // the results.
 5253     NextPageToken string `json:"nextPageToken,omitempty"`
 5254 
 5255     // SelfLink: [Output Only] The URL for this resource type. The server
 5256     // generates this URL.
 5257     SelfLink string `json:"selfLink,omitempty"`
 5258 
 5259     // ServerResponse contains the HTTP response code and headers from the
 5260     // server.
 5261     googleapi.ServerResponse `json:"-"`
 5262 
 5263     // ForceSendFields is a list of field names (e.g. "Id") to
 5264     // unconditionally include in API requests. By default, fields with
 5265     // empty values are omitted from API requests. However, any non-pointer,
 5266     // non-interface field appearing in ForceSendFields will be sent to the
 5267     // server regardless of whether the field is empty or not. This may be
 5268     // used to include empty fields in Patch requests.
 5269     ForceSendFields []string `json:"-"`
 5270 
 5271     // NullFields is a list of field names (e.g. "Id") to include in API
 5272     // requests with the JSON null value. By default, fields with empty
 5273     // values are omitted from API requests. However, any field with an
 5274     // empty value appearing in NullFields will be sent to the server as
 5275     // null. It is an error if a field in this list has a non-empty value.
 5276     // This may be used to include null fields in Patch requests.
 5277     NullFields []string `json:"-"`
 5278 }
 5279 
 5280 func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
 5281     type noMethod InstanceGroupManagerAggregatedList
 5282     raw := noMethod(*s)
 5283     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5284 }
 5285 
 5286 // InstanceGroupManagerList: [Output Only] A list of managed instance
 5287 // groups.
 5288 type InstanceGroupManagerList struct {
 5289     // Id: [Output Only] A unique identifier for this resource type. The
 5290     // server generates this identifier.
 5291     Id string `json:"id,omitempty"`
 5292 
 5293     // Items: [Output Only] A list of managed instance groups.
 5294     Items []*InstanceGroupManager `json:"items,omitempty"`
 5295 
 5296     // Kind: [Output Only] The resource type, which is always
 5297     // compute#instanceGroupManagerList for a list of managed instance
 5298     // groups.
 5299     Kind string `json:"kind,omitempty"`
 5300 
 5301     // NextPageToken: [Output Only] This token allows you to get the next
 5302     // page of results for list requests. If the number of results is larger
 5303     // than maxResults, use the nextPageToken as a value for the query
 5304     // parameter pageToken in the next list request. Subsequent list
 5305     // requests will have their own nextPageToken to continue paging through
 5306     // the results.
 5307     NextPageToken string `json:"nextPageToken,omitempty"`
 5308 
 5309     // SelfLink: [Output Only] Server-defined URL for this resource.
 5310     SelfLink string `json:"selfLink,omitempty"`
 5311 
 5312     // ServerResponse contains the HTTP response code and headers from the
 5313     // server.
 5314     googleapi.ServerResponse `json:"-"`
 5315 
 5316     // ForceSendFields is a list of field names (e.g. "Id") to
 5317     // unconditionally include in API requests. By default, fields with
 5318     // empty values are omitted from API requests. However, any non-pointer,
 5319     // non-interface field appearing in ForceSendFields will be sent to the
 5320     // server regardless of whether the field is empty or not. This may be
 5321     // used to include empty fields in Patch requests.
 5322     ForceSendFields []string `json:"-"`
 5323 
 5324     // NullFields is a list of field names (e.g. "Id") to include in API
 5325     // requests with the JSON null value. By default, fields with empty
 5326     // values are omitted from API requests. However, any field with an
 5327     // empty value appearing in NullFields will be sent to the server as
 5328     // null. It is an error if a field in this list has a non-empty value.
 5329     // This may be used to include null fields in Patch requests.
 5330     NullFields []string `json:"-"`
 5331 }
 5332 
 5333 func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
 5334     type noMethod InstanceGroupManagerList
 5335     raw := noMethod(*s)
 5336     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5337 }
 5338 
 5339 type InstanceGroupManagersAbandonInstancesRequest struct {
 5340     // Instances: The URL for one or more instances to abandon from the
 5341     // managed instance group.
 5342     Instances []string `json:"instances,omitempty"`
 5343 
 5344     // ForceSendFields is a list of field names (e.g. "Instances") to
 5345     // unconditionally include in API requests. By default, fields with
 5346     // empty values are omitted from API requests. However, any non-pointer,
 5347     // non-interface field appearing in ForceSendFields will be sent to the
 5348     // server regardless of whether the field is empty or not. This may be
 5349     // used to include empty fields in Patch requests.
 5350     ForceSendFields []string `json:"-"`
 5351 
 5352     // NullFields is a list of field names (e.g. "Instances") to include in
 5353     // API requests with the JSON null value. By default, fields with empty
 5354     // values are omitted from API requests. However, any field with an
 5355     // empty value appearing in NullFields will be sent to the server as
 5356     // null. It is an error if a field in this list has a non-empty value.
 5357     // This may be used to include null fields in Patch requests.
 5358     NullFields []string `json:"-"`
 5359 }
 5360 
 5361 func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
 5362     type noMethod InstanceGroupManagersAbandonInstancesRequest
 5363     raw := noMethod(*s)
 5364     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5365 }
 5366 
 5367 type InstanceGroupManagersDeleteInstancesRequest struct {
 5368     // Instances: The list of instances to delete from this managed instance
 5369     // group. Specify one or more instance URLs.
 5370     Instances []string `json:"instances,omitempty"`
 5371 
 5372     // ForceSendFields is a list of field names (e.g. "Instances") to
 5373     // unconditionally include in API requests. By default, fields with
 5374     // empty values are omitted from API requests. However, any non-pointer,
 5375     // non-interface field appearing in ForceSendFields will be sent to the
 5376     // server regardless of whether the field is empty or not. This may be
 5377     // used to include empty fields in Patch requests.
 5378     ForceSendFields []string `json:"-"`
 5379 
 5380     // NullFields is a list of field names (e.g. "Instances") to include in
 5381     // API requests with the JSON null value. By default, fields with empty
 5382     // values are omitted from API requests. However, any field with an
 5383     // empty value appearing in NullFields will be sent to the server as
 5384     // null. It is an error if a field in this list has a non-empty value.
 5385     // This may be used to include null fields in Patch requests.
 5386     NullFields []string `json:"-"`
 5387 }
 5388 
 5389 func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
 5390     type noMethod InstanceGroupManagersDeleteInstancesRequest
 5391     raw := noMethod(*s)
 5392     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5393 }
 5394 
 5395 type InstanceGroupManagersListManagedInstancesResponse struct {
 5396     // ManagedInstances: [Output Only] The list of instances in the managed
 5397     // instance group.
 5398     ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
 5399 
 5400     // ServerResponse contains the HTTP response code and headers from the
 5401     // server.
 5402     googleapi.ServerResponse `json:"-"`
 5403 
 5404     // ForceSendFields is a list of field names (e.g. "ManagedInstances") to
 5405     // unconditionally include in API requests. By default, fields with
 5406     // empty values are omitted from API requests. However, any non-pointer,
 5407     // non-interface field appearing in ForceSendFields will be sent to the
 5408     // server regardless of whether the field is empty or not. This may be
 5409     // used to include empty fields in Patch requests.
 5410     ForceSendFields []string `json:"-"`
 5411 
 5412     // NullFields is a list of field names (e.g. "ManagedInstances") to
 5413     // include in API requests with the JSON null value. By default, fields
 5414     // with empty values are omitted from API requests. However, any field
 5415     // with an empty value appearing in NullFields will be sent to the
 5416     // server as null. It is an error if a field in this list has a
 5417     // non-empty value. This may be used to include null fields in Patch
 5418     // requests.
 5419     NullFields []string `json:"-"`
 5420 }
 5421 
 5422 func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
 5423     type noMethod InstanceGroupManagersListManagedInstancesResponse
 5424     raw := noMethod(*s)
 5425     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5426 }
 5427 
 5428 type InstanceGroupManagersRecreateInstancesRequest struct {
 5429     // Instances: The URL for one or more instances to recreate.
 5430     Instances []string `json:"instances,omitempty"`
 5431 
 5432     // ForceSendFields is a list of field names (e.g. "Instances") to
 5433     // unconditionally include in API requests. By default, fields with
 5434     // empty values are omitted from API requests. However, any non-pointer,
 5435     // non-interface field appearing in ForceSendFields will be sent to the
 5436     // server regardless of whether the field is empty or not. This may be
 5437     // used to include empty fields in Patch requests.
 5438     ForceSendFields []string `json:"-"`
 5439 
 5440     // NullFields is a list of field names (e.g. "Instances") to include in
 5441     // API requests with the JSON null value. By default, fields with empty
 5442     // values are omitted from API requests. However, any field with an
 5443     // empty value appearing in NullFields will be sent to the server as
 5444     // null. It is an error if a field in this list has a non-empty value.
 5445     // This may be used to include null fields in Patch requests.
 5446     NullFields []string `json:"-"`
 5447 }
 5448 
 5449 func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
 5450     type noMethod InstanceGroupManagersRecreateInstancesRequest
 5451     raw := noMethod(*s)
 5452     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5453 }
 5454 
 5455 type InstanceGroupManagersScopedList struct {
 5456     // InstanceGroupManagers: [Output Only] The list of managed instance
 5457     // groups that are contained in the specified project and zone.
 5458     InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
 5459 
 5460     // Warning: [Output Only] The warning that replaces the list of managed
 5461     // instance groups when the list is empty.
 5462     Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
 5463 
 5464     // ForceSendFields is a list of field names (e.g.
 5465     // "InstanceGroupManagers") to unconditionally include in API requests.
 5466     // By default, fields with empty values are omitted from API requests.
 5467     // However, any non-pointer, non-interface field appearing in
 5468     // ForceSendFields will be sent to the server regardless of whether the
 5469     // field is empty or not. This may be used to include empty fields in
 5470     // Patch requests.
 5471     ForceSendFields []string `json:"-"`
 5472 
 5473     // NullFields is a list of field names (e.g. "InstanceGroupManagers") to
 5474     // include in API requests with the JSON null value. By default, fields
 5475     // with empty values are omitted from API requests. However, any field
 5476     // with an empty value appearing in NullFields will be sent to the
 5477     // server as null. It is an error if a field in this list has a
 5478     // non-empty value. This may be used to include null fields in Patch
 5479     // requests.
 5480     NullFields []string `json:"-"`
 5481 }
 5482 
 5483 func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
 5484     type noMethod InstanceGroupManagersScopedList
 5485     raw := noMethod(*s)
 5486     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5487 }
 5488 
 5489 // InstanceGroupManagersScopedListWarning: [Output Only] The warning
 5490 // that replaces the list of managed instance groups when the list is
 5491 // empty.
 5492 type InstanceGroupManagersScopedListWarning struct {
 5493     // Code: [Output Only] A warning code, if applicable. For example,
 5494     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 5495     // the response.
 5496     //
 5497     // Possible values:
 5498     //   "CLEANUP_FAILED"
 5499     //   "DEPRECATED_RESOURCE_USED"
 5500     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 5501     //   "FIELD_VALUE_OVERRIDEN"
 5502     //   "INJECTED_KERNELS_DEPRECATED"
 5503     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 5504     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 5505     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 5506     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 5507     //   "NEXT_HOP_NOT_RUNNING"
 5508     //   "NOT_CRITICAL_ERROR"
 5509     //   "NO_RESULTS_ON_PAGE"
 5510     //   "REQUIRED_TOS_AGREEMENT"
 5511     //   "RESOURCE_NOT_DELETED"
 5512     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 5513     //   "UNREACHABLE"
 5514     Code string `json:"code,omitempty"`
 5515 
 5516     // Data: [Output Only] Metadata about this warning in key: value format.
 5517     // For example:
 5518     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 5519     Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
 5520 
 5521     // Message: [Output Only] A human-readable description of the warning
 5522     // code.
 5523     Message string `json:"message,omitempty"`
 5524 
 5525     // ForceSendFields is a list of field names (e.g. "Code") to
 5526     // unconditionally include in API requests. By default, fields with
 5527     // empty values are omitted from API requests. However, any non-pointer,
 5528     // non-interface field appearing in ForceSendFields will be sent to the
 5529     // server regardless of whether the field is empty or not. This may be
 5530     // used to include empty fields in Patch requests.
 5531     ForceSendFields []string `json:"-"`
 5532 
 5533     // NullFields is a list of field names (e.g. "Code") to include in API
 5534     // requests with the JSON null value. By default, fields with empty
 5535     // values are omitted from API requests. However, any field with an
 5536     // empty value appearing in NullFields will be sent to the server as
 5537     // null. It is an error if a field in this list has a non-empty value.
 5538     // This may be used to include null fields in Patch requests.
 5539     NullFields []string `json:"-"`
 5540 }
 5541 
 5542 func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
 5543     type noMethod InstanceGroupManagersScopedListWarning
 5544     raw := noMethod(*s)
 5545     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5546 }
 5547 
 5548 type InstanceGroupManagersScopedListWarningData struct {
 5549     // Key: [Output Only] A key that provides more detail on the warning
 5550     // being returned. For example, for warnings where there are no results
 5551     // in a list request for a particular zone, this key might be scope and
 5552     // the key value might be the zone name. Other examples might be a key
 5553     // indicating a deprecated resource and a suggested replacement, or a
 5554     // warning about invalid network settings (for example, if an instance
 5555     // attempts to perform IP forwarding but is not enabled for IP
 5556     // forwarding).
 5557     Key string `json:"key,omitempty"`
 5558 
 5559     // Value: [Output Only] A warning data value corresponding to the key.
 5560     Value string `json:"value,omitempty"`
 5561 
 5562     // ForceSendFields is a list of field names (e.g. "Key") to
 5563     // unconditionally include in API requests. By default, fields with
 5564     // empty values are omitted from API requests. However, any non-pointer,
 5565     // non-interface field appearing in ForceSendFields will be sent to the
 5566     // server regardless of whether the field is empty or not. This may be
 5567     // used to include empty fields in Patch requests.
 5568     ForceSendFields []string `json:"-"`
 5569 
 5570     // NullFields is a list of field names (e.g. "Key") to include in API
 5571     // requests with the JSON null value. By default, fields with empty
 5572     // values are omitted from API requests. However, any field with an
 5573     // empty value appearing in NullFields will be sent to the server as
 5574     // null. It is an error if a field in this list has a non-empty value.
 5575     // This may be used to include null fields in Patch requests.
 5576     NullFields []string `json:"-"`
 5577 }
 5578 
 5579 func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
 5580     type noMethod InstanceGroupManagersScopedListWarningData
 5581     raw := noMethod(*s)
 5582     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5583 }
 5584 
 5585 type InstanceGroupManagersSetInstanceTemplateRequest struct {
 5586     // InstanceTemplate: The URL of the instance template that is specified
 5587     // for this managed instance group. The group uses this template to
 5588     // create all new instances in the managed instance group.
 5589     InstanceTemplate string `json:"instanceTemplate,omitempty"`
 5590 
 5591     // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
 5592     // unconditionally include in API requests. By default, fields with
 5593     // empty values are omitted from API requests. However, any non-pointer,
 5594     // non-interface field appearing in ForceSendFields will be sent to the
 5595     // server regardless of whether the field is empty or not. This may be
 5596     // used to include empty fields in Patch requests.
 5597     ForceSendFields []string `json:"-"`
 5598 
 5599     // NullFields is a list of field names (e.g. "InstanceTemplate") to
 5600     // include in API requests with the JSON null value. By default, fields
 5601     // with empty values are omitted from API requests. However, any field
 5602     // with an empty value appearing in NullFields will be sent to the
 5603     // server as null. It is an error if a field in this list has a
 5604     // non-empty value. This may be used to include null fields in Patch
 5605     // requests.
 5606     NullFields []string `json:"-"`
 5607 }
 5608 
 5609 func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
 5610     type noMethod InstanceGroupManagersSetInstanceTemplateRequest
 5611     raw := noMethod(*s)
 5612     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5613 }
 5614 
 5615 type InstanceGroupManagersSetTargetPoolsRequest struct {
 5616     // Fingerprint: The fingerprint of the target pools information. Use
 5617     // this optional property to prevent conflicts when multiple users
 5618     // change the target pools settings concurrently. Obtain the fingerprint
 5619     // with the instanceGroupManagers.get method. Then, include the
 5620     // fingerprint in your request to ensure that you do not overwrite
 5621     // changes that were applied from another concurrent request.
 5622     Fingerprint string `json:"fingerprint,omitempty"`
 5623 
 5624     // TargetPools: The list of target pool URLs that instances in this
 5625     // managed instance group belong to. The managed instance group applies
 5626     // these target pools to all of the instances in the group. Existing
 5627     // instances and new instances in the group all receive these target
 5628     // pool settings.
 5629     TargetPools []string `json:"targetPools,omitempty"`
 5630 
 5631     // ForceSendFields is a list of field names (e.g. "Fingerprint") to
 5632     // unconditionally include in API requests. By default, fields with
 5633     // empty values are omitted from API requests. However, any non-pointer,
 5634     // non-interface field appearing in ForceSendFields will be sent to the
 5635     // server regardless of whether the field is empty or not. This may be
 5636     // used to include empty fields in Patch requests.
 5637     ForceSendFields []string `json:"-"`
 5638 
 5639     // NullFields is a list of field names (e.g. "Fingerprint") to include
 5640     // in API requests with the JSON null value. By default, fields with
 5641     // empty values are omitted from API requests. However, any field with
 5642     // an empty value appearing in NullFields will be sent to the server as
 5643     // null. It is an error if a field in this list has a non-empty value.
 5644     // This may be used to include null fields in Patch requests.
 5645     NullFields []string `json:"-"`
 5646 }
 5647 
 5648 func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
 5649     type noMethod InstanceGroupManagersSetTargetPoolsRequest
 5650     raw := noMethod(*s)
 5651     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5652 }
 5653 
 5654 type InstanceGroupsAddInstancesRequest struct {
 5655     // Instances: The list of instances to add to the instance group.
 5656     Instances []*InstanceReference `json:"instances,omitempty"`
 5657 
 5658     // ForceSendFields is a list of field names (e.g. "Instances") to
 5659     // unconditionally include in API requests. By default, fields with
 5660     // empty values are omitted from API requests. However, any non-pointer,
 5661     // non-interface field appearing in ForceSendFields will be sent to the
 5662     // server regardless of whether the field is empty or not. This may be
 5663     // used to include empty fields in Patch requests.
 5664     ForceSendFields []string `json:"-"`
 5665 
 5666     // NullFields is a list of field names (e.g. "Instances") to include in
 5667     // API requests with the JSON null value. By default, fields with empty
 5668     // values are omitted from API requests. However, any field with an
 5669     // empty value appearing in NullFields will be sent to the server as
 5670     // null. It is an error if a field in this list has a non-empty value.
 5671     // This may be used to include null fields in Patch requests.
 5672     NullFields []string `json:"-"`
 5673 }
 5674 
 5675 func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
 5676     type noMethod InstanceGroupsAddInstancesRequest
 5677     raw := noMethod(*s)
 5678     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5679 }
 5680 
 5681 type InstanceGroupsListInstances struct {
 5682     // Id: [Output Only] A unique identifier for this list of instances in
 5683     // the specified instance group. The server generates this identifier.
 5684     Id string `json:"id,omitempty"`
 5685 
 5686     // Items: [Output Only] A list of instances and any named ports that are
 5687     // assigned to those instances.
 5688     Items []*InstanceWithNamedPorts `json:"items,omitempty"`
 5689 
 5690     // Kind: [Output Only] The resource type, which is always
 5691     // compute#instanceGroupsListInstances for the list of instances in the
 5692     // specified instance group.
 5693     Kind string `json:"kind,omitempty"`
 5694 
 5695     // NextPageToken: [Output Only] This token allows you to get the next
 5696     // page of results for list requests. If the number of results is larger
 5697     // than maxResults, use the nextPageToken as a value for the query
 5698     // parameter pageToken in the next list request. Subsequent list
 5699     // requests will have their own nextPageToken to continue paging through
 5700     // the results.
 5701     NextPageToken string `json:"nextPageToken,omitempty"`
 5702 
 5703     // SelfLink: [Output Only] The URL for this list of instances in the
 5704     // specified instance groups. The server generates this URL.
 5705     SelfLink string `json:"selfLink,omitempty"`
 5706 
 5707     // ServerResponse contains the HTTP response code and headers from the
 5708     // server.
 5709     googleapi.ServerResponse `json:"-"`
 5710 
 5711     // ForceSendFields is a list of field names (e.g. "Id") to
 5712     // unconditionally include in API requests. By default, fields with
 5713     // empty values are omitted from API requests. However, any non-pointer,
 5714     // non-interface field appearing in ForceSendFields will be sent to the
 5715     // server regardless of whether the field is empty or not. This may be
 5716     // used to include empty fields in Patch requests.
 5717     ForceSendFields []string `json:"-"`
 5718 
 5719     // NullFields is a list of field names (e.g. "Id") to include in API
 5720     // requests with the JSON null value. By default, fields with empty
 5721     // values are omitted from API requests. However, any field with an
 5722     // empty value appearing in NullFields will be sent to the server as
 5723     // null. It is an error if a field in this list has a non-empty value.
 5724     // This may be used to include null fields in Patch requests.
 5725     NullFields []string `json:"-"`
 5726 }
 5727 
 5728 func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
 5729     type noMethod InstanceGroupsListInstances
 5730     raw := noMethod(*s)
 5731     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5732 }
 5733 
 5734 type InstanceGroupsListInstancesRequest struct {
 5735     // InstanceState: A filter for the state of the instances in the
 5736     // instance group. Valid options are ALL or RUNNING. If you do not
 5737     // specify this parameter the list includes all instances regardless of
 5738     // their state.
 5739     //
 5740     // Possible values:
 5741     //   "ALL"
 5742     //   "RUNNING"
 5743     InstanceState string `json:"instanceState,omitempty"`
 5744 
 5745     // ForceSendFields is a list of field names (e.g. "InstanceState") to
 5746     // unconditionally include in API requests. By default, fields with
 5747     // empty values are omitted from API requests. However, any non-pointer,
 5748     // non-interface field appearing in ForceSendFields will be sent to the
 5749     // server regardless of whether the field is empty or not. This may be
 5750     // used to include empty fields in Patch requests.
 5751     ForceSendFields []string `json:"-"`
 5752 
 5753     // NullFields is a list of field names (e.g. "InstanceState") to include
 5754     // in API requests with the JSON null value. By default, fields with
 5755     // empty values are omitted from API requests. However, any field with
 5756     // an empty value appearing in NullFields will be sent to the server as
 5757     // null. It is an error if a field in this list has a non-empty value.
 5758     // This may be used to include null fields in Patch requests.
 5759     NullFields []string `json:"-"`
 5760 }
 5761 
 5762 func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
 5763     type noMethod InstanceGroupsListInstancesRequest
 5764     raw := noMethod(*s)
 5765     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5766 }
 5767 
 5768 type InstanceGroupsRemoveInstancesRequest struct {
 5769     // Instances: The list of instances to remove from the instance group.
 5770     Instances []*InstanceReference `json:"instances,omitempty"`
 5771 
 5772     // ForceSendFields is a list of field names (e.g. "Instances") to
 5773     // unconditionally include in API requests. By default, fields with
 5774     // empty values are omitted from API requests. However, any non-pointer,
 5775     // non-interface field appearing in ForceSendFields will be sent to the
 5776     // server regardless of whether the field is empty or not. This may be
 5777     // used to include empty fields in Patch requests.
 5778     ForceSendFields []string `json:"-"`
 5779 
 5780     // NullFields is a list of field names (e.g. "Instances") to include in
 5781     // API requests with the JSON null value. By default, fields with empty
 5782     // values are omitted from API requests. However, any field with an
 5783     // empty value appearing in NullFields will be sent to the server as
 5784     // null. It is an error if a field in this list has a non-empty value.
 5785     // This may be used to include null fields in Patch requests.
 5786     NullFields []string `json:"-"`
 5787 }
 5788 
 5789 func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
 5790     type noMethod InstanceGroupsRemoveInstancesRequest
 5791     raw := noMethod(*s)
 5792     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5793 }
 5794 
 5795 type InstanceGroupsScopedList struct {
 5796     // InstanceGroups: [Output Only] The list of instance groups that are
 5797     // contained in this scope.
 5798     InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
 5799 
 5800     // Warning: [Output Only] An informational warning that replaces the
 5801     // list of instance groups when the list is empty.
 5802     Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
 5803 
 5804     // ForceSendFields is a list of field names (e.g. "InstanceGroups") to
 5805     // unconditionally include in API requests. By default, fields with
 5806     // empty values are omitted from API requests. However, any non-pointer,
 5807     // non-interface field appearing in ForceSendFields will be sent to the
 5808     // server regardless of whether the field is empty or not. This may be
 5809     // used to include empty fields in Patch requests.
 5810     ForceSendFields []string `json:"-"`
 5811 
 5812     // NullFields is a list of field names (e.g. "InstanceGroups") to
 5813     // include in API requests with the JSON null value. By default, fields
 5814     // with empty values are omitted from API requests. However, any field
 5815     // with an empty value appearing in NullFields will be sent to the
 5816     // server as null. It is an error if a field in this list has a
 5817     // non-empty value. This may be used to include null fields in Patch
 5818     // requests.
 5819     NullFields []string `json:"-"`
 5820 }
 5821 
 5822 func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
 5823     type noMethod InstanceGroupsScopedList
 5824     raw := noMethod(*s)
 5825     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5826 }
 5827 
 5828 // InstanceGroupsScopedListWarning: [Output Only] An informational
 5829 // warning that replaces the list of instance groups when the list is
 5830 // empty.
 5831 type InstanceGroupsScopedListWarning struct {
 5832     // Code: [Output Only] A warning code, if applicable. For example,
 5833     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 5834     // the response.
 5835     //
 5836     // Possible values:
 5837     //   "CLEANUP_FAILED"
 5838     //   "DEPRECATED_RESOURCE_USED"
 5839     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 5840     //   "FIELD_VALUE_OVERRIDEN"
 5841     //   "INJECTED_KERNELS_DEPRECATED"
 5842     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 5843     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 5844     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 5845     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 5846     //   "NEXT_HOP_NOT_RUNNING"
 5847     //   "NOT_CRITICAL_ERROR"
 5848     //   "NO_RESULTS_ON_PAGE"
 5849     //   "REQUIRED_TOS_AGREEMENT"
 5850     //   "RESOURCE_NOT_DELETED"
 5851     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 5852     //   "UNREACHABLE"
 5853     Code string `json:"code,omitempty"`
 5854 
 5855     // Data: [Output Only] Metadata about this warning in key: value format.
 5856     // For example:
 5857     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 5858     Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
 5859 
 5860     // Message: [Output Only] A human-readable description of the warning
 5861     // code.
 5862     Message string `json:"message,omitempty"`
 5863 
 5864     // ForceSendFields is a list of field names (e.g. "Code") to
 5865     // unconditionally include in API requests. By default, fields with
 5866     // empty values are omitted from API requests. However, any non-pointer,
 5867     // non-interface field appearing in ForceSendFields will be sent to the
 5868     // server regardless of whether the field is empty or not. This may be
 5869     // used to include empty fields in Patch requests.
 5870     ForceSendFields []string `json:"-"`
 5871 
 5872     // NullFields is a list of field names (e.g. "Code") to include in API
 5873     // requests with the JSON null value. By default, fields with empty
 5874     // values are omitted from API requests. However, any field with an
 5875     // empty value appearing in NullFields will be sent to the server as
 5876     // null. It is an error if a field in this list has a non-empty value.
 5877     // This may be used to include null fields in Patch requests.
 5878     NullFields []string `json:"-"`
 5879 }
 5880 
 5881 func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
 5882     type noMethod InstanceGroupsScopedListWarning
 5883     raw := noMethod(*s)
 5884     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5885 }
 5886 
 5887 type InstanceGroupsScopedListWarningData struct {
 5888     // Key: [Output Only] A key that provides more detail on the warning
 5889     // being returned. For example, for warnings where there are no results
 5890     // in a list request for a particular zone, this key might be scope and
 5891     // the key value might be the zone name. Other examples might be a key
 5892     // indicating a deprecated resource and a suggested replacement, or a
 5893     // warning about invalid network settings (for example, if an instance
 5894     // attempts to perform IP forwarding but is not enabled for IP
 5895     // forwarding).
 5896     Key string `json:"key,omitempty"`
 5897 
 5898     // Value: [Output Only] A warning data value corresponding to the key.
 5899     Value string `json:"value,omitempty"`
 5900 
 5901     // ForceSendFields is a list of field names (e.g. "Key") to
 5902     // unconditionally include in API requests. By default, fields with
 5903     // empty values are omitted from API requests. However, any non-pointer,
 5904     // non-interface field appearing in ForceSendFields will be sent to the
 5905     // server regardless of whether the field is empty or not. This may be
 5906     // used to include empty fields in Patch requests.
 5907     ForceSendFields []string `json:"-"`
 5908 
 5909     // NullFields is a list of field names (e.g. "Key") to include in API
 5910     // requests with the JSON null value. By default, fields with empty
 5911     // values are omitted from API requests. However, any field with an
 5912     // empty value appearing in NullFields will be sent to the server as
 5913     // null. It is an error if a field in this list has a non-empty value.
 5914     // This may be used to include null fields in Patch requests.
 5915     NullFields []string `json:"-"`
 5916 }
 5917 
 5918 func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
 5919     type noMethod InstanceGroupsScopedListWarningData
 5920     raw := noMethod(*s)
 5921     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5922 }
 5923 
 5924 type InstanceGroupsSetNamedPortsRequest struct {
 5925     // Fingerprint: The fingerprint of the named ports information for this
 5926     // instance group. Use this optional property to prevent conflicts when
 5927     // multiple users change the named ports settings concurrently. Obtain
 5928     // the fingerprint with the instanceGroups.get method. Then, include the
 5929     // fingerprint in your request to ensure that you do not overwrite
 5930     // changes that were applied from another concurrent request.
 5931     Fingerprint string `json:"fingerprint,omitempty"`
 5932 
 5933     // NamedPorts: The list of named ports to set for this instance group.
 5934     NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
 5935 
 5936     // ForceSendFields is a list of field names (e.g. "Fingerprint") to
 5937     // unconditionally include in API requests. By default, fields with
 5938     // empty values are omitted from API requests. However, any non-pointer,
 5939     // non-interface field appearing in ForceSendFields will be sent to the
 5940     // server regardless of whether the field is empty or not. This may be
 5941     // used to include empty fields in Patch requests.
 5942     ForceSendFields []string `json:"-"`
 5943 
 5944     // NullFields is a list of field names (e.g. "Fingerprint") to include
 5945     // in API requests with the JSON null value. By default, fields with
 5946     // empty values are omitted from API requests. However, any field with
 5947     // an empty value appearing in NullFields will be sent to the server as
 5948     // null. It is an error if a field in this list has a non-empty value.
 5949     // This may be used to include null fields in Patch requests.
 5950     NullFields []string `json:"-"`
 5951 }
 5952 
 5953 func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
 5954     type noMethod InstanceGroupsSetNamedPortsRequest
 5955     raw := noMethod(*s)
 5956     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 5957 }
 5958 
 5959 // InstanceList: Contains a list of instances.
 5960 type InstanceList struct {
 5961     // Id: [Output Only] The unique identifier for the resource. This
 5962     // identifier is defined by the server.
 5963     Id string `json:"id,omitempty"`
 5964 
 5965     // Items: [Output Only] A list of instances.
 5966     Items []*Instance `json:"items,omitempty"`
 5967 
 5968     // Kind: [Output Only] Type of resource. Always compute#instanceList for
 5969     // lists of Instance resources.
 5970     Kind string `json:"kind,omitempty"`
 5971 
 5972     // NextPageToken: [Output Only] This token allows you to get the next
 5973     // page of results for list requests. If the number of results is larger
 5974     // than maxResults, use the nextPageToken as a value for the query
 5975     // parameter pageToken in the next list request. Subsequent list
 5976     // requests will have their own nextPageToken to continue paging through
 5977     // the results.
 5978     NextPageToken string `json:"nextPageToken,omitempty"`
 5979 
 5980     // SelfLink: [Output Only] Server-defined URL for this resource.
 5981     SelfLink string `json:"selfLink,omitempty"`
 5982 
 5983     // ServerResponse contains the HTTP response code and headers from the
 5984     // server.
 5985     googleapi.ServerResponse `json:"-"`
 5986 
 5987     // ForceSendFields is a list of field names (e.g. "Id") to
 5988     // unconditionally include in API requests. By default, fields with
 5989     // empty values are omitted from API requests. However, any non-pointer,
 5990     // non-interface field appearing in ForceSendFields will be sent to the
 5991     // server regardless of whether the field is empty or not. This may be
 5992     // used to include empty fields in Patch requests.
 5993     ForceSendFields []string `json:"-"`
 5994 
 5995     // NullFields is a list of field names (e.g. "Id") to include in API
 5996     // requests with the JSON null value. By default, fields with empty
 5997     // values are omitted from API requests. However, any field with an
 5998     // empty value appearing in NullFields will be sent to the server as
 5999     // null. It is an error if a field in this list has a non-empty value.
 6000     // This may be used to include null fields in Patch requests.
 6001     NullFields []string `json:"-"`
 6002 }
 6003 
 6004 func (s *InstanceList) MarshalJSON() ([]byte, error) {
 6005     type noMethod InstanceList
 6006     raw := noMethod(*s)
 6007     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6008 }
 6009 
 6010 type InstanceMoveRequest struct {
 6011     // DestinationZone: The URL of the destination zone to move the
 6012     // instance. This can be a full or partial URL. For example, the
 6013     // following are all valid URLs to a zone:
 6014     // - https://www.googleapis.com/compute/v1/projects/project/zones/zone
 6015     //
 6016     // - projects/project/zones/zone
 6017     // - zones/zone
 6018     DestinationZone string `json:"destinationZone,omitempty"`
 6019 
 6020     // TargetInstance: The URL of the target instance to move. This can be a
 6021     // full or partial URL. For example, the following are all valid URLs to
 6022     // an instance:
 6023     // -
 6024     // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
 6025     // - projects/project/zones/zone/instances/instance
 6026     // - zones/zone/instances/instance
 6027     TargetInstance string `json:"targetInstance,omitempty"`
 6028 
 6029     // ForceSendFields is a list of field names (e.g. "DestinationZone") to
 6030     // unconditionally include in API requests. By default, fields with
 6031     // empty values are omitted from API requests. However, any non-pointer,
 6032     // non-interface field appearing in ForceSendFields will be sent to the
 6033     // server regardless of whether the field is empty or not. This may be
 6034     // used to include empty fields in Patch requests.
 6035     ForceSendFields []string `json:"-"`
 6036 
 6037     // NullFields is a list of field names (e.g. "DestinationZone") to
 6038     // include in API requests with the JSON null value. By default, fields
 6039     // with empty values are omitted from API requests. However, any field
 6040     // with an empty value appearing in NullFields will be sent to the
 6041     // server as null. It is an error if a field in this list has a
 6042     // non-empty value. This may be used to include null fields in Patch
 6043     // requests.
 6044     NullFields []string `json:"-"`
 6045 }
 6046 
 6047 func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
 6048     type noMethod InstanceMoveRequest
 6049     raw := noMethod(*s)
 6050     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6051 }
 6052 
 6053 type InstanceProperties struct {
 6054     // CanIpForward: Enables instances created based on this template to
 6055     // send packets with source IP addresses other than their own and
 6056     // receive packets with destination IP addresses other than their own.
 6057     // If these instances will be used as an IP gateway or it will be set as
 6058     // the next-hop in a Route resource, specify true. If unsure, leave this
 6059     // set to false. See the Enable IP forwarding for instances
 6060     // documentation for more information.
 6061     CanIpForward bool `json:"canIpForward,omitempty"`
 6062 
 6063     // Description: An optional text description for the instances that are
 6064     // created from this instance template.
 6065     Description string `json:"description,omitempty"`
 6066 
 6067     // Disks: An array of disks that are associated with the instances that
 6068     // are created from this template.
 6069     Disks []*AttachedDisk `json:"disks,omitempty"`
 6070 
 6071     // MachineType: The machine type to use for instances that are created
 6072     // from this template.
 6073     MachineType string `json:"machineType,omitempty"`
 6074 
 6075     // Metadata: The metadata key/value pairs to assign to instances that
 6076     // are created from this template. These pairs can consist of custom
 6077     // metadata or predefined keys. See Project and instance metadata for
 6078     // more information.
 6079     Metadata *Metadata `json:"metadata,omitempty"`
 6080 
 6081     // NetworkInterfaces: An array of network access configurations for this
 6082     // interface.
 6083     NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 6084 
 6085     // Scheduling: Specifies the scheduling options for the instances that
 6086     // are created from this template.
 6087     Scheduling *Scheduling `json:"scheduling,omitempty"`
 6088 
 6089     // ServiceAccounts: A list of service accounts with specified scopes.
 6090     // Access tokens for these service accounts are available to the
 6091     // instances that are created from this template. Use metadata queries
 6092     // to obtain the access tokens for these instances.
 6093     ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
 6094 
 6095     // Tags: A list of tags to apply to the instances that are created from
 6096     // this template. The tags identify valid sources or targets for network
 6097     // firewalls. The setTags method can modify this list of tags. Each tag
 6098     // within the list must comply with RFC1035.
 6099     Tags *Tags `json:"tags,omitempty"`
 6100 
 6101     // ForceSendFields is a list of field names (e.g. "CanIpForward") to
 6102     // unconditionally include in API requests. By default, fields with
 6103     // empty values are omitted from API requests. However, any non-pointer,
 6104     // non-interface field appearing in ForceSendFields will be sent to the
 6105     // server regardless of whether the field is empty or not. This may be
 6106     // used to include empty fields in Patch requests.
 6107     ForceSendFields []string `json:"-"`
 6108 
 6109     // NullFields is a list of field names (e.g. "CanIpForward") to include
 6110     // in API requests with the JSON null value. By default, fields with
 6111     // empty values are omitted from API requests. However, any field with
 6112     // an empty value appearing in NullFields will be sent to the server as
 6113     // null. It is an error if a field in this list has a non-empty value.
 6114     // This may be used to include null fields in Patch requests.
 6115     NullFields []string `json:"-"`
 6116 }
 6117 
 6118 func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
 6119     type noMethod InstanceProperties
 6120     raw := noMethod(*s)
 6121     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6122 }
 6123 
 6124 type InstanceReference struct {
 6125     // Instance: The URL for a specific instance.
 6126     Instance string `json:"instance,omitempty"`
 6127 
 6128     // ForceSendFields is a list of field names (e.g. "Instance") to
 6129     // unconditionally include in API requests. By default, fields with
 6130     // empty values are omitted from API requests. However, any non-pointer,
 6131     // non-interface field appearing in ForceSendFields will be sent to the
 6132     // server regardless of whether the field is empty or not. This may be
 6133     // used to include empty fields in Patch requests.
 6134     ForceSendFields []string `json:"-"`
 6135 
 6136     // NullFields is a list of field names (e.g. "Instance") to include in
 6137     // API requests with the JSON null value. By default, fields with empty
 6138     // values are omitted from API requests. However, any field with an
 6139     // empty value appearing in NullFields will be sent to the server as
 6140     // null. It is an error if a field in this list has a non-empty value.
 6141     // This may be used to include null fields in Patch requests.
 6142     NullFields []string `json:"-"`
 6143 }
 6144 
 6145 func (s *InstanceReference) MarshalJSON() ([]byte, error) {
 6146     type noMethod InstanceReference
 6147     raw := noMethod(*s)
 6148     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6149 }
 6150 
 6151 // InstanceTemplate: An Instance Template resource.
 6152 type InstanceTemplate struct {
 6153     // CreationTimestamp: [Output Only] The creation timestamp for this
 6154     // instance template in RFC3339 text format.
 6155     CreationTimestamp string `json:"creationTimestamp,omitempty"`
 6156 
 6157     // Description: An optional description of this resource. Provide this
 6158     // property when you create the resource.
 6159     Description string `json:"description,omitempty"`
 6160 
 6161     // Id: [Output Only] A unique identifier for this instance template. The
 6162     // server defines this identifier.
 6163     Id uint64 `json:"id,omitempty,string"`
 6164 
 6165     // Kind: [Output Only] The resource type, which is always
 6166     // compute#instanceTemplate for instance templates.
 6167     Kind string `json:"kind,omitempty"`
 6168 
 6169     // Name: Name of the resource; provided by the client when the resource
 6170     // is created. The name must be 1-63 characters long, and comply with
 6171     // RFC1035. Specifically, the name must be 1-63 characters long and
 6172     // match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
 6173     // the first character must be a lowercase letter, and all following
 6174     // characters must be a dash, lowercase letter, or digit, except the
 6175     // last character, which cannot be a dash.
 6176     Name string `json:"name,omitempty"`
 6177 
 6178     // Properties: The instance properties for this instance template.
 6179     Properties *InstanceProperties `json:"properties,omitempty"`
 6180 
 6181     // SelfLink: [Output Only] The URL for this instance template. The
 6182     // server defines this URL.
 6183     SelfLink string `json:"selfLink,omitempty"`
 6184 
 6185     // ServerResponse contains the HTTP response code and headers from the
 6186     // server.
 6187     googleapi.ServerResponse `json:"-"`
 6188 
 6189     // ForceSendFields is a list of field names (e.g. "CreationTimestamp")
 6190     // to unconditionally include in API requests. By default, fields with
 6191     // empty values are omitted from API requests. However, any non-pointer,
 6192     // non-interface field appearing in ForceSendFields will be sent to the
 6193     // server regardless of whether the field is empty or not. This may be
 6194     // used to include empty fields in Patch requests.
 6195     ForceSendFields []string `json:"-"`
 6196 
 6197     // NullFields is a list of field names (e.g. "CreationTimestamp") to
 6198     // include in API requests with the JSON null value. By default, fields
 6199     // with empty values are omitted from API requests. However, any field
 6200     // with an empty value appearing in NullFields will be sent to the
 6201     // server as null. It is an error if a field in this list has a
 6202     // non-empty value. This may be used to include null fields in Patch
 6203     // requests.
 6204     NullFields []string `json:"-"`
 6205 }
 6206 
 6207 func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
 6208     type noMethod InstanceTemplate
 6209     raw := noMethod(*s)
 6210     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6211 }
 6212 
 6213 // InstanceTemplateList: A list of instance templates.
 6214 type InstanceTemplateList struct {
 6215     // Id: [Output Only] A unique identifier for this instance template. The
 6216     // server defines this identifier.
 6217     Id string `json:"id,omitempty"`
 6218 
 6219     // Items: [Output Only] list of InstanceTemplate resources.
 6220     Items []*InstanceTemplate `json:"items,omitempty"`
 6221 
 6222     // Kind: [Output Only] The resource type, which is always
 6223     // compute#instanceTemplatesListResponse for instance template lists.
 6224     Kind string `json:"kind,omitempty"`
 6225 
 6226     // NextPageToken: [Output Only] This token allows you to get the next
 6227     // page of results for list requests. If the number of results is larger
 6228     // than maxResults, use the nextPageToken as a value for the query
 6229     // parameter pageToken in the next list request. Subsequent list
 6230     // requests will have their own nextPageToken to continue paging through
 6231     // the results.
 6232     NextPageToken string `json:"nextPageToken,omitempty"`
 6233 
 6234     // SelfLink: [Output Only] The URL for this instance template list. The
 6235     // server defines this URL.
 6236     SelfLink string `json:"selfLink,omitempty"`
 6237 
 6238     // ServerResponse contains the HTTP response code and headers from the
 6239     // server.
 6240     googleapi.ServerResponse `json:"-"`
 6241 
 6242     // ForceSendFields is a list of field names (e.g. "Id") to
 6243     // unconditionally include in API requests. By default, fields with
 6244     // empty values are omitted from API requests. However, any non-pointer,
 6245     // non-interface field appearing in ForceSendFields will be sent to the
 6246     // server regardless of whether the field is empty or not. This may be
 6247     // used to include empty fields in Patch requests.
 6248     ForceSendFields []string `json:"-"`
 6249 
 6250     // NullFields is a list of field names (e.g. "Id") to include in API
 6251     // requests with the JSON null value. By default, fields with empty
 6252     // values are omitted from API requests. However, any field with an
 6253     // empty value appearing in NullFields will be sent to the server as
 6254     // null. It is an error if a field in this list has a non-empty value.
 6255     // This may be used to include null fields in Patch requests.
 6256     NullFields []string `json:"-"`
 6257 }
 6258 
 6259 func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
 6260     type noMethod InstanceTemplateList
 6261     raw := noMethod(*s)
 6262     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6263 }
 6264 
 6265 type InstanceWithNamedPorts struct {
 6266     // Instance: [Output Only] The URL of the instance.
 6267     Instance string `json:"instance,omitempty"`
 6268 
 6269     // NamedPorts: [Output Only] The named ports that belong to this
 6270     // instance group.
 6271     NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
 6272 
 6273     // Status: [Output Only] The status of the instance.
 6274     //
 6275     // Possible values:
 6276     //   "PROVISIONING"
 6277     //   "RUNNING"
 6278     //   "STAGING"
 6279     //   "STOPPED"
 6280     //   "STOPPING"
 6281     //   "SUSPENDED"
 6282     //   "SUSPENDING"
 6283     //   "TERMINATED"
 6284     Status string `json:"status,omitempty"`
 6285 
 6286     // ForceSendFields is a list of field names (e.g. "Instance") to
 6287     // unconditionally include in API requests. By default, fields with
 6288     // empty values are omitted from API requests. However, any non-pointer,
 6289     // non-interface field appearing in ForceSendFields will be sent to the
 6290     // server regardless of whether the field is empty or not. This may be
 6291     // used to include empty fields in Patch requests.
 6292     ForceSendFields []string `json:"-"`
 6293 
 6294     // NullFields is a list of field names (e.g. "Instance") to include in
 6295     // API requests with the JSON null value. By default, fields with empty
 6296     // values are omitted from API requests. However, any field with an
 6297     // empty value appearing in NullFields will be sent to the server as
 6298     // null. It is an error if a field in this list has a non-empty value.
 6299     // This may be used to include null fields in Patch requests.
 6300     NullFields []string `json:"-"`
 6301 }
 6302 
 6303 func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
 6304     type noMethod InstanceWithNamedPorts
 6305     raw := noMethod(*s)
 6306     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6307 }
 6308 
 6309 type InstancesScopedList struct {
 6310     // Instances: [Output Only] List of instances contained in this scope.
 6311     Instances []*Instance `json:"instances,omitempty"`
 6312 
 6313     // Warning: [Output Only] Informational warning which replaces the list
 6314     // of instances when the list is empty.
 6315     Warning *InstancesScopedListWarning `json:"warning,omitempty"`
 6316 
 6317     // ForceSendFields is a list of field names (e.g. "Instances") to
 6318     // unconditionally include in API requests. By default, fields with
 6319     // empty values are omitted from API requests. However, any non-pointer,
 6320     // non-interface field appearing in ForceSendFields will be sent to the
 6321     // server regardless of whether the field is empty or not. This may be
 6322     // used to include empty fields in Patch requests.
 6323     ForceSendFields []string `json:"-"`
 6324 
 6325     // NullFields is a list of field names (e.g. "Instances") to include in
 6326     // API requests with the JSON null value. By default, fields with empty
 6327     // values are omitted from API requests. However, any field with an
 6328     // empty value appearing in NullFields will be sent to the server as
 6329     // null. It is an error if a field in this list has a non-empty value.
 6330     // This may be used to include null fields in Patch requests.
 6331     NullFields []string `json:"-"`
 6332 }
 6333 
 6334 func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
 6335     type noMethod InstancesScopedList
 6336     raw := noMethod(*s)
 6337     return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 6338 }
 6339 
 6340 // InstancesScopedListWarning: [Output Only] Informational warning which
 6341 // replaces the list of instances when the list is empty.
 6342 type InstancesScopedListWarning struct {
 6343     // Code: [Output Only] A warning code, if applicable. For example,
 6344     // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
 6345     // the response.
 6346     //
 6347     // Possible values:
 6348     //   "CLEANUP_FAILED"
 6349     //   "DEPRECATED_RESOURCE_USED"
 6350     //   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
 6351     //   "FIELD_VALUE_OVERRIDEN"
 6352     //   "INJECTED_KERNELS_DEPRECATED"
 6353     //   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
 6354     //   "NEXT_HOP_CANNOT_IP_FORWARD"
 6355     //   "NEXT_HOP_INSTANCE_NOT_FOUND"
 6356     //   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
 6357     //   "NEXT_HOP_NOT_RUNNING"
 6358     //   "NOT_CRITICAL_ERROR"
 6359     //   "NO_RESULTS_ON_PAGE"
 6360     //   "REQUIRED_TOS_AGREEMENT"
 6361     //   "RESOURCE_NOT_DELETED"
 6362     //   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
 6363     //   "UNREACHABLE"
 6364     Code string `json:"code,omitempty"`
 6365 
 6366     // Data: [Output Only] Metadata about this warning in key: value format.
 6367     // For example:
 6368     // "data": [ { "key": "scope", "value": "zones/us-east1-d" }
 6369     Data []*InstancesScopedListWarningData `json:"data,omitempty"`
 6370 
 6371     // Message: [Output Only] A human-readable description of the warning
 6372     // code.
 6373     Message string `json:"message,omitempty"`
 6374 
 6375     // ForceSendFields is a list of field names (e.g. "Code") to
 6376     // unconditionally include in API requests. By default, fields with
 6377     // empty values are omitted from API requests. However, any non-pointer,
 6378     // non-interface field appearing in ForceSendFields will be sent to the